Skip to content

Latest commit

 

History

History
1045 lines (838 loc) · 45.2 KB

File metadata and controls

1045 lines (838 loc) · 45.2 KB

<<<<<<< HEAD

Table of Contents

Archlinux

||||||| parent of 4d06995 (Update docs)

Archlinu

=

Archlinux || project:archlinux +home

>>>>>>> 4d06995 (Update docs)

Mes notes sur l'installation d'Archlinux

Installation from scratch

 * Attention de ne pas lancer l'utilitaire de partitionnement sur une partition mais bien sur le disque lui même
 * Pour le macbook voir https://wiki.archlinux.org/index.php/MacBook
 * Un autre lien pour une installation pas à pas https://medium.com/@philpl/arch-linux-running-on-my-macbook-2ea525ebefe3
 * ou encore https://mchladek.me/post/arch-mbp
 * Un lien plus récent avec cryptage du disque et partition LVM http://loicpefferkorn.net/2015/01/arch-linux-on-macbook-pro-retina-2014-with-dm-crypt-lvm-and-suspend-to-disk/

Installation sur un disque crypté

    * Une seule pratition, la partition de boot sera sur la partition EFI
    * Formatter la partition avec gdisk avec Linux filesystem
    * crypter la partition (methode [[https://wiki.archlinux.org/index.php/Dm-crypt/Encrypting_an_entire_system#LVM_on_LUKS|LUKS on LVM]]) : `cryptsetup -v -y luksFormat /dev/sdXX` (tape YES to confirmation)
    * création du volume LVM

    * montage des volumes pour le / et le /boot

    * installation d'archlinux et generation du fstab

    * réglage du système à minima

    * mise à jour de la ligne HOOK dans le fichier mkinitcpio.conf

    * installation de lvm2 `sudo pacman -S lvm2`
    * si l'intallation de lvm2 n'a pas mis a jour initramfs alors faire `mkinitcpio -p lunx`
    * installation du boot manager

    * mettre un mot de passe pour le root et ce sera prêt, ne reste plus qu'à rebooter

Installtion UEFISTUB

pas besoin de boot manager : - avant le pacstrap, monter la partition EFI sur /boot - une fois arch-chroot, et le noyau généré suite à l'installation, utilisé efibootmgr - le noyau et initramfs doivent être sur /boot et donc sur la partition EFI - lancer la commande : `efibootmgr --disk /dev/{disque de l'efi) --part {numero de partition ou réside l'efi} --create --label "Arch Linux" --loader /vmlinuz-linux --unicode 'root=PARTUUID={ identifiant partition pour le /} rw initrd=\initramfs-linux.img' --verbose` - pour trouver le PARTUUID : `lsblk -o NAME,PARTUUID` - il préconnisé de mettre la commande dans un script avec suppression de la conf avant création afin de pouvoir facilement regénérer la conf si changement de paramètrage du noyau

INCONVENIANTS : - obligé d'effacer et recréer la conf efi pour changer un paramètre du noyau - pas de possibilité de faire changer de noyau si pb avec le nouveau noyau (peut-être faut-il faire une conf dédiée pour booter sur un autre noyau)

Notes à propos de VMware et Virtualbox

    * pb sur le driver video suite à l'upgrade -> obligé de réinstaller les anciens pilotes
      ex : `pacman -U /var/cache/pacman/pkg/xf86-video-intel-2.99.912-1-x86_64.pkg.tar.xz`

En cas de plantage durant une installation

    * voir les paquets à réinstaller : `sudo ldconfig 2>&1 | cut -d' ' -f3 | xargs pacman -Qo`
    * réinstaller avec les dépendances si nécessiare : `pactree -d1 -u {nom du paquet} | sudo pacman -S --force -`
    * avec toutes les dépendances `pactree -u {nom du paquet} | sudo pacman -S --force -`
    * utilisation de reflector pour la gestion des miroirs (voir https://forums.archlinux.fr/viewtopic.php?p=177607#p177607)
       `pacman -S reflector`
       `reflector --verbose --country France -l 5 -p https --sort rate --save /etc/pacman.d/mirrorlist`

En cas de conflit lors de l'upgrade du system

    * Si l'upgrade s'arrête à cause d'une erreur : fichier déjà présent dans le système
    * mettre de côté les fichiers qui pose pb avec un `tar -cvf -T liste-fichiers.txt`
    * supprimer les fichiers `cat liste-fichiers.txt | sudo rm`

Installation sur un serveur vps OVH

voir https://www.dimoulis.net/posts/install-arch-linux-on-ovh-vps/

Customisation

Utiliser Yay pour gérer les packages

 * `yay -Syu` pour tous mettre à jours
 * `yay -Syu --repo` uniquement pout les repos (hors aur)
 * `yay -Syu --aur` uniquement pout AUR
 * `yay -Si` pour avoir des infos sur la package
 * `yay -Qua` voir les packages AU à mettre à jours
 * `yay -Yc` pour supprimer les dépendances inutilisées
 * `yay -D --asexplicit yay` pour marquer le paquet comme installé explicitement

NOTE : si erreur "yay: error while loading shared libraries: libalpm.so.14:" alors la solution : i

  • `sudo pacman -R yay-bin`
  • `cd ~/.cache/yay/yay && makepkg -Csfi`

Note pour python

    Lors d'une mise à jour majeur de python, il est nécessaire de recompiler les packages pythons installés.
 * `yay -S --rebuildall --noconfirm $(yay -Qqo /usr/lib/python3.8/)`

Les paquets indispensables

 * termite en remplacement de urxvt terminal + urxvt-perls
 * [[https://github.com/ervandew/urxvt-vim-scrollback|urxvt-vim-scrollback]]
 * i3-wm gestionnaire de fenêtre
 * i3lock-fancy-git
 * dmenu2
 * pass
 * passdmenu
 * dunst + libnotify pour avoir des notifications
 * dwb ou vimb comme navigateur web
 * feh pour gérer l'image du fond
 * hot-solarized-vi pour un top colorisée avec raccourcis vi
 * slim pour avoir un écran de login
 * zathura pour visualiser des pdf
 * otf-inconsolata-powerline-git (police avec support powerline)
 * otf-powerline-symbols-git (police avec support powerline)
 * ttf-bitstream-vera
 * ttf-weather-icons
 * pinta logiciel de retouche image
 * pommed-light pour gérer les touches mac sons/lumieres
 * xclip & xsel & xclipboard & clipmenud pour gérer les copier/collé
 * nuvolaplayer pour la musique en ligne
 * unclutter pour masquer la souris
 * mutt pour les mails
 * urlview pour les liens dans les mails
 * mps-youtube pour une cli youtube
 * pulseaudio-alsa + libpulse-raop2 (airplay)
 * paprefs + pavucontrol (gui control for pulseaudio)
 * rainbowstream twitter cli client (via pip)
 * newsbeuter rss cli lcient
 * iftop
 * nethogs (voir ce qui consomme la bande passante)
 * remmina
 * wego meteo dans le terminal
 * socat (pour utiliser les socket de vimb)
 * googlecl
 * fortune-mod
 * pm-utils (hibernate & suspend)
 * inotify-tools
 * rtv (reddit terminal viewer)
 * pyradio
 * mpsyt
 * blueman
 * insync (google drive)
 * maim + slop pour les screenshot
 * cmus cli pour la musique
 * mpd + ncmcpp + cli-visualizer pour la musique
 * tig pour la gestion de dépots git
 * FontManager pour visualiser les polices installées
 * Xbindkeys pour mapper des touches du clavier sous session X
 * powertop et tlp (gérer la batterie)
 * ranger (file manager)
 * gnu-netcat (pour i3pystatus anybar)
 * compton (transistion entre les fenetres)
 * pal calendrier cli
 * acpilight (et faire sudo chmod a+w /sys/class/backlight/intel_backlight/brightness)
 * arandr pour la gestion des écrans
 * autorandr pour enregister les configurations d'écrans et les activer automatiquement
 * udiskie pour le montage automatique des diks (TODO: ansible déploiement)
 * jq pour parser du json en ligne de commande
 * vimiv pour visualiser/modifier des images mode vim
 * wuzz commande interactive pour inspecter des requetes http
 * screenfetch pour avoir des infos sur le system
 * dmidecode -> system info via `sudo dmidecode -t system`
 * gotop -> system monitoring tool
 * stack && herms (cli for cook recipes managment)
 * apvlv pdv viewer with vim command
 * glances -> system monitoring tool
 * gotop pour monitorer le système
 * hey pour faire des tests de charges http
 * xfburn pour graver des blu ray
 * eg alternative to man page
 * unclutter pour faire disparaitre le curseur lorsqu'il n'est pas utilisé
 * ifuse pour accéder aux donnés d'un iphone
 * libmobileidevice dépendance pour ifuse et ideviceinstaller et plus
 * ideviceinstaller pour avoir les id des application ios
 * pick-colour-picker
 * bandwhich pour consulter l'utilisation reseau
 * mopidy (remplace mpd pour streamer depuis le cloud)
 * inotify-tools

SLIM avec clavier azerty

Cette ligne : `Option "XkbLayout" "fr"` doit être ajouté dans la section du clavier de X11.

Exemple pour `/etc/X11/xorg.conf.d/40-libinput.conf` :

Remplacement de Slim par LightDM

Note à propos du remplacement de Slim par LightDM (work in progress)

Mot de passe de decryption et autologin session

L'idée est de n'entrer qu'une seule fois son mot de passe par la decryption du volume et d'autologuer la session.

Prérequis:

  • lightdm
  • plymouth
  • disque encrypté
Suivre les instruction pour l'installation de plymouth: 1. installation de plymouty `yay -S plymouth` 2. ajout de `plymouth` et remplacement de `encrypt` par `pymouth-encrypt` dans `/etc/mkinitcpio.conf`

    `HOOKS=(base udev plymouth autodetect modconf block keymap keyboard encrypt lvm2 filesystems fsck)`

3. recréer lesramdisks `mkinitcpio -P` 4. configurer plymouth dans `/etc/plymouth/plymouthd.conf` 5. configurer autologin dans `/etc/lightdm/lightdm.con` suivant la doc : https://wiki.archlinux.fr/LightDM 6. activer lightdm service

L'installation détaillé ici : https://wiki.archlinux.org/index.php/plymouth

Tip: `sudo plymouth-set-default-theme -R` pour choisir le thème et reconstrir les ramdisk

Ajout d'un écran de lock à la suspension

Voir : https://github.com/meskarune/i3lock-fancy

Obsolète: Installer le package `xss-lock` et ajouter dans `.xinitrc` : `xss-lock i3lock -f &`

Faire disparaitre le curseur lorsque la souris n'est pas utilisée

Installer le package `unclutter` et ajouter dans `.xinitrc` : `unclutter -idle 1 -jitter 2 -root &`

Faire le ménage

- Voir la place libérée : `sudo paccache -d` - Supprime le cache et garde les 3 dernières versions : `sudo paccache -r`

Extinction auto de l'écran

- installer xorg-xset et paramétrer selon les indications : https://wiki.archlinux.org/index.php/Display_Power_Management_Signaling - `xset -display :0 q` liste les paramêtres pour l'écran cible - `xset -display :0 s off -dpms` désactive la suspension de l'écran

Note: l'option `-display :0` n'est utile que si l'on est execute la commande dans un terminal qui n'est pas sur l'écran ciblé

I3 window manager | +todo +i3

  • [] Tracker de prix #b56421bc
  • [] totest: remplacement de dmenu par j4-dmenu-desktop #c2c9e9dc
  • [] avoir un dmenu pour les emojis #a360708c
  • [] Améliorer le dmenu copier/coller #17dcd846
  • [] Régler le pb de centrage (cf annotation) #7b47a386
 * i3pystatus-git pour des infos dans la barre de menu

Gestion remplissage de mot de passe

 * avoir `passdmenu.py`
 * passer les arguments à passdmenu.py via un script shell :
   {{{
        #!/bin/sh
        DMENU_HEIGHT=${DMENU_HEIGHT:=24}
        DMENU_FONT=${DMENU_FONT:=MesloLGSDZ Nerd Font-10}
        /usr/bin/dmenu -i -nb '#002b24' -nf '#eee8d5' -sb '#b58900' -fn "$DMENU_FONT" -h $DMENU_HEIGHT
        }}}
 * Pour avoir le login et mdp rempli dans i3 : `passdmenu.py -u -x p,s -P --type -r -D ~/share/bin/mypassdmenu`
 * passdmenu.py : https://github.com/klaasb/passdmenu

Faire un workspace par application

Créer un fichier executable au nom de l'application à lancer dans dmenu

Mettre ce fichier dans un repertoire qui se trouve dans le PATH (pour moi il s'agit de ~/share/bin) Utiliser dmenu pour lancer l'application ou switcher dessus.

Police de caractère

 * ttf-meslo-powerline
 * icons
 * ttf-fontawesome
 * utilitaire de gestion/visualisation de police : FontManager
 * installation pour les emoji en couleur : https://chrpaul.de/2019/07/Enable-colour-emoji-support-on-Manjaro-Linux.html

Thème Solarized, airline et GTK

 * lxappearance pour changer l'apparence des applications
 * utilisation d'un thème pour les couleurs de ls (dans ~/.config/color/dircolors.256dark)
   - `eval (dircolors ~/.config/color/dircolors.256dark)` dans .zhrc pour exporter LS_COLORS
   - TODO: soucis avec les couleurs qui sont différentes avec `ls [TAB]` et `ls [RETURN]`
   - source du thème : https://github.com/seebi/dircolors-solarized

Wifi démarrage auto du wifi

 * `netctl enable {nom du profil}`
 * pour trouver le nom du profil actif et des autres : `netctl list`
 * si pb "network not found" alors essayer :
     * `sudo rfkill unblock all`
     * `sudo ip addr flush dev enp60s0u1u1`

Réseau / wifi migration netctl vers iwd + systemd-networkd

voir installation iwd et systemd-networkd (work in progress)

Supprimer les connections sur le port 5355

Le port 5355 est utiliser pour la résolution de nom LNMR de microsoft. Par défaut c'est activé sur le service systemd-resolved. Pour le désactiver il suffit d'éditer `/etc/systemd/resolved.conf` et mettre `LLMNR=no` Et rédémarrer le service `sudo systemctl reload systemd-resolved`

Quelques outils pour surveiller le réseau

  • nethogs -> `nethogs -C`
  • iftop -> `iftop -n` (pour ne pas avoir la resolution dns)

Réglage horloge

 * pour voir les horloges : `timedatectl`
 * pour régler UTC : ` sudo ntpd -qg`
 * pour synchroniser l'horloge physique : `sudo hwclock --systohc`
 * pour consulter l'horloge physique : `sudo hwclock --show`
 * `timedatectl set-local-rtc 1` # 0 pour la remettre sur UTC
 * plus d'info : https://wiki.archlinux.fr/Horloge

Configuration du clavier | +todo and +keyboard

  • [] désactiver la touche wifi pour utiliser le menu à la place du switch wifi #55624f8a
  • documentation Xmodmap — ArchwikiFR
  • générer le fichier ~/.Xmodmap : `xmodmap -kpe > ~/.Xmodmap`
  • éditer le fichier ~/.Xmodmap pour modifier les touches par défaut
  • voir la fin du fichier pour voir comment modifier le comportement de la touche caps
  • `xmodmap ~/.Xmodmap` pour appliquer les changements
  • Pour ne pas éteindre directement via la touche power : dans `/etc/systemd/logind.conf` mettre `HandlePowerKey=ignore` puis assigner pour i3 la touche 124 dans .Xmodmap (voir https://wiki.archlinux.org/index.php/I3#Shutdown.2C_reboot.2C_lock_screen )
  • utiliser `xev` pour obtenir le code d'une touche `xev | grep keycode`
  • mettre les racourcis dans i3 ou .xbindkeysrc (plus facile dans i3 me ne permet pas de tous faire)
  • dans .xbindleysrc : m:0x40 <- touche de modification windows
  • Il semble que .xbindkey et prioritaire sur i3 (car exécuté avant)

Configuration de la souris

 * Sous gnome le scroll de la souris est très lent pour résoudre le pb voir cet article : http://www.webupd8.org/2015/12/how-to-change-mouse-scroll-wheel-speed.html
 * installer imwheel
 * mettre le bon réglage en place dans ~/.imwheelrc :
 {{{
    ".*"
    None,      Up,   Button4, 3 # <- Ici est le réglage de la vitesse de scroll (3 lignes)
    None,      Down, Button5, 3 # <- Idem
    Control_L, Up,   Control_L|Button4
    Control_L, Down, Control_L|Button5
    Shift_L,   Up,   Shift_L|Button4
    Shift_L,   Down, Shift_L|Button5
 }}}
 * Voir https://wiki.archlinux.org/index.php/IMWheel pour l'installation

Double moniteur

  • Si le deuxieme moniteur n'est HIDPI alors utiliser arandr pour l'activer et la commande xrandr -output DP1-1 -scale 1.33x1.33 pour ajuster

Ajout d'un résolution écran

 * `cvt 1280 1024`
 * `xrandr --newmode "1280x1024" {suivi du reste de la 2eme ligne resultant de cvt}`
 * `xrandr --addmode {ecran cible} 1280x1024`
 * `xrandr --ouput {ecran cible} --mode 1280x1024`

Plus d'info : https://wiki.archlinux.org/index.php/Xrandr

Barre de status

 * [[configuration de i3pystatus-git]] (voir également installation d'une version de dev)

Barre de lancement

 * installation de dmenu-xft-height puis customisation dans ~/.config/i3/config :
   `bindsym $mod+d exec dmenu_run -i -nb '#859900' -nf '#eee8d5' -sb '#cb4b16' -fn 'Meslo LG S DZ for Powerline-10' -h 24`

Configuration des touches spéciales

 * voir le fichier `/etc/acpi/handler.sh`
 * pour savoir le nom de la touche a utilisé dans le handler.sh : `acpi_listen` et appuyer sur la touche

Ajout de règle udev

 Lancer un script à la connexion/deconnexion d'un périphérique :
 * voir https://wiki.archlinux.org/index.php/udev
 * créer un script se terminannt par .rules
 * copier un script déjà existant : /usr/lib/udev/rules.d/70-power-switch.rules
 * voir les infos du device `# udevadm info -a -p /sys/class/backlight/acpi_video0`
 * modfier la régle copier avec les info récupérée
 * faire `udevadm trigger` si la règle n'est pas prise en compte
 * si la règle ne fonctionne pas faire un `# udevadm test $(udevadm info -q path -n [device name]) 2>&1`

 Exemple de règle :
 {{{
    ACTION=="add"
    SUBSYSTEM=="usb"
    ENV{ID_FS_UUID}=="679752b5-4bbb-40ec-b7e7-fde992d07151"
    ENV{UDISKS_SYSTEM}="0"
    ENV{UDISKS_AUTO}="1"
    RUN+="/usr/bin/logger --tag my-usbkey Attached"
 }}}

Installation Trackpad

Ligne de commande

 * voir https://wiki.archlinux.org/index.php/bluetooth
 * et voir http://support.apple.com/kb/HT2845
   Turn on the Magic Trackpad by pressing the on/off button until the indicator light comes on. The indicator light glows steadily for 2 to 3 seconds to indicate the batteries are good. After that, the light will blink to indicate your trackpad is in discovery mode.
 * ajouter une [[conf X11 trackpad]]
 * modifier dans le fichier /etc/bluetooth/main.conf mettre à true AutoEnable
 * si le trackpad ne fonctionne pas il faut à nouveau le jumeler en lançant `bluetoothctl`
 {{{
    remove 60:C5:47:81:AC:AD
    agent on
    default-agent
    scan on
    pair 60:C5:47:81:AC:AD
    trust 60:C5:47:81:AC:AD
    connect 60:C5:47:81:AC:AD
 }}}

Interface graphique

 * le plus simple reste de passer par une interface graphique : blueman-manager
 * Si même pb pour reconnecter essayer `sudo hciconfig hci0 reset`
 * Puis faire installation...
 * pour info la connexion se fait avec Human Interface Device

Pb reglage

J'ai eu un pb avec le pad qui ne cliquait plus : un autre pad a été activé, il suffisait de le désactiver

 * `xinput --list`
 * `xinput disable X`

Fingerprint

Voir https://wiki.archlinux.org/index.php/Fprint TODO: mettre la procédure pour enregistrer les empruntes si un jour `fprintd-enroll -f left-index-finger ` fonctionne...

Installation d'une imprimante réseau

 * installer le paquet cups
 * éditer le fichier /etc/cups/client.conf pour ajouter la ligne : `ServerName {IP du serveur d'impression ou de l'imprimante}`
 * dans .xinitrc ajouter la varibale PRINTER={nom de l'imprimante}
 * pour tester si l'imprimante est bien installé : `lpstat -p -d`
 * pour imprimer un fichier `lpr filename`

Reconnection automatique de réseau

Il faut s'assurer que le service dhcpcd est bien démarré. C'est ce service qui redémarre un connexion réseau automatiquement si cett dernière faire partie des connexions à démarrer (via netctl enable {nom interface reseau})

Connexion Freebox OpenVPN

    ==== Configuration ====
     * copier le fichier utilisateur de la freebox  `cp ~/downloads/config_openvpn_bridge_{$USER}.ovpn /etc/openvpn/freebox.conf`
     * créer le fichier reseau pour [[openvpnclient]] pour l'interface virtuel dans `/etc/netctl` voir https://wiki.archlinux.org/index.php/OpenVPN_Bridge (mais ne pas installer le fichier bridge que tap)
     * démarrer l'interface `netctl enable openvpn_tap`
    ==== Demarrage ====
     * démarrer le service `systemctl start openvpn@freebox.service`
     * puis `dhcpd tap0` pour obtenir une ip
     * si pb pour obtenir l'adresse ip, redémarrer faire un `systemctl restart dhcpcd`

Connexion VPN PPTP

    ==== Configuration ====
    * voir les fichiers dans /etc/ppp/peers
    * ajout d'une nouvelle conf en cli : `pptpsetup --create-tunel {nom_de_la_connecion} --server {IP_NAME} --login {login} --password {pass} encrypted`
    ==== Démarrage ====
    * `pon {nom_de_la_connection}`
    * `poff` pout arréter la connexion

DNS

Si systemd-resolved est utilisé et qu'on veux manuellement définir un DNS (pour ne pas utilsé celui du DHCP) faire ce qui suit :

Attention: ne pas oublier le paramètre 'Domains=~.' Voir : https://wiki.archlinux.org/index.php/Systemd-resolved

Connexion modem WWAN 3G 4G


Identification pb modem

 * Le pb identifié : https://modemmanager.org/docs/modemmanager/fcc-unlock/

Connection iPhone

    Fair le pairage permet d'utilise le modem via l'usb
    

Changer le navigateur web par défault

 * installer `mimeo`
 * mettre dans .zshrc `export BROWSER=xdg-open`
 * créer le dossier pour les application associées au mimes types `mkdir ~/.local/share/applications`
 * créer le fichier vimb.desktop
    {{{
        #!/usr/bin/env xdg-open
        [Desktop Entry]
        Version=1.0
        Terminal=false
        Type=Application
        Name=Vimb
        Exec=i3-msg -t command workspace 2:web; layout tabbed; exec /usr/bin/vimb
        NoDisplay=true
    }}}
 * mettre ce fichier dans le dossier `applications` créer précedemment
 * puis executer la commande `xdg-mime default vimb.desktop x-scheme-handler/http` pour avoir vimb par défaut
 * il est possible aussi d'éditer le fichier `~/.config/mimeapps.list` pour modifier les applications par défaut lancées par `xdg-open`
 * plus d'info : https://wiki.archlinux.org/index.php/xdg-open#Set_the_default_browser et https://wiki.archlinux.org/index.php/Default_applications#MIME_types_and_desktop_entries
 * autre solution : installer mimeo et xdg-utils-mimeo
   {{{
       mimeo --mimean-help
       mimeo --mimetype #liste des mimetype
       mimoe --app2desk #liste des application desktop
       mimeo --prefer "x-scheme-handler/http" vimb.desktop
   }}}

Gestionnaire de mot de passe

Utilisation de pass avec cryptage GPG pour la gestion des mots de passe

  • `pass -c web/skype` pour obtenir le mot de passe de skype 45sec. dans le presse papier
  • `pass web/skype | qrencode -t UTF8` pour afficher le qrcode du mot de passe

Modifier les options de démarrages d'un daemon

Régler un pb (TODO)

 * journal des événements `journalctl -xn`
 * `journalctl --user -fu kunst` suivre les logs du service utlisateur kunst
 * `journalctl -f` pour voir tous ce qui se passe
 * `journalctl -n -u bluetooth` pour voir les derniers logs concernant le bluetooth
 * `journalctl -p err -b` pour voir les erreurs du dernier boot
 * `systemctl status acpid` pour voir l'état d'un service

Example de résolution d'un pb

acpid ne semblait ne pas fonctionner :

 * il m'a fallu arrêter le service `sudo systemctl stop acpid`
 * et le faire fonctionner en mode debug -d sans socket -S et en avant plan -f et en mode daemon : `sudo acpid -ldfS` et là j'ai pu voir ce qui ne fonctionnait pas.
 * ou bien changer directement dans le fichier de service acpid (pour savoir faire un disable/enable du service)
 * pb avec acpid pour X ne peut utiliser xrandr directement car il lui manque un context (DISPLAY et XAUTHORITY) et avec le script hotplug_monitor.sh idem voir https://bbs.archlinux.org/viewtopic.php?id=186179 pour un début de solution
 * la solution est de mettre le code qui suit en début de fichier /etc/acpi/handler.sh
 {{{
        function GetXuser()
        {
          #Guess the user logged on server $1
          w|grep " $1 "|cut -d " " -f 1|head -n 1
        }
        export DISPLAY=:0.0
        export XAUTHORITY=/home/$(GetXuser $DISPLAY)/.Xauthority
 }}}

Blocage machine

Il est possible de la rebooter "proprement" avec les sysRq, des combinaisons de touches interprétées directement par le kernel qui permettent d'executer des actions de sauvetage, la séquence la plus commune étant :

alt + impr ecran + s : sync les données sur les disques alt + impr ecran + u : démonte proprement les disques alt + impr ecran + b : reboot la machine Attendre quelques secondes entre chaque combinaison pour laisser le temps de syncho/umount, et avec ca, le reboot se fera sans fsck au démarrage et plus de risque d'inodes perdus du a une activité élevée au moment du crash. Il existe plein d'autres combinaisons sysrq, wikipedia en liste une bonne partie : https://fr.wikipedia.org/wiki/Magic_SysRq_key

Boot

 * utilisation partition 200MB en FAT32 monté sur /boot
 * `mkinitcpio -p linux` pour génére l'image initrd - si pas présente
 * utilisation de gummiboot `gummiboot --path=/boot/ install`
 * créer la configarution (/boot/loader/loader.conf et /boot/loader/entries/arch.conf)
 * voir [[https://wiki.archlinux.org/index.php/gummiboot|gummiboot]]
 * sur OS X pour rendre bootable la partition : `mkdir /Volumes/EFI-arch && mount -t vfat /dev/sdb1 && sudo bless --mount=/Volumes/EFI-arch` (A vérifier)

Batterie / secteur

  • utilisation de `tlp` avec paramétrage de son fichier de conf `/etc/default/tlp`
  • pour voir si un montage est passé en ro : `findmnt`
  • pour lister les devices usb : `lsusb`
  • NOTE remplacement de la batterie le 16/02/2019
  févr. 17 23:03:38 archy.local upowerd[3135]: energy_full (54,582400) is greater than energy_full_design (53,280000)

  • NOTE remplacement de batterie le 20/11/2023:
    energy-full:         60,6556 Wh
    energy-full-design:  59,28 Wh
    energy-rate:         13,8244 W
    voltage:             7,488 V

  • NOTE remplacement batterie LENOVO energy-full 47Wh, energy-full-design: 54,15Wh

Hibernate

TODO: résussir à faire fonctionner l'hibernation Le mode hibernate ne fonctionne pas. Peut-être à cause du fait que le fichier swap est sur la mémoire usb. A propos du swap, un bon thread ici : https://www.reddit.com/r/archlinux/comments/p1tcza/how_large_should_i_make_my_swap_file_if_i_have/

Ci après l'installation pour le mode hibernate:

 * Utilisation du mode swapfile voir [[https://wiki.archlinux.org/index.php/Swap#Manually|doc]] 
 * `sudo fallocate -l 4096M /home/swapfile`
 * `sudo chmod 600 /home/swapfile`
 * `sudo mkswap /home/swapfile`
 * `sudo swapon /home/swapfile`
 * ajout de `/swapfile none swap defaults 0 0` dans `/etc/fstab`
 * ajout de [[https://wiki.archlinux.org/index.php/Power_management/Suspend_and_hibernate#Hibernation_into_swap_file|paramétrage dans le noyau]]
 * et enfin ajout de `resume` dans le hook de `/etc/mkinitcpio.conf`

Etudier le wiki : https://wiki.archlinux.org/index.php/Power_management#Sleep_hooks

Syncthing

 * pour installer le service : `sudo systemctl enable syncthing@david`
 * pour démarrer : `systemctl start syncting`
 * pour voir l'interface `http://127.0.0.1:8080`
 * via un tunnel SSH `ssh -nNT -L 9999:127.0.0.1:41989 do.tyjak.net` (port 9999 pour le web)

Systemd

 * /etc/systemd/system/docker.service.d/env.conf => ajout de variable d'environement pour le daemon docker
 * systemctl dameon-reload
 * systemclt cat docker.service
 * systemctl restart docker
 * pour les services utilisateurs qui sont dépendants de X11 (dunst ou redshift) ajouter dans .xinitrc : `systemctl --user import-environment DISPLAY` pour qu'ils puissent démarrer
 * pour voir les arcanes de systemd via le réglage de la session utilisateur : https://www.immae.eu/blog/2014/05/26/manage-your-session-with-systemd/
 * documentation : https://www.freedesktop.org/wiki/Software/systemd/
 * Une bonne documentation en français: https://lea-linux.org/documentations/Systemd
 * Tips: `systemd-analyze blame` pour voir l'ordre et le temps de démarrage
 * Un bon exemple en anglais https://www.thegeeksearch.com/how-to-control-start-stop-mask-unmask-services-using-systemd/

Clé USB Crypté

 * formatter la clé avec fdisk
 * `cryptsetup luksFormat /dev/sxx` Créer le volume crypté avec un passphrase
 * `cryptsetup open /dev/sxx nom_du_device_ouvert` Map le volume crypté sur le un volume décrypté
 * `mkfs.ext4 /dev/mapper/nom_du_device_ouvert` On format le nouveau volume
 * `mount /dev/mapper/nom_du_device_ouvert /media` On monte enfin le nouveau volume

Les étapes de montage sont :

 # `cryptsetup open /dev/sxx nom_du_device_ouvert`
 # `mount /dev/mapper/nom_du_device_ouvert /media`

Les étapes de démontages :

 # `umount /media`
 # `cryptsetup close nom_du_device_ouvert`

Plus de détail : https://wiki.archlinux.org/index.php/Dm-crypt/Encrypting_a_non-root_file_system Utilsation de udiskie pour le montage automatique Récupérer l'UUID d'une partition : `lsblk -no NAME,UUID /dev/sdc1`

Divers

 * Theme sympa : gtk-theme-arc-git
 * `screenfetch` pour avoir des infos sur la configuration
 * Termite : pour le faire reconnaitre sur des serveurs distant : https://www.reddit.com/r/unixporn/comments/4u2uvz/open_terminal_failed_missing_or_unsuitable/
 * clipmenu : dans le code supprimer `--log /dev/stderr` pour que çà fonctionne

Gdrive

 * installation : http://beaveris.me/mount-google-drive-in-archlinux-without-syncing/
 * mount : `google-drive-ocamlfuse -label Gdrive-archlinux ~/gdrive`

Son

Mise en place du son pour une sortie sur un périphérique airplay

installation

installer les packets :

 * pulseaudio-alsa
 * pulseaudio-zeroconf
 * paprefs + pavucontrol (gui control for pulseaudio)

démarrage auto : `systemctl --user enable pulseaudio.socket` dans papref onglet "Network" coher les 2 cases "Make discoverable [...]"

utilisation

lancer `pavucontrol` pour régler la sortie son.

troubleshooting

il faut que le daemon avahi-daemon soit démarré sur l'appareil qui diffuse le son pour que les périphériques puissent être découvrables si le airplay ne s'affiche pas voir http://raspberrypi.stackexchange.com/questions/5508/redirect-audio-to-another-airplay-device

commandes utiles (obsolète pour la partie raop mais à vérifier):

Pour le problème du son qui se remet à 100% voir https://bbs.archlinux.org/viewtopic.php?pid=1103037#p1103037

Pour pouvoir se connecter aux hauts-parleurs d'un autre ordi avec avahi et pulseaudio : ouvrir papref et permettre la connexion réseau anonyme dans les réglages.

Mauvase qualité sur macbook air

Sur le macbookair le son en bluetooth est de très mauvase qualité. Test avec un réglage pour forcer en AD2P SBC High dans /etc/pulse/default.pa `load-module module-bluetooth-discover a2dp_config="ldac_eqmid=hq"` mais le son n'est pas amélioré. TODO: tester avec une clé bluetooth resource : https://github.com/EHfive/pulseaudio-modules-bt

Teamviewer

Pour lancer teamviewer il faut tout d'abord lancer le daemon : `teamview --daemon start` Puis le client par la suite via dmenu

Montage de disque

Si problème pour monter un disque distant, s'assurer que rpcbind.service est démarré `sudo systemctl enable rpcbind.service` `sudo systemctl start rpcbind.service`

Montage auto grace un systemd

Mapper le user de session : Dans /etc/idmapd.conf décommenter :

et dans le ligne /etc/fstab ajouter "noexec,user" dans les options (permet de monter le volume en non root)

Pour monter un disque nfs4 automatiquement, ajouter dans fstab :

Pour monter un disque mac automatiquement :

NOTE: pour pouvoir écrire dessus il faut installer hfsprog et mettre l'option 'force' des les options de montage avec hfsplus chargé préalablement comme module avec `modprobe hfsplus`

Créer et soumettre un paquet

Musique (mpd)

Il faut installer à la main le service : créer le fichier `~/.config/systemd/user/mpd.service`

Ensuite installer de façon classique `service --user mpd enable` Utilisation de `ncmpcpp` comme client de mpd Pour les notification utiliser `mpd-notification` et demarrer le en service Pout les touches multimédias : mettres les commandes dans i3 :

ncmpcpp
  • playlist : espace pour ajouter / fn+backspace pour effacer, [v] pour inverser la selection
  • mise à jour de la base : touche "u"
  • c pour effacer le contenu de la playlist
  • s pour sauvegarder la playlist
  • z pour le shuffle et R pour le mode "consume" -> les morceaux lus sont retirés de la playlist
  • cheatsheat : https://pkgbuild.com/~jelle/ncmpcpp/
  • pour que le visualizer fonctionne il faut dans mpd ajouter cette sortie audio en plus de la sortie ALSA :
beet

Pour organiser sa librairie musicale, permet de tagger et ranger dans des dossier la musique en fonction des tags et/ou de l'empreinte musicale (si pas de tag)

  • `beet import {music folder}` -> va imorter dans l'emplacement de la libray la musique et la taguer correctement ainsi qu'importer l'image de la couv de l'album

podcast | +podcast and +todo

  • [X] pouvoir avoir un flux local sur lequle ajouté des liens (par ex. des liens youtubes) pour les écouter plus tard #88cf7fb7
  • logiciel : gpodder
  • utilisé avec mplayer en mode slave (création d'un FIFO `mkfifo /tmp/mplayer` dans .xinitrc
  • commande pour lecture/pause etc. définie dans i3
  • Synchronisation du flux avec gpodder.org

iPod

  • installer le logiciel Rhythmbox et gvfs-afc
  • il faut avoir configurer également le montage pour hfsplus en écriture (voir plus haut)
<<<<<<< HEAD
  • il est possible de synchroniser l'iPod via Rhythmbox
||||||| parent of 4d06995 (Update docs)
  • il est possible de synchroniser l'iPod via Rhythmebox

=

>>>>>>> 4d06995 (Update docs)

mpsyt

Pb d'erreur 403 et de clé API non reconnu 1. Créer une clé API 2. Mettre une fonction dans .zhrc pour effacer le cache à chaque démarrage Voir : mps-youtube/yewtube#1063 (comment)

wine

  • `wine control` pour voir les applis (pas toutes à priori)
  • `wine start /path/to/app.exe` pour lance une application installée

qemu, packer, vagrant

Installation d'une machine virtuel sous qemu via packer et vagrant.

1. intaller vagrant, vagrant-libvirt, qemu, virt-manager 1bis. For network connectivity, install: ebtables, and dnsmasq for the default NAT/DHCP networking. bridge-utils for bridged networking. openbsd-netcat for remote management over SSH. See https://wiki.archlinux.org/index.php/libvirt#Set_up_authentication 2. `vagrant plugin install vagrant-libvirt` 3. `git clone https://github.com/elasticdog/packer-arch.git` 4. `./wrapacker --provider=qemu` 5. `vagrant box add arch output/packer_arch_libvirt-2020.11.01.box` 6. modifier la conf Vagrantfile pour le réseau : ` config.vm.network "private_network", ip: "192.168.33.10", dev: "wlan0"`

Voir également pour le clé privé : https://martincarstenbach.wordpress.com/2019/12/12/tipsntricks-finding-the-injected-private-key-pair-used-in-vagrant-boxes/

Si pb de clavier alors dans pref de virt-manger autoriser edition XML et changer le clavier dans la conf XML pour "fr"

Emulation Raspberry pi avec carte SD installé

https://forums.raspberrypi.com/viewtopic.php?t=45118

Ansible | +ansible and +todo

  • [X] faire que termite soir le terminal par défaut (avec i3-sensible-terminal) #b4c1a45e
  • [X] Installer oh-my-zsh #e7483098
  • [] Régler le pb des polices de caractères #cbbc46f3
  • [] Le déploiement VPN ne fonctionne pas sur archeepe : obligé de modifier les propriétaires des fichiers copiés dans /etc/openvpn/client pour le propriétaire openvpn #7b946694

Candidats pour remplacer macbook

Tips | +tip and +todo

 * voir le process qui bouffe du disque : atop puis touche "d" colonne "wrdsk"
 * faire une screencast en gif : byzanz
 * visualisation de photos - images : `feh -. {rep photo}`
 * [ ] ameliorer la detection des ecrans http://superuser.com/questions/970024/system-doesnt-detect-hot-plugged-display-portthrough-thunderbolt-connector  #53035b75
 * avoir le model de l'ordinateur : `sudo dmidecode -s system-product-name`
 * les références du model de l'ordinateur : `sudo dmidecode | grep -A3 '^System Information'`
 * faire un ocr rapide : `tesseract -l fra Desktop/KEY.PNG -` (installer tesseract + tesseract-data-fr)
 * `xprop` pour avoir les infos d'une fenetre
 * Manipuler les images en ligne de commande
     * `file myimage.png # pour obtenir la taille`
     * `mogrify -resize 1080x620 -background white -gravity center myimage.png # mise à l'echelle`
     * `mogrify -extent 1280x720 -background white -gravity center myimage.png # changemeent taille canvas`
     * source : https://stackoverflow.com/a/60942329
 * installer un packet provenent d'un archive : repérer la version sur https://archive.archlinux.org/ puis installer avec `sudo pacman -U {URL de l'archive}` 

Troubleshooting

Pb installation i3pystatus

  • modifier la source du package vers tyjak
  • et faire `makepkg -i --skippgpcheck --noprepare --nosign`

Pb installation et clé corrompue

Solution radicale:

  • `rm -rf /etc/pacman.d/gnupg`
  • `sudo pacman-key --init`
  • `sudo pacman-key populate`

Pb pacman cassé

Contexte suite un installation de curl et un grand gap dans les maj, pacman était cassé, obligé de revenir en arrière.

  • Regarder dans les log de pacman qu'elle install à cassé pacman (ici curl)
  • réinstallé la version précédente de curl via :
    * `sudo tar -xvpf /var/cache/pacman/pkg/curl-8.0.1-1-x86_64.pkg.tar.zst -C / --exclude .INSTALL --exclude .PKGINFO`

Pb de calibrage colotrimetrique sur moniteur externe

Sur le moniteur LG IPS235 il faut parémétrer xrandr pour avoir les bonnes couleurs : xrandr --output HDMI1 --set "Broadcast RGB" "Full"

Pb dockerd ne démarre pas

L'erreur : `failed to start daemon: error initializing graphdriver: [graphdriver] ERROR: the overlay storage-driver has been deprecated and removed`

Solution : changer l'option storage du daemon en surcharger la configuration systemctl de démarrage du daemon

Pour surcharcher la conf : 1. On édite : `sudo systemctl edit docker` Ajouter les lignes suivantes :

 {{{
 [Service] #indiquer la section à réécrire
 ExecStart= # réinitialiser la variable pour la réécrire complétement ou bien ajouter juste l'option supplémentaire 
 ExecStart=/usr/bin/dockerd -s overlay2 -H fd:// --containerd=/run/containerd/containerd.sock
 }}}

2. On recharce la conf : `sudo systemctl daemon-reload`

Pb disque TOSHIBA

Installation d'un pkg aur modifié

  • J'ai fait une PR pour i3pytstatus qui traine à être vélidée
  • Quand je fais la maj bien sure çà mete
  • Pour régler le pb
    1. on met à jours la version qui pête (donc dernière version)
    2. on modifie le PKGBUILD pour ajouter le patch qui n'a pas été validé (voir diff)
    3. `makepkg -f` pour forcer le rebuild
    4. `makepkg -i` pour installer la versio npatché

  • Le patch est ici ~/src/patch/i3pystatus.patch

Finger print

  * Il semble que le modéle de lecteur d'empreinte ne soit pas reconnu
  * obligé d'installer/compiler validity-sensors-tools

paquets

  * si erreur `erreur : erreur GPGME : Pas de données` alors faire un `sudo rm /var/lib/pacman/sync/*` puis relancer `yay -Syyu`

dmesg

Message d'erreur dans dmesg : `Support for cores revisions 0x17 and 0x18 disabled by module param allhwsupport=0. Try b43.allhwsupport=1` pour le régler tenter : `Uncommented '#RuntimeWatchdogSec=0' in /etc/systemd/system.conf ` voir : https://bbs.archlinux.org/viewtopic.php?id=170588

  • fstab corrompu ou avec la mauvaise entrée:
    ajouté aprés rw dans les argument passé au noyau au moment du démarrage : "init=/bin/bash" pour pouvoir éditer le fichier fstab et le corriger (dans grub au momen du démarrage appuyer sur e pour editer la configuration)

screen saver

L'écran ne s'éteint plus automatiquement. `xset -q` et regarder les valeur pour Screen Saver:

faire un `xset s` pour reset avec les valeurs par défaut :