Quelques notes sur l'installation de linux sur un PC Dell
Touche d'accès au bios : F12
Fabricant
# dmidecode -s system-manufacturer
Dell Inc.
Modèle
# dmidecode -s system-product-name
Precision M460
Processeur
# dmidecode -s processor-version
Intel(R) Core(TM) i5-2520M CPU @ 2.50GH
Mémoire
# dmidecode -t memory |grep Size
Size: 4096 MB
Size: No Module Installed
Size: 4096 MB
Size: No Module Installed
Adaptateurs dell acpi-wmi
# lsmod |grep dell
dell-wmi-aio # touches de fonction (hotkeys)
dell-smm-hwmon # alias i8k, gestion ventilateur
Contrôleurs internet filaire et wifi
# lspci |grep -i net
00:19.0 Ethernet controller: Intel Corporation 82579LM Gigabit Network Connection (rev 04)
03:00.0 Network controller: Broadcom Corporation BCM4313 802.11bgn Wireless Network Adapter (rev 01)
Processeur graphique
# lspci |grep -i vga
01:00.0 VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] Whistler [Radeon HD 6730M/6770M/7690M XT]
Résolution de l'écran LCD
# hwinfo --monitor |grep -E "Model|Resolution"
Model: "C54GW 156AT LCD Monitor"
Resolution: 1366x768@60Hz
Modes vesa disponibles
# hwinfo --framebuffer |grep "Mode "
Mode 0x0300: 640x400 (+640), 8 bits
Mode 0x0301: 640x480 (+640), 8 bits
Mode 0x0303: 800x600 (+832), 8 bits
Mode 0x0305: 1024x768 (+1024), 8 bits
Mode 0x0310: 640x480 (+1280), 15 bits
Mode 0x0311: 640x480 (+1280), 16 bits
Mode 0x0313: 800x600 (+1600), 15 bits
Mode 0x0314: 800x600 (+1600), 16 bits
Mode 0x0316: 1024x768 (+2048), 15 bits
Mode 0x0317: 1024x768 (+2048), 16 bits
Mode 0x030d: 320x200 (+640), 15 bits
Mode 0x030e: 320x200 (+640), 16 bits
Mode 0x0320: 320x200 (+1280), 24 bits
Mode 0x0393: 320x240 (+320), 8 bits
Mode 0x0395: 320x240 (+640), 16 bits
Mode 0x0396: 320x240 (+1280), 24 bits
Mode 0x03b3: 512x384 (+512), 8 bits
Mode 0x03b5: 512x384 (+1024), 16 bits
Mode 0x03b6: 512x384 (+2048), 24 bits
Mode 0x03c3: 640x350 (+640), 8 bits
Mode 0x03c5: 640x350 (+1280), 16 bits
Mode 0x03c6: 640x350 (+2560), 24 bits
Mode 0x0333: 720x400 (+768), 8 bits
Mode 0x0335: 720x400 (+1472), 16 bits
Mode 0x0336: 720x400 (+2944), 24 bits
Mode 0x0321: 640x480 (+2560), 24 bits
Mode 0x0322: 800x600 (+3200), 24 bits
Mode 0x0323: 1024x768 (+4096), 24 bits
Cartes audio
$ lspci |grep -i audio
00:1b.0 Audio device: Intel Corporation 6 Series/C200 Series Chipset Family High Definition Audio Controller (rev 04)
01:00.1 Audio device: Advanced Micro Devices, Inc. [AMD/ATI] Turks/Whistler HDMI Audio [Radeon HD 6000 Series]
Version installée et date
# dmidecode -s bios-version
A05
# dmidecode -s bios-release-date
07/11/2011
La dernière version à ce jour sur le site de Dell est A16 . Son installation nécessite le passage par la version A08. Il semble toutefois que cette version introduise une vérification de signature irréversible qui pourrait empêcher toute mise à jour ultérieure!! :http://en.community.dell.com/support-forums/software-os/f/3524/t/19564156,,, Dans le doute, la mise à jour n'a pas été testée.
La version installée de microcode du processeur est ox1a et nécessite une mise à jour
$ dmesg |grep microcode
[ 0.061959] perf_event_intel: PEBS disabled due to CPU errata, please upgrade microcode
[ 1.845445] microcode: CPU0 sig=0x206a7, pf=0x10, revision=0x1a
[ 1.845450] microcode: CPU1 sig=0x206a7, pf=0x10, revision=0x1a
[ 1.845457] microcode: CPU2 sig=0x206a7, pf=0x10, revision=0x1a
[ 1.845464] microcode: CPU3 sig=0x206a7, pf=0x10, revision=0x1a
[ 1.845524] microcode: Microcode Update Driver: v2.00 <tigran@aivazian.fsnet.
Installer la mise à jour "intel-microcode"
# aptitude install intel-microcode
Au redémarrage suivant, la version de microcode est 0x29 et l'avertissement a disparu
$ dmesg |grep microcode
[ 0.000000] CPU0 microcode updated early to revision 0x29, date = 2013-06-12
[ 0.074053] CPU1 microcode updated early to revision 0x29, date = 2013-06-12
[ 1.830419] microcode: CPU0 sig=0x206a7, pf=0x10, revision=0x29
[ 1.830426] microcode: CPU1 sig=0x206a7, pf=0x10, revision=0x29
[ 1.830434] microcode: CPU2 sig=0x206a7, pf=0x10, revision=0x29
[ 1.830443] microcode: CPU3 sig=0x206a7, pf=0x10, revision=0x29
[ 1.830495] microcode: Microcode Update Driver: v2.00 <tigran@aivazian.fsnet.co.uk>, Peter Oruba
A noter que le module microcode est censé être blacklisté :
$ cat /etc/modprobe.d/intel-microcode-blacklist.conf
# The microcode module attempts to apply a microcode update when
# it autoloads. This is not always safe, so we block it by default.
blacklist microcode
Toutefois, ce blacklistage n'est pas applicable, car le module est construit dans le noyau :
# cat /lib/modules/$(uname -r)/modules.builtin |grep microcode
kernel/arch/x86/kernel/cpu/microcode/microcode.ko
L'utilitaire i8kutils, qui fournit les commandes i8kctl, i8kfan et i8kmon, est prévu pour piloter les ventilateurs sur les machines Dell. Toutefois, sur cette machine, les ventilateurs sont pilotés directement par le bios et il sera seulement possible d'afficher la vitesse.
Installer i8kutils
# aptitude install i8kutils
Affichage de la température du processeur, des commandes de vitesse des ventilateurs gauche et droite (0 = arrêt, 1 = 1/2 vitesse lente, 2 = vitesse rapide), et de leur vitesse (unité arbitraire).
$ i8kctl temp
58
$ i8kctl fan
0 0
$ i8kctl speed
115290 0
Après avoir installé i8kutils, si lm-sensors est installé, la commande sensors affiche le fonctionnement des ventilateurs sous le nom de capteur i8k-virtual
$ sensors
acpitz-virtual-0
Adapter: Virtual device
temp1: +25.0°C (crit = +107.0°C)
coretemp-isa-0000
Adapter: ISA adapter
Physical id 0: +62.0°C (high = +86.0°C, crit = +100.0°C)
Core 0: +60.0°C (high = +86.0°C, crit = +100.0°C)
Core 1: +59.0°C (high = +86.0°C, crit = +100.0°C)
radeon-pci-0100
Adapter: PCI adapter
temp1: +53.0°C (crit = +120.0°C, hyst = +90.0°C)
i8k-virtual-0
Adapter: Virtual device
Left Fan: 0 RPM
Right Fan: 0 RPM
CPU: +62.0°C
temp2: +47.0°C
temp3: +46.0°C
temp4: +47.0°C
Par défaut, l'option "redémarrage" ne s'effectue pas correctement et laisse la machine dans un état indéterminé. Il est possible de corriger le problème en ajoutant à la fin de la ligne de lancement de linux
linux /vmlinuz set root= ....... ro quiet
le paramètre
reboot=pci
Pour cela, remplacer dans le fichier /etc/default/grub, la ligne
GRUB_CMDLINE_LINUX_DEFAULT="quiet"
par la ligne
GRUB_CMDLINE_LINUX_DEFAULT="quiet reboot=pci"
# update-grub
L'option redémarrage sera opérationnelle après redémarrage du PC
Le contrôleur wifi est Broadcom Corporation BCM4313.
$ lspci -nn -s 03:00 |grep -i net
03:00.0 Network controller [0280]: Broadcom Corporation BCM4313 802.11bgn Wireless Network Adapter [14e4:4727] (rev 01)
Ses identifiants (fabricant et modèle) sont respectivement 14e4 et 4727
Une recherche sur internet indique que trois types de pilotes sont susceptibles d'être utilisés avec les contrôleurs Broadcom: voir https://wiki.archlinux.org/index.php/broadcom_wireless
les pilotes libres d'origine Broadcom : bcma et brcmsmac. L'installation décrite ci-après, utilise ces pilotes
les pilotes libres d'origine indépendantes obtenues par rétro-engineering : b43 b43legacy. Ces pilotes ne sont pas disponibles pour ce contrôleur.
les pilotes propriétaires Broadcom : wl
Deux pilotes (bcma et brcmsmac) sont nécessaires et sont chargés automatiquement par le noyau
$ lsmod |grep bcma
bcma 37206 1 brcmsmac
Pour information :
bcma est le pilote référencé dans le fichier "module.alias" pour le contrôleur (14e4:4727)
$ cat /lib/modules/$(uname -r)/modules.alias | grep -i 14e4 |grep -i 4727
alias pci:v000014E4d00004727sv*sd*bc*sc*i* bcma
le pilote brcmsmac dépend de bcma
# modinfo brcmsmac |grep depends
depends: bcma,mac80211,brcmutil,cfg80211,cordic
lspci indique que le pilote chargé a pour nom bcma-pci-bridge
# lspci -k -s 03:00
03:00.0 Network controller: Broadcom Corporation BCM4313 802.11bgn Wireless Network Adapter (rev 01)
Subsystem: Dell Inspiron M5010 / XPS 8300
Kernel driver in use: bcma-pci-bridge
Mais ce nom ne correspond pas à un driver connu
# modinfo bcma-pci-bridge
modinfo: ERROR: Module bcma-pci-bridge not found.
Afin d'éliminer dans dmesg la ligne d'erreur :
Support for cores revisions 0x17 and 0x18 disabled by module paramallhwsupport=0
. Tryb43.allhwsupport=1
blacklister les modules b43 et b43legacy, et redémarrer
# echo -e "blacklist b43\\nblacklist b43legacy" >> /etc/modprobe.d/b43.conf
# aptitude reinstall initramfs-tools
Le contrôleur nécessite un firmware propriétaire disponible dans les dépôts Debian non libre. Ajouter le dépôt non libre (nonfree) dans les sources d'apt et installer le paquet firmware-brcm80211.
# aptitude install firmware-brcm80211
D'après la documentation Debian, il pourrait y avoir des problèmes en utilisant les canaux autres que 1 à 12 et il recommandé de fixer la zone de régulation.
# iw reg get
country 00: DFS-UNSET
....
La liste des régions est disponible dans le fichier zone.tab (extrait)
$ cat /usr/share/zoneinfo/zone.tab
....
FR +4852+00220 Europe/Paris
....
GB +513030-0000731 Europe/London
....
SE +5920+01803 Europe/Stockholm
Sélectionner par exemple la région France
# iw reg set FR
# iw reg get
country FR: DFS-ETSI
(2402 - 2482 @ 40), (N/A, 20), (N/A)
(5170 - 5250 @ 80), (N/A, 20), (N/A)
(5250 - 5330 @ 80), (N/A, 20), (0 ms), DFS
(5490 - 5710 @ 160), (N/A, 27), (0 ms), DFS
(57000 - 66000 @ 2160), (N/A, 40), (N/A)
# iwlist wlan0 freq
wlan0 13 channels in total; available frequencies :
Channel 01 : 2.412 GHz
Channel 02 : 2.417 GHz
Channel 03 : 2.422 GHz
Channel 04 : 2.427 GHz
Channel 05 : 2.432 GHz
Channel 06 : 2.437 GHz
Channel 07 : 2.442 GHz
Channel 08 : 2.447 GHz
Channel 09 : 2.452 GHz
Channel 10 : 2.457 GHz
Channel 11 : 2.462 GHz
Channel 12 : 2.467 GHz
Channel 13 : 2.472 GHz
Current Frequency:2.472 GHz (Channel 13)
Pour rendre la modification de région permanente, éditer le fichier crda en charge de la régulation
# nano /etc/default/crda
Changer la dernière ligne pour désigner la région retenue, par exemple FR
REGDOMAIN=FR
Une fois toutes ces modifications effectuées, des erreurs subsistent dans dmesg
[ 13.232120] brcmsmac bcma0:0: brcmsmac: brcms_ops_bss_info_changed: associated
[ 13.232215] brcmsmac bcma0:0: brcms_ops_bss_info_changed: qos enabled: true (implement)
Ne pas s'en inquiéter.
$ lspci -nn -s 01:00.0
01:00.0 VGA compatible controller [0300]: Advanced Micro Devices, Inc. [AMD/ATI] Whistler [Radeon HD 6730M/6770M/7690M XT] [1002:6740]
Les identifiants de la carte graphique sont (1002:6740).
$ cat /lib/modules/$(uname -r)/modules.alias | grep -i 1002 |grep -i 6740
alias pci:v00001002d00006740sv*sd*bc*sc*i* radeon
# aptitude install xorg xserver-xorg server-xorg-video-ati libgl1-mesa-dri firmware-linux-nonfree
A noter que le paquet xserver-xorg-video-ati installe le paquet xserver-xorg-video-radeon mais également les paquets xserver-xorg-video-mach64 et xserver-xorg-video-r128 et qu'il n'est pas suffisant d'installer seul xserver-xorg-video-radeon.
$ ls -la /sys/class/sound/card*
lrwxrwxrwx 1 root root 0 juin 8 15:50 /sys/class/sound/card0 -> ../../devices/pci0000:00/0000:00:1b.0/sound/card0
lrwxrwxrwx 1 root root 0 juin 8 15:50 /sys/class/sound/card1 -> ../../devices/pci0000:00/0000:00:01.0/0000:01:00.1/sound/card1
$ lspci -k -s 00:1b.0
00:1b.0 Audio device: Intel Corporation 6 Series/C200 Series Chipset Family High Definition Audio Controller (rev 04)
Subsystem: Dell Precision M4600
Kernel driver in use: snd_hda_intel
card1 est la carte son pour les sorties hdmi S/PDIF
lspci -k -s 01:00.1
01:00.1 Audio device: Advanced Micro Devices, Inc. [AMD/ATI] Turks/Whistler HDMI Audio [Radeon HD 6000 Series]
Subsystem: Dell Precision M4600
Kernel driver in use: snd_hda_intel
Liste des cartes et devices par défaut :
$ aplay -L |grep default -A3
default:CARD=PCH
HDA Intel PCH, 92HD90BXX Analog
Default Audio Device
sysdefault:CARD=PCH
HDA Intel PCH, 92HD90BXX Analog
Default Audio Device
front:CARD=PCH,DEV=0
$ speaker-test -Ddefault:CARD=PCH -c2 -t wav
qui est équivalent à
$ speaker-test -c2 -t wav
Relier la sortie hdmi à un périphérique hdmi tel qu'une télévision et activer la sortie (voir arandr).
Vérifier que la sortie hdmi n'est pas "mutée" avec alsamixer ou avec amixer :
Identifier la sortie hdmi /IEC958 sur le "mixer" de la carte hdmi
$ amixer -c1
Simple mixer control 'IEC958',0
Capabilities: pswitch pswitch-joined
Playback channels: Mono
Mono: Playback [off]
Activer la sortie le cas échéant
$ amixer -c1 set IEC958 unmute
Simple mixer control 'IEC958',0
Capabilities: pswitch pswitch-joined
Playback channels: Mono
Mono: Playback [on]
Identifier le périphérique hdmi avec aplay
$ aplay -L |grep -i hdmi -A3
hdmi:CARD=HDMI,DEV=0
HDA ATI HDMI, HDMI 0
HDMI Audio Output
dmix:CARD=HDMI,DEV=3
HDA ATI HDMI, HDMI 0
Direct sample mixing device
dsnoop:CARD=HDMI,DEV=3
HDA ATI HDMI, HDMI 0
Direct sample snooping device
hw:CARD=HDMI,DEV=3
HDA ATI HDMI, HDMI 0
Direct hardware device without any conversions
plughw:CARD=HDMI,DEV=3
HDA ATI HDMI, HDMI 0
Hardware device with all software conversions
Tester la sortie HDMI (2 canaux : Front left & Front right)
$ speaker-test -Dhdmi:CARD=HDMI -c2 -t wav
speaker-test 1.0.28
Le périphérique de lecture est hdmi:CARD=HDMI
Les paramètres du flux sont 48000Hz, S16_LE, 2 canaux
fichier(s) WAV
La fréquence est 48000Hz (demandée 48000Hz)
L'intervalle de la taille du tampon est de 64 à 16384
L'intervalle de la taille de la période est de 32 à 8192
Taille max. de tampon 16384 utilisée
Périodes = 4
was set period_size = 4096
was set buffer_size = 16384
0 - Front Left
1 - Front Right
Temps par période = 2,734685
.......
Le bip système est géré par la carte pci 00:1b.0
$ cat/proc/bus/input/devices |grep -i beep -B1 -A6
I: Bus=0001 Vendor=111d Product=76e7 Version=0001 N: Name="HDA Digital PCBeep" P: Phys=card0/codec#0/beep0 S: Sysfs=/devices/pci0000:00/0000:00:1b.0/input/input7 U: Uniq= H: Handlers=kbd event7 B: PROP=0 B: EV=40001 B: SND=6
Cette carte est la carte son du PC. (Le bip n'est donc pas géré par le module pcspkr)
$ lspci -k -s 00:1b.0
00:1b.0 Audio device: Intel Corporation 6 Series/C200 Series Chipset Family High Definition Audio Controller (rev 04)
Subsystem: Dell Precision M4600
Kernel driver in use: snd_hda_intel
Pour tester le bip console (en mode console vraie, non graphique)
$ echo -e "\007"
Le bip console, utilisé en particulier,en mode console vraie (non graphique) par l'auto-complétude (touche tab, ...), produit un bruit assez désagréable.
On peut
soit réduire son volume ou même le couper complètement en utilisant alsamixer ou amixer :
Identifier les caractéristiques du bip
$ amixer -c0 |grep -i beep -A4
Simple mixer control 'Beep',0
Capabilities: pvolume pvolume-joined pswitch pswitch-joined
Playback channels: Mono
Limits: Playback 0 - 3
Mono: Playback 3 [100%] [0.00dB] [on]
Puis muter ou / et réduire son volume
$ amixer -c0 set Beep 0 mute
Simple mixer control 'Beep',0
Capabilities: pvolume pvolume-joined pswitch pswitch-joined
Playback channels: Mono
Limits: Playback 0 - 3
Mono: Playback 0 [0%] [-18.00dB] [off]
soit l'éliminer pour les erreurs d'auto-complétude seulement en dé-commentant la ligne "set bell-style none" dans le fichier inputrc. En dé-commentant la ligne suivante (set bell-style visible), les erreurs sont signalées par un clignotement rapide de l'écran.
$ cat /etc/inputrc
.....
# do not bell on tab-completion
set bell-style none
# set bell-style visible
.....
Des conflits sont détectés par le noyau :
$ dmesg |grep conflict
[ 7.644149] ACPI Warning: SystemIO range 0x0000000000000428-0x000000000000042F conflicts with OpRegion 0x0000000000000400-0x000000000000047F (\PMIO) (20140424/utaddress-254)
[ 7.644163] ACPI Warning: SystemIO range 0x0000000000000540-0x000000000000054F conflicts with OpRegion 0x0000000000000500-0x0000000000000563 (\GPIO) (20140424/utaddress-254)
[ 7.644169] ACPI Warning: SystemIO range 0x0000000000000530-0x000000000000053F conflicts with OpRegion 0x0000000000000500-0x0000000000000563 (\GPIO) (20140424/utaddress-254)
[ 7.644174] ACPI Warning: SystemIO range 0x0000000000000500-0x000000000000052F conflicts with OpRegion 0x0000000000000500-0x0000000000000563 (\GPIO) (20140424/utaddress-254)
[ 7.644179] lpc_ich: Resource conflict(s) found affecting gpio_ich
[ 7.644422] ACPI Warning: SystemIO range 0x0000000000008000-0x000000000000801F conflicts with OpRegion 0x0000000000008000-0x000000000000800F (\_SB_.PCI0.SBUS.SMBI) (20140424/utaddress-254)
Ils peuvent être ignorés, mais on peut également gérer le conflit indiqué par la ligne lpc_ich. Pour supprimer ce conflit,
Mettre en liste noire le module lpc_ich :
créer un fichier lpc_ich.conf contenant
# cat /etc/modprobe.d/lpc_ich.conf
# Suppression conflit avec gpio_ich
blacklist lpc_ich
mettre à jour initramfs :
# update-initramfs -u
Redémarrer :
Il ne reste plus qu'un message de conflit :
$ dmesg |grep conflict
[ 7.608204] ACPI Warning: SystemIO range 0x0000000000008000-0x000000000000801F conflicts with OpRegion 0x0000000000008000-0x000000000000800F (\_SB_.PCI0.SBUS.SMBI) (20140424/utaddress-254)