Reconnaissance de la clé USB sous Android – Beaglebone

Problème :

Certains des dongles USB Huawei non reconnus par Android JellyBean4.1.2 dans Beaglebone.

En détail :

Je travaille avec BeagleBone sous Android JellyBean4.1.2.

Huawei - E1731 [Locked] , Huawei - E303D [Locked] fonctionnent Huawei - E1731 [Locked] , Huawei - E303D [Locked] sur cette plate-forme.

Huawei E303F , Huawei E303F (Both Factory Unlocked) ne sont pas reconnus par le système d’exploitation (fichiers de communication non générés)

Work-Around fait par moi-même

  1. Modifier le mode du dongle en mode modem uniquement à l’aide de la commande AT

entrez la description de l'image ici

  1. Ajoutez l’ID de fournisseur et l’ID de produit à init.devicename.sh (Forcer le kernal à reconnaître le dongle USB)

entrez la description de l'image ici

  1. Changer le fichier USB-Modeswitch avec VID et PID

entrez la description de l'image ici

Maintenant, les clés USB mentionnées fonctionnent bien.

entrez la description de l'image ici

  • Mais je veux trouver la cause racine et dois le réparer.

  • Existe-t-il une option pour résoudre ce problème en créant Android OS à partir des sources? Si oui, comment? Quels sont les fichiers à changer?

  • Pourquoi certaines dongles sont-elles reconnues directement sans la solution de contournement mentionnée?

METTRE À JOUR

Comme Skoperst l’a dit, j’ai vérifié option.c dans kernel_dir/drivers/usb/serial/option.c

entrez la description de l'image ici

  • Existe-t-il une solution other than hard-coding Device VID & PID ?

  • J’ai besoin d’une solution plus générique, pour faciliter un mécanisme Plug & Play .

  • Comment le Plug & Play works in linux Si cela est possible avec linux kernal , est-ce également possible avec Android?

Vos bonnes suggestions ont apprécié. Merci beaucoup d’avance.

Votre problème concerne le kernel tournant sur le périphérique que vous utilisez et non pas sur le système d’exploitation Android.

Quel périphérique USB est pris en charge (c’est-à-dire quelle combinaison de vid / pid) dépend des ensembles définis dans le kernel, son code codé en dur.

Plus précisément, vous avez besoin de la définition de périphérique série USB (AKA ttyUSB) pour vos VID et PID spécifiques. Elles se trouvent généralement dans: rép_prive_ kernel / drivers / usb / serial / option.c Cela vaut également pour tout autre pilote que le périphérique reconnaîtra.