Outils personnels
Vous êtes ici : Accueil Linux Tests et installations: Debian, LMDE, Mageia, etc. 6 - Installation Ubuntu 18.04 LTS Bionic - Openbox

6 - Installation Ubuntu 18.04 LTS Bionic - Openbox

Par Freecrazy - Dernière modification 26/06/2018 21:30

J'avais déjà évoqué l'installation d'un Desktop Openbox sur base Debian qui m'avait complétement satisfait. Aujourd'hui je me retrouve avec un HP Pavilion DV6 qui a été acheté avec W7, qui a passé dans la douleur sous W10 (problème de surchauffe) et qui dernièrement n'arrivait plus à passer sous la version 1709 de W10 (toujours ces problèmes de surchauffe tellement la mise à jour est importante). Par ailleurs il faut reconnaître que les versions Ubuntu ont l'avantage, outre d'être basées sur Debian, d'avoir des logiciels mis à jour plus rapidement et une communauté très importante. Donc j'ai voulu tester cette dernière version LTS d'Ubuntu à savoir la 18.04 Bionic en installant toujours mon Desktop préféré: Openbox.

00a - Voici 2 liens qui m'ont servi de fil conducteur pour ce qui suit:

 

00b - Évitons les malentendus

Soyons bien d'accord, ici je vais couvrir une installation Ubuntu avec Openbox seul (c.a.d non associé à un Gnome ou autre) sur un micro dédié (pas de Windows, pas de dual boot).

Le micro est un HP-Pavilion dv6 que j'ai équipé d'un SSD de 500G et d'une RAM de 8Go. Pour mémoire ce PC est motorisé par un processeur I7 Q720, ce n'est pas le plus performant mais au moins il à 4 cœurs.
Et pour information: sa RAM de 4Go d'origine n'était reconnue que pour moitié je l'ai donc changée; Ayant beaucoup surchauffé du temps où ce micro était sous W10 j'ai refait les joints thermiques du processeur et du processeur graphique.
Ces données ne sont pas très importantes car normalement l'installation décrite ici a de fortes chances d'aboutir sur n'importe quel PC pas trop 'exotique' (car même avec Ubuntu il est possible d'avoir un matériel non reconnu)

Openbox est devenu mon environnement Desktop préféré (cf. '5 - Installation Debian - Openbox'). Openbox est un gestionnaire de fenêtres puissant, hautement configurable et ... ultra-léger. Cette dernière caractéristique ne plaît/convient pas à tout le monde car le bureau est sobre et ne bénéficie donc pas de jolis effets visuels (qui souvent d'ailleurs ne servent à rien) que peuvent offrir d'autres bureaux plus lourds comme les plus connus KDE/Gnome. Ici le but recherché est d'avoir un PC portable dont les ressources sont consacrées aux applications que je veux y faire tourner. Donc:

  1. Si vous voulez un bureau avec plein de gadgets pour vous distraire mais qui consomme ressources processeur et pompe votre batterie, ce n'est pas ici.
  2. Le hautement configurable implique aussi de bien vouloir mettre les mains dans le cambouis. Aussi si configurer à minima votre machine ne vous intéresse pas ... comme précédemment il vous faudra aller voir ailleurs (et vous orientez vers un système clef en main). 
  3. Si vous voulez une configuration autre qu'Openbox seul vous aurez certainement avantage à aller voir le lien d'Ubuntu.fr cité précédemment..
  4. Si vous rencontrez d'autres problèmes que ceux auxquels j'ai été confrontés vous aurez à chercher par vous-même car vous comprendrez que je ne peux être exhaustif. Mais la documentation et les forums d'Ubuntu sont suffisamment fournis (y/c en français) pour que vous y trouviez réponse(s) à votre(vos) question(s) éventuelle(s)

Bien évidemment je ne vous dédouane pas d'un peu de bon sens et d'esprit critique. Donc je ne vais pas répéter les sempiternels avertissements:

  • sauvegardez vos données du disque dur s'il n'est pas neuf;
  • toutes les interventions sur votre PC (matérielles comme logicielles) se font sous votre entière responsabilité;
  • ce qui a marché ici peut ne pas fonctionner chez vous pour x ou y raisons ne me tenez pas alors pour responsable.

 

01 - L'installation

L'installation complète partira d'une installation minimale (avec un 'CD Minimal' de 64M:  mini.iso alias netboot que vous trouverez sous la doc  Installation/MinimalCD ou sous les archives de Ubuntu sous netboot) donc un accès à la console seule. Les briques nécessaires seront ajoutées au fur à mesure.

Si la gravure sur CD de l'image de 64M est tout à fait possible, j'ai plutôt opté pour l'installation via une clé USB car :

  • de nos jours les PC portables disposent de moins en moins de lecteur de CD;
  • et c'est plus simple et plus rapide.

 La copie de l'iso sur la clef se fait comme expliqué ici sur ma page 'Comment rendre une clé USB bootable ?' ou pour d'autres possibilités la page 'Installation/FromUSBStick'  de la documentation Ubuntu (mais en anglais)

Sur l'installation de base je vais aller assez vite, car Ubuntu bénéficie de très bons tutoriels (cf. celui-ci par exemple) et cela reste assez aisé (que ce soit en mode graphique ou texte). En voici, les grandes étapes

  1. Choix de la langue, du pays et du clavier
  2. Configuration de la connexion Internet (A ce stade je vous conseille fortement de configurer le filaire mais si vous voulez configurer le WiFi ayez sous la main le mot de passe de votre connexion)
  3. Nommer la machine
  4. Choisir son miroir de dépôt (là où se trouve stocké l'archive de votre distribution)
  5. Définir un proxy (si vous en avez un bien sûr)
  6. Définir identifiant/mot de passe de l'utilisateur (à noter on ne définit pas de mot de passe pour root/administrateur sous Ubuntu tout se passe avec sudo - je n'aime pas, il va me falloir changer cela une fois l'installation terminée, mais pour toute cette page je garderai cette commande sudo pur les commandes administrateur)
  7. Configurer l'horloge
  8. Et on passe au partitionnement: là cela se complique un peu car comme je veux une configuration spéciale (500M de partition primaire en ext4 pour /boot, tout le reste du SSD en partition étendue sur laquelle, sous LVM, je mets un VG lui-même réparti en 2 LV: un de 15G en ext4 pour /, et le reste disponible toujours en ext4 pour /home) j'ai fait cela en manuel et la navigation dans les différents tableaux n'est pas très intuitive. Sinon le mode Assisté avec utilisation de tout un disque avec LVM marche nickel (je recommande les LVM car cela permet de modifier si besoin par la suite les tailles allouées aux différentes partitions)
  9. Le temps de télécharger le système de base et de l'installer, on passe au :
  10. Choix de la mise à jour du système. Je n'ai pas pris Landscape car j'ai vu 'cloud' et je n'aime pas. Par contre j'ai gardé la mise à jour automatique pour la sécurité
  11. Sélectionner les logiciels: moi je n'ai rien pris sauf open-ssh car j'aime bien avoir un accès externe à ma machine (mais pour un Desktop cela ne sert pas à grand chose)
  12. Et enfin on arrive à la configuration de Grub. Attention au choix du disque de démarrage surtout si comme moi vous installez à partir d'une clé USB)

Voilà, un redémarrage plus tard, je me retrouve devant mon écran en mode texte (texte en bleu sur fond noir, sympa). Pour accéder à votre session il faut bien évidemment entrer votre login et votre mot de passe. Pour sortir et éteindre l'ordinateur, il faut lancer la commande:

$ sudo poweroff

 

02 - Mon premier souci: Corrupted low memory

 Après être logué au bout de quelques secondes j'ai un message de type:

Corrupted low memory at 000000002e040379 (6598 phys) = ff0000000000
Memory corruption detected in low memory  

Vous oubliez les valeurs numériques car elles peuvent être variables.

Cela m'a inquiété, j'ai vérifié la mise en place de ma RAM et j'ai regardé ce que me donnait les informations systèmes du Boot. C'est là que je me suis rendu compte de la défaillance de ma RAM d'origine qui s'affichait à 2Go alors qu'elle est de 4Go. Cependant en ne lui laissant que la nouvelle RAM de 8Go le problème demeurait. Après recherche sur le net j'ai fini par trouver ce post "Corrupted low memory" message at boot (en anglais) qui explique très bien le pourquoi. Mais pour la solution c'était moins précis.

Le pourquoi du problème réside en un BIOS mal foutu qui se permet d'utiliser de la RAM alors qu'il ne devrait pas. Bien sûr le noyau Linux le détecte et s'en accommode (en fait il ignorera cette zone mémoire) tout en nous envoyant ce message  "Corrupted low memory" (ceci grâce a 2 options par défaut: memory_corruption_check=1, memory_corruption_check_size=64k). Donc cela n'empêchera pas votre système de démarrer et de très bien fonctionner.

Vous je ne sais pas, mais moi je n'aime pas des systèmes qui démarrent avec des messages d'erreurs ou d'alerte. Donc pour éviter ce message il faut soit:

  • corriger le BIOS. Non je ne vous demande pas de trifouiller le code du BIOS (qui est sur ROM), mais d'effectuer éventuellement une mise à jour s'il en existe une. Bien sûr à ce stade c'est compliqué car les mises à jour de BIOS se font normalement sous Windows ... Pour ma part j'ai eu la flemme de remettre le disque dur avec Windows et je suis passé à la 2ième option ...
  • dire au noyau Linux d'ignorer les premiers 64Ko de mémoire (car c'est cette zone mémoire que les BIOS prenant leur aise s'octroient). Pour cela il y a 2 options à passer au boot loader (Grub2): memmap et memory_corruption_check. Le noyau ne vérifiera alors plus cette zone mémoire.

Dit comme cela cela paraît simple, mais où doit-on passer ces options ? D'ailleurs d'où peut-on les connaître ces options ?
Commençons par répondre à la 2ième question !

  • Pour connaître les options et leurs actions, un document intitulé 'kernel-parameters.txt' existe sous le compte GitHub de Linus Torvalds ! Il me semble exhaustif et se concentre sur l'essentiel (un peu la commande 'man' des options du noyau Linux). Bon il faut admettre qu'on peut aussi le trouver ici sur kernel.org.
  • Pour un peu plus descriptif (mais toujours en anglais), on peut lire le 'Ch09 - Kernel Boot Command-Line Parameter Reference' qui est un extrait ...
  • ... du livre, libre d'accès, de Greg Kroah-Hartman' intitulé 'Linux Kernel in a Nutshell'  dont la lecture ravira les plus curieux.

Maintenant revenons à la première question: la réponse se réduit à "modifier la ligne de commande du boot (de lancement)". On peut bien sûr modifier la ligne de menu qui s'affiche à la mise en route du PC, mais pas de bol ici Ubuntu a décidé de passer ce menu sous silence (c.a.d qu'on ne le voit pas). Il reste la modification en 'dur' du fichier de configuration de Grub qui se trouve sous /etc/default/grub. (attention ce n'est pas le 'vrai' fichier de configuration qui est sous /boot/grub/grub.cfg mais ce dernier est mis à jour par la commande update-grub qui vient lire le fichier que l'on a modifié: /etc/default/grub. Aujourd'hui le lanceur est Grub2 et pour y voir un peu plus clair dans son fonctionnement, voici quelques liens qui peuvent être utiles:

 Bon, on y va ? 

Oui, on y va ... jetons un oeil sur ce que raconte Linus Torvalds sur memmap et memory_corruption_check :

memory_corruption_check=0/1 [X86]
	Some BIOSes seem to corrupt the first 64k of memory when doing things like suspend/resume.
	Setting this option will scan the memory looking for corruption.  Enabling this will both detect corruption and 
        prevent the kernel from using the memory being corrupted.
	However, its intended as a diagnostic tool; if repeatable BIOS-originated corruption always affects the same 
        memory, you can use memmap= to prevent the kernel from using that memory.

Face à notre problème de plage mémoire corrompu par le BIOS on serait tenté d'utiliser cette option (même si pour un PC en 64bits le X86 est un peu perturbant) et il s'avère que 'memory_corruption_check=0' élimine l'apparition du message 'Corrupted low memory'.

Mais maître Torvalds indique que si c'est toujours la même zone mémoire qui est concernée il vaut mieux utiliser memmap et (il ne le dit pas) celui sous cette forme:

memmap=nn[KMG]$ss[KMG]
	[KNL,ACPI] Mark specific memory as reserved.
	Region of memory to be reserved is from ss to ss+nn.
	Example: Exclude memory from 0x18690000-0x1869ffff
	    memmap=64K$0x18690000
	        or
	    memmap=0x10000$0x18690000
	Some bootloaders may need an escape character before '$',
	like Grub2, otherwise '$' and the following number
	will be eaten. 

Comme nous sommes sous Grub2 il nous faut le caractère d'échappement et donc écrire: memmap=64k\$0. Sauf que dans ce cas j'obtiens un bel écran noir ! Avec le double échappement aussi (memmap=64k\\$0 devient memmap=64k\/usr/sbin/grub-mkconfig !?).

En fait il faut tripler le caractère d'échappement et écrire (ce que confirme ce post):

memmap=64k\\\$0

et là cela fonctionne nickel.

Pour l'utilisation de l'option Bad Ram voir ce post et ses liens

Mais où écrit-on ces p@!%n d'options ?

Il est temps effectivement d'être un peu plus précis sur ce point. Pour rappel, vous venez d'installer la version minimale d'Ubuntu, le démarrage s'est fait de manière 'cachée' (c.a.d sans affichage du menu) et vous aboutissez assez vite à un écran de login en mode terminal. Vous vous loguez, ça y est vous pouvez maintenant passer des commandes.

Pour mémoire Ubuntu par défaut ne configure pas de compte administrateur/root. C'est le premier utilisateur enregistré qui est de fait administrateur du système et la seule façon d'exécuter des commandes administrateur est de passer par la commande $ sudo <votre commande>. Ce fonctionnement ne me convient pas (quelqu'un qui a votre mot de passe utilisateur peut administrer votre système, ce n'est pas top !) et je le changerai plus tard. Pour les pressés ce lien "Activer le compte système (root)" peut être utile, et si l'avertissement vous effraie lisez le paragraphe de cette page qui est beaucoup moins radicale et plus factuelle. Maintenant c'est vous qui voyez ...

Revenons à la modification de notre boot loader Grub. Lancez l'éditeur nano sur le fichier configurable de Grub:

$ sudo nano /etc/default/grub

Vous obtenez (du moins c'est ce que j'obtiens):

    # If you change this file, run 'update-grub' afterwards to update
    # /boot/grub/grub.cfg.
    # For full documentation of the options in this file, see:
    #   info -f grub -n 'Simple configuration' 
 
    GRUB_DEFAULT=0
    GRUB_HIDDEN_TIMEOUT=0
    GRUB_HIDDEN_TIMEOUT_QUIET=true
    GRUB_TIMEOUT=10
    GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
    GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
    GRUB_CMDLINE_LINUX=""
    
    # Uncomment to enable BadRAM filtering, modify to suit your needs
    # This works with Linux (no patch required) and with any kernel that obtains
    # the memory map information from GRUB (GNU Mach, kernel of FreeBSD ...)
    #GRUB_BADRAM="0x01234567,0xfefefefe,0x89abcdef,0xefefefef"

    # Uncomment to disable graphical terminal (grub-pc only)
    #GRUB_TERMINAL=console

    # The resolution used on graphical terminal
    # note that you can use only modes which your graphic card supports via VBE
    # you can see them in real GRUB with the command `vbeinfo'
    #GRUB_GFXMODE=640x480

    # Uncomment if you don't want GRUB to pass "root=UUID=xxx" parameter to Linux
    #GRUB_DISABLE_LINUX_UUID=true

    # Uncomment to disable generation of recovery mode menu entrys
    #GRUB_DISABLE_LINUX_RECOVERY="true"

    # Uncomment to get a beep at grub start
    #GRUB_INIT_TUNE="480 440 1"

Pour les modifications, la lecture d'au moins 1 des 3 documents sur Grub cités précédemment serait souhaitable.

La première modification que j'ai apportée est de faire réapparaître le menu (je sais il n'y a qu'un système d'installé mais dans cette phase où je modifie plein de choses j'aime bien avoir cette visibilité soit pour éditer directement la ligne de boot et modifier les options qui plantent le système (attention on est alors en qwerty), soit pour pouvoir bénéficier du mode recovery en cas de 'gros' plantage.

Pour afficher le menus, j'ai commenté 2 lignes comme suit:

    # GRUB_HIDDEN_TIMEOUT=0
    #GRUB_HIDDEN_TIMEOUT_QUIET=true

 Ensuite pour passer l'option memmap cela se fait comme suit:

GRUB_CMDLINE_LINUX="memmap=64k\\\$0"

Je n'ai pas pris GRUB_CMDLINE_LINUX_DEFAULT car elle ne s'applique qu'au système lancé par défaut, et je préfère l'appliquer pour toutes entrées que l'on pourrait lancer.

Comme indiqué en début de fichier ne pas oublier, après enregistrement de vos modifications, de lancer:

$ sudo update-grub

Il n'y a plus qu'à redémarrer:

$ sudo reboot  # ou sudo poweroff pour une extinction

et à l'affichage du menu vous pourrez éditer la ligne surlignée par défaut et constater que votre option apparaît bien sur l'avant dernière ligne juste avant 'splash quiet ...' et sous la forme 'memmap=64k\$0' avec le $ échappé 1 fois ! (donc si vous faites des essais comme j'ai pu le faire, pensez-y: dans l'éditeur du menu '\$' dans le fichier de configuration '\\\$')

Premier souci résolu. J'ai encore un petit bug: un à deux '^@' apparaissent dans le champ d'entrée du login selon le temps d'attente. Là je n'ai pas trouvé, peut-être un problème matériel, mais pas sûr car cela s'arrête à 2 max et je ne l'ai plus ensuite lorsque je suis connecté à ma session.

Passons à la suite.


03 - Second souci: se connecter en Wi-Fi.

Si vous avez établi une connexion filaire lors de l'installation (comme conseillé), pas de souci elle fonctionne toujours et elle sera bien utile pour la suite

Si vous avez établi une connexion WiFi lors de l'installation et bien ... cela peut ne pas fonctionner comme cela fût le cas chez moi: le WiFi s'active par une touche sauf qu'ici la touche est inopérante; par ailleurs c'est un HP avec des blocages soft possibles que l'on détecte avec rfkill qui n'est pas installé ...

Et pour couronner le tout, les outils de connexions par défaut ont changé nous avons maintenant: netplan et systemd-networkd. Du coup beaucoup de tutoriels sont obsolètes comme ces liens sur le WiFi (mais reste intéressant - et d'actualité - notamment sur la recherche des caractéristiques de la carte WiFi) et sur sa configuration en ligne de commandes.

Et pour les anciens, n'oubliez pas que:

  • ifconfig devient ip addr (et vous retrouverez le nom de vos interfaces de connexion)
  • iwconfig <nom de la connexion> devient iw <nom de la connexion> info (et vous retrouverez entre autres l'info sur la réalité de la connexion)
Bien sûr ces commandes sont plus puissantes que ce que je viens d'indiquer, n'hésitez pas à lire le man ou de chercher sur le net "ifconfig vs ip" ou "iwconfig vs iw".

    03.1 - Essayons quand même d'y voir plus clair !

    03.2 - Etat des lieux !

Je suppose que lors de l'installation vous avez, comme conseillé, paramétré la connexion filaire. (Si tel n'est pas le cas hé bien il vous faudra faire une petite gymnastique intellectuelle en lisant wifi lorsque je parle filaire et vice-versa).

Chez moi une touche du clavier est censée activer le Wifi, la led rouge passe alors au blanc. Pour l'instant elle est inopérante et la led reste obstinément rouge. Et pour avoir testé l'installation avec WiFi, cela ne marchait pas non plus une fois dans ma session. Le seul moyen sûr de débloquer les choses est d'utiliser rfkill qui n'est à ce stade pas installé. Et enfin si vous voulez savoir si vous êtes connecté lancer un:

$ ping www.google.fr  # ou tout autre site dont vous connaissez l'url exacte

En effet la commande bien connue 'iwconfig' n'est pas installée.

Avant j'allais chercher la configuration des connexions internet via le fichier /etc/network/interfaces. Mais aujourd'hui ce fichier renvoie:

# ifupdown has been replaced by netplan(5) on this system.  See
# /etc/netplan for current configuration.
# To re-enable ifupdown on this system, you can run:
#    sudo apt install ifupdown

En effet depuis la version 17.10 c'est via /etc/netplan/*.yaml que s'effectue la configuration des connexions internet.

De ce que j'ai compris: le fichier /etc/netplan/*.yaml est lu très tôt lors du boot via netplan "network renderer" ce qui configure/lance automatiquement et de manière transparente les connexions:

  • WiFi et WWAN par NetworkManager. networkd est également possible comme je le découvrirai en lisant le man netplani:
    Note that systemd-networkd does not natively support wifi, so you need wpasupplicant installed if you let the networkd 
    renderer handle wifi.
  • tous les autres dispositifs de connexion sont gérés par networkd sauf si un autre gestionnaire de connexion est spécifié.
  • bien sûr tout autre équipement est ignoré.

Pour l'instant je n'ai qu'un fichier .yaml: /etc/netplan/01-netcfg.yaml, en voici son contenu:

network:
  version: 2
  renderer: networkd
  ethernets:
    enp3s0:
      dhcp4: yes
      dhcp6: yes

 Nota: fini les appellations de type ethx, maintenant nous avons droit à des noms ésotériques comme ici 'enp3s0' dont je n'ai toujours pas trouvé la logique.

Bon si nous voulons une connexion WiFi fonctionnelle il nous faut, on l'a vu: rfkill et wpasupplicant. Aussi profitons de la connexion filaire pour lancer:

$ sudo apt install rfkill
$ sudo apt install wpasupplicant

Nous sommes prêts pour la suite.

    03.3 - Configurer la connexion WiFi.

Nota: Je vais décrire la connexion WiFi cryptée en WPA PSK, ou encore appelée WPA personnel (j'espère que vous avez abandonné depuis longtemps les connexions ouvertes et le cryptage WEP de toute façon avec wpasupplicant le WPA est obligatoire), et avec attribution d'adresse par DHCP (ce que fait aujourd'hui toutes 'box' ou point d'accès)

Pour cela il nous faut créer un fichier /etc/netplan/02-wifi.yaml (le nom est à votre discrétion):

network:
  version: 2
  renderer: networkd
  wifis:
    wlo1:
      dhcp4: yes
      dhcp6: yes
      access-points:
        "Ici le ssid de votre box":
          password: "le mot de passe"

 Nota: Ici aussi vous noterez le nom logique 'wlo1' qui change des 'wlanx' que nous connaissions. Si vous n'avez pas noté ce nom lors de l'installation allez voir cette page Identifier sa carte réseau WIFI qui même en étant un peu datée, vous apprendra plein de choses y/c sur rfkill. Sinon une commande que vous pouvez utiliser ici est:

$ lshw | grep -i 'nom logique'

qui retourne (chez moi toujours) et sans tenir compte des 'warning' sur la possible incomplétude la liste:

    nom logique: wlo1
    nom logique: enp3s0
    nom logique: scsi1
    nom logique: /dev/cdrom
    ...

(la commande '$ ip a' vous donne aussi l'info)

 

Nous avons notre fichier .yaml, nous pouvons demander à netplan de l'utiliser:

$ sudo netplan apply 02-wifi.yaml

Normalement cela devrait suffire pour rendre le WiFi opérationnel, mais chez moi non ! Il est temps d'utiliser rfkill:

$ rfkill list
0: hp-wifi: Wireless LAN
    Soft blocked: yes
    Hard blocked: yes
1: phy0: Wireless LAN
    Soft blocked: yes
    Hard blocked: yes

Il est clair que ma touche n'est pas dans la bonne position (Hard blocked). Pour les 'Soft blocked' (blocage logiciel) je ne suis plus sûr. Mais un déblocage plus tard (et peut-être un redémarrage aussi):

$ sudo rfkill unblock all

... et le wifi fonctionne.

Nous avons:

$ rfkill list
0: hp-wifi: Wireless LAN
    Soft blocked: no
    Hard blocked: no
1: phy0: Wireless LAN
    Soft blocked: no
    Hard blocked: no
4: hci0: Bluetooth
    Soft blocked: no
    Hard blocked: no

On voit apparaître une nouvelle connexion: Bluetooth. Cependant celle-ci me renvoie une erreur (même avant d'entrer en session):

Bluetooth: hci0: hardware error 0x37

Je n'ai pas trouvé à quoi cela correspondait mais d'après le peu que j'ai pu lire:

  • le Bluetooth serait fonctionnel (mais je ne l'ai pas testé)
  • l'erreur viendrait du BIOS (ce qui ne me surprendrait pas car l'info du BIOS me donne 2 'ID FCC' (ne me demandez pas ce que cela signifie je n'en sais rien) identiques pour le WiFi et le Bluetooth: VQF-RT3090BC4

J'ai longtemps cherché pour supprimer cela, mais le net ne m'a pas donné de solution. Cependant j'ai fini par trouvé quelque chose ...

 

04 - Troisième souci: Comment supprimer le message "Bluetooth: hci0: hardware error 0x37"

Vous commencez à me connaître, je n'aime pas les messages d'erreur même si ils sont 'inoffensifs'.

Comme indiqué précédemment ma recherche sur le net a fait chou blanc: très peu de post sont sur ce sujet et beaucoup tournent autour d'une situation 'Soft blocked' donc résolu par l'utilisation de rfkill, d'autres recommandent de vérifier le firmware mais une recherche de type $ sudo apt-get -s install firmware-* ne me renvoie pas de firmware relatif au bluetooth, l'installation d'un gestionnaire de connexion Bluetooth comme 'bluez' ne change rien, ...

ET je me suis souvenu d'un problème non pas similaire mais de configuration semblable que j'ai eu sur un autre HP (mais sous Debian). Pour faire court: le hp_wifi et le phy0 entraient en conflit. Pour résoudre ce problème, il suffit de blacklister hp_wmi et ici, c.a.d dans cette configuration Ubuntu, il faut l'ajouter tout à la fin du fichier /etc/modprobe.d/blacklist.conf comme ceci

$ sudo nano /etc/modprobe.d/blacklist.conf
.
.
.
# Ajout du dd/mm/2018 pour supprimer au boot le message "Bluetooth: hci0: hardware error 0x37"
blacklist hp_wmi

 Un redémarrage plus tard, le message n'apparaît plus, le wifi fonctionne (vérifié avec ping) et nous avons:

$ rfkill list
0: hci0: Bluetooth
    Soft blocked: no
    Hard blocked: no
1: phy0: Wireless LAN
    Soft blocked: no
    Hard blocked: no

Notez toutefois que si vous appuyez sur la touche d'(des)activation du WiFi le message revient, ce qui ne me semble pas incongru.

Nous sommes presque prêts à l'installation de notre environnement. Je dis presque parce que je tiens à ce stade à procéder à une ...

 

05 - Mise à jour

Oui avant toute chose, je préfère travailler avec une version à jour. Si Ubuntu est basé sur Debian, les dépôts sont cependant différents. Pour une explication sur les dépôts je vous renvoie sur la page en français du Wiki Ubuntu.

Si vous voulez voir sur quoi pointent vos dépôts (adresses Internet où sont stockés tous les paquets de la distribution):

$ sudo nano /etc/apt/sources.list

En principe il n'y a rien à modifier.

La commande pour tout ce qui concerne les paquets (les logiciels téléchargés pour installation sont "empaquetés") est apt-get. Pour la mise à jour nous allons utiliser cette commande puisque l'application graphique Synaptic (très performante et très facile d'utilisation et basée sur apt-get) ne nous est pas accessible pour le moment.

Voilà il ne nous reste à mettre à jour l'index (liste des paquets installables):

$ sudo apt-get update

puis à mettre à jour les applications qui doivent l'être:

$ sudo apt-get upgrade

Et voila notre système est à jour.

Nota: Avec la mise à jour j'ai perdu la belle couleur bleu sur fond noir du texte de login. Je n'ai pas trouvé comment la remettre, mais j'ai ajouté un peu de couleur au prompt et au texte en m'inspirant de ce post

 

06 - Installons Openbox

Je vous passe les détails du pourquoi, c'est un des gestionnaire de fenêtres le plus léger et hautement configurable, etc.

Pour plus de détails voir le site d'Openbox (en anglais :-( ou celui-ci en français et pour Ubuntu mais en cours d'actualisation au moment où j'écris ces lignes)

Ici, je le répète, on n'installe que Openbox, si vous voulez une autre configuration (Openbox peut être couplé avec Gnome, Kde, Xfce, ...) et bien il vous faudra chercher ailleurs.

Bon c'est parti:

$ sudo apt-get install openbox obconf obmenu

Les 2 derniers paquets seront bien utiles pour configurer l'apparence et le menu (respectivement). Cela m'installe 127 paquets !

Et un paquet pour démarrer le serveur X (serveur graphique)

$ sudo apt-get install xinit

Là 71 nouveaux paquets seront installés dont des utilitaires comme x11-xkb-utils et des appli propres au matériel comme xserver-xorg-video-*.

Il nous faut créer aussi le .xinitrc ainsi:

$ nano ~/.xinitrc
#!/bin/bash
exec openbox-session

Tout est prêt pour lancer Openbox, ce que l'on fait sans tarder:

$ startx

Bon nous obtenons un bel écran noir, et nous obtenons un menu que par un clic droit (d'une souris car le touchpad ne fonctionne pas à ce stade). Pour être dépouillé, c'est dépouillé, et aucune application n'est installée pas même un terminal (et c'est normal, puisque c'est ce que nous avons voulu). Mais pas de panique nous allons agrémenter tout cela, mais il nous faut d'abord sortir (clic sur exit) pour installer d'autres paquets en mode console.

 

07 - Les logiciels

Oui, c'est pas banal, mais vous l'avez vu en mode graphique nous n'avons accès à rien, il nous faut donc installer en mode console quelques logiciels indispensables. Outre le fait que nous serons à peu près fonctionnels cela donnera plus de corps au menu, ainsi lors de la configuration de notre Openbox nous aurons de la matière (par exemple pour l'édition du menu et de ses catégories).

    07.01 - Commençons par le terminal, l'indispensable N°1.

Le classique est xterm, il est disponible sur toutes les distributions, mais pour ma part je lui préfère nettement xfce4-terminal (léger, autorise les onglets, ...). Pour une comparaison des différents terminaux disponibles vous avez cette page "What are the best Linux terminal emulators ?" (Ai-je besoin de traduire ?):

$ sudo apt-get install xfce4-terminal

Ce qui installe 21 nouveaux paquets

 

    07.02 - Ensuite un gestionnaire de fichiers,

Sur une autre installation j'avais hésité entre pcmanfm et thunar, tous 2 sont réputés léger. J'avais donc testé les 2 et j'ai gardé pcmanfm. Pour d'autres avis et comparaisons vous avez cette page: What are the best GUI Linux file managers ?.

$ sudo apt-get install pcmanfm

Il viendra en 169 nouveaux paquets.

 

    07.03 - Maintenant un navigateur web ...

... serait utile, si ce n'est indispensable. J'ai toujours ce dilemme Firefox ou Chromium de Google ? J'ai les 2 installés sur un portable sous Debian-Openbox: au cours du temps Firefox a eu des faiblesses (lent, plantages), Chromium a alors pris le dessus. Mais aujourd'hui c'est l'inverse Chromium est très consommateur de RAM et n'accepte pas trop d'onglets ouverts alors je suis revenu sur Firefox même si je n'ai pas la possibilité de dicter mes recherches comme dans Chromium. Pour d'autres avis et comparaisons vous avez cette page: What are the best web browsers for Linux ?. Donc:

$ sudo apt-get install firefox

Cette fois seuls 4 paquets seront installés.

Ce sera bien aussi de l'avoir en français, pour cela il faut (je crois car là j'ai tâtonné):

$ sudo apt-get install language-pack-fr firefox-locale-fr

 Un coup d'oeil sur cette page wiki d'Ubuntu sur la francisation de Firefox sera certainement utile.

 

    07.04 - Une application qui gère les archives compressées ...

...  est souvent utile. 'file-roller' est un candidat mais dépend de librairies Gnome et surtout demande 2 fois plus d'espace disque que 'xarchiver' (42,6Mo vs 97,9Mo), donc:

$ sudo apt-get install xarchiver

Cela amène 50 nouveaux paquets.

 

    07.05 - Et pour un éditeur de texte ?

Nous avons déjà 'nano' (très appréciable pour des modifications simple de texte) et 'vi / vim-tiny' (qui demandent un apprentissage des commandes) comme éditeurs de texte, mais cela reste très rudimentaire. Je me suis habitué à 'leafpad' surtout après avoir installé Geany un éditeur de texte également mais aux fonctions d'environnement de développement intégré (IDE) que j'utilise pour écrire mes programmes. J'appréciais 'gedit', mais ce dernier demande des librairies de Gnome et reste lourd (102Mo d'espace disque nécessaire pour 61 nouveaux paquets contre respectivement 461ko et 1 seul paquet) par rapport à leafpad. Donc:

$ sudo apt-get install leafpad

 

    07.06 - Un lecteur  pdf ?

Avec leafpad j'avais un paquet suggéré: 'evince' un lecteur de pdf et il est vrai que c'est mon lecteur pdf préféré: il fait ce qu'on lui demande sans fioriture et reste très léger.

$ sudo apt-get install evince

Et voici 30 nouveaux paquets pour 64,6Mo d'espace disque supplémentaires.

Bon cela suffit pour le moment, voyons ce que cela donne en mode graphique, lançons startx.

PS: J'ai aussi ajouté pour les captures d'écran gnome-screenshot (1 seul fichier d'installé). Curieusement les raccourcis clavier [IMPR] et [Alt]+[IMPR], respectivement pour la capture d'écran et la capture de la fenêtre active, ne fonctionnent pas.

 

08 - Configurer le bureau

On retrouve notre écran noir, mais cette fois les applis installées sont accessibles du menu obtenu après un clic droit sur l'écran, par exemple: un clic sur Web browser lance Firefox (ou le navigateur que vous avez installé), de même Terminal emulator lance xfce-terminal. Cependant tout n'est pas parfait:

  • des entrées du menu pointent dans le vide (j'ai un 'Mail reader' par exemple);
  • des entrées sont manquantes comme 'obmenu'
  • de plus si on a le malheur de réduire les fenêtres, elles disparaissent du paysage. Certes un alt-Tab vous permettra de les retrouver, mais ce n'est pas des plus pratiques.
  • L'ensemble reste, il faut l'avouer un peu tristounet.

Bref il y encore un peu de boulot !

    08.1 - Le fond d'écran

Ce n'est pas le plus important, mais c'est le plus simple.

Pour gérer son fond d'écran nous disposons de plusieurs possibilités comme 'nitrogen' par exemple. Mais ici au lieu d'installer un paquet supplémentaire nous allons utiliser PCManFm qui possède cette fonctionnalité de gestion de fond d'écran ce qui est inhabituel pour un gestionnaire de fichiers.

Pas besoin d'installation donc puisque pcmanfm est déjà installé. Pour le lancer au démarrage il va falloir écrire dans le fichier ~/.config/openbox/autostart la commande de lancement de la gestion du fond d'écran par pcmanfm. On peut le faire de cette façon:

$ echo 'pcmanfm --desktop &' >> ~/.config/openbox/autostart

Quelques explications peut-être utiles:

  • Les 2 '>' vont écrire ce que renvoie echo à la fin du fichier ~/.config/openbox/autostart (Attention si vous ne mettez qu'un seul '>' vous allez écraser le fichier s'il existe (mais à ce stade le fichier 'autostart' n'existe pas encore)
  • le '&' en fin de ligne indique que la commande 'pcmanfm --desktop' sera exécutée en tâche de fond, cela permettra aux commandes suivantes (et il y en aura ...) de s'exécuter.
  • le '~' du chemin menant au fichier autostart indique votre répertoire utilisateur
  • une structure du fichier 'autostart' existe sous '/etc/xdg/openbox/autostart' mais elle ne nous est d'aucune utilité ici.
  • si vous avez fait un autre choix de gestionnaire de fichiers, essayez 'nitrogen' !

 

Il y a quelques ajustements de configuration à effectuer que l'on effectue:

  • soit via le menu (clic droit sur le bureau): Applications > Settings > Desktop Preferences
  • ou soit en ligne de commande: $ pcmanfm --desktop-pref (attention la fenêtre n'apparaît pas en premier plan, elle peut donc être cachée par d'autres fenêtre comme celle du terminal d'où vous avez lancé la commande)

Dans l'onglet 'Apparence' vous pourrez ajouter votre fond d'écran (et gérer la police du texte -taille et couleur)

Dans l'onglet 'Avancé' il vous faut absolument cocher 'Afficher le menu fourni par le gestionnaire de fenêtres lors d'un clic sur le bureau' sinon vous perdez l'un des intérêts majeur (à mes yeux) d'openbox: l'accès au menu par un simple clic (droit) sur le bureau. Pour ce qui est de l'utilisation du bureau comme un répertoire, à vous de voir, moi je n'en veux pas.

Voici 2 liens qui peuvent être utiles pour fignoler la configuration de PCManFm:

Edit:

Lorsque j'ai voulu installer conky je n'arrivai pas à obtenir ce que je voulais, à savoir une fenêtre Conky avec transparence. En fait j'avais:

  • soit une fenêtre Conky transparente mais qui disparaissait lors d'un clic droit pour obtenir le menu,
  • soit ma fenêtre Conky persistait à l'appel du menu mais il me fallait la mettre dans le dock d'Openbox et là je perdais la transparence.

 Du coup j'ai installé nitrogen ($ sudo apt-get install nitrogen) et dans le fichier '~/.config/openbox/autostart' j'ai remplacé la ligne 'pcmanfm --desktop &' par 'nitrogen --restore &'.

    08.2 - Une barre des tâches

Une petite barre des tâches peut quand même être utile (mais c'est vous qui voyez). Des barres de tâches, il en existe plusieurs, mais il y en une qui a été créée spécifiquement pour Openbox: tint2, donc pourquoi s'en priver:

$ sudo apt-get install tint2

Pour voir son fonctionnement il suffit de lancer dans un terminal:

$ sudo tint2

Mais pour lancer cette barre des tâches automatiquement au démarrage d'Openbox il nous faut l'indiquer dans le fichier appelé ~/.config/openbox/autostart (ou autostart.sh). Si vous avez tout suivi jusqu'ici, vous avez déjà créé ce fichier pour lancer pcmanfm --desktop. Comme pour PCManFm,  la commande suivante fonctionnera que le fichier existe ou pas :

$ echo 'tint2 &' >> ~/.config/openbox/autostart

Il peut-être utile aussi de personnaliser sa barre de tâche tint2. Cela se passe sous ~/.config/tint2/tint2rc si ce répertoire/fichier n'existe pas il faut le créer et copier un fichier modèle:

$ mkdir -p ~/.config/tint2/
$ cp /etc/xdg/tint2/tint2rc ~/.config/tint2/ 

Mais ici le répertoire et le fichier existe, le seul petit point à régler reste la question des droits d'accès qui sont à ce stade seulement autorisés à root ce qui fait que la commande tint2 de l'autostart ne sait pas le lire. Donc changement de propriétaire (owner en anglais) par la commande:

$ sudo chown -R <nom utilisateur>:<nom utilisateur> ~/.config/tint2

Il ne reste plus qu'à vous amuser à peaufiner cette barre de tâche. Une interface graphique existe accessible par le menu ou plus simplement par un clic sur l'icône à gauche de la dite barre des tâches.

Pour ma part, voici mes principaux changements:

  • dans Arrières-plans: 'Arrière plan' à Panel et 'Rayon d'angle' à 7 pour adoucir un peu cette barre trop rectangulaire sinon.
  • dans Panel: 'Longueur' à 85%, 'Masquage automatique' à cocher
  • dans Éléments du panel: j'ai enlevé la zone 'Lanceur' car je ne lance jamais mes applications via le panel, et j'ai ajouté la 'Batterie'
  • dans Barre des tâches: 'Affiche une barre des tâches pour chaque bureau' à cocher, 'Répartit la place entre les barres des tâches' à cocher, 'Affiche le nom du bureau' à décocher
  • dans Lanceur: je ne mets aucune application dans ma barre de tâches. Ceci étant, si comme moi vous avez enlevé la zone 'Lanceur' du Panel, intervenir ici ne change rien.
  • dans Batterie: je fixe la limite de 'Cache si la charge est au-dessus de 98%'

     08.3 - Le menu

L'ajout manuel de programme dans le menu donne ce que l'on appelle un menu statique dont la configuration est stockée dans un fichier XML sous ~/.config/openbox/menu.xml. On peut bien sûr modifier à la main ce fichier, mais sinon c'est le boulot de obmenu ... qui n'apparaît pas dans le menu ! Il nous faut le lancer en ligne de commande.

$ obmenu

Et nous allons ajouter de suite obmenu dans le menu via l'interface graphique obmenu (Vous pouvez aussi créer votre menu en éditant le fichier ~/.config/openbox/menu.xml, utile à garder en tête, car pour une nouvelle installation ou une mémorisation, un copier/coller peut faire gagner du temps.). Pour cela:

  • Dans la fenêtre d'obmenu, déroulez la ligne "Openbox 3", et cliquez sur la ligne où vous voulez placer votre entrée de menu (en dessous de obconf pour obmenu ?).
  • Cliquez sur "New item"
  • Dans le bas de la fenêtre dans le champ de saisie 'Label' vous indiquez le nom qui apparaîtra dans le Menu. Pour ma part j'ai été très original et mis "ObMenu" pour obmenu.
  • Toujours au bas de la fenêtre, mais dans le champ de saisie 'Execute' cette fois, vous mettez la commande à lancer. Ici obmenu.

Une fois terminé, n'oubliez pas de sauvegarder: un clic sur l'icône représentant une disquette.

Maintenant obmenu est directement accessible du menu. Il ne vous reste plus qu'à faire de même pour toutes les applications que vous avez/allez installées/er ... en fait ce n'est pas tout à fait juste.

En effet vous avez certainement constaté la présence de la ligne

Applications menu Pipemenu /usr/bin/obamenu

Cette ligne permet en fait d'avoir un menu dynamique en lançant le script (Python) obamenu. Un menu dynamique se met à jour tout seul car le script va lire les applications disponibles, les associer à leur icône si elle existe et les afficher par catégorie. Ce script se met en place avec l'installation de openbox-menu (il me semble que l'installation a été faite automatiquement).

Ce script obamenu mérite quelques explications. Pour tout savoir on peut lire son 'man':

$ man obamenu

Malheureusement c'est en anglais. Je ne vais pas le traduire ici, mais essayer d'expliquer son fonctionnement en 'bref'.

obamenu est un script éctrit en Python (il est ainsi multiplateformes Unixlike), tout tient en 1 seul fichier y/c sa configuration qui consiste en quelques lignes au début du fichier (volonté des auteurs de faire quelque chose de simple). Voici les lignes de configuration (par défaut):

  • applications_dirs = ("/usr/share/applications", ) c'est là que toutes les applications installées sont stockées sous forme de fichier descriptif *.desktop. Il n'y a rien à faire normalement.
  • image_dir_base = "/usr/share" Pour les images c'est plus compliqué car s'il existe un endroit standard pour déposer les icônes: '/usr/share/pixmaps' tous les OS ne le respectent pas et les emplacements peuvent être multiples comme 'usr/share/icons'. La préconisation des auteurs lorsque l'icône dans votre menu n'apparaît pas, est de créer un lien dans '/usr/share/pixmaps' que obamenu utilise vers l'icône que vous voulez voir. Pour chercher l'icône un $ find /usr/share/icons -name 'foo.*' devrait suffire. (cf. ci-après quelques exemples)
  • icon_Theme = "Humanity" juste pour info car ne sert que pour aller chercher les icônes des catégories sous '/usr/share/icons/Humanity/categories/24'.
  •  image_cat_prefix = "applications-"  là aussi juste pour info. Les noms des icônes des catégories commencent toutes par 'applications-'. A noter que si vous mettez image_cat_prefix = "" cela aura pour effet de supprimer toutes les icones de votre menu, certains préférent ce type de menu simplement textuel.
  • application_groups = ("Office",  "Development",  "Graphics", "Internet",  "Games", "System",  "Multimedia",  "Utilities",  "Settings") Il s'agit là de la définition de vos catégories (groupes d'applications). Ayez en tête que ces catégories apparaîtront dans l'ordre de cette 'liste' donc n'en mettez pas de trop. De plus si cette catégorisation convient au plus grand nombre, on peut comprendre que nous n'ayons pas tous le même profil d'utilisation ce qui nous amène à la ligne suivante:
  •  group_aliases = {"Audio":"Multimedia","AudioVideo":"Multimedia","Network":"Internet","Game":"Games", "Utility":"Utilities", "GTK":"",  "GNOME":""} Nous avons là un dictionnaire qui va nous permettre beaucoup de choses. Chaque paire est l'association d'une clé  qui est la catégorie telle qu'indiquée dans le fichier .desktop et une valeur qui définit la catégorie de destination. En d'autres termes c'est là que vous pourrez définir d'autres associations et/ou de traduire les intitulés (cf. ci-après quelques exemples). A noter les valeurs vides des clés "GTK" et "GNOME" indiquent simplement que l'on ne veut pas voir ce type d'application dans le menu.
  • ignoreList = ("evince-previewer", "Ted",  "wingide3.2", "python3.4", "feh","xfce4-power-manager-settings" ) pas de surprise, ici on énumère les applications (dont le nom complet est suivi de .desktop) que l'on ne veut pas voir pour x ou y raisons dans notre menu.
  • terminal_string = "evte -e" indique à obamenu d'appeler votre émulateur de terminal favori pour les applications qui fonctionne dans une console comme "htop" par exemple.
  • simpleOBheader = False indique que l'on génére un menu.xml complet. Ce menu automatique s'insère directement dans obmenu mais on peut aussi l'envoyer dans un fichier pour traitement personnalisé avant de le renvoyer dans obmenu.

 Voici quelques exemples de modifications:

  1. A ce stade l'application Xarchiver apparaît dans la catégorie 'Utlities' mais sans icône. Si l'on fait une recherche comme indiqué précédemment $ find /usr/share/icons -name 'xarchiver.*' me renvoie 4 réponses sous /usr/share/icons/hicolor/ et rien sous /usr/share/pixmaps. Nous allons donc ajouter un lien de pixmaps vers icons/hicolor comme préconisé:
    $ cd /usr/share/pixmaps/
    $ sudo ln -s /usr/share/icons/hicolor/scalable/apps/xarchiver.svg xarchiver.svg
    Il ne reste plus qu'à renouveller l'opération pour toutes les icônes manquantes.
  2. Mettre un menu en français m'a tenté. J'ai testé la francisation des catégories avec par exemple Development -> Programmation. Pour cela on ajoute dans 'group_aliases' la paire 'Development:Programmation'  et bien sûr il faut remplacer dans 'application_groups' 'Development' par Programmation. Cela fonctionne mais on perd l'icône du groupe car la recherche de l'icône s'effectue sous '/usr/share/icons/Humanity/categories/24/' qui ne comprend que des icônes nommées en ... anglais! Donc pour avoir l'icône il faut comme précédemment créer un lien comme ceci (pour la catégorie 'Programmation'):
    $ cd /usr/share/icons/Humanity/categories/24/
    $ sudo ln -s ./applications-development.svg applications-programmation.svg
    Bien sûr il faut faire de même pour toutes les catégories que vous souhaitez franciser mais comme en principe vous ne modifiez pas les catégories tous les jours cela peut être un bon investissement temps. Attention à mettre les bons noms (les accents sont acceptés) et à ne pas laisser des doublons comme par exemple: "Utility":"Utilitaires" avec "Utility":"Utilities". Une dernière précision si vous créez une catégorie comme "Outils Système" il vous faudra échapper l'espace dans l'intitulé de l'icône comme ceci:
    $ sudo ln -s ./applications-system.svg applications-outils\ système.svg
    
  3. Toujours à propos de la francisation du nom des applications cette fois, j'avais espéré qu'une simple modification du script de type 'Name' -> 'Name[fr]' dans la fonction 'process_dtfile' marcherait. Mais non, pas pour toutes les applications car certaines (comme 'tint2') ne sont décrite que par 'Name', 'Name[fr] n'existe pas. Même si ce n'est pas recommandé du tout, je n'ai pu m'empêcher d'aller modifier directement le 'Name' indiqué dans le *.desktop de certaines applications comme: PCManFM ('File Manager PCManFM' devient 'PCManFM'), Evince ('Document Viewer' devient 'Evince'), Firefox ('Firefox Web Browser' devient 'Firefox') cela me paraît plus parlant et surtout plus court.
  4. Encore une chose, dans le menu j'ai par exemple un 'File Manager PCManFM' fonctionnel et un 'File Manager' qui génère une erreur. De même j'ai un 'Firefox Web Browser' et un 'Web Browser' et en lien non fonctionnel j'ai un 'Mail Reader', un 'Terminal Emulator' et un 'Preferred Applications'. Pour éviter de voir ces fichiers, le mieux est de passer par la 'ignoreList'. Un '$ ll /usr/share/applications/' montre que ces 5 fichiers commencent tous par 'exo-'. Il nous suffit donc d'ajouter 'exo-' dans la 'ignoreList' pour ne plus voir apparaître ces 5 fichiers.

Il y a encore plein de choses à faire sur le menu comme:

  • l'ajout d'une entrée pour éteindre l'ordi;
  • l'ajout d'applications qui demandent des privilèges administrateur (Gparted, Synaptic).

mais nous verrons cela dans '10 - Quelques ahustements' car là on a déjà bien customisé. 

    08.4 - Des raccourcis clavier

Pour la personnalisation des raccourcis clavier, cela se passe dans la section "keyboard" du ~/.config/openbox/rc.xml.

Mais on ne va pas s'y pencher tout de suite, car par défaut cela me convient assez, même si sur ce micro j'ai des touches spéciales (je n'aime pas, mais bon je fais avec ce que j'ai). La configuration par défaut permet (je ne cite que ce qui m'a 'surpris' au début) :

  • le basculement d'un programme à un autre par la alt+tab (et pourtant un linuxien vous dira que c'est un classique !)
  • la fermeture d'une fenêtre par clic droit de la souris (sur l'icône apparaissant dans le panel).
  • l'affichage des applis lancées dans chaque bureau par clic milieu

L'écriture (format xml) n'est pas complexe. Sinon un programme Python obkey permet de faire cela graphiquement (mais je n'ai pas essayé).

Pour plus de détails, voir '10 - Quelques ahustements'.

    08.5 Affichage des paramètres système avec Conky

J'aime bien avoir une visibilité sur ce que fait mon ordinateur: charge des processeurs, charge de la RAM, les applis qui tournent, etc. La raison de cette curiosité est que de temps en temps mon micro 'rame', voire 'plante' lorsque je teste mes programmes et avec cette visibilité cela me permet d'agir en toute connaissance de cause.

Vous pourriez être intéressé par des applications comme 'Gnome-system-monitor', 'Xfce4-taskmanager' ou mieux 'LXtask' qui est indépendante de toute plateforme et vient donc toute seule. Mais j'ai mieux, enfin de mon point de vue, 'Conky'. En effet conky est hautement configurable et vous pouvez vraiment afficher tout et n'importe quoi et ce en permanence sur votre bureau (si vous le souhaitez bien sûr).

Sur le net vous trouverez une multitude d'exemples de fichiers de configuration, l'infini des réponses est à l'image de l'infini des configurations. Pour les liens voir ma ma page '5 - Installation Debian - Openbox' même si depuis 2015 des liens ont disparus (à l'image de ceux de la distribution Crunchbang basée sur OpenBox dont le porteur a arrêté le développement fin 2015, mais repris depuis par la communauté sous le nom de Busenlabs). Aujourd'hui sur ce sujet, une bonne page de référence en français pourrait être celle d'Ubuntu-fr : elle couvre bon nombre de points et elle donne de nombreux liens.

Pour ma part je vais aller à l'essentiel :

  1. Si vous aussi vous voulez un Conky et bien passons à l'installation:
     $ sudo apt-get install conky
  2. Créer le dossier /home/<user>/.config/conky avec la commande $ mkdir ~/.config/conky; puis y copier le /etc/conky/conky.conf (ou/et le /etc/conky/conky_no_X11.conf) $ cp /etc/conky/conky.conf ~/.config/conky et voir ce que cela donne en lançant la commande $ conky -c ~/.config/conky/conky.conf. Bon à ce stade il faut reconnaître que cela ne donne pas envie.
  3. Une lecture du man vous donnera un bon aperçu des commandes/paramètrages possibles, mais en anglais
  4. Il sera alors temps de regarder ce que d'autres ont fait (sur le site officiel de conky par exemple) et d'y puiser ce qui vous plaît.
  5. Et lorsque votre_conky.conf sera au point il ne vous restera plus qu'à ajouter cette ligne conky -c ~/.config/conky/<votre_conky.conf> & dans le fichier ~/.config/openbox/autostart afin qu'il se lance au démarrage de votre machine
Voici ce que donne mon Conky.

my conky

L'IP publique a été volontairement enlevée sur cette image, mais le my_conky.conf (ancienne écriture car permet l'ajout de nombreux commentaires) l'affiche bien.

Je suis arrivé à cette configuration en copiant toutes les petits bouts de code sympa que j'ai trouvés. Je l''ai abondamment commenté afin d'expliquer le pourquoi des choses.

Comme vous pouvez le voir, moi je m'en sers surtout pour avoir une visibilité sur l'état global de mon système (identité, charge CPU, occupation RAM et HD, infos de connexion Internet, process en cours et ports ouverts), mais d'autres vont afficher la météo, le titre de la chanson qu'ils sont en train d'écouter etc, etc.

J'attire cependant votre attention sur:

  • la possibilité de faire des affichages conditionnels, bien utiles pour un portable (connexion Wifi ou filaire par ex.);
  • les couleurs peuvent être définies comme variables et affectées par leur code hexadécimal ou par par leur nom. (cf la page Wikipédia ou celle-ci plus complète à mon sens);
  • la possibilité d'avoir des graphes avec un dégradé de couleur;
  • la possibilité d'éxécuter des scripts avec 'exec <script>' ou 'execi délai <script>' ou mieux 'texec <script>' ou 'texeci délai <script>' ce qui permet d'avoir un affichage de conky sans attendre la fin d'éxecution du (des) script(s);
  • l'instruction goto{nb_pixels} qui permet de positionner précisèment les données affichées. Pour ma part je ne l'ai pas utilisée, laissant conky se dimensionner automatiquement.

Cela dit je suis loin d'avoir exploré toute les possibilités surtout lorsqu'on voit certaines réalisations qui utilisent directement le langage de programmation lua.

Attention, commencer à peaufiner son Conky devient vite addictif ...


09 - Ouvrir sa session en mode graphique

Lancer sa session graphique avec la commande startx cela a son charme, mais un démarrage de session par identification sous mode graphique c'est sympa aussi, surtout si on le modèle comme on le souhaite.

Pour cela, il faut configurer ce qui s'appelle un Display Manager (ou Session Manager). Des DM, il en existe plusieurs, souvent liés à l'environnement de bureau:

  • GDM pour GNOME Display Manager et donc dépendant de l'environnement Gnome;
  • KDM pour KDE Display Manager et donc dépendant de l'environnement KDE;
  • LXDM pour LXDE Display Manager (mais indépendant de LXDE);
  • MDM pour Mint Display Manager (qui n'est qu'un fork de GDM2);
  • et d'autres complètement indépendants de l'environnement de bureau installé: LightDM, Qingy, SDDM, SLiM, XDM,  et certainement plein d'autres.

Pour cette fois j'ai été tenté par lightDM mais le nombre de paquets nécessaires (268 alors que GDM3 n'en demande 'que' 264) m'a fait revenir au bon vieux XDM  (X Display Manager) que j'avais déjà installé sous Debian.

Cependant sous Ubuntu cela ne me semble pas si clair, une fenêtre (énorme et moche) de login s'affiche mais je ne vois pas où elle est paramétrée (les fichiers de configuration habituels existent mais sont vides !), si quelqu'un a une idée je suis preneur ! 

En attendant je vais réfléchir à la question et  je reprendrais l'écriture de cet article d'ici 2-3 semaines.

 

10 - Quelques ajustements

    10.1 - Peaufiner son menu

        10.1.1 - Eteindre son ordinateur

Bon je suppose que vous êtes fatigué de taper '$ sudo poweroff' pour éteindre l'ordinateur. Je comprends, cela me fatigue aussi. Pourtant il est très simple d'ajouter une entrée pour éteindre l'ordinateur il est possible par exemple (inspiration ce lien d'ArchLinux) d'écrire dans le fichier '~/.config/openbox/menu.xml' (ou via obmenu ce qui est nettement plus simple) :

<item label="Redémarrer">
    <action name="Execute">
        <execute>systemctl reboot</execute>
    </action>
</item>
<item label="Eteindre">
    <action name="Execute">
        <execute>systemctl poweroff</execute>
    </action>
</item>

Moi cela me suffit amplement. Cependant d'autres voudront aussi la suspension, l'hibernation, ... bref la totale. Et bien le paquet 'obsession' est fait pour eux. Normalement il est déjà installé, et si ce n'est pas le cas vous savez ce qu'il vous reste à faire. 'obsession' s'utilise de 2 manières:

  • une graphique grâce à 'obsession-logout' qui vous donne ceci:
    obsession-logout
  • et une en version ligne de commande: 'obsession-exit'. Avec cette dernière le fichier '~/.config/openbox/menu.xml' peut devenir:
    <item label="Suspendre">
        <action name="Execute">
            <execute>obsession-exit --suspend</execute>
        </action>
    </item>
    <item label="Redémarrer">
        <action name="Execute">
            <execute>obsession-exit --reboot</execute>
        </action>
    </item>
    <item label="Eteindre">
        <action name="Execute">
            <execute>obsession-exit --poweroff</execute>
        </action>
    </item>
Cette dernière configuration me convient bien, elle ne prend que 3 lignes dans le menu qui sont ainsi directement accessibles. Maintenant si vous voulez aussi les autres options, l'utilisation d'obession-logout me semble plus judicieux car cela ne prendra qu'une ligne dans votre menu.
 

        10.1.2 - Ajout d'applications qui demandent des privilèges administrateur

Si vous avez essayé d'ajouter des applications qui demandent des privilèges administrateur comme Gparted ou Synaptic, vous avez certainement connu quelques contrariétés: ordinateur qui plante, application qui ne se lance pas, ...

On ne peut effectivement pas mettre ces applications dans le menu dynamique, je les mets donc sous un menu via 'obmenu' que j'ai appelé 'Système (admin)'.

Il n'y a pas si longtemps, on lançait ces applications via 'gksu' qui nous ouvrait une fenêtre de demande de mot de passe. Mais maintenant, pour une raison que je n'ai pas encore bien comprise, 'gksu' est supprimé des packages Ubuntu et Debian, car jugé 'non secure'. Très bien, SAUF ... qu'on a rien pour le remplacer ! (du moins je n'ai pas trouvé)

Voici quelques liens qui tentent d'expliquer (mais en anglais):

Bon je n'arrive pas à utiliser 'pkexec' (et à la lecture des posts cités précédemment ce ne serait pas étonnant).

Du coup j'ai trouvé une solution de contournement (autre que ré installer 'gksu' à partir d'un ancien dépôt): dans le menu j'utilise la commande la commande "x-terminal-emulator -e "sudo gparted" ou mieux "xfce4-terminal --hide-scrollbar --hide-menubar --geometry 60x5 -e "sudo gparted". Ne pas oublier alors de mettre "gparted" dans la ignore-list de /usr/bin/obamenu.

J'ai fait de même pour 'synaptic' un gestionnaire graphique de paquets. Je sais, certains ne jurent que par apt-get, mais pour ma part j'en ai un peu marre de lancer des recherches à grands renforts de apt-cache search <mots clefs> ou de visualiser le descriptif avec apt-cache show <paquet> alors qu'avec synaptic on a tout sous la main ... enfin sous les yeux, donc:

$ sudo apt-get install synaptic

Comme précédemment ne pas oublier  de l'enlever du menu dynamique en ajoutant 'synaptic' dans la ignore-list de /usr/bin/obamenu.

    10.2 - Peaufiner ses raccourcis clavier

 À écrire.

    10.3 - Peaufiner sa gestion des connexions Wi-Fi

Ou comment ne pas configurer sa connexion WiFi manuellement avec Wicd.
À écrire.

    10.4 - Se constituer sa bibliothèque de logiciels

  À écrire.

Actions sur le document