Forum Linux.mandriva Mandriva 2005LE vers 2006 : pb souris USB

Posté par  .
Étiquettes : aucune
0
23
sept.
2006
Bonjour tout le monde,

Voilà, je viens de mettre à jour ma Mandriva 2005LE vers la 2006 et ma souris optique USB ne fonctionne plus, alors qu'elle fonctionnait avant. Alors voilà ce que j'ai essayé, après avoir parcouru de nombreux forums, pour essayer de régler le problème:

# dmesg | grep hci

ohci1394: $Rev: 1223 $ Ben Collins <bcollins@debian.org>
ohci1394: fw-host0: OHCI-1394 1.1 (PCI): IRQ=[10] MMIO=[d4003800-d4003fff] Max
Packet=[2048]
#


Donc là, Mandriva 2006 ne voit que ohci1394 c'est-à-dire l'IEEE 1394 ou FireWire. Je fais alors :

# lspci -v | grep HCI

00:0b.0 USB Controller: VIA Technologies, Inc. VT82xxxxx UHCI USB 1.1 Controller
(rev 50) (prog-if 00 [UHCI])
00:0b.1 USB Controller: VIA Technologies, Inc. VT82xxxxx UHCI USB 1.1 Controller
(rev 50) (prog-if 00 [UHCI])
00:0b.2 USB Controller: VIA Technologies, Inc. USB 2.0 (rev 51) (prog-if 20 [EHC
I])
00:0c.0 FireWire (IEEE 1394): Texas Instruments TSB43AB21 IEEE-1394a-2000 Contro
ller (PHY/Link) (prog-if 10 [OHCI])
#


J'ai bien mes ports USB 1.1 et 2.0. Maintenant, si je fais :

# modprobe uhci-hcd

# modprobe ehci-hcd
#


La diode de ma souris s'allume après avoir tapé la première commande, mais rien ne se passe si je la bouge. Alors je tente un :

# dmesg | grep hci

ohci1394: $Rev: 1223 $ Ben Collins <bcollins@debian.org>
ohci1394: fw-host0: OHCI-1394 1.1 (PCI): IRQ=[10] MMIO=[d4003800-d4003fff] Max
Packet=[2048]
uhci_hcd 0000:00:0b.0: UHCI Host Controller
uhci_hcd 0000:00:0b.0: irq 10, io base 0x2000
uhci_hcd 0000:00:0b.0: new USB bus registered, assigned bus number 1
uhci_hcd 0000:00:0b.1: UHCI Host Controller
uhci_hcd 0000:00:0b.1: irq 10, io base 0x2020
uhci_hcd 0000:00:0b.1: new USB bus registered, assigned bus number 2
usb 1-2: new low speed USB device using uhci_hcd and address 2
usb 2-2: new full speed USB device using uhci_hcd and address 2
ehci_hcd 0000:00:0b.2: EHCI Host Controller
ehci_hcd 0000:00:0b.2: irq 11, pci mem 0xd4003000
ehci_hcd 0000:00:0b.2: new USB bus registered, assigned bus number 3
ehci_hcd 0000:00:0b.2: USB 2.0 initialized, EHCI 0.95, driver 10 Dec 2004
usb 1-2: new low speed USB device using uhci_hcd and address 3
usb 3-4: new high speed USB device using ehci_hcd and address 3
usb 2-2: new low speed USB device using uhci_hcd and address 3
usb 1-2: new low speed USB device using uhci_hcd and address 4
usb 3-4: new high speed USB device using ehci_hcd and address 6
#


J'ai ensuite essayé de recompiler le noyau en y ajoutant les modules suivants en "built-in" :

  • Device Drivers :
    • USB Support :
      • Support for Host-side USB

      • USB device filesystem

      • EHCI HCD (USB 2.0) support

      • UHCI HCD (most Intel and VIA) support

      • OHCI HCD support

      • USB Human Interface Device (Full HID) support

      • HID input layer support


# ls /usr/src

RPM/
# urpmi kernel-source
One of the following packages is needed:
1- kernel-source-2.6-2.6.12-22mdk.i586 : The source code for the Linux kernel.
(to install)
2- kernel-source-stripped-2.6-2.6.12-22mdk.i586 : The source code of the Linux
kernel stripped for post build. (to install)
3- kernel-multimedia-source-2.6.12-12.mm.1mdk.i586 : The source code for the Li
nux kernel (to install)
4- kernel-source-2.6.12.23mdk-1-1mdk.i586 : The source code for the Linux kerne
l. (to install)
5- kernel-source-stripped-2.6.12.23mdk-1-1mdk.i586 : The source code of the Lin
ux kernel stripped for post build. (to install)
6- kernel-source-2.6.12.24mdk-1-1mdk.i586 : The source code for the Linux kerne
l. (to install)
7- kernel-source-stripped-2.6.12.24mdk-1-1mdk.i586 : The source code of the Lin
ux kernel stripped for post build. (to install)
8- kernel-source-2.6.12.25mdk-1-1mdk.i586 : The source code for the Linux kerne
l. (to install)
9- kernel-source-stripped-2.6.12.25mdk-1-1mdk.i586 : The source code of the Lin
ux kernel stripped for post build. (to install)
What is your choice? (1-9) 1

ftp://ftp.sjtu.edu.cn/mandrivalinux/official/updates/current(...)
kernel-source-2.6-2.6.12-22mdk.i586.rpm
installing kernel-source-2.6-2.6.12-22mdk.i586.rpm from /var/cache/urpmi/rpms
Preparing... #############################################
1/1: kernel-source-2.6 #############################################
# ls /usr/src
linux@ linux-2.6.12-22mdk/ RPM/
# cd /usr/src/linux
# make menuconfig


Je recompile alors :

# make

CHK include/linux/version.h
...
...
...
LD [M] sound/usb/usx2y/snd-usb-usx2y.ko
# exit
$


Je redémarre mais il ne détecte pas les ports USB au démarrage contrairement à la 2005LE qui faisait un :

Initializing USB Controller (uhci-hcd)

Initializing USB Controller (ehci-hcd)
Mount USB filesystem


Donc j'aimerais une reconnaissance des ports USB dès le démarrage pour pouvoir utiliser ma souris USB.

Merci d'avance pour vos suggestions
  • # Essayons toujours...

    Posté par  . Évalué à 1.

    > Je redémarre mais il ne détecte pas les ports USB au démarrage contrairement à la 2005LE qui faisait un :
    > > Initializing USB Controller (uhci-hcd)
    > > Initializing USB Controller (ehci-hcd)
    > > Mount USB filesystem

    Si c'est comme sous Fedora,normalement uhci-hcd et ehci-hcd sont chargés avec initrd.

    Au cas où tu ne connais pas initrd, je redonne la séquence de boot de linux dans les très très grandes lignes:
    -> grub/lilo
    -> chargement de initrd
    -> noyau
    -> Exécution du /init dans initrd
    -> montage partition root
    -> le processus init lance la suite

    Ce qui faut bien noter ici, c'est que lorsque le noyau et initrd sont chargés, on a un OS fonctionnel (certe il ne peut pas faire grand chose vu le peut de place disponible dans initrd) et on y fait des choses.

    Sous Fedora [ue]hci-hcd sont chargés via initrd. Ça permet d'avoir une clée USB en root entre autre.
    Via initrd, ces modules sont chargées avec le script init qui est dans initrd.
    Voilà la séquence (j'ai viré quelques lignes):
    echo "Loading uhci-hcd.ko module"
    insmod /lib/uhci-hcd.ko
    echo "Loading ohci-hcd.ko module"
    insmod /lib/ohci-hcd.ko
    echo "Loading ehci-hcd.ko module"
    insmod /lib/ehci-hcd.ko
    mount -t usbfs /proc/bus/usb /proc/bus/usb
    echo "Loading scsi_mod.ko module"
    insmod /lib/scsi_mod.ko
    echo "Loading sd_mod.ko module"
    insmod /lib/sd_mod.ko
    echo "Loading usb-storage.ko module"
    insmod /lib/usb-storage.ko
    echo Waiting for driver initialization.
    stabilized /proc/bus/usb/devices


    Ce script est uniquement lu par nash (un petit programme développé par Red Hat mais que Mandriva utilise très probablement).
    Les lignes "insmod ......ko" charge des modules qui sont dans initrd.
    Peut-être qu'il te manque les lignes relatives à uhci-hcd et peut-être aussi le module dans initrd.

    Si c'est le car, il te faut refaire ton initrd (crée en un nouveau et n'écrase pas l'actuel, initrd est critique dans le boot dans système).

    Le mieux est de remplace l'initrd actuel. Pour l'exemple, je vais éditer le mien (/boot/initrd-2.6.18-1.2689.fc6.img) et en créer un nouveau.
    [root@localhost ~]# cd /boot/
    [root@localhost boot]# mkdir tmp
    [root@localhost boot]# cd tmp/
    [root@localhost tmp]# zcat ../initrd-2.6.18-1.2689.fc6.img | cpio -i -m
    6664 blocks
    [root@localhost tmp]# ll
    total 9
    drwx------ 2 root root 1024 sep 24 05:39 bin
    drwx------ 3 root root 1024 sep 24 05:39 dev
    drwx------ 2 root root 1024 sep 22 21:53 etc
    -rwx------ 1 root root 1843 sep 22 21:53 init
    drwx------ 2 root root 1024 sep 24 05:39 lib
    drwx------ 2 root root 1024 sep 22 21:53 proc
    lrwxrwxrwx 1 root root 3 sep 24 05:39 sbin -> bin
    drwx------ 2 root root 1024 sep 22 21:53 sys
    drwx------ 2 root root 1024 sep 22 21:53 sysroot
    [root@localhost tmp]# vim init # ajout de uhci-hcd
    [root@localhost tmp]# cp -p /lib/modules/2.6.18-1.2689.fc6/kernel/drivers/usb/host/uhci-hcd.ko lib/ # copie de uhci pour l'intégrer dans initrd
    [root@localhost tmp]# find * -print0 | cpio -o -c --null | gzip -9 > ../initrd-2.6.18-1.2689.fc6_custom.img
    6664 blocks
    [root@localhost tmp]# cd ..
    [root@localhost boot]# rm -r -f tmp/
    [root@localhost boot]# # Et voilà

    Après j'ajoute une entrée dans grub (il n'y a pas lilo sous Fedora) pour utiliser ce nouveau initrd. Donc je vais avoir deux entrées pour le même noyau :
    title Fedora Core (2.6.18-1.2689.fc6)
    root (hd0,0)
    kernel /vmlinuz-2.6.18-1.2689.fc6 ro root=LABEL=small_fs quiet
    initrd /initrd-2.6.18-1.2689.fc6.img

    title Fedora Core (2.6.18-1.2689.fc6) avec uhci-hcd dans initrd
    root (hd0,0)
    kernel /vmlinuz-2.6.18-1.2689.fc6 ro root=LABEL=small_fs quiet
    initrd /initrd-2.6.18-1.2689.fc6_custom.img


    Normalement on peut aussi faire ça via la commande mkinitrd. Par exemple avec : mkinitrd --with=uhci-hcd /boot/initrd-2.6.18-1.2689.fc6_custom.img 2.6.18-1.2689.fc6


    A toi de jouer :-)
    • [^] # Re: Essayons toujours...

      Posté par  . Évalué à 1.

      Merci clearstream pour ta réponse. Malheureusement, j'ai deux problèmes:
      1. Je n'ai pas nash et je n'arrive pas à lire /boot/initrd.img avec vi. Je n'ai pas trouvé nash à télécharger sur Internet. Et j'aimerais bien pouvoir voir ce qu'il y a dans ce fichier!
      2. J'aimerais que tu m'expliques ce que tu fais pour les opérations suivantes :
      3. [root@localhost tmp]# zcat ../initrd-2.6.18-1.2689.fc6.img | cpio -i -m
        6664 blocks
        [root@localhost tmp]# ll
        total 9
        drwx------ 2 root root 1024 sep 24 05:39 bin
        drwx------ 3 root root 1024 sep 24 05:39 dev
        drwx------ 2 root root 1024 sep 22 21:53 etc
        -rwx------ 1 root root 1843 sep 22 21:53 init
        drwx------ 2 root root 1024 sep 24 05:39 lib
        drwx------ 2 root root 1024 sep 22 21:53 proc
        lrwxrwxrwx 1 root root 3 sep 24 05:39 sbin -> bin
        drwx------ 2 root root 1024 sep 22 21:53 sys
        drwx------ 2 root root 1024 sep 22 21:53 sysroot
        [root@localhost tmp]# find * -print0 | cpio -o -c --null | gzip -9 > ../initrd-2.6.18-1.26
        89.fc6_custom.img
        6664 blocks
        histoire d'avancer avec GNU/Linux ;-)
      Merci d'avance et encore merci de m'avoir répondu!
      • [^] # Re: Essayons toujours...

        Posté par  . Évalué à 1.

        clearstream, j'ai fait comme tu m'as indiqué mais j'ai le résultat suivant:
        [root@tu053053 tmp]# zcat ../initrd-2.6.11-6mdk.img | cpio -i -m
        cpio: warning: skipped 355840 bytes of junk
        cpio: ./dev/pts: No such file or index
        cpio: invalid head: verification and error
        
        zcat: ../initrd-2.6.11-6mdk.img: decompression OK, trailing garbage ignored
        cpio: file unusual termination 
        [root@tu053053 Tmp]# ll
        Total volume 0
        [root@tu053053 tmp]#
        Donc, je ne sais pas quoi faire... Merci d'avance pour vos conseils avisés.

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.