Nokia N9 | Nokia N900 | Aava Mobile | Nokia N810 | Nokia N800 | Nokia 770

Навигаторы: Приложения, Игры, Игры WebOS, Видео, Барахолка
Обсуждения: Приложения, Игры, Игры WebOS, Эмуляторы, Видео, Темы, Обои, Программы для PC

База знаний (FAQ) | Установка deb-файлов | Как обновить прошивку

Если у Вас есть интересные сведения, которые стоит разместить в новостях, то можете их выложить самостоятельно. Этим заслужите благодарность участников и администрации нашего сообщества. Подробнее...

HowNotTo для работы в режиме host

Поделиться:

это мое HOWNOTTO получения работы USB в режиме host'а. Я надеюсь, кто-то может повторить успех MohammadAG или по крайней мере узнать, что я сделал неправильно.

Внимание: Это только для специалистов! i2cset может привести к повреждению устройства.

0. Вам понадобятся F/F USB-адаптрер, USB-кабель и n900 с потреблением энергии <200mA.

1. Установленое ядро MohammadAG (с sarahn's patches + power ignore patch + appropriate configuration), i2ctools (i2cset in PATH) и sysklogd.

У меня: установлена прошивка PR1.2, wi-fi включен, bluetooth выключен, сеть 2.5G, autodisconnect включен. Метод работы egoshin'а (будет принимать при подключении к ПК).

2. Включенное устройство с USB-кабелем, но не подключенным(приконектченым) устройством.

3.

pcsuite-enable.sh

дополнительно:

echo USB debug start > /var/log/syslog

и:

echo 10 > /sys/module/musb_hdrc/parameters/debug

4. запустить прилагаемый скрипт

sh host.txt -d

который показывает состояние после каждого шага.

5. сразу же подключить USB-устройство

6. проверить dmesg и /proc/driver/musb_hdrc

7. повторить, отключить USB-устройство,

killall sh; start bme; sleep 2; cat /proc/driver/musb_hdrc

примерно через 30 сек вы увидите:

Status: MHDRC, Mode=Peripheral (Power=20, DevCtl=80)

затем перейти к пункту 4.

Мои результаты: (с -d флагом) start: Mode=Peripheral (Power=20, DevCtl=80)

echo H: Mode=Peripheral (Power=20, DevCtl=82)

echo e: Mode=Peripheral (Power=20, DevCtl=82)

echo F: Mode=Peripheral (Power=60, DevCtl=83)

bme stopped: Mode=Peripheral (Power=60, DevCtl=83)

slept 3sec: Mode=Peripheral (Power=20, DevCtl=80)

i2cset: Mode=Peripheral (Power=f1, DevCtl=99)

later: Mode=Peripheral (Power=e1, DevCtl=99)

для описания power+devctl флага смотрим:

drivers/usb/musb/musb_regs.h

с методом egoshin'а:

Status: MHDRC, Mode=Host (Power=f0, DevCtl=dd)

OTG state: b_peripheral:3; active

dmesg:

[ 1863.465087] musb_restore_ctx_and_resume  435: restoring register context for musb_restore_ctx_and_resume
[ 1863.465087] rx51_xceiv_power 1
[ 1863.465698] rx51_xceiv_reset
[ 1863.850799] musb_interrupt       1948: ** IRQ peripheral usb0001 tx0000 rx0000
[ 1863.850830] musb_stage0_irq       643: <== Power=e5, DevCtl=99, int_usb=0x1
[ 1863.850860] musb_stage0_irq       829: SUSPEND (b_idle) devctl 99 power e5
[ 1863.874389] musb_interrupt       1948: ** IRQ peripheral usb0001 tx0000 rx0000
[ 1863.874420] musb_stage0_irq       643: <== Power=e1, DevCtl=99, int_usb=0x1
[ 1863.874420] musb_stage0_irq       829: SUSPEND (b_idle) devctl 99 power e1
[ 1871.680358] musb_platform_try_idle  160: b_idle inactive, for idle timer for 7 ms

Что получил MohammadAG после той же команды( его устройство находилось в R&D режиме, для меня это не имеет значения):

Status: MHDRC, Mode=Host (Power=f0, DevCtl=dd)

OTG state: a_host:9; active

с flash plugged in(не влючен) ???

Status: MHDRC, Mode=Host (Power=e0, DevCtl=99)

с bme:

Status: MHDRC, Mode=Host (Power=20, DevCtl=80)

MohammadAG: OTG state: b_idle:1; inactive

Если я сначала применял метот egoshin'а, то получал:

Status: MHDRC, Mode=Host (Power=e1, DevCtl=99)

но снова устройство не обнаруживалось OTG state: b_idle:1; inactive

Файл:Txt.jpg host.txt
Создатель сайта и оформления Кирилл Чувилин aka KiRiK, на странице использованы скрипты проекта MediaWiki.