USB сеть для устройства N900
USB сеть для устройства N900
Данная статья посвящена тому, как активировать сеть на устройстве N900 через USB. В первой части описывается, как сконфигурировать устройство Nokia N900 в качестве съемного USB сетевого устройства. Во второй части описываектся, как сконфигурировать различные платформы для того, чтобы устройство Nokia N900 можно было использовать в качестве сетевого устройства. В основе данной статьи лежит гипертекстовая среда Maemo 4.x для конфигурации USB сети.
Желание использовать N900 в качестве USB сетевого устройства может возникнуть, когда необходимо удаленно войти на устройство N900 или передать данные с устройства N900 на другой компьютер в тех случаях, когда не представляется возможным использовать Wi-Fi или Bluetooth. Если возникло желание соединить N900 с машиной Linux через TCP/IP, в разделе Соединяемость с компьютером документации по Maemo SDK также содержится полезная информация.
Содержание |
Конфигурация USB сети на устройстве N900
На устройстве N900 существует конфигурация интерфейса USB сети по умолчанию. В файле /etc/network/interfaces должен быть раздел, который выглядит следующим образом:
auto usb0 iface usb0 inet static address 192.168.2.15 netmask 255.255.255.0 gateway 192.168.2.14
Также можно добавить следующие строки, чтобы правильно установить маршрут по умолчанию
up route del default up route add default gw 192.168.2.14
и данные строки
up run-standalone.sh dbus-send --type=method_call --system --dest=com.nokia.icd /com/nokia/icd com.nokia.icd.connect string:DUMMY uint32:0
down run-standalone.sh dbus-send --system --dest=com.nokia.icd /com/nokia/icd_ui com.nokia.icd_ui.disconnect boolean:true
для установки/сброса менеджера соединений на соединение/отсоединение надлежащим образом, особенно в том случае, если установлена сеть DUMMY согласно предложенным далее инструкциям.
Согласно данной конфигурации по умолчанию у USB интерфейса на N900 IP-адрес будет 192.168.2.15, а у удаленного конца соединения - 192.168.2.14. По умолчанию интерфейс USB сети на N900 сконфигурирован. Пользователю необходимо инсталлировать пакет usb-network-modules.
Запуск режима USB сети
Подлючите один конец USB кабеля к хосту и другой конец – к устройству N900. На устройсте N900 будет вызван диалог выбора режима. Выберите 'Режим комплект для компьютера'.
Откройте командный процессор в 'X Terminal' на N900 и активируйте интерфейс, выполнив следующее:
sudo gainroot ifup usb0
Если все прошло правильно, сообщений об ошибках не появится. В результате использования команды 'ifconfig usb0' будут получены следующие данные на выходе:
Nokia-N900-42-11:~# ifconfig usb0 usb0 Link encap:Ethernet HWaddr F2:50:8F:04:1D:8B inet addr:192.168.2.15 Bcast:192.168.2.255 Mask:255.255.255.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:1021 errors:0 dropped:0 overruns:0 frame:0 TX packets:2003 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:86091 (84.0 KiB) TX bytes:2556598 (2.4 MiB)
Теперь должна появится возможность проверить связь с 192.168.2.15
Nokia-N900-42-11:~# ping 192.168.2.15 PING 192.168.2.15 (192.168.2.15): 56 data bytes 64 bytes from 192.168.2.15: seq=0 ttl=64 time=0.367 ms 64 bytes from 192.168.2.15: seq=1 ttl=64 time=0.214 ms ^C --- 192.168.2.15 ping statistics --- 2 packets transmitted, 2 packets received, 0% packet loss round-trip min/avg/max = 0.214/0.290/0.367 ms
Чтобы автоматически настроить usb0, когда устройство переходит в режим Комплект для компьютера, измените последние несколько строк в /usr/sbin/pcsuite-enable.sh, добавив строку "ifup usb0".
logger "$0: sent SIGUSR1 to syncd" ifup usb0 exit 0
Фактически, если пользователь хочет использовать функцию `Mail to exchange', чтобы синхронизировать почту, календарь или контакты с exchange server (таким, как google mail) режим `Комплект для компьютера' может блокировать обмен данными. Поэтому не используйте данную функцию, когда соединение выполняется в указанном режиме. Вместо этого выбирайте режим `только зарядка'. В данный режим можно войти, если не выбирать ни один из пунктов в вышеупомянутом меню. Просто кликните над меню, чтобы его закрыть. В режиме `только зарядка' пользователю по-прежнему предоставляется интерфейс usb0 при условии, что он уже был один раз инициализирован в режиме `Комплект для компьютера'.
Если не получается проверить связь с внешним миром (например, локальная сеть работает, а Google – нет), проверьте таблицы маршрутизации.
/home/user # route Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 192.168.2.0 * 255.255.255.0 U 0 0 0 usb0 default 192.168.2.14 0.0.0.0 UG 0 0 0 usb0 default * 0.0.0.0 U 0 0 0 gprs0
В случае ситуации, которая напоминает описанное выше, когда пакеты сотовой сети по умолчанию имеют более низкий приоритет, возможно, придется выполнить следующее для ее исправления:
/home/user # route del default /home/user # route Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 192.168.2.0 * 255.255.255.0 U 0 0 0 usb0 default * 0.0.0.0 U 0 0 0 gprs0 /home/user # ping google.com PING google.com (74.125.45.103): 56 data bytes 64 bytes from 74.125.45.103: seq=0 ttl=51 time=257.081 ms 64 bytes from 74.125.45.103: seq=1 ttl=51 time=236.481 ms 64 bytes from 74.125.45.103: seq=2 ttl=51 time=256.226 ms ^C --- google.com ping statistics --- 3 packets transmitted, 3 packets received, 0% packet loss round-trip min/avg/max = 236.481/249.929/257.081 ms
Если после исправления таблицы маршрутизации пользователь по прежнему не в состоянии проверить связь с внешним миром, попробуйте добавить nameserver в /etc/resolv.conf
nameserver 127.0.0.1 # added Google DNS nameserver 8.8.8.8 nameserver 8.8.4.4
Завершение режима USB сети
Данная процедура выполняется по желанию. Нет необходимости останавливать интерфейс после отсоединения USB кабеля.
Тем не менее, чтобы остановить USB интерфейс, отсоедините USB кабель и выполните в 'X Terminal'
sudo gainroot ifdown usb0
Настраивание MAC-адреса
По умолчанию устройство N900 назначает произвольный MAC-адрес для USB интерфейса при каждой перезагрузке. В результате этого некоторые операционные системы (MacOSX) будут обнаруживать новое устройство при каждом подключении N900 и предлагать сконфигурировать интерфейс сети. Решение заключается в назначении фиксированного MAC-адреса:
sudo gainroot echo options g_nokia host_addr=00:11:22:33:44:55 > /etc/modprobe.d/g_nokia
После следующей перезагрузки устройство N900 будет всегда распознаваться как одно то же устройство.
Конфигурация USB сети хоста
Конфигурация хоста детально описана в USB Networking гипертекстовой среде Maemo 4.x. Пожалуйста, обратитесь сюда за подробной информацией.
ИСПРАВИТЬ, для n900 нет режима USB хоста
Конфигурация хоста для Debian Lenny
Создайте файл в /etc/udev/rules.d/99-nokia-n900.rules и добавьте в него следующие строки:
SUBSYSTEM=="net", ACTION=="add", ATTRS{idVendor}=="0421", ATTRS{idProduct}=="01c8", ATTRS{manufacturer}=="Nokia", ATTRS{product}=="N900 (PC-Suite Mode)", NAME="n900" #SUBSYSTEM=="net", ACTION=="add", ATTRS{idVendor}=="0421", ATTRS{idProduct}=="01c8", ATTRS{manufacturer}=="Nokia", ATTRS{product}=="N900 (PC-Suite Mode)", NAME="n900p"
Обратите внимание, что предложенная выше конфигурация udev может не работать в рамках Debian. Данное правило переименовывает или интерфейс USB сети (usb0), или интерфейс USB телефонной сети (usbpn0) в интерфейс под названием n900. Так как два предложенных выше правила идентичны, выбор осуществляется, очевидно, произвольно. Если уточнить правила, добавив ключ DEVPATH, это помогает:
SUBSYSTEM=="net", ACTION=="add", DEVPATH=="/devices/pci0000:00/0000:00:1a.7/usb1/1-2/1-2:1.8/net/usb0", ATTRS{idVendor}=="0421", ATTRS{idProduct}=="01c8", ATTRS{manufacturer}=="Nokia", ATTRS{product}=="N900 (PC-Suite Mode)", NAME="n900" SUBSYSTEM=="net", ACTION=="add", DEVPATH=="/devices/pci0000:00/0000:00:1a.7/usb1/1-2/1-2:1.0/net/usbpn0", ATTRS{idVendor}=="0421", ATTRS{idProduct}=="01c8", ATTRS{manufacturer}=="Nokia", ATTRS{product}=="N900 (PC-Suite Mode)", NAME="n900p"
Конкретный ключ DEVPATH может, тем не менее, отличаться, в зависимости от того, какой USB порт используется на главном компьютере и так далее. Можно использовать
udevadm monitor --kernel
во время подключения N900, чтобы увидеть правильный путь.
После добавления правил udev, их нужно повторно загрузить при помощи:
udevadm control --reload-rules
Теперь отредактируйте /прочее/сеть/интерфейсы и добавьте:
allow-hotplug n900 auto n900 iface n900 inet static address 192.168.2.14 netmask 255.255.255.0 up iptables -A POSTROUTING -t nat -s 192.168.2.15/32 -j MASQUERADE up echo 1 > /proc/sys/net/ipv4/ip_forward down iptables -D POSTROUTING -t nat -s 192.168.2.15/32 -j MASQUERADE down echo 0 > /proc/sys/net/ipv4/ip_forward
Теперь подсоедините USB кабель к компьютеру и к n900. Чтобы проверить, что все настроено правильно, можно выполнить:
ifconfig n900
Автоматическая конфигурация при помощи Ubuntu 9.10
Обратите внимание: данная инструкция должна быть исправлена/усовершенствована:
Создайте файл в /etc/udev/rules.d/99-nokia-n900.rules и добавьте в него следующие строки:
SUBSYSTEM=="net", ACTION=="add", ENV{ID_USB_DRIVER}=="cdc_ether", ENV{ID_MODEL}="N900__PC-Suite_Mode", ENV{ID_VENDOR}=="Nokia", NAME="n900" SUBSYSTEM=="net", ACTION=="add", ENV{ID_USB_DRIVER}=="cdc_phonet", ENV{ID_MODEL}="N900__PC-Suite_Mode", ENV{ID_VENDOR}=="Nokia", NAME="n900pn"
Теперь отредактируйте /прочее/сеть/интерфейсы и добавьте:
auto n900 iface n900 inet static address 192.168.2.14 netmask 255.255.255.0 up iptables -A POSTROUTING -t nat -s 192.168.2.15/32 -j MASQUERADE up echo 1 > /proc/sys/net/ipv4/ip_forward down iptables -D POSTROUTING -t nat -s 192.168.2.15/32 -j MASQUERADE down echo 0 > /proc/sys/net/ipv4/ip_forward
Теперь необходимо исправить /etc/init/network-interface.conf, измените строку:
stop on net-device-removed INTERFACE=$INTERFACE
на
stop on net-device-remove INTERFACE=$INTERFACE
(Обратите внимание на разницу: net-device-removed)
Повторно загрузите правила udev при помощи:
udevadm control --reload-rules
Теперь подсоедините USB кабель к компьютеру и к n900.
Если пользователь не может автоматически подсоединится через сетевой аплет, может понадобиться вызвать интерфейс вручную:
ifup n900
Если все прошло успешно:
- при помощи команды ifconfig -a пользователь должен увидеть 2 новых интерфейса сети, n900 и n900pn. Первый из них сконфигурирован с надлежащим IP-адресом 192.168.2.15 и должен быть в состоянии проверять связь с n900.
- на n900 должна сразу же появиться возможность использовать Интернет соединение компьютера.
Windows XP
USB сеть Windows XP USB работает не идеально, но старый обход ошибки 770 по прежнему работает. Поэтому выполните следующие действия:
- Инсталлируйте приложение Mad Developer и запустите его.
- Кликните на "Управлять USB" и затем на "Загрузить g_ether"
- Подключите устройство к USB порту. Пользователю Windows будет предложено назвать драйвер устройства для RNDIS. Вручную отметьте драйвер устройства и выберите файл linux.inf на странице Подключение к сети через USB.
- Откройте терминал на устройстве N900 и получите права root, например через "sudo gainroot". Введите "ifconfig usb0 192.168.0.1"
- Теперь операционная система Windows должна оказывать, что соединение с сетью установлено. Задлайте IP-адрес компьютера в диалоге соединений Windows.
- Теперь пользователь должен быть в состоянии проверить связь с устройством, но не в обратном направлении, так как операционная система Windows по прежнему фильтрует сетевой трафик. Тем не менее, все остальное должно работать, MADDE.
Mac OS X
OS X обнаружит новый сетевой интерфейс и пользователю будет предложено его сконфигурировать. Выберите DHCP с адресом, вводимым вручную, и задайте 192.168.2.14 в качестве IP-адреса.
Чтобы использовать Интернет соединение Mac через USB сеть, не забудьте активировать Системные Привилегии -> Совместное использование -> Совместное использование Интернет для интерфейса N900 Инструкция
Использование USB сети для приложений Maemo
Стандартные сетевые приложения хорошо работают с USB сетью по умолчанию, в то время как приложения Maemo – нет.
Инсталлируйте libicd-network-dummy из репозитория Fremantle Nokia-binaries или, лучше, libicd-network-null из репозитория extras-devel. Когда USB сеть работает, выберите "Пустая сеть" в менеджере соединений. Есть пустая сеть не появляется в сетевом менеджере, можно выполнить следующие команды в xterm:
gconftool-2 -s -t string /system/osso/connectivity/IAP/DUMMY/type DUMMY gconftool-2 -s -t string /system/osso/connectivity/IAP/DUMMY/name "Dummy network"
и, возможно,
gconftool-2 -s -t string /system/osso/connectivity/IAP/DUMMY/autoconnect false
После этого перезапустите icd2:
killall icd2
или перезагрузите устройство.