The Place of Marlow
Davs !
Who am I ?
Technical Stuff
Asterisk Telephony Switch
Bootable USB Keys
Dell Latitude D600
Dell Latitude X1
Digital Alpha Workstations
Gnome Screenshots
IE Search modified
ISP Mailserver Solution
ISPWorks (ISP Management Solution)
Linux based Access Points
LM sensors configuration
madwifi Debian packages
Pro@ccess Router Setup
Vservers (BSD Jails on Linux)
Wireless Community WAN
Reviews
Pictures
Links
Tagwall
Statistics

Dell Latitude D600 / Inspiron 600m

(includes some stuff for Dell Latitude D800)

Author: Martin List-Petersen - martin at list-petersen dot dk
The newest version of this document can allways be found at http://www.marlow.dk/dell_d600
To see this document without menu etc. (for printing, opens new window), click here.
Version: 0.41
Created: April 22nd, 2003
Last updated: September 2nd, 2005

Acknowledgements: This document describes the steps to get Linux running on the Dell Latitude D600. This will primarily be Debian, but i also will try other, since my employer uses primarily Redhat and i'm also testing around with Gentoo, Knoppix and a couple of other distributions out there. And of course i will try to install Slackware, since that's where i started with Linux.
I've had a couple notebooks through time and allways had Linux on them, but never really made the effort to document my setup. Also the Dell Latitude is so full of new hardware, that can get complicated to get started. So i thought sharing my experience on this area could not be bad.
This document is provided as is, of course. Feel free to use the info provided here, but don't blame me, if it doesn't work. Feedback however is allways appreciated. I can't be made responsible for data loss or other damages in any way.
Another note: most of this stuff can also be used for the Dell Inspiron 600m, it's hardware is nearly identical.

The Arrival


