Подключение к сети через USB

(Различия между версиями)
Перейти к: навигация, поиск
(Требования)
(Требования)
Строка 115: Строка 115:
 
* Для Windows 2000 понадобится загрузить драйверы RNDIS от компании Microsoft.
 
* Для Windows 2000 понадобится загрузить драйверы RNDIS от компании Microsoft.
 
* Загрузите файл Nokia770 USB Ethernet RNDIS.inf [http://homepage.hispeed.ch/mlivoncic/Nokia770%20USB%20Ethernet%20RNDIS.inf здесь] или [http://homepage.sunrise.ch/mysunrise/mlivoncic/Nokia770%20USB%20Ethernet%20RNDIS.inf здесь]. Он позволяет распознать, что драйвер RNDIS можно использовать на устройстве Nokia и на других устройствах USB, использующих операционную систему Linux.
 
* Загрузите файл Nokia770 USB Ethernet RNDIS.inf [http://homepage.hispeed.ch/mlivoncic/Nokia770%20USB%20Ethernet%20RNDIS.inf здесь] или [http://homepage.sunrise.ch/mysunrise/mlivoncic/Nokia770%20USB%20Ethernet%20RNDIS.inf здесь]. Он позволяет распознать, что драйвер RNDIS можно использовать на устройстве Nokia и на других устройствах USB, использующих операционную систему Linux.
* В случае использования устройства N800 пропустите все предлагаемые ниже действия. Они относятся к устройству N770; в дистрибутив Bora входит аплет панели управления под названием "maemo-statusbar-usbnet". После инсталляции панель управления Maemo-DM позволит изменять функцию USB порта с эмуляции MMC на эмуляцию RNDIS интерфейса USB сети Ethernet. Также понадобится установить 192.168.2.14 в качестве фиксированного IP-адреса на стороне операционной системы WinXP.
+
* В случае использования устройства N800 пропустите все предлагаемые ниже действия. Они относятся к устройству N770. В дистрибутив Bora входит аплет панели управления под названием "maemo-statusbar-usbnet". После инсталляции панель управления Maemo-DM позволит изменять функцию USB порта с эмуляции MMC на эмуляцию RNDIS интерфейса USB сети Ethernet. Также понадобится установить 192.168.2.14 в качестве фиксированного IP-адреса на стороне операционной системы WinXP.
  
 
===== Подготовка хоста в Windows =====
 
===== Подготовка хоста в Windows =====

Версия 01:32, 4 февраля 2010


Подключение к сети через USB

В данной статье исследуется, как платформу Maemo можно преобразовать в сетевое USB устройство. В первой части статьи описывается конфигурирование планшета Nokia в качестве съемного сетевого USB устройства. Вторая часть посвящена конфигурированию различных платформ для использования планшета Nokia в качестве сетевого устройства. Данная статья отчасти основана на инструкции по конфигурации USB сети для Maemo 3.x.

Может появиться необходимость использовать планшет в качестве сетевого USB устройства для удаленного входа в систему планшета или для передачи данных с планшета на другой компьютер в том случае, когда использовать Wi-Fi или Bluetooth не представляется возможным. При желании соединить планшет с компьютером, использующим операционную систему Linux, через протоколы TCP/IP, обратитесь в раздел соединяемость с компьютером в документации по комплекту программ для разработчика программного обеспечения Maemo.

Предупреждение В настоящее время зафиксирована ошибка в драйвере g_ether.ko в OS2008 (версии 4.0.1 и 4.1), которая препятствует корректной работе USB сети с компьютерами, использующими операционную систему Windows (но не с компьютерами, использующими операционную систему Linux). За подробностями обратитесь к описанию ошибки 3243. Данная ошибка была обнаружена приблизительно между ядрами 2.6.18 и 2.6.21, поэтому версии Maemo, основанные на ядрах 2.6.18 (например, OS2007 и предыдущие версии) будут работать.

Содержание


USB сеть для устройства N900

Пожалуйста, обратитесь к статье USB сеть для устройства N900.

Конфигурация USB сети на планшете

Подключаемая программа строки состояния USB

Аплет usb-otg-plugin [НЕРАБОЧАЯ ССЫЛКА] позволяет настроить USB сеть на стороне планшета и переключаться между режимами хоста и клиента. Данный способ очень прост, дополнительная конфигурация на стороне планшета не требуется.

В качестве альтернативы можно использовать аплет USB сети, предлагаемый здесь:

 http://repository.maemo.org/extras-devel/pool/diablo/free/m/maemo-control/

За кулисами

Обычно драйвер массового запоминающего устройства USB управляет аппаратным обеспечением USB. USBNet позволяет сетевому драйверу g_ether взять на себя управление USB интерфейсом.

После инсталляции USB сети установите пустую точку доступа, выполнив следующее:

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 boolean /system/osso/connectivity/IAP/DUMMY/autoconnect true

В менеджере соединений пользователь должен увидеть появившееся соединение по умолчанию.

Предупреждение На настоящий момент зафиксирована ошибка в Diablo, в результате которой пустые соединения не показываются в менеджере соединений. Полуофициальное исправление описано в общих чертах в описании ошибки 3306.

Запуск и остановка режима USB сети

Для легкого запуска и остановки режима USB сети поместите следующий сценарий в /разное/init.d/usbnet на планшете. Для этого потребуется доступ с правами администратора к устройству.

Важно отключать USB кабель во время переключения между режимами, выполнив данный сценарий.

#! /bin/sh
#
# Startup script for USBnet (networking, instead of USB Mass Storage behaviour)
# Author: Michael Mlivoncic

PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
NAME=usbnet
DESC="USB Networking for Nokia Internet Tablets"
INITFILE=/etc/init.d/$NAME

case "$1" in
start)
        umount /media/mmc1
        umount /media/mmc2
        sleep 2
        USBNET="`lsmod | grep g_ether`"
        KERNEL_VERSION="`uname -r`"
        if [ "$USBNET" = "" ]
        then
           echo "Entering Ethernet via USB mode (g_ether)..."
           insmod /mnt/initfs/lib/modules/$KERNEL_VERSION/g_ether.ko
           echo "Waiting, then bringing up the usb0 interface.."
           sleep 1
           /sbin/ifup usb0
        else
          echo "Already in Ethernet-via-USB mode..."
          echo "Try ping 192.168.2.15"
        fi
        ;;
stop)
         echo "switching back to USB Mass Storage mode..."
         echo "removing module g_ether"
         /sbin/ifdown usb0
         sleep 2
         rmmod g_ether
        ;;
