Installation chroot 32 bits transparent

Oui: au lieu de checkinstall make install, tu fais checkinstall scons install, et ça va te fabriquer un paquet.

Ca m’a bien fabrique un paquet mais qui n’a pas voulu s’installer.
J’ai donc recompile, ca fonctionne, voila ce que ca donne :

[quote]youki@geezer:~$ ardourvst
Ardour/GTK2.5
(construit avec 3525 et GCC version 4.3.1)
Copyright © 1999-2008 Paul Davis
Pour certaines parties, Copyright © Steve Harris, Ari Johnson, Brett Viren, Joel Baker

Ardour est distribué sans AUCUNE GARANTIE
pas même de COMMERCIALISATION
ou d’ADÉQUATION À UN BUT PARTICULIER.
Ceci est un logiciel libre, et vous êtes encouragé à le distribuer
sous certaines conditions ; voir le fichier source pour les conditions de distribution.
Chargement du fichier de style par défaut (/usr/local/etc/ardour2/ardour2_ui_default.conf) pour l’interface graphique
chargement du fichier utilisateur (/home/youki/.ardour2/ardour2_ui.conf) pour la configuration de l’interface graphique
Loading ui configuration file /usr/local/etc/ardour2/ardour2_ui_dark.rc
theme_init() called from internal clearlooks engine
ardour: [INFO]: Ardour will be limited to 1024 open files
loading system configuration file /usr/local/etc/ardour2/ardour_system.rc
loading user configuration file /home/youki/.ardour2/ardour.rc
ardour: [INFO]: Using SSE optimized routines
ardour: [ERROR]: LADSPA: cannot load module “/usr/lib/ladspa/dahdsr_hexp.so” (/usr/lib/ladspa/dahdsr_hexp.so: undefined symbol: log)
ardour: [ERROR]: LADSPA: cannot load module “/usr/lib/ladspa/adenv_lvl.so” (/usr/lib/ladspa/adenv_lvl.so: undefined symbol: log)
ardour: [ERROR]: LADSPA: cannot load module “/usr/lib/ladspa/hz_voct_4200.so” (/usr/lib/ladspa/hz_voct_4200.so: undefined symbol: logf)
ardour: [ERROR]: LADSPA: cannot load module “/usr/lib/ladspa/power_4400.so” (/usr/lib/ladspa/power_4400.so: undefined symbol: powf)
ardour: [ERROR]: LADSPA: cannot load module “/usr/lib/ladspa/dahdsr_fexp.so” (/usr/lib/ladspa/dahdsr_fexp.so: undefined symbol: log)
ardour: [ERROR]: LADSPA: cannot load module “/usr/lib/ladspa/adenv.so” (/usr/lib/ladspa/adenv.so: undefined symbol: log)
ardour: [INFO]: detecting VST plugins along /usr/local/lib/vst:/usr/lib/vst
ardour: [INFO]: looking for control protocols in /home/youki/.ardour2/surfaces/:/usr/local/lib/ardour2/surfaces/
ardour: [INFO]: Control surface protocol discovered: "Generic MIDI"
powermate: Opening of powermate failed - Aucun fichier ou répertoire de ce type
ardour: [INFO]: Control protocol powermate not usable
ardour: [INFO]: Control surface protocol discovered: "Mackie"
Gtk-Message: (for origin information, set GTK_DEBUG): failed to retrieve property GtkWidget::cursor-color' of typeGdkColor’ from rc file value “((GString*) 0x7c240b60)” of type `GString’
loading bindings from /usr/local/etc/ardour2/mnemonic-us.bindings
Loading session /home/kaosyouki/MAO/SMeuRT/Ardour/Salons using snapshot Salons (1)
Loading history from ‘/home/kaosyouki/MAO/SMeuRT/Ardour/Salons/Salons.history’.
[/quote]

Ce qui me fait penser que maintenant que j’ai recompile sur un systeme 32bits, je vais peut etre reessayer de l’installer dans le chroot.

Par exemple.

Sinon, le checkinstall, il faut le faire en root ou avec sudo ou fakeroot, et il y a des erreurs non bloquantes aussi.
Tu as des détails du plantage.
Si ce sont des pb de dépendances (mais ça ne serait pas trés logique) tu peux les installer avec gdebi.

