MacBuild Tips 'n Tricks

NOTE: BEWARE!
This document is a work in progress, and represents things most recently known or discovered through experimentation and searching the literature (aka google). Feel free to update any section if you find better solutions, answers, information, etc.

Airport activation
Airport cards may not be recognized at installation time, or if a replicated hard drive is installed. Usually all that is required is to do sudo modprobe airport from the command line for one time activation, and adding airport to /etc/modules for persistent boot time activation.

Airport Extreme activation
Airport Extreme cards use the bcm43xx driver, but the required firmware is not present in the driver as distributed. The process for acquiring and installing the software is described in here. It says, essentially, to install the package bcm43xx-fwcutter, which should download and install the appropriate firmware. My experience is that that may or may not work. An alternative process is described in the README.gz file in the bcm43xxx-fwcutter package, which shows up in /usr/share/doc/bcm43xx-fwcutter/. This approach requires the use of the MacOSX Airport Extreme driver file. Where that is and what to do with it is explained in the README. After installation the wireless ethernet interface must be activated in the Network Manager.

Audio setup on Clamshell iBook/LCD iMac (iLamp)/Powerbook
The audio device in Clamshell iBooks is named DACA, and the installaion process does not recognize it, so no driver is installed by default. To fix this, edit the file /etc/modules as root (sudo) and add snd-powermac as the last line. Here is an example with the line added: # lp snd-powermac
 * 1) /etc/modules: kernel modules to load at boot time.
 * 1) This file contains the names of kernel modules that should be loaded
 * 2) at boot time, one per line. Lines beginning with "#" are ignored.

The one you edit may be slightly different, and may not have any other module names at all. This also works for things that aren't Clamshell iBooks, like Powerbooks and first-gen LCD iMacs.

Audio setup on Digital Audio/Quicksilver
There is a related bug at https://bugs.launchpad.net/ubuntu/+source/linux-source-2.6.20/+bug/87652. There are a couple of suggested workarounds (OSS emulation, snd-aoa vs. snd-powermac) but no definitive fix for feisty. One of the entries there suggests that the bug may be fixed in one of the kernel 2.6.22-7 versions. I don't know if that is available as a backport for Feisty. - tonyr 09aug07. Sometimes when installing Ubuntu on G4 Digital Audio or Quicksilver models, audio doesn't work. No sound comes out under any circumstances, and attempts to open sound controls report that no audio device is present.

The last two generations of G4 Tower models use audio hardware nicknamed Tumbler, and use a special audio output jack that provides power to external speakers. One result of this is that special speakers designed to be used with these machinex are required. Another result, one that concerns us here, is that Ubuntu installation may fail to find any audio device. In that case no audio module is configured and alsamixer parameters controlling audio output are wrong.

To check that no audio device has been detected, you can run alsamixer from a terminal command line, or double-click the speaker icon in the top menu bar (the icon may not be there if no audio device was detected). In either case, you should see some kind of error message or advisory saying that no audio device is configured or detected.

To detect the audio device one-time, on a terminal command line type sudo modprobe snd-powermac If that didn't complain, you should shortly see an advisory in the lower right corner of the display indicating that a new audio device is detected.

To make that happen at boot time, edit the file /etc/modules as root (sudo) and add snd-powermac as the last line. Here is an example with the line added: # lp snd-powermac
 * 1) /etc/modules: kernel modules to load at boot time.
 * 1) This file contains the names of kernel modules that should be loaded
 * 2) at boot time, one per line. Lines beginning with "#" are ignored.

The one you edit may be slightly different, and may not have any other module names at all.

At this point there might still be no sound coming form the speaker during a sound test. Use these commands on a terminal command line to modify the audio driver configuration: sudo amixer sset 'Auto Mute' off sudo amixer sset 'PC Speaker' on To make this happen at boot time, edit the file /etc/rc.local as root (sudo) and ad the two lines amixer sset 'Auto Mute' off amixer sset 'PC Speaker' on at the bottom.

Beep Codes
According to http://www.techbase.iofm.net/tips/applemac/tip1.htm, POST failues produce the following beep patterns: On an iMac, Blue and White G3, Power Mac G4 (PCI Graphics), and PowerBook G3 Series (Bronze keyboard): 1 beep = No RAM installed/detected. 2 beeps = Incompatible RAM type installed. 3 beeps = No RAM banks passed memory testing. 4 beeps = Bad checksum for the remainder of the boot ROM. 5 beeps = Bad checksum for the ROM boot block. On a Power Mac G4 (AGP graphics): 1 beep = no RAM installed. 2 beeps = incompatible RAM types. 3 beeps = no good banks. 4 beeps = no good boot images in the boot ROM (and/or bad sys config block). 5 beeps = processor is not usable.

