Rndis usb ethernet что это

Обновлено: 06.07.2024

Для начала откроем режим разработчика. Пример на базе смартфона Samsung. Идем в настройки.




Пример на Huawei:


Видим следующее (Samsung):



Теперь пройдемся по каждому пункту.

Пункты меню

Передача файлов (MTP или Media Transfer Protocol). Передача любых доступных файлов, будь то музыка, видео, фотографии, документы и т.д.

Передача изображений (MTP или Picture Transfer Protocol ). В этом режиме при подключении смартфона к компьютеру или ноутбуку и после разблокировки экрана становится доступна передача изображений, а также видеороликов.

USB-модем (RNDIS или USB Ethernet). Подключается как USB-модем, то есть вы можете использовать смартфон как точку доступа для ПК или ноутбука.

MIDI. Позволяет использовать ваш смартфон как MIDI-устройство.

Аудиоисточник. Использование вашего смартфона как источник вывода звука.

Только зарядка. В этом случае доступ к данным после разблокировки экрана не осуществляется, смартфон лишь заряжается от вашего ПК или ноутбука.

Первым делом хотелось бы с лучшими пожеланиями поздравить всех с минувшими новогодними праздниками.

Ранее в статье была анонсирована разработка RNDIS USB драйвера для контроллеров серии STM32F4. С тех пор библиотека постепенно развивалась и нынче доросла до первой release-версии. Библиотека под названием LRNDIS (LWIP + RNDIS) позволяет нам создавать на базе контроллера STM32F4 как устройства класса USB «модем», так и любые другие устройства с управлением через web-интерфейс. Пример управления платой stm32f4-discovery из web-браузера на Android-планшете представлен на видео:

image

На странице видеоролика представлена ссылка на исходные коды и HEX-файл прошивки для платы discovery, с которым вы сможете повторить данный эксперимент. В статье рассказано о том, как и когда технология доступа через WEB-интерфейс полезна, а также — как работает библиотека LRNDIS для контроллеров STM32F4. Также присутствует обучающий материал о работе USB и устройстве Ethernet-сетей.

Предыстория создания библиотеки

Предыстория проекта весьма типовая. Стоял тёплый летний день. Гхм… Для заказчика стояла задача разработать устройство с сервисным интерфейсом управления.

По мере развития прошивки было введено несколько команд управления по VCP-интерфейсу. Это значит, что после подключения USB-устройства в ОС создавался виртуальный COM-порт. Используя его, из пользовательского терминала передавались команды управления и диагностики. В ответ от устройства принимался статус выполнения и его текущее состояние.

Система вполне типовая с сервисной точки зрения: есть последовательный порт и набор команд для управления и диагностики.

Всё изменилось в короткий срок. По объективным причинам рос требуемый набор команд. Также понадобилась интерактивность вывода: некоторые параметры стало необходимо отображать в динамике. Как, например, показания магнитного датчика при проносе мимо него ферромагнетика. Для этого были введены дополнительные команды, которые, оперируя управляющими последовательностями, печатали информацию в пользовательском терминале с высокой периодичностью. Это создавало необходимое ощущение риалтаймовости наблюдения. Интерактивные команды оказались настолько удобными для инженеров, что некоторая часть команд позже была добавлена в соответствии с концепцией. И тут раздался треск. Требовалось поддержать сразу несколько групп команд: интерактивные, диагностические, команды управления. При этом периодический рефакторинг кода был связан с трудоёмкой правкой в большом количестве обрабатываемых команд. Ясно стало, что ещё должна быть пользовательская группа команд — для менее квалифицированного персонала, который будет просто следовать инструкциям по эксплуатации. Для них возникла идея написания клиентского терминала с кнопочками и флажочками… И вот тут возникли сомнения: стало ясно, что мы занимаемся сервисной частью, уделяя всё меньше внимания функциональности! А ведь пользовательская программа, запускаемая на клиентской ЭВМ, также должна обладать своими требованиями: кроссплатформенность и LTS (длительностью поддержки).

Устройство, предположим, мы закончили, а пользовательское ПО мы должны портировать и тестировать с каждой версией выпускаемых операционных систем! А как долго?

Так и родился вопрос — как избавиться от дополнительных трудозатрат?

