systemx

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

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)"

jeudi, janvier 12 2012

Installation de l'overlay pentoo via SVN via un proxy

pentoo est un overlay qui fournit des applications orientées sécurité.
Un overlay gentoo est une branche de sources séparée de la branche principale de l'arbre de developpment portage.
C'est le premier overlay que j'installais sous gentoo.
Tout d'abord je vérifie que l'overlay est bien disponible pour gentoo :
gentoox64 ~ # layman -L | grep pentoo
...
* oss-overlay               [Mercurial ] (http://hg.atheme.org/users/majeru/...)
* powerman                  [Mercurial ] (https://powerman-overlay.googlecod...)
* pentoo                    [Subversion] (https://www.pentoo.ch/svn/portage/...)
* rafaelmartins             [Mercurial ] (http://hg.rafaelmartins.eng.br/gen...)
* rion                      [Mercurial ] (http://rion-overlay.googlecode.com...)
....
On voit que l'overlay est présent et utilise Subversion (gestionnaire de sources).
Il faut donc ajouter subversion (emerge -qav dev-vcs/subversion).

Ensuite il faut faire un layman -a pentoo pour ajouter l'overlay pentoo mais ca plante :
gentoox64 ~ # layman -a pentoo
* Running... # /usr/bin/svn co https://www.pentoo.ch/svn/portage/trunk//@ /var/lib/layman/pentoo
Et la ca bloque, un tcpdump montre que on attaque en direct (vers 178-32-123-210.ovh.net.https).
Je suis derrière un proxy d'entreprise et j'ai bien mes http_proxy/https_proxy.
Après quelques recherches il semble que svn ne supporte pas ces variables (layman oui).
On peut vérifier en faisant une requete au repository :
svn co https://www.pentoo.ch/svn/portage/trunk/
Il faut éditer ~/.subversion/servers pour ajouter sous la rubrique [global] :
[global]
http-proxy-host = monproxy.com
http-proxy-port = 80
http-proxy-username = monlogin
http-proxy-password = monpasswd
http-timeout = 60
http-auth-types = basic;digest;negotiate
store-plaintext-passwords = no
A partir de ce moment on peut synchroniser :
layman -a pentoo
Cependant la commande emerge ne voit pas les packages de pentoo ...
J'avais oublié de mettre à jour le make.conf après l'install de layman.
echo "source /var/lib/layman/make.conf" >> /etc/make.conf
Et maintenant tout fonctionne bien mais le problème (et de taille) est de laisser un mot de passe en clair dans un fichier systeme.


Lien vers le site Pentoo.

samedi, janvier 7 2012

Archlinux 2 - Le retour et install en chroot

Mon OS de base est Sabayon duquel je suis assez satisfait.
Tout y est si bien intégré que l'on fait pas beaucoup de système par contre il y a quand même beaucoup de choses installées (OS installé en 2010 à partir de le 5.4 kde), ca manque de frugalité.
Un autre point un peu ennuyeux de Sabayon est que la communauté est pas très grande, ca donne un coté intimiste mais il y a quand même peu d'activité sur le forum (il y a aussi peu de problèmes donc !), ca manque un peu de vie.
Je suis donc toujours à la recherche d'une distro simple et légère, j'ai préféré testé une gentoo, la mère de sabayon qui m'a permis d'apprendre pas mal de choses dont l'install en chroot.
Cette méthode consiste en gros à monter une partition dans un répertoire et de définir ce répertoire comme étant le "root" du shell.
Ce qui est intéressant c'est que avec un minimum de config on peut installer, updater et administrer la distrib gentoo à partir d'un autre OS, pas besoin de cd, clé usb ou même de reboot (hormis pour utiliser cette nouvelle installation).
Sans rentrer dans le détails gentoo c'est encore plus souple que sabayon car du à la compilation on a vraiment énormément de prise sur le système (les USE flag) et sur les versions des logiciels à installer.
C'est très bien fait, propre, clair avec une excellente doc mais mais ca prends du temps à compiler !
Voulant tester Arch linux depuis un moment j'ai utilisé une méthode d'installation en chroot sur mon portable.
La méthode générale est dans ce wiki, J'avais un peu galéré avec l'install via le cd mais la ca marche tout seul.
Il faut suivre toute la partie 3 qui permet en fin de tuto de booter sur un archlinux qui est vraiment minimal, pour rendre un système quasi opérationnel (avec wifi, X, openbox), voici les étapes supplémentaires (après le mkinitcpio).
  1. pacman -S grub2-bios
  2. Installation de grub2 pour avoir quelques outils pratiques type grub-mkconfig(remplace grub)
  3. pacman -S openbox obmenu obconf tint2
  4. Installation de openbox et des outils de configuration (à noter que openbox ne depends pas de ses outils de conf)
  5. pacman -S xorg-server
  6. Installation du server X
  7. pacman -S xf86-video-intel
  8. Après vérification du package par :

    pacman -Sg xorg-drivers | grep intel

  9. pacman -S sudo wicd
  10. wicd pour configurer simplement le wifi en nomade et sudo car su semble trop sécurisé.
  11. edit /etc/rc.conf
  12. Pour ajouter le démarrage de dbus et wicd :
    DAEMONS=(syslog-ng network crond dbus wicd)
  13. Configurer les locales
  14. edit /etc/locale.gen et choisir les locales dédirées.
    locale-gen
    locale -a
    Il faut aussi changer LOCALE,KEYMAP,TIMEZONE dans le rc.conf
  15. Configurer grub
  16. Dernière étape, j'utilise un grub multiboot sur mon portable, configurer le grub.cfg de sabayon pour ajouter une entrée arch.
    grub-mkconfig -o /tmp/grub.test
    Recopier la partir arch sur le /boot/grub/grub.cfg de l'OS hote.
    
    Sortir du chroot, umount dev/sys/proc, sync et reboot.
A cette étape on a un OS fonctionnel sous Arch/X/Openbox. On peut se connecter au wifi via wicd-curses si jamais on a des problèmes avec X11 pour installer les packages nécessaires (démarrage de X par xinit /usr/bin/openbox-session car pas de gestionnaire de connection). Il ne reste plus qu'à ajouter les packages pour agrémenter tout ca (firefox, vlc ...).
La prochaine étape sera de configurer un KDE si possible light, installer tous les logiciels que j'utilise sous sabayon et de faire un bout de route sous Arch pour comparer.