CD Audio Skip
iMacs/PowerMacs with CPU speeds of 40MHz or less and with older CD drives seem to have problems playing CDs using SoundJuicer and RythmBox, the CD ripper and CD player installed by default with Ubuntu. Playback audio will 'skip', producing gaps of a few seconds, and may even cease altogether. Loren has been able to solve this by replacing CD drives in slot loading iMacs and PowerMac Towers. Replacement drives are not always available for iMacs, however. Another solution is to install gxine from the Applications->Add/Remove menu and modify some of its configuration parameters.

gxine configuration parameters are found in the user's home directory, ~/.gxine/config. There may be a global/default version of this somewhere but I haven't looked for it. The parameters for tweaking are media.audio_cd.drive_slowdown, default 4, revised to 0 or 12, and engine.buffers.audio_num_buffers, default 230, revised to 500 (maybe unnecessary). It turns out there is also a visualization parameter there, which can be set to do nothing: gui.post_plugins.audio_visualisation, default goom, revised to None. These revisions make the default operation permanent.

The remaining issue is how to make gxine do the right thing as the default audio auto-startup application. Default preferred applications can be modified through the System->Preferences->Removeable Drives and Media->Multimedia menu. In the Audio CD Disks command box, replace the existing sound-juicer -d %d entry with gxine cdda:/, which works for commercial audio CDs.

The modified sections of ~/.gxine/config look like this: media.audio_cd.drive_slowdown:12 engine.buffers.audio_num_buffers:500 gui.post_plugins.audio_visualisation:None
 * for cd_drive.slowdown
 * 1) slow down disc drive to this speed factor
 * 2) numeric, default: 4
 * 3) media.audio_cd.drive_slowdown:4
 * for audio_num_buffers
 * 1) number of audio buffers
 * 2) numeric, default: 230
 * 3) engine.buffers.audio_num_buffers:230
 * for audio_visualization
 * 1) Default audio visualisation plugin
 * 2) { None  fftgraph  oscope  fftscope  goom }, default: 1
 * 3) gui.post_plugins.audio_visualisation:goom



CD Eject keyboard key problem
Some Apple keyboards have a dedicated Eject key in the upper right corner, marked with an Eject icon. Macintosh laptop keyboards have this feature. Mac OSX keymapping arranges for this to work correctly. Ubuntu PPC Linux does not. The Eject key is in the position that the F12 key normally occupies (and indeed actually is the F12 key). Older iMac keyboards do not show the Eject icon on the F12 key, but I believe that it still functions as the Eject key under Mac OS.

Getting the Eject/F12 key to act as the Eject key under Ubuntu presents a problem, because Ubuntu PPC Linux sets up 3button mouse emulation by default, and assigns F12 as the mouse right-click key. The mouse emulation part can be reversed by uninstalling the mouseemu package and allowing the right- and middle-click keys to default to something else by removing the mouse button definitions in /etc/sysctl.conf. Unfortunately the 'something else' in this case means Fn+Apple for right-click and Fn+Option for middle-click. The older Mac keyboards, the ones that came with the fruit colored iMacs, do not have a Fn key. The general solution for FG MacBuild would have a default set of keys or key combinations for right- and middle-click functionality that do not conflict with the Eject/F12 key and are available on the older iMac keyboards.

In the meantime, the problem can be solved in one of two ways. The simplest way is to use an extended keyboard that has the marked Eject key in the F12 position, and disable the Eject keyboard shortcut in System->Preferences->Keyboard_Shortcuts. To disable the shortcut, click on the Eject definition line and press the delete/backspace key.

The other way is for the keyboards that do have the Fn key and the marked Eject key, and is a little more involved. The steps are to remove the mouseemupackage, edit the /etc/sysctl.conf file to remove the Ubuntu mouse key emulation definitions, and redfine the F12 key as the Eject key.

