Lunchtime Semaphore

from and to 372433 143758 48 N

Debian sur Thinkpad T40

January 2nd, 2006 by

Installation et configuration d’une Debian sur un IBM Thinkpad T40. Une grande partie des manipulations décrites ici devrait aussi fonctionner pour Ubuntu ou d’autres distributions Linux.

Note: Les manipulations décrite sur cette page datent de 2006. Depuis, beaucoup de choses ont évolué, alors avant de tenter la manip, il est bon de vérifier que tout ne marche pas déjà tout seul…

Installation

L’installation ne pose pas de problèmes majeurs. Pour bénéficier des derniers outils de gestion d’énergie notamment, j’ai choisi d’installer la version testing de Debian (etch). L’image nécessaire pour l’installation par le réseau est disponible à http://www.debian.org/devel/debian-installer/.

Il est bon de rajouter les modules spécifiques au thinkpad: apt-get install tpctl tpb (l’affichage osd du volume) et module-assistant thinkpad. Pour s’assurer du chargement du module thinkpad, ajouter la ligne thinkpad dans le fichier /etc/modules. Il faut aussi charger le module nvram.

WIFI

Le driver utilisé par le centrino pour le WIFI est ipw2100. L’installation se fait simplement par module-assistant ipw2100 Ce module a également besoin du module ieee80211: module-assistant ieee80211 Attention, pour des raison de license, Intel n’autorise pas la récupération automatique du firmware nécessaire, vous devez donc le faire manuellement en suivant les instructions.

Les outils nécessaires sont obtenus par
apt-get install wireless-tools
Normalement, une fois les modules et les outils installés, tout se charge au démarrage. L’interface WIFI correspond à eth1 dans mon cas.

Quelques commandes utiles:

  • Status courant du WIFI (mode, association, débit)
    iwconfig
  • Liste les points d’accès alentours
    iwlist scanning
  • Associe la carte réseau au point d’accès MONRESEAU
    iwconfig eth1 essid MONRESEAU
  • Toutes les infos utiles qu’on peut obtenir avec iwlist
    man iwlist
  • Toutes les commandes pour configurer le WIFI
    man iwconfig

Pour une configuration automatique, on peut modifier le fichier /etc/network/interfaces. Par exemple:

auto eth1
iface eth1 inet static
	address 192.168.1.2
	netmask 255.255.255.0
	wireless-mode Managed
	wireless-rate 11M
	wireless-essid MONRESEAU
	wireless-key restricted 0123456789abcdef0123456789

Une instruction telle que iwconfig eth1 essid MONRESEAU se traduira par une ligne wireless-essid MONRESEAU dans ce fichier.

Gestion d’Energie avec le cpu scaling

Le centrino est capable de changer de fréquence (cpu scaling) selon sa température, l’état de la batterie ou la charge de travail.Il faut pour cela installer cpufreq: apt-get install cpufreqd et charger le module adéquat au démarrage: ajouter la ligne speedstep-centrino dans le fichier /etc/modules pour charger le module au démarrage ou modprobe speedstep-centrino

Des infos utiles se trouvent dans l’arborescence de /sys/:
cd /sys/devices/system/cpu/cpu0/cpufreq/

  • montre les frequences disponible
    cat scaling_available_frequencies
  • fréquence actuelle
    cat cpuinfo_cur_freq
  • differentes strategies de changement de fréquences
    cat scaling_available_governors

Si vous ne disposez que de performance comme gestion de fréquence, il faut charger d’autres modules: cpufreq_ondemand et cpufreq_powersave (avec modprobe ou par l’intermédiaire de /etc/modules au démarrage).

Le choix de la stratégie utilisée est fait par cpufreq selon sa configuration spécifiée dans le fichier /etc/cpufreqd.conf. La configuration consiste à définir une liste de profils [Profile] et une liste de règles [Rule] pour appliquer ces profils. Les profils définis par défaut conviennent bien, mais pour étendre un peu la vie de la batterie, j’ai un peu modifié les règles: profile=Powersave Low lorsque le portable est sur batterie. Chacun peut adapter les règles selon son utilisation, la structure du fichier de configuration est assez simple.

Hibernate et Suspend

La mise en veille prolongée (suspend to RAM) du portable ne pose pas de problème, par contre, l’hibernation (suspend to disk) nécessite d’appliquer un patch sur le noyau (donc de recompiler), je n’ai pas testé. Les explications sont disponibles à http://www.suspend2.net/.

