[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

5. Specific Hardware Support

Using this configuration, the screen might not support sleep properly; the fans can run in strange ways (Be careful of overheating!); closing the screen might crash X; the CD burner might not work; ...

Here is how I solved some of these problems:

5.1 Closing the screen  
5.2 Fans and function keys  
5.3 Burner  
5.4 Modem  
5.5 IrDA  


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

5.1 Closing the screen

The nVidia driver is only supposed to work using ACPI. It does not answer APM requests from the CPU. A quick glance to the source (and Google) shows that `nv.c' in `/usr/src/modules/nvidia-kernel-1.0.4191/NVIDIA_kernel-1.0-4191.tar.gz' has a directive #if 0 in which the two case PM_* return 1. Replace this with return 0; and comment the call to rm_power_management.

Of course, you also needed to change #if 0 to #if 1 but you will have corrected, won't you?

If you are using make-kpkg, you will need to re-create a tarball including this change. Otherwise, you should be good enough to find out how to do it yourself :)

With this single change, the laptop soars to all its potential: no more reboots, no more X freezes, and you no longer need to leave X to rmmod nvidia and close the laptop. Wonderland.

Here is my XFree configuration file. There is a harmless mistake in it... You will have to find it :)


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

5.2 Fans and function keys

After unsuccessful attempts to use lm-sensors, I discovered a package called i8kutils which solved all my problems:

 
apt-get install i8kutils

Some changes to `/etc/i8kbuttons' and `/etc/i8kmon' are required:

 
# Sample /etc/i8kbuttons configuration file (used by /etc/init.d/i8kbuttons).

# Change these sample commands with your mixer commands!!!
I8KBUTTONS_UP_CMD="aumix -v +5"
I8KBUTTONS_DOWN_CMD="aumix -v -5"
I8KBUTTONS_MUTE_CMD="/bin/mute"

# Poll interval (milliseconds)
I8KBUTTONS_TIMEOUT=100

# Autorepeat interval (milliseconds)
I8KBUTTONS_REPEAT=0

# end of file

I manage sound using aumix-gtk and gkrellm2 along with its plugin gkrellm-volume2. As aumix had no mute feature, I created a small script `/bin/mute' containing:

 
#!/bin/sh
# Swap mute...
#

VOL=/etc/last_aumix

# If the file exists, set to internal value and erase
if [ -f $VOL ]
then
  aumix -v `cat $VOL`
  /bin/rm $VOL
else
  aumix -v q|sed -e 's/.*,//'>$VOL
  aumix -v 0
fi


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

5.3 Burner

Two settings are necessary to drive the burner correctly. First, in `/etc/lilo.conf':

 
append="hdb=ide-scsi"

and in /dev:

 
ln -s /dev/sr0 /dev/cdrom
ln -s /dev/sr0 /dev/dvd

Follow this with a reboot. Note how we only have rebooted twice so far, and this changes could be made before the first reboot. Some other operating system will have you reboot after moving the mouse :-)

It is then up to you to choose between grip, cdrecord, cdrdao, or any other tool of your choice.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

5.4 Modem

Just follow this blindly:

 
wget -P /usr/src http://linmodems.technion.ac.il/pctel-linux/pctel-0.9.6.tar.gz
./configure --with-hal=i8xx
make
make install

# To test
modprobe pctel
modprobe ptserial

# For the rest of your life
echo "alias char-major-62 ptserial" >> /etc/modutils/pctel
update-modules


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

5.5 IrDA

Supporting the link between a Palm and JPilot didn't cause any problems. On the other hand, I recently aquired an infra-red-enabled phone, and this didn't work out of the box.

The first step was to install several small packages, which may or may not help.

 
apt-get install lirc
apt-get install ircp
apt-get install gsm-utils
apt-get install scmxx

ircp managed to talk directly to the phone, and to transfer the address book, images, themes etc....

My objectives with the phone are two-fold: I want to be able to save the contents of my phone to disk; and, I want to connect to the network using the GPRS mode. This is were the problems start, as my phone is a SunyEricsson T68i, which is known to be buggy. Kudos to irdadump to have helped me find this out.

The IrOBEX mode works just fine. However, when using IrCOMM the phone emits bad parameters: the window size and the minimum response delay are wrong. I caught this second parameter while examining the communication with irdadump:

 
14:53:57.741656 snrm:cmd ca=fe pf=1 2cc4b1b4 > 29c42130 new-ca=ae
        LAP QoS: Baud Rate=4000000bps Max Turn Time=500ms Data Size=2048B
Window Size=7 Add BOFS=0 Min Turn Time=1000us Link Disc=12s (33)
14:53:57.877021 ua:rsp ca=ae pf=1 2cc4b1b4 < 29c42130   
        LAP QoS: Baud Rate=1152000bps Max Turn Time=500ms Data Size=256B Window
Size=3 Add BOFS=0 Min Turn Time=0us Link Disc=12s (31)

The last line indicates a minimum response time of 0, which is illegal. Jean Tourrilhes http://www.hpl.hp.com/personal/Jean_Tourrilhes/IrDA/IrDA.html, suggests using this command:

 
echo 1000 > /proc/sys/net/irda/min_tx_turn_time

On the other hand, the bad window size cannot be corrected with kernels earlier than 2.5.42. Using the specified window size of 3, the phone only reacts as:

 
14:53:57.914408 rr:rsp < ca=ae pf=1 nr=4 (2)
14:53:57.914453 rr:cmd > ca=ae pf=1 nr=2 (2)
14:53:57.924388 rr:rsp < ca=ae pf=1 nr=4 (2)
14:53:57.965741 rr:cmd > ca=ae pf=1 nr=2 (2)

endlessly. From kernel 2.5.42 onwards, the window size can explicitely set by echo 1 > /proc/sys/net/irda/max_tx_window. There is however a patch for 2.4 kernels available here: http://www.hpl.hp.com/personal/Jean_Tourrilhes/IrDA/ir251_qos_param-2.diff. This is rather easy to install, and works well.

The settings for the GPRS link is well documented on http://kotinetti.suomi.net/mcfrisk/linux_gprs.html.


[ << ] [ >> ]           [Top] [Contents] [Index] [ ? ]

This document was generated by François TOURDE on November, 1 2003 using texi2html