I compiled the kernel, pcmcia, alsa and tpctl modules with kernel package. I patched with UDMA/IDE patches and ext3. Binary .debs are available here:
I havent tried USB yet although i have some USB devices but i dont expect big problems as i had no problems on my 390E and the usb-uhci driver loads and detects the USB port as expected.
usb.c: registered new driver usbdevfs usb.c: registered new driver hub usb-uhci.c: $Revision: 1.237 $ time 20:33:29 Dec 19 2000 usb-uhci.c: High bandwidth mode enabled PCI: Enabling bus mastering for device 00:3a usb-uhci.c: USB UHCI at I/O 0x1c20, IRQ 11 usb-uhci.c: Detected 2 ports usb.c: new USB bus registered, assigned bus number 1 usb.c: USB new device connect, assigned device number 1 hub.c: USB hub found hub.c: 2 ports detected
To get full 1400x1050 on the Console with 175x65 you need
to set the Vesa mode in the lilo.conf via "vga=0x33b" which
is 1400x1050x8. If you would like to run with 16 or 24 Bit
you will need to use other modes which are probable via
lfb.exe a small dos utility which lists the
available VESA modes. To get better scrolling performance
on the console you might also give additional parameters to
the vesa framebuffer. I am using
vga=0x33b append="video=vesa:mtrr"in my lilo.conf
The Card is completely supported by the XFree 3.3.6 SVGA server and should be supported from XFree 4.0.2 on but i haven't tried that. I am using this XF86Config for the XFree86_SVGA server on Debian using gpm and -R raw for passing through the raw data to the pipe /dev/gpmdata.
I am running XFree 4 4.10 now but i am still having problems with the Xvideo extension (in ogle DVD player playback) with 24bpp - A switch to 16bpp solves the problem. For updated drivers have a look here .
IRDA works flawlessly from kernel 2.2.18 on - Currently i am using 2.4.19-pre2 - Suspend/Resume and Hibernation work as expected - The driver "nsc-ircc" seems to be APM aware.
Installing irda-common is the only thing needed with Debian/Gnu/Linux/Woody
IrDA (tm) Protocols for Linux-2.2 (Dag Brattli) nsc-ircc, Found chip at base=0x02e nsc-ircc, driver loaded (Dag Brattli) IrDA: Registered device irda0 nsc-ircc, Using dongle: IBM31T1100 or Temic TFDS6000/TFDS6500 irlap_change_speed(), setting speed to 9600In the script or with debian set your serial configuarion in the setserial package to "manual" and change the config for /dev/ttyS1 in /etc/serial.conf to
/dev/ttyS1 uart none port 0x0 irq 0
For automatic unloading in case of inactivity i use this unloadirda script which automatically detects if protocols are in use and if not unloads the irda modules after 5 minutes
Sound seems to be the most difficult part right now. The ThinkPad uses the cs461x driver available as OSS and Alsa driver. I am using the Alsa driver currently. To get sound at all you will need to disable PCI Power Management in the BIOS. The OSS Driver seems to have a workaround in it with poking at the ACPI area.
I am using this modules.conf extension for alsa:
alias char-major-116 snd alias snd-card-0 snd-card-cs461x alias char-major-14 soundcore alias sound-slot-0 snd-card-0 alias sound-service-0-0 snd-mixer-oss alias sound-service-0-1 snd-seq-oss alias sound-service-0-3 snd-pcm-oss alias sound-service-0-12 snd-pcm-oss options snd snd_major=116 snd_cards_limit=1 snd_device_mode=0660 snd_device_gid=29 snd_device_uid=0 options snd-card-cs461x snd_index=0
I am currently using alsa 0.5.10 from Debian/Woody backported to potato.
Works as expected with default Debian/GNU/Linux potato pcmcia card services.
Linux PCMCIA Card Services 3.1.22 kernel build: 2.2.18ext3 unknown options: [pci] [cardbus] [apm] PCI routing table version 1.0 at 0xfdee0 00:02.0 -> irq 11 00:02.1 -> irq 11 Intel PCIC probe: TI 1450 rev 03 PCI-to-CardBus at slot 00:02, mem 0x50000000 host opts [0]: [ring] [serial pci & irq] [pci irq 11] [lat 64/176] [bus 2/4] host opts [1]: [ring] [serial pci & irq] [pci irq 11] [lat 64/176] [bus 5/7] ISA irqs (scanned) = 3,4,5,7,9,10,15 PCI status changes cs: IO port probe 0x0c00-0x0cff: excluding 0xcf8-0xcff cs: IO port probe 0x0800-0x08ff: clean. cs: IO port probe 0x0100-0x04ff: excluding 0x170-0x177 0x2f8-0x2ff 0x370-0x377 0x3b8-0x3df 0x4d0-0x4d7 cs: IO port probe 0x0a00-0x0aff: clean. cs: memory probe 0xa0000000-0xa0ffffff: clean.
Suspend/Resume and Hibernation work more or less flawlessly. Everything survives the cycles (IRDA, PCMCIA, X, Sound) when unloading Sound and PCMCIA modules on suspend. Debian does this automatically with the default installation. I installed apmd to take care on this.
One of the funnys is that the system refuses to Suspend/Hibernate when on AC Power and a PCMCIA card is inserted. This is definitly a BIOS bug. Initiating a userspace suspend with "apm -s" works as one of the first things is that the cardmanager gets a "software" eject via "cardctl eject".
To prepare the hibernation file i created/left a 256MB DOS Partition and prepared a hibernation file with the "IBM hibernation utility disk" available from the support section.
It seems the SMAPI is not fully implemented on this NoteBook BIOS but its enough to be able to Suspend/Hibernate with tpctl.
The winmodem is basically supported in a binary only driver. I dont like this black-box-cruft but i guess its better than nothing. Sometimes the driver hangs after first call and gives a "NO DIALTONE" on the second dial. Un-/loading the driver fixes this. You can find the binary/source mix to compile against your kernel here.
00:00.0 Host bridge: Intel Corporation 440BX/ZX - 82443BX/ZX Host bridge (rev 03) Flags: bus master, medium devsel, latency 64 Memory at f8000000 (32-bit, prefetchable) Capabilities: [a0] AGP version 1.0 00:01.0 PCI bridge: Intel Corporation 440BX/ZX - 82443BX/ZX AGP bridge (rev 03) (prog-if 00 [Normal decode]) Flags: bus master, 66Mhz, medium devsel, latency 128 Bus: primary=00, secondary=01, subordinate=01, sec-latency=64 Memory behind bridge: f0000000-f7ffffff 00:02.0 CardBus bridge: Texas Instruments PCI1221 (rev 03) Subsystem: Texas Instruments: Unknown device ac1b Flags: bus master, medium devsel, latency 64, IRQ 11 Memory at 50000000 (32-bit, non-prefetchable) Bus: primary=00, secondary=02, subordinate=04, sec-latency=176 I/O window 0: 00000000-00000003 I/O window 1: 00000000-00000003 16-bit legacy interface ports at 0007 00:02.1 CardBus bridge: Texas Instruments PCI1221 (rev 03) Subsystem: Texas Instruments: Unknown device ac1b Flags: bus master, medium devsel, latency 64, IRQ 11 Memory at 50100000 (32-bit, non-prefetchable) Bus: primary=00, secondary=05, subordinate=07, sec-latency=176 I/O window 0: 00000000-00000003 I/O window 1: 00000000-00000003 16-bit legacy interface ports at 0007 00:03.0 Communication controller: Lucent Microelectronics WinModem 56k (rev 01) Subsystem: AMBIT Microsystem Corp.: Unknown device 0440 Flags: medium devsel, IRQ 11 Memory at e8101000 (32-bit, non-prefetchable) I/O ports at 1c00 I/O ports at 1800 Capabilities: [f8] Power Management version 2 00:05.0 Multimedia audio controller: Cirrus Logic CS 4614/22/24 [CrystalClear SoundFusion Audio Accelerator] (rev 01) Subsystem: IBM: Unknown device 0153 Flags: bus master, slow devsel, latency 64, IRQ 11 Memory at e8100000 (32-bit, non-prefetchable) Memory at e8000000 (32-bit, non-prefetchable) Capabilities: [40] Power Management version 2 00:07.0 Bridge: Intel Corporation 82371AB PIIX4 ISA (rev 02) Flags: bus master, medium devsel, latency 0 00:07.1 IDE interface: Intel Corporation 82371AB PIIX4 IDE (rev 01) (prog-if 80 [Master]) Flags: bus master, medium devsel, latency 64 I/O ports at 1c10 00:07.2 USB Controller: Intel Corporation 82371AB PIIX4 USB (rev 01) (prog-if 00 [UHCI]) Flags: bus master, medium devsel, latency 64, IRQ 11 I/O ports at 1c20 00:07.3 Bridge: Intel Corporation 82371AB PIIX4 ACPI (rev 03) Flags: medium devsel 01:00.0 VGA compatible controller: S3 Inc.: Unknown device 8c12 (rev 13) (prog-if 00 [VGA]) Subsystem: IBM: Unknown device 017f Flags: bus master, 66Mhz, medium devsel, latency 64, IRQ 11 Memory at f0000000 (32-bit, non-prefetchable) Capabilities: [dc] Power Management version 1 Capabilities: [80] AGP version 1.0
Linux version 2.2.18ext3 (root@paradigm) (gcc version 2.95.2 20000220 (Debian GNU/Linux)) #1 Tue Dec 19 20:30:36 CET 2000 Detected 462554 kHz processor. Console: colour dummy device 80x25 Calibrating delay loop... 930.61 BogoMIPS Memory: 128184k/131008k available (840k kernel code, 416k reserved, 1508k data, 60k init) Dentry hash table entries: 16384 (order 5, 128k) Buffer cache hash table entries: 131072 (order 7, 512k) Page cache hash table entries: 32768 (order 5, 128k) Intel machine check architecture supported. Intel machine check reporting enabled on CPU#0. 256K L2 cache (8 way) CPU: L2 Cache: 256K CPU: Intel Pentium III (Coppermine) stepping 06 Checking 386/387 coupling... OK, FPU using exception 16 error reporting. Checking 'hlt' instruction... OK. POSIX conformance testing by UNIFIX mtrr: v1.35a (19990819) Richard Gooch (rgooch@atnf.csiro.au) PCI: PCI BIOS revision 2.10 entry at 0xfd94f PCI: Using configuration type 1 PCI: Probing PCI hardware Linux agpgart interface v0.99 (c) Jeff Hartmann agpgart: Maximum main memory to use for agp memory: 94M agpgart: Detected Intel 440BX chipset agpgart: AGP aperture is 64M @ 0xf8000000 Linux NET4.0 for Linux 2.2 Based upon Swansea University Computer Society NET3.039 NET4: Unix domain sockets 1.0 for Linux NET4.0. NET4: Linux TCP/IP 1.0 for NET4.0 IP Protocols: ICMP, UDP, TCP TCP: Hash tables configured (ehash 131072 bhash 65536) Initializing RT netlink socket Starting kswapd v 1.5 vesafb: framebuffer at 0xf0000000, mapped to 0xc8005000, size 8192k vesafb: mode is 1400x1050x8, linelength=1400, pages=4 vesafb: protected mode interface info at c000:8704 vesafb: pmi: set display start = c00c8764, set palette = c00c87ad vesafb: scrolling: ywrap using protected mode interface, yres_virtual=5991 Console: switching to colour frame buffer device 175x65 fb0: VESA VGA frame buffer device Detected PS/2 Mouse Port. pty: 256 Unix98 ptys configured Real Time Clock Driver v1.09 Uniform Multi-Platform E-IDE driver Revision: 6.30 ide: Assuming 33MHz system bus speed for PIO modes; override with idebus=xx PIIX4: IDE controller on PCI bus 00 dev 39 PIIX4: chipset revision 1 PIIX4: not 100% native mode: will probe irqs later ide0: BM-DMA at 0x1c10-0x1c17, BIOS settings: hda:DMA, hdb:pio ide1: BM-DMA at 0x1c18-0x1c1f, BIOS settings: hdc:pio, hdd:pio hda: IBM-DJSA-232, ATA DISK drive ide0 at 0x1f0-0x1f7,0x3f6 on irq 14 hda: IBM-DJSA-232, 30520MB w/1874kB Cache, CHS=4134/240/63, UDMA(33) Partition check: hda: hda1 hda2 < hda5 hda6 hda7 hda8 hda9 hda10 > apm: BIOS version 1.2 Flags 0x03 (Driver version 1.13) VFS: Mounted root (ext2 filesystem) readonly. Freeing unused kernel memory: 60k freed