systemx

Aller au contenu | Aller au menu | Aller à la recherche

samedi, mai 13 2017

Arch linux - update plantée (bis)

Une nouvelle fois Arch est plantée. Ca commence a devenir une habitude. Certe Arch est rapide, rolling release mais bon si c'est pour planter aussi souvent ,,, Décidement rien ne vaut Sabayon qui marche comme une horloge en rolling ! Probleme de ce jour apres bumblebee c'est ssdm avec un message de ce type :
error while loading shared libraries: libcrypto.so.1.0.0: cannot open shared object file: No such file or directory
D'autant plus ennuyeux que ca plante sur sddm/X donc pas de graphique ni de reseau ... Ca saoule un peu de regler ca ,,, du temps bien inutile ... Ca va pas manque de rejouir les cowboys qui pourront ggogler 10 mn et se sentir super fort !

vendredi, janvier 6 2017

Arch linux - update plantée

Arch pacman : error: failed to commit transaction (conflicting files) python2-setuptools: /usr/lib/python2.7/site-packages/pkg_resources/extern/__init__.pyc exists in filesystem

Lire la suite...

jeudi, juin 13 2013

Mise à jour Arch - Intervention manuelle


J'utilise différentes distros pour comparer et voir comment elles se comportent sur le long terme.
Je vais noter les différents problèmes de mise à jour que j'ai pu avoir ...
Je suis Sabayon/Arch/Ubuntu/Rosa et Megiea/Korora et cherche une debian compatible sympa mais toujours pas trouvé.

Sur Arch suite aux changements d'architecture de certains repertoires, il faut opérer une opération manuelle pour que la mise à jour puisse être faite.
C'est correctement documenté dans la page de news arch.
C'est un peu court en explication sur les commandes :
  • pacman -Qqo/Qm
  • Q = query
    q = silentieux
    o = Appartient (own)
    m = Package "etranger" (qui n est pas dans la base des packages), installé via les AUR par exemple
Pour moi ca c'est passé sans complication mais pour les amateurs de AUR et autres packages non classique ça peut être casse gueule.
Du arch quoi !
  • Difficulté = 3
  • Criticité = 6
  • Explication = 9

lundi, juin 11 2012

Mise en veille/hibernation qui fonctionne sur ASUS

Un bon mémo pour configurer linux sur un portable ASUS pour se mettre en veille.
Ca fonctionne sous sabayon/gentoo et arch, probablement chez ubuntu/debian aussi. Tout d'abord ce qui bloque c'est l'extinction de certaines device, pour corriger le probleme, il font donc avant le suspend/hibernate dévalider les devices qui utilisent "ehci_hcd" et décharger le module xchi du noyau.
Le script va donc chercher les devices dans /sys/bus/pci/drivers/ehci_hcd/ (c'est en rapport avec l'USB) et utiliser les fichier bind et unbind pour les desactiver/activer.
Pratique le sysfs.
On le met dans /etc/pm/sleep.d et lien dans /etc/pm/power.d (lien, avec un nom type 20-stopdevices).
Le " egrep "^$HEX+:$HEX+:$HEX"`" récupère les ID des devices chargées dans le kernel (à la place de modules que l'on pourrait adresser avec modload ...) qui se trouvent dans /sys/bus/pci/drivers/ehci_hcd/ avec les fichiers bind/unbind pour effectuer les opérations.
En pratique on utilise ce script (recupéré ).
#!/bin/bash

DEV_LIST=/tmp/usb-dev-list
DRIVERS_DIR=/sys/bus/pci/drivers
DRIVERS="ehci xhci" # ehci_hcd, xhci_hcd
HEX="[[:xdigit:]]"
MAX_BIND_ATTEMPTS=2
BIND_WAIT=0.1

unbindDev() {
        echo -n > $DEV_LIST 2>/dev/null
      for driver in $DRIVERS; do
        DDIR=$DRIVERS_DIR/${driver}_hcd
        for dev in `ls $DDIR 2>/dev/null | egrep "^$HEX+:$HEX+:$HEX"`; do
          echo -n "$dev" > $DDIR/unbind
          echo "$driver $dev" >> $DEV_LIST
        done
      done
}

bindDev() {
      if [ -s $DEV_LIST ]; then
        while read driver dev; do
          DDIR=$DRIVERS_DIR/${driver}_hcd
          while [ $((MAX_BIND_ATTEMPTS)) -gt 0 ]; do
              echo -n "$dev" > $DDIR/bind
              if [ ! -L "$DDIR/$dev" ]; then
                sleep $BIND_WAIT
              else
                break
              fi
              MAX_BIND_ATTEMPTS=$((MAX_BIND_ATTEMPTS-1))
          done
        done < $DEV_LIST
      fi
      rm $DEV_LIST 2>/dev/null
}

    case "$1" in
      hibernate|suspend) unbindDev;;
      resume|thaw)       bindDev;;
esac
Pour le hibernate, il faut ajouter au kernel le nom du device de swap avec le paramètre resume. On peut ajouter dans /etc/default/grub, les options en automatique (généré avec grub-mkconfig) :
GRUB_CMDLINE_LINUX_DEFAULT="quiet add_efi_memmap resume=$(swapon -s | grep '/dev/sd.[0-9]' -o)"