Apple Power Mac G4 Quicksilver (M8493)

From Gentoo-en
Jump to: navigation, search
Gentoo.png
Gentoo has an official article on:
Wikipedia-logo-en.png
Wikipedia has an article on:

Apple Power Mac G4 “Quicksilver” and “Quicksilver 2002”

  • Apple Model Number: M8493
  • Apple Model ID: PowerMac3,5
  • Specific models (order numbers):
    1. QuicksilverLEM:
      • 733 MHz (Desktop: M8359LL, Server: M7948LL)
      • 867 MHz (Desktop: M8360LL)
      • 800 MHz DP (Desktop: M8361LL, Server: M7949LL)
    2. Quicksilver 2002LEM:
      • 800 MHz (Desktop: M8705LL)
      • 933 MHz (Desktop: M8666LL, Server: M8649LL)
      • 1.0 GHz DP (Desktop: M8667LL, Server: M8650LL)

Technical specifications can be found either from Apple or at EveryMac.com. Useful information about all Power Macs can be found at LowEndMac.

Specifications

The following listing is from a stock Quicksilver 733 MHz model with an nVidia GeForce2 MX400:

Code: lspci -nn
0000:00:0b.0 Host bridge [0600]: Apple Computer Inc. UniNorth 1.5 AGP [106b:002d]
0000:00:10.0 VGA compatible controller [0300]: nVidia Corporation NV11 [GeForce2 MX/MX 400] [10de:0110] (rev a1)
0001:10:0b.0 Host bridge [0600]: Apple Computer Inc. UniNorth 1.5 PCI [106b:002e]
0001:10:17.0 Class [ff00]: Apple Computer Inc. KeyLargo Mac I/O [106b:0022] (rev 03)
0001:10:18.0 USB Controller [0c03]: Apple Computer Inc. KeyLargo USB [106b:0019]
0001:10:19.0 USB Controller [0c03]: Apple Computer Inc. KeyLargo USB [106b:0019]
0002:20:0b.0 Host bridge [0600]: Apple Computer Inc. UniNorth 1.5 Internal PCI [106b:002f]
0002:20:0e.0 FireWire (IEEE 1394) [0c00]: Agere Systems FW322/323 [11c1:5811]
0002:20:0f.0 Ethernet controller [0200]: Apple Computer Inc. UniNorth GMAC (Sun GEM) [106b:0021] (rev 01)

Except for the AGP graphics card all PCI peripherial devices should be identical in all Quicksilver models. The Quicksilver 2002 may have newer revisions of these devices.

Basic setup

/etc/make.conf

Before you start compiling anything you should set the appropriate compiler options.

File: /etc/make.conf
CHOST="powerpc-unknown-linux-gnu"
CFLAGS="-mcpu=7450 -O2 -pipe -maltivec -mabi=altivec -fno-strict-aliasing"
CXXFLAGS="${CFLAGS}"
Wikipedia-logo-en.png
Wikipedia has an article on:

Most “Quicksilver 2002” models are equipped with the newer PowerPC 7455 processor, which is from the software point of view identical to the PowerPC 7450, so this setting will work for all Quicksilvers.

Warning: These compiler flags will cause trouble when the whole installation is transfered into a Power Mac that uses an earlier type of the G4 PowerPC processor, such as the PowerPC 7400 or the PowerPC 7410. It will also not work to transfer this installation into a Power Mac G3 because it lacks the AltiVec extension, of which compiled programs with these settings should make good use.
Note: If you want to be able to transfer your Gentoo/PowerPC installation across different and especially earlier Power Mac G4 models you should substitute -mcpu=7450 with -mcpu=G4 or -mcpu=7400.

Kernel

Use the sources of your choice and create a symlink to /usr/src/linux. The following is just an example:

emerge sys-kernel/gentoo-sources ln -s /usr/src/linux-2.6.32-gentoo-r7 /usr/src/linux

You can either copy the .config from the kernel on the Gentoo LiveCD for your own kernel configuration and modify it, or create a new one using defconfig:

cd /usr/src/linux make pmac32_defconfig

Processor

The PowerPC 7450/7455 processor does not support frequency scaling, so there is no need to activate this feature. Additionally all stock processors don't feature temperature sensors, but it may well be that third party upgrades do.

Linux Kernel Configuration: G4QS kernel config
Processor support  --->
    Processor Type (512x/52xx/6xx/7xx/74xx/82xx/83xx/86xx)  --->
        (X) 512x/52xx/6xx/7xx/74xx/82xx/83xx/86xx
    [*] AltiVec Support
    [*] Symmetric multi-processing support
    (2)   Maximum number of CPUs (2-8192)

