Multi arch et nvidia pour sid/amd64

Bonsoir,

Si vous avez franchi le cap du multi arch sur votre debian sid en
amd64 et que vous utilisez les drivers nvidia proprio, ce qui suit
peut vous intéresser.

ça fait 2 semaines que je galère avec certains softs (wine, playonlinux,
google-earth, teamviwer7) sur cette conf.

En effet, il est pas possible actuellement d’installer le paquet
libxvmc1:i386 et cela bloque l’installation du paquet nécessaire à
toutes ces appli. qui utilisent le libGL.so.1 32bits nvidia proprio
contenu dans le paquet libgl1-nvidia-glx:i386

La solution :

  1. Installer les paquets deux paquets libxvmc1 en ralfj.de/upload/debian/
  2. Du coup on peut maintenant installer libgl1-nvidia-glx:i386
  3. wine et playonlinux : ils ne posent plus de problèmes.
  4. Installer Google earth. Des problèmes de dépendances se posent (conf inachevée).
    Si on prend le paquet priprio google-earth-stable_current_amd64.deb chez google,
    et qu’on l’installe, on constate des problèmes de dépendances (avec lsb-core et ia32-libs)
    Aussi j’utilise 2 scripts qui permettent de modifier un paquet binaire.
    Ces scripts proviennent de grapsus.net/blog/post/Modifier-u … rapidement
    Je les ai un peu modifié pour qu’ils prennent en compte le format .lzma
    deb-dirty-extract.sh :
#!/bin/bash
 
if [ ! -f "$1" ] ; then
  echo "No such file"
fi
   
DIR=${1%%.deb}
mkdir "$DIR" && cd "$DIR"
ar x "../$1"
if [ -f ./data.tar.gz ]; then
 mkdir data && cd data && tar -zxf ../data.tar.gz && cd ..
elif [ -f ./data.tar.lzma ]; then
 mkdir data && cd data && tar --lzma -xf ../data.tar.lzma && cd ..
fi
mkdir control && cd control && tar -zxf ../control.tar.gz

et deb-dirty-rebuild.sh

[code]#!/bin/bash

if [ ! -f ‘debian-binary’ -o ! -d ‘control’ -o ! -d ‘data’ ] ; then
echo "No extracted deb file here"
exit 1
fi

if [ -z “$1” -o ! -f “$1” ] ; then
PKG="…/"$(basename $PWD)"-custom.deb"
else
PKG="$1"
fi
echo “Writing new package to $PKG…”

rm -f “$PKG”

PKGDATA="data.tar.gz"
if [ -f data.tar.gz ]; then
rm -f data.tar.gz && cd data && tar -zcf …/data.tar.gz ./ && cd …
elif [ -f data.tar.lzma ]; then
rm -f data.tar.lzma && cd data && tar -c ./ | lzma > …/data.tar.lzma && cd …
PKGDATA="data.tar.lzma"
fi
rm -f control.tar.gz && cd control && tar -zcf …/control.tar.gz ./ && cd …
ar rc “$PKG” debian-binary control.tar.gz $PKGDATA
[/code]

Il faut rendre ces scripts exécutables et les mettre quelque part dans un chemin
accessible au PATH.

Puis :

  • extraire le paquet avec deb-dirty-extract.sh google-earth-stable_current_amd64.deb
  • cd google-earth-stable_current_amd64/
  • Supprimer la ligne "Depends: " du fichier control/control
  • rebuild le paquet binaire avec deb-dirty-rebuil.sh
  • sudo dpkg -i …/google-earth*amd64-custom.deb
  • enjoy :wink:
  1. Installer teamviewer 7
    Même manip que pour google-earth, mais cette fois-ci il suffit de supprimer
    le dernier paquet de la ligne "Depends: " qui est “, ia32-libs”

mon hero :041

Je sais pas vous, mais quand j’ai voulu refaire la manip. pour un
autre PC en wheezy, j’ai pas pu: les fichiers du 1. ne sont plus dispo !

Visiblement, on a pas encore de correction du problème dans wheezy
(sans doute une allergie des debianeux aux drivers proprio …
je ne leur en veux pas).

Donc voici la méthode que j’ai utilisée pour franchir cette étape des
points 1 et 2 (= installer libgl1-nvidia-glx:i386)

a) j’ai ajouté une ligne pour le dépôt sid dans /etc/apt/sources.list :

b) j’ai ajouté une section dans /etc/apt/preferences pour empêcher
qu’un paquet sid vienne à s’installer par inadvertance :

$ cat /etc/apt/preferences Package: * Pin: release a=unstable Pin-Priority: 101
c) L’idée c’est maintenant d’upgrader tout ce qui est paquet nvidia avec ce
qui vient de sid puis d’installer le fameux paquet libgl1-nvidia-glx:i386
Un truc comme ça devrait faire l’affaire (de mémoire) :

aptitude update aptitude -t unstable install nvidia~i libgl1-nvidia-glx:i386

Attention n’acceptez pas une solution qui vous vire des paquets !
Normalement cela vous amène à mettre à jour votre version des
drivers nvidia, vous aurez un petit message d’alerte comme quoi
le module nvidia utilisé correspond plus au module installé.
Bref, le mieux est de rebooter lorsque vous voyez que tout s’est
bien passé. (on évite de rebooter lorsqu’on vient de faire une
bêtise comme virer les drivers, le noyau, grub ou autre)

Pour info, avec les mises à jour récentes de wheezy plus
besoin de toute la gymnastique décrite dans mon message
précédent .
L’installation du paquet libgl1-nvidia-glx:i386 ne pose
plus de problème. On fera donc simplement :

aptitude install libgl1-nvidia-glx:i386
Donc par rapport au 1er message de ce fil, le point 1
de la solution n’est plus nécessaire.

Notez également que le paquet ia32-libs s’installe maintenant
sans difficultés. Ce qui fait que les problèmes de
dépendances des paquets proprio cités est levée…

Pour ma part, je n’arrive pas à installer le paquet ia32-libs-gtk
du coup la méthode proposée peut encore présenter un intérêt
dans certains cas.