[quote=“mattotop”]Par exemple.

Sinon, le checkinstall, il faut le faire en root ou avec sudo ou fakeroot, et il y a des erreurs non bloquantes aussi.
Tu as des détails du plantage.
Si ce sont des pb de dépendances (mais ça ne serait pas trés logique) tu peux les installer avec gdebi.[/quote]
Pas de messages d’erreur, sauf que quand je tapais $ ardourvst ben y’avait rien du tout qui se lancait.
Par contre un aptitude safe-upgrade m’a propose de l’upgrader vers la version des depots. Du coup, j’ai opte pour la compilation parce que une fois lance je peux faire autre chose de toutes facons, comme promener le chien par exemple.

Mouais… j’ai essaye d’installer ardourvst compile sur le systeme 32bits dans le chroot. Exactement le meme resultat.
Je tenterai cette nuit d’en faire un paquet .deb avec checkinstall et de l’installer avec dpkg et/ou gdebi dans le chroot. Si ca ne marche pas non plus, j’appliquerai la solution du dual boot lorsque je devrai faire mon mixage et puis tant pis.

J’vais me tester ça, ça semble un très bon tuto! Merci :smt003

Bon ben j’abandonne. Soit je ferai un dual boot, soit je me contenterai des LADSPA et puis c’est tout.
Peut etre que le chroot me servira pour quelque chose d’autres. Au moins maintenant je sais comment en faire un.

Surtout, tu va peut être vite mieux connaitre le fonctionnement d’ardour avec jack, et tu y trouvera peut être les éléments pour faire marcher tout ça.
Dommage, sur le papier, ça doit pouvoir marcher.
Un truc que tu peux tester à peu de frais: une fois que tu auras une install en double boot qui marche en 32, installes un noyau 64 sur ta 32, et rebootes dessus. C’est dispo en 32 pour faire des tests (pas en usage normal), et si ça ne fonctionne pas avec ta distrib tout en 32 tournant sur noyau 64, alors tu saura que c’est impossible dans un chroot.

[quote=“mattotop”]Surtout, tu va peut être vite mieux connaitre le fonctionnement d’ardour avec jack, et tu y trouvera peut être les éléments pour faire marcher tout ça.
Dommage, sur le papier, ça doit pouvoir marcher.
Un truc que tu peux tester à peu de frais: une fois que tu auras une install en double boot qui marche en 32, installes un noyau 64 sur ta 32, et rebootes dessus. C’est dispo en 32 pour faire des tests (pas en usage normal), et si ça ne fonctionne pas avec ta distrib tout en 32 tournant sur noyau 64, alors tu saura que c’est impossible dans un chroot.[/quote]
Ben c’est vite fait de tester puisque j’ai installe hier une Debian 32bits et compile un noyau RT pour faire mon test d’ardourvst. (Je change souvent d’OS sur mon dual boot juste pour le plaisir d’installer).
Et comme j’ai les paquets .deb du noyau RT amd64 que j’utilise sur mon OS principal (ma Debian Lenny/Sid donc). Mais ca donne ca :

[quote]# dpkg -i linux-headers-2.6.24.7-rt13-amd64_mz1_amd64.deb linux-image-2.6.24.7-rt13-amd64_mz1_amd64.deb
dpkg : erreur de traitement de linux-headers-2.6.24.7-rt13-amd64_mz1_amd64.deb (–install) :
l’architecture du paquet (amd64) ne correspond pas à celle du système (i386)
dpkg : erreur de traitement de linux-image-2.6.24.7-rt13-amd64_mz1_amd64.deb (–install) :
l’architecture du paquet (amd64) ne correspond pas à celle du système (i386)
Des erreurs ont été rencontrées pendant l’exécution :
linux-headers-2.6.24.7-rt13-amd64_mz1_amd64.deb
linux-image-2.6.24.7-rt13-amd64_mz1_amd64.deb
[/quote]

