= 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 ;)