Было принято решение использовать стандарты гарантированно длительной поддержки. Те стандарты, которые нам позволят создать клиентскую программу управления устройством, которая будет поддерживаться максимально полным набором операционных систем в настоящем и будущем времени. На первых парах были найдены недостатки популярных кроссплатформенных фрэймворков:
— java: необходимость наличия в ОС JVM, и вытекающий из противного предположения необходимость дистрибьюции виртуальной машины
— qt: периодическая необходимость версионного портирования и нюансы запуска под Android.

Нет, эти сложности пугать не должны. Вопрос, пожалуй, только в трудочасах, которые мы, бывает, недооцениваем с учётом фактора длительной поддержки.

image

Сфера применения библиотеки

К сожалению, первый анонс в полной мере успешным не был, т.к. рассказ о сфере применения был упущен.
Попробуем немного наверстать упущенное и раскрыть эту тему.
Если мы находимся на этапе системного проектирования устройства, то следующие соображения могут склонить нас в сторону использования web-интерфейсов (вне зависимости от физического канала, Ethernet или USB):
1. Устройство должно иметь интерфейс управления и/или диагностики
2. Средства управления могут использоваться не только на этапе разработки, но и на этапе эксплуатации (ПО пользователя)
3. Квалификация пользователя может быть недостаточно высокой, что требует дружественный интерфейс управления
4. Способ «дружественного» управления должен быть доступен из под разных платформ и ОС
5. Соответствующие средства требуется поддерживать в рабочем состоянии длительное время
Дополнительным критерием может являться то, разрабатываем ли мы изначально сетевое устройство. А также: не будет ли (в противном случае) добавление в прошивку сетевого стека и web-сервера являться избыточным на фоне куда менее богатого функционала устройства. Иными словами, добавление web-интерфейса в контроллер управления лампочкой — очевидно, избыточное решение.

Если мы поверили в web-интерфейс, то следующие соображения, возможно, нам помогут в выборе физического канала связи (из Ethernet и USB перспективы).

Тип Внутрисхемное подключение Типовое применение
Ethernet Ethernet PHY контроллер — Промышленные устройства
— Бытовые устройства с сетевой функцией и доп. питанием
USB ULPI контроллер или прямое подключение к МК Бытовые и часть промышленных устройств. В особенности, если:
— устройства имеют не гарантированный источник питания (питание от батареи, например)
— устройства потенциально подключаемые к хосту только с USB интерфейсом (например, планшет)
— миниатюрный класс устройств

От себя добавлю — не смотря на все прелести, не посоветовал бы применять USB в промышленных узлах с требованием повышенной надёжности: часто встречается негативный опыт. Если альтернативы нет — то вопрос устойчивости требуется изучить досконально.
Исходя из приведённых пунктов, становится ясна сфера применения библиотеки: бытовые и часть промышленных устройств, которые:
— работают на базе МК STM32F4
— должны обладать дружественным интерфейсом управления
— должны управляться из под разного аппаратного и программного набора
— могут не иметь гарантированного источника питания
— должны иметь длительный период поддержки ПО управления
Возможных примеров использования технологии много даже вне области сугубо сетевых устройств.
К примеру, на данный момент есть планы по превращению stm32f4-discovery в инструмент любительской разработки с функциями портативного генератора/анализатора сигналов и осциллографа. Подключите такой помощник к телефону и посмотрите в динамике что происходит в интересующей вас цепи. Из бесплатных плюсов — не требуется собирать или устанавливать ПО; достаточно прошить HEX-файл и открыть браузер — в нём будут присутствовать все прелести GUI-интерфейса. На мой привередливый вкус — то что нужно. Конечно, инструмент не для профессиональной разработки, но известный интерес к нему присутствует.

Итак, надеюсь, разобрались. А теперь о том как работает библиотека.

image

Как оно работает

При ответе на этот вопрос спешить не будем. Человек, имеющий небольшой опыт взаимодействия с сетями, может вполне справедливо смутиться. Поэтому, касаясь того или иного протокола взаимодействия я буду также давать его краткое техническое описание на том уровне… которого когда-то не хватало самому.

Шаг 1. Подключаем USB-устройство.
Как говорилось раньше, на этом этапе наше устройство говорит хосту «я — сетевая карта!».
Хост (т.е. клиентская ЭВМ) после подключения к нему нашей поделки, начинает отправлять запросы.