Oui. C’est normal, les paquets d’une architecture ne s’installent pas sur une autre, sauf si on dit à dpkg de forcer l’installation (–force-arch, je crois).
Mais c’est pour ça que je t’ai dit de prendre celui disponible en standard dans apt. Tu n’as pas besoin qu’il soit RT, puisque de toutes les manières, c’est juste pour tester (on ne peux pas utiliser un noyau 64 avec une distrib 32, il y a trop de trucs qui ne marchent pas même si ça boote).
Donc le plus simple:

[quote=“mattotop”]Oui. C’est normal, les paquets d’une architecture ne s’installent pas sur une autre, sauf si on dit à dpkg de forcer l’installation (–force-arch, je crois).
Mais c’est pour ça que je t’ai dit de prendre celui disponible en standard dans apt. Tu n’as pas besoin qu’il soit RT, puisque de toutes les manières, c’est juste pour tester (on ne peux pas utiliser un noyau 64 avec une distrib 32, il y a trop de trucs qui ne marchent pas même si ça boote).
Donc le plus simple:

Au temps pour moi. Bon ben oui ca se lance, j’ai lance jackd sans le support temps reel et ardourvst demarre :

[quote]$ ardourvst
Ardour/GTK2.5
(construit avec 3525 et GCC version 4.3.1)
Copyright © 1999-2008 Paul Davis
Pour certaines parties, Copyright © Steve Harris, Ari Johnson, Brett Viren, Joel Baker

Ardour est distribué sans AUCUNE GARANTIE
pas même de COMMERCIALISATION
ou d’ADÉQUATION À UN BUT PARTICULIER.
Ceci est un logiciel libre, et vous êtes encouragé à le distribuer
sous certaines conditions ; voir le fichier source pour les conditions de distribution.
Chargement du fichier de style par défaut (/usr/local/etc/ardour2/ardour2_ui_default.conf) pour l’interface graphique
chargement du fichier utilisateur (/home/youki/.ardour2/ardour2_ui.conf) pour la configuration de l’interface graphique
Loading ui configuration file /usr/local/etc/ardour2/ardour2_ui_dark.rc
theme_init() called from internal clearlooks engine
ardour: [INFO]: Ardour will be limited to 1024 open files
loading system configuration file /usr/local/etc/ardour2/ardour_system.rc
loading user configuration file /home/youki/.ardour2/ardour.rc
ardour: [INFO]: Using SSE optimized routines
ardour: [ERROR]: LADSPA: cannot load module “/usr/lib/ladspa/dahdsr_hexp.so” (/usr/lib/ladspa/dahdsr_hexp.so: undefined symbol: log)
ardour: [ERROR]: LADSPA: cannot load module “/usr/lib/ladspa/adenv_lvl.so” (/usr/lib/ladspa/adenv_lvl.so: undefined symbol: log)
ardour: [ERROR]: LADSPA: cannot load module “/usr/lib/ladspa/hz_voct_4200.so” (/usr/lib/ladspa/hz_voct_4200.so: undefined symbol: logf)
ardour: [ERROR]: LADSPA: cannot load module “/usr/lib/ladspa/power_4400.so” (/usr/lib/ladspa/power_4400.so: undefined symbol: powf)
ardour: [ERROR]: LADSPA: cannot load module “/usr/lib/ladspa/dahdsr_fexp.so” (/usr/lib/ladspa/dahdsr_fexp.so: undefined symbol: log)
ardour: [ERROR]: LADSPA: cannot load module “/usr/lib/ladspa/adenv.so” (/usr/lib/ladspa/adenv.so: undefined symbol: log)
ardour: [INFO]: detecting VST plugins along /usr/local/lib/vst:/usr/lib/vst
ardour: [INFO]: looking for control protocols in /home/youki/.ardour2/surfaces/:/usr/local/lib/ardour2/surfaces/
ardour: [INFO]: Control surface protocol discovered: "Generic MIDI"
powermate: Opening of powermate failed - Aucun fichier ou répertoire de ce type
ardour: [INFO]: Control protocol powermate not usable
ardour: [INFO]: Control surface protocol discovered: "Mackie"
Gtk-Message: (for origin information, set GTK_DEBUG): failed to retrieve property GtkWidget::cursor-color' of typeGdkColor’ from rc file value “((GString*) 0x7c287560)” of type `GString’
loading bindings from /usr/local/etc/ardour2/mnemonic-us.bindings
Loading session /home/kaosyouki/MAO/SMeuRT/Ardour/Salons using snapshot Salons (1)
Loading history from ‘/home/kaosyouki/MAO/SMeuRT/Ardour/Salons/Salons.history’.[/quote]
Donc ca doit etre possible de le lancer dans le chroot, reste que je vois toujours pas comment.

Hmm… Très intéressant.

Ça marcherait avec un driver wifi ? Je m’explique.

Pour installer une carte wifi, j’ai besoin de recompiler mon noyau avec un module. Comme je n’ai pas envie de refaire ça a chaque mise à jour du noyau, ni d’utiliser DKMS, je peux faire un environnement chrooté avec un noyau que je recompile avec le module ? Comme ça le noyau du chroot ne change pas, le wifi fonctionne tout le temps et je peux mettre à jour le noyau de mon système… ?

Non, le chroot n’a pas de noyau d’ailleurs debootstrap n’installe pas de noyau. Le chroot est juste un environnement 32 bits complet qui tourne parfaitement sur un noyau 64 bits.

Bon, une petite question concernant cette méthode de construction d’un environnement chrooté. J’ai donc un eepc avec peu d’espace disque, c’est suffisant pour l’usage auquel je l’ai dédié jusqu’ici MAIS j’aimerais pouvoir faire fonctionner ponctuellement quelques programmes (jeux/éducatifs pour enfant) en utilisant un support externe, l’espace disque de la machine étant limité (reste environ 1.1go).

  • Construire un environnement chrooté sur un support externe en fat pose-t-il des problèmes? Ou vaut-il mieux formater le support en ext3

  • Si je fais donc mon environnement sur une clef usb montée sur /desjeux et que je m’inspire de la procédure, ça devrait pas poser de soucis?

Merci!

À priori il n’y a pas de soucis, sauf pour le système de fichier, il faut un système supportant un système linux avec des liens donc plutôt ext2 (ne met pas de journaux sur une clef USB). Par contre tu peux essayer un environnement minimal en te contentant de ne mettre que le strict nécessaire: les librairies, les quelques commandes utilisées, mais pas tous le système chroot. C’est assez long à faire et n’a guère d’intérêt quand tu as 100G de disque dur mais si tu es limité, ça peut être une solution. Si il n’y a pas de lien et que le programme le permet, tu pourrais même envisager un chroot.

Merci.
Je compte faire ça avec 8 go sur clef donc je devrais avoir de la place, je ne vais me prendre la tête et balancer debootstrap dedans plutôt que mettre le strict minimum.

ça y est, ça marche bien, pas de soucis pour l’instant. Merci à Matt et Fran pour les astuces! Vraiment pratique avec un eepc ayant un disque de 4G!

quote="fran.b"
Le chroot est juste un environnement 32 bits complet qui tourne parfaitement sur un noyau 64 bits.[/quote] Pas tout à fait. Les mêmes trucs qui ne marchent pas quand tu installes un noyau 64 sur une distrib 32 ne marchent pas plus en chroot. Les outils iptables, par exemple.

Petite question, puis-je envisager de monter la racine d’un aure système sur ma machine avec sshfs et faire mumuse dessus avec dchroot comme expliqué dans ce fil? J’ai édité le dchroot.conf en conséquence…

bob@eeepc ~/ sshfs bob@grospc:/ /home/bob/grospc bob@eeepc ~/ dchroot -c grospc -d E : Échec lors du changement de répertoire vers « /home/bob/grospc »: Permission non accordée

Ça semble bloquer qque part.

Pas de raison à priori que ça ne fonctionne pas, même si ça risque de pas être trés performant au lancement des applis.

tu as quelles options sur ton sshfs, tu ne serais pas en noexec - ou en ro peut être - (à voir en tapant mount)?
autre truc, est ce que les sous répertoires que tu réaccroches dans le chroot se montent bien ?
et dernière question: les uids sont cohérents entre les deux machines ?

sinon, le premier test c’est de faire un bête chroot pour voir si ça passe.