web-dev-qa-db-fra.com

Utiliser automatiquement usb_modeswitch pour Wifi USB

J'ai récemment acheté un dongle Wifi contenant un chipset Realtek rtl8811CU. J'utilise Ubuntu 18.04 LTS.

Heureusement, après avoir trouvé ceci rapport Github , je pouvais le compiler et installer le pilote sans aucun problème.

Cependant, chaque fois que je connecte le dongle, il est détecté en tant que disque et je dois exécuter usb_modeswitch pour que cela fonctionne:

$ lsusb
 [...]
 Bus 001 Device 013: ID 0bda:1a2b Realtek Semiconductor Corp. 
$ Sudo usb_modeswitch -KW -v 0bda -p 1a2b
$ lsusb
 [...]
 Bus 001 Device 014: ID 0bda:c811 Realtek Semiconductor Corp.

L'identifiant de l'appareil change et je peux maintenant utiliser correctement mon dongle Wifi.

J'ai essayé d'ajouter cette entrée aux règles udev, situées dans /lib/udev/rules.d/40-usb_modeswitch.rules, soi-disant pour exécuter la commande chaque fois que le périphérique est détecté:

 # Realtek 8211CU Wifi AC USB
 ATTR{idVendor}=="0bda", ATTR{idProduct}=="1a2b", RUN+="usb_modeswitch '/%k'"

Mais ensuite je reconnecte, et rien ne se passe.

J'ai vérifié que vous aviez peut-être besoin d'un service pour le faire, mais il semble que celui-ci ne puisse pas être activé.

$ systemctl --all | grep usb_modeswitch
● [email protected]    loaded    failed   failed    USB_ModeSwitch_1-4.1                                                            
system-usb_modeswitch.slice       loaded    active   active    system-usb_modeswitch.slice    

$ systemctl status [email protected][email protected] - USB_ModeSwitch_1-4.1
Loaded: loaded (/lib/systemd/system/[email protected]; static; vendor preset: enabled)
Active: failed (Result: exit-code) since Thu 2018-10-04 11:49:17 CDT; 2min 5s ago
    Docs: man:usb_modeswitch_dispatcher(1)
Process: 32216 ExecStart=/usr/sbin/usb_modeswitch_dispatcher --switch-mode 1-4.1 (code=exited, status=1/FAILURE)
Main PID: 32216 (code=exited, status=1/FAILURE)

oct 04 11:49:17  systemd[1]: Starting USB_ModeSwitch_1-4.1...
oct 04 11:49:17  usb_modeswitch_dispatcher[32216]: Could not read attribute: No such file or directory
oct 04 11:49:17  usb_modeswitch_dispatcher[32216]: Could not read attribute: No such file or directory
oct 04 11:49:17  systemd[1]: [email protected]: Main process exited, code=exited, status=1/FAILURE
oct 04 11:49:17  systemd[1]: [email protected]: Failed with result 'exit-code'.
oct 04 11:49:17  systemd[1]: Failed to start USB_ModeSwitch_1-4.1.

On dirait qu'il y a un problème avec l'encapsuleur Ubuntu. Est-ce que quelqu'un sait comment approfondir mes recherches? Je suis nouveau dans les règles systemd et udev, je ne sais donc pas vraiment où trouver d'autres journaux ou fonctionnalités de débogage.

2
Checo R

J'ai trouvé le moyen de le faire. J'ai modifié le fichier /lib/udev/rules.d/40-usb_modeswitch.rules en l'ajoutant avant la ligne LABEL="modeswitch_rules_end" comme suit:

# Realtek 8211CU Wifi AC USB
ATTR{idVendor}=="0bda", ATTR{idProduct}=="1a2b", RUN+="/usr/sbin/usb_modeswitch -K -v 0bda -p 1a2b"

Après cela, chaque fois que je connecte le dongle wifi, le disque n'apparaît pas et le wifi est automatiquement détecté. Peut-être que ce n'est pas la méthode la plus propre, mais ça marche.

2
Checo R

Avez-vous essayé live USB sans installer d'essayer s'il y a un problème avec votre Ubuntu téléchargé? Je vous recommande d'essayer la version en direct de XUbuntu 18.04 pour confirmer si le wifi fonctionne sur votre ordinateur portable. Vous pouvez le télécharger à partir d'ici et l'essayer pour nous dire s'il fonctionne ou s'il ne parvient toujours pas à détecter votre dongle. J'utilise XUbuntu 18.04, il reconfigure mon dongle usb bien que l'écran affiche deux icônes wifis (1 pour le dongle usb et l'autre pour mon autre wifi par défaut) mais cela fonctionne pour moi:

https://xubuntu.org/download

1