Installation de base
L'image utilisée est celle de LinuxMint 12 Lisa en 64 bits. .
Je l'ai gravé sur un DVD, mais vous pouvez éventuellement utiliser une clef USB, dans ce cas il faut la mettre dans le port eSATA (celui le plus près de l'écran).
Au démarrage du DVD-Live, appuyer sur une touche quelconque puis ensuite sur tab
et ajouter acpi=off
aux options de démarrage (derrière les --
) dans le mode normal. Normalement si tout se passe bien, vous devriez pouvoir utiliser votre machine sous Linux. Avant de tester et lancer l'installation, je vous conseille d'ouvrir une console afin d'obtenir un clavier AZERTY.
$ setxkbmap fr
Vous cliquez sur Install Linux Mint
et c'est parti. Il ne vous reste plus qu'a suivre les indications et redémarrer, et là grande déception, cela ne marche pas.
Taper Esc
pour afficher le menu de grub, puis e
pour éditer. Ajouter acpi=off
(attention, on est en mode QWERTY) dans la ligne linux ...
et ensuite F10
pour démarrer.
Une fois votre système en route ouvrir le fichier /etc/default/grub
avec votre éditeur préféré et modifier la ligne de GRUB_CMDLINE_LINUX_DEFAULT
en ajoutant pcie_aspm=force acpi=noirq i915.semaphores=1
, ensuite lancer les commandes :
$ sudo update-grub $ sudo reboot
Wifi
Après l'installation le comportement est erratique, il est par exemple impossible de se connecter au routeur d'une freebox HD, cela n'est néanmoins pas le cas pour d'autres points d'accès. Après avoir largement tâtonné en désactivant le Networkmanager
et en fixant la configuration en dur avec entre autre la vitesse, par exemple, solution qui bien que donnant de meilleur résultat ne fonctionnait pas correctement, j'ai fini par désactiver le wifi-n. Avant de le faire définitivement il est préférable de tester :
% sudo rmmod -f iwlagn % sudo modprobe iwlagn 11n_disable=1
et si cela fonctionne, vous pouvez rendre cela définitif en créant ou éditant un fichier /etc/modprobe.d/iwlagn-disable11n.conf
puis en ajoutant
la ligne options iwlagn 11n_disable=1
Il faut également désactiver la gestion d'énergie. C'est le fichier /usr/lib/pm-utils/power.d/wireless
qui s'en occupe. Une solution consiste à le masquer
en créant un fichier /etc/pm/power.d/wireless
avec le contenu suivant :
#!/bin/sh /sbin/iwconfig wlan0 power off
Pour redémarrer le réseau :
% sudo nohup sh -c "invoke-rc.d networking stop; sleep 2; invoke-rc.d networking start"
Il est possible que votre carte soit éteinte ou verrouillée la combinaison de touche est Fn F2
mais parfois mystère cela ne fonctionne pas ! rfkill
est une solution au problème.
% rfkill list 0: dell-wifi: Wireless LAN Soft blocked: yes Hard blocked: yes 1: dell-bluetooth: Bluetooth Soft blocked: no Hard blocked: no 2: hci0: Bluetooth Soft blocked: no Hard blocked: no 3: phy0: Wireless LAN Soft blocked: no Hard blocked: no % sudo rfkill unblock 0
Touchpad
Il fonctionne correctement même si toutes les fonctionnalités ne sont pas toutes là. Par contre, il n'y a pas d'émulation du 3éme boutons.
$ sudo apt-get install gpointing-device-settings $ sudo gpointing-device-settings
Cocher la case correspondante.
Une autre méthode consiste à utiliser xinput
$ xinput list ⎡ Virtual core pointer id=2 [master pointer (3)] ⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)] ⎜ ↳ ImPS/2 Generic Wheel Mouse id=13 [slave pointer (2)] ⎣ Virtual core keyboard id=3 [master keyboard (2)] ↳ Virtual core XTEST keyboard id=5 [slave keyboard (3)] ↳ Power Button id=6 [slave keyboard (3)] ↳ Video Bus id=7 [slave keyboard (3)] ↳ Video Bus id=8 [slave keyboard (3)] ↳ Power Button id=9 [slave keyboard (3)] ↳ Sleep Button id=10 [slave keyboard (3)] ↳ Laptop_Integrated_Webcam_2HDM id=11 [slave keyboard (3)] ↳ AT Translated Set 2 keyboard id=12 [slave keyboard (3)] ↳ Dell WMI hotkeys id=14 [slave keyboard (3)]
ensuite vous récupérez les propriétés de votre souris/touchpad
$ xinput --list-props "ImPS/2 Generic Wheel Mouse" Device 'ImPS/2 Generic Wheel Mouse': Device Enabled (132): 1 Coordinate Transformation Matrix (134): 1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000 Device Accel Profile (253): 0 Device Accel Constant Deceleration (254): 1.000000 Device Accel Adaptive Deceleration (255): 1.000000 Device Accel Velocity Scaling (256): 10.000000 Evdev Axis Inversion (257): 0, 0 Evdev Axes Swap (259): 0 Axis Labels (260): "Rel X" (142), "Rel Y" (143) Button Labels (261): "Button Left" (135), "Button Middle" (136), "Button Right" (137), "Button Wheel Up" (138), "Button Wheel Down" (139), "Button Horiz Wheel Left" (140), "Button Horiz Wheel Right" (141) Evdev Middle Button Emulation (262): 0 Evdev Middle Button Timeout (263): 50 Evdev Wheel Emulation (264): 0 Evdev Wheel Emulation Axes (265): 0, 0, 4, 5 Evdev Wheel Emulation Inertia (266): 10 Evdev Wheel Emulation Timeout (267): 200 Evdev Wheel Emulation Button (268): 4 Evdev Drag Lock Buttons (269): 0
Il ne reste plus qu'à positionner à 1 l'émulation du troisième bouton.
$ xinput set-prop "ImPS/2 Generic Wheel Mouse" "Evdev Middle Button Emulation" 1
Carte SD et XD
Il faut que les linux-headers
système soient installés, ainsi que le compilateur C.
$ sudo apt-get install linux-headers-`uname -r`
Ensuite il vous reste à récupérer l'archive tarball jmb38x.tar.gz et la compresser, compiler et l'installer.
$ sudo su # tar zxvf jmb38x.tar.gz # cd jmb38x # make ; make install
Utilisation des cartes graphiques
C'est ici que les choses se gâtent.
Contexte
La machine dispose de 2 cartes graphiques :
- Une Intel intégrée qui offre des performances modestes et une consommation réduite.
- Une nVidia avec des bonnes performances, mais qui consomme beaucoup d'énergie et en conséquence une autonomie très réduite.
% lspci | grep VGA 00:02.0 VGA compatible controller: Intel Corporation 2nd Generation Core Processor Family Integrated Graphics Controller (rev 09) 01:00.0 VGA compatible controller: nVidia Corporation Device 0df5 (rev a1)
La technologie Optimus permet de switcher entre les deux cartes de manière transparente pour l'utilisateur, de mettre en route la carte nVidia lorsqu'une application a besoin d'accélération matérielle et d'utiliser la carte Intel qui est largement suffisante pour une utilisation quotidienne. Tout ça marche tout seul ... sous Windows. Pour l'instant nVidia refuse de développer des pilotes qui supportent Optimus sous Linux, donc pas de solution propre, que du bricolage.
Après la procédure d'installation décrite plus haut, on se retrouve dans une situation très défavorable : le serveur X tourne la carte intégré et n'offre pas de bonnes performances graphiques. En même temps la carte nVidia reste allumée et consomme de l'énergie. Il n'est même pas possible de faire tourner le serveur X sur la carte nVidia. Les sorties vers l'écran sont reliées à la carte intégrée. Normalement quand la grosse carte fonctionne, elle ne fait que des calculs et de remplissage de framebuffers et c'est la petite carte qui se charge de les afficher. Donc si on essaye de démarrer un serveur X sur la nVidia, il ne trouvera pas d'écran. La meilleure solution pour l'instant est bumblebee (et ses nombreux clones). Ça consiste à démarrer 2 serveurs X, un sur chaque carte, et de les faire communiquer par une bibliothèque qui s'appelle VirtualGL. La performance n'est pas terrible, mais c'est mieux que rien.
Bumblebee
Je vous conseille avant toute chose d'installer les pilotes pour votre carte NVidia si vous ne l'avez pas déjà fait. Pour ne pas l'avoir fait dans cette ordre j'ai planté toute mon installation X. Il faut ensuite récupérer et installer bumblebee
pour lequel il existe un dépot.
$ sudo add-apt-repository ppa:bumblebee/stable $ sudo apt-get update $ sudo apt-get install bumblebee
ensuite vous vous ajoutez dans le groupe bumblebee
$ sudo usermod -a -G bumblebee machin
et vous vous déconnectez et reconnectez.
Utiliser la commande optirun
pour lancer les applications que vous souhaitez sur la carte nVidia, par exemple :
$ optirun glxgears
Gestion de l'énérgie
Pour connaître la consommation au 100 km. Débrancher votre machine du secteur si nécessaire.
$ cat /proc/acpi/battery/BAT0/state present: yes capacity state: ok charging state: discharging present rate: 1978 mA remaining capacity: 4391 mAh present voltage: 16135 mV
La carte nVidia reste allumée même si elle n'est pas utilisée. optirun
permet de l'allumer et l'éteindre, mais cette fonctionnalité n'est pas activée par défaut. Il faut tout d'abord installer le module acpi-call
si ce n'est pas déjà fait.
sudo apt-get install acpi-call-tools
ensuite modifier deux options dans le fichier /etc/bumblebee/bumblebee.conf
ENABLE_POWER_MANAGEMENT=Y STOP_SERVICE_ON_EXIT=Y
ensuite créer deux fichiers /etc/bumblebee/cardon
et /etc/bumblebee/cardoff
% sudo sh -c 'echo "\_SB.PCI0.PEG0.PEGP._PS0" > /etc/bumblebee/cardon' % sudo sh -c 'echo "\_SB.PCI0.PEG0.PEGP._DSM {0xF8,0xD8,0x86,0xA4,0xDA,0x0B,0x1B,0x47,0xA7,0x2B,0x60,0x42,0xA6,0xB5,0xBE,0xE0} 0x100 0x1A {0x1,0x0,0x0,0x3}\n\_SB.PCI0.PEG0.PEGP._PS3" > /etc/bumblebee/cardoff'
Redémarrer le service
% sudo service bumblebee restart
Tester que cela fonctionne bien
% optirun glxgears
Environ 1000 fps avec la carte NVidia et 60 fps sans.
% cat /proc/acpi/battery/BAT0/state present: yes capacity state: ok charging state: discharging present rate: 1463 mA remaining capacity: 4563 mAh present voltage: 16569 mV
Pas mal la consommation a réduit autour de 1400 mA
Vous pouvez également désactiver la carte nVidia
# sudo su # echo "blacklist nouveau" > /etc/modprobe.d/blacklist-nvidia.conf # update-initramfs -c -k all # reboot
Compression et transfert
Il est possible de modifier le mode de compression et de transport des frames.
$ optirun -c <methodeDeCompression> <application>
où <methodeDeCompression>
peut être jpeg, xv, proxy, rgb ou yuv
. Ensuite il est possible de modifier la variable VGL_COMPRESS
dans /etc/bumblebee/bumblebee.conf
pour fixer la méthode. yuv
semble être la meilleure méthode.
Mini Displayport output et HDMI
Le port HDMI est relié à la carte NVidia
Sources
Merci à Stefan B.
- Installation du Dell XPS 15z https://wiki.edubuntu.org/HardwareSupport/Machines/Laptops/Dell/XPS/15z
- Bumblebee
- Lecteur de cartes (#10) http://ubuntuforums.org/showthread.php?t=1718934
Comments
cuda
allez lire ce billet.lint Maya
se passe relativement bien. Il faut néanmoins rajouter au niveau degrub
à la place dei965.modeset=1 i965.semaphores=1
I915.semaphores=1
et pour le wifiiwlwifi
remplaceiwlagn
% sudo rmmod -f iwlwifi
% sudo modprobe iwlwifi 11n_disable=1
Ajouter (ou créer) dans
/etc/modprobe.d/iwlwifi.conf
options iwlwifi 11n_disable=1
% sudo gedit /etc/polkit-1/localauthority/50-local.d/com.ubuntu.desktop.pkla
et ajouter :
[Re-active lhibernation]
Identity=unix-user:*
Action=org.freedesktop.upower.hibernate
ResultActive=yes
Il ne vous reste plus qu'à redémarrer et tester.