On March 11th, 2003 my notebook finally arrived (2 weeks late, but what, shit happens, when you choose the best from everything, that's on the list.) First thing i did was plug in my USB SC-card reader with a 128 MB SC-card containing RUNT in the USB 2.0 slot on the back of the thing. Of to the BIOS, switch but of USB Storage before boot of harddisk and reboot.
This thing just boots directly in and in the matter of 2 1/2 minuttes i had Linux booted up on the notebook. Yes, there is no graphical environment on RUNT but for testing, exploring or installing a boot manager this is just nice.
Next step: Booting Knoppix from Live-CD.
After rebooting the Notebook (of course unplugging the usb card reader and making sure, that also CD boots before the harddisk is booted) it starts up on Knoppix. This distribution detects ACPI, SigmaTel Soundcard, ATI Radeon 9000 (you should specify "knoppix screen=1400x1050" if you have the SXGA+ screen), Broadcom Gbit Nic and the build-in Bluetooth Module. The SmartCard reader can't be detected. I'll have to look on that. The Knoppix release i used was release 3.2 (20030330).

Hardware

Tech Specs:
  • Intel 855PM based mainboard
  • Intel Pentium M 1,6 GHz CPU (32KB L1 / 1MB L2 on die, 400 MHz FSB)
  • 1GB PC2100 DDR ram (2x512 MB) - The board supports 2GB, but 1GB SoDIMM's are not available yet, as far as i know.
  • ATI Mobility Radeon 9000, AGPx4, 32 MB DDR - (Inspiron 600m is available with 32 and 64 MB)
  • 14.1" SXGA+ TFT Display (supports up to 1400x1050)
  • Intel ICH3/SigmaTel STAC 9750 AC97 Soundcard
  • 60 GB Hitachi drive primary, 40 GB Hitachi drive for Mediabay
  • DVD/CD-RW 8x/24x/10x/24x (HL-DT GCC-4240N)
  • Dell TrueMobile 1400 Wlan (802.11a/b/g) (Broadcom based)
  • Bluetooth (Cambridge Silicon Radio, USB based)
Connectors
  • Serial DB9
  • Parallel DB25
  • VGA DB15
  • NIC RJ-45 (Broadcom 57xx based 10/100/1000 Mbit)
  • Modem RJ-11 (Conexant D480 MDC V.92/Intel 82801DB AC97) - (Inspiron 600m has PCTel 2304WT V92 MDC/Intel 82801DB AC97)
  • SVHS (std.)
  • 2 x USB 2.0
  • IrDA (FIR and SIR, SMC IrCC)
  • Speaker
  • Microphone
  • 1 x Type II PC-Card
  • 1 x SmartCard reader
  • 1 x MediaBay
  • Docking Connector (D-Series)
Other stuff
  • Harddisk carrier (mounted with 1 screw)
  • Mediabay (CD, 2nd HDD, 2nd Battery, Floppy, etc., mounted with 1 screw, not necessarily)
  • Batteries have power indicator (like all Dell Batteries). This is applicable for both the normal and the mediabay battery (I bought both).
  • Ram and Wlan MiniPCI easily accessible by opening hatch below, mounted with 1 screw each
On top of that, i bought the TrueMobile 1184 (802.11b) Access Point, or lets say it has 4 LAN 10/100 mbit ports, 1 port for Internet (router) and is a WLan Access Point/Router combo, which actually is Linux based. You can either run it in Gateway or Access Point mode and it's configured via a webinterface. For most users needs it will be more than sufficient, though it wasn't usable for me as gateway due to lack of features and i've not had the time to see, if i can install another kernel on that box.
Dell does not carry that router anymore. It has been replaced by the TrueMobile 2300 which supports 802.11b/g, but looks quite the same both in looks and also the webinterface.

Booting

DOS from USB SD-Card Reader
Even though this notebook runs Linux, sometimes i need DOS to upgrade BIOS and other things. Since i didn't buy the floppy drive (that is optional) it get's a bit complicated. I have my USB SD-Card Reader (any USB Memory Device should do it) to fix that problem. On http://www.memorykeytools.com/ i found, beyond the Windows 98 USB Storage Drivers, a tool that makes it possible to format most memory storage devices on w2k/xp (yeah .. i know, it says Dell, but it works nicely with most other memory pens and also my SD and MMC cards in an usb reader) bootable. It even automatically installs FreeDOS, if you wish so. Unfortunately the tool has been removed from the website, so you can find a zip archive containing the little tool here.
On Windows 98 with the drivers, it should work without these tools, to format a USB device as DOS bootable thingy. If you want to boot DOS from a floppy, still beeing able to gain access to your USB pen, DUSE should be just the thing for you. It's a DOS driver for USB storage devices.
After preparing a SD-Card with that tool i had no problems booting to it (remember to set the boot order in the bios) and upgrade my BIOS from there.
Besides, the reader that i use is a Dazzle Zio!. It's as little as a usb pen and comes in quite handy when i want to access SD and MMC cards, that i also use for my Palm, the MP3 Player of my Ericsson T39m and the Nokia Communicator. These cards are also common in some digital camera's and aren't very big, so you can allways carry a couple of them around with you, if you want. The reader is USB 1.1 and works perfect under Linux and practically most other operating systems.

In general if you need some good bootdisks with cdrom, network etc. support have a look at Bart's Boot disks. He's building a modular system of putting your own DOS bootdisk together. In time i might provide images specific for the D600/D800 here also.

Floppy
In the meanwhile i got myself a floppydrive anyway. The floppydrive supplied with the D600 (and all other D-Series notebooks) can be connected via a USB-to-MiniUSB cable or by sliding it into the Mediabay. You can boot from it as usual, but when it comes to accessing it in Linux, you'll suddenly find out, that there is no floppydrive controller present.
To make things simple Dell just took a plain usb floppy as Mediabay device. So you'll have to load the usb-storage module and mount the floppy as /dev/sda (assuming, that the floppydrive is the first storage device on usb/firewire/scsi/etc). Much more is there not about it.

Installation


Debian Sarge
Installation starts from CD's. I have a full 8 CD's Debian Woody 3.0r1, thats 7 + updates, but you probably don't need them all, especially because i've done some of the work for you guys out there. The kernel-package containing most of the drivers (NIC, ACPI, etc.) is here.
  • 2.4.22-20030830-marlow
    - This kernel is not an initrd kernel and can be used for bootdisks.
    - final 2.4.22 kernel.
    - ac1 patch.
    - acpi is uptodate in this kernel. The D600 DSDT info is included, but you still can add a custom DSDT table, if you want.
    - tg3 driver (updated version, that should handle the bcm5705/D800 also)
    - b44 driver (Inspiron 1100, 5100, 8500).
    - Orinoco Monitor Mode Patch (http://airsnort.shmoo.com/orinocoinfo.html)
    - i2c and lm-sensors 2.8.0 included.

  • 2.4.22-20030803-marlow
    - This kernel is not an initrd kernel and can be used for bootdisks.
    - pre10-ac1 patch.
    - acpi patch (20030730) is included. The D600 DSDT info is included, but you still can add a custom DSDT table, if you want.
    - bcm5700 driver (6.2.11)
    - bcm4400 driver. This is needed for the Notebooks, that have Broadcom NICs, but 10/100 only (like Inspiron 1100, 5100, 8500).
    - i2c and lm-sensors 2.8.0 included.

  • 2.4.22-pre6-ac1-acpi20030714-bcm-thor
    (There is a 2.88 MB floppy rescue image and a rescue iso cd image. The cd image even includes the Debian packages for this kernel.)
    - This kernel is not an initrd kernel and can be used for bootdisks.
    - acpi patch (20030714) is included. The D600 DSDT info is included, but you still can add a custom DSDT table, if you want.
    - bcm5700 driver (5.0.5)
    - bcm4400 driver. This is needed for the Notebooks, that have Broadcom NICs, but 10/100 only (like Inspiron 1100, 5100, 8500).

  • 2.4.21-acpi20030714-dsdt-swsusp-bcm5705-thor
    (There is a 2.88 MB floppy rescue image and a rescue iso cd image. The cd image even includes the Debian packages for this kernel.)
    - This kernel is not an initrd kernel and can be used for bootdisks.
    - acpi patch (20030714) is included. The D600 DSDT info is included, but you still can add a custom DSDT table, if you want.
    - Suspend to Disk patch (1.0.3) was included.
    - bcm5700 driver (5.0.5)


DSDT table
The DSDT table describes the hardware features and their parameters, like battery status for the notebook battery, fan speeds, temperatures on thermal zones and so on. These are quite different for every machine, reasonable enough.
If you have installed a kernel, that supports custom DSDT table, and want to use that feature, you'll have to copy dsdt-d600-a03.aml to /boot and add the following line to your /etc/lilo.conf:
    initrd=/boot/dsdt-d600-a03.aml
Best in the section for the kernel you just installed. Remember running lilo before you reboot. The original description about the custom DSDT table patch can be found here.

The biggest problem installing Debian (or Linux) on this notebook is actually getting the nic to work. If you have worked with Dell's servers before, you shouldn't have any problem, since the nic is based on the same chip. Broadcom is part of ServerWorks and their chipsets and NIC's are widely used for Dell's servers. After getting that to work, it's really not a problem.
When i finally had network to work (just load the bcm5700 or tg3 module) i upgraded my Woody to Sarge (testing). The ATI Radeon 9000 unfortunately isn't supported yet (will be in XFree 4.3, Woody is 4.1, Sarge is 4.2 currently), but the chances to get it to work there where a bit better. I also added the apt sources for Gnome 2.2 on my machine.
Now all it need's is a "apt-get dist-upgrade" to get to Sarge.

Here is a list of modules, that i started out with:
    ide-scsi
    usb-uhci
    ehci-hcd
    input
    usbkbd
    keybdev
    sound
    i810_audio
    button
    fan
    thermal
    agppart
    radeon
    
Eventually the agppart module has to be loaded with agp_try_unsupported=1, since it's not sure that it will load. You also should add append="hdc=ide-scsi" to your /etc/lilo.conf and run lilo again to ensure, that the DVD/CD-RW combo is found as ide-scsi device. Change your /etc/fstab also, so that it uses /dev/scd0 instead of /dev/hdc, to avoid different problems that could occur due to ide-scsi emulation enabled.
Now to PCMCIA, that need fixing (credits to Mark Holbrook) because it will simply hang forever on boot, if not fixed. In /etc/pcmcia/config.opts you change the line
    include port 0x100-0x4ff, port 0x800-0x8ff, port 0xc00-0xcff
to
    include port 0x100-0x4ff, port 0xc00-0xcff
That fixes the pcmcia init.d script to hang the complete machine on boot.

RedHat Linux 9
I've also prepared kernel rpms for RedHat 9. These can be found at here. These kernel packages are based on the same kernel.spec principle as RedHat's own kernel's. They install themselfes into lilo or grub and the src package consists of the original untouched vanilla kernel tarballs and patches and the additional patches i brought in in seperate files which then upon build are patched together automagically. This way the kernel can easily be modified by adding or removing a patch.

  • kernel-2.4.21-20030730.marlow
    pre6-ac1 patch (this is 2.4.22-pre6-ac1, BCM4400 support: Inspiron 1100, 5100, 8500)
    acpi snapshot 20030714
    custom DSDT table patch
    BroadCom BCM5700 5.0.5 drivers (BCM5705 support: Latitude D600, D800, Inspiron 600m)

  • kernel-2.4.21-ZenWorks.20030730.marlow
    pre6-ac1 patch (this is 2.4.22-pre6-ac1, BCM4400 support: Inspiron 1100, 5100, 8500)
    acpi snapshot 20030714
    custom DSDT table patch
    BroadCom BCM5700 5.0.5 drivers (BCM5705 support: Latitude D600, D800, Inspiron 600m)
    Novell ZenWorks patch

DRM in these kernels still needs some tweaking, before i get it to work properly. It seems like the newest ACPI patch works right away with battery monitoring, if not you can load a dsdt table manually. Find the instructions here.

After installing RedHat 9 follow the installation instructions here:
  • edit /etc/X11/XF86Config:
    The following line:
            FontPath "unix/:7100"
    has to be uncommented as follows:
            # FontPath "unix/:7100"
  • Install the kernel from the rpm (rpm -ivh kernel.rpm), it should also modify grub or lilo, depending on what you installed.

Configuration Steps


Networking
One of the things, that might be annoying is that Debian tries to configure the network card every time you boot the machine, regardless if there is a cable plugged in or not. You can press CTRL-C to stop it from polling the non-existing DHCP server, but it still is annoying, especially on notebooks, where you often are switching locations and sometimes not are connected to network or maybe use wlan instead of. ifplugd can solve this. Edit /etc/network/interfaces so that eth0 is configured, but remove it from the "auto" line. This way eth0 will not come up automatically on boot. Afterwards you install ifplugd. This tool will detect if the cable is plugged in or when it gets removed and configures eth0 automatically then.
Here is a sample of my /etc/network/interfaces before adding wlan and bluetooth:
    auto lo
    iface lo inet loopback
    iface eth0 inet dhcp
    
XFree86 (Necessary on Debian, not on RedHat)
X works with a few tweaks. You can choose to get it running on the framebuffer driver or to you will have to modify the "Device" settings for the graphics card in /etc/X11/XF86Config-4 to the following:
      Section "Device"
        Identifier  "ATI_Radeon_9000"
        VendorName  "ATI"
        Driver      "radeon"
        VideoRam    32768
        ChipID      0x4242
        Option      "AGPMODE" "4"
      EndSection
    
By setting the ChipID, we let X assume, that we have a Radeon 8500 instead, which is practically is the same, but has a few features less. I've also got reports, that "0x4c66" does work better in some cases. After that your X will start up like a charm. If you have the SXGA+ Display you want to add the "1400x1050" resolution to your screen settings, because why not use it, if it's there.
If you want my complete XF86Config-4 file (i'm currently on 4.2.1), then you'll find it here.

WLan
When my notebook arrived i had to realise, that there was no support for Broadcom based (TrueMobile 1400 - a/b/g and 1300 - b/g) Wlan cards in Linux. Even the third Wlan option for the D600 (Intel ProWireless 2100) was not supported, which left me without Wlan support. Instead i ordered a Dell TrueMobile 1150 MiniPCI, which is Orinoco/Agere based (802.11b), as sparepart. But it would take some time before i would get that.
On the 19th of March i borrowed a TrueMobile 1150 PC-Card (still waiting for my MiniPCI card) from a coworker, plugged it in and YES, it tries to load the modules (these are hermes, orinoco and orinoco_cs). This wont work before you've installed the following packages: pcmcia-cs, linux-wlan-ng and wireless-tools. Also you should add the following lines to your /etc/network/interfaces:
    iface eth1 inet dhcp
      wireless_enc   s:secret
      wireless_essid marlow-home
    
Assuming, that your WLan card gets eth1. The option wireless_enc and wireless_essid are optional.
  • "wireless_enc" is the encryption key for your wlan access point, if you have enabled encryption. You can either specify that in hex or as a string (by starting it with "s:" like in the example). The syntax for hex would look like this
        iface eth1 inet dhcp
          wireless_enc   8E:77:70:2D:6B:9C:CF:D7:A1:ED:88:94:F7
          wireless_essid marlow_home
            
    Be aware, that if you have some of the older iBook's around, that they don't support 104/128 bits encryption.

  • "wireless_essid" is the essid of your wlan (in my case "marlow-home").
    Don't use an underscore here, some accesspoints and machines don't like that.
Normally this should be enough. A /etc/init.d/pcmcia restart or plugging the card out and in again and you are settled.

On March 21st it then finally happened: my long awaited TrueMobile 1150 MiniPCI arrived. Now comes the funny part about this: there is no drivers/configuration difference to this in comparison to the pc-card. This is simply a PC-card in MiniPCI format, which includes an own PCI-to-PCcard bridge. lspci shows it quite clear:
    02:01.0 CardBus bridge: O2 Micro, Inc.: Unknown device 7113 (rev 20)
    02:01.1 CardBus bridge: O2 Micro, Inc.: Unknown device 7113 (rev 20)
    02:03.0 CardBus bridge: Texas Instruments PCI1410 PC card Cardbus Controller (rev 01)
    
The first two are the regular cardbus slots on the D600, the last one is from the TrueMobile 1150 MiniPCI. No matter how they implemented this the Dell TrueMobile 1150 is orinoco compatible and there is no problem to get it working on Linux. There is no easier way.

Since October Linuxant offers a driverloader, that acts as wrapper for the Broadcom based Windows drivers, to get them running on Linux. They are available as tar-ball, rpm and Debian packages. It's more or less just following their installation document and worked right away with my TrueMobile 1400. As of version 1.20 of the driverloader it even should support Intel ProWireless 2100 and several others.
Finally Intel also has decided to start supporting the PRO/Wireless 2100 adapters on Linux. There is a SourceForge projects, that has been created in March 2004 and they've allready put some source out there. I haven't tested it, since i don't have that Wlan card, but give it a shot (link in the links section).

Firewire
I had a serious problem with a USB 1.1/2.0/Firewire harddisk of mine, which on the USB port of the Dell Latitude didn't want to work at all (not enough power on the bus). On an active hub it worked for a short while and then went totally mad with I/O errors and stuff like that. I assume it's the USB chipset in the notebook and the chipset in the harddisk case, that simply don't like each other.
Unfortunately the D600 doesn't come with a firewire port (the D800 does, but that is way too heavy for my needs. I want a somewhat light notebook and the 3.5 kg weight of the D800 are way too much). So i went shopping and bought myself a Pyro 1394 Port Firewire PC-Card. When i came home, i plugged that in and found out, that it is unpowered :( . I connected the disk to an external power source, then connected it to the card and loaded the modules (ieee1394, ohci1394 and sbp2). Something seems to prohibit the modules from adding the harddisk (the hardware is found), something that i didn't experience before on my desktop with the SB Audigy firewire port. However running this little script rescans all scsi devices and finds the harddisk. The script can add (or remove, with -r) scsi disks on the fly, without removing or reloading modules.
So i just have to find a PC-card now, that is powered and i'm set for using my external harddisk when i travel, without the need for an extra power source.

Infrared (IrDA)
Another option for communication with external devices, like cellphones, PDA and so on is infrared. The modules needed to get that working are:
    irport
    ircomm
		
On RedHat you'll also have to load the irtty and ircomm-tty modules and to enable IrDA discovery:
    echo -n "1" > /proc/sys/net/irda/discovery
    
(Debian should have taken care of that for you). After running irattach /dev/ttyS1 -s, /dev/ircomm0 will work, when a cellphone with enabled infrared is seen by the IrDA port.
To check, if the computer does see the cellphone or whatever IrDA device you are trying to get to work, you can do the following:
    cat /proc/net/irda/discovery
    
This will print the IrDA device seen by the port.
To use the IrDA port to sync your pda vai pilot-xfer, you also should create a symlink:
    ln -s /dev/ircomm0 /dev/pilot
    
Loading the modules automatically on RedHat can be archieved with the following steps. Add to /etc/modules.conf:
    alias tty-ldisc-11 irtty
    alias char-major-161 ircomm-tty
    alias irda0 irport
    options irport io=0x2f8 irq=3
    
/etc/sysconfig/irda should look like:
    IRDA=yes
    DEVICE=/dev/ttyS1
    DISCOVERY=yes
    
and you'll have to do run
    chkconfig --level 35 irda on
    
After that IrDA should be enabled on boot.

Bluetooth
Communication to a cellphone
One important thing for me is the Bluetooth support, since i will use it for syncronizing with my Palm and the most important thing: getting access to the internet via GPRS or HighSpeed Data via the cellphone without the must of having it in sight of the IrDA port.
The following modules are needed to get this running:
On Debian - add them via modconf or in /etc/modules directly
    hci_usb
    l2cap
    rfcomm
		
On RedHat (this was testet on RedHat 9) the following lines need to be added to /etc/modules.conf
    alias net-pf-31 bluez
    alias bt-proto-0 l2cap
    alias bt-proto-3 rfcomm
    alias tty-ldisc-15 hci_usb
    
hci_usb (this will also load the bluetooth core, called bluez) is the std. usb bluetooth devicedriver for usb devices, l2cap and rfcomm are protocol drivers needed for the serial communication. Unfortunatly the bluez-utils package from testing does not include the rfcomm utility, so we will need the package from Sid (unstable). The best way doing this (to have all packages in place) is installing bluez-utils and then upgrade that package to unstable via lynx:
  • lynx http://packages.debian.org/bluez-utils
  • Choose the unstable bluez-utils package
  • Choose "Go to download page"
  • Press enter on the mirror of your choice
Once downloaded, Debian will ask you, if you want to install the package and of course we want that. After installing edit the file /etc/bluetooth/pin and change that to a numeric pin, since it would be complicated to enter chars on a cellphone. Eventually you also want to change your machine's bluetooth name. That is done in /etc/bluetooth/hcid.conf, option "Name" in the Device section. After all this you need to restart bluetooth with /etc/init.d/bluez-utils restart.
It's time to pair your cellphone with the notebook. I've got a Ericsson T39m, but this should work with any bluetooth enabled cellphone. Choose pairing on your cellphone, it will find the pc on either "BlueZ (0)", which is the default, or the name you specified. Type the pin-code in and done. Your /etc/bluetooth directory should contain a file called link_key now, which holds the key for the pairing between your cellphone and your pc.
Put your phone to active mode (on my Ericsson that is initiating search.) and run hcitool scan to find the MAC address of the phone, which is needed to connect to it. This MAC address goes into your rfcomm configuration (/etc/bluetooth/rfcomm.conf) as:
    rfcomm0 {
      device 00:11:22:33:44:55;
      channel 1;
      comment "Ericsson T39m";
    }
		
After this you can initiate the connection to your phone with rfcomm bind 0. To use this connection, you've got a new device called /dev/rfcomm0, which acts as a normal serial connection to the phone. If you want to use it as a non-root user, your user must be part of the dialout group.
After every session on the device, the channel closes, so it's a good idea to do a "rfcomm release 0 && rfcomm bind 0" before you start a session. To view the status of your sessions, you can just type "rfcomm" and it will print you a list of devices, MAC adresses, channel and status. Also you should give the rfcomm binary a suid bit, if you want to execute it as a normal user, because you can't normally bind and release channels.

Comment: The Ericsson i have has to be put in in search mode, before i can connect to it. This may be different on your phone. Check your phone manual for this stuff.

Bluetooth PAN (Personal Area Network)
The next step is getting PAN to work on Bluetooth. It can be useful, where you can't use WLan or, as it is now with the Broadcom chipset based WLan cards (my Truemobile 1400 :(( ), if you don't have any WLan hardware, that works under Linux.
Little update here guys: I just borrowed a Intel PROWireless 2100 WLan card (makes my D600 a real Centrino) and it's the same s***. No drivers for Linux available. Intel has not yet decided, wether they want to support Linux on the Centrino, or not.
Back to the installation of Bluetooth PAN:
Again I needed to load a couple of kernel modules, to get this to work.
On Debian add these to /etc/modules:
    bnep
    sco
    hci_vhci
		
On RedHat add these to /etc/modules.conf:
    alias bt-proto-2 sco
    alias bt-proto-4 bnep
    alias char-major-10-250 hci_vhci
    
With these drivers enabled it get's possible to run IP directly on bluetooth (without the need of a PPP layer). Also two Debian packages are needed (both from unstable right now):
    bluez-sdp
    bluez-pan
    
Install these and find the configuration file /etc/default/bluez-pan. Go to the PAND section and change the options as needed.
The Master (act's as Bluetooth Access Point and can also be seen as that from Windows machines):
    PAND_ENABLED=1
    PAND_OPTIONS="--master --listen --service NAP"
    
For the client you would need:
    PAND_ENABLED=1
    PAND_OPTIONS="--service NAP -Q"
    

I'll continue this soon, when i find out about more. Still exploring tons of stuff.

CD Burner
I've got the HLDS GCC-4240N DVD/CD-RW drive 8X/24X/10X/24X in my D600. Specifications and User Guide can be found here.
First of all you will need to load the
ide-scsi
module. Eventually add
append = "hdc=ide-scsi"
to /etc/lilo.conf to ensure, that the cdrom get's detected as scsi drive (Remember to run lilo afterwards). Also create the appropriate devices in /dev:
    ln -s /dev/scd0 /dev/cdrom
    ln -s /dev/scd0 /dev/dvd
		
cdrdao configuration is quite easy. The configuration file /etc/cdrdao.conf looks like the following:
    write_buffers: 32
    write_device: "0,0,0"
    write_driver: "generic-mmc"
    read_device: "0,0,0"
    read_driver: "generic-mmc"
    write_speed: 24
		
and you should be up and running.

cdrecord configuration is found in /etc/defaults/cdrecord and looks like this:
    CDR_DEVICE=hlds
    CDR_FIFOSIZE=4m
    hlds=0,0,0 -1 -1 ""
		
I'm not sure if burnfree is supported, i've got to take myself together and test that. Would mean replacing "" with burnfree in the config.

Battery Saving


CPU Speed
ACPI has the ability to handle the speed of your CPU via throttling. I'm in the loop to get some benchmarks and battery lifetime stuff done.
If you want to set the CPU speed manually, try to run cat /proc/acpi/processor/CPU0/throttling. It will output something like this:
    state count:         8
    active state:        T0
    states:
       *T0:              00%
        T1:              12%
        T2:              25%
        T3:              37%
        T4:              50%
        T5:              62%
        T6:              75%
        T7:              87%
    
By running echo "7" > /proc/acpi/processor/CPU0/throttling you can set CPU throttling to 87%.
More efficient it get's using cpufreqd and the latest kernel, that i packaged. The -ac tree has all the cpufreq updates, so it works quite nicely setting the cpu exactly like it would be needed. They even supply Debian and Gentoo packages.

My configuration (/etc/cpufreqd.conf) looks like this:
    [General]
    pidfile=/var/run/cpufreqd.pid
    poll_interval=2
    pm_type=acpi

    [Profile]
    name=perf
    minfreq=0%
    maxfreq=100%
    policy=performance

    [Profile]
    name=psave
    minfreq=33%
    maxfreq=33%
    policy=powersave

    [Rule]
    name=AC_on
    ac=on
    profile=perf

    [Rule]
    name=AC_off
    ac=off
    profile=psave

    [Rule]
    name=DVD_watch
    ac=off
    programs=xine,mplayer,avidemux,gmplayer
    profile=perf
    
This way my notebook will go down to about 600 MHz, if i'm running on battery, unless i'm seeing a movie. As soon as the power supply is plugged in, it goes up to 1,6 GHz again. If you not are sure, at what speed your cpu is running it can be verified by doing a
cat /proc/cpuinfo
and checking the cpu MHz.

Throttling unfortunatly can not be verified that easy (it will allways show 1,6 GHz or whatever speed your CPU is running in /proc/cpuinfo), so i think, this is the nicer way of doing it. However any solution should work. cpufreqd also supports throttling, if the cpufreq feature not is available.

Buttons

i8k
There is a special module for the Inspiron and Latitude models, that can read various data from Dell notebooks. Right now this module has to be loaded with the force=1 option, since it does not recognize the Dell Latitude D600 yet. After loading the output you can cat /proc/i8k and get the following output:
    1.0 A05 SAMPL0J 60 -22 2 27660 110100 -1 2
     |   |     |     |  |  |   |      |    | |
     |   |     |     |  |  |   |      |    | +---- 10. buttons status
     |   |     |     |  |  |   |      |    +------  9. ac status
     |   |     |     |  |  |   |      +-----------  8. right fan rpm
     |   |     |     |  |  |   +------------------  7. left fan rpm
     |   |     |     |  |  +----------------------  6. right fan status
     |   |     |     |  +-------------------------  5. left fan status
     |   |     |     +----------------------------  4. CPU temperature (Celsius)
     |   |     +----------------------------------  3. serial number
     |   +----------------------------------------  2. BIOS version
     +--------------------------------------------  1. /proc/i8k format version
		
The i8kbuttons tool unfortunatly does not seem to work on the D600, it simply does not react to anything. This tool should have been able to execute commands when pressing the volume buttons. I've mailed the developer with the infos and we'll see if this get somewhere.

acpid
Installing acpid itself allready automatically activates your power button. Pressing the power button will simply shut the machine down. This behavior can be changed by editing /etc/acpi/powerbtn.sh, which is the script, that get's executed when you press the power button.
Like the power button, you can add other events (example: the lid sensor/button), to start scripts, when these happen.

Turning off the backlight is one of the things, that this should do. A tool to turn the backlight off can be found at http://fdd.com/software/radeon/ (Thanks to Matus Telgarsky, for pointing that out). Here are the scripts for turning the backlight of, when the lid is activated:

- /etc/acpi/events/lidbtn
    event=button[ /]lid
    action=/etc/acpi/lidbtn.sh
    
- /etc/acpi/lidbtn.sh
    #!/bin/sh
    if [ -f /tmp/ati_blank ]; then
      /usr/sbin/radeontool light on
      rm /tmp/ati_blank
    else
      /usr/sbin/radeontool light off
      touch /tmp/ati_blank
    fi
    
I packaged the radeontool as Debian package. It can be found at ftp://debian.marlow.dk/dists/woody/laptop/pool/vga/radeontool_1.5-1_i386.deb.

To get the backlight turned off, when the xscreensaver starts, it get's a little bit more complicated. I modified the lightwatch.pl script a little bit to fit better to Debian and the package, that i created. The modified perl-script can be found here. Install that somewhere on your system (i put it in ~/bin).
This script has to be run, when X allready is started up and is has to start the radeontool as root, so the easiest way of getting around that is either making it suid root (i don't like that) or give your user sudo rights to use radeontool (this is my choice of handling it).
As root, i used visudo and added the following line:
    marlow ALL=NOPASSWD: /usr/sbin/radeontool *
    
Having lightwatch.pl start, when i log into X can be archived in .xsession (xdm/startx) or .gnomerc (gdm). Just add the following lines there:
    export DISPLAY=:0
    exec ~/bin/lightwatch.pl &
    
As soon as xscreensaver starts, the backlight automatically is turned off. This helps using less power (about 2W) and prohibts your screen from getting burned in images of your desktop.
Note: This does not work, when xscreensaver locks the screen on activation. Have to have a look at that.

Debian Sources


Here are some sources for Debian, that might be of interest:
  • BlueZ
          deb http://bluez.sourceforge.net/download/debian/ ./
          deb-src http://bluez.sourceforge.net/download/debian/ ./
          
  • Gnome 2.2 (Woody)
          deb http://ftp.acc.umu.se/mirror/mirrors.evilgeniuses.org.uk/debian/backports/woody gnome2.2/
          deb-src http://ftp.acc.umu.se/mirror/mirrors.evilgeniuses.org.uk/debian/backports/woody gnome2.2/
          
  • IPv6 enabled packages (Woody)
          deb http://debian.seabone.net/debian-ipv6/ woody ipv6
          deb-src http://debian.seabone.net/debian-ipv6/ woody ipv6
          
  • Laptop Tools etc.
          deb ftp://debian.marlow.dk/ woody laptop
          deb-src http://debian.marlow.dk/ woody laptop
          

Links


History

  • 0.41 - (20050902) added link to perli.net
  • 0.40 - removed URL again. Seems to be a hoax. Update in the X videocard parameters.
  • 0.39 - added URL on the U.S. spying on Dell Inspiron 600m customers.
  • 0.38 - new version of the radeontool (1.5).
  • 0.37 - updated all broken URLs.
  • 0.36 - updated for HTML 4.01 transitional compliance and new website design.
  • 0.35 - added URL for the Intel PRO/Wireless adapter.
  • 0.34 - added URL for the NDISWrapper Project.
  • 0.33 - updated WLan section.
  • 0.32 - updated WLan section.
  • 0.31 - added Linuxant DriverLoader info.
  • 0.30 - fixed broken url.
  • 0.29 - new Debian kernel package added.
  • 0.28 - added hex syntax for WLan.
  • 0.27 - added some WLan stuff.
  • 0.26 - added new Debian sources. Updated some other stuff.
  • 0.25 - added Networking section. Added xscreensaver to acpid.
  • 0.24 - added backlight blanking.
  • 0.23 - fixed spelling bug. Added url to Mike Hardy. Added deb sources.
  • 0.22 - added buttons section.
  • 0.21 - added new kernel, cpufreqd config, floppy section, etc.
  • 0.20 - added Battery Saving section.
  • 0.19 - added links section. Added some in Bluetooth section. Switched IrDA and Bluetooth.
  • 0.18 - added some IrDA stuff.
  • 0.17 - added new RedHat kernel images, includes autoload of modules (missed that on earlier ones.)
  • 0.16 - added new Debian kernel image.
  • 0.15 - several fixes.
  • 0.14 - added link to Bart's Boot disks, added some kernel stuff.
  • 0.13 - new kernel added, fixes nic trouble for Dell Latitude D800.
  • 0.12 - added mbrtools, since they where removed on original site.
  • 0.11 - added infrared and cd burner stuff.
  • 0.10 - updated different url's.
  • 0.09 - updated kernel section. Added RedHat kernel.
  • 0.08 - small updates.
  • 0.07 - added wlan section.
  • 0.06 - added firewire stuff.
  • 0.05 - added hardware specs and some other stuff.
  • 0.04 - booting DOS on USB storage devices added.
  • 0.03 - more bluetooth stuff, not finished. Some WLan research.
  • 0.02 - added Bluetooth stuff.
  • 0.01 - initial document.



Website last modified: Jan 8th, 2007 - 1:39 PM  GMT.
(C)opyright 1997 - 2007  by Martin List-Petersen
IPv6 Ready Hosting by TuxBoxValid HTML 4.01!Valid CSS!