Compaq Mini 700EF : configuration minimaliste sous Arch Linux

Alors que j'ai déjà pu le présenter dans quelques billets plutôt datés maintenant, je trimbale souvent à mon épaule un notebook Compaq Mini 700EF. À ce propos, j'ai enfin pu procéder à une mise à jour du BIOS, celle-ci étant distribuée par HP sous la forme d'un binaire exécutable dédié à Microsoft Windows.

À force de recherches, j'ai pu tomber sur une version "pour Linux" en fouillant les propositions : c'est en permettant d'afficher des résultats en anglais sur le site que je suis tombé sur cette page, la solution adéquate étant la proposition "HP Mobile Internet Experience". La version du BIOS qui y est téléchargeable  n'est pas la plus à jour (F.16) mais apporte néanmoins les correctifs m'intéressant concernant la prise en charge de la batterie : un générateur de clef USB - un "Live DOS" me rendrai-je compte par après - permettant d'exécuter la mise à jour. Ainsi soit-il.

Dans la même veine, j'ai également pu utiliser une méthode similaire pour mettre à jour une carte mère MSI H61MA-E35 (B3) dont les binaires n'étaient aussi que des exécutables Microsoft Windows : après avoir tancé le support avec des notions telles qu'une liberté de choix d'un système GNU/Linux (surtout lors de l'achat d'un composant seul, rien ne présuppose du système que j'installerais), et la confrontation à une vente liée déguisée par leur support. Ceux-ci m'ont envoyé un exécutable Microsoft Windows de chez Hewlett Packard, soit la même !

Notons tout de même un moment sidérant dans cette épopée, soit ma tronche à la vue de l'écran de démarrage de... Windows 98, au démarrage de cette seconde Live DOS. Expérience totalement troublante, voire parfaitement dérangeante, croyez-moi. Cela dit, revenons à nos moutons, ou tout autre animal qu'il vous sied.

Comme gestionnaire de fenêtres, j'ai craqué pour un tiling manager : i3 (voir le wiki d'Arch Linux), embarquant i3bar et i3status par la même occasion pour gérer les barres des tâches. D'ailleurs, dans cette barre des tâches, j'y ai intégré batti, ClipIt, et volwheel.

C'est complet, compréhensible, modulaire, éditable aisément, en plus d'être léger par rapport à des environnements de bureau "clefs en main" : quelques 100mo sont utilisés lors d'un démarrage à froid, avec un boot en moins de dix secondes (un SSD et l'utilisation d'un systemd épuré des services inutiles - systemd-analyze blame est mon ami - jouent aussi, bien évidemment).

Pour le navigateur, j'ai essayé luakit et ai été plutôt séduit (plus encore en découvrant la possibilité d'un bloqueur de publicités), le trouvant performant quoique parfois un peu trop minimaliste à mon goût, et rebutant dans sa configuration, et moche même, mais il convient très bien à l'utilisation que j'en ai. Dès que j'aurai un peu de temps devant moi, je me pencherai sur sa configuration, c'est certain. À ce propos, je déplore une alternative agréable à Luakit, basée par exemple sur Gecko (mon allergie à WebKit refait des siennes), en somme un "Luacko".

Pour les notifications, je suis tombé fortuitement sur le cas de Dunst (disponible dans [community]), un gestionnaire de configuration basé sur dmenu (déjà utilisé par exemple dans le menu d'i3), beaucoup plus léger en dépendances que TWMN (qui nécessite Qt, et [troll]j'aime pas Qt, ni KDE, c'est mon horreur la plus infinie dans le logiciel libre[/troll]), que j'avais jugé néanmoins très intéressant.

Qui dit notebook induit une utilisation relativement nomade : il me sert majoritairement de support de prise de notes de cours. Ce nomadisme reflète un besoin : la connexion à des réseaux WiFi, donc pose le besoin d'un gestionnaire de connexion des plus efficaces. Mon choix s'est porté sur une maîtrise de netcfg (surtout depuis qu'il est pleinement supporté par systemd, ou l'inverse), créant des profils à la volée avec la commande wifi-menu (une commande similaire à wifi-select) que le paquet amène.

Il n'y a pour l'instant qu'eduroam, le réseau "protégé" de l'université où j'étudie, qui résiste à ma configuration. À mon avis le profil de connexion que j'ai pu trouver et reprendre est erroné, le reste fonctionne sans problème rédhibitoire. Notez que j'ai dû installer et configurer une interface dans rfkill pour ne pas avoir un fonctionnement faussé, quoique ça ne fonctionne pas à tous les coups - l'interrupteur étant parfois vu comme bloqué sans possibilité de le débloquer sinon en redémarrant. Ce qui ne met pas plus de dix secondes, ce n'est pas la mer à boire.

Restaient alors quelques applications nécessaires fondamentales, comme un terminal, ou un navigateur de fichiers. Pour ce dernier, mon choix est allé, une fois encore, vers la légèreté sans encore trop de compromis sur mes habitudes, soit PCManFM du projet LXDE - dont j'utilise déjà lxappareance pour régler le thème que j'utilise.

Cependant, si la configuration de ce dernier a été plus que simple en suivant le divin wiki d'Arch Linux, un problème subsistait lors de l'affichage de la liste d'applications, lorsque le logiciel était lancé depuis dmenu : page blanche ! Un peu d'investigation aura suffit pour ajouter export XDG_MENU_PREFIX=lxde- à l'endroit qui va bien, à savoir ~.i3/config :

# start dmenu (a program launcher)
bindsym $mod+d exec --no-startup-id XDG_MENU_PREFIX=lxde- dmenu_run

En ce qui concerne l'installation et la configuration d'urxvt, j'ai utilisé les ressources d'Ypnose, tout simplement - ajoutant et supprimant çà et là quelques éléments comme des extensions.

Ressources en vrac :

Concernant l'autonomie de ma machine, j'utilise ce script trouvé sur le forum de crunchbang en lieu et place de solutions lourdes et ralentissant mon démarrage comme Laptop Mode Tools. J'ai édité mon /etc/acpi/handler.sh en conséquence :
#!/bin/sh
# Default acpi script that takes an entry for all actions

minspeed=cat /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_min_freq
maxspeed=cat /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_max_freq
setspeed="/sys/devices/system/cpu/cpu0/cpufreq/scaling_setspeed"

set $*

case "$1" in
button/power)
case "$2" in
PBTN|PWRF)
logger "PowerButton pressed: $2"
systemctl poweroff
;;
)
logger "ACPI action undefined: $2"
;;
esac
;;
button/sleep)
case "$2" in
SLPB|SBTN)
#echo -n mem >/sys/power/state
DISPLAY=:0.0 su postblue -c "/usr/bin/i3lock -i /usr/share/wallpaper.png" && echo -n mem >/sys/power/state
systemctl suspend
;;
)
logger "ACPI action undefined: $2"
;;
esac
;;
ac_adapter)
case "$2" in
AC
)
case "$4" in
00000000)
echo -n $minspeed >$setspeed
#/etc/laptop-mode/laptop-mode start
pm-powersave true
;;
00000001)
echo -n $maxspeed >$setspeed
#/etc/laptop-mode/laptop-mode stop
pm-powersave false
;;
esac
;;
)
logger "ACPI action undefined: $2"
;;
esac
;;
battery)
case "$2" in
BAT
)
case "$4" in
00000000)
logger 'Battery online'
;;
00000001)
logger 'Battery offline'
;;
esac
;;
CPU
)
;;
*) logger "ACPI action undefined: $2" ;;
esac
;;
button/lid)
case "$3" in
close)
logger 'LID closed'
DISPLAY=:0.0 su postblue -c "/usr/bin/i3lock -i /usr/share/wallpaper.png" && echo -n mem >/sys/power/state
systemctl suspend
;;
open)
logger 'LID opened'
;;
*)
logger "ACPI action undefined: $3"
;;
esac
;;
*)
logger "ACPI group/action undefined: $1 / $2"
;;
esac

vim:set ts=4 sw=4 ft=sh et:

Cepandant, certaines des instructions liées aux composants Intel ne "passaient" pas à être éditées à la volée (jetez un œil à pm-powersave.log), aussi les ai-je insérées dans GRUB où elles ne posent maintenant plus de problème :

GRUB_DEFAULT=0
GRUB_TIMEOUT=2
GRUB_DISTRIBUTOR="Arch"
GRUB_CMDLINE_LINUX_DEFAULT="quiet fastboot"
GRUB_CMDLINE_LINUX="acpi_os_name=Linux pcie_aspm=force elevator=noop resume=/dev/sda2 i915.i915_enable_rc6=1 i915.lvds_downclock=1 i915.i915_enable_fbc=1 i915.semaphores=1"

En espérant que ces indications puissent vous servir ! Cette configuration est bien évidemment ouverte aux suggestions : j'aimerais par exemple trouver un moyen pour que dmenu_run ne liste que les programmes reprise dans le menu d'lxde, non pas toutes les commandes du système.