— как изделие называется
— какой у изделия VID и PID (идентификаторы производителя и изделия, см. список)
— к какому классу и подклассу относится устройство
— по каким endpoint точкам и какими блоками следует обмениваться данными
Ну, и некоторую другую информацию. Конфигурационные пакеты при этом передаются по точке endpoint 0. Ответные пакеты от устройства с информацией о себе обычно называют «дескрипторы USB устройства».

Подробно ознакомиться о процессе опроса (энумерации) можно здесь.

Вообще, протокол USB достаточно богат… иногда даже кажется, что избыточно. Однако, это богатство вот уже много лет позволяет подключать совершенно разные устройства, даёт возможность передавать изохронные потоки, блоки данных, прерывания. В общем, всё необходимое, что может потребоваться широкому набору современных устройств. Обратная сторона медали — высокий порог входа в разработку USB-устройств.

После получения информации об устройстве, ОС хоста производит поиск подходящего драйвера для взаимодействия. В типовом случае, вроде flash-носителей (USB класс MSC) или клавиатуры с мышкой (HID класс), загружается стандартный для класса драйвер. В более «тяжёлом» случае, вроде нашей USB сетевой карты (CDC класс с RNDIS подклассом), операционная система поступает по усмотрению:
— ОС linux/android/mac, как правило, успешно пытается наладить типовой обмен
— ОС windows просит установить внешний драйвер
Наше устройство в первом случае работает сразу.
В случае ОС windows (позднее XP) можно установить стандартный драйвер фирмы Microsoft. Для Windows XP необходимо поставить inf-файл, доступный в репозитории библиотеки LRNDIS.

Шаг 2. Драйвер инициализирует RNDIS-устройство
На данной картинке изображён принцип связи с RNDIS устройством (ОС Windows).

image

Более подробно о нём можно почитать тут и там.

Если вкратце, то RNDIS протокол — это расширение NDIS для внешних устройств. Роль протокола — обеспечить поддержку PnP и обмен сетевыми пакетами. По сути своей, RNDIS — самостоятельный сетевой интерфейс, информационной нагрузкой которого являются кадры канального/сетевого уровней (Ethernet или IP кадры, опционально).

На приведённой схеме это реализует кубик «Минипорт Remote NDIS», который отвечает за:
— сервис общения (спросить у сетевого устройства его MAC-адрес, размер пакета, скорость работы и прочее)
— оборачивает отправляемые хостом сетевые пакеты в RNDIS заголовок
— транслирует принимаемые от устройства пакеты, выбрасывая RNDIS заголовок
Кубик «Минипорт Remote NDIS USB» отвечает за транзит RNDIS посылок, работая с драйвером USB шины.
На стороне контроллера STM32 за поддержку RNDIS протокола и работу с USB отвечает файл usbd_rndis_core.c. Он делает то же самое, что и «кубик» хоста «Минипорт Remote NDIS» — занимается приклеиванием/отклеиванием заголовков, а также отвечает на вопросы драйвера. Ответы, вроде MAC-адреса и скорости он берёт из файла usbd_rndis_core.h.
После успешной инициализации RNDIS драйвер Windows создаёт сетевой интерфейс, который в последствии отображается в «Центре управления сетями» и в области трей-индикатора.

Шаг 3. Получение IP-адреса
Итак, для чего нужна служба получения динамического адреса. Эта служба называется DHCP (протокол динамической настройки узла).
После того как хост инициализирует наше устройство, он создаёт сетевой интерфейс.

Сетевой интерфейс — это программная сущность, предоставляющая доступ к ресурсам физической или виртуальной сети.
Чаще всего каждому сетевому интерфейсу хоста соответствует конкретный сетевой адаптер. Но есть множество других интерфейсов, вроде локальной петли или те, что служат для взаимодействия с виртуальной машиной. В их случае в сигнальном виде из хоста «ничего не выходит» — обмен происходит программным способом.

Каждому сетевому интерфейсу хоста должен быть сопоставлен хотябы один IP-адрес. По нему «жители сети» может обратиться к хосту.

Если «на проводе» адресовано несколько сетей (например, устройства с IP адресами 10.4.1.xx и 192.168.1.xx), то интерфейсу может назначаться два «личных» IP-адреса. Они могут выглядеть так: 10.4.1.151 и 192.168.1.200. Узнать набор сетевых интерфейсов и сопоставленных им IP-адресов в ОС Windows можно с помощью команды ipconfig и с помощью ifconfig в ОС Linux.

