USB_ModeSwitch - Activer les périphériques USB commutables (switchables) sous Linux
USB_ModeSwitch est (surprise!) est un outil de switch (changement) de mode pour des clefs USB à fonctions multiples.
Plusieurs nouvelles clefs USB contiennent leur propre driver MS Windows; quand on les insère pour la première fois, ces périphériques agissent comme un périphérique de stockage et installent leur driver. Après cela (et ceci à chaque nouvelle insertion de la clef) ce driver commute (switch) le mode interne, le périphérique de stockage disparait (dans la majorité des cas), et un nouveau périphérique (tel un modem USB) apparaît. Le fabriquant de clés WWAN Option appelle ce dispositif "ZeroCD (TM)".
Comme vous l'aurez suremement noté, il n'existe aucune documentation sous quelque forme que ce soit, et il n'existe pas plus de driver officiel disponible pour Linux. Heureusement nombreux sont les périphériques connus qui fonctionnent avec des divers Linux disponibles tels que "usb-storage" ou "usbserial". Mais celà laisse entier le problème du changement de mode, pour que le périphérique passe du mode "stockage" à ce qu'il est censé faire.
Néanmoins, il existe des choses telles que le raisonnement humain, les applications d'USB sniffing et "libusb". Il est ainsi possible "d'espionner" la communication du driver MS Windows, pour isoler la commande ou l'action qui fait la commutation, et de reproduire la même chose avec Linux.
USB_ModeSwitch facilite grandement la dernière étape en utilisant les paramètres importants contenus dans un fichier de configuration et en réalisant l'initialisation et la communication nécessaires .
A ce jour, il ne vérifie PAS si l'opération s'est correctement déroulée. La meilleure approche serait de consulter /proc/bus/usb/devices (ou la sortie de "lsusb") avant et après l'execution d' USB_ModeSwitch et de noter tout changement.
Téléchargement
La dernière version est la 0.9.5. L'archive contient la source et un fichier binaire 686 (32 bit, VIA C7, GCC 4.2.2). Pour ce faire, le concepteur d'USB_modeswitch a utilisé libusb-0.1.12.Les changements et mises à jour sont proposées plus régulièrement pour le fichier de configuration que pour le soft lui-même; la majeure partie des informations connues sur les périphériques s'y trouve. Il est donc préférable d'utiliser la dernière version dont le lien est ci-dessous.
- Télécharger usb_modeswitch-0.9.5.tar.bz2,, daté du 27/10/2008
- Téléchargez usb_modeswitch.conf; (version mise à jour en anglais) ou usb_modeswitch.conf (version française traduite pour Bullteam.net); son emplacement par défaut est "/etc". Dernière mise à jour 28/10/2008
- N'oubliez pas libusb si vous ne l'avez pas
- usb_modeswitch (Debian 4.0 Etch, Pentium M, GCC 4.1.2)
- usb_modeswitch (OpenSUSE 11.0, Pentium M, GCC 4.3.1)
- usb_modeswitch (Ubuntu 8.04, Opteron 1218, GCC 4.2.3)
- usb-modeswitch_0.9.5_i386.deb; Debian package, batteries included
Comment installer
Prenez le nouvel exécutable "usb_modeswitch" (ou celui fourni avec l'archive)
et mettez le dans votre path (de préférence "/sbin" ou "/usr/sbin").
Mettez "usb_modeswitch.conf" dans "/etc" et éditez le en fonction de votre matériel. Le fichier contient une documentation très complète qui devrait vous indiquer ce qu'il est nécessaire de faire.
Alternativement vous pouvez utiliser la toute nouvelle interface en ligne de commande pour dire à USB_ModeSwitch ce qu'il doit savoir; essayez "usb_modeswitch -h" pour lister les paramètres. De cette manière, vous pouvez manipuler des configurations multiples. Si un quelconque paramètre est utilisé en ligne de commande, le fichier de configuration n'est PAS lu.
Important: USB_ModeSwitch - comme tous les programmes qui utilisent libusb - doit être lancé en root. Sinon, d'étranges erreurs feront leur apparition...
Dépannage: si vous êtes d'avoir les bonnes valeurs pour votre matériel,
et que lancement après lancement USB_ModeSwitch semble avoir une action mais que dans les faits rien ne change, il y a surement une solution à mettre en place. La majorité des distributions actuelles utilisent "udev" comme dispositif et manageur de branchement à chaud (hotplug), qui, dans certains ca, ne reflète pas les changements sur un périphérique switché. Utilisez "udevmonitor" sur une console ou un terminal pour avoir plus d'informations sur le processus de branchement et de commutation. Parfois, il est nécessaire de faire appels à des astuces peu communes comme des lancements répétés d'usb_modeswitch à intervalles définis.
Consultez le forum d'usb_modeswitch pour avoir des informations ou faites une demande d'aide sur le forum de Bullteam .
Matériels connus pour fonctionner
Josh le concepteur de cet outil, n'a personnelIement pu tester que son Option Icon; la liste suivante, ainsi que les informations nécessaires repose sur les rapports de tiers. Ne soyez donc pas surpris si vous vous heurtez à des obstacles alors que votre périphérique est listé ici. Vous aurez été prévenus.
Il existe trois méthodes connues pour initialiser le processus de commutation :
1. l'envoi d'une commande standard rarement ou jamais utilisée (équivalente à celle du SCSI) au périphérique
2. éliminer (ou plutôt détacher) le driver de stockage du périphérique
3. envoyer un message de contrôle spécifique au périphérique
Il est recommandé d'utiliser le dernier driver disponible. Des solutions à cet égard on été trouvées pour au moins un dispositif USB (Icon 7.2).
- Option GlobeSurfer Icon (connu comme "Vodafone EasyBox")
Celui par lequel tout a commencé, parce que Josh, le concepteur d'USB_ModeSwitch a voulu le faire fonctionner sur son Linux
.Tous les périphériques Option connus utilisent la commande REZERO UNIT pour opérer la commutation. - Option GlobeSurfer Icon 7.2
Si vous rencontrez des mises en sécurité matérielles à l'insertion (voyant clignotant très rapidement), mettez le pilote à jour. - Option GlobeSurfer Icon 7.2 en interface avec le driver HSO
Une génération plus récente de firmware avec des ID vendor/device inchangés. Votre périphérique "7.2 ready" devrait changer son comportement après re-flashage avec ce pilote; les nouveaux périphériques Option fonctionnent très probablement avec celui-ci. Utilisez le nouveau paramètre "TargetClass" pour reconnaître les périphériques déjà commutés.
Si vous avez un nouveau périphérique Option device non listé ici, il est vraissemblable de pouvoir le faire fonctionner en utilisant ces paramètres si vous adaptez vos ID vendor/product
Note: les questions sur le driver HSO driver questions and howtos disponibles (en anglais) sur l'excellent site Pharscape ou sur le site de Bullteam dans la section 3G Linux (en français)! - Option Icon 225 HSDPA (connu comme "T-Mobile web'n'walk Stick")
Nouveau Firmware, interface HSO - Option GlobeTrotter HSUPA Modem (connu comme "T-Mobile wnw Card Compact III")
Nouveau Firmware, interface HSO
- Option GlobeTrotter GT MAX 3.6 (connu comme"T-Mobile wnw Card Compact II")
- Option GlobeTrotter EXPRESS 7.2 (connu comme "T-Mobile wnw Card Express II")
- Option GlobeTrotter GT MAX "7.2 Ready"
- Huawei E220 (connu comme "Vodafone EasyBox II", connu comme "T-Mobile wnw Box Micro")
Nous avons à présent deux options (ne voyez ici aucun calembour!) pour les périphériques Huawei 1. suppression de "usb-storage" 2. le message de contrôle spécifique trouvé par Miroslav Bobovsky. Ce dernier est dépendant de "usb-storage" laisse même la partie de stockage du périphérique fonctionnelle. - Huawei E160, Huawei E160G, Huawei E169, Huawei E270, Huawei E280
Installation similaire à celle du E220. - Huawei E630
Il existe evidemment des variantes "modem uniquement" (sans la partie stockage) pour celles-ci, aucune commutation n'est nécessaire. - Novatel Wireless Ovation MC950D HSUPA, Ovation 930D et Merlin XU950D
Ils utilisent la commande de contrôle START/STOP (Eject) pour effectuer la commutation. - Novatel Wireless U727 USB modem
Installation similaire au MC950D, mais ID product différente - Novatel Wireless MC990D
Utilise les nouvelles fonctionnalités de la version 0.9.5 - ZTE MF620 (connu comme "Onda MH600HS")
Utilise la commande TEST UNIT READY pour effectuer la commutation - ZTE MF622
Détacher le driver de stockage est suffisant - ZTE MF628, ZTE MF628+
- ZTE MF638 (connu comme "Onda MDC525UP")
- ONDA MT503HS (très certainement un modèle ZTE)
- ONDA MT505UP (très certainement un modèle ZTE)
- Alcatel OT-X020 (connu comme "MBD-100HU", connu comme "Nuton 3.5G", fonctionne avec "Emobile D11LC")
- AnyDATA ADU-500A, AnyDATA ADU-510A, AnyDATA ADU-520A
- BandLuxe C120
Il a été rapporté qu'une utilisation particulière était nécessaire. Consultez ce post sur le Forum - Solomon S3Gm-660
Consultez les informations sur la BandLuxe C120 ci-dessus - C-Motech D-50 (connu comme "CDU-680")
Des informations importantes sur ce post du Forum - Toshiba G450
- UTStarcom UM175 (distributeur "Alltel")
- Hummer DTM5731
- A-Link 3GU
Comment automatiser le processus
Dites-vous que vous devez lancer USB_ModeSwitch à chaque fois que vous inserez votre clef ou que vous bootez avec. Si vous avez "udev" sur votre distribution il n'est vraiment pas compliqué de l'automatiser et de l'oublier.Notez qu'un délai avant le lancement du tool est nécessaire avec de nombreuses installations récentes. Si votre commutation automatique est incertaine (irrégulière) le délai dans l'exécution d'USB_ModeSwitch devrait vous aider. Référez-vous au script ci-dessous. Ceci étant dit, depuis la version 0.9.4, cela n'est presque jamais nécessaire.

