Obtuve un concentrador USB 2.0 con alimentación (ET-UP900). Como fuente de energía estoy usando el cargador de teléfonos. Pero si conecto el concentrador con mi teléfono (SM-C115) no se carga. Si conecto el cargador directamente funciona.
Lo primero que pensé fue que el concentrador no proporciona suficiente energía. Pero si hago lo mismo con una tablet (SM-P905), que requiere más potencia, sí funciona.
También extraño: si el concentrador está alimentado, no funciona. Si el concentrador no está alimentado, funciona bien.
Como estoy usando un kernel de compilación personalizado, busco un dmesg y jugueteo con las opciones del kernel y el controlador para encontrar la configuración correcta.
Tal vez alguien me puede dar una pista de lo que podría funcionar?
Alternativa: ¿Algún cable que pueda enchufar para cargar el teléfono y usar el concentrador USB? Obtuve un cable de carga OTG pero alimentaría el concentrador USB en lugar del teléfono.
ACTUALIZACIÓN Encontré algo sobre un cable especial con una resistencia para entrar en un modo AUDIODOCK especial. Encontré este AUDIODOCK en el código fuente de un controlador relacionado que vi en dmesg drivers/misc/max77803-muic.c
. Tal vez pueda cambiar el controlador para forzar este modo todo el tiempo o algo así...
ACTUALIZACIÓN 2 Vi que drivers/misc/max77803-muic.c
la opción CONFIG_MUIC_MAX77803_SUPPORT_OTG_AUDIO_DOCK debe configurarse y el controlador que obtuve aquí no admite esto de todos modos. Supongo que trato de usar un controlador actualizado . Con soporte AUDIO_DOCK implementado.
Lo tengo funcionando. El chip max77803 en el SM-C115 también se usó en el S4, pero el controlador que tenía mi kernel no era compatible con el dispositivo ET-UP900. Así que busqué un controlador de kernel más nuevo y encontré danielpanzella/P900-kernel-source . En este controlador llaman al dispositivo LANHUB . Si echa un vistazo al código, también hay otros dispositivos. El controlador detecta según la resistencia en el pin de señal qué tipo de dispositivos están conectados.
Busqué en el repositorio LANHUB y fusioné esas líneas de código en mi kernel, construí el kernel, lo instalé con odin y ¡funcionó!
El concentrador USB, su tarjeta de red y los dispositivos USB conectados funcionan mientras obtengo energía del concentrador que carga el teléfono.
Actualizar
Algunos pasos para reproducir esto. Usé Vagrant como entorno para hacer funcionar una caja Linux limpia. Descargue el NDK y el código fuente del kernel y configure un compilador cruzado; vea cualquier tutorial del kernel :
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
A continuación, debe elegir el archivo de configuración correcto para su dispositivo:
cp arch/arm/configs/whatever .config
Edite la configuración para agregar un controlador:
make menuconfig
Para el adaptador ET-UP900, vaya a "Controladores de dispositivos" > "Compatibilidad con dispositivos de red" > "Adaptadores de red USB". Seleccione "Marco de trabajo en red USB multipropósito" y "Dispositivos Ethernet SMSC LAN95XX base USB 2.0 10/100"
Si la carga no funciona, mire "Controlador de dispositivo" > "Misc". Habilite la configuración con "SUPPORT_LANHUB" en ella.
Ahora guarde y salga de menuconfig y construya el kernel:
make bzImage
Su nuevo núcleo será arch/arm/boot/zImage
. Ahora necesita empaquetar esto junto con un ramdisk (cocina del kernel de Android) en un archivo boot.img y actualizarlo en el dispositivo (Odin).
Con el nuevo kernel y el adaptador adjunto, el comando bash netcfg
debería mostrarle eth0. Ejecutar dhcpcd -k eth0
para obtener una IP.
Para ver si algo no funciona, echa un vistazo a dmesg
.
drivers\net\usb\smsc95xx.c
controlador. Actualizo mi respuesta con algunos detalles...
miente ryan
Also strange: If the hub is powered it does not work. If the hub is not powered it works just fine.
¿Qué quieres decir con "alimentado" aquí?PiElNúmero