*)
        printf "Usage: $INITFILE {start|stop}\n" >&2
        exit 1
        ;;
esac

exit 0

Для сценария требуются разрешения на выполнение, которые можно предоставить при помощи

sudo chmod a+x /etc/init.d/usbnet

Данный сценарий является базовым, но он может выполнятся автоматически при запуске или вручную, используя команду:

sudo /etc/init.d/usbnet [start|stop]

для активации или деактивации USB сети.

На планшетах Nokia N800 и 770 есть конфигурация интерфейса USB сети по умолчанию. В файле /разное/сеть/интерфейсы должен быть раздел, выглядящий следующим образом:

auto usb0
iface usb0 inet static
       address 192.168.2.15
       netmask 255.255.255.0
       gateway 192.168.2.14

Для данного соединения по умолчанию IP-адрес интерфейса планшета - 192.168.2.15. IP-адрес удаленного конца соединения – 192.168.2.14.

Конфигурация хоста USB сети

Windows

Требования
  • Для Windows 2000 понадобится загрузить драйверы RNDIS от компании Microsoft.
  • Загрузите файл Nokia770 USB Ethernet RNDIS.inf здесь или здесь. Он позволяет распознать, что драйвер RNDIS можно использовать на устройстве Nokia и на других устройствах USB, использующих операционную систему Linux.
  • В случае использования устройства N800 пропустите все предлагаемые ниже действия. Они относятся к устройству N770. В дистрибутив Bora входит аплет панели управления под названием "maemo-statusbar-usbnet". После инсталляции панель управления Maemo-DM позволит изменять функцию USB порта с эмуляции MMC на эмуляцию RNDIS интерфейса USB сети Ethernet. Также понадобится установить 192.168.2.14 в качестве фиксированного IP-адреса на стороне операционной системы WinXP.
Подготовка хоста в Windows

В операционной системе Windows 2000 загрузите и распакуйте файл RNDIS-USB-Kit_05.exe с сайта компании Microsoft. Потребуется скопировать файлы rndismpy.sys (30 Kб) и usb8023y.sys (14 Kб) из

RNDIS USB kit 2005\Drivers\x86fre\sys

в любую выбранную папку, например c:\драйверы\Nokia770_RNDIS. Добавьте файл Nokia770 USB Ethernet RNDIS.inf ту же самую папку. Установка драйвера закончена.

После соединения устройства Nokia с компьютером оно начнет искать подходящий драйвер. В отличие от режима запоминающего устройства USB, Windows не сможет найти подходящий драйвер по умолчанию. Windows поддерживает так называемые RNDIS устройства, но данной операционной системе неизвестно, что устройство N770 будет действовать таким же образом. Следовательно, необходимо предоставить ей необходимые инструкции: в диалоге драйвера укажите местоположение драйвера. Укажите каталог, в который ранее был загружен файл Nokia770 USB Ethernet RNDIS.inf (или linux.inf). Будет показан драйвер под названием Linux USB Ethernet/RNDIS Gadget . Инсталлируйте его.

После этого появится новая сетевая карта с данным названием, которую можно конфигурировать обычным образом. Установите 192.168.2.14 в качестве IP-адреса. По желанию активируйте службу ICS на сетевом адаптере для совместного использования внешнего мира на устройстве Nokia.

Linux

Конфигурация ядра

Модуль usbnet должен быть доступен для ядра Linux. В большинстве дистрибутивов это обеспечивается по умолчанию. Если это не так в данном дистрибутиве, понадобится активировать поддержку USB сети в ядре. При построении собственного ядра понадобится поддержка знака маршрута сообщения Ethernet в сетевых адапторах USB.

#
# USB Network Adapters
#
...
CONFIG_USB_USBNET=m
...
CONFIG_USB_NET_CDCETHER=m
...
На основе NetworkManager =

Последняя версия программы управления сетевыми соединениями NetworkManager (по крайней мере в дистрибутивах Fedora 12 и Ubuntu Karmic Koala) прекрасно поддерживает Ethernet USB приспособления. Тем не менее, запись 'auto usb0', которую она создает в списке соединений, конфигурируется для протокола DHCP. Планшет не будет это обеспечивать, поэтому время ожидания истечет.

Самый простой и безошибочный способ исправления ситуации заключается, возможно, в создании нового соединения, используя такой же MAC-адрес, что и у записи auto usb0. После этого следует обеспечить фиксированный IP-адрес: например, 192.168.2.14/255.255.255.0. В качестве альтернативы можно изменить настройки в соединении, созданном программой network-manager.

Fedora

Предыдущие версии дистрибутива Fedora также прекрасно поддерживают Ethernet USB приспособления. Чтобы сконфигурировать USB сеть:

  • Соедините планшет с g_ether.ko, загруженным на компьютер с операционной системой Linux
  • Откройте Система -> Управлять -> Сеть (или выполните system-config-network в командной строке).
  • Нажмите на кнопку Добавить для создания нового интерфейса сети. Выберите Ethernet в качестве типа сетевой карты.
  • На следующем экране выберите Netchip Technology, Inc. Linux-USB Ethernet/RNDIS Gadget (usb0) или Nokia Mobile Phones N900 (PC-Suite Mode).
  • Выберите Статический IP-адрес и введите 192.168.2.15 в качестве IP-адреса для компьютера, если на планшете используется конфигурация usb0 по умолчанию. Не заполняйте поле шлюза на стороне дистрибутива Fedora.
  • Заполните остальные настройки (службу доменных имен и так далее) при желании, затем нажмите Закончить.

Теперь вновь соедините планшет с компьютером и интерфейс должен автоматически сконфигурироваться.

Debian

Убедитесь, что модуль usbnet доступен для ядра (для проверки используйте modprobe usbnet, затем lsmod).

Добавьте следующее в /разное/сеть/интерфейсы:

allow-hotplug usb0

mapping hotplug
        script grep
        map usb0

iface usb0 inet static
       address 192.168.2.14
       netmask 255.255.255.0
       broadcast 192.168.2.255
       up iptables -I INPUT 1 -s 192.168.2.15 -j ACCEPT

После подключения планшета интерфейс сети можно запустить при помощи команды ifup usb0.

Конфигурация хоста в качестве шлюза

Если у хоста нет правил брандмауэра, можно настроить правила шлюза, модифицировав файл /разное/интерфейсы.

iface usb0 inet static
        address 192.168.2.14
        netmask 255.255.255.0
        up echo 1 > /proc/sys/net/ipv4/ip_forward
        up iptables -P FORWARD ACCEPT
        up iptables -A POSTROUTING -t nat -j MASQUERADE -s 192.168.2.0/24
        down echo 0 > /proc/sys/net/ipv4/ip_forward
        down iptables -t nat -F POSTROUTING

В противном случае добавьте необходимые имитирующие правила к стандартным правилам брандмауэра.

При получении следующей ошибки:

iptables v1.2.11: can't initialize iptables table `NAT': Table does not exist (do you need to insmod?)
Perhaps iptables or your kernel needs to be upgraded.

Необходимо проверить, чтобы в ядро были включены релевантные модули таблицы iptables и hotplug или udev были надлежащим образом настроены на компьютере.

Конфигурация хоста в качестве моста

Обычно интерфейс eth0 использует DHCP. Данная конфигурация позволяет планшету находиться в той же самой локальной сети, что и остальные устройства. Необходимо, чтобы был инсталлирован модуль мост для 802.1d Ethernet Bridging.

iface br0 inet dhcp
         hostname ash
         pre-up   echo     "Adding ethernet bridge between LAN and PAN"
         pre-up   ifconfig eth0 0.0.0.0
         pre-up   brctl    addbr br3
         pre-up   brctl    setfd br3 0
         pre-up   brctl    stp br3 off
         pre-up   brctl    addif br3 eth0         
         pre-down echo     "Removing ethernet bridge between LAN and PAN"
         post-down brctl    delif br3 eth0
         post-down brctl    delbr br3
         post-down ifdown eth0
         post-down ifup eth0

После выполнения

 ifup br0

планшет будет в локальной сети.

Конфигурация брандмауэра хоста

Если хост операционной системы Linux сконфигурирован с брандмауэром с жесткими правиламиl, возможно понадобится модифицировать таблицу iptables для предоставления планшету доступа к Интернет через USB сеть.

Для разрешения доступа к планшету и с планшета требуются следующие правила таблицы iptables:

 iptables -A OUTPUT -o usb0 -j ACCEPT
 iptables -A INPUT -i usb0 -j ACCEPT

Проверка соединения

Для проверки соединения можно или ввести ping 192.168.2.15 на компьютере или ping 192.168.2.14 в Xterm на планшете.

Для устранения проблем используйте ifconfig -a и route для проверки на устройстве Nokia и на компьютере с операционными системами Linux или Unix и ipconfig /all и route print в операционной системе Windows.

Известные проблемы

При отсоединении и повторном соединении двух устройств при помощи USB кабеля Windows выведет код 10-ошибка, сообщающий, что устройство не может должным образом запуститься. Как оказалось, проблема связана с планшетом Nokia, так как после перезагрузки устройства сеть снова работает. Помните, что прежде всего необходимо инициализировать g_ether до подключения планшета к USB хосту.

Проблема также наблюдается и в Ubuntu. В результате повторного подключения в журнале регистрации ядра появляются следующие сообщения:

[182104.412082] usb 3-1: new full speed USB device using uhci_hcd and address 29
[182104.824071] usb 3-1: device not accepting address 29, error -71
[182104.824100] hub 3-0:1.0: unable to enumerate USB device on port 1

Перезагрузка планшета должна помочь.

Часто задаваемые вопросы

  1. Если устройство 770 уже подключено к операционной системе XP, которая распознала его как драйвер, необходимо ли удалить программное обеспечение драйвера, которое заставляет его выступать в качестве USB драйвера, и поменять его на драйверы USBNet?
    • Нет, операционная система Windows регистрирует планшет в сетевом режиме как отдельное устройство.
    • Тем не менее, как уже сообщалось ранее: необходимо выполнить команду insmod для модуля ядра на планшете до подключения шнура!
  2. При попытки выполнить описанные выше действия выдается ошибка, в которой сообщается, что драйвер, который пользователь пытается выбрать, не имеет никакого отношения к аппаратному обеспечению.
    • Убедитесь, что USB сеть надлежащим образом активирована на стороне устройства Nokia.
  3. Планшет теперь может взаимодействовать с компьютером с операционной системой XP, но как получить доступ к остальной части сети?
    Во-первых, настройте пустую точку доступа, следуя ранее приведенной инструкции, таким образом, чтобы можно было конфигурировать настройки сети в менеджере соединений для соединений usbnet. Это позволит сконфигурировать доступ к proxy-серверу. Во-вторых, инсталлируйте proxy-сервер на локальном компьютере. Примеры включают в себя proxomitron или freeproxy.
  4. Как настроить DNS после соединения планшета и хоста?
    • Инсталлируйте и сконфигурируйте pdnsd на хост-компьютер и добавьте DNS 192.168.2.14 в файл /разное/resolv.conf на планшете.
    • или сконфигурируйте хост в качестве шлюза и используйте те же самые DNS серверы, как и хост (не создавая конфликта между файлом /разное/resolv.conf и сервером dnsmasq):
    отобразите "nameserver xxx.xxx.xxx.xxx" >> /tmp/resolv.conf.ppp0
    где xxx.xxx.xxx.xxx - DNS сервер хоста (найденный в файле /разное/resolv.conf на хосте с операционной системой Linux)
    при необходимости отобразите повторно второй адрес.
    Не забудьте выбрать пустое соединение в менеджере беспроводного соединения на планшете и выполнить 'ifup usb0' на устройстве с Linux.
  5. Как не допустить размонтирования SD карт памяти?
    • До подключения USB шнура откройте два x терминала и в первом выполните cd /медиа/mmc1, а во втором – cd /медиа/mmc2 и оставьте их там. Пока данные каталоги открыты, карты памяти остаются доступными. Драйвер usbnet будет тем не менее успешно работать.
Личные инструменты
Пространства имён
Варианты
Действия
Навигация
Инструменты