Platform support  --->
    [*] Apple PowerMac based machines
    [*] Support booting from Open Firmware or yaboot
    [ ] CPU Frequency scaling
    [*] On-chip CPU temperature sensor support

Floppy disk drive

If your Power Mac has a build-in floppy drive, you may also want to activate it:

Linux Kernel Configuration: G4QS kernel config
Device Drivers  --->
    [*] Block devices  --->
        <M>   Support for PowerMac floppy

Hard disk drive

For access to your hard disk drive you will need either the older IDE driver, or the newer libata driver that is available since Kernel 2.6.32. The later is highly recommended:

Linux Kernel Configuration: G4QS kernel config
Device Drivers  --->
    <*> Serial ATA and Parallel ATA drivers  --->
        [*]   ATA SFF support
        <*>     Apple PowerMac/PowerBook internal 'MacIO' IDE
    SCSI device support  --->
        -*- SCSI device support
        <*> SCSI disk support
        <*> SCSI CDROM support
Wikipedia-logo-en.png
Wikipedia has an article on:

With this selection the devices will be named /dev/sdxn, e.g. /dev/sda1 for the Apple Partition Map (APM).

If for a really good reason you wish to go with the older IDE driver, the devices will be named /dev/hdxn, e.g. /dev/hda1 for the APM.

Linux Kernel Configuration: G4QS kernel config
Device Drivers  --->
    <*> ATA/ATAPI/MFM/RLL support (DEPRECATED)  --->
        <*>   PowerMac on-board IDE support
        [*]     Probe on-board ATA/100 (Kauai) first
Warning: If you want to switch between the older IDE drivers and the newer libata drivers, you will have to be careful with your system configuration because of the different device names in /dev and /dev/disk. Possibly the first configuration file you will have to rewrite is /dev/fstab, otherwise your system may not find the required partitions thus will not be able to complete the boot process.

Device drivers

All Power Mac G4's that have AGP graphics cards are PMU based so you can safely skip the CUDA support. The hardware clock support has been included in the newer Generic RTC driver.

Linux Kernel Configuration: G4QS kernel config
Device Drivers  --->
    [*] Macintosh device drivers  --->
        [*]   Support for PMU  based PowerMacs
        <*>   APM emulation
        <*>   Support for mouse button 2+3 emulation
        <*>   New PowerMac thermal control infrastructure
    -*- I2C support  --->
        [*]   Autoselect pertinent helper modules
        I2C Hardware Bus support  --->
            {*} Powermac I2C interface
    <*> Real Time Clock  --->
        <*>   Generic RTC support

yaboot

If you followed the Gentoo PPC handbook you should have yaboot already installed.

The following is an example of how to setup yaboot. For this, simply edit /etc/yaboot.conf with your favorite editor:

File: /etc/yaboot.conf
# /etc/yaboot.conf
# Apple Power Mac G4 “Quicksilver”
#
# Revision: 2010-09-22

boot=/dev/sda2
ofboot=hd:2
device=hd:
partition=7
root=/dev/sda7
hide

delay=10
timeout=100

fgcolor=white
bgcolor=black

defaultos=linux
default=Gentoo

install=/usr/lib/yaboot/yaboot
magicboot=/usr/lib/yaboot/ofboot

enablecdboot
enableofboot

macos=hd:6
macosx=hd:6

image=/kernel
        label=Gentoo
        alias=g
        single-key
        read-only
        initrd=/initramfs
        literal="initrd=/initramfs root=/dev/ram0 ramdisk=4096 init=/linuxrc real_root=/dev/sda9"

image=/kernel.old
        label=gentoo_Previous
        alias=p
        single-key
        read-only
        initrd=/initramfs.old
        literal="initrd=/initramfs.old root=/dev/ram0 ramdisk=4096 init=/linuxrc real_root=/dev/sda9"

This specific configuration assumes:

  1. /dev/sda2 is your yaboot bootstrap partition
  2. /dev/sda7 is your Linux boot partition (/boot)
  3. /dev/sda9 is your Gentoo Linux root partition (/)
    • The boot partition and the root partition may be the same on your system.
  4. You compile your kernel using the sys-kernel/genkernel package and create an initramfs.
    1. Your primary kernel is /boot/kernel and /boot/initramfs
    2. Your previous (fallback) kernel is /boot/kernel.old and /boot/initramfs.old
    • The filenames for the kernel and the initramfs may be symlinks and can be automatically created using sys-kernel/genkernel.


For your specific system:

  • Use mac-fdisk -l /dev/sda to find out where your partitions are.
  • Get your /etc/yaboot.conf set up accordingly.
  • Don't forget to run ybin -v to commit the changes to your yaboot bootstrap partition.

