Monday, September 04, 2006

Adventure #17: eMac vs. Ubuntu PPC

Had a few adventures with Ubuntu this weekend.

I was installing Ununtu 6.06LTS on a eMac system with no good MacOS X.

First attempt: Using manual disk partitioning, to preserve the HFS-formatted partitions.
Installer aborted when I was informed that I had no HFS partitition set up for the Mac boot purpose.

After some detours using fdisk to manually create a boot partition, which still wasn't recognized, I used the manual partition step again, and named the partition with a specific name that the Ubuntu installer expected.

After the core system was running, wired network was working OK.

I then tried getting wireless networking to work:

After detouring through several other pages, I found the most generally helpful info here:
http://ubuntuforums.org/showpost.php?p=812527&postcount=1

The critical files you need are:
/System/Library/Extensions/AppleAirPort2.kext/Contents/MacOS/AppleAirPort2
and a utility called 'fwcutter'
  1. Obtain access to another Mac OS X system (non-PPC files should not be trusted)
  2. Extract the broadcom firmware files the MacOS X system.
  3. Run the fwcutter application. The fwcutter I was able to install did not recognize the file
  • (Recent MacOS 10.4.7 version of AppleAirPort2 fails the checksum test applied by the fwcutter program.
    • First, I tried recompiling. I had to obtain more recent sources.
    • I needed to use subversion, so I had to download that.
      • After getting the recent fwcutter source release, I tried typing make. No joy. I also needed GNU Make, then GCC.
        • I installed GNU Make and GCC, then found that I needed the header files
      • After getting everything via the synaptics package manager, I finally typed:
make - everything worked this time.
    • fwcutter has checksum values hardcoded in a header file (.h file), which requires recompilation to update the acceptable set of broadcom firmware files [this is bad software engineering practice]
      • After all this, I found that the hardcoded header file STILL did not have a matching checksum for my firmware file.
      • Recompiling wasn't the solution, I had to mount an old backup image on a different Mac, FTP it to the linux box (using wired Ethernet networking).
  • One I had the old version of the firmware file, I was able to install it to /lib/firmware

-rw-r--r--  1 root root   3504 2006-09-04 10:26 bcm43xx_initval01.fw
-rw-r--r--  1 root root     16 2006-09-04 10:26 bcm43xx_initval02.fw
-rw-r--r--  1 root root   2536 2006-09-04 10:26 bcm43xx_initval05.fw
-rw-r--r--  1 root root    248 2006-09-04 10:26 bcm43xx_initval06.fw
-rw-r--r--  1 root root  16200 2006-09-04 10:26 bcm43xx_microcode2.fw
-rw-r--r--  1 root root  19952 2006-09-04 10:26 bcm43xx_microcode4.fw
-rw-r--r--  1 root root  22512 2006-09-04 10:26 bcm43xx_microcode5.fw
-rw-r--r--  1 root root   1312 2006-09-04 10:26 bcm43xx_pcm4.fw
-rw-r--r--  1 root root   1312 2006-09-04 10:26 bcm43xx_pcm5.fw
NOW, you can reboot your box, and it should come up with the ability to use your Broadcom/Aiport Extreme wireless card.

Things finally looked OK, but I still couldn't connect - everything seem to work right up until the dhcp client step (step 4)
http://ubuntuforums.org/showpost.php?p=812527&postcount=1

I never got a valid IP address until I found an alternative set of wireless config scripts at the end of the
thread: (found in http://ubuntuforums.org/showpost.php?p=1199528&postcount=78)

% sudo bash

# ifconfig eth1 up
# iwlist eth1 scan
# iwconfig eth1 channel [myChannel]
# iwconfig eth1 enc [key]
# iwconfig eth1 essid [ESSID]
# exit 

These were the only instructions that worked for me. It seems strange that I had to force a specific Wifi channel, as well as ESSID. With more recent attempts, I tried only specificying the ESSID, which seemed to work OK.

But it's working now, until the next set of reboots. If you have a more permanent solution, please comment here.

Conclusion:

The Ubuntu 6.06 LTS install experience isn't a match for Mac users expectations.

These could be fixed by better 'product management'
  1. Test the install on Apple hardware
  2. Have regular users, not Linux developers, test the install.
In this instance, installing the Broadcom driver without the required firmware, was NOT helpful. (Yes, I know about the issues with open sourcing that code).

In this case, it took someone with too much Mac and Unix development experience to succeed

References:


No comments: