Certains logiciels dysfonctionnent en changeant de noyau

Bonjour à tous!
Je suis encore assez nouveau sous Linux, donc peut-être que ce problème vous paraîtra simple…

Je suis sous Debian sid amd64 noyau 3.2 et j’ai installé le noyau 3.8-trunk-amd64 depuis le dépôt expérimental. Je remarque d’ailleurs que le système tourne mieux et ma machine démarre plus vite.

Premier problème, mon Virtualbox ne fonctionne plus, j’ai un [fail] au démarrage et une erreur me dit que le pilote vboxdrv n’est pas chargé. À la limite, ce n’est pas grave car je n’ai pas spécialement besoin d’utiliser de machine virtuelle ces temps et de plus je m’en sors avec qemu.

Autre problème plus urgent, c’est la raison pour laquelle je vous pose la question, un logiciel que j’ai installé qui fonctionnait sous le noyau 3.2 ne fonctionne plus et me renvoie juste une erreur de segmentation (Segmentation Fault)…

Je suppose qu’à l’installation du noyau, je n’ai pas pensé à télécharger quelques composants qui viennent avec, mais je ne suis pas familier de ce genre de manipulation.

J’ai installé les paquets:
linux-headers-3.8-trunk-all
linux-headers-3.8-trunk-all-amd64
linux-headers-3.8-trunk-amd64
linux-headers-3.8-trunk-common
linux-image-3.8-trunk-amd64

Merci pour votre aide

Bonjour,

[quote=“Lyuyhn”]Je suis encore assez nouveau sous Linux […]
Je suis sous Debian sid amd64 noyau 3.2 et j’ai installé le noyau 3.8-trunk-amd64 depuis le dépôt expérimental.[/quote]
Une sid avec des paquets expérimentaux, pour un débutant tu n’as pas choisi le plus facile.

Le paquet virtualbox-dkms est-il installé ?

Quel logiciel ? Installé Comment ?

Effectivement, mais je ne suis pas tout à fait débutant, et c’est aussi un challenge :wink:

Le paquet virtualbox-dkms est effectivement installé et le logiciel dont je parle est Antidote8, installé à partir de son CD original.

S’il n’y avait pas du dkms, il semblerait que tu dois recommencé l’installation sur le nouveau noyau (enlève bien les traces de l’ancien installation).

Mais attend une confirmation.

Zut, j’ai donc raté l’installation de mon noyau alors…
Si je décide de le réinstaller, cela suffit-il de faire un

Et de refaire un apt-get install après?

Mais à nouveau, la véritable question est plutôt à propos d’Antidote qui me serait plus utile. Comment se fait-il qu’un exécutable soit dépendant d’une version du noyau? Y a-t-il des libs spécifiques qui coincent? Un de mes tests avait été de faire un ldd sur l’exécutable, sans grand succès car toutes les libs semblaient être en place…

[quote=“Lyuyhn”]Zut, j’ai donc raté l’installation de mon noyau alors…
Si je décide de le réinstaller, cela suffit-il de faire un

Et de refaire un apt-get install après?

Mais à nouveau, la véritable question est plutôt à propos d’Antidote qui me serait plus utile. Comment se fait-il qu’un exécutable soit dépendant d’une version du noyau? Y a-t-il des libs spécifiques qui coincent? Un de mes tests avait été de faire un ldd sur l’exécutable, sans grand succès car toutes les libs semblaient être en place…[/quote]

pour antidote:
la libc est surment pas la meme , du coup ton seglfauts viens sûrement de la. comme tu cherche le “challenge”, je te laisse te document sur la libc et le kernel et gcc et g++ sans compter de la “nouvelle” norme de c++ ;

Le seul moyen c est de le re-compiler.
Antidote est propriétaire. donc il te faut leur demander de le faire puisque toi tu peux pas a moins que tu possède les sources :slightly_smiling:

[quote]la libc est surment pas la meme , du coup ton seglfauts viens sûrement de la. comme tu cherche le “challenge”, je te laisse te document sur la libc et le kernel et gcc et g++ sans compter de la “nouvelle” norme de c++ ;

Le seul moyen c est de le re-compiler.
Antidote est propriétaire. donc il te faut leur demander de le faire puisque toi tu peux pas a moins que tu possède les sources :slightly_smiling:[/quote]

Oh crotte… Au fond de mon âme je me doutais que ça venait de la libc. Je suis juste étonné de constater qu’elle n’est pas rétro-compatible (surtout que mes autres logiciels n’ont pas bronché)…

Je vais effectivement me pencher là-dessus et je comprendrai sûrement mieux ce que cela implique.

Tu peux toujours, rebooter sur l’ancien noyau où tous fonctionne(ra) (à moins que tu l’as supprimé).

Tout à fait, c’est ce que je vais tristement me résoudre à faire je pense.

Va regarder debian-fr.org/faire-tourner- … 25727.html
C’est un problème classique qui ne pose pas de souci en général.

[quote=“Lyuyhn”]
Le seul moyen c est de le re-compiler.
Antidote est propriétaire. donc il te faut leur demander de le faire puisque toi tu peux pas a moins que tu possède les sources :slightly_smiling:[/quote]

Pas besoin, après avoir joué avec GDB, le coupable est Antidote qui prend comme hypothèses qu’un kernel à une version en X.Y.Z et qui se vautre lamentablement si le kernel renvois X.Y-foobar

Un fix cradoc:

[quote]$ mkdir ~/.lib
$ wget mail.gnome.org/archives/evoluti … Vk2eft.txt -O /tmp/uname.c
$ (echo #define _GNU_SOURCE; cat /tmp/uname.c) > uname.c
$ gcc -shared -fPIC -ldl uname.c -o ~/.lib/fake-uname.so
$ tee -a ~/.bashrc <<EOHACK

Fix for AntidoteHD Antidote7 / Antidote8 segmentation fault

if [ -f ~/.lib/fake-uname.so ]; then
export LD_PRELOAD=$HOME/.lib/fake-uname.so
export RELEASE=$(uname -r | sed ‘s/^(…)/\1.0-antidote-fix/g’)
fi

EOHACK
$ source ~/.bashrc
$ Antidote8 # Enjoy ![/quote]

Bonjour,

J’aimerai bien faire fonctionner Antidote8 mais j’ai cette erreur lorsque je tape Antidote8 dans un terminal. Le raccourci du menu ne fonctionne pas:

J’ai essayé de suivre votre solution, mais j’ai un message d’erreur:

lafontaj@n73-solydx:~$ gcc -shared -fPIC -ldl uname.c -o ~/.lib/fake-uname.so uname.c: In function ‘uname’: uname.c:21:37: error: ‘RTLD_NEXT’ undeclared (first use in this function) uname.c:21:37: note: each undeclared identifier is reported only once for each function it appears in

Merci!

Prend ceci comme code:

[code]#define _GNU_SOURCE
#include <stdlib.h>
#include <string.h>
#include <dlfcn.h>
#include <sys/utsname.h>
/* compile as:
*

  • gcc -fPIC -G -c uname.c

  • ld -G -o uname.so uname.o

  • LD_PRELOAD=uname.so # or wherever you put it

  • RELEASE=5.8

  • export LD_PRELOAD RELEASE

  • uname
    */
    int uname(struct utsname *name)
    {

static int (*uname_real)();
register int rc;
register char p;
if (uname_real==NULL)
uname_real = (int (
) ()) dlsym(RTLD_NEXT, “uname”);

if ((rc = uname_real(name)) != -1) {

if ((p=getenv("SYSNAME"))!=NULL) {
  strncpy(name->sysname,p,SYS_NMLN-1);
  name->sysname[SYS_NMLN-1]='\0';
}
if ((p=getenv("NODENAME"))!=NULL) {
  strncpy(name->nodename,p,SYS_NMLN-1);
  name->nodename[SYS_NMLN-1]='\0';
}
if ((p=getenv("RELEASE"))!=NULL) {
  strncpy(name->release,p,SYS_NMLN-1);
  name->release[SYS_NMLN-1]='\0';
}
if ((p=getenv("VERSION"))!=NULL) {
  strncpy(name->version,p,SYS_NMLN-1);
  name->version[SYS_NMLN-1]='\0';
}
if ((p=getenv("MACHINE"))!=NULL) {
  strncpy(name->machine,p,SYS_NMLN-1);
  name->machine[SYS_NMLN-1]='\0';
}

}
return rc;
}
[/code]comme uname.c, tu as compilé sans le #define _GNU_SOURCE du début et du coup # define RTLD_NEXT ((void *) -1l) n’est pas inclus.

1 J'aime

[quote]comme uname.c, tu as compilé sans le #define _GNU_SOURCE du début et du coup
Code:

n’est pas inclus.[/quote]

Merci, j’arrive maintenant à démarrer Antidote 8 à partir d’un terminal, j’ai pu ainsi compléter l’enregistrement du logiciel. Par contre, il m’est impossible de le lancer par les intégrations dans les logiciels ou par le raccourci dans le menu de xfce4.

Est-ce que vous avez une idée à ce sujet?

[quote]Est-ce que vous avez une idée à ce sujet?
[/quote]

Je me répond…un peu mais je n’ai pas de solution.

J’ai copié .lib/fake-uname.so dans /etc et j’ai édité /etc/bash.bashrc

J’y ai ajouté:

# Fix for AntidoteHD Antidote7 / Antidote8 segmentation fault if [ -f /etc/.lib/fake-uname.so ]; then export LD_PRELOAD=/etc/.lib/fake-uname.so export RELEASE=$(uname -r | sed 's/^\(...\)/\1.0-antidote-fix/g') fi

Et j’ai essayé de lancer Antidode8 avec le menu ou une intégration sans succès.

Si je lance à partir d’un script:

J’ai alors le même message qu’au début de mon problème c.à.d.:

/usr/local/bin/Antidote8 : ligne 37 : 5507 Erreur de segmentation LD_LIBRARY_PATH=${SELF_DIR}/lib:${LIB_PATH}:${LD_LIBRARY_PATH} HOME=${HOME} "${SELF_DIR}/${SELF_BIN}" "$@"

Donc je suis incapable de lancer Antidode à moins d’utiliser le terminal de mon user.

De l’aide s.v.p.

Enlève ça de ton .bashrc et crée un script lançant Antidote8 avec auparavant la fausse librairie:

cd /usr/local/bin mv Antidote8 Antidote8.real mv fichiercidessous Antidote8 chmod +x Antidote8
avec fichiercidessous contenant

#!/bin/sh export LD_PRELOAD=/etc/.lib/fake-uname.so export RELEASE=$(uname -r | sed 's/^\(...\)/\1.0-antidote-fix/g') Antidote8.real $*

[quote]Enlève ça de ton .bashrc et crée un script lançant Antidote8 avec auparavant la fausse librairie:

Code:

cd /usr/local/bin mv Antidote8 Antidote8.real mv fichiercidessous Antidote8 chmod +x Antidote8

avec fichiercidessous contenant
Code:

#!/bin/sh export LD_PRELOAD=/etc/.lib/fake-uname.so export RELEASE=$(uname -r | sed 's/^\(...\)/\1.0-antidote-fix/g') Antidote8.real $*

[/quote]

Je tiens à vous remercier énormément. Maintenant j’ai un Antidote qui fonctionne, mais les intégrations dans les logiciels ne fonctionnent pas.

Je vais pousser ma chance un peu en vous demandant si vous avez quelques informations qui pourraient m’orienter un peu à ce sujet. Est-ce je dois regarder du côté de l’Agent Antidote (qui tourne en arrière-plan) ou s’il s’agit d’un problème qui ne peut se résoudre du côté des plug-ins d’intégration ds les logiciels.

J’avoue avoir googlé, mais je ne trouve rien de pertinent à ce sujet.

Les intégrations ne sont pas essentiels mais bien pratique.

Voici le code du script AgentAntidote:

[code]#!/bin/bash

Script d’aide au lancement de l’agent. Ajuste les variables d’environnement nécessaires

SELF=$0
if [ -h “$SELF” ] ; then
SELF=readlink -f "$SELF"
fi

if [ ${USER} == “root” ] ; then HOME=/root ; fi

SELF=$(cd $(dirname “$SELF”); pwd -P)/$(basename “$SELF”)
SELF_DIR=dirname "$SELF"
SELF_NAME=basename "$SELF"
SELF_BIN=${SELF_NAME}.bin

LIB_PATH=""
if [[ ! “$LD_LIBRARY_PATH” =~ (^/lib:|:/lib:|:/lib$) ]] ; then
LIB_PATH=/lib:$LIB_PATH
fi

if [[ ! “$LD_LIBRARY_PATH” =~ (^/usr/lib:|:/usr/lib:|:/usr/lib$) ]] ; then
LIB_PATH=/usr/lib:$LIB_PATH
fi

LD_LIBRARY_PATH=${SELF_DIR}/lib:${LIB_PATH}:${LD_LIBRARY_PATH} HOME=${HOME} “${SELF_DIR}/${SELF_BIN}” “$@” &
[/code]

Merci!

Que fait extactement Antidote et qu’est l’intégration dans un logiciel?

Bonjour

Finalement, j’ai recommencé du début l’installation du logiciel Antidote8. Les intégrations fonctionnent bien maintenant suite à la modification discutée précédemment. J’ai toujours un problème avec LibreOffice, mais cela doit provenir de l’éditeur puisque l’ensemble fonctionne très bien maintenant.

Désolé pour mon manque de détail. Pour votre information, voici une courte présentation de Antidote8

Extrait du site: druide.com/a_description.html
"Antidote souligne toutes les fautes, de l’accent oublié à l’accord difficile, de la virgule malvenue au pléonasme bête. Pointez sur une erreur et la correction proposée et explications graduées jaillissent de l’infobulle ; cliquez pour approuver. Après l’orthographe, la grammaire et la typographie, révisez les répétitions, les charnières logiques ou les tournures délicates grâce aux filtres intelligents qui surlignent les passages pertinents. Jamais un logiciel ne vous a offert tant de puissance pour peaufiner vos textes."

L’intégration dans les logiciels de rédaction (LibreOffice, Thunderbird, Firefox, etc.) se fait par le biais de “texteur” qui s’ajoute comme plugs’in dans les logiciels. Le texteur se déclenche en appuyant sur le bouton ajouté aux barres d’outils suite à l’ajout de l’extension.

Je vous remercie de tout le temps que vous m’avez consacré!

Bonjour à tous,

Nouveau sur le forum, et pas très avancé, je viens pour le même problème que lafontaj, sauf que je suis un débutant et n’est pas compris la manipulation faite par lafontaj.

J’ai le même problème, Antidote 8 s’installe biens tous seul lorsque je lance le .bash, mais je ne peux pas le lancer du menu. Et lorsque je le lance par la console, cela me renvoi :

jojo@jojo:~$ Antidote8 /usr/local/bin/Antidote8 : ligne 37 : 5073 Erreur de segmentation LD_LIBRARY_PATH=${SELF_DIR}/lib:${LIB_PATH}:${LD_LIBRARY_PATH} HOME=${HOME} "${SELF_DIR}/${SELF_BIN}" "$@" jojo@jojo:~$
Merci par avance à qui pourra me répondre :wink: .

Jojo