Linux - ASUS A6JM

Description matérielle

Introduction  

Voici une documentation sur l'installation de Linux sur un portable ASUS A6J et plus précisément sur le modèle Asus A6JM-AP025H.

Certaines parties du document seront prochaintemant complétées.

Si vous avez des questions, vous pouvez toujours me joindre :
progweb -AT- free.fr

Matériel  
Processeur Intel Core Duo T2400 Centrino Duo - 1,83 GHz
RAM 2 Go DDR2
Carte mémoire Ricoh Co Ltd R5C822 SD/SDIO/MMC/MS/MSPro Host Adapter
CD / DVD MATSHITADVD-RAM UJ-841S, ATAPI CD/DVD-ROM drive
Disque dur FUJITSU MHV2120AH PL, ATA DISK drive - 120 Go
Contrôleur IDE Intel Corporation 82801G (ICH7 Family) IDE Controller
Carte graphique nVidia GeForce Go 7600 - 512 Mo
Carte son Intel Corporation 82801G (ICH7 Family) High Definition Audio Controller
Carte réseau Realtek Semiconductor Co., Ltd. RTL8111/8168B PCI Express Gigabit Ethernet controller
Carte Wi-Fi Intel Corporation PRO/Wireless 3945ABG Network Connection
PCMCIA Ricoh Co Ltd RL5c476 II
Autres Webcam, Bluetooth, Modem, FireWire, Touchpad...
Configuration PCI  

Ci-dessous la sortie de la commande lspci :

[root@Dahlia /root]$ lspci
00:00.0 Host bridge: Intel Corporation Mobile 945GM/PM/GMS/940GML and 945GT Express Memory Controller Hub (rev 03)
00:01.0 PCI bridge: Intel Corporation Mobile 945GM/PM/GMS/940GML and 945GT Express PCI Express Root Port (rev 03)
00:1b.0 Audio device: Intel Corporation 82801G (ICH7 Family) High Definition Audio Controller (rev 02)
00:1c.0 PCI bridge: Intel Corporation 82801G (ICH7 Family) PCI Express Port 1 (rev 02)
00:1c.3 PCI bridge: Intel Corporation 82801G (ICH7 Family) PCI Express Port 4 (rev 02)
00:1d.0 USB Controller: Intel Corporation 82801G (ICH7 Family) USB UHCI #1 (rev 02)
00:1d.1 USB Controller: Intel Corporation 82801G (ICH7 Family) USB UHCI #2 (rev 02)
00:1d.2 USB Controller: Intel Corporation 82801G (ICH7 Family) USB UHCI #3 (rev 02)
00:1d.3 USB Controller: Intel Corporation 82801G (ICH7 Family) USB UHCI #4 (rev 02)
00:1d.7 USB Controller: Intel Corporation 82801G (ICH7 Family) USB2 EHCI Controller (rev 02)
00:1e.0 PCI bridge: Intel Corporation 82801 Mobile PCI Bridge (rev e2)
00:1f.0 ISA bridge: Intel Corporation 82801GBM (ICH7-M) LPC Interface Bridge (rev 02)
00:1f.1 IDE interface: Intel Corporation 82801G (ICH7 Family) IDE Controller (rev 02)
01:00.0 VGA compatible controller: nVidia Corporation G70 [GeForce Go 7600] (rev a1)
02:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168B PCI Express Gigabit Ethernet controller (rev 01)
03:00.0 Network controller: Intel Corporation PRO/Wireless 3945ABG Network Connection (rev 02)
04:01.0 CardBus bridge: Ricoh Co Ltd RL5c476 II (rev b3)
04:01.1 FireWire (IEEE 1394): Ricoh Co Ltd R5C552 IEEE 1394 Controller (rev 08)
04:01.2 Generic system peripheral [0805]: Ricoh Co Ltd R5C822 SD/SDIO/MMC/MS/MSPro Host Adapter (rev 17)
04:01.3 System peripheral: Ricoh Co Ltd R5C592 Memory Stick Bus Host Adapter (rev 08)

Configuration USB  

Ci-dessous la sortie de la commande lsusb :

