This article is part of the OQO odyssey series – You might want to read Part 1 first.
But if you remember the first article about the installation, I have left 15 GB for a Linux installation on that UMPC. The gentoo LiveCD will be just fine for this job. For better readability, I recommend using the gentoo-nofb kernel. A positive side effect might be, that the unknown hardware will surely handle the common terminal.
The OQO booted up and arrived on the common bash prompt waiting for my commands. This must be my lucky day. Let’s start with some hardware inspection by looking at /proc/cpuinfo for some decent information about the brick here:
livecd ~ # cat /proc/cpuinfo processor : 0 vendor_id : GenuineTMx86 cpu family : 6 model : 4 model name : Transmeta(tm) Crusoe(tm) Processor TM5800 stepping : 3 cpu MHz : 999.211 cache size : 512 KB fdiv_bug : no hlt_bug : no f00f_bug : no coma_bug : no fpu : yes fpu_exception : yes cpuid level : 1 wp : yes flags : fpu vme de pse tsc msr cx8 sep cmov mmx longrun lrti up bogomips : 2014.40
Our victim is a Crusoe CPU made by Transmeta – a CPU consisting of three-fourths Software and one-fourth of Hardware. Bummer – that’s strange. Well: The Crusoe emulates x86 architecture with a limited instruction set. For a little speed gain, the internal code morphing system works with 128 bit. But what does limited instruction set mean for us? Code alignment functions are unsupported.
As I want to run Gentoo on that UMPC, there’s no way around the GCC Documentation for determining the correct CFLAGS. Code alignment can be turned off by using -Os. So I’d suggest using the following settings:
-march=i686 -Os -mmmx -pipe -fomit-frame-pointer
Our little journey into cpu architectures might be fun, but I guess heading to the rest of the hardware might be fun too. The PCI bus offers the following devices:
livecd ~ # lspci 00:00.0 Host bridge: Transmeta Corporation LongRun Northbridge (rev 04) 00:00.1 RAM memory: Transmeta Corporation SDRAM controller 00:00.2 RAM memory: Transmeta Corporation BIOS scratchpad 00:00.3 RAM memory: Transmeta Corporation Unknown device 0399 00:03.0 Multimedia audio controller: ALi Corporation M5451 PCI AC-Link Controller Audio Device (rev 02) 00:05.0 FireWire (IEEE 1394): Texas Instruments TSB43AB22/A IEEE-1394a-2000 Controller (PHY/Link) 00:06.0 VGA compatible controller: Silicon Motion, Inc. SM720 Lynx3DM (rev c1) 00:07.0 ISA bridge: ALi Corporation M1533/M1535 PCI to ISA Bridge [Aladdin IV/V/V+] 00:0c.0 USB Controller: NEC Corporation USB (rev 43) 00:0c.1 USB Controller: NEC Corporation USB (rev 43) 00:0c.2 USB Controller: NEC Corporation USB 2.0 (rev 04) 00:0f.0 IDE interface: ALi Corporation M5229 IDE (rev c4) 00:11.0 Bridge: ALi Corporation M7101 Power Management Controller [PMU]
As I’m clueless about if this would ever work, I start doing the partition scheme as I’m about to run out of power soon. You know, the power supply is semi-broken…
livecd ~ # fdisk -l /dev/hda Disk /dev/hda: 30.0 GB, 30005821440 bytes 255 heads, 63 sectors/track, 3648 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Device Boot Start End Blocks Id System /dev/hda1 * 1 1824 14651248+ 7 HPFS/NTFS /dev/hda2 1825 3648 14651280 5 Extended /dev/hda5 * 1825 1831 56196 83 Linux /dev/hda6 1832 1894 506016 82 Linux swap / Solaris /dev/hda7 1895 2381 3911796 83 Linux /dev/hda8 2382 3648 10177146 83 Linux
The boot partition will have 50 MB for being able to test some kernels on Ext2. 512 MB Swap and 5 GB Portage should leave enough free space for the root filesystem.
As there is still some power left I start with downloading the stage file and a manual sync of the gentoo portage. Just in time the battery is out now and I’m shutting the device down for now. See you later folks!