Touches raccourci

Pour bénéficier des touches de raccourci (Fn+F3, Fn+F4…) il faut installer acpi apt-get install acpid. Un module pour le thinkpad est disponible ibm-acpi (à charger avec modprobe ou par l’intermédiaire de /etc/modules au démarrage). Ce module fourni notamment les informations sur l’état de la lumière, mais surtout permet d’activer les combinaisons avec la touche Fn.

Pour activer ces combinaisons, il faut effectuer les commandes echo enable > /proc/acpi/ibm/hotkey et echo 0xffff > /proc/acpi/ibm/hotkey (nous verrons un peu plus loin comment automatiser tout ca au démarrage).

Suspend to RAM: Fn+F4

Installer hibernate: apt-get install hibernate. Créer un fichier /etc/acpi/events/Fn-F4 contenant

event=ibm/hotkey HKEY 00000080 00001004
action=/usr/sbin/hibernate --config-file=/etc/hibernate/ram.conf

Extinction de l’écran: Fn+F3

Intaller radeontool : apt-get install radeontool. Créer le fichier /etc/acpi/events/Fn-F3 contenant:

event=ibm/hotkey HKEY 00000080 00001003
action=sh /etc/acpi/Fn-F3.sh

Et le fichier /etc/acpi/Fn-F3.sh. Attention, veillez aussi à créer le repertoire /etc/acpi/actions (sous peine de ne pas pouvoir rallumer l’écran).

#!/bin/bash
if [ -f /etc/acpi/actions/lightoff ]; then
radeontool light on
rm /etc/acpi/actions/lightoff
else
radeontool light off
touch /etc/acpi/actions/lightoff
fi

Extinction de la carte WIFI: Fn+F5

Créer le fichier /etc/acpi/events/Fn-F5:

event=ibm/hotkey HKEY 00000080 00001005
action=sh /etc/acpi/Fn-F5.sh

Et le script /etc/acpi/Fn-F5.sh:

#!/bin/bash
if [[ $( < "/sys/bus/pci/drivers/ipw2100/0000:02:02.0/rf_kill") != 0 ]]; then
echo 0 > /sys/bus/pci/drivers/ipw2100/0000:02:02.0/rf_kill
else
echo 1 > /sys/bus/pci/drivers/ipw2100/0000:02:02.0/rf_kill
fi

Tout ca marche après un redémarrage de acpi: /etc/init.d/acpid restart.

Tout au démarrage

Pour mettre les options necessaires au demarrage et commencer avec la carte WIFI desactivée, créer le fichier /etc/init.d/initperso

#!/bin/bash
echo 1 > /sys/bus/pci/drivers/ipw2100/0000:02:02.0/rf_kill
echo enable > /proc/acpi/ibm/hotkey
echo 0xffff > /proc/acpi/ibm/hotkey

Ne pas oublier de mettre les droits d’execution pour ce fichier: chmod +x /etc/init.d/initperso et de le rajouter à la séquence de démarrage: update-rd.d initperso defaults.

Rajouter les modules à charger au démarrage au fichier /etc/modules.

# /etc/modules: kernel modules to load at boot time.
thinkpad
nvram
speedstep-centrino
cpufreq_ondemand
cpufreq_powersave
ibm-acpi

Liens

Plusieurs sites donnent des informations utiles sur l’utilisation de linux sur les portables IBM:

This entry was posted on Monday, January 2nd, 2006 at 17:05 UTC and is filed under Debian on Thinkpad. You can follow any responses to this entry through the RSS 2.0 feed. You can leave a response, or trackback from your own site.

Loading Facebook Comments ...

2 responses about “Debian sur Thinkpad T40”

  1. Kassandre said:

    Bonjour,

    Tout d’abord, merci infiniment pour cette documentation qui m’a beaucoup aidé !

    Voici quelques correction à apporter :

    /etc/acpi/Fn-F5.sh
    -> /etc/acpi/Fn-F5

    update-rd.d initperso default
    -> update-rc.d initperso defaults

    ibm-acp
    -> ibm-acpi

    Et je crois que j’en ai vu une ou deux autres mais je ne me souviens plus où. De toute façon on déduisait les corrections du contexte donc c’est pas bien grave.

    Merci encore,
    Kassandre

  2. Melaneum said:

    Merci beaucoup pour ces corrections, elles sont maintenant appliquées dans l’article.

Leave a Reply