Подключаем USB-Yota-модем к Android-планшету

Jul 10, 2013   #android  #linux 

Disclaimer: все действия я проводил год назад на планшете Sanei N10. На других планшетах может что-то не работать.

Необходимо, чтобы были доступны исходники именно того ядра, которое установлено на устройство. Также нужна поддержка USB OTG (USB Host).
Я проводил действия на прошивке CyanogenMod.

Для работы usb-модема нужна поддержка устройств CDC (Communications Device Class) ACM (Abstract Control Model). Для этого нужен включенный в ядро модуль cdc_acm. Обычно он отключен или его нет вовсе.

Для добавления модуля cdc_acm его, очевидно, необходимо собрать.

  1. Скачиваем подходящие исходники ядра. Для меня это был бранч “lichee-3.0.8-sun4i” из репозитория “git://github.com/christiantroy/linux-allwinner.git”:

    git clone git://github.com/christiantroy/linux-allwinner.git
    git checkout lichee-3.0.8-sun4i
    
  2. Собираем ядро, попутно включая нужный модуль. Подробная информация о сборке здесь: http://wiki.cyanogenmod.com/wiki/Building_Kernel_from_source теперь здесь: http://oldwiki.cyanogenmod.org/wiki/Building_Kernel_from_source. Файл boot.img берётся из zip-файла с прошивкой cyanogenmod.

    export CCOMPILER=[extraction directory]/bin/arm-none-eabi-
    # здесь использовался Code Sourcery ARM EABI Toolchain, но, почему-то, в отличие от инструкции в wiki, в тулчейне имеются только файлы arm-none-eabi-*
    
    scripts/extract-ikconfig boot.img > .config
    make ARCH=arm CROSS_COMPILE=$CCOMPILER menuconfig
    # в menuconfig ищем пункт Device Drivers — Network device support — USB Network Adapters — CDC Ethernet support, нажимаем на нём M (или пробел)
    # далее многократными Esc-Esc выходим из меню, на вопрос "Сохранить ли конфиг?" отвечаем положительно
    
    make ARCH=arm CROSS_COMPILE=$CCOMPILER -j`grep 'processor' /proc/cpuinfo | wc -l`
    
  3. Забираем cdc_ether.ko из drivers/net/usb/

  4. Заливаем на устройство и включаем: adb push cdc_ether.ko /sdcard/ && adb shell insmod /sdcard/cdc_ether.ko

  5. Вставляем модем, заходим в Настройки - Беспроводные сети - Ещё… - Ethernet. Ставим галочку “Use Ethernet”. Имеем интернет.

Оригинальный пост за моим авторством здесь: http://4pda.ru/forum/index.php?showtopic=353811&view=findpost&p=14150947

comments powered by Disqus