Hacking a IBM x24 laptop
I've been hacking in on this lovely deck in the past two months struggling for running it solid-state (without harddisk)
Interesting resource for misc configations: http://www.bekkoame.ne.jp/~ponpoko/Linux/Chandra/NLX24-e.html anyway dyne:bolic recognizes everything on the fly, even the 3d acceleration
the tricky part is booting and running solid-state
booting works from usb so i use a 256MB, formatted ext3 and installed grub on it, works well enough for ramdisk and kernel
i created the ramdisk with the command:
[d:b] # dynesdk -m pci_hotplug,shpchp,pcmcia_core,rsrc_nonstatic,yenta_socket,pcmcia,ide-cs,eepro100 -o initrd-x24 mkinitrd
then i created the following grub entry:
TODO
the docked system then should be loaded from the compact flash slot, so:
Compact flash support
Hell to accomplish, but still possible after so much hacking
I have a kingston 2GB pro compact flash which has problems with lost interrupts, especially with some non-existing hdf partition:
http://lists.infradead.org/pipermail/linux-pcmcia/2006-July/003762.html http://lists.infradead.org/pipermail/linux-pcmcia/2006-July/003811.html
resolved patching the kernel:
http://www.users.bigpond.com/vkelim/SuSE_notes/node114.html http://lists.osdl.org/pipermail/bugme-janitors/2006-July/000349.html
The solution can be found in a Chuan-Kai Lin. The post refers to a problem back in 2.6.0 release candidates, where some code in drivers/ide/ide_probe.c attempts to handle old Seagate drives. The problem persists at least up to 2.6.18-rc2. The solution is to change the following lines in ide_probe.c (actual_try_to_identify)... if ((a ^ s) & ~INDEX_STAT) { printk(KERN_INFO "%s: probing with STATUS(0x%02x) instead of " "ALTSTATUS(0x%02x)\n", drive->name, s, a); /* ancient Seagate drives, broken interfaces */ hd_status = IDE_STATUS_REG; } else { /* use non-intrusive polling */ hd_status = IDE_ALTSTATUS_REG; } to... if ((a ^ s) & ~INDEX_STAT) { printk(KERN_INFO "%s: was going to probe with STATUS(0x%02x) instead of " "ALTSTATUS(0x%02x) - use non-intrusive probe instead\n", drive->name, s, a); /* was to handle ancient Seagate drives, broken interfaces. */ /* seems to break Muramasa and Kingston 4GB CF, so next line changed */ hd_status = IDE_ALTSTATUS_REG; /* was IDE_STATUS_REG */ } else { /* use non-intrusive polling */ hd_status = IDE_ALTSTATUS_REG; }
anyway that was not enough, i also had to deactivate the hdparm setting on the harddisk, so i added a configuration directive at boot: nohdparm=hde (accepts a comma separated list if necessary)
now i'm just fine tuning the system to work with the latest udev-103 and linux-2.6.18 soon everything will be uploaded