Installation d'une Debian Sarge sur un AMD64
Ma machine de travail avait plus de 5 ans, je me suis dit qu'il était temps de se remettre au goût du jour. Ci fait pour la Debian Sarge (méthode
netinst) avec un AMD64 maison, carte video sur PCI express et tout !
Matériel
Du pur rue Montgallet :
- Carte mère : Asus A8N-E (BIOS rev 1005, chipset nVidia nForce 4)
- CPU AMD Athlon64? 3500+ (Venice)
- RAM 1GB Corsair Value Select
- Carte Vidéo Asus N6200TC (nVidia GeForce 6200 PCI Express x16, 256MB, out DVI + RGB Subd). Je ne la conseille pas, le signal n'est pas propre en analogique (ça fait un léger écho sur les lignes au fort contraste)
- Disque P-ATA (vieux WD 80GB)
- Disque SATA (Maxtor)
- Graveur DVD Pioneer
- Ecran CRT branché sur la carte video via prise analogique
Ce qui (ne) marche (pas)
Ok de base
- noyau 2.6 (aucun oops en 1 journée, après 65765 apt-get, compilations de noyau et installations des drivers nVidia)
- disque dur (Parallel ATA)
- carte réseau intégrée à la carte mère (moyennant petite manip dans netinst)
- XFree driver VESA
- clavier/souris
- carte son intégrée à la carte mère
- graveur de DVD (lecture DVD, gravure CD et DVD)
- SATA (module noyau sata_nv)
Ok apres petites config
- XFree nvidia avec accélération 3d
- capteurs de température, de vitesse de rotation des ventilos
- exécution de programmes x86 32bits (OpenOffice.org, etc.)
Ce qui ne marche pas
Ce qui n'a pas été testé
Préparation
Mémoire
Il est de bon ton de vérifier que la memoire d'une machine neuve est correcte. Pour cela, telecharger le CD de
SystemRescueCD, le graver, et taper "memtest" au boot. Ca fait plein de tests. Une fois arrive au bout de la "Pass 1" sans erreur, on peut considerer que la RAM est correcte. Sinon la changer.
CD d'installation
J'ai choisi d'installer la debian par
netinst. Ca evite de graver 224324 CD mais ça oblige à avoir une connexion réseau potable (ADSL).
L'image netinst pour la sarge AMD64 est disponible à
cette adresse.
Réseau
Le plus simple est de pouvoir se connecter au réseau via la carte ethernet intégrée à la carte mère et par simple configuration DHCP (être en ADSL dégroupé est le prérequis le plus simple). Sinon on peut configurer l'interface réseau manuellement (ie renseigner l'IP, le DNS, etc. à la main). Je ne pense pas qu'il soit possible de passer par une connexion encapsulée genre IP over ATM pour installer la Debian (à vérifier).
Malheureusement, avec l'Asus A8N-E le noyau de l'installateur Debian ne reconnaît pas la carte réseau intégrée à la carte mère. Il faudra donc ajouter une carte réseau de dépannage plus standard (type RTL8139 ou NE2000 PCI) juste pour la première phase de l'installation. Au reboot qui suivra on pourra utiliser la carte réseau intégrée dans la carte mère puisque le noyau "normal" la reconnaît.
Son (note pour la A8N-E, n'a rien a voir avec Linux)
Sur le boitier, j'ai la possibilité de sortir le son en façade
et sur la prise "line out" de la carte mere a l'arriere. En fait il ne faut
pas dire "ET", il faut dire "OU" ici. Soit on laisse les 2 jumpers entre BLINE_OUT_[LR] et Line_out_[LR] (config par defaut) auquel cas
le son sort sur la prise arriere de la carte mere. Soit on enleve ces cavalliers et on met les 2 picots fournis avec le boitier sur Line_out_[LR], auquel cas le son sort en façade. L'ideal serait de trouver des cavaliers qui laissent un picot dispo pour y brancher la prise pour le son en façade, auquel cas on pourrait sortir le son des 2 cotes.
Boot sur CD
- choose a country or region: facile
- keymap: facile
- carte réseau (si on choisit d'utiliser celle intégrée à la carte mère ; sinon c'est direct => DHCP):
- il prétend qu'il ne trouve pas de carte réseau, ou alors vous voyez dans la liste des cartes réseau proposée qu'il n'y a pas la carte "Fast Ethernet" qui correspond à celle intégrée à la carte mère : c'est normal
- aller sur une autre console, virer les modules des autres cartes réseau si il y en a (avec modprobe -r). Par exemple, j'avais rajouté une carte IEEE1394 : faire modprobe -r eth1394 et j'avais aussi ajouté une carte RTL8139 PCI : faire modprobe -r 8139too.
- toujours dans cette autre console, faire le modprobe qui va bien pour le driver de la carte réseau de dépannage nécessaire pour cette première étape. Par exemple chez moi : modprobe 8139too. Le but de ces 2 manips est que la carte réseau intégrée à la carte mère et la carte de dépannage temporaire s'appellent toutes les deux "eth0". En effet, une fois qu'on aura rebooté sur la vraie installation (ie une fois netinst terminé), la carte réseau intégrée dans la carte mère sera reconnue et s'appellera eth0
- revenir dans la console "configure the network", choisir "Go Back", re-choisir "configure the network" et... ô miracle : la carte ethernet de la carte mère apparaît
- choisir de la configurer suivant DHCP si possible, sinon à la main
- hostname: portnawak.lost.com
- partition: pour ma part, j'ai choisi de faire le partitionnement du disque à la main puisque je compte avoir d'autres Linux installés (ubuntu amd64 et sarge x86). Une mention particulière à l'outil de partitionnement manuel : super simple, très bien conçu.
- install Grub on MBR: yes
Suite de l'installation
Au reboot, on pourra enlever la carte réseau de dépannage, normalement le noyau normal reconnaît celle intégrée dans la carte mère.
Installation de base
- Is the hardware clock set to GMT: yes (pour cohabitation Ubuntu)
- time zone: facile
- root password, new user: facile
- archive access method for apt: http
- mirror country: Germany
- software to install: rien (pour le moment). Si on demande desktop env maintenant, ca genere une erreur (?!)
- config ssh: portnawak
- config exim: portnawak
- relancer tasksel, re-choisir tasks: desktop env / kde / gnome et gnome-desktop env, Localization French desktop, French environment, et hop ('g')
- paper size: a4
- font management with defoma: yes
- cdrecord suid root: yes
- cvs repositories: portnawak + create, pserver disabled
- daemon's dsp wrapper: auto
- display manager: gdm
- comm port for palm (kpilot): none
- TTF on X: freetype
- attempt auto-detect video: no, desired X server: vesa (pour le moment)
- xkb rule: xfree86
- keyboard model: facile
- keyboard layout: fr
- keyboard variant: <rien>
- keyboard options: <rien>
- mouse autodetect: yes
- mouse port: /dev/input/mice
- monitor LCD: facile
- monitor best video mode, resolution, depth: facile
Euro
- apt-get install euro-support-x euro-support-console language-env
- dpkg-reconfigure locales choisir au moins une locale du type ISO8859-15 ou @euro et la sélectionner comme locale par défaut
Tester après reboot avec le programme
euro-test en console et sous X. Sous X comme en console, le sigle Euro s'obtient avec "Alt-E" et non pas " AltGr+5 " comme le suggère le programme
euro-test.
Noyau plus léger
Les noyaux Debian sont bien mais un peu lourds.
- Pour ma part, j'ai repris le noyau 2.6.12.4 de base sur kernel.org, sans patch.
- Voila le
fichier de config que j'utilise, a adapter selon ses besoins. Il faut faire bien attention aux drivers son (CONFIG_SND_AC97_CODEC, CONFIG_SND_INTEL8X0, CONFIG_SND_INTEL8X0M) et réseau (CONFIG_FORCEDETH).
- Pour la SATA, vérifier qu'on compile aussi sata_nv (rubrique SCSI)
- Pour la carte réseau intégrée dans la carte mère, vérifier qu'on compile forcedeth
- ne jamais compiler rivafb en dur sinon on ne pourra pas utiliser le driver nVidia pour la carte vidéo (cf ci-dessous)
- pour compiler, par exemple :
apt-get install kernel-package
make-kpkg --rootcmd fakeroot --append-to-version -zorglub-v0 --initrd binary modules
- puis faire dpkg -i sur les .deb générés
Accélération video 3D
- Pas nécessaire mais permet d'éviter une erreur qui n'en est pas une dans la suite : apt-get install lib32gcc1 lib32stdc++6
- Installation des derniers drivers nvidia : télécharger ceux de www.nvidia.com, faire /etc/init.d/gdm stop et lancer le script d'installation.
- a la question "mettre à jour les bibliothèques 32bits ?", répondre oui si on a installé lib32gcc1 & co. Sinon répondre non.
- Pour une raison inconnue, une fois que le script d'installation est terminé, l'installation des bibliotheques ne s'est pas faite. Les symptomes : glxinfo fait un Segmentation fault et glxgears ne veut pas démarrer.
Aller a la fin du README de /usr/share/doc/NVIDIA.../ (Appendix C) et verifier que les fichiers mentionnés sont bien présents. Si ce n'est pas le cas, executer le script d'installation avec l'option --extract-only puis copier les fichiers manquants a partir du sous-repertoire NVIDIA... ainsi cree.
- Commenter dri et GLcore dans la section modules de /etc/X11/XF86Config-4, changer la ligne "Driver" pour la carte : Driver "nvidia". Eventuellement rajouter Option "NoLogo? "true". Voir le
fichier de config que j'utilise (avec écran iiyama 702HT)
Et voila :
glxgears fait plus de 6000 fps en 16bits fenetre, du 147fps en 24bits plein ecran (1280x1024)
Exécuter des programmes 32 bits (type openoffice.org)
Les programmes type
openoffice ne sont pas encore disponibles sur la sarge en AMD64. Pas de problème : le noyau Linux AMD64 peut exécuter à la fois des programmes 64 bits et des programmes 32 bits ! Il suffit de mettre en place un environnement 32 bits et de faire les
chroot qui vont bien.
La page de référence se trouve
ici.
- Pour ma part, j'ai décidé d'installer une sarge 32bits complète sur une autre partition ("sarge32") au cas où... La suite marcherait avec un debootstrap comme proposé dans la page de référence sus-mentionnée. Je monte la partition sarge32 dans la sarge64, voici à quoi ressemble le /etc/fstab de la sarge 64 pour qu'on puisse retrouver dans la sarge 32 (/mnt/sarge32) le /home, le /tmp, le /proc et le /sys de la sarge 64 :
/dev/hda8 /mnt/sarge32 ext3 defaults,errors=remount-ro 0 1
/home /mnt/sarge32/home none bind 0 0
/dev /mnt/sarge32/dev none bind 0 0 ## Essentiellement pour profiter de l'accélération 3D en 32bits
/tmp /mnt/sarge32/tmp none bind 0 0 ## Essentiellement pour profiter du serveur X en 32bits
proc /mnt/sarge32/proc proc defaults 0 0
sysfs /mnt/sarge32/sys sysfs defaults 0 0
- apt-get install dchroot
- Modifier /etc/dchroot.conf :
- Rajouter le script suivant dans un répertoire bin quelconque (p.ex /usr/local/bin/sarge32_chroot) :
#! /bin/sh
ARGS=""
for i in "$@" ; do
ARGS="$ARGS '$i'"
done
exec dchroot -c sarge32 -d -q "`basename $0`" "$ARGS"
Le chmoder en 755
Vérifier que les uid/gid des utilisateurs qui comptent faire tourner les applis sont cohérents entre la sarge 32 et la sarge 64 (ie comparer les /etc/passwd et /etc/group)
Et hop, après il suffit de faire des liens dans le répertoire bin :
cd /usr/local/bin
ln -s sarge32_chroot openoffice
ln -s sarge32_chroot oowriter
ln -s sarge32_chroot oocalc
ln -s sarge32_chroot ooimpress
- Et voilà : à partir du moment où ce répertoire bin est dans mon PATH, je peux taper (en tant qu'utilisateur normal) :
openoffice => Ca lance openoffice (à condition qu'il ait été installé dans la sarge32), etc.
- Pour terminer, si /emul/ia32-linux existe (créé par apt-get install ia32-libs par exemple), on pourra le remplacer par un lien symbolique vers /mnt/sarge32. Ca permettra aux futures mises à jour de nViDia de mettre à jour aussi la partie 32bits sans avoir à refaire la manip en rebootant sur la sarge32.
Pour pouvoir utiliser d'autres applis 32bits qui existent aussi en 64bits (par exemple firefox afin de bénéficier des plugins genre
flash même en 64 bits), on pourra s'inspirer du script précédent. Exemple de script
/usr/local/bin/sarge32_exec :
#! /bin/sh
PROG="$1" ; shift
ARGS=""
for i in "$@" ; do
ARGS="$ARGS '$i'"
done
exec dchroot -c sarge32 -d -q "$PROG" "$ARGS"
Pour lancer le
xlogo 32 bits, on tapera simplement
sarge32_exec xlogo et voila ! Et, mieux, pour installer des packages 32bits c'est pratique :
su && sarge32_exec apt-get install thunderbird.
Note : Les liens
openoffice & co (vers
sarge32_chroot) précédents ne fonctionneront pas dans
mozilla (ou
firefox)... En effet
mozilla/
firefox est trop "intelligent" et veut absolument exécuter le "target" des liens, c'est-à-dire
sarge32_chroot ! Dans ce cas, remplacer les liens précédents par un script du genre :
#! /bin/sh
exec /chemin/vers/sarge32_exec oowriter $*
Le reste...
- apt-get install gpm pour avoir la souris en console
La souris s'appelle "/dev/input/mice"
- apt-get install lm-sensors puis sensors-detect
- apt-get install gkrellm puis config pour afficher les temperatures (on peut même connaître la température de la carte graphique...)
- apt-get install xine-ui pour regarder des DVD
- apt-get install k3b pour graver des CD ou DVD simplement
- apt-get install udev puis reboot
- apt-get install acpi acpid pour profiter du boulon "power off" du chassis
- Pour ralentir les ventilos et le processeur en fonction de la demande, rajouter powernow_k8 et cpufreq_ondemand dans /etc/modules puis créer le fichier (ou rajouter dedans) /etc/modprobe.d/custom:
install cpufreq_ondemand modprobe --ignore-install cpufreq_ondemand && echo ondemand > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
Pour compiler du code noyau x86