Cyril Brulebois a écrit 622 commentaires

  • # dpkg --audit

    Posté par  (site web personnel) . En réponse au message Énorme connerie, sauvez moi !. Évalué à 5.

    La commande dpkg --audit devrait t'aider à cibler un certain nombre de points problématiques, en utilisant les infos de dpkg. Cela ne résoudra pas tout mais…

    Debian Consultant @ DEBAMAX

  • [^] # Re: Méthode bulldozer

    Posté par  (site web personnel) . En réponse au message Supprimer kde-standard. Évalué à 2.

    Tu peux faire apt-get autoremove avant, noter les éventuels paquets qui seraient mentionnés.

    Puis supprimer le paquet que tu avais ajouté (ligne Commandline:).

    Puis refaire apt-get autoremove après, ce qui devrait te proposer tous les paquets qui ont été automatiquement installés (ligne Install:) et qui ne sont pas/plus nécessaires. Notons l'option --purge qui peut être passée à cette commande.

    Debian Consultant @ DEBAMAX

  • [^] # Re: Méthode bulldozer

    Posté par  (site web personnel) . En réponse au message Supprimer kde-standard. Évalué à 2.

    Pour celles et ceux qui préfèrent regarder ce qu'il s'est passé précédemment et effectuer l'action opposée, il y a les logs apt…

    Debian Consultant @ DEBAMAX

  • [^] # Re: what ???

    Posté par  (site web personnel) . En réponse au message nslookup fonctionne mais pas ping. Évalué à 1.

    Pour ce fichier de conf, 640 est suffisant…

    Debian Consultant @ DEBAMAX

  • [^] # Re: what ???

    Posté par  (site web personnel) . En réponse au message nslookup fonctionne mais pas ping. Évalué à 2.

    Je vois un souci avec le resolv.conf dans ta trace :

    openat(AT_FDCWD, "/etc/resolv.conf", O_RDONLY|O_CLOEXEC) = -1 EACCES (Permission non accordée)
    

    On voit bien :

    openat(AT_FDCWD, "/lib64/libnss_files.so.2", O_RDONLY|O_CLOEXEC) = 5
    …
    openat(AT_FDCWD, "/etc/hosts", O_RDONLY|O_CLOEXEC) = 5
    

    pour la partie files et ensuite pour la partie dns :

    openat(AT_FDCWD, "/lib64/libnss_dns.so.2", O_RDONLY|O_CLOEXEC) = 5
    …
    socket(AF_INET, SOCK_DGRAM|SOCK_CLOEXEC|SOCK_NONBLOCK, IPPROTO_IP) = 5
    connect(5, {sa_family=AF_INET, sin_port=htons(53), sin_addr=inet_addr("127.0.0.1")}, 16) = 0
    

    ce qui est peut-être dû au fait de ne pas avoir réussi à lire /etc/resolv.conf (du type « tentative désespérée faute de configuration lisible ») ? Je reproduis un comportement similaire localement en mettant (temporairement) un chmod 000 /etc/resolv.conf.

    Note que se connecter sur localhost en UDP sur le port 53 (connexion IP donc), c'est assez différent d'utiliser nscd, en utilisant une socket UNIX :

    connect(5, {sa_family=AF_UNIX, sun_path="/var/run/nscd/socket"}, 110) = -1 ECONNREFUSED (Connexion refusée)
    

    Debian Consultant @ DEBAMAX

  • [^] # Re: initrd et kernel

    Posté par  (site web personnel) . En réponse au message initrd et kernel. Évalué à 3.

    Un initramfs ça permet de faire notamment : du RAID, du LVM, du LUKS (même si l'arrivée de la gestion cryptodisks dans GRUB change un peu le dernier point). Et tout plein d'autres choses (comme embarquer un serveur SSH minimaliste pour attendre une connexion et la saisie d'une phrase de passe pour déverrouiller le reste du système).

    Un initramfs ça signifie aussi pouvoir utiliser le noyau proposé par sa distribution tout en étant capable de générer des éléments personnalisés dépendant de la configuration déployée sur une machine donnée, plutôt que de s'amuser à compiler un noyau aux petits oignons avec le minimum de modules.

    Pour information, la liste des paquets dans Debian 9 qui fournissent des fichiers dans la hiérarchie initramfs-tools, ce qui dépasse largement les mdadm, lvm2, cryptsetup correspondant aux fonctionnalités citées en introduction :

    kibi@armor:~$ apt-file search /usr/share/initramfs-tools/|awk -F: '{print $1}'|sort -u
    amd64-microcode
    aoetools
    bcache-tools
    bilibop-lockfs
    bilibop-rules
    bootcd
    brltty
    btrfs-progs
    busybox
    busybox-static
    cloud-initramfs-dyn-netconf
    cloud-initramfs-growroot
    cloud-initramfs-rescuevol
    cryptsetup
    debian-edu-config
    dmraid
    dmsetup
    dropbear-initramfs
    fsprotect
    fuse
    glx-alternative-nvidia
    initramfs-tools-core
    intel-microcode
    iscsiuio
    klibc-utils
    kmod
    kxc
    live-boot-initramfs-tools
    ltsp-client-core
    lvm2
    mandos-client
    mdadm
    multipath-tools-boot
    nbd-client
    ntfs-3g
    open-infrastructure-system-boot
    open-iscsi
    open-vm-tools-dkms
    plymouth
    r8168-dkms
    sg3-utils-udev
    tuxonice-userui
    udev
    uswsusp
    v86d
    yubikey-luks
    zfs-initramfs
    zfsutils-linux
    

    Debian Consultant @ DEBAMAX

  • [^] # Re: what ???

    Posté par  (site web personnel) . En réponse au message nslookup fonctionne mais pas ping. Évalué à 1.

    Tu as essayé en redémarrant nscd après avoir changé /etc/resolv.conf (ou en supprimant ce service) ?

    C'est à lui qu'est posée la question DNS :

    [pid  6562] connect(5, {sa_family=AF_UNIX, sun_path="/var/run/nscd/socket"}, 110) = 0
    [pid  6562] sendto(5, "\2\0\0\0\16\0\0\0\n\0\0\0google.fr\0", 22, MSG_NOSIGNAL, NULL, 0) = 22
    [pid  6562] poll([{fd=5, events=POLLIN|POLLERR|POLLHUP}], 1, 5000) = 1 ([{fd=5, revents=POLLIN|POLLHUP}])
    [pid  6562] read(5, "\2\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 24) = 24
    

    juste avant le chargement des fichiers de message pour afficher le message d'erreur.

    Debian Consultant @ DEBAMAX

  • # Noyau

    Posté par  (site web personnel) . En réponse au message linux me retourne la valeur 139 quand j'ai un segFault (SIGSGEV). Évalué à 2.

    Tu peux regarder la doc des appels système wait et waitpid, notamment les différentes macros qui permettent de déchiffrer ce qu'il s'est passé : waitpid.2.fr.

    Debian Consultant @ DEBAMAX

  • # Pas tout à fait

    Posté par  (site web personnel) . En réponse au message initrd et kernel. Évalué à 5.

    Non, le chargeur de démarrage lance le noyau. Celui-ci va mettre en place plein de choses, utiliser cet initramfs (qui est juste une archive CPIO, optionnellement compressée) pour lancer init depuis celui-ci. Cet initva faire le nécessaire pour mettre en place le reste du système et passer la main au vrai système init (souvent systemd, de nos jours).

    Debian Consultant @ DEBAMAX

  • [^] # Re: what ???

    Posté par  (site web personnel) . En réponse au message nslookup fonctionne mais pas ping. Évalué à 3.

    Sur Debian 9, ping utilise bien nsswitch, configuré pour utiliser files et dns, et regarde donc /etc/files, lit /etc/resolv.conf et effectue la résolution DNS.

    Tu peux utiliser strace pour vérifier les appels système, par exemple avec -f -v -s 400 (je ne vais pas rentrer dans les détails, mais c'est les options qui sont souvent utiles pour commencer). Attention, il faudra peut-être lancer cela avec sudo pour éviter un EPERM (PTRACE vs. capabilities, j'imagine).

    Debian Consultant @ DEBAMAX

  • [^] # Re: undefined behaviour

    Posté par  (site web personnel) . En réponse au message probleme avec sigaction. Évalué à 2.

    Ta fonction de traitement de signal utilise des fonctions qui ne sont pas autorisées dans un gestionnaire de signal. Si tu utilises ce genre de fonctions, tu es hors jeu. Tout peut arriver. Undefined Behaviour (UB), c'est potentiellement aller écrire des zéros dans tous tes fichiers, puis tout supprimer, et faire chanter la Marseillaise à ton PC speaker. Cela peut également vouloir dire boucler sans arrêt, ou s'arrêter dès le premier passage dans cette fonction (les différents comportements que je décrivais).

    Si tu veux des résultats prédictibles et définis, ne t'expose pas à des comportements indéfinis. Respecte les règles.

    Quant aux race conditions, pas vraiment de rapport avec l'électronique à proprement parler. Un système informatique est constitué de plein d'événements concurrents. En fonction du timing, on peut se retrouver avoir des choses qui marchent©®™ ou pas-marchent©®™, par exemple parce que les signaux ont été reçus/traités plus ou moins rapidement, ou dans un ordre donné, ou en interrompant telle autre routine, etc.

    Debian Consultant @ DEBAMAX

  • # Étrange, mais un (équivalent de) raise() depuis un gestionnaire de signaux…

    Posté par  (site web personnel) . En réponse au message probleme avec sigaction. Évalué à 2.

    De mon côté, une fois que j'ai ajouté les #include qui manquent, soit :

    #include <signal.h>
    #include <stdio.h>
    #include <stdlib.h>
    #include <unistd.h>
    
    #define SIGSEGV 11
    
    void fToCallIfSegFault(int sig)
    {
        fprintf(stdout, "il y a eu un segfault dans ton code mon coco, le sig = %i\n", sig);
        kill(getpid(), sig);
    }
    
    int main(int argc, char const *argv[])
    {
        struct sigaction act;
        act.sa_handler = fToCallIfSegFault;
        sigaction(SIGSEGV, &act, NULL);
    
        //on genere un segfault
        char* str = NULL;
        str[0] = 'c'; //erreur de segmentation
    
        return 0;
    }

    J'ai bien ceci en boucle :

    il y a eu un segfault dans ton code mon coco, le sig = 11
    il y a eu un segfault dans ton code mon coco, le sig = 11
    il y a eu un segfault dans ton code mon coco, le sig = 11
    

    … ou bien un arrêt instantané, ou bien un arrêt après plus ou moins longtemps.

    Dans mes vieux souvenirs (mais je n'ai pas de source pour cela), il me semble qu'on disait qu'un gestionnaire de signal, sur SIGSEGV du moins, était censé faire une chose et une seule : appeler backtrace, finir de loguer et quitter.

    Quoi qu'il en soit, je t'invite à lire (en anglais) cette section de la page wikipedia sur les signaux, notamment la première phrase :

    Signal handling is vulnerable to race conditions.
    

    Debian Consultant @ DEBAMAX

  • [^] # Re: plusieurs erreur de base

    Posté par  (site web personnel) . En réponse au message probleme if. Évalué à 4.

    C'est effectivement un point qui revient régulièrement dans les formations shell…

    Rappel rapide : [ est une commande, donc doit être séparée du if précédent. Puis viennent ses arguments, donc espace également après [. Quant à ], c'est un argument à passer (le dernier) à la commande [ donc doit être séparé des autres arguments. Après le ], pas de contrainte particulière (si on a un ; notamment, il peut être collé).

    Exemple sans if pour montrer l'aspect facultatif des séparations en dehors des crochets : [ 0 = 1 ]||[ 1 = 1 ]

    Debian Consultant @ DEBAMAX

  • [^] # Re: plusieurs erreur de base

    Posté par  (site web personnel) . En réponse au message probleme if. Évalué à 2.

    Ça ne mène pas à l'erreur mentionnée, donc ça ne m'a pas paru pertinent de le mentionner à ce stade. La vie, les priorités, tout ça.

    Debian Consultant @ DEBAMAX

  • [^] # Re: Le code semble correct mais…

    Posté par  (site web personnel) . En réponse au message probleme if. Évalué à 2.

    Pas si le copier-coller est fidèle (en vérifiant le code markdown).

    Et effectivement le code me semble correct.

    Et je ne vois rien qui puisse être problématique avec un quelconque shell.

    Debian Consultant @ DEBAMAX

  • [^] # Re: plusieurs erreur de base

    Posté par  (site web personnel) . En réponse au message probleme if. Évalué à 2.

    Non, l'espace n'est pas nécessaire.

    Debian Consultant @ DEBAMAX

  • [^] # Re: par type ?

    Posté par  (site web personnel) . En réponse au message faire un find ou un ls. Évalué à 1. Dernière modification le 06 février 2019 à 22:21.

    Non…

    Ici tu filtres pour n'afficher que les entités qui sont à la fois fichier et répertoire… Il te faudrait un -o entre les deux (et ça exclut tout ce qui est b, c, p, s…).

    Debian Consultant @ DEBAMAX

  • [^] # Une fonction

    Posté par  (site web personnel) . En réponse au message Alias avec cible changeante.. Évalué à 4.

    Alternative au script dédié, dans ~/.bashrc ou équivalent pour le shell de ton choix :

    mymediainfo() {
      mediainfo "$@" | grep 'name\|Width\|Height'
    }
    

    Je ne sais pas trop ce que tu entends par coloriser, tu peux préciser ?

    Debian Consultant @ DEBAMAX

  • [^] # Re: Peut-être bien que...

    Posté par  (site web personnel) . En réponse au message Copie De serveur à serveur en étant connecté à un serveur. Évalué à 3.

    Yep. Et complément d'information, mkdir -p permet d'éviter ce if.

    Debian Consultant @ DEBAMAX

  • # ip link

    Posté par  (site web personnel) . En réponse au message No DHCPOFFERS received. Évalué à 1. Dernière modification le 28 janvier 2019 à 18:12.

    Tu peux commencer par ip link pour voir à quoi ressemblent les différentes interfaces et l'état de chacune.

    Exemple sur mon laptop docké (donc Ethernet branché) :

    2: eth0: mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group default qlen 1000
    link/ether a0:8c:fd:2a:bd:8a brd ff:ff:ff:ff:ff:ff

    vs. non docké :

    2: eth0: mtu 1500 qdisc pfifo_fast state DOWN mode DEFAULT group default qlen 1000
    link/ether a0:8c:fd:2a:bd:8a brd ff:ff:ff:ff:ff:ff

    Debian Consultant @ DEBAMAX

  • # Proxy socks over ssh ?

    Posté par  (site web personnel) . En réponse au message Regarder une vidéo restreinte à la France. Évalué à 9.

    Cela fait un moment que je n'ai pas eu à faire cela, mais un petit ssh -D 1080 vers une machine dans le bon pays, et un navigateur configuré pour passer par le proxy SOCKS ainsi ouvert, ça m'a dépanné une paire de fois.

    (Pour éviter d'avoir à retoucher aux réglages régulièrement, on peut utiliser une extension de type « sélecteur de proxy », ou bien un profil particulier dans Firefox.)

    Debian Consultant @ DEBAMAX

  • [^] # Re: ligne 3

    Posté par  (site web personnel) . En réponse au message probleme de configuration de eth0 sur kubuntu. Évalué à 2.

    C'est toujours une bonne idée de citer la configuration qu'on essaie de faire fonctionner, en complément des éventuels messages d'erreur des commandes lancées.

    Debian Consultant @ DEBAMAX

  • [^] # Re: driver déjà patché

    Posté par  (site web personnel) . En réponse au message compilation Clé Wifi TP-LINK. Évalué à 1.

    Le fichier include/rt_os_util.h semble avoir le même contenu (modulo des commentaires) que celui du driver fourni par TP Link. Si mon analyse (voir commentaire plus haut) est bonne, cela donnera le même problème de compilation ?

    Debian Consultant @ DEBAMAX

  • [^] # Patch patch patch

    Posté par  (site web personnel) . En réponse au message compilation Clé Wifi TP-LINK. Évalué à 1.

    À première vue, cela ressemble beaucoup à un problème classique pour les modules qui ne sont pas intégrés dans le noyau : les structures de données et les fonctions dans le noyau évoluent avec le temps, et les composants inclus dans le noyau sont mis à jour au fur et à mesure.

    (Dans les cas classiques, le module externe pourrait ne pas être au courant des modifications en question, d'où de possibles incompatibilités/erreurs de compilation.)

    Mais pour le coup, il pourrait être question d'un compilateur devenu plus strict avec le temps (cf. l'option -Werror=incompatible-pointer-types)…

    Voici le type attendu par la fonction pour le paramètre en question : typedef void (*usb_complete_t)(struct urb *);

    Voici le type spécifié dans les sources du module externe (./NETIF/include/rt_os_util.h) : typedef VOID (*USB_COMPLETE_HANDLER)(VOID *);

    Tu peux essayer de changer cela en : typedef VOID (*USB_COMPLETE_HANDLER)(struct urb *);

    (qui est plus précis sur le type de pointeur manipulé, void* étant générique)

    Aucune garantie que cela permette de compiler l'ensemble avec succès, mais est-ce que ça peut être pire que la situation actuelle ? :)

    Debian Consultant @ DEBAMAX

  • # boost est-il bien installé ?

    Posté par  (site web personnel) . En réponse au message Meson ne détecte pas boost. Évalué à 1.

    Quelques questions:

    • Quels sont les paquets boost que tu as installés (libboost-thread-dev, libboost-system-dev, libboost-test-dev ou assimilés) ?
    • Où sont les fichiers installés par ces paquets (/usr/include ou assimilé) ?
    • Ces emplacements font-ils partie des chemins de recherche par défaut du compilateur ?

    D'après un codesearch rapide, le code Meson que tu as cité est explicitement testé dans la suite de test Meson, donc je pense que ça n'est pas la partie problématique…

    Debian Consultant @ DEBAMAX