Webcam

Informations sur le matériel :

$ lsusb

Bus 003 Device 003: ID 058f:a014 Alcor Micro Corp. Asus Integrated Webcam

La webcam a été reconnue dès l'installation de Squeeze et j'ai pu vérifier son bon fonctionnement en ouvrant Cheese.

Cependant, depuis l'installation du noyau 3.2 et l'utilisation du pilote i915 pour la carte graphique Intel, la webcam n'est plus fonctionnel. Quand Cheese ou un autre logiciel exploitant la webcam est ouvert, le pilote graphique plante brièvement (l'écran devient noir un instant). Messages dans le journal du système :

Mar 15 18:32:43 portable kernel: [17930.098796] [drm:i915_hangcheck_elapsed] *ERROR* Hangcheck timer elapsed... GPU hung
Mar 15 18:32:43 portable kernel: [17930.098807] [drm] capturing error event; look for more information in /debug/dri/0/i915_error_state
Mar 15 18:32:43 portable kernel: [17930.102856] [drm:i915_wait_request] *ERROR* i915_wait_request returns -11 (awaiting 1 at 0, next 2)
Mar 15 18:33:46 portable kernel: [17992.618160] [drm:i915_hangcheck_elapsed] *ERROR* Hangcheck timer elapsed... GPU hung
Mar 15 18:33:46 portable kernel: [17992.618254] [drm:i915_wait_request] *ERROR* i915_wait_request returns -11 (awaiting 2 at 0, next 3)

La webcam n'est pas prioritaire pour moi, donc à suivre.

MISE A JOUR : pour régler le problème d'affichage de vidéo (webcam, films), il suffit d'installer la version squeeze-backports du pilote i915 et du serveur X.Org.

# apt-get install -t squeeze-backports xserver-xorg-video-intel xserver-xorg xserver-xorg-core

Après redémarrage, j'ai l'image dans Cheese.

Pour activer le micro, voir dans Système > Préférences > Son ou utiliser alsamixer.

Carte graphique nVidia

Le portable est équipé du système nVidia Optimus : un composant graphique Intel intégré et une carte nVidia séparée (GeForce GT 520MX), qui communique avec le composant Intel. La carte nVidia n'est utilisée que pour les traitements lourds. Il existe des pilotes pour Windows. Dans Linux, c'est plus problématique car d'après mes lectures X.Org ne permet pas de changer de pilote à la volée.

Après installation du noyau 3.2, l'affichage est géré par la carte intégrée Intel avec le pilote i915. La carte nVidia n'est pas utilisée, mais elle est alimentée électriquement, ce qui réduit l'autonomie du portable.

A l'heure actuelle, je vois deux solutions :

  • Installer le logiciel Bumblebee 3.0, qui permet d'utiliser la carte nVidia avec certains logiciels, et de la désactiver quand elle n'est pas utilisée. Il existe un paquet pour Wheezy, mais je n'en ai pas trouvé pour Squeeze (pour l'installer manuellement, voir ce document et celui-ci).
  • Désactiver complètement la carte nVidia en faisant appel à une fonction du noyau de Linux appelée vgaswitcheroo.

La carte Intel suffit pour afficher correctement le bureau, j'ai donc opté pour la deuxième solution, en attendant mieux.

D'après mes lectures, certains portables ont dans leur BIOS une option permettant de choisir entre mode hybride et mode monocarte, mais ce n'est pas le cas de l'Asus K53SC.

D'après certaines docs, on peut également utiliser le module acpi_call pour désactiver la carte nVidia. Voir par exemple Éteindre le GPU mangeur de batteries.

Informations sur la carte vidéo nVidia :

01:00.0 VGA compatible controller: NVIDIA Corporation GF119 [GeForce GT 520MX] (rev a1) (prog-if 00 [VGA controller])
        Subsystem: ASUSTeK Computer Inc. Device 1762
(...)
        Kernel driver in use: nouveau

Les deux composants graphiques présents :

$ lspci -vnn | grep '\''[030[02]\]'

00:02.0 VGA compatible controller [0300]: Intel Corporation 2nd Generation Core Processor Family Integrated Graphics Controller [8086:0116] (rev 09) (prog-if 00 [VGA controller])

01:00.0 VGA compatible controller [0300]: NVIDIA Corporation GF119 [GeForce GT 520MX] [10de:1051] (rev a1) (prog-if 00 [VGA controller])

Pour afficher des informaions plus détaillées, voir aussi :

# lshw -C display

Mise à jour (27/03/2012) : la manip ci-dessous semble fonctionner, mais la consommation électrique ne baisse pas autant que prévu. J'ai réglé le problème en désactivant la carte avec le module bbswitch du projet Bumblebee.

Désactivation de la carte nVidia avec vgaswitcheroo

Paramètre du noyau à activer pour disposer de cette fonction : CONFIG_VGA_SWITCHEROO.

Dans les menus :

Device Drivers --->
  Graphics Support --->
    [*] Laptop Hybrid Graphics - GPU switching support
    <*> Direct Rendering Manager --->
      <> ATI Radeon
        [] Enable modesetting on radeon by default
      <*> Intel 830M, *45G, 852GM, 855GM, 865G
        <*> i915 driver
          [*] Enable modesetting on intel by default
    Console display driver support --->
      -*- Framebuffer Console support
        [*] Map the console to the primary display device
Kernel hacking --->
  [*] Debug Filesystem

Dans /etc/fstab, ajoutez la ligne :

none                    /sys/kernel/debug debugfs defaults 0 0

et montez ce système de fichier.

Pour afficher l'état des cartes :

# cat /sys/kernel/debug/vgaswitcheroo/switch

0:DIS: :Pwr:0000:01:00.0
1:IGD:+:Pwr:0000:00:02.0

Pour désactiver la carte nVidia :

# echo OFF > /sys/kernel/debug/vgaswitcheroo/switch

Messages dans le journal du système :

Mar 16 18:35:44 portable kernel: [ 4233.602595] VGA switcheroo: switched nouveau off
Mar 16 18:35:44 portable kernel: [ 4233.602610] [drm] nouveau 0000:01:00.0: Disabling fbcon acceleration...
Mar 16 18:35:44 portable kernel: [ 4233.602616] [drm] nouveau 0000:01:00.0: Unpinning framebuffer(s)...
Mar 16 18:35:44 portable kernel: [ 4233.602695] [drm] nouveau 0000:01:00.0: Evicting buffers...
Mar 16 18:35:44 portable kernel: [ 4233.611801] [drm] nouveau 0000:01:00.0: Idling channels...
Mar 16 18:35:44 portable kernel: [ 4233.611903] [drm] nouveau 0000:01:00.0: Suspending GPU objects...
Mar 16 18:35:44 portable kernel: [ 4233.737703] [drm] nouveau 0000:01:00.0: And we're gone!
Mar 16 18:35:44 portable kernel: [ 4233.737766] nouveau 0000:01:00.0: PCI INT A disabled
Mar 16 18:35:44 portable kernel: [ 4233.753103] nouveau 0000:01:00.0: power state changed by ACPI to D3

Etat des cartes après la désactivation :

# cat /sys/kernel/debug/vgaswitcheroo/switch

0:DIS: :Off:0000:01:00.0
1:IGD:+:Pwr:0000:00:02.0

Pour désactiver la carte nVidia au démarrage, on peut ajouter la ligne ci-dessous dans le fichier /etc/rc.local :

echo OFF > /sys/kernel/debug/vgaswitcheroo/switch

Après redémarrage, les cartes ont changé d'ordre chez moi et la carte nVidia est toujours arrêtée :

# cat /sys/kernel/debug/vgaswitcheroo/switch

0:IGD:+:Pwr:0000:00:02.0
1:DIS: :Off:0000:01:00.0

Pour désactiver le chargement automatique du pilote nouveau au démarrage du système, on peut ajouter le paramètre blacklist nouveau au fichier /etc/modprobe.d/blacklist.conf.

MISE A JOUR : il n'est pas possible de désactiver le chargement du module nouveau, qui semble nécessaire au bon fonctionnement de la fonction vgaswitcheroo.

D'après powertop, la désactivation de la carte nVidia réduit la consommation électrique de 3 à 4 W.