Specific setup

Sound

Gentoo.png
Gentoo has an official article on:

The Quicksilver uses a TAS3001C sound chip, that is well supported by the powermac ALSA module. The ALSA device will be called “PowerMac Tumbler” and may have a constant white noise once a sound has been played. This is a known issue on the Quicksilver Power Macs and affects every installed operating system. (Mac OS and Mac OS X show the same behaviour.)

As a workaround it helps to mute the PCM channel and unmute it again. The white noise will be gone only until the next sound is played.

Linux Kernel Configuration: G4QS kernel config
Device Drivers  --->
    <*> Sound card support  --->
        <M>   Advanced Linux Sound Architecture  --->
            [*]   PowerPC sound devices  --->
                <M>   PowerMac (AWACS, DACA, Burgundy, Tumbler, Keywest)

You do not need to activate Apple Onboard Audio driver, which is for newer Power Macs.

Your ALSA configuration file should look similar to this:

File: /etc/modprobe.d/alsa.conf
# ALSA portion
alias char-major-116 snd
# OSS/Free portion
alias char-major-14 soundcore

# cards_limit
options snd cards_limit=1

alias /dev/mixer snd-mixer-oss
alias /dev/dsp snd-pcm-oss
alias /dev/midi snd-seq-oss

# OSS/Free portion - card #1
alias sound-service-0-0 snd-mixer-oss
alias sound-service-0-1 snd-seq-oss
alias sound-service-0-3 snd-pcm-oss
alias sound-service-0-8 snd-seq-oss
alias sound-service-0-12 snd-pcm-oss
##  OSS/Free portion - card #2
#alias sound-service-1-0 snd-mixer-oss
#alias sound-service-1-3 snd-pcm-oss
#alias sound-service-1-12 snd-pcm-oss

# card #1: Texas Instruments TAS3001C CODEC (Apple Power Mac G4 Quicksilver)
alias snd-card-0 snd-powermac
alias sound-slot-0 snd-card-0


The following might only be needed for out-of-kernel ALSA drivers:

File: /etc/make.conf
ALSA_CARDS="powermac"

video cards

Open Firmware frame buffer

For the text console the Open Firmware frame buffer driver offb works well and has the advantage of being independet of the actually used video card. This makes it easier to transfer an installation across different Power Mac machines. On the down side this driver is very generic and video output isn't very fast. Since most users will use X11 anyway and the text console is only required as a failsafe/backup system (“if something should go wrong”), using offb is a good and safe choice.

There are also accelerated console drivers available for ATi as well as nVidia, which will make text console video output faster especially for higher resolutions.

This is to set up the Open Firmware framebuffer in your kernel:

Linux Kernel Configuration: G4QS kernel config
Device Drivers  --->
    Graphics support  --->
        <*> /dev/agpgart (AGP Support)  --->
            <*>   Apple UniNorth & U3 AGP support
        -*- Support for frame buffer devices  --->
            [*]   Open Firmware frame buffer device support

You can set the desired resolution by passing the appropriate line to your kernel command line (e.g. in your /etc/yaboot.conf file), for example:

Code: kernel command line option
video=offb:1280x1024

To confirm that the frame buffer is working, you should see a line like this in your dmesg output:

Code: dmesg | grep "frame buffer"
Console: switching to colour frame buffer device 80x30
fb0: Open Firmware frame buffer device on /pci@f0000000/NVDA,NVMac@10

Alternatively, looking in /proc/fb will show the used frame buffer driver:

Code: cat /proc/fb
0 OFfb NVDA,NVMac

For the text console with specific frame buffer drivers for ATi and nVidia, use these settings:

Linux Kernel Configuration: G4QS kernel config
Device Drivers  --->
    Graphics support  --->
            [*]   Enable firmware EDID
            [*]   Enable Video Mode Handling Helpers
            <*>   nVidia Framebuffer Support
                [*]     Enable DDC Support
            <*>   ATI Radeon display support
                [*]     DDC/I2C for ATI Radeon support
            <*>   ATI Rage128 display support

nVidia

All you need is to include the nVidia driver for X11 in your configuration.

File: /etc/make.conf
VIDEO_CARDS="nv"
Gentoo.png
Gentoo has an official article on:

After installing X.org X11 you should not setup /etc/X11/xorg.conf at all. The driver will be selected automatically and should work correctly out-of-the-box. Currently there is no support for hardware acceleration.

ATi

Some ATi Radeon cards are very well supported. One example is the ATi Radeon 9000 Pro which is found in many stock Power Mac G4 “Mirrored Drive Doors”. If you have such a card in your Quicksilver, choose a graphics driver from those available for your card and follow the linked guide.