Avertissement
Mon Aspire One souffre d'un bug de BIOS majeur : Le réglage dans le BIOS d'un "mot de passe superviseur" rend ensuite tout accès au BIOS impossible : le mot de passe est refusé dans tous les cas de figure. Seule solution, supprimer le mot de passe, mais si vous vous êtes arrangé entre-temps pour rendre votre machine imbootable, vous serez totalement coincé. Je vous déconseille donc fortement de définir un mot de passe dans le BIOS, et encore davantage avant d'avoir terminé l'installation de votre système d'exploitation.
Update 17/07 12:34 : Je me suis souvenu d'un vieux BIOS qui m'avait fait le même coup dans le temps, et j'ai finalement réussi à régler un mot de passe BIOS "superviseur" qui fonctionne en n'utilisant que des chiffres de la rangée du haut du clavier, sans la touche [Majuscule] - puisque c'est du QWERTY lors du boot, et que l'emploi de la touche [Majuscule] n'est vraiment pas conseillé avec les mots de passe de BIOS...
Créer le support d'installation
Télécharger une image ISO de CD Kubuntu Desktop live standard, et la transférer sur une clé USB rendue bootable avec l'utilitaire isotostick.sh.
Installation de Kubuntu
Démarrer normalement l'installation de Kubuntu, en choisissant le partitionnement manuel du disque SSD.
J'ai personnellement installé ça sous forme entièrement chiffrée avec clé de contact, mais je décris ici une installation plus ordinaire.
Suggestion de partitionnement du disque SSD:
- sda1 :
/boot, ext2, 96 Mo - sda2 :
/(racine du filesystem), ext2, toute la place disponible moins 1 Go (le disque est trop petit pour qu'il soit sensé de perdre de la place en créant de multiples partitions...) - sda3 : Swap, 1 Go
On utilisera un filesystem ext2 plutôt qu'ext3 sur le SSD pour économiser les écritures de journal, lentes sur ce périphérique, et susceptible de l'user plus rapidement (les mémoires flash utilisées pour les disques SSD ayant un nombre de cycles d'écriture limité).
Installer ensuite normalement.
Après installation d'une Ubuntu / Kubuntu standard, les seules choses qui ne marchent pas sur l'Acer Aspire One sont :
- Le Wi-Fi
- Les lecteur de cartes mémoires
...ce qui est quand même embêtant.
Premières modifications
/boot/grub/menu.lst : Sélection du timer
On accélérera légèrement le boot en spécifiant le timer correct à utiliser : "clocksource=hpet" à ajouter tant dans la ligne pseudo-commentée "defoptions" que dans les lignes "kernel" correspondant à chaque noyau.
# defoptions=clocksource=hpet quiet splash
...
kernel /vmlinuz-2.6.24-19-generic root=/dev/sda2 ro clocksource=hpet quiet splash
Update 12/08/2008 : De même, on commencera à résoudre (partiellement...) le problème du SSD lent de l'Aspire One en réglant le noyau pour l'utilisation de l'IO scheduler "deadline", en ajoutant, dans le même fichier menu.lst, tant dans la ligne pseudo-commentée "kopt" que dans les lignes "kernel" correspondant à chaque noyau :
# kopt=root=/dev/sda2 ro elevator=deadline
...
kernel /vmlinuz-2.6.24-19-generic root=/dev/sda2 ro elevator=deadline clocksource=hpet quiet splash
Script de gestion du lecteur de cartes SD JMicron
J'ai récupéré le script jmb38x_d3e.sh sur la Linpus Linux fournie avec la machine.
Installer ce script dans le répertoire /usr/local/sbin, et le rendre exécutable (chmod 754 /usr/local/sbin/jmb38x_d3e.sh). Nous l'utiliserons par la suite.
Accélération de l'accès au disque SSD
(Paragraphe ajouté le 12/08/2008, modifié le 14/08)
Le disque SSD de l'Aspire One étant notoirement et tristement lent, ce qui se manifeste par des "blocages" périodiques du système de quelques secondes durant les phases d'écriture intense, nous allons tenter d'optimiser la méthode d'accès à ce disque.
Les paramètres que je propose ci-dessous sont encore expérimentaux, je les modifie régulièrement un peu ici ou là pour tenter d'améliorer les performances autant que faire se peut. Vous pouvez tester vos propres valeurs, celles-ci sont assez efficaces...
Pour cela, créons un script /usr/local/sbin/slowvm.sh dans lequel nous mettrons :
#! /bin/bash # # Swami Petaramesh, 2008/08/14 # # slowvm.sh (pour Acer Aspire One) # Controle de la LED Wi-Fi de l'Aspire One echo 3 >/proc/sys/dev/wifi0/ledpin echo 3 >/proc/sys/dev/wifi0/softled # SP : Economisons le SSD sysctl -q -w vm.swappiness=1 # Strongly discourage swapping sysctl -q -w vm.vfs_cache_pressure=50 # Don't shrink the inode cache aggressively # Utilise l'I/O Scheduler "deadline" pour privilegier les lectures # aux dépens des écritures sur le SSD lentissime de l'Aspire One echo deadline >/sys/block/sda/queue/scheduler echo 512 >/sys/block/sda/queue/read_ahead_kb echo 256 >/sys/block/sda/queue/nr_requests echo 0 >/sys/block/sda/queue/iosched/front_merges echo 50 >/sys/block/sda/queue/iosched/read_expire echo 15000 >/sys/block/sda/queue/iosched/write_expire echo 128 >/sys/block/sda/queue/iosched/writes_starved # Evite les ecritures sur disque et les concentre # mais pas trop... echo 60 > /proc/sys/vm/dirty_ratio echo 40 > /proc/sys/vm/dirty_background_ratio echo 6000 > /proc/sys/vm/dirty_expire_centisecs echo 1500 > /proc/sys/vm/dirty_writeback_centisecs exit 0
Rendons maintenant ce script exécutable : chmod 755 /usr/local/sbin/slowvm.sh
Modification de /etc/rc.local
(Paragraphe mis à jour le 12/08/2008)
Nous allons ajouter à la fin de /etc/rc.local (avant la ligne "exit 0") un ensemble d'instructions destinées à diminuer les écritures sur le disque SSD (par appel du script précédent), économiser l'énergie pour augmenter l'autonomie de batterie, et activer le lecteur de cartes mémoire.
Ajouter les lignes :
# SP : Economisons le SSD /usr/local/sbin/slowvm.sh # SP: d'apres le rc.last.ctrl de Linpus echo ondemand > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor echo ondemand > /sys/devices/system/cpu/cpu1/cpufreq/scaling_governor [ -L /sys/bus/usb/devices/1-5/power/level ] && echo auto > /sys/bus/usb/devices/1-5/power/level [ -L /sys/bus/usb/devices/5-5/power/level ] && echo auto > /sys/bus/usb/devices/5-5/power/level # SP: Accelere l'hibernation et reduit la taille de l'image echo 0 > /sys/power/image_size # SP: D'apres Linpus, pour lecteur de carte MMC multiformat setpci -d 197b:2381 AE=47 nice /usr/local/sbin/jmb38x_d3e.sh & # SP: D'apres Linpus /usr/bin/setkeycodes e025 130 /usr/bin/setkeycodes e026 131 /usr/bin/setkeycodes e027 132 /usr/bin/setkeycodes e029 133 /usr/bin/setkeycodes e071 134 /usr/bin/setkeycodes e072 135 /usr/bin/setkeycodes e055 159 /usr/bin/setkeycodes e056 158 # /SP
Réglages ACPI
(Paragraphe ajouté le 12/08/2008, mis à jour le 15/08)
Nous allons enfin appeler le script /usr/local/sbin/slowvm.sh lorsque le système passe sur batterie ou sur secteur, faute de quoi le noyau pourrait remettre des valeurs par défaut moins performantes. Pour cela, créons simplement des liens symboliques :
ln -sv /usr/local/sbin/slowvm.sh /etc/acpi/ac.d/99-slowvm.sh ln -sv /usr/local/sbin/slowvm.sh /etc/acpi/battery.d/99-slowvm.sh ln -sv /usr/local/sbin/slowvm.sh /etc/acpi/resume.d/99-slowvm.sh
Modification de /etc/sysctl.conf
(Paragraphe mis à jour le 14/08/2008)
Ajouter les lignes suivantes à la fin de /etc/sysctl.conf :
# decrease swap usage to maximize SSD life vm.swappiness = 1 # Don't shrink the inode cache aggressively vm.vfs_cache_pressure = 50 # Controle de la LED Wi-Fi de l'Aspire One dev.wifi0.ledpin = 3 dev.wifi0.softled = 3
Modification de /etc/initramfs-tools/modules
Ajouter les lignes :
fuse softcursor bitblit font tileblit fbcon fan processor thermal usbcore uhci_hcd ehci_hcd libata ata_generic ata_piix pata_acpi scsi_mod sd_mod sg usb_storage mmc_block sdhci mmc_core pci_hotplug pciehp dm_mod dm_crypt blkcipher cbc aes_i586 sha256_generic mbcache ext2 pcspkr button battery ac wmi_acer evdev led_class acer_acpi cpufreq_conservative freq_table cpufreq_ondemand cpufreq_powersave cpufreq_stats cpufreq_userspace acpi_cpufreq r8169
Modificaton de /etc/initramfs-tools/initramfs.conf
Modififier la ligne "MODULES=most" en "MODULES=dep"
Régénération de l'initramfs
Exécuter : sudo update-initramfs -u
Redémarrer ensuite la machine.
Son
Pour que le son continue de fonctionner après réveil d'une suspension ou d'une hibernation, ajouter à la fin du fichier /etc/modprobe.d/alsa-base la ligne :
options snd-hda-intel model=acer
(Merci à "EricNevers" pour cette info donnée dans le commentaire #52 et que j'inclus au billet pour plus de visibilité)
Webcam
La webcam doit fonctionner. Elle peut être essayée facilement avec le programme "ucview" que l'on peut installer comme suit :
wget -q http://www.unicap-imaging.org/downloads/public.key -O- | sudo apt-key add -
Ouvrir ensuite le gestionnaire de paquetages Adept, choisir de modifier les dépôts, et dans les "dépôts logiciels de tierces-parties", ajouter la ligne :
deb http://unicap-imaging.org/packages hardy main contrib
Installer ensuite le package "ucview". On pourra alors faire joujou avec la webcam.
Wi-Fi Atheros
(Paragraphe mis à jour le 12/08/2008)
L'Aspire One est équipé d'une carte Wi-FI Atheros AR5BXB63 (selon l'étiquette collée dessous) qui fait partie de la famille AR5007, présente sur de très nombreux portables et connue pour ne pas fonctionner brute de décoffrage sous Ubuntu.
Elle est reconnue par "lspci" comme :
Atheros Communications Inc. AR242x 802.11abg Wireless PCI Express Adapter (rev 01)
...et avec "lspci -n" :
03:00.0 0200: 168c:001c (rev 01)
Il faudra compiler un package madwifi spécialement patché, à partir de ses sources : madwifi-hal-0.10.5.6-r3835-20080801 , que l'on se procurera ici : http://snapshots.madwifi.org/madwifi-hal-0.10.5.6/
Installer d'abord les package "build-essential" et "libc6-dev":
sudo aptitude install build-essential libc6-dev
Décompresser l'archive madwifi-hal-0.10.5.6-r3835-20080801 dans un répertoire de son choix, et se rendre (comme "root", après "sudo -s") dans le répertoire obtenu, puis :
cd scripts ./madwifi-unload ./find-madwifi-modules.sh -r cd .. make install
Une fois ceci fait, rebooter la machine, ensuite de quoi le Wi-Fi devrait fonctionner.
Conservez le répertoire source de madwifi sur la machine : à chaque fois que vous mettrez à jour votre noyau, ceci écrasera vos pilotes Wi-Fi, et il faudra en refaire alors l'installation, ce qui ne prend que quelques instants.
(Paragraphe partiellement modifié à la suite d'un commentaire #51 de "geo92".)
Lecteurs de cartes mémoires
L'Aspire One est équipé d'un lecteur JMicron JMB38X :
04:00.0 System peripheral: JMicron Technologies, Inc. Unknown device 2382
Subsystem: JMicron Technologies, Inc. Unknown device 2382
Flags: fast devsel, IRQ 255
Memory at 74100000 (32-bit, non-prefetchable) [disabled] [size=256]
[virtual] Expansion ROM at 73100000 [disabled] [size=64K]
Capabilities: [a4] Power Management version 3
Capabilities: [80] Express Endpoint IRQ 0
Capabilities: [94] Message Signalled Interrupts: Mask- 64bit- Queue=0/0 Enable-
04:00.2 SD Host controller: JMicron Technologies, Inc. Unknown device 2381 (prog-if 01)
Subsystem: JMicron Technologies, Inc. Unknown device 2381
Flags: bus master, fast devsel, latency 0, IRQ 19
Memory at 74100100 (32-bit, non-prefetchable) [size=256]
Capabilities: [a4] Power Management version 3
Capabilities: [80] Express Endpoint IRQ 0
Capabilities: [94] Message Signalled Interrupts: Mask- 64bit- Queue=0/0 Enable-
04:00.3 System peripheral: JMicron Technologies, Inc. Unknown device 2383
Subsystem: JMicron Technologies, Inc. Unknown device 2383
Flags: fast devsel, IRQ 255
Memory at 74100200 (32-bit, non-prefetchable) [disabled] [size=256]
Capabilities: [a4] Power Management version 3
Capabilities: [80] Express Endpoint IRQ 0
Capabilities: [94] Message Signalled Interrupts: Mask- 64bit- Queue=0/0 Enable-
04:00.4 System peripheral: JMicron Technologies, Inc. Unknown device 2384
Subsystem: JMicron Technologies, Inc. Unknown device 2384
Flags: fast devsel, IRQ 255
Memory at 74100300 (32-bit, non-prefetchable) [disabled] [size=256]
Capabilities: [a4] Power Management version 3
Capabilities: [80] Express Endpoint IRQ 0
Capabilities: [94] Message Signalled Interrupts: Mask- 64bit- Queue=0/0 Enable-
Malheureusement, le module pilote de ce lecteur n'est disponible qu'à partir des noyaux 2.6.25, or Ubuntu Hardy possède un noyau 2.6.24.
Le noyau Linux Linpus fourni avec l'Acer Aspire One est un noyau spécialement patché pour y ajouter ce module, mais je n'ai pas réussi à en trouver le code source.[1]
J'ai fait des essais peu concluants avec des noyaux 2.6.26, y compris des essais de compilation de noyaux custom, mais le module jmb38x obtenu semble différent et moins complet que celui fourni avec l'Aspire One.
Quoiqu'il en soit, avec les modifications déjà indiquées plus haut, les lecteurs de cartes SD devraient fonctionner (ils fonctionnent chez moi) avec le pilote sdhci, mais il sera probablement impossible de lire des Memory sticks ou des cartes XD dans le lecteur multiformat. Je n'ai pas essayé : je n'en avais pas sous la main.
A noter une particularité des lecteurs JMicron : Il s'agit de lecteurs PCI Hotplug, qui ne sont pas visibles dans lspci tant qu'une carte n'a pas été insérée dedans.
Pour une raison foireuse quelconque (probablement le manque du pilote jmb38x complet), seul le premier lecteur dans lequel une carte est insérée sera reconnu. Si on insère une carte dans le deuxième lecteur, pour que les deux cartes soient simultanément reconnues, il faudra faire :
sudo rmmod sdhci sudo modprobe sdhci
Attention, la première carte ne doit pas être "montée" quand on fait cela !
Installer une extension mémoire d'un Go
Bien qu'Ubuntu puisse tourner dans 512 Mo de RAM, on est quand même beaucoup plus confortable avec plus, et surtout, on sollicitera moins le swap, ce qui rendra la machine plus rapide et ménagera la durée de vie du disque SSD, pour une vingtaine d'Euros et quelques dizaines de minutes de pure terreur et de sueurs froides ;-)
L'installation d'une extension mémoire sur cette machine est extrêmement délicate, puisqu'elle nécessite le démontage intégral de la machine et la dépose de sa carte mère. Les connecteurs ZIF qu'il sera nécessaire de débrancher pour cela sont minuscules et extrêmement fragiles, il faut faire pivoter leur partie marron vers le haut et non pas la tirer dans le sens de la nappe pour déconnecter les nappes. Le démontage est risqué et annule certainement la garantie de la machine, vous avez été prévenu ! Ne venez pas pleurer chez moi si vous massacrez votre Aspire One tout neuf !
J'ai installé dans cette machine une barrette de SO-DIMM Kingston 1 Go PC-5300 (667 MHz) qui est impeccablement supportée.[2]
On peut trouver chez blogeee.net d'intéressantes photos de la machine démontée ...mais pas la manière de le faire.
Mode d'emploi :
- Retirer la batterie.
- Déposer le clavier : C'est une des étapes très délicates, et difficile à faire sans un peu "marquer" la machine. A l'aide d'un tournevis plat très fin, repousser les trois "clips" qui tiennent le clavier en haut de celui-ci, et dégager soigneusement le haut du clavier, puis le retirer. Déconnecter sa nappe du connecteur ZIF en basculant très délicatement la partie marron de celui-ci vers le haut. C'est plus que fragile !
- Déposer les vis sous le boîtier : Déposer toutes les vis visibles. Attention, cette machine est montée avec de vis de nombreuses tailles différentes. En démontant, prendre soin de bien noter "quelle vis va dans quel trou". Il y a trois vis dans le compartiment de batterie, et deux sous les patins caoutchouc ("pieds") arrières de la machine (côté charnière de l'écran), que l'on pourra ensuite recoller si on les a très soigneusement décollés.
- Ouvrir à nouveau la machine, et ôter toutes les vis situées sous l'emplacement du clavier et repérées par un triangle. Une de ces vis est couleur inox. Là aussi, bien noter quelle vis allait dans quel trou !
- Déconnecter extrêmement soigneusement la nappe de connexion du touchpad de son connecteur ZIF.
- Déclipser ensuite le haut du boîtier, et l'ouvrir.
- Démonter la vis retenant la carte Wi-Fi, et déconnecter celle-ci.
- Déconnecter très soigneusement la nappe de la carte fille de son connecteur ZIF.
- Débrancher le connecteur du câble audio.
- Ôter les vis restantes retenant la carte mère de manière à pouvoir soulever celle-ci.
- Il n'est pas nécessaire d'enlever complètement la carte mère, seulement de pouvoir la soulever assez pour pouvoir insérer la barrette de RAM dans son slot, situé dessous.
- Remonter ensuite l'ensemble dans l'ordre inverse des opérations. Veiller à bien ranger le câble d'antenne Wi-Fi qui ne doit pas être sur les cartes, sinon on ne pourra pas refermer correctement la machine.
Et voilà une machine avec 1,5 Go de RAM !
C'est à peu près toutes les notes que j'avais sous le coude pour l'instant ;-)
Addendum 19 juillet : Les performances du SSD de l'Aspire One
Je trouve depuis le début le SSD de l'Aspire One assez lent, particulièrement en écriture, avec des "figés" périodiques de quelques secondes du système, voyant disque allumé fixe.
Ma configuration est particulière avec une installation entièrement chiffrée sur LVM LUKS, AES 128, et il n'est donc pas évident de faire la part des choses entre la vitesse intrinsèque du SSD et l'overhead imposé au processeur par le chiffrement / déchiffement à la volée.
À titre indicatif, voici ce que me donnent quelques essais en lecture / écriture :
Test de lecture hdparm
# hdparm -tT /dev/sda /dev/sda: Timing cached reads: 1186 MB in 2.00 seconds = 593.20 MB/sec Timing buffered disk reads: 76 MB in 3.06 seconds = 24.83 MB/sec
La vitesse de lecture de 24.83 MB/sec semble compatible avec ce que j'observe du fonctionnement de la machine, vitesse à laquelle il faut rajouter les avantages spécifiques au SSD : Temp de démarrage nul, temps de seek nul, ce qui donne des performances pratiques en lecture supérieures à celles de la plupart des disques durs traditionnels de portables.
Tests d'écriture réels (à travers la couche de chiffrement, donc avec l'overhead)
- Création sur disque d'un fichier de 100 Mo
$ time dd if=/dev/zero of=dummy bs=1M count=100; time sync 100+0 enregistrements lus 100+0 enregistrements écrits 104857600 octets (105 MB) copiés, 0,337884 s, 310 MB/s real 0m0.351s user 0m0.004s sys 0m0.336s
=> La machine "rend la main" au bout de 0,35 seconde
real 0m9.865s user 0m0.008s sys 0m0.004s
=> L'écriture réelle sur disque (vidage du cache du noyau) prend 9,67 secondes supplémentaires
Le débit global d'écriture sur disque SSD est donc de ~= 9,79 Mo/sec. pour une fichier de 100 Mo, chiffrement inclus.
- Création sur disque d'un fichier de 1000 Mo
$ time dd if=/dev/zero of=dummy bs=1M count=1000; time sync 1000+0 enregistrements lus 1000+0 enregistrements écrits 1048576000 octets (1,0 GB) copiés, 127,92 s, 8,2 MB/s real 2m7.930s user 0m0.012s sys 0m3.716s
=> La machine "rend la main" au bout de 2 minutes 8 secondes. On voit qu'on a dépassé le cache en écriture du noyau (avec 1,5 Go de RAM), et qu'on est donc impacté par la vitesse d'écriture réelle sur le disque.
real 1m15.527s user 0m0.000s sys 0m0.008s
=> L'écriture réelle sur disque (vidage du cache du noyau) prend 1 minute 15 secondes supplémentaires.
Le débit global d'écriture sur disque SSD est donc de ~= 4.92 Mo/sec. pour une fichier de 1000 Mo, chiffrement inclus. On voit qu'on est deux fois plus lent qu'avec un fichier de 100 Mo, et que là, c'est vraiment lent. L'overhead de chiffrement ne semble pas impliqué directement dans la différence de vitesse, mais plutôt simplement le fait d'avoir débordé le cache du noyau.
Il est également possible que les algorithmes de wear levelling du disque SSD entrent en ligne de compte, puisqu'ils sont potentiellement suceptibles de doubler le nombre d'écritures réelles sur le disque SSD (déplacement de blocs durant l'écriture).