dev/mac_hid/mouse_button_emulation = 1
 * Remove the mouseemu package with Synaptic (System->Administration->Synaptic Package Manager), or from a terminal do
 * sudo apt-get remove mouseemu
 * Backup the original /etc/sysctl.conf and make a new copy
 * sudo mv /etc/sysctl.conf /etc/sysctl.conf.orig
 * sudo mv /etc/sysctl.conf.orig /etc/sysctl.conf
 * Edit ''/etc/sysctl.conf with your favorite editor. Find the lines at the bottom that start with the line '# Emulate the middle mouse button'.  Comment out the last two lines of that section by inserting a '#' at the beginning of the line. At that point the section should look like this:
 * 1) Emulate the middle mouse button with F11 and the right with F12.
 * 1) dev/mac_hid/mouse_button2_keycode = 87
 * 2) dev/mac_hid/mouse_button3_keycode = 88
 * Redefine the Eject key with Keyboard Shortcuts:
 * Select System->Preferences->Keyboard Shortcuts
 * Find the line that says Eject. It should have the value defined as 0xcc.
 * Press the Space bar to start the redfinition, then press the F12 key. F12 should then appear at the definition.
 * Close the Keyboard Shortcuts window.

At this point, pressing the F12 key should make the Eject icon appear on the Display (you may need to have a CD actually inserted for this to work), and Fn+Option and Fn+Apple should function as the middle- and right-mouse-click keys.

All of this can be avoided by attaching a three-button USB mouse, which should 'just work' in any case.

Defeating Mac OSX Security
Some Macs come in with the security level set so that booting from a CD does not work, and/or access to OpenFirmware with the key combination Apple+Option+O+F requires a password. A late OpenFirmware update available as of MacOS 10.3 (I think) allows some security features including OpenFirmware password protection, boot device restriction, and keyboard boot options lockout. There are two methods to defeat this protection that I have found to work.
 * 1) The easiest way, which may not always work, is to change the amount of RAM by adding or removing some, then boot and reset PRAM by pressing Apple+Option+P+R and wait for three chimes. [This one worked on a G4/450 tower on 16aug07 - tr]
 * 2) A more involved way is to drain the charge maintaining the PRAM state. Remove power, open up the box, remove battery, leave it for 15min to half-hour. Press PMU for 5sec, press power for 5sec, replace battery, close it up, power-up with PRAM reset Apple+Option+P+R, wait three chimes). Let boot proceed as far as it will. Power down, try OpenFirmware again.

Desktop applets fail to initialize
If the system clock is not set correctly, there may be several failure notices during Desktop initialization reporting applet startup errors. The last one is usually about Nautilus being unusable. The fix for this is to set the system clock correctly. See.

Dual Processor G4 tower
A dual processor G4 power should have Ubuntu version 7.04 (Feisty) installed. Currently the only installation method available is with the PPC Alternate CD (eventually there should be a replication image for this).

After the installation completes, the SMP (multiprocessor) version of the kernel must be installed manually with Synaptic (GUI tool) or apt-get (cli tool).

To install with Synaptic from the top menu bar select System->Administration->Synaptic Package Manager. Select and install the package linux-image-powerppc-smp, and reboot.

To install the package using apt-get use these commands: sudo apt-get install linux-image-powerpc-smp sudo ybin -v

iMac auto restart after software shutdown
Some iMacs will automatically restart when powered down using the Desktop shutdown button. This is a known hardware problem that Apple is aware of. It appears to be related somehow to the USB controller, and the recommended workaround is to unplug the Keyboard/Mouse USB connector after the shutdown process has started.

Forcing power down with the front panel power button is a brute force methid that works, but could leave some file system corruption (ext3 file systems, the default in Ubuntu Linux since Dapper, reduce the risk of this).

Keyboard shortcuts

 * Keyboard shortcuts at Apple

Laptop/Notebook recycling
Laptops and notebooks that are to be recycled should have the hard drive and battery removed and the display separated from the rest of the body. The hard drive goes to advanced testing, or can be permanently disabled by MacBuild before recycling. The display does not need to be removed from the cover, and goes into a Gaylord (Huge Cardboard Box) currently right outside of the Black Hole. The rest of the body needs no further disassembly, and goes in a Gaylord currently beside Monitor Testing. The battery goes into the battery recycling mailer carton, sealed in a plastic bag (should be some in the carton).

