Sunday, May 10, 2009

Searching for a Linux-ready SBC

Here are the must have features:

1) Fanless design - low-power CPU and support chips (5W max)
2) Memory expansion to 4G [preferred] (DIMM or SODIMM socket)
3) Flash drive support (booting via USB or SD/CF card)
4) VGA connector and 1024x768x24bpp resolution
5) 12V DC powered

6) "Fast enough" Ethernet - gigabit nice, 100Mbps OK
7) Cost < $250, quantity 1
8) Support a popular linux distro (no video card oddities)

Nice to haves:
1) capability for dual Ethernet
2) Intel-compatible CPU (ARM or PPC are OK, though - it just needs to run Linux or *BSD) 3) VGA connector and 1900x1200x32bpp resolution
3) several USB and a few audio connectors

See the comments for what I've considered so far.

Friday, May 01, 2009

On the Subject of Trust (Unix history)

It's worth noting that Trust in one person (or program) doesn't mean you should automatically trust another.

Here are a couple of papers that are worth reading:

http://www.c-program.com/kt/reflections-on-trusting.html


Multics is important because it inspired many features in Unix.

http://www.acsac.org/2002/papers/classic-multics.pdf

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:


Saturday, September 02, 2006

Adventure #1

I created this blog to help support people installing Unix on Apple hardware, or integrating Mac and Unix environments.

The two cultures still have difficulty interacting, since Macs have been GUI-oriented since they day they shipped in 1984, and Unix still uses text files and scripts for configuration.

MacOS X uses a lot of XML files for configuration, but that's still not intuitive.