Для описания сетей/подсетей используется маска. Например, правильное описание сети 10.4.1.xx такое: сеть 10.4.1.0, маска 255.255.255.0. Либо, если 4-ёх байтовое число маски представить в двоичном виде и посчитать число ведущих едениц, то получится значение 24. Тогда сеть можно описать так: 10.4.1.0/24.

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

Известны две основные стратегии назначения IP-адреса интерфейсу: статический способ (когда пользователь сам прописывает адрес интерфейсу) и динамический (с помощью DHCP-службы).

Последний заключается в том, что при создании интерфейса на хосте активизируется служба DHCP-клиента. Она начинает посылать в сеть (конфигурация которой пока не известна) широковещательные пакеты по протоколу UDP, в надежде на то, что в сети присутствует DHCP-сервер.

image

Функция DHCP-сервера в общем, и в частности на нашем контроллере — ответить клиенту. В ответе контроллер «говорит»: клиент, ты в такой-то сети, держи такой-то IP-адрес, а ещё у нас имеется DNS-сервер с таким-то адресом.

После этого хост «чувствует себя» намного лучше: он назначает интерфейсу выданный IP-адрес и запоминает IP-адрес DNS-сервера.

Инициализация закончилась, теперь можно вводить имя страницы (run.stm) в браузере хоста.

Надо сказать, что поведение библиотеки LRNDIS настраивается. Службу DHCP-сервера можно исключить из сборки. Тогда на хосте придётся прописывать любой адрес, принадлежащий диапазону 192.168.7.(2-254). Такая сеть создаётся по умолчанию. Её параметры (192.168.7.0/24) также настраиваются. В примере клиенту выдаются адреса в диапазоне 192.168.7.2… 192.168.7.4 с временем лизинга 24 часа.
Более подробно по вопросу настройки библиотеки можно посмотреть в предыдущей статье.

Шаг 4. Загрузка страницы
Для загрузки страницы пользователь может ввести адрес нашего устройства 192.168.7.1 напрямую.
Однако, запоминать цифры не требуется, т.к. помимо DHCP-сервера, есть возможность собрать библиотеку с поддержкой DNS-сервера, функция которого — разрешать сетевые имена. В публикуемом примере DNS-сервер обучен разрешать имя ресурса «run.stm».

Запрос и ответ между браузером Firefox и контроллером:


История запросов при загрузке страницы:


Из истории мы видим, что, после загрузки корневого HTML-документа браузер также загружает из контроллера другие два файла: discovery.svg и zepto.min.js. Первый — это изображение платы discovery. SVG формат выбран, т.к., являясь изображением векторной графики, мало занимает места в ПЗУ микроконтроллера. Скриптовый файл zepto.min.js включён, т.к. является урезанным аналогом знаменитого JQUERY. Надо заметить, что скрупулёзной экономии места в ПЗУ не производилось, т.к. не смотря на жертву в 35 Кб на все статические ресурсы, памяти контроллера ещё вполне достаточно. К тому же данный размер с дальнейшим увеличением сложности интерфейса обещает расти заметно медленней. Если же интерфейс разросся существенно — всегда есть выход хранить и отдавать статические ресурсы в сжатом виде — все известные браузеры на данный момент поддерживают декомпрессию «на лету».

Ещё один запрос, который отправляет браузер — это запрос /state.cgi. Он формируется скриптом из корневого HTML-документа с периодичностью 5 раз в секунду. Нужен запрос для получения в динамике текущего состояния устройства.
При приёме данного запроса, контроллер формирует и отвечает следующей строкой в JSON формате:


Она и содержит все данные о текущем состоянии устройства, которые впоследствии отображаются на странице средствами JavaScript кода.

Ну и, пожалуй, последний момент в общении с браузером — способ управления.

О стеке LWIP
Никакого сетевого обмена устроить бы не получилось, если бы не данный сетевой стек, который и был встроен в библиотеку.
Поскольку библиотека работает под «голым» железом (без ОС и динамической аллокации памяти), то надстройка в виде сокетов для использования недоступна. Написание сетевых приложений поэтому происходит с использованием сырого API стека. По этой теме, к счастью, в сети много информации.