[root@Dahlia /root]$ lsusb
Bus 005 Device 004: ID 174f:a311
Bus 005 Device 001: ID 0000:0000
Bus 003 Device 002: ID 0b05:1712 ASUSTek Computer, Inc.
Bus 003 Device 001: ID 0000:0000
Bus 002 Device 001: ID 0000:0000
Bus 001 Device 004: ID 046d:c047 Logitech, Inc.
Bus 001 Device 001: ID 0000:0000
Bus 004 Device 001: ID 0000:0000

Installation distribution

Debian unstable  

Ayant l'habitude de travailler avec une distribution Debian, mon choix s'est naturellement porté vers Debian, et plus particulièrement sur la version Sid (ou encore unstable)

Toute fois, cela devrait être exactement la même chose en ce qui concerne les autres ditributions.

Pour commencer l'installation, j'ai utilisé la première ISO d'une Debian testing. J'installe le strict minimum, puis je configure le réseau pour enfin terminer mon installation par Internet.

La première étape est de définir ses partitions. Pour l'instant, j'ai conservé ma partition Windows d'origine.

A titre d'exemple, j'ai :

[root@Dahlia /root]$ fdisk -l /dev/hda
Disk /dev/hda: 120.0 GB, 120034123776 bytes
255 heads, 63 sectors/track, 14593 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk identifier: 0xd53d826f
 
Device Boot Start End Blocks Id System
/dev/hda1   1 128 1028128+ 82 Linux swap / Solaris
/dev/hda2 * 1403 6501 40957717+ 7 HPFS/NTFS
/dev/hda3   129 1402 10233405 83 Linux
/dev/hda4   6502 14593 64998990 5 Extended
/dev/hda5   6502 10391 31246393+ 83 Linux
/dev/hda6   10392 11607 9767488+ 83 Linux
/dev/hda7   11608 12336 5855661 83 Linux
/dev/hda8   12337 14281 15623181 c W95 FAT32 (LBA)
/dev/hda9   14282 14593 2506108+ 82 Linux swap / Solaris
 
Partition table entries are not in disk order

Mes points de montage :

[root@Dahlia /root]$ mount
/dev/hda3 on / type reiserfs (rw,notail)
tmpfs on /lib/init/rw type tmpfs (rw,nosuid,mode=0755)
proc on /proc type proc (rw,noexec,nosuid,nodev)
sysfs on /sys type sysfs (rw,noexec,nosuid,nodev)
udev on /dev type tmpfs (rw,mode=0755)
tmpfs on /dev/shm type tmpfs (rw,nosuid,nodev)
devpts on /dev/pts type devpts (rw,noexec,nosuid,gid=5,mode=620)
fusectl on /sys/fs/fuse/connections type fusectl (rw)
usbfs on /proc/bus/usb type usbfs (rw)
/dev/hda5 on /home type reiserfs (rw)
/dev/hda6 on /usr type reiserfs (rw)
/dev/hda7 on /var type reiserfs (rw)
nfsd on /proc/fs/nfsd type nfsd (rw)
binfmt_misc on /proc/sys/fs/binfmt_misc type binfmt_misc (rw,noexec,nosuid,nodev)

Ce que cela donne après une installation :

[root@Dahlia /root]$ df -h
Sys. de fich. Tail. Occ. Disp. %Occ. Monté sur
/dev/hda3 9,8G 816M 9,0G 9% /
tmpfs 1015M 0 1015M 0% /lib/init/rw
udev 10M 132K 9,9M 2% /dev
tmpfs 1015M 0 1015M 0% /dev/shm
/dev/hda5 30G 22G 8,6G 72% /home
/dev/hda6 9,4G 5,6G 3,8G 60% /usr
/dev/hda7 5,6G 2,0G 3,7G 36% /var

ATTENTION, si vous souhaitez utiliser les fonctionnalités de mise en veille prolongée, je vous conseille de mettre 4 à 5 Go de swap si vous voulez être tranquille.

Vous trouverez ici la liste des packages que j'ai installé.

Kernel 2.6.22.1  

Comme d'habitude (peut-être une mauvaise), je recompile mon noyau afin de mieux maîtriser ce qu'il fait.

Téléchargez mon fichier ".config".
(en cours d'optimisation, en effet pour le moment c'est celui qui correspond au package)

[root@Dahlia src]$ wget http://kernel.org/pub/linux/kernel/v2.6/linux-2.6.22.1.tar.bz2
[root@Dahlia src]$ tar -jxf linux-2.6.22.1.tar.bz2
[root@Dahlia src]$ ln -s linux-2.6.22.1 linux
[root@Dahlia src]$ cd linux
[root@Dahlia linux]$ cp ~/config.txt .config
[root@Dahlia linux]$ make bzImage
[root@Dahlia linux]$ make modules
[root@Dahlia linux]$ make modules_install
[root@Dahlia linux]$ cp arch/i386/boot/bzImage /boot/vmlinuz-2.6.22.1
[root@Dahlia linux]$ cp System.map /boot/System.map-2.6.22.1
[root@Dahlia linux]$ cd /boot
[root@Dahlia boot]$ mkinitrd -o initrd.img-2.6.22.1 /lib/modules/2.6.22.1

J'utilse GRUB comme bootloader.

Téléchargez ici ma configuration de GRUB

[root@Dahlia /root]$ apt-get install grub
[root@Dahlia linux]$ grub-install /dev/hda
[root@Dahlia linux]$ cd /boot
[root@Dahlia /boot]$ tar -zxf grub.tar.gz
[root@Dahlia /boot]$ cd grub
{root@Dahlia grub]$ ./install

Bien sûr, vous devrez adapter votre configuration à vos partitions.

Réseau LAN  

Pour utiliser votre interface réseau, il n'y a aucun soucis. En effet les noyaux ayant une version supérieure à 2.6.18 supportent nativement notre carte.

Personnellement, j'ai blacklisté le module eth1394. En effet, je n'ai pas du tout besoin de cette interface, et lors du boot cette interface utilise alléatoirement eth0 ou eth1. J'ai également installé l'application ifrename, afin de forcer le nom eth0 pour mon interface réseau.

[root@Dahlia /root]$ apt-get install ifrename
[root@Dahlia /root]$ ifconfig -a
eth0 Lien encap:Ethernet HWaddr 00:17:31:DC:FD:16
  UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:2 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 lg file transmission:1000
RX bytes:0 (0.0 b) TX bytes:684 (684.0 b)
Interruption:169 Adresse de base:0xc800
 
lo Lien encap:Boucle locale
  inet adr:127.0.0.1 Masque:255.0.0.0
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:1040 errors:0 dropped:0 overruns:0 frame:0
TX packets:1040 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 lg file transmission:0
RX bytes:97003 (94.7 KiB) TX bytes:97003 (94.7 KiB)
[root@Dahlia /root]$ echo "eth0 mac 00:17:31:DC:FD:16" > /etc/iftab
[root@Dahlia /root]$ echo "blacklist eth1394" >> /etc/modprobe.d/blacklist

Vous pouvez à présent configurer votre carte réseau, qui se trouve en ethX

Vidéo  

J'ai choisi un ordinateur avec une GeForce car ces cartes sont beaucoup plus facile à utiliser sous Linux que les cartes ATI.

Nous allons donc voir tout de suite ce qu'il en est. Nous allons installer les drivers fournis par NVidia et activer l'accélération matérielle.

Dans l'exercice suivant, je suppose que vous compilez les drivers NVidia pour la version du noyau que vous êtes actuellement en train d'utiliser.

[root@Dahlia /root]$ cd /usr/src
[root@Dahlia src]$ apt-get install linux-kernel-headers nvidia-kernel-common nvidia-kernel-source
[root@Dahlia src]$ export KVERS=`uname -r`
[root@Dahlia src]$ export KSRC=/usr/src/linux
[root@Dahlia src]$ tar xvzf nvidia-kernel-source.tar.gz
[root@Dahlia src]$ cd modules/nvidia-kernel
[root@Dahlia src]$ debian/rules binary_modules
[root@Dahlia src]$ cd ..
[root@Dahlia src]$ dpkg -i nvidia-kernel-*.deb
[root@Dahlia src]$ depmod -a

Nous allons maintenant installer et configurer Xorg pour qu'il utilise le driver que nous venons d'installer.

[root@Dahlia src]$ apt-get install xserver-xorg nvidia-glx nvidia-glx-dev

Créez le fichier /etc/modprobe.d/nvidia

[root@Dahlia src]$ cat /etc/modprobe.d/nvidia
alias /dev/nvidia* nvidia
alias char-major-195* nvidia
[root@Dahlia src]$ update-modules
[root@Dahlia src]$ dpkg-reconfigure xserver-xorg

Vous trouverez ici mon fichier de configuration pour Xorg.

Audio  

Votre carte devrait déjà être configurée.

Mais nous allons améliorer notre configuration. Personnellement, je souhaite utiliser le serveur de son de Gnome, ainsi qu'ALSA pour mes applications. Il faut donc que je puisse mixer le son.

Pour configurer votre carte si cela n'est pas déjà fait :

[root@Dahlia /root]$ alsaconf

A présent, nous allons configurer le mixer

[root@Dahlia /root]$ cat /etc/asound.conf
pcm.card0 {
    type hw
    card 0
}

pcm.!default {
    type plug
    slave.pcm "dmixer"
}

pcm.dmixer {
    type dmix
    ipc_key 1025
    slave {
        pcm "hw:0,0"
        period_time 0
        period_size 1024
        buffer_size 4096
        periods 128
        rate 44100
    }
    bindings {
        0 0
        1 1
    }
}

Cette configuration me permet d'utiliser le serveur de son de Gnome avec ALSA.

Clavier Multimédia  

Comment utiliser les touches "multi-média" de votre clavier sous Linux ?

Ceci est tout à fait possible à l'aide du module noyau asus_acpi. De plus vous pourrez chosir l'action a effectuer pour chacune des touches.

[root@Dahlia /root]$ echo "asus_acpi" >> /etc/modules
[root@Dahlia /root]$ modprobe asus_acpi

Une petite application acpi4asus vous permet ensuite de gérer les évènements à associer aux touches.

Télécharger l'application.

[root@Dahlia /root]$ cd /usr/local/src
[root@Dahlia src]$ tar -zxf acpi4asus-0.32.tar.bz2
[root@Dahlia src]$ cd acpi4asus-0.30/asus_acpid
[root@Dahlia asus_acpid]$ make all
[root@Dahlia asus_acpid]$ make install

Récupérer mes fichiers de configuration.

[root@Dahlia /root]$ tar -zxf asus_acpid.tar.gz
[root@Dahlia /root]$ cd .asus_acpid
[root@Dahlia .asus_acpid]$ asus_acpid
[root@Dahlia .asus_acpid]$ tail -f log

Dans ce dossier, vous avez un fichier de log qui permet de récupérer le code de la touche pressée et des exemples qui vous montre comment lancer un script.

Toutes les touches sont gérées, même les touches "contraste", "volume", "mise en veille"...

Souris / Touchpad  

Rien à faire de particulier pour avoir le support du touchpad ou d'une souris.

Regarder le fichier de configuration de Xorg pour pouvoir utiliser à la fois une souris et le touchpad.

[root@Dahlia /root]$ cat /etc/gpm.conf
device=/dev/input/mice
responsiveness=
repeat_type=none
type=exps2
append=''
sample_rate=

Processeur  

Pour le processeur, il n'y a pas grand chose de particulier à faire. En plus de le compiler avec le support SMP, vous pouvez le compiler avec le support centrino afin de pouvoir contrôler la fréquence du processeur.

[root@Dahlia /root]$ cat /etc/modules
asus_acpi
speedstep-centrino
cpufreq_stats
cpufreq_userspace
cpufreq_powersave
cpufreq_ondemand

Pour autoriser un utilisateur à modifier la fréquence du processeur :

[root@Dahlia /root]$ cat /etc/sudoers
login ALL = (root) NOPASSWD: /usr/sbin/cpufreqset [0-9]*
login ALL = (root) NOPASSWD: /usr/sbin/cpufreqsetgovernor [a-z]*
login ALL = (root) NOPASSWD: /usr/sbin/cpufreqnextgovernor

Personnellement, j'utilise gkrellm pour visualiser et modifier la fréquence du processeur.

Port série  

N'ayant plus de port série, j'ai acheté un adaptateur USB <-> série pour pouvoir continuer à utiliser d'ancien périphérique.

[root@Dahlia /root]$ modprobe usbserial
[root@Dahlia /root]$ modprobe pl2303

Et je trouve un port série /dev/ttyS0

DVD / Graveur  

Pour utiliser le DVD / graveur, il n'y a rien à faire de particulier.

PCMCIA  

De même le bus PCMCIA est correctement supporté du moment que vous avez les drivers pour votre carte.

Réseau WAN  

Pour configurer un accès Wi-Fi, il va falloir utiliser des drivers qui sont encore en développement et donc pas encore intégré dans le noyau linux.

Vous aurez besoin de deux applications :

Télécharger le module noyau ipw3945

Télécharger l'application ipw3945d

[root@Dahlia /root]$ apt-get install firmware-ipw3945
[root@Dahlia /root]$ cd /usr/local/src
[root@Dahlia src]$ tar -zxf ipw3945d-1.7.22.gz
[root@Dahlia src]$ cp ipw3945d-1.7.22/x86/ipw3945d /usr/local/sbin
[root@Dahlia src]$ tar -zxf ipw3945-1.2.1.tgz
[root@Dahlia src]$ cd ipw3945-1.2.1
[root@Dahlia ipw3945-1.2.1]$ make

Pour activer ou désactiver la carte :

[root@Dahlia ipw3945-1.2.1]$./load -ipw3945d=/usr/local/sbin
[root@Dahlia ipw3945-1.2.1]$ ./unload -ipw3945d=/usr/local/sbin

Votre carte est prête à être utiliser.

Bluetooth  

L'interface Bluetooth est un périphérique USB.

[root@Dahlia /root]$ modprobe bluetooth
[root@Dahlia /root]$ modprobe hci_usb

Irda  

A tester...

FireWire  

Pour utiliser le FireWire, il faut charger les bons modules.

Par exemple, pour pouvoir utiliser un camescope qui a une prise DV, on devra faire :

[root@Dahlia /root]$ modprobe ohci1394
[root@Dahlia /root]$ modprobe ieee1394
[root@Dahlia /root]$ modprobe raw1394
[root@Dahlia /root]$ modprobe dv1394

Lecteur cartes photo  

Aucun soucis pour utiliser le lecteur de cartes, il suffit de charger le module sdhci.

[root@Dahlia /root]$ modprobe sdhci
[root@Dahlia /root]$ mkdir /mnt/sd
[root@Dahlia /root]$ mount /dev/mmcblk0p1 /mnt/sd

Modem  

A tester...

Webcam  

Suivant votre portable, vous n'aurez pas forcément la même Webcam. En effet, ASUS fait appel principalement à trois constructeurs de Webcam.

Dans mon cas, j'ai une webcam USB 2.0 Syntek DC-1125 (0x174F:0xA311)

J'ai écrit un driver qui supporte cette webcam et certaines webcams dérivées.

[root@Dahlia /root]$ cd /usr/local/src
[root@Dahlia src]$ svn checkout https://syntekdriver.svn.sourceforge.net/svnroot/syntekdriver/trunk/driver stk11xx
[root@Dahlia src]$ cd stk11xx
[root@Dahlia stk11xx]$ make
[root@Dahlia stk11xx]$ modprobe videodev
[root@Dahlia stk11xx]$ insmod stk11xx.ko

DVI / VGA / TV / Casque / Micro  

Toutes ces entrées / sorties fonctionnent et sont supportées sous Linux.

Configuration logicielle

Mes applications  

Vous trouverez ici rapidement la liste des applications que j'utilise :

Desktop Bureautique Réseau Développement Multi-média
Gnome & Sawfish OpenOffice Mutt Bluefish Audacious
Gkrellm2 Planer Evoluton Glade Grip
graveman Evince Gaim Anjuta Kino
gtkam Gnochm GFTP VIM VLC
Dia Epiphany Xine
GQview Ekiga Mplayer
The Gimp Pan RealPlayer
X-Chat
Mon bureau