Raspberry pi 3 не работает usb
Первая статья из цикла про превращение Raspberry Pi Zero в USB Gadget.
Часть 1.Подключение к Zero через виртуальный последовательный порт.
Внимание!Автор публикации не несет ответственности за ваши действия!
Данная статья является переводом c некоторыми дополнениями.Оригинал
Когда Raspberry Pi Zero вышла, одним из минусов было отсутствие USB A. Чтобы что-то подключить необходимо использовать USB OTG переходник.
По умолчанию, PiZero USB хост , а мы сделаем из нее устройство
Заинтересованные люди на GitHub выясняли , что если использовать драйвер USB DWC2, и заменить некоторые файлы, вы можете получить Pi , работающую как устройство USB.
А как насчет SD-карт?
Чтобы установить на Ubuntu 14.04 или более позднюю версию, используйте
Для 13.04 и более ранних версий для установки требуется ppa:
С установленной поддержкой exFAT, когда вы вставите SD-карту (возможно, устройство, используемое с вашей цифровой камерой), вам будет предложено, как вы хотите продолжить. Для удобства мне нравится, когда устройство открывается в файловом менеджере.
Точно так же, если у вас возникают трудности с монтированием устройства с помощью файловой таблицы NTFS ( некоторые предпочитают эту файловую систему ), используйте
… затем вставьте заново, чтобы увидеть содержимое.
Монтаж дисков на Raspberry Pi
Если выбранный вами дистрибутив Linux не поддерживает автоматическое монтирование USB-накопителей, вам необходимо настроить это вручную.
Например, если вы вставили USB-накопитель в Raspberry Pi с Raspbian, вы обнаружите, что он не монтируется автоматически. Однако для этого не требуется никакого дополнительного программного обеспечения; вам просто нужно добавить несколько команд!
Начните со вставки устройства. На последних устройствах у вас должно быть достаточно запасных слотов, но если нет, или если вы используете старый Pi с двумя слотами USB (или даже Pi Zero только с одним из них ), тогда рекомендуется использовать USB-концентратор с питанием. ,
Если вы хотите настроить устройство на автоматическое монтирование при вставке, проверьте уникальный ссылочный номер для устройства с помощью команды:
Следующим шагом является создание точки монтирования, которую вы можете сделать, создав папку:
… Затем управление пользователем pi (если вы изменили имя пользователя по умолчанию , используйте это вместо этого):
Установка диска вручную — это еще одна команда:
На этом этапе вы можете читать, писать, удалять и перемещать файлы в / media / usb, который вы найдете в файловом менеджере. Обратите внимание, что приведенная выше команда также может быть введена как:
… но это приведет к тому, что вы сможете писать в него только с помощью sudo, что не идеально.
Если ваш Pi работает, когда вы хотите удалить диск, используйте команду umount:
Обратите внимание, что правильная команда использует umount , а не «unmount». Когда Pi выключен, вы можете отключить диски как и когда. То же самое верно для любого устройства.
Раздел 1.СОМ устройство.
- Нам прежде всего понадобятся прямые руки хоть какой нибудь опыт.
- Запишите по новой Rasbian Jessie Lite (или просто Jessie) на SD - карту 4G или 8G.
- Припаять штырьки 2x20 типа ПАПА-ПАПА к GPIO или подключится через USB TTL к Pi Zero.
Хороший мануал по USB TTL написал raspiman ССЫЛКА
Загрузите следующий файл на вашем пк: клик
и переименуйте его в gadgetkernel.tgz
Шаг 3. Распаковка новое ядро
Распакуйте и установите ядро из .tgz файла
Выполните следующие команды:
Шаг 4. Резервное копирование и установка нового ядра
Шаг 5. Установка модуля
Шаг 8. Войдите в свой Pi с использованием последовательного порта
На скриншоте ниже указан пример конфигурации входа
Иногда требуется несколько попыток,чтобы подключится,но на этом все,теперь вы можете подключаться к Pi Zero напрямую!
Завтра или послезавтра опубликую вторую часть этой статьи,где я расскажу как подключить малинку к интернету,не переключайтесь.
Raspberry Pi — невероятно популярное устройство, известное своей доступностью, универсальностью, возможностями и активным сообществом. Легко найти фанатские сайты и статьи, но большинство людей не знают о его слабых местах, пока сами не пострадают от них и не поищут информацию на форумах.
Постараюсь рассказать о некоторых вопросах, с которыми я столкнулся лично, а также о некоторых типичных проблемах, которые чаще всего появятся у людей, ничего не подозревающих об этом. И, наконец, почему я не рекомендую Pi для некоторых приложений, в частности, NAS-услуг, таких как NextCloudPi и Open Media Vault. Надеюсь, это сэкономит мне время, чтобы не повторять всё это на форумах.
У меня было много Raspberry Pi, и я использую их в течение многих лет. Когда в 2012 году появилась первая модель, это стало важной вехой на рынке одноплатников. Хотя уже существовало несколько хороших плат, таких как Beagleboard и Odroid, они были довольно дорогими, и только хардкорные любители могли их купить и проверить в деле.
Pi не такая мощная по сравнению с ними, но из-за потрясающей дешевизны буквально взорвала рынок. Блоги, платы расширения, множество личных проектов, тонны библиотек… Raspberry Pi первой достигла всего этого, и по сей день процветающее сообщество — самое большое преимущество Pi над другими платами.
Но сейчас 2019 год и пора осмотреться ещё раз. На мой взгляд, есть более открытые альтернативы лучшего качества по той же цене. Постараюсь объяснить.
Raspberry Pi снизила цену, срезав углы. В результате плата недостаточно производительна для некоторых задач, по сравнению с конкурентами. В частности, она плохо подходит для сетевых задач и по USB-функциональности.
Здесь стоит микросхема SMSC LAN9514, которая соединяется с SoC одним USB-каналом, действуя в качестве USB-to-Ethernet адаптера и USB-хаба одновременно. Таким образом, Ethernet и USB сидят на одном канале и конкурируют друг с другом, что противоречит типичному использованию NAS, когда что-то загружается по сети и сохраняется на USB-накопитель, не говоря уже о добавлении сюда RAID.
По этой же причине, даже когда в прошлом году они, наконец, выпустили модель с поддержкой Gigabit Ethernet, реальная сетевая производительность никогда даже близко не приближалась к гигабитной, а составляет максимум 40 МБ/с по чистой скорости и максимум 20 МБ/с, если идёт передача на USB-устройство. В то время уже были дешёвые платы с настоящим Gigabit Ethernet и USB3.
На самом деле Wi-Fi не идёт через SMSC, а подключается к чипу BCM4343 через SDIO, так что этого узкого места можно как-то избежать с помощью Wi-Fi. Впрочем, микросхема Wi-Fi не всесильна, ей придётся бороться с окружающими помехами, так что это не идеальная альтернатива.
По указанным причинам я бы не рекомендовал использовать Pi как NAS, будь то Open Media Vault или Nextcloud.
Если вы участвовали в спорах о свободе ПО, то главная проблема в наших системах Linux — двоичные блобы с закрытым исходным кодом. Не буду вдаваться в подробности, но проблема в том, что эти части системы невозможно проверить, а они имеют доступ ко всему, что происходит в устройстве. Это породило большие open source проекты, такие как Android Replicant, призванные освободить наши системы от любых двоичных блобов: болезненный, утомительный и медленный процесс.
Аналогичная проблема у Raspberry Pi, где CPU и GPU встроены в тот же чип BCM2837B0. Центральный процессор представляет собой 64-разрядный четырёхъядерный ARM A53 на 1400 МГц (в Pi 3B), а графический — двухъядерный 32-разрядный VideoCore IV с частотой 400 МГц. Интеграция CPU и GPU популярна в мобильном мире, потому что снижает цену и энергопотребление. Конкуренты NXP iMX и Allwinner используют аналогичный подход.
Таким образом, в последнем Pi шесть ядер, но только четыре из них ARM. На процессоре работает Linux, но вас может удивить, что Linux на данном устройстве — гражданин второго класса. Ядра GPU работают под управлением операционной системы реального времени ThreadX. Эта ОС с закрытыми исходниками управляет системой без ведома ядра Linux.
В начале загрузки Raspberry Pi процессор полностью отключен (технически в состоянии reset) и именно GPU запускает систему. Можете взглянуть на папку /boot — и найдёте бинарные блобы, с помощью которых GPU запускает процессор и собственную ThreadX OS (bootcode.bin и start.elf). Подробнее о процессе загрузки см. здесь.
Именно GPU монтирует SD-карту, загружает эти блобы и читает конфигурацию из текстового файла config.txt, который мы редактируем, чтобы настроить параметры видео или разогнать GPU. Linux тут не участвует.
Когда GPU позволит CPU загрузить ядро Linux, он не просто уходит со сцены, работая лишь как графический процессор. Нет, GPU по-прежнему главный. Вы когда-нибудь думали, кто выводит эти логотипы, когда Pi подключается к HDMI? Или эти символы молнии или температуры в предупреждающих значках? Вот именно, это делает система ThreadX на GPU, а Linux вообще не знает, что происходит.
Мы не можем знать всей функциональности GPU, но знаем кое-что, за что он отвечает. Для данной статьи важно то, что ThreadX отслеживает снижение напряжение — широко распространённая проблема, как мы увидим дальше, и снижает частоту процессора, чтобы предотвратить сбой процессора и зависание. Поэтому у людей устройства работают на частоте 600 МГц вместо 1400 МГц, в лучшем случае. Такое дросселирование начинается на 4,65 В и его также может инициировать температура. В то же время Linux по-прежнему думает, что система нормально работает на полной частоте.
Это только то, что мы видим. Поскольку основная ОС проприетарна, у нас нет способа узнать, что ещё она делает или способна делать, поэтому всегда остаётся проблема с приватностью.
Существует по крайней мере один патент, включенный в блоб с закрытым исходным кодом, который запрещает открытие кода по крайней мере до 2025 года, но мы не знаем, будет ли это сделано даже тогда. Были попытки реверс-инжиниринга VideoCore IV и создания open source прошивки для него. К сожалению, проект умер прежде, чем выдал что-то полезное. Как и с блобами Android, это невероятно трудная работа.
Это не техническая ошибка Raspberry Pi, а скорее типичная ошибка пользователя.
Первая модель едва использовала 80 мА, но каждое новое поколение становилось всё более мощным, и по этой причине более энергозатратным. Кроме того, многие пользователи подключают USB-устройства, которые также потребляют энергию, если не поставляются с собственными источниками питания.
Разъём microUSB первоначально был рассчитан только на 1,8 A, и хотя это старый стандарт, и вы можете найти зарядные устройства, которые выдают больше, поэтому многие люди пытаются использовать старые зарядные устройства телефона на 1 A или купить в интернете дешёвые адаптеры для питания своих «малинок». Но Pi — это компьютер, и он требует качественного, стабилизированного электропитания, которое обеспечивает стабильные 5 В на входе с силой тока до 2,5 A. Нужен не только пристойный трансформатор, но и качественное соединение (или произойдёт падение напряжения), но более важно, что нужен хороший кабель, иначе сильно упадёт напряжение по нему. Плохие кабели встречаются ещё чаще, чем нестабильные источники напряжения, поэтому обязательно используйте хороший кабель: возможно, 20AWG или аналогичный, или просто купите официальный источник питания. Вывод в том, что не любое зарядное устройство USB будет работать должным образом, даже если это 2.5A 5V.
Добавьте это к тому, что мы обсуждали в прошлом разделе, и начнёте понимать общую картину. Большинство пользователей работают на своих устройствах с пониженной частотой, и GPU скрывает это от них, поэтому они фактически работают с пониженной частотой 600 МГц: почти так же, как ARMv6 на самом первом Pi.
Во многих случаях усилий GPU недостаточно, и система случайным образом выходит из строя или просто зависает, возможно, повреждая данные или повреждая SD-карту. Это обычно случается под нагрузкой, то есть когда транзисторам требуется максимальное питание. Затем пользователь приходит на форумы и жалуется: мой блок питания в порядке, я запускал это и то, и ничего не сбойнуло. Конечно, это неправда, но часто они в это не верят.
На мой взгляд, здесь то, что японцы могут назвать Poka Yoke, то есть мы должны проектировать такие системы, которые по своему дизайну не дадут пользователю выстрелить себе в ногу. Опять же, официальный источник питания очень хорошего качества для своей цены, и я очень его рекомендую.
Мне не нравится, что скрытая проприетарная система понижает частоту вне нашего контроля. Лучше бы система зависала: тогда сразу видно, что происходит, и человек может заменить блок питания. По-моему, это лучше, чем обманывать пользователей и заставлять их жаловаться по всему интернету. Трудно представить себе причину, по которой разработчики Pi сделали бы это, если бы не скрывали проблему Poka Yoke.
то у вас происходит понижение напряжения. Хорошо, что сейчас Linux фиксирует хотя бы такую информацию, но если мы хотим узнать больше, нужен прямой доступ к GPU.
Команда vcgencmd может получить от прошивки ThreadX информацию о системе.
Можно использовать команды vcgencmd measure_clock arm и vcgencmd measure_volts для проверки реальной частоты и напряжения. Вот пример выходных данных скрипта мониторинга от tkaiser.
Я действительно думаю, что Raspberry Pi стал очень важным событием в истории одноплатных компьютеров, но сегодня он отстаёт с точки зрения качества, производительности и открытости. Есть доступные альтернативы, где разработчики уделили больше внимания этим вопросам.
Несмотря на это, я всё равно использую Raspberry Pi, помогая пользователям установить собственный облачный хостинг. Учитывая популярность этой платы, для меня есть смысл поддерживать её до тех пор, пока она полезна людям.
2015-07-17 в 13:25, admin , рубрики: Песочница, метки: raspberry usb, usb-порт, восстановление usb
Случилось так, что из-за помех от коллекторного движка на 12В (без цепи защиты) на малинке сгорели оба USB порта.
Заглянув в принципиальные схемы Raspberry Pi, понял, что не все еще потеряно.
USB порты в малинке дает нам микросхема LAN9512 (LAN9514 — для 4-х портовых моделей), которая представляет из себя USB-хаб и USB-контроллер Ethernet.
Как видно из схемы выше, LAN9512 подключается к USB-порту чипа BCM2835. Таким образом, чтобы вернуть утраченные USB порты, достаточно отрезать их от LAN9512 и подключить к этим выводам внешний USB-хаб.
Чтобы не потерять встроенный Ethernet, необходимо подключить LAN9512 к USB-порту внешнего хаба. Удобнее всего это сделать на месте отсутствующих перемычек R36 и R37. Второй вариант удобен при наличии кабеля на обоих концах которого USB Type-A. Необходимо отрезать 3 и 4 выводы LAN9512 и поставить перемычки R36 и R37. Таким образом вход LAN9512 соединится с нижним USB-портом Raspberry Pi.
Стоит отметить, что таким же образом из упаленной малинки сделать USB-Ethernet контроллер.
Я использовал mini-USB кабель, идущий в комплекте с хабом.
PS не ждите пока отвалятся USB-порты у Raspberry Pi, сразу цепляйте «свои творения» через USB-хаб, с дополнительным питанием.
Развернул я на SD-карточке генту, скомпилировал ядро 4.1.15, гружусь, и вылезают проблемы. Сначала я думал, что подвисание происходит при инициализации сетевой карты, убрал из /lib/modules модуль smsc95xx.ko, и все равно при активации USB на стадии обнаружения этой карты происходит зависание:
Может у тебя проблемы с питанием?
Какая модель? Если B+ или B2+, то может быть питание (даже есть диагностический светодиод). Если просто B, то скорее всего питание.
4.9Вольты на «кренке», понижающей до 3.3. БП двухамперный, так что проблем не должно быть.
Macil
Какая модель?
Обычная первая «малинка». Попробовал старый распбиан, грузится, активация происходит, но потом в определенный момент тоже зависает.
В принципе, завтра, наверное, попробую найти другой БП помощней и с ним проверить.
Перепад напряжения для «крен» очень маленький.
Не может этот блок питания нормально работать.
Перепаду 0.8В хватит за глаза!
БП двухамперный, так что проблем не должно быть.
У меня тоже есть «двухамперный». Ага, только при продаже забыли уточнить что эти амперы — китайские.
А ещё есть херовые USB кабели.
С питаловом у RPi вообще полная ж. Мало того что встроенный юсб хаб жрёт больше самого SoC, дык на первой модели стоит линейный стабилизатор.
А воткуто чё-нить?
У меня были такие же траблы, даже с двухамперным бп, когда я подклчал 3.5 юсб хдд. Пришлось покупать внешний хаб с питанием.
Да ладно, Эдик шулюм любит, не думаю.
О, юмористы в треде. Все в кривое зеркало!
Запитал по старой схеме (так работало): через импульсный преобразователь (он до трех ампер как с куста дает). Та же беда.
Сколько напряжение между TP1 и TP2?
Между чем? Не понял.
Сейчас попробовал загрузить древнючий образ 3.12.22 — загрузился! Т.е. явно что-то где-то у меня накосячено в генте.
Проблема стопудово не в питании: сейчас я взял этот старый распбиан с ведром 3.12.22 и залил вместо того ядра свое 4.1.15 + модули. Все загрузилось.
Т.е. явно проблема в чем-то другом. Буду искать, что ему надо.
Да не, ядро не виновато: распбиан же с ним грузился. Явно чего-то в stage3 не хватает.
Проверь на месте ли firmware для всего.
Все делал по инструкции, фирмварь поставил так: emerge sys-boot/raspberrypi-firmware , в /etc/fstab вот что:
я не про то. Если у тебя какая-то железяка хочет фирмварь в процессе загрузки, то ведро ждёт пока не примонтируется /, потом идёт в /lib/firmware и ищет там нужный фаил. При этом может случаться залипон когда фирмварь нужна тому, кто держит на себе /.
Тебе же в лог никто не сказал, что залипон именно в usb-устройстве, поэтому я тебе и предлагаю включить «Detect Hung Tasks» в опциях ядра, пересобрать и посмотреть на консоли в trace кто вывалится с матюгами.
У меня был указан этот параметр, но таймаут был выставлен в 2 минуты. Поставил 15 секунд и перекомпилял.
Съемное запоминающее устройство USB упрощает передачу данных с одного компьютера на другой, но если используемый вами компьютер не подключает устройство автоматически, когда вы подключаете его, скорее всего, вы обнаружите, что данные переносятся на USB-накопитель и с него. ездить сложно, если не невозможно, без правильных команд.
Кроме того, у вас может быть похожая проблема с SD-картой.
Давайте посмотрим на проблемы — и их решения — окружающие USB-устройства и SD-карты с популярными дистрибутивами (мы используем Ubuntu) и менее широко используемые дистрибутивы, такие как Raspbian Jessie, операционная система Raspberry Pi
Использование USB-флеш-устройств со зрелыми дистрибутивами Linux
То, что мы хотим сделать, когда подключено USB-устройство, можно увидеть в большинстве длительных, зрелых дистрибутивов Linux, которые разработаны с учетом улучшенного, ориентированного на пользователя опыта. Как правило, это дистрибутивы, которые представлены как альтернативы Windows и OS X, такие как Ubuntu.
Здесь подключение USB-устройства флэш-памяти просто означает его подключение.
После того, как вы это сделаете, появится окно со списком содержимого диска, которое вы сможете просмотреть по своему усмотрению.
Между тем, безопасное извлечение диска столь же просто, как и нажатие кнопки извлечения — конечно, для безопасного извлечения — и физического отключения устройства.
Автоматическое крепление дисков на Raspberry Pi
Монтаж вручную достаточно полезен, но чтобы избежать выполнения большинства вышеперечисленных действий, вы можете настроить диск на автоматическое подключение при вставке. Помните UUID, который вы записали? Это пригодится здесь.
Начните с открытия файла fstab в текстовом редакторе, например, nano.
В конце файла добавьте эту строку:
Чтобы это работало, вам нужно перезагрузить устройство.
Пока вы вставили свой UUID, где указано, после сохранения (Ctrl + X для сохранения и выхода) диск будет автоматически смонтирован при вставке. Помните, что для других накопителей вам необходимо добавить дополнительные строки с UUID каждого устройства.
Чтобы безопасно удалить диск, который был добавлен в файл fstab, используйте
Шаг 2. Войдите в Pi Zero
Вставьте SD в ваш Pi Zero, подключите USB TTL, включите Pi и войдите в консоль через USB.
Шаг 1. Скопируйте новое ядро на SD-карту
Скопируйте файл из предыдущего шага в раздел BOOT SD карты с дистрибутивом.
Шаг 7. Настройка входа в систему через g_serial
То что у вас есть последовательный порт не означает , что вы можете войти с ним без надстроек. Pi знает , что у нее появился последовательный порт , но вы должны привязать его к консоли.
Убедимся что все работает
Надпись "Active" говорит о том,что мы на правильном пути.
Выключаем нашу малинку
Отсоединяем все питание,которое было присоединено к Pi Zero и вставляем кабель как на фотографии ниже,теперь она будет получать питание через USB порт,который раньше был USB OTG
Пожалуйста будьте внимательные,иначе рискуете сломать вашу Pi Zero.
Когда Pi включится на вашем компьютере вы увидите новый последовательный порт. Проверьте драйвер устройства для Windows:
Шаг 6. Настройка модулей и перезагрузка
Теперь мы скажем Малинке о том,что хотим режим g_serial
И приводим все к виду как на скриншоте снизу,затем сохраняем файл
Установка и извлечение USB-устройств: не слишком сложно
Когда я впервые столкнулся с проблемами при установке дисков в Raspbian, я был удивлен, что это на самом деле проблема; Raspbian Jessie — настолько полезная операционная система, что я ожидал, что у нее уже будет автоматизированное программное решение.
Тем не менее, решение достаточно простое и, конечно, ОС на базе Debian достаточно гибкая, чтобы позволить автоматизацию на основе собственных требований пользователя.
Были ли у вас проблемы с подключением USB-флеш или SD-карт в Ubuntu или Raspbian? Расскажите нам об этом.
Читайте также: