Едноплатков компютър ResearchGate Raspberry Pi

Информация за продукта
Спецификации
- Производител: Raspberry Pi Ltd
- Дата на изграждане: 01 г.
- Версия на компилация: 99a8b0292e31
- Поддържани продукти на Raspberry Pi: Pi Zero, Pi Zero 2 W, Pi 1 AB, Pi 2, Pi 3, Pi 4, Pi 5, изчислителни модули CM1, CM3, CM4, CM5
Колофон
© 2022-2025 Raspberry Pi Ltd
Тази документация е лицензирана под Creative Commons Признание-Без производни 4.0 Международно (CC BY-ND).
| Освобождаване | 1 |
|---|---|
| Дата на изграждане | 01/10/2025 |
| Версия за изграждане | 99a8b0292e31 |
Правна бележка за отказ от отговорност
ТЕХНИЧЕСКИТЕ И НАДЕЖДНИ ДАННИ ЗА ПРОДУКТИТЕ НА RASPBERRY PI (ВКЛЮЧИТЕЛНО ИНФОРМАЦИОННИ ЛИСТОВЕ), СЪС СМЕТНИТЕ ПРОМЕНИ ОТ ВРЕМЕ НА ВРЕМЕ („РЕСУРСИ“) СЕ ПРЕДОСТАВЯТ ОТ RASPBERRY PI LTD („RPL“) „КАКТО СА“ И ВСЯКАКВИ ИЗРИЧНИ ИЛИ ПОДРАЗБИРАЩИ СЕ ГАРАНЦИИ, ВКЛЮЧИТЕЛНО, НО НЕ САМО, ПОДРАЗБИРАЩИТЕ СЕ ГАРАНЦИИ ЗА ПРОДАВАЕМОСТ И ГОДНОСТ ЗА ОПРЕДЕЛЕНА ЦЕЛ, СЕ ОТКАЗВАТ. ДО МАКСИМАЛНАТА СТЕПЕН, РАЗРЕШЕНА ОТ ПРИЛОЖИМОТО ЗАКОНОДАТЕЛЬСТВО, В НИКАКЪВ СЛУЧАЙ RPL НЯМА ДА НОСИ ОТГОВОРНОСТ ЗА НИКАКВИ ПРЕКИ, КОСВЕНИ, СЛУЧАЙНИ, СПЕЦИАЛНИ, ПРИМЕРНИ ИЛИ ПОСЛЕДВАЩИ ЩЕТИ (ВКЛЮЧИТЕЛНО, НО НЕ САМО, НАБАВЯНЕ НА ЗАМЕСТВАЩИ СТОКИ ИЛИ УСЛУГИ; ЗАГУБА НА УПОТРЕБА, ДАННИ ИЛИ ПЕЧАЛБИ; ИЛИ ПРЕКЪСВАНЕ НА ДЕЙНОСТТА), КАКТО И ДА Е ПРИЧИНЕНА И ПО КАКВАТО И ДА Е ТЕОРИЯ ЗА ОТГОВОРНОСТ, НЕЗАВИСИМО ДАЛИ ПО ДОГОВОР, ОБЕКТИВНА ОТГОВОРНОСТ ИЛИ ДЕЛИКТ (ВКЛЮЧИТЕЛНО НЕБРЕЖНОСТ ИЛИ ПО ДРУГ НАЧИН), ПРОИЗТИЧАЩИ ПО КАКЪВТО И ДА Е НАЧИН ОТ ИЗПОЛЗВАНЕТО НА РЕСУРСИТЕ, ДОРИ АКО Е БИЛ УВЕДОМЕНИ ЗА ВЪЗМОЖНОСТТА ЗА ТАКИВА ЩЕТИ.
RPL си запазва правото да прави подобрения, подобрения, корекции или каквито и да е други модификации на РЕСУРСИТЕ или продуктите, описани в тях, по всяко време и без допълнително известие.
РЕСУРСИТЕ са предназначени за опитни потребители с подходящи нива на познания в областта на дизайна. Потребителите са изцяло отговорни за техния избор и използване на РЕСУРСИТЕ и всяко приложение на продуктите, описани в тях. Потребителят се съгласява да обезщети и предпази RPL от всички задължения, разходи, щети или други загуби, произтичащи от тяхното използване на РЕСУРСИ.
RPL предоставя на потребителите разрешение да използват РЕСУРСИ единствено във връзка с продуктите Raspberry Pi. Всяка друга употреба на РЕСУРСИ е забранена. Не се предоставя лиценз за други права на интелектуална собственост или права на трета страна.
ВИСОКОРИСКОВИ ДЕЙНОСТИ. Продуктите Raspberry Pi не са проектирани, произведени или предназначени за използване в опасни среди, изискващи безопасна работа, като например при експлоатацията на ядрени съоръжения, навигационни или комуникационни системи на самолети, контрол на въздушното движение, оръжейни системи или критични за безопасността приложения (включително поддържащи живота системи и други медицински устройства), при които повредата на продуктите може да доведе директно до смърт, лично нараняване или тежки физически или екологични щети („Дейности с висок риск“). RPL изрично отхвърля всякакви изрични или подразбиращи се гаранции за годност за дейности с висок риск и не поема отговорност за използване или включване на продукти на Raspberry Pi в дейности с висок риск.
Продуктите Raspberry Pi се предоставят в съответствие със Стандартните условия на RPL. Предоставянето на РЕСУРСИ от RPL не разширява или по друг начин променя Стандартните условия на RPL, включително, но не само, отказите от отговорност и гаранциите, изразени в тях.
История на версиите на документа
| Освобождаване | Дата | Описание |
|---|---|---|
| 1 | 1 октомври 2025 г | Първоначално издание |
Обхват на документа
Този документ се отнася за следните продукти на Raspberry Pi:
Едноплаткови компютри / SBC
| Пи нула | Пи нула 2 | Пи 1 | Пи 2 | Пи 3 | Пи 4 | Пи 5 |
|---|---|---|---|---|---|---|
| ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | – |
Изчислителни модули
| CM1 | CM3 | CM4 | CM5 |
|---|---|---|---|
| ✓ | ✓ | ✓ | ✓ |
Въведение
USB On-The-Go (OTG) е спецификация, която позволява на устройството да функционира или като USB хост (като компютър), или като USB устройство/периферно устройство (като клавиатура, Ethernet адаптер или устройство за съхранение на данни). Страницата „USB On-The-Go“ в Уикипедия предоставя много подробности за спецификацията OTG: https://en.wikipedia.org/wiki/USB_On-The-Go.
Обикновено USB връзката включва фиксиран хост (напр. компютър) и периферно устройство (напр. мишка). USB OTG позволява на устройството да превключва между двете. Напримерampнапример, Raspberry Pi може да действа като хост при четене fileот флаш устройство или функционират като самото флаш устройство, когато са свързани към компютър.
Семейството Raspberry Pi включва няколко платки, които могат да функционират в OTG/периферен режим, но поддръжката се различава в зависимост от модела и системата на чипа (SoC). Когато работи в този периферен режим, устройството често се нарича „джаджа“.
Този документ разглежда гамата Raspberry Pi SBC, обяснява техните OTG възможности и предоставя примери за конфигурация/код.ampлес. Той обхваща два различни OTG механизма: методът „legacy“, който все още е много популярен и е описан първи, последван от препоръчителната в момента схема, ConfigFS.
Стари OTG устройства
Raspberry Pi Zero / Zero W / Zero 2 W
Тези платки са най-съвместими с OTG в семейството на Raspberry Pi. Те излагат USB контролера на SoC директно на USB порта за данни (този, обозначен като USB, а не PWR IN), а вграденият софтуер може да бъде конфигуриран така, че вашият Raspberry Pi да действа като OTG устройство.
Активиране на OTG режим
Съвет: Тъй като използвате единствения USB порт на Raspberry Pi Zero за OTG цели, няма да можете да включите клавиатура или мишка. Вместо това можете да използвате Wi-Fi връзка и SSH за комуникация с Raspberry Pi Zero…
dtoverlay=dwc2
Сега трябва да конфигурираме софтуера, за да свърже заявения OTG драйвер към USB системата…
console=serial0,115200 console=tty1 root=PARTUUID=xxxxxxxx-02 rootfstype=ext4 fsck.repair=yes rootwait modules-load=dwc2,g_ether
Други модули за джаджи
Вместо да g_ether, можете да опитате:
g_serial: Появява се като USB серийно устройствоg_mass_storage: Експонира изображение file като флаш устройствоg_compositeЕмулира съставно устройство
съвет
Композитното USB устройство е едно физическо устройство, което функционира като множество независими устройства към компютър, появявайки се като няколко отделни интерфейса или класа устройства. То комбинира различни функционалности, като например клавиатура и мишка или устройство за съхранение и... webкамера, в едно USB устройство и конектор. Когато е свързана, операционната система разпознава и използва отделни драйвери за всяка от отделните функции на устройството, което им позволява да работят независимо.
За да създадем USB сериен порт, можем да заредим съответния модул от командния ред:
- Код
- sudo modprobe g_serial
Когато е свързан към компютър с Windows, Raspberry Pi ще се появи като COM порт в диспечера на устройствата; когато е свързан към устройство с Linux (например Raspberry Pi SBC), той ще се появи като серийно устройство, подобно на /dev/ttyACM0.
Raspberry Pi 4 и 5 (OTG на USB-C захранващия порт)
USB-C захранващият/OTG порт на Raspberry Pi 4 поддържа периферен режим, когато не се използва за захранване на платката.
Raspberry Pi 5 въвежда PCIe-прикачен USB контролер, който не поддържа OTG. Въпреки това, както при Raspberry Pi 4, вградената OTG периферна функция на SoC е достъпна чрез захранващия конектор.
стъпки
Захранвайте вашия Raspberry Pi през GPIO конектора (5V и GND), оставяйки USB-C свободен.
Свържете USB-C порта към вашия хост компютър.
Активирайте OTG в /boot/firmware/config.txt
Код
dtoverlay=dwc2,dr_mode=периферно устройство
Забележка
Нуждаете се от опцията dr_mode=peripheral на наслагването, за да принудите контролера да влезе в OTG периферен (а не хост) режим, тъй като линията OTG_ID, която обикновено извършва селекцията, не е налична на Raspberry Pi 4 или 5.)
Заредете модул за джаджа (Ethernet):
Код
sudo modprobe g_ether
Вашият Raspberry Pi вече ще се регистрира като USB устройство към хоста.
съвет
Не всички хост системи поддържат надеждно OTG режима на Raspberry Pi 4. Ethernet и серийният порт работят най-добре.
Серия изчислителни модули Raspberry Pi
Raspberry Pi Compute Module 1, 3, 3+ и 4 излагат USB OTG контролера на SoC директно на носещата платка, което ги прави изключително гъвкави.
CM1/CM3/CM3+ USB OTG интерфейсът е наличен на специални пинове; платките-носители често го показват чрез micro-USB порт. CM4 Предлага OTG-съвместим USB 2.0 интерфейс (USB_OTG). Той се насочва към micro-USB конектора на платката Compute Module 4 IO.
CM4 OTG exampле (Ethernet джаджа)
Включете micro-USB кабел в USB порта на IO платката.
В /boot/firmware/config.txt добавете:
Код
dtoverlay=dwc2,dr_mode=периферно устройство
В /boot/cmdline.txt добавете:
- Код
- модули-зареждане=dwc2,g_ether
Рестартирайте. Изчислителният модул 4 вече ще се показва като USB Ethernet адаптер.
Raspberry Pi A, B, B+, 2B, 3B, 3B+
USB портовете на тези модели са свързани чрез хъб чип (LAN9512/LAN9514 или VIA Labs), който премахва OTG възможностите. Те могат да работят само като USB хостове, така че няма OTG поддръжка.
Използване на различните видове устройства
Този раздел описва как да настроите най-често срещаните режими на джаджи.
Устройства за масово съхранение
За да използвате Raspberry Pi като устройство за съхранение на данни (като USB флашка), ще трябва да създадете резервно копие. file за съхраняване на съхранените данни:
- Код
- # Прampле: Направете 256 MB file да действа като „USB памет“
- sudo dd if=/dev/zero of=drive.bin bs=1M брой=256
- # Създаване на VFAT файл file система на поддържащия магазин
- sudo mkfs.vfat устройство.bin
- Редактирайте /etc/modprobe.d/g_mass_storage.conf, за да укажете на системата да използва резервното хранилище:
- Код
- опции g_mass_storage file=/drive.bin щанд=0 подвижен=1
- Можете да разгледате съдържанието на резервното хранилище, като го монтирате на вашия Raspberry Pi. Тук го монтираме в папка, наречена mountpoint:
- Код
- sudo mkdir точка на монтиране
- sudo mount -o loop drive.bin точка на монтиране
Ще трябва да коригирате пътищата, както е необходимо.
Ethernet устройства
Когато устройството g_ether е включено към Linux хост, то обикновено ще се появи като мрежов интерфейс с име usb0 (при използване на ifconfig).
Можете (обикновено) да се свържете с устройството чрез SSH, както следва:
- Код
- ssh pi@rasberrypi.local
Серийни устройства
Когато Raspberry Pi е настроен като g_serial устройство, ще се появи ново серийно устройство (при използване на Raspberry Pi OS Bookworm с ядро 6.12.34, това беше /dev/ttyGS0). Когато това Raspberry Pi устройство бъде включено в (напримерamp(например, Linux), устройството ще бъде разпознато като CDC ACM-съвместимо устройство и ще се появи като друг сериен порт. Напримерampле, на Raspberry Pi 500, на който работи Bookworm, той се показва като /dev/ttyACM0.
Под Linux можете да тествате серийната връзка, като използвате екрана на всяко устройство. Ако използвате Windows на хоста, нещо като Putty би трябвало да работи добре.
На вашия Raspberry Pi:
- Код
- екран /dev/ttyGS0
На Linux хост:
- Код
- екран /dev/ttyACM0
След това въведете нещо във всеки прозорец — резултатът трябва да се появи на другия екран.
Забележка
Ако screen не е инсталиран, използвайте sudo apt install screen в терминален прозорец.
Лесно е да се види как тази функционалност може да се използва за осигуряване на сериен интерфейс към устройство Raspberry Pi, което следи редица сензори (например чрез I2C или SPI) и предава събраната информация обратно, през серийния порт, към хост компютъра.
ConfigFS/usb_gadget: един смел нов свят
Въпреки че са най-разпространеният начин за настройване на OTG на Raspberry Pi устройства, описаните по-горе механизми всъщност са заменени от нещо, наречено usb_gadget, което е част от ConfigFS.
ConfigFS е интерфейс на ядрото на Linux (виртуален file система, монтирана в /sys/kernel/config), използвана за конфигуриране на обекти на ядрото — включително драйвери за USB устройства — по модулен начин. Използването на ConfigFS /usb_gadget е по-гъвкаво от стария метод g_mass_storage /g_ether, защото можете да композирате множество USB функции (напр. Ethernet + сериен + масово съхранение) едновременно.
Тази допълнителна функционалност обаче е свързана с по-високи разходи за настройка.
Основната идея е, че набор от виртуални папки и files се създава в папката /sys/kernel/config, която определя необходимата джаджа.
Документация за ядрото на usb_gadgets е достъпна тук: https://docs.kernel.org/driver-api/usb/gadget.html и https://www.kernel.org/doc/Documentation/ABI/testing/configfs-usb-gadget.
Настройка
Настройката на USB периферното устройство на DWC е същата като в legacy режим. Редактирайте config.txt като sudo и добавете:

Можем да проверим дали се е заредил правилно, като разгледаме съдържанието на /sys/kernel/config, което вече би трябвало да съдържа папка, наречена usb_gadget.
Следва създаването на самата USB джаджа, което включва създаване на папка с името на джаджата и след това създаване на набор от записи в тази папка, за да се дефинират свойствата на джаджата. Този откъс от bash скрипт извършва по-голямата част от необходимата настройка:

След като основните данни за устройството са зададени, трябва да кажем точно какво представлява то. Създаването на всяко устройство е толкова просто, колкото създаването на папка в папката с функции на притурката ConfigFS и след това свързването на тази папка със записа за конфигурация в същата притурка.
Сериен (CDC ACM):

Ethernet (RNDIS и ECM):
Масово съхранение:
Както и при старата конфигурация, ни е необходимо резервно хранилище за нашето устройство за масово съхранение:

И за да го използвам:

съвет
/sys/class/udc е директория в sysfs file система, която представлява наличните USB контролери на устройства (UDC). Тя позволява на USB подсистемата на ядрото да идентифицира и взаимодейства с хардуерни UDC на устройство, което позволява на системата да функционира като USB периферно устройство. Можете да изброите съдържанието му, като използвате ls /sys/class/udc/, за да намерите името на UDC, например 3f980000.usb, и след това да запишете това име в конфигурацията на притурката, за да я обвържете с UDC.
След като настройката приключи, структурата и съдържанието на папките трябва да приличат на предишнатаampпо-долу, който настройва както серийно устройство, така и Ethernet устройство на едно и също устройство:

Сега рестартирайте, след което свържете устройството Raspberry Pi към хост устройство (например друг Raspberry Pi, компютър с Windows или компютър с Linux). Хостът трябва да има свързани USB Ethernet устройство и серийно устройство.
Накарайте всичко да работи
Всички описани по-горе команди трябва да се изпълняват всеки път, когато устройството Raspberry Pi се стартира. Тъй като Raspberry Pi OS използва systemd, това е подходящият начин за стартиране на стартовия скрипт, който извършва цялата настройка. Ето един примерampскрипт, който събира всички инструкции отгоре:

Сега трябва да кажем на systemd да стартира нашия скрипт при стартиране.
Създайте a file в /lib/systemd/system — името, което изберете, зависи от вас (стига наставката да е .service), но за този примерampще използваме mass-storage-device.service. Въведете следното в file (имайте предвид, че има много различни опции за тези услуги) files; ние използвахме само тези, от които се нуждаем):

Ще трябва да промените реда ExecStart, така че да сочи към мястото, където сте запазили инсталационния скрипт. След това трябва да кажете на systemd да стартира услугата при стартиране:

Сега, когато включите вашия Raspberry Pi в хост, той би трябвало да се появи като устройство за масово съхранение. Можете да деактивирате услугата systemd, както следва:

Свързване на конзола за вход към сериен порт
Ако сте настроили вашия Raspberry Pi като сериен порт, може да искате да използвате този сериен порт, за да влезете в устройството, вместо просто да го използвате за серийна комуникация от точка до точка. В най-новата версия на Raspberry Pi OS, работеща със systemd, това е лесно. Трябва да кажете на системата да създаде getty сървър на серийния порт и след това да кажете на systemd да го стартира. Следното настройва getty сървъра на ttyGS0 (tty сървърът, създаден при използване на ConfigFS за настройване на серийно устройство); може да се наложи да го коригирате, за да съответства на tty сървъра, към който е присвоено серийното устройство.

Това ще стартира getty на серийния порт и ще гарантира, че то ще се стартира автоматично при всяко рестартиране.
съвет
Какво е getty? В Linux getty е програма, която управлява терминали (както физически серийни портове, така и виртуални конзоли), за да позволи на множество потребители да влизат в системата, обработвайки задачи като инициализиране на терминала, показване на подкана за влизане и извикване на програмата за вход за удостоверяване на потребителя.
Тази функция може да бъде особено полезна за устройства като Raspberry Pi Zero или Raspberry Pi Zero 2 W. Само с една USB връзка, осигуряваща както захранване, така и серийна комуникация, можете да включите устройството и да влезете в него чрез терминал.
Заключение
За истински проекти с USB устройства (напр. Ethernet, сериен порт, масово съхранение), семейството Raspberry Pi Zero и Raspberry Pi Compute Modules са най-добрият избор.
Raspberry Pi 4 и Raspberry Pi 5 предлагат OTG поддръжка, но техните изисквания за захранване може да са проблем.
Платките Raspberry Pi A, B, 2B, 3B и 3B+ не поддържат OTG.
Ако вашият проект зависи силно от OTG, най-добрите опции са Raspberry Pi Zero 2 W или Raspberry Pi Compute Module 4 с платката Compute Module 4 IO.
От страна на софтуера има две опции: старата система все още се използва често и е лесна за настройване; системата ConfigFS изисква повече работа за настройване, но предоставя по-добра функционалност.
Таблица за бързи справки
| Модел | OTG поддръжка | Бележки |
| Raspberry Pi Zero / Zero W / Zero 2 W | да | Напълно поддържан от USB порт за данни |
| Raspberry Pi 4 | Да ¹ | USB-C порт в режим на устройство |
| Raspberry Pi 5 | Да ¹ | USB-C порт в режим на устройство |
| Raspberry Pi A/B/2B/3B/3B+ | не | Само режим на хост |
| Модул за изчисления на Raspberry Pi 1–3 | да | Изложено на OTG пинове |
| Raspberry Pi Compute Module 4 | да | micro-USB на CM4 IO платка |
¹ Raspberry Pi 4 и 5 обикновено се захранват от хоста чрез USB кабела, така че може да има ограничения на наличния ток поради по-високите изисквания за захранване на тези устройства.
Данни за контакт за повече информация
Моля, свържете се applications@raspberrypi.com ако имате някакви въпроси относно този документ. Web: www.raspberrypi.com
Често задавани въпроси
Какви са рисковете, свързани с активирането на OTG режим?
Активирането на OTG режим изисква система за редактиране fileкоито могат да представляват риск, ако се изпълнят неправилно. Препоръчително е да следвате внимателно инструкциите и да архивирате важни данни, преди да правите промени.
Мога ли да използвам OTG режим на модели Raspberry Pi, различни от Zero, Zero W и Zero 2 W?
Въпреки че предоставените инструкции са специфични за споменатите модели, можете да разгледате подобни конфигурации на други Raspberry Pi SBC с подходящи адаптации.
Документи / Ресурси
![]() |
Едноплатков компютър ResearchGate Raspberry Pi [pdf] Ръководство за употреба Едноплатков компютър Raspberry Pi, Raspberry Pi, Едноплатков компютър, Бордов компютър, Компютър |