Modem not detected by gnome-ppp
Somewhere along the way Apple started using Conexant based modem devices, and the driver was proprietary. The exact chronology is not clear, but the result is that Ubuntu Linux on some Mac platforms, especially G3/G4 laptops and some later G4 towers, will not register a modem device, even though the hardware is really there. Yep, that's right, no internal modem. There is no intrinsic solution at this time. The only possible workaround at this time is to use an external modem, but that has not been tested yet in Free Geek MacBuild.

Note that the modem driver is not missing in MacOS X.

There is a HowTo post in the Apple PPC section of the Ubuntu Forums describing a fix to get the modem working on some G3 iMacs if it is not detected at installation time. See http://ubuntuforums.org/showthread.php?t=355205. This particular solution does not appear to be related to the Conexant driver issue.

PMU/CUDA
PMU stands for Power Management Unit. There is a small (usually) gray button on a metal box about 1/4" square somewhere on the logic board. Some G3 B&W PowerMacs have two such buttons together near the PRAM battery.  On those machines the button is called CUDA instead of PMU. [this section needs the reference diagram links for the PMU from texas_macman - tr 1 aug07]

POST
A successful POST will result in a 'chime' tone from the speaker/speakers. One or more 'beep' tones indicate a hardware problem. See Beep Codes

Power-On failure
Sometimes a Mac will fail to power up when the power button is pressed. If the PRAM battery has been dead for a relatively long time, it is possible that the machine has 'forgotten' how to turn on. This can be tested and possibly fixed by replacing the battery and pressing the PMU for about 1 second. See above for information about locating the PMU button.

Power supply testing
There is no tester for Mac power supplies. Apple publishes power supply testing manual procedures for some PowerMac towers:
 * PowerMac G3(B&W) and G4 tower Power Supply Testing
 * PowerMac G4(Gigabit Ethernet) Power Supply Testing

This link, MDD Power Supply Mods, indicates that the Mirrored Drive Door PowerMac (G4 MDD Quicksilver) is different from other Quicksilver models.

PRAM (Backup) Batteries
The PRAM battery for iMacs and G3/G4 towers is a smallish cylindrical 3.6v (or 3.7v) lithium battery. Some are green-and-white, some are red/silver/yellow, some are blue-and-white, some are purple-and-green. A suggested good battery voltage range is 3.39v to 3.69v. A battery showing a lower voltage is considered 'bad', and should be recycled.

All G3 ibooks and G4 12" ibooks do not have a PRAM battery. They use a capacitor to supply enough power to maintain the clock and PRAM contents for about 20 seconds while changing a system battery.  This is documented at http://docs.info.apple.com/article.html?artnum=58445 and http://docs.info.apple.com/article.html?artnum=86181.

Set the clock to UTC(GMT) time
The system and hardware clocks should be automatically set during a CD installation on a machine connected to the internet. The usual FG MacBuild process clones an existing hard drive rather than installing Ubuntu from scratch, and so will not set the clocks automatically.

If a Mac OSX hard drive is installed temporarily, setting the clock with the the Date&Time Preferences should set both system and hardware clocks reasonably. Some time zone adjustment may be necessary after Ubuntu is installed.

There are two cli commands that are used to set the clock, even when the applet failure messages occur. The system time is originally set to UTC time, and then then the hardware clock is updated from that setting. In a terminal enter the commands sudo date -u MMDDHHMMYYYY sudo hwclock -uw where MM   - two digit month DD   - two digit day HH   - two digit hour MM   - two digit minute YYYY - four digit year Note that the date/time needs to be UTC(GMT) time, which is +7 hours from PDT, or +8 hours from PST, and the HHMM part is in 24-hour military format (e.g. 4:15PM is 1615 in 24-hour format).