В прошлой статье я давал краткое описание стека и его настройки. На данный момент был уточнён набор важных для стека определений в файле:

Также была решена проблема с mem_malloc. Хоть текущая версия прошивки и не использует динамическую аллокацию, аппаратный крах при вызове mem_malloc держал настороже. Разрешилось добавлением определения MEM_ALIGNMENT, который раньше был обойдён вниманием.

Нерешённые вопросы
1. Ньюансы релицензирования стека lwip, который может иметь свои условия включения в состав другого ПО;
2. Доработка DNS-сервера для обработки «многовопросных» пакетов;

Вместо заключения
Благодарю читателя за терпение и надеюсь, что данная статья окажется для него полезной. Опубликованная в исходных кодах библиотека LRNDIS доступна для использования на правах MIT-лицензии. Считаю замечательным, если работа, на которую было уделено ощутимое время и запас сил, окажется полезной ещё кому-то. На худой конец, без использования открытых библиотек не получилось бы и этой.

Если в Win7 проблем с этим подключением не было, то в XP это не совсем быстро и просто. В этой статье рассмотрим как это сделать подробно в картинках.

Как настроить телефон в качестве модема?

Далее, а можно и сразу перед подключением к компьютеру включаем в телефоне режим модема.

Как настроить телефон в качестве модема?

Как настроить телефон в качестве модема?

Как настроить телефон в качестве модема?

Как настроить телефон в качестве модема?

Как настроить телефон в качестве модема?

Как настроить телефон в качестве модема?

Далее выбираем самостоятельно драйвер по картинкам ниже:

Как настроить телефон в качестве модема?

Как настроить телефон в качестве модема?

Как настроить телефон в качестве модема?

Указываем путь, где скачали файл драйвера.

Как настроить телефон в качестве модема?

Появляется окно с предупреждением.

Как настроить телефон в качестве модема?

Как настроить телефон в качестве модема?

Как настроить телефон в качестве модема?

Как настроить телефон в качестве модема?

Как настроить телефон в качестве модема?

Как настроить телефон в качестве модема?

На этом подключение закончено. Можно открывать браузер и пробовать работу в Интернет.

ВНИМАНИЕ!

Как настроить телефон в качестве модема?

Затем во вкладке сведения скопировать или переписать код экземпляра устройства:

Как настроить телефон в качестве модема?

Далее этот код прописываем в файл драйвера.

Для этого открываем файл tetherxp текстовым редактором WordPAd и добавляем имя своего устройства и коды VID & PID в директории [Android Devices], [Android Devices. NT.5.1] аналогично так же, как сделано это с другими устройствами:

Когда Android использует этот протокол, он представляется компьютеру как цифровая камера. MTP фактически основан на PTP, но добавляет больше функций или «расширений». PTP работает аналогично MTP и обычно используется цифровыми камерами.

Android от А до Я: Что кроется за аббревиатурой MTP, и как правильно этим распорядиться

МTP (Media Transfer Protocol) впервые появился на

МTP (Media Transfer Protocol) впервые появился на Android девайсах с Honeycomb. Протокол немного отличается от привычного USB Mass Storage (UMS), при котором вы включаете USB мод и начинаете перемещать файлы. А поскольку МТР стал частью Ice Cream Sandwich на Galaxy Nexus, то неплохо было бы выяснить все нюансы. В посте мы попробуем максимально разобраться с тем, что конкретно представляет собой этот протокол, какая в нем необходимость, и как его настроить для упрощения трансфера файлов.

Что такое конфигурация USB?

Где включить отладку по USB?

Во всех Android устройствах отладка по USB находится в Меню > Настройки, но варианты расположения могут отличаться, например: Меню > Настройки > Разработка > Отладка по USB (вкл) Меню > Настройки > Приложения > Разработка > Отладка по USB (вкл) Меню > Настройки > Еще > Параметры Разработчика > Отладка по USB.

Как включить передачу данных через USB на андроид?

Вариант 2. Передача файлов через USB-кабель

Что значит режим PTP?

Настройка подключения по USB

Чтобы управлять подключением к компьютеру через USB, необходимо . Для этого добавляем в настройки Android раздел «Для разработчиков» (если его нет):

