15 KiB
- Introduction
- Partie 1 - Premiers choix
- Partie 2 - Utilisation
Introduction
Fait l'installation sur mon ordinateur portable (VivoBook 15_ASUS Laptop X540UB) qui m'a fidèlement servi pour les années de master. Le but est de répertorier une installation la plus propre possible de Linux pour pouvoir au mieux répliquer les paramètres corrects (et refaire une installation sur cet ordinateur au besoin). Un autre objectif est de respecter au maximum les bonnes pratiques et d'essayer de maximiser l'usage d'outils robustes typiques (le terminal, éditer par vim, etc.)
Partie 1 - Premiers choix
Choix
- Arch Linux (besoin pour pilotes, niveau de difficulté acceptable)
- Pas de surcouche distro (Pas d'endeavor par exemple) -> Le plus simple possible
Installation
Problèmes
Connexion internet
- Le fichu pilote RTL8723BE sera maudit pour les années à venir, pour m'avoir fait perdre un temps considérable.
- Le pilote permet de chercher les connexions wifi.
- Cependant, avec iwd (seul gestionnaire de connexion sur l'installation standard d'ArchLinux), le pilote ne semble fonctionner que quelques secondes après le (re)démarrage.
- Cependant², tout semble fonctionner niquel avec NetworkManager (pourvu que l'ordinateur soit branché). Donc, on passe par la connexion du téléphone par USB le temps de l'installation. Puis nmtui pour configurer la connexion correctement.
Détails de l'installation
- Au bout d'un moment, je sais faire ma table de partition tranquille. Mon problème vient bien plus de la liste minimale de packages à installer que je ne sais pas faire.
- Par conséquent, je pars sur une installation archinstall avec le minimum syndical
Archinstall
- Archinstall language : Français (90%)
- Locales : Disposition du clavier : fr_latin1
- Locales : Langue locale : fr_FR
- Locales : Encodage des paramètres : UTF-8
- Miroirs : (les Français)
- Configuration du disque : automatique (/, /home, /boot)
- Swap : zram // Voirnotes sur swap
- Chargeur de démarrage : Grub
- Nom d'hôte : b0rd4dk
- Compte utilisateur : jercky
- Profil : (Esquivé, installe un gestionnaire de fenêtre avec des paramètres pré-faits selon l'usage renseigné (Desktop/Server))
- Audio : pipewire
- Noyaux : linux
- Configurer le réseau : NetworkManager installé + (Détails laissés pour après l'installation)
- Paquets supplémentaires : Aucuns
- Fuseau horaire : UTC+1 (Europe/Paris)
Après l'installation
Jusqu'à l'écriture du journal
- Comme précisé plus haut : paramétrage wifi par NetworkManager (nmtui)
- Installation de vim
- Retire les erreurs pcie_bus en ajoutant au grub (/etc/default/grub) GRUB_CMDLINUX_LINUX_DEFAULT : pci=nomsi ; GRUB_CMDLINUX_LINUX : pci=noaer. Maj du grub par grub-mkconfig -o /boot/grub/grub.cfg
- Au cas où : non, pcie_aspm=off n'a pas fonctionné
- Comme le journal était plein de détails inutiles (erreur de 4 lignes toutes les X secondes) : on le vide (sudo rm -rf /var/log/journal/*)
- Installation de fastfetch pour les détails de ce journal
Début des installations
- Mise en place du Firewall
- Pour remédier aux ralentissements/freeze : on vire le swap mis par défaut (zram0) et on passe par un swapfile (mkswap -U clear –size 4G –file /swapfile && swapon / swapfile). A voir si les freeze s'arrêtent là.
- J'ai eu un freeze malgré la modification du swap! Par contre, je me souviens qu'il fallait bloquer le bluetooth parce qu'il y a eu des lignes du journal à ce propos! Donc : rfkill block bluetooth
- Il est possible que cela ne venait pas du swap. Mais pour plus de contrôle sur la situation, je garde sous swapfile le problème.
- J'ai eu un freeze pendant l'écriture de la ligne ci-dessus et rien dans le journal n'est inscrit. Après la fin du freeze, on peut voir une note erreur emask 0x0 sact 0x0 serr 0x50000 action 0x6 frozen qui semble liée au disque dur/ssd. Sachant que je remarque que la zone en bas à droite de l'ordinateur est plus chaude qu'elle le devrait et un bruit qui ressemble à mon vieux disque dur (connexion/déconnexion en boucle) : c'est peut être ça (mais je ne vais pas démonter pour vérifier).
Sécurité
Firewall
- Installation+Utilisation de ufw (Uncomplicated Firewall)
- Par défaut, on va bloquer tout traffic entrant (ufw default deny)
- Pour plus tard : voir à permettre (limiter?) ssh, un client bittorrent
DNS
- Installation de fcron pour les tâches récurrentes (oui, il n'y a pas cron par défaut sinon)
-
Mise en place de la blocklist sur le site de sebsauvage (Liste de blocage DNS)
- Téléchargement du script de mise à jour automatique dans /etc/cron.weekly/host-update
- Permet la mise à jour automatique toutes les semaine de la liste de blocage dans /etc/hosts
GUI
- Installation de sway comme WM (wayland, habitude, stable)
- Installation de zsh comme shell (le plus utilisé vu, peut le désinstaller si besoin, c'est juste pour en avoir un)
- Installation de greetd comme display manager. Mais non nécessaire. Donc supprimé.
- Installation de ly comme display manager (console-like, minimaliste, fonctionne avec wayland, toujours maintenu)
- Installation de xdg-user-dirs (pour utiliser xdg-users-dirs-update et créer les répertoires utilisateur standards)
- A noter, que j'ai galéré sur sway parce que j'ai confondu zsh comme étant un émulateur de terminal, et qu'évidemment, je n'en avais pas d'installé. L'installation de foot me permet de corriger le problème et d'enfin pouvoir utiliser une interface graphique (pour passer ma vie dans le terminal lol)
- Installation de foot comme émulateur de terminal (très conseillé sur wayland)
- Choix de Gruvbox comme thème, mais il va falloir diminuer la luminosité de l'écran >< (ce qui n'est pas un mal tbh)
- Installation de brightnessctl pour le contrôle de la lumière (conseillé à l'installation de ly)
Utilitaires
- Installation de paru (comme yay mais en rust) -> J'ai installé le package rust, mais il fallait rustup :'( -> A corriger -> Corrigé (attention, perte de plusieurs centaines de Mo, peut être les packages de rust installés pour paru ?)
- Installation de git
- Installation de firefox (2e jour, pour récupérer certaines sources sans galérer)
Hardware
- Installation de udiskie pour automount les périphériques externes (parce que flemme et on évite les programmes kde/gnome)
- Installation de cpupower pour plus de contrôle sur le cpu. Mais impossible de mettre les "governor". Voir à reboot avant ? -> Même après reboot 🤷 On peut le garder pour plus tard
GPU
- Installation du pilote graphique propriétaire nvidia-580xx-dkms
- nvidia-utils installé par défaut avec
- blacklists nova et nouveau ok : systemd-analyze cat-config modprobe.d
- DRM activé mais cat sys/module n'a pas de nvidia_drm
- Erreur quand on fait nvidia-smi -> Les pilotes ne sont pas bien installés.
- OK. Désinstalle tout et reprend à 0
- …
- Installation de linux-headers (vu l'erreur et le guide https://github.com/korvahannu/arch-nvidia-drivers-installation-guide)
- Réinstallation de nvidia-580xx-dkms et nvidia-580xx-utils
- Cette fois-ci ok ! Les pilotes graphiques nvidia sont ok !
- Mise à jour du grub avec les options nvidia-drm.modeset=1 nvidia-drm.fbdev=1 dans DEFAULT
Intégration de la partie hybride (Intel/Nvidia) de Nvidia Optimus
- Partie la plus problématique. Toutes les options correctes semblent être construites pour Xorg/X11. Voir si on peut passer sur du discrete uniquement…
- Installation de supergfxctl mais ne semble pas proposer de mode discrete uniquement. Voir si asusctl le fait ? Réponse : non, il passe par supergfxctl.
- Installation de nvidia-prime pour pouvoir prime-run les programmes. C'est le mieux que j'ai 🤷
- Aussi installation de vulkan-tools pour pouvoir vulkaninfo
UX
Sway
- Remet des raccourcis compatibles (changement de workspace, clavier azerty, juste q pour kill plutôt que shift+q)
- Installation de fuzzel comme dmenu
- Ajout du paramètre de terminal à fuzzel
- Modification des encadrements et titres pour un effet minimal (may change later)
- Chargement de fonds d'écran Pathologic. Modifié 1 pour avoir une teinte plus jaune pour les yeux.
- Ajouté le pré-chargement de udiskie à chaque démarrage (utilitaire)
Foot
- FiraCode installé. Mis sur le terminal en police 14 (assez lisible btw)
- Thème Gruvbox-dark installé
- Alpha 90%
zsh
- Modifié etc/zsh/zshenv pour ajouter la ligne export ZDOTDIR="$HOME.config/zsh" pour rediriger dans .conf les fichiers de configuration zsh (pour avoir un HOME propre)
- Configuration standard pour pour modifier au fur et à mesure
- Changé le shell par défaut de bash vers zsh (chsh -s /bin/zsh)
- Si je me sens à un moment de prendre du temps pour gérer seul les plugins : https://github.com/mattmc3/zsh_unplugged
- En attendant, comme j'aime la manière de penser du gars, je vais prendre son plugin manager -> Installation d'Antidote !
- Je regarde la vidéo de Dreams of Autonomy sur la config de base zsh pour prendre exemple
- Installation des plugins "fish-like" (fast-syntax highlighting, autosuggesions & history substring search)
- Installation du prompt powerlevel10k (peut être un peu shaky par raport à la remarque de l'arrêt d'évolutions ?)
- Installation de fzf (sur pacman) pour la recherche plus simple (c+r pour une recherche historique)
Phase de test
- Semble avoir des problèmes sur les zstyle
- Aussi avec fzf-tab (à réinstaller je pense)
- Aussi, lent au démarrage…
- Semble être lent à cause de tout l'attirail de pl10k, on va tenter à partir de la base simple (fish-like + fzf + config simple)
- OMG. Les zstyle qui ne se lancent pas étaient liés à un manque de load de compinit
- Problème de lenteur retiré en virant powerlevel10k
- fzf-tab totalement fonctionnel à la réinstallation
Expansions et maîtrise de l'outils
- On remet zsh comme shell par défaut comme les problèmes principaux sont retirés
- Pure en prompt pour avoir au minimum le chemin
- Modification des symboles de prompt pour être disponibles dans le shell hors window mananger
Notes pour plus tard
- fzf : C+T pour lister tous les fichiers depuis le chemin actuel
- fzf : C+R pour lister l'historique
-
fzf : ** à la place d'un nom de fichier/répertoire puis TAB pour lister les possibilités depuis le chemin actuel
- Utilisation assez nice : kill -9 **pour chercher un process à tuer
Firefox
- Betterfox complet + Options hardened (désactive sync/view/gestion mdp, bloque réseaux sociaux intégrés, retire le cache à la fermeture)
- Ublock origin
- DNS Mullvad anti-publicités
- Onglets verticaux
- Thème sombre par défaut
- Très lent à démarrer. Probablement un problème pour la carte graphique.
Restent à faire
- Les pilotes graphiques
- Programmes de base
- Interface graphique de base
- Dotfiles (au moins pour emacs)
- Spécificités ordis portable
Wayland et Optimus
- Déjà, installé emacs pour écrire normalement
- Aussi, temporairement changé le shell pour revenir à bash le temps de prendre le temps d'apprendre zsh (ou autre)
- Pour l'instant voici ce qui a été installé pour wayland : sway, foot & nvidia-prime
- foot : remplacer par alacritty ou kity. Peut être désinstallé.
- Sway : installer i3 et remplacer l'appel du terminal par celui choisi ci-dessus. Peut être désinstallé.
- fuzzel : aussi spécifique à wayland (même dev que foot). A désinstaller également. Et vraiment très dommage dans ce cas précis.
- nvidia-prime : désinstaller, puis installer optimus-manager ou nvidia-xrun
- kitty semble avoir plus d'options sans être trop chiant.
- Attente que tout fonctionne avant de désinstaller.
Partie 2
- Après réflexion (plus d'une semaine de pause), je pense que rester sur wayland est mieux pour avoir une configuration plus universelle.
- La question de la CG par défaut se pose mais vraiment au pire prime-run est ok pour les programmes plus gourmants (sachant que le but est de faire plus dans le terminal…)
- Du coup, on remet le système à avant le point précédent ; sauf 2 points : emacs est pratique (et je l'aime bien à l'utilisation)
-
- rester sur bash au moins temporairement le temps d'avoir un meilleur contrôle sur le reste de l'environnement de bureau et faire quelque chose de carré
- En dehors de ça, on peut rester sur foot, sway, fuzzel et nvidia-prime.
- Fait.
Observations - Partie 1
Vim n'est pas si compliqué pour de l'insertion simple. Un peu plus quand on doit faire des opérations autres (exemple v pour mode sélection ; y/d pour copier/couper ; p pour coller) Cela me conforte quelque peu sur l'idée d'utiliser evil mode sur emacs. Alt+Flèche pour changer de terminal est incroyablement pratique quand on commence sans interface graphique (ici je m'en suis servi pour vérifier l'intitulé exact de l'ordinateur par fastfetch d'un côté, sans toucher à vim de l'autre). pacman : -S ok ; -Syu pour maj ok ; -Sy pas ok (peut mener à des mises à jour partielles si -S après) Freeze parfois dans vim (???) -> Changer de terminal est ok -> Voir notes sur les swap
Partie 2 - Utilisation
Checklist
Les étapes à faire pour chaque outils :
- Configuration refaite au propre depuis le minimum possible
- Si GUI, que ça soit esthétiquement plaisant au minimum ; et aussi lisible que possible
- Synergiser les outils au mieux
Les outils à check :
- Gestionnaire de mot de passe (KeepassXC)
- DMenu (Fuzzel)
- Gestionnaire de fenêtres (Sway)
- Shell (Zsh)
- Émulateur de terminal (Foot)
- Explorateur de fichiers (???)
- Git (Lazygit)
- Emacs
Gestionnaire de mots de passe
- Par défaut, j'utilise déjà quotidiennement KeepassXC mais je préfère regarder l'ensemble des outils existants à ma portée
- Pour répondre à la thématique de ce test, le but est de maximiser l'usage du terminal ; donc j'ai regardé l'outils pass (gnu passwordstore)
- Semble plus intéressant à l'utilisation au terminal et dans l'optique d'un usage symbiotique avec le reste des connaissances acquises/restantes
- Cependant, plusieurs problèmes, comme la séparation en plusieurs fichiers au nom en clair (utilise un plugin pass tomb pour patcher)
- Aussi lu/vu que le cryptage utilisé par keepass est de meilleure qualité et qu'il y a plus d'options communautaires (tho, il y en a pas mal pour pass aussi)
- keepassxc-cli existe pour le terminal mais il semble y avoir aussi d'autres clients (non préférable pour éviter de dépendre de 30 projets)
- Par synergie des outils, il me faudrait un lien avec fuzzel
- Installation de python/pip et mise en place de l'environnement virtuel dans .local/share/pythonenv
- Installation de .local/share/pythonenv/bin/keepmenu
- Mais flemme pour le moment de bien le faire fonctionner. A voir la prochaine session.