Any questions or comments on these notes may be directed to .
This page documents my trials and tribulations experienced while setting up a new Dell Inspiron 9400. I had researched this machine prior to purchase, specifically w.r.t installing linux on it, and while it seemed that there would be some issues involved in setting it up, it also appeared as though most of the major problems had already been resolved. In retrospect, further research was in fact warranted. Read on..
Setting this baby up was no easy matter, involving a lot of trips to the web for info and software, and many iterations of compile-reboot-test. Overall it's a nice machine, I just wish the hardware weren't *quite* so bleeding edge. Would have had many more problems if not for SystemRescueCD's live CD and if not for all the folks who've gone before me, suffered the same or similar issues, and had the fortitude to work through them. Also thanks to all those open source software creators, testers, and other people involved in ensuring hardware support on Linux continues to be viable. You guys rock!
Boot params: Nothing magic
Resized ~120Gb Windows partition to ~20Gb using gparted LiveCD.
Device Boot Start End Blocks Id System /dev/sda1 1 6 48163+ de Dell Utility /dev/sda2 * 7 2556 20482875 7 HPFS/NTFS /dev/sda3 2557 2982 3421845 db CP/M / CTOS / ... /dev/sda4 2983 14410 91795410 5 Extended /dev/sda5 * 2983 3016 273073+ 83 Linux /dev/sda6 3017 3624 4883728+ 83 Linux /dev/sda7 3625 3989 2931831 83 Linux /dev/sda8 3990 4327 2714953+ 82 Linux swap / Solaris /dev/sda9 4328 4376 393561 83 Linux /dev/sda10 4377 14410 80598073+ 83 Linux
/etc/fstab: #proc /proc proc defaults 0 0 /dev/sda5 / ext3 defaults,errors=remount-ro 0 1 /dev/sda10 /home ext3 defaults 0 2 /dev/sda9 /tmp ext3 defaults 0 2 /dev/sda6 /usr ext3 defaults 0 2 /dev/sda7 /var ext3 defaults 0 2 /dev/sda8 none swap sw 0 0 /dev/hdc /media/cdrom0 iso9660 ro,user,noauto 0 0 /dev/fd0 /media/floppy0 auto rw,user,noauto 0 0
On-board ethernet detected at install.
Install base - Debian 3.1r1
Grub installs to MBR
Selected no particular usage model.
Once installation is complete, add 'testing' sources to /etc/apt/sources.list
aptitude update
aptitude dist-upgrade
aptitude install kernel-image-2.6.8-3-686-smp
(to take advantage of duo core). reboot.
Installed kernel-image-2.6.16-2-686-smp, including source and headers. This solved a lot of problems with compiling of certain modules, but was only available after manually installing 0.68 (I think) of initramfs-tools (0.73c was indexed, but not actually available).
Here's where things got ... interesting.
Grabbed these packages:
ieee80211-1.1.14.tar.gz ipw3945-1.1.0.tar.gz
Installed ieee80211 via standard make/ make install, although had to
ln -sf gcc-3.3 /usr/bin/gccsince 80211 won't compile with gcc-4 on this kernel.
Now making the ipw3945 driver:
cd /blah/ipw3945-linux-1.1.0/ipw3945-1.1.0 make Using ieee80211 subsystem version '1.1.14' (API v2) from: Base: /lib/modules/2.6.8-3-686-smp/ Path: /lib/modules/2.6.8-3-686-smp/include/ EXTRA_CFLAGS = -I/lib/modules/2.6.8-3-686-smp/include/ -DIEEE80211_API_VERSION=2 -g -Wa,-adhlms=check_inc.lst make -C /lib/modules/2.6.8-3-686-smp/build M=/root/wifi/ipw3945-linux-1.1.0/ipw3945-1.1.0 modules make[1]: Entering directory `/usr/src/kernel-headers-2.6.8-3-686-smp' CC [M] /root/wifi/ipw3945-linux-1.1.0/ipw3945-1.1.0/ipw3945.o In file included from /root/wifi/ipw3945-linux-1.1.0/ipw3945-1.1.0/ipw3945.c:68: /root/wifi/ipw3945-linux-1.1.0/ipw3945-1.1.0/ipw3945.h:2102: error: field `wireless_data' has incomplete type /root/wifi/ipw3945-linux-1.1.0/ipw3945-1.1.0/ipw3945.c:1011: warning: `warn_unused_result' attribute directive ignored /root/wifi/ipw3945-linux-1.1.0/ipw3945-1.1.0/ipw3945.c: In function `ipw_send_cmd': /root/wifi/ipw3945-linux-1.1.0/ipw3945-1.1.0/ipw3945.c:1128: error: `ECANCELED' undeclared (first use in this function) /root/wifi/ipw3945-linux-1.1.0/ipw3945-1.1.0/ipw3945.c:1128: error: (Each undeclared identifier is reported only once /root/wifi/ipw3945-linux-1.1.0/ipw3945-1.1.0/ipw3945.c:1128: error: for each function it appears in.) /root/wifi/ipw3945-linux-1.1.0/ipw3945-1.1.0/ipw3945.c: At top level: /root/wifi/ipw3945-linux-1.1.0/ipw3945-1.1.0/ipw3945.c:1154: warning: `warn_unused_result' attribute directive ignored /root/wifi/ipw3945-linux-1.1.0/ipw3945-1.1.0/ipw3945.c:1167: warning: `warn_unused_result' attribute directive ignored /root/wifi/ipw3945-linux-1.1.0/ipw3945-1.1.0/ipw3945.c: In function `ipw_wx_set_scan': /root/wifi/ipw3945-linux-1.1.0/ipw3945-1.1.0/ipw3945.c:12564: warning: unused variable `req' make[2]: *** [/root/wifi/ipw3945-linux-1.1.0/ipw3945-1.1.0/ipw3945.o] Error 1 make[1]: *** [_module_/root/wifi/ipw3945-linux-1.1.0/ipw3945-1.1.0] Error 2 make[1]: Leaving directory `/usr/src/kernel-headers-2.6.8-3-686-smp' make: *** [modules] Error 2
eep!
Solution:
Install linux-2.6.15-2-686-smp via aptitude. Adjust entries in /boot/grub/menu.lst from hda* to sda*, and likewise in /etc/fstab. This will invalidate booting an earlier kernel, but who cares, right? :)
Rebuilt ieee80211 etc according to http://ipw3945.sourceforge.net/INSTALL
All should work, as far as wireless goes. Now to configure wpasupplicant :)
Could not get wpasupplicant working, it refuses to establish the correct WEP parameters. I have therefore (for the time being) hard-coded the WEP params in /etc/network/interfaces.
Also the ipw3945 module loads at boot, but does not initialise the ipw3945d registration daemon. Therefore it (the driver) has to be removed and re-installed, *before* the network interface using it (eth2 in this case) can be brought up:
% rmmod ipw3945 % modprobe ipw3945
Update:
The driver will, after a while, start spitting out errors and such (details to
follow). While these errors are being spit out, the driver hangs, even to the
extent of temporarily disabling the keyboard, which results in an unusable
system.
I therefore invested in a D-Link WUA-1340 USB wireless doohickey. This was fun in itself to get working. A lot of googling and wading through bogus instructions, but this one was useful.
Essentially I had to add the vendor & product ID to rtmp_def.h:
{USB_DEVICE(0x07d1,0x3c04)}, /* D-Link */
(note: these values can be gleaned from the output of lsusb)
then compile. What did I compile? The
rt73 driver and firmware.
Follow the general instructions in the README file in the driver tarball.
Add this to /etc/network/interfaces, to ensure the interface comes up at boot:
auto rausb0 iface rausb0 inet dhcp pre-up ifconfig rausb0 up wireless-essid ...
Have seen it working, which means it worked OOtB, with bluez-utils, and bluetooth module.
Didn't work OOtB, but haven't really tried to get it working yet. Have heard rumours of a linux driver for it.
Update: Upgraded to 2.6.17, and applied a patch for the Ricoh Co Ltd R5C822 SD/SDIO/MMC/MS/MSPro Host Adapter (I forget the origin of this patch). Works like a champ!
Follow these instructions, paying particular attention to building the kernel module for the running kernel (section 4.0, 4.1a), and the X config section (section 5).
Latest alsa drivers did the trick (1.0.12rc2), including the fix for the headphone jack bug reported elsewhere on the www.
Some useful info here.
If, following this, the system refuses to boot with initrd errors, specifically about devfs/ dev/console,pivot_root, etc, make sure /boot/grub/menu.lst has entries for /dev/sda.. instead of /dev/hda..