После появления в настройках раздела для разработчиков можно включить отладку по USB. Пункт так и называется, так что вам нужно лишь передвинуть ползунок в положение «Включено» и подтвердите разрешение.


Увеличить

Теперь можно подключать устройство к компьютеру через USB и выбирать режим работы. В последних версиях Android наиболее используемыми являются:

Подключение в режиме USB-накопителя

Если вы не может привыкнуть работать с медиапроигрывателем, вернитесь к использованию режима USB-накопителя. Для этого понадобится:

  • Установленная программа USB MASS STORAGE Enabler.

Применение этого метода может привести к повреждению системных файлов . В таком случае вам придется перепрошивать Android.

Чтобы Android подключался к компьютеру как накопитель:

  1. Запустите USB MASS STORAGE Enabler.
  2. Предоставьте права суперпользователя и согласитесь на изменение работы Selinux.
  3. Если устройство поддерживается, откроется основное меню приложения.
  4. Нажмите «Включить USB MASS STORAGE».


Теперь при подключении к ПК телефон или планшет будет отображаться как накопитель. Чтобы подключиться в режиме MTP или PTP, достаточно перезапустить устройство. После завершения работы с режимом накопителя снова зайдите в приложение и отключите USB MASS STORAGE.

Использование

Дополнительное назначение

Вообще, изначально, Media Transfer Protocol являлся частью Windows Media Device Manager 10 SDK. Так что в качестве отдельного компонента он начал распространяться не так давно. Для чего данный компонент входил в состав Software Development Kit? Для того, чтобы разработчики имели возможность выполнять тестирование и отладку приложений, созданных для мобильных платформ.

Что такое передача фото Ртр?

MTP Медиа-устройство

MTP означает «Протокол передачи мультимедиа». Когда Android использует этот протокол, он воспринимается компьютером как «мультимедийное устройство». Протокол передачи мультимедиа широко продвигался как стандартизованный протокол для передачи аудиофайлов на цифровые музыкальные проигрыватели с помощью Windows Media Player и аналогичных приложений. Он был разработан, чтобы позволить другим производителям медиаплееров конкурировать с Apple iPod и iTunes.

Этот протокол работает совсем не так, как USB-накопитель. Вместо того, чтобы открывать необработанную файловую систему вашего Android-устройства для Windows, MTP работает на уровне файлов. Ваше устройство Android не предоставляет Windows всё своё запоминающее устройство. Вместо этого, когда вы подключаете устройство к компьютеру, компьютер запрашивает устройство, а устройство отвечает списком файлов и каталогов, которые оно предлагает. Компьютер может загрузить файл — он запросит файл у устройства, и устройство отправит файл через соединение. Если компьютер хочет загрузить файл, он отправляет файл на устройство, и устройство решает сохранить его. Когда вы удаляете файл, ваш компьютер отправляет на устройство сигнал: «Пожалуйста, удалите этот файл», и устройство может его удалить.

Вашему компьютеру не требуется монопольный доступ к устройству хранения, поэтому нет необходимости подключать хранилище, отключать его или создавать отдельные разделы для разных типов данных. Android также может использовать ext4 или любую другую файловую систему, которую он хочет — Windows необязательно должен понимать эту файловую систему, достаточно, если это может сделать Android.


На практике MTP очень похож на USB-накопитель. Например, устройство MTP отображается в проводнике Windows, поэтому вы можете просматривать и передавать файлы. Linux также поддерживает устройства MTP через libmtp, который обычно входит в состав популярных настольных дистрибутивов Linux. Устройства MTP также должны появиться в файловом менеджере рабочего стола Linux.


Mac OS X от Apple в пролёте — в ней вообще нет поддержки MTP. IPod, iPhone и iPad от Apple используют собственный протокол синхронизации вместе с iTunes, так зачем им поддерживать конкурирующий протокол?

Google предоставляет приложение Android File Transfer для Mac OS X. Это приложение представляет собой простой клиент MTP, поэтому оно будет работать для передачи файлов туда и обратно на Mac. Google не предоставляет это приложение для других операционных систем, поскольку они включают поддержку MTP.

Установка МТР

Со времен Windows XPMTP девайсы без пролем работают с Windows . Подключаете свой GalaxyNexus , выбираете MTP в качестве типа соединения, операционная система компьютера сама находит нужные драйвера, вам необходимо будет лишь немного подождать. Перемещение файлов между смартфоном и ПК без каких-либо проблем обеспечено. Но что делать тем пользователям, которые отдали предпочтение Linux и Mac ?

Mac OS

Ребята с Android сделали этот процесс максимально

Ребята с Android сделали этот процесс максимально безболезненным. Вам необходимо просто скачать и установить программу Android File Transfer, подключить девайс к компьютеру, запустить приложение и начать работу. Вы можете перетаскивать любые файлы как с устройства, так и на устройство, но объем каждого отдельного не должен превышать 4 ГБ.

Linux

С Linux начинаются некоторые трудности. Вы не добь

С Linux начинаются некоторые трудности. Вы не добьетесь необходимой цели в один клик, но зато сможете детально изучить все происходящие при этом процессы. Не отчаивайтесь, просто придется немного повеселиться с командным окном. Вот как надо использовать Galaxy Nexus с Ubuntu:

Установите UDEV rule, открыв rules файл через терминал

sudo nano -w /etc/udev/rules.d/les

Затем введите следующую строку внизу файла (на забудьте указать имя пользователя):

После чего настанет черед для:

  • sudo apt-get install mtpfs
  • sudo mkdir /media/GNexus
  • sudo chmod 775 /media/GNexus

Затем следует подключить Galaxy Nexus к ПК и в том же, что и ранее окне ввести:

sudo mtpfs -o allow_other /media/GNexus

Это все позволит вам перетаскивать файлы, используя Nautilus, и не забудьте ввести следующую команду по завершении работы:

Платформа Hi3559 добавляет функцию сетевой карты USB (RNDIS / Ethernet Gadget)

rndis - это и RemoteNDIS, и спецификация интерфейса удаленного сетевого драйвера.
Спецификация интерфейса удаленного сетевого драйвера, которая является одновременно спецификацией RemoteNDIS и спецификацией интерфейса удаленного сетевого драйвера. Реализация RNDIS на основе USB на самом деле является TCP / IP через USB, который должен запускать TCP / IP на устройстве USB, чтобы устройство USB выглядело как сетевая карта.

В соответствии с указанной выше архитектурой драйвера необходимо добавить драйвер RNDIS API и драйвер гаджета.
Выполнить в корневом каталоге Linux:
make ARCH=arm CROSS_COMPILE=arm-hisiv600-linux- menuconfig
Введите последовательно:
Device Drivers —>
[*] USB support —>
<*> USB Gadget Support —>
Ethernet Gadget (with CDC Ethernet support)
[*] RNDIS support


Как показано ниже:

Перекомпилируйте ядро ​​для создания соответствующего файла ko.
Конечно, также требуется драйвер для USB-контроллера платформы HiSilicon 3559, который поддерживается по умолчанию, и нет необходимости добавлять его сюда.


Скопируйте драйвер в путь komod на плате
Последовательность загрузки следующая:

Примечание: необходимо убедиться, что USB работает в ведомом режиме, если нет необходимости изменять конфигурацию регистра:

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

После загрузки драйвера ifconfig -a может увидеть, что на конце платы будет устройство сетевой карты USB0,
Настройте сеть с помощью следующей команды:

Установите IP 192.168.1.10 маска подсети 255.255.255.0

5.2 Конфигурация сети на стороне ПК

После подключения к ПК он будет распознан как сетевое устройство RNDIS / Ethernet Gadget, и установка драйвера, как правило, не удастся.

5.2.1 Метод 1:

5.2.2 Метод второй:

Откройте диспетчер устройств ->
Сетевой адаптер ->
RNDIS/Ethernet Gadget
Обновить драйвер
Вручную выберите драйвер гаджета RNDIS / Ethernet для Linux для установки
Если вы не можете установить его, вам нужно изменить файл конфигурации «rndis.inf» самостоятельно, то есть вам необходимо изменить файл inf в соответствии с pid и vid вашего устройства перед установкой драйвера.
RNDIS driver:
RNDIS driver

5.2.3 Просмотр метода PID и VID


Просмотр из диспетчера устройств Windows даже при отсутствии драйвера)

Просмотрите дескриптор устройства драйвера устройства Linux:

IP-адрес сетевой карты на стороне ПК настроен как 192.168.1. *, Вы можете пинговать друг друга

Читайте также: