Expériences avec Ubuntu

Pierre Sarrazin
2014-06-25

There is an English version of this page.

Installation sur un portable Asus F3JM

En 2011, j'ai installé GNU/Linux sur mon portable Asus F3JM via la distribution Ubuntu 11.04 et l'installateur Wubi. J'ai accordé 30 gigaoctets d'espace à cet installateur.

Interface sans-fil 802.11g

Sur le devant du portable, près des voyants, il y a un commutateur on/off. Il faut le mettre à "on" pour que l'interface sans-fil 802.11g soit utilisable par le système d'exploitation.

Il faut que la commande rfkill list dans un terminal affiche "no" sur la ligne "Hard blocked". Par exemple:

0: phy0: Wireless LAN
    Soft blocked: no
    Hard blocked: no

Routeur 802.11g

J'utilise un routeur D-Link WBR-2310. Dans sa page "Wireless Settings", j'ai choisi:

Après quelques semaines d'utilisation normale, j'ai eu des problèmes de bande passante très basse (environ 0.18 mégaoctets par seconde). Ça s'est réglé quand j'ai configuré le routeur pour qu'il utilise le canal 11 plutôt que 1. Dans Setup, voir Wireless Settings, puis Wireless Channel.

Connexion sans-fil sur Ubuntu

Par l'applet du Network Manager, dans la barre de menu en haut à droite, j'ai fait ceci:

Swap

Le swap space établi par l'installateur Wubi était trop petit (256 megs). J'ai utilisé la procédure décrite ici pour l'augmenter à 2 gigs.

Hibernation

Malgré que j'aie augmenté le swap space à 2 gigs (le portable a 1 gig de RAM), l'hibernation échoue quand même, avec le message swap header not found. Je n'ai pas trouvé de solution à ce problème, qui aurait dû être réglé par l'installateur.

Microphone

Ce portable a un microphone situé au dessus de l'écran, à droite de la caméra. J'ai pu enregistrer le son ambiant en allant dans System > Preferences > Sound, onglet Input, et en choisissant Front Microphone comme Connector.

J'ai aussi monté Input Volume au maximum. La case Mute ne doit pas être cochée. Quand je fais du bruit près du micro, la rangée de petits rectangles à droite de Input Level clignotent de façon analogue.

Par ailleurs, j'ai pu enregistrer du son provenant d'un autre ordinateur en reliant par un câble la prise verte (line out) de cet ordinateur à la prise microphone près du touchpad du portable. Il faut alors que Connector soit Analog Microphone plutôt que Front Microphone. Je me suis servi du Sound Recorder de GNOME.

Pour transférer du son dans l'autre sens, on branche le câble de la prise S/PDIF du portable (près du touchpad elle aussi) à la prise bleu pâle (stereo line in) de l'autre ordinateur. Sur celui-ci, on spécifie Line-In comme Connector, et on enregistre avec Audacity ou encore à la ligne de commande ainsi:

arecord -f S16_LE -r 44100 -c 2 rec.wav

Caméra

La webcam a fonctionné immédiatement après que j'aie installé et ouvert le logiciel Camorama, qui s'installe avec sudo apt-get install camorama. Toutefois, après l'installation, cette application n'est pas apparue dans le sous-menu Sound & Video. J'ai donc créé un "launcher" dans le panneau pour démarrer "camorama" (avec un c minuscule).

La commande lsusb affiche la ligne suivante pour cette caméra:

Bus 001 Device 003: ID 05e1:0501 Syntek Semiconductor Co., Ltd DC-1125 Webcam

Le périphérique /dev/video0 existe, avec le numéro majeur 81 et le numéro mineur 0.

Par ligne de commande

Le package webcam fonctionne. Je peux prendre une photo avec la commande webcam après avoir créé le fichier .webcamrc dans mon "home" avec le contenu suivant:

[grab]
device = /dev/video0
text = "SarrazipCam %Y-%m-%d %H:%M:%S"
bg_red = 0
bg_green = 0
bg_blue = 0
width = 640
height = 480
wait = 0
quality = 85
once = 1

[ftp]
local = 1
dir = /tmp
tmp = webcam.tmp
file = webcam.jpg

La page de manuel de la commande webcam donne plus de détails.

Connexion X à distance

Cette section est facultative. Les applications graphiques sous GNU/Linux peuvent exécuter sur une machine et envoyer leur affichage sur une autre, grâce à une fonctionnalité du système de fenêtres X (X Window System). Sous Ubuntu, par défaut, cette fonctionnalité est désactivée.

Ubuntu 11.04

Il faut éditer le fichier /usr/share/gdm/gdm.schemas, trouver ce paragraphe:

    <schema>
      <key>security/DisallowTCP</key>
      <signature>b</signature>
      <default>false</default>
    </schema>
et changer false pour true. Il faut ensuite se déloguer et se loguer à nouveau.

Ubuntu 12.04

Il faut éditer /etc/X11/xinit/xserverrc pour changer cette ligne:

exec /usr/bin/X -nolisten tcp "$@"
en cela:
exec /usr/bin/X "$@"
et il faut aussi éditer /etc/lightdm/lightdm.conf pour ajouter cette ligne:
xserver-allow-tcp=true
Là aussi, il faut ensuite se déloguer et se loguer à nouveau.

xhost

Il reste à permettre à certains hôtes de se connecter à l'affichage graphique du portable. Dans mon cas, je voulais exécuter Firefox sur mon PC principal, dont l'adresse était 192.168.0.2. J'ai donc donné la commande xhost +192.168.0.2 sur le portable, dont l'adresse était 192.168.0.130. Pour rendre cette permission permanente, j'ai mis cette commande dans le fichier $HOME/.xprofile (sur le portable).

Sur mon PC principal, auquel j'étais connecté par ssh, j'ai donné la commande export DISPLAY=192.168.0.130:0 puis firefox.

DISPLAY est une variable d'environnement consultée par une application graphique pour déterminer où envoyer son affichage. Par défaut cette variable n'est pas définie. On la définit quand on veut envoyer l'affichage sur une autre machine (mon portable dans ce cas-ci). On spécifie l'adresse IP ou le nom d'hôte de cette machine, puis un deux-point, puis typiquement zéro (pour désigner le "premier" serveur X de cette machine — il n'y en a qu'un seul normalement).

ndiswrapper

Quand on tente de compiler les sources du module ndiswrapper et qu'on obtient un message de ce genre:

Makefile:28: *** No .config found in /lib/modules/2.6.38-14-generic/build, please set KBUILD to configured kernel.  Stop.

Il faut créer la variable d'environnement KBUILD de façon à désigner un répertoire contenant un fichier .config. Dans mon cas, ce fut ceci:

export KBUILD=/lib/modules/2.6.38-15-generic/build

Le package linux-headers doit être installé.

Problèmes de RAID

Sur mon PC exécutant Ubuntu 12.04.4, un des deux disques de mon RAID en a été mystérieusement retiré. La commande mdadm -D /dev/md0 indiquait "removed" là où on aurait dû voir une mention de la partition /dev/sda1:

/dev/md0:
        Version : 1.2
  Creation Time : Sat Oct 12 20:01:52 2013
     Raid Level : raid1
     Array Size : 471531328 (449.69 GiB 482.85 GB)
  Used Dev Size : 471531328 (449.69 GiB 482.85 GB)
   Raid Devices : 2
  Total Devices : 1
    Persistence : Superblock is persistent

    Update Time : Tue Jun 24 23:41:33 2014
          State : clean, degraded 
 Active Devices : 1
Working Devices : 1
 Failed Devices : 0
  Spare Devices : 0

           Name : foobar:0  (local to host foobar)
           UUID : d87b72eb:17425250:dfbf806f:60eba0fc
         Events : 4483773

    Number   Major   Minor   RaidDevice State
       0       0        0        0      removed
       1       8       17        1      active sync   /dev/sdb1

Même chose pour md1 et sda5.

La commande fdisk voyait les deux disques (sda et sdb), ce qui semblait indiquer que le disque absent était fonctionnel. La commande dmesg | grep md montrait une ligne "kicking non-fresh sda1 from array!" (et une autre semblable pour sda5) indiquant que sda se faisait explicitement rejeter. Cette situation pourrait avoir été la conséquence d'une panne d'électricité.

J'ai donc donné les commandes suivantes pour ramener sda1 et sda5 dans le RAID:

/sbin/mdadm /dev/md0 --add /dev/sda1
/sbin/mdadm /dev/md1 --add /dev/sda5

mdadm a répondu par "added /dev/sda1" et "added /dev/sda5". J'ai trouvé ces commandes sur cette page, qui mentionne aussi des commandes mdadm recevant --fail et --remove, mais celles-ci échouaient dans mon cas (avec raison): sda1 et sda5 ne pouvaient être retirées puisqu'elles étaient déjà absentes.

Par la suite, d'autres mdadm -D /dev/md0 montraient une ligne Rebuild Status : xx% complete pour montrer la progression:

/dev/md0:
        Version : 1.2
  Creation Time : Sat Oct 12 20:01:52 2013
     Raid Level : raid1
     Array Size : 471531328 (449.69 GiB 482.85 GB)
  Used Dev Size : 471531328 (449.69 GiB 482.85 GB)
   Raid Devices : 2
  Total Devices : 2
    Persistence : Superblock is persistent

    Update Time : Wed Jun 25 13:06:01 2014
          State : clean, degraded, recovering 
 Active Devices : 1
Working Devices : 2
 Failed Devices : 0
  Spare Devices : 1

 Rebuild Status : 12% complete

           Name : foobar:0  (local to host foobar)
           UUID : d87b72eb:17425250:dfbf806f:60eba0fc
         Events : 4496477

    Number   Major   Minor   RaidDevice State
       2       8        1        0      spare rebuilding   /dev/sda1
       1       8       17        1      active sync   /dev/sdb1

Quant à md1, la construction était marquée comme différée (delayed), en attendant que celle de md0 termine:

/dev/md1:
        Version : 1.2
  Creation Time : Sat Oct 12 20:05:02 2013
     Raid Level : raid1
     Array Size : 16712576 (15.94 GiB 17.11 GB)
  Used Dev Size : 16712576 (15.94 GiB 17.11 GB)
   Raid Devices : 2
  Total Devices : 2
    Persistence : Superblock is persistent

    Update Time : Wed Jun 25 12:55:57 2014
          State : clean, degraded, resyncing (DELAYED) 
 Active Devices : 1
Working Devices : 2
 Failed Devices : 0
  Spare Devices : 1

           Name : foobar:1  (local to host foobar)
           UUID : db61b8ec:b93692e5:e01aba71:d8801853
         Events : 97

    Number   Major   Minor   RaidDevice State
       2       8        5        0      spare rebuilding   /dev/sda5
       1       8       21        1      active sync   /dev/sdb5

À la fin de la reconstruction, la mention "spare rebuilding" devient "active sync" et la ligne "State" dit seulement "clean".

Le RAID s'auto-surveille et envoie des avertissements en courrier à l'usager root. Il est bon au besoin de rediriger les messages à root vers l'usager dont on se sert quotidiennement. Ceci se fait en ajoutant une ligne "root: joe" à /etc/aliases pour que les messages soient reçus par le compte "joe", et en donnant la commande "newaliases" pour appliquer le changement.

Sources



De retour à La Petite Page Plate de Pierre.