The MacBuild process allows for a Linux Rescue CD (it's currently a Finnix CD) to be used to boot the system before any other software installation to verify POST and configuration. This Linux is command-line only, and can also be used to set the clock. The second command is slightly different in this case, clock vs. hwclock: sudo date -u MMDDHHMMYYYY sudo clock -uw

Time since last check message shows huge number of days at boot
Sometimes after installing a repicated hard drive into a refurbished Mac, the boot process will report (in white text on a black screen) that a file system check has not been performed in several thousand days, usually referring to /dev/hda3. This is a failure in the replication process somehow, and should really be fixed in the replication script. There is a relatively simple command line fix. Use the command tune2fs to set the superblock information on the disk partition to today's date. Here is an example: sudo tune2fs -T 20070530 /dev/hda3 The date part is a six digit string in the form YYYYMMDD (yead, month, day), and the partition is the one mentioned in the original boot time message. You can verify that the last check time has been updated, also using tune2fs like so: sudo tune2fs -l /dev/hda3 Look for the line that says Last checked:.

Ubuntu splash
A normal CD installation of Ubuntu may result in the normal Ubuntu startup splash screen not being displayed. When the system is first booted after installation, the display remains dark for a long time until the small rotator 'waiting' icon appears right before the login screen. This could give the impression that 'nothing is happening'.

The fix:
 * 1) edit /etc/usplash.conf (with nano or vi)
 * 2) change xres=800 to xres=1024
 * 3) change yres=600 to xres=768
 * 4) save and exit
 * 5) on the command line run sudo update-initramfs -u'
 * 6) * this takes about a minute
 * 7) on the command line run sudo ybin -v
 * 8) restart

This fix should already be applied in the hard drive replication images. It has never been made to work with the 17" Studio Display ADC monitors, whose default resolution seems to be 1600x1200.

Video setup on Clamshell iBook
The video display on Clamshell iBooks has a maximum resolution of 800x600, but for some reason the installation sets a maximum resolution of 1024x768. After installation is complete, the file /etc/X11/xorg.conf must be modified to remove 1024x768 from the Modes lines, and set the Default Color Depth to 16. The usplash resolution is also set to 1024x768 byt the installation, so the file /etc/usplash.conf must be modified to reflect that, also. After modifying /etc/usplash.conf, you must run the command sudo update-initramfs -u

Video setup on eMac
Installation does not configure X correctly, and reconfiguring does no better. A manual fix is required. In the file /etc/X11/xorg.conf, replace the Monitor section with this: Section "Monitor" Identifier     "iMac" Option         "DPMS" HorizSync      71-73 VertRefresh    70-140 Modeline "1024x768" 99.190000 1024 1072 1168 1376 768 769 772 810 +HSync +VSync Modeline "1280x960" 122.240000 1280 1328 1424 1696 960 961 964 1002 +HSync +VSync EndSection In the Screen section, add ""1280x960" to each Modes line, like this: Modes     "1280x960" "1024x768" "800x600" "640x480"

Video setup on Flower Power iMac
iMacs with 500MHz, 600MHz, and 700MHz processors, the so called Flower Power models, have a 750cx version CPU and ATI Rage 128 Pro Ultra video controller. After a normal Edgy alternate CD install, video response is extremely sluggish. For example, mouse cursor movements lag several seconds behind physical mouse movement.

A fix is suggested in http://ubuntuforums.org/showthread.php?t=191080. It consists of the following changes to /etc/X11/xorg.conf: NOTE: In Feisty, it is apparently sufficient to just add the "Option ForcePCIMode" line to the      Device Section. - tr 1aug07 Section "Module" Load "dri" Load "extmod" Load "freetype" Load "dbe" Load "glx" EndSection Section "Device" Identifier "ATI Technologies, Inc. Rage 128 Pro Ultra TR" Driver "ati" Option "UseFBDev" "false" Option "SWcursor" "true" Option "ForcePCIMode" "true" EndSection
 * in the Module section
 * 1) Load "i2c"
 * 2) Load "bitmap"
 * 3) Load "ddc"
 * 1) Load "int10"
 * 2) Load "type1"
 * 3) Load "vbe"
 * in the Device section

The normal way to apply these changes is
 * 1) CTL+ALT+F1 to use a virtual terminal (command line interface)
 * 2) login as oem
 * 3) command: sudo /etc/init.d/gdm stop
 * 4) make a backup copy of xorg.conf, e.g. ''cp /etc/X11/xorg.conf   /etc/X11/xorg.conf.`date +%Y%m%d%k%m%S`
 * 5) edit /etc/X11/xorg.conf, for example, sudo nano /etc/X11/xorg.conf
 * 6) modify the Module and Device sections as indicated above
 * 7) save the file and exit
 * 8) command: sudo /etc/init.d/gdm start

The normal Ubuntu login page should appear with much better video response.

Note that the original problem is observed in Ubuntu Edgy (Release 6.10). ATI video driver installation is different in Ubuntu Feisty (7.04), in that a best driver version is selected to match the detected video controller. The problem may not be present with Feisty, but that has not been tested as of 15May2007.