1 votes

Le concentrateur USB alimenté ne charge pas le téléphone. Options du noyau ?

J'ai acheté un hub USB 2.0 alimenté (ET-UP900). J'utilise le chargeur de mon téléphone comme source d'alimentation. Mais si je connecte le hub avec mon téléphone (SM-C115), il ne se charge pas. Si je connecte le chargeur directement, il fonctionne.

J'ai d'abord pensé que le concentrateur ne fournissait pas assez d'énergie. Mais si je fais la même chose avec une tablette (SM-P905), qui nécessite plus de puissance, cela fonctionne.

Également étrange : Si le concentrateur est alimenté, il ne fonctionne pas. Si le concentrateur n'est pas alimenté, il fonctionne parfaitement.

Comme j'utilise un noyau personnalisé, je regarde dans le dmesg et je manipule les options du noyau et le pilote pour trouver le bon réglage.

Peut-être quelqu'un peut-il me donner un indice sur ce qui pourrait fonctionner ?

Alternative : Y a-t-il un câble que je puisse brancher entre les deux pour charger le téléphone et utiliser le hub USB ? J'ai un câble de charge OTG mais il alimente le hub USB au lieu du téléphone.

MISE À JOUR J'ai trouvé quelque chose à propos d'un câble spécial avec résistance pour passer en mode spécial AUDIODOCK. J'ai trouvé ce AUDIODOCK dans le code source d'un pilote apparenté que j'ai vu dans dmesg drivers/misc/max77803-muic.c . Peut-être que je peux changer le pilote pour forcer ce mode tout le temps ou quelque chose comme ça...

MISE À JOUR 2 En drivers/misc/max77803-muic.c J'ai vu que l'option CONFIG_MUIC_MAX77803_SUPPORT_OTG_AUDIO_DOCK doit être définie et le pilote que j'ai obtenu ici ne le supporte pas de toute façon. Je pense que j'essaie d'utiliser un pilote mis à jour . Avec la prise en charge de AUDIO_DOCK.

1voto

Guðmundur H Points 3323

Il fonctionne. Les max77803 du SM-C115 était également utilisée dans le S4 mais le pilote de mon noyau ne prenait pas en charge le périphérique ET-UP900. J'ai donc cherché un nouveau pilote de noyau et j'ai trouvé danielpanzella/P900-kernel-source . Dans ce pilote, le dispositif est appelé LANHUB . Si vous jetez un coup d'œil au code, vous trouverez également un certain nombre d'autres dispositifs. Le pilote détecte en fonction de la résistance sur la broche de signal quel type d'appareil est connecté.

J'ai cherché dans le référentiel LANHUB et j'ai fusionné ces lignes de code dans mon noyau, j'ai compilé le noyau, je l'ai installé avec odin et ça a fonctionné !

Le concentrateur USB, sa carte réseau et les périphériques USB connectés fonctionnent tandis que je reçois de l'énergie du concentrateur pour charger le téléphone.

Mise à jour

Quelques étapes pour reproduire ce problème. J'ai utilisé Vagrant comme environnement pour obtenir une machine linux propre. Télécharger NDK et le code source du noyau et mettre en place un compilateur croisé voir Tout tutoriel sur le noyau :

sudo apt-get install -y build-essential kernel-package libncurses5-dev bzip2
export CROSS_COMPILE=/home/vagrant/android/ndk/android-ndk-r10b/toolchains/arm-linux-androideabi-4.8/prebuilt/linux-x86/bin/arm-linux-androideabi-
export ARCH=arm

Ensuite, vous devez choisir le bon fichier de configuration pour votre appareil :

cp arch/arm/configs/whatever .config

Modifiez la configuration pour ajouter un pilote :

make menuconfig

Pour l'adaptateur ET-UP900, allez dans "Device Drivers" > "Network Device Support" > "USB Network Adapters". Sélectionnez "Multi-purpose USB Networking Framework" et "SMSC LAN95XX base USB 2.0 10/100 ethernet devices"

Si le chargement ne fonctionne pas, regardez dans "Device Driver" > "Misc". Activez les paramètres contenant "SUPPORT_LANHUB".

Maintenant, sauvegardez et quittez menuconfig et compilez le noyau :

make bzImage

Votre nouveau noyau sera arch/arm/boot/zImage . Vous devez maintenant rassembler tout cela avec un ramdisk (cuisine du noyau Android) dans un boot.img et le flasher sur l'appareil (Odin).

Avec le nouveau noyau et l'adaptateur attaché la commande bash netcfg devrait indiquer eth0. Exécuter dhcpcd -k eth0 pour obtenir une IP.

Pour savoir si quelque chose ne fonctionne pas, consultez les pages suivantes dmesg .

androidalle.com

AndroidAlle est une communauté de androiders où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X