Saturday 18 April 2009

DSL Linux on the Omnibook 800CT - Part 3

Now we have DSL installed and X running properly we can look at customising it for the 800CT and its role as an rsync server.

First of all, the 800CT doesn't have AGP, USB, Firewire or any of that newfangled stuff. As DSL is Knoppix-derived, it does a lot of device detection and configuration on startup but we can disable these using the previously mentioned cheatcodes in /boot/grub/menu.lst.

However, we do want APM enabled and although the HDD supports UDMA this is beyond the 800CT - not surprising since the standard was actually introduced after the 800CT launched.

Finally, I want to mount /dev/hda3 on /srv for rsync to use for file storage. This means I would rather Knoppix didn't recreate /etc/fstab on bootup.

Putting this all together we now have a line in /boot/grub/menu.lst that reads:

kernel /boot/linux24 root=/dev/hda1 quiet vga=normal nofirewire nousb
... noagp noacpi nodma noscsi nofstab frugal

I know the 800CT does in fact have a built-in SCSI port which was dead cool at the time but I don't see myself using it right now.

I also need to manually mount /dev/hda3 since just putting an entry in /etc/fstab is not enough. Knoppix drive detection means that there's no mount -a in the startup process. A quick look in /etc/rc5.d shows that /opt/bootlocal.sh is where I need to add mount /dev/hda3.

Finally, for now, torsmo is the neat little utility that puts system stats on the desktop in DSL. So I update /root/.torsmorc and /home/dsl/.torsmorc to display drive stats for /srv rather than /home/dsl.

DSL Linux on the Omnibook 800CT - Part 2

OK, here's my annotated minimal XF86Config-4 file - it's quite a bit shorter than your typical sample file but works for me:

# XFree86 has has built-in defaults for font file paths
Section "Files"
ModulePath "/usr/X11R6/lib/modules"
EndSection

# Desktop rendering isn't quite right without these
# DRI/GLX are way beyond the Neomagic chip!
Section "Module"
Load "dbe"
Load "extmod"
Load "freetype"
Load "record"
Load "type1"
EndSection

# I have a UK Omnibook
Section "InputDevice"
Identifier "Keyboard[0]"
Driver "keyboard"
Option "XkbRules" "xfree86"
Option "XkbModel" "pc102"
Option "XkbLayout" "gb"
EndSection

Section "InputDevice"
Identifier "Mouse[0]"
Driver "mouse"
Option "Device" "/dev/psaux"
Option "Protocol" "PS/2"
EndSection

Section "Device"
Identifier "Omnibook"
Driver "neomagic"
EndSection

# Auto mode selection doesn't work without sync/refresh rates
Section "Monitor"
Identifier "Monitor[0]"
HorizSync 31.5 - 48.5
VertRefresh 50.0 - 70.0
EndSection

# I only intend to run 800x600x16
Section "Screen"
Identifier "Screen[0]"
Device "Omnibook"
Monitor "Monitor[0]"
DefaultDepth 16
SubSection "Display"
Depth 16
Modes "800x600"
EndSubSection
EndSection

Thursday 16 April 2009

Excellent Resource - SpareInfo

This chap has been doing some sterling work on getting Linux up on the U810 with some good tablet driver and rotation stuff. Well worth a look.

Tuesday 14 April 2009

DSL Linux on the Omnibook 800CT - Part 1

I plan to turn my one of my old Omnibook 800CT's into a "smart" wireless backup drive. It's not a lot bigger than one of the regular smart drives being basically an early netbook but its got enough grunt to act as an rsync server and also, at a push, can actually display most of its content. It's also much more configurable since it will have a local screen, and a proper OS.

Specs as follows:
  • CPU: P166 MMX
  • RAM: 80MB
  • HDD: 160GB IDE (BIOS only sees 8GB but that's not a problem for a sensible OS)
  • Display: 800x600 16-bit 10.4" TFT
  • Graphics: Neomagic 128ZV
  • Dimensions: 28.2 cm x 18.5 cm x 4 cm
  • Weight: 1.8kg

I'm trying Damn Small Linux for this purpose - if it goes well then it will go onto my other lower-spec 800CT's which will become basically wireless X terminals.

First off, the Omnibook won't boot from CD. I've lost the SCSI and power cables for the Omnibook's own CD-ROM drive but I have a 10-year-old PCMCIA Freecom Traveller CDRW around (the old drive in it expired long ago but you can drop any slimline ATA optical drive in).
  1. Download the DSL iso and burn to CD

  2. Download the DSL boot floppy image and rawwrite/dd to a disk (I used rawwrite since to 800CT still has an old Windows 98SE install on it.)

  3. Download the DSL pcmcia driver floppy image and rawwrite to another disk

  4. Boot from the first floppy and enter dsl frompcmcia at the boot prompt

  5. Insert pcmcia driver floppy when prompted
At this point we discover that the default Xserver doesn't work (nasty stripes all over the screen). Trying the boot prompt cheatcode xmodule=fbdev fb800x600 gets me a working display but the mouse is all over the place. So CTRL-ALT-BACKSPACE out of X at this point and go for a command-line installation:
  1. Partition the hard drive using fdisk - I went for 512MB root, 512MB swap at this point

  2. sudo su gets to a root prompt

  3. dslinstall brings up an installation menu

  4. Select Install to hard disk
This works fine - swap is picked up automatically if mkswap has been run on the partition. Logging on tries to bring up X automatically but it's easy enough to kill the X server as above provided you selected the fb800x600 GRUB boot option on startup. The DSL Wiki suggests that the answer to the mouse problems is to use XFree86.dsl extension rather than the minimal X servers. To do this I need wireless networking up and running - there's an old NetGear MA401 802.11b PCMCIA card in the Omnibook which the installer picked up (cardctl ident confirms this) so it needs configuring (it appears as eth0 in DSL):
  1. iwconfig eth0 essid MYSSID key XXXX...

  2. ifconfig eth0 up

  3. pump (no, not dhcpclient or anything like that - thankyou, DSL Wiki, I wouldn't have got that one)

  4. mydsl-wget XFree86.dsl system

  5. mydsl-load XFree86.dsl

  6. Edit /root/.xserverrc and /home/dsl/.xserverrc to run the XFree86 server which means that the default DSL GRUB boot option will now work:
    exec /usr/X11R6/bin/XFree86 -nolisten tcp
  7. chattr +i .xserverrc (sets the file as immutable to stop accidental reversion to Xvesa)
Now the crunch - getting the configuration file /etc/X11/XF86config-4. For this, I started with an empty file and added sections until startx brought up a a reasonable uncorrupted screen. I'll post an annotated version later.

Tuesday 7 April 2009

Nokia 5800 16GB

There's been a lot of talk online about problems with 16GB micro SDHC cards in the 5800. Just got a Dane-Elec 16GB Class 4 card from 7dayshop which seems to work fine and was pretty cheap too.

Have put the MTP issue on hold for a bit and just mounted the 5800 as USB Media and copied 8-9GB of MP3 across which took a while. The whole SDHC speed class thing is a bit of a joke - even class 6 isn't exactly speedy (40x in old money). When you see Pretec launching CF cards at 666x...

Monday 6 April 2009

Joys of Atheros

Have been playing with the Nokia 5800 and Joikuspot which turns the 5800 into an ad hoc wireless 3/3.5G router which is nice, very, very nice.

Except that ad hoc on the U810's Atheros is distinctly non-trivial. With the madwifi (now moved to http://madwifi-project.org) drivers, the athX devices are VAP's (virtual access points) created from the root device, wifi0 using wlanconfig . The important thing to realise is that the athX device only supports a particular wireless mode. By default (in OpenSuSE 11.0, anyway) this is sta which is workstation infrastructure mode and requires an access point. The Joikuspot network shows up in KNetworkManager but you can't connect.

Fair enough, you can create another VAP to support adhoc mode as madwifi allows you to have multiple VAP's which allows you to neat things like use your U810 as a wireless repeater or gateway. Except there's a bug - the one sort of VAP you that doesn't play nicely in multiple VAP configurations is adhoc. And judging from project discussions fixing adhoc is not exactly top of the priority list since it's not "enterprise" and anyway we're meant to be moving to the fully open ath5k driver anyway.

The alternative then, is to destroy the default sta mode VAP and create the adhoc one so it is the only one. To their credit, the madwifi website does document this all quite clearly although it does confuse KnetworkManager a little. Then all is good except, of course, I can't roam and connect to the vast majority of infrastructure mode access points out there until I reverse the process. I did start setting up a couple of scripts to switch between the two modes when I encountered another issue with adhoc VAP's which is that every so often I was getting a hard lockup and I mean power-cycle hard.

So it's off to Bluetooth DUN profile tethering for me for a bit (shame the 5800 doesn't have a PAN profile...). Which might turn out for the best, since Bluetooth power consumption on both the 5800 and U810 is much lower than for wifi. Not as elegant though IMHO :(.

P.S. ath5k doesn't even recognise the card.

P.P.S. I tried swapping the Atheros for an Intel Wireless PCI-E card in the U810. No dice - the BIOS looks for the Atheros and doesn't seem to enable the PCI-E slot if it's not there.