Эту небольшую статейку я написал как для тех, кто хочет первый раз запустить одноплатник, так и для тех, кто сталкивается с ошибкой "emergency mode". Понимаю, что некоторые обсуждаемые в статье вещи можно было решить более оптимально. Буду рад почитать в комментариях ваши предложения!
Зачем все это?
В рамках небольшого стартапа GrifOn (если сайт лежит, не трогайте его, он отдыхает) нашей команде понадобился одноплатник, на котором возможно в реалтайме крутить детекцию людей с rtsp потока(об этом в следующих статьях).
Выбор между Orange Pi 5 и Jetson Nano был непростым. В первую очередь сравнивалась вычислительная мощность: Orange Pi 5 - 6 TOPS на NPU vs Jetson Nano - 0.5 TFLOPS на GPU. Грубо приравняв 0.5 TFLOPS к 2 TOPS видим, что разница в производительности должна получиться существенная. Второй причиной выбора Orange Pi 5 стало наличие встроенного wifi модуля, чем не может похвастаться Jetson Nano, где этот модуль нужно докупать отдельно и ждать 2 недели(и это в Москве!). На момент выбора одноплатника Orange Pi 5 моделей существовало уже 3 штуки: базовая, plus и pro. По производительности одно и то же, но с точки зрения физических интерфейсов разные. Прошка лучше всех подходила на все случаи жизни потому выбор пал на нее. И тут я сам не понял как вырыл себе могилку (извиняюсь за спойлер).
Как запустить одноплатник без мам, пап и монитора
И вот придя радостным домой вместе с новеньким Orange Pi я осознал, что просчитался, так как монитора дома отродясь не было, а покупать моник по цене самой Orange Pi ну совсем не комильфо. Можно было попробовать купить Ethernet провод, найти на просторах интернета логин и пароль от юзера по умолчанию, посмотреть на роутере какой адрес занимает эта плата и надеяться, что на на устройстве ssh сервер будет поднят из коробки. Но такой вариант показался ненадежным и я продолжил свои размышления о подключении монитора. В голову пришло 2 варианта: один интересный, другой простой. Начал я конечно с интересного.
-
Интересный вариант - отодрать матрицу от старого ноутбука и используя переходник из hdmi в edp 30 pin шлейф от матрицы подключиться к hdmi выходу Orange Pi, благо их там аж целых 2. И отодрать матрицу ноутбука тут оказалось самой простой подзадачей, потому что на поиск переходника у меня ушло добрых часа 3. Названий и видов у таких переходников целый зоопарк: hdmi - edp адаптер/конвертер, LCD-контроллер, HDMI-совместимый драйвер платы управления EDP, скалер и думаю еще десятком недобрых слов можно обозвать это устройство. Проблема тут в том, что такой переходник найти тяжело даже в Москве(по крайней мере дешевый - в пределах пары тысяч рублей) и остается только заказывать из китая со сроком ожидания 2-3 недели. Поэтому я заказал контроллер на озоне и перешел временно к простому варианту.
Простой вариант - купить адаптер видеозахвата из HDMI в Type-C и запустить это добро прямо на телефоне или планшете. Я заказал вот такой адаптер с озона, но если хочется то можно и сразу купить похожий с наценкой в 2 раза в ближайшем dns. Все что нужно для имитации монитора это скачать и запустить приложение USB Camera из Play Store (Или похожее коих много) и воткнуть шнур с переходником. Настолько просто, что действительно неинтересно! Подключив плату к монитору, клаве и банке получился довольно экзотический ноутбук, с которым шансов на привлечение внимания девушек в любой кофейне значительно больше, чем у остальных представителей программистского вида.
Как настроить ось
Выбираем ось. Просто накатить на orange pi стандартную ось не получится, потому разработчики orange pi адаптировали и выпустили свои образы. Тут важно учесть, что под разные версии orange pi: базовую, plus и pro выпускаются разные образы и для pro образы качать нужно именно отсюда. Я как фанат убунты решил ставить именно ее.
Записываем образ. Несмотря на то, что Orange Pi 5 pro как и обычный пк имеет M.2 разъем под ssd 2280 и несколько usb портов, поставить ось с usb флешки не получится. На Orange Pi 5 pro не существует биоса, в котором можно выбрать девайс для загрузки оси. Тут точка входа только одна и это sd карта. Вооруживший usb переходником под sd карту и программой BalenaEtcher я записал образ на карточку, воткнул ее в плату, прикрутил к плате чистый ssd диск и был готов покорять
вершиныодноплатник. В этот момент я еще не предполагал, что проделывать эти действия мне придется еще около полутора десятка раз… Также хочу заметить, что при записи образа на sd карту может возникать ошибка “BusyBox v1.30.1 built-in shell”, у меня эта ошибка ушла лишь после того, как я всю sd карту принудительно затер нулями. Не знаю совпадение это или нет, но рекомендую попробовать при возникновении подобной ошибки.-
Теперь, когда я запустил Orange Pi на sd карте необходимо было установить ось на ssd. Благо тут предполагался разработчиками простой порядок действий:
набираем sudo orangepi-config, вводим пароль orangepi
Выбираем System -> Install -> и дальше
мне лень вспоминать так как после установки у меня это окно пропаловсе интуитивно понятно(Выбираем установку на ssd, в интерактивном окне размечаем файловую систему под ext4, тыкаем везде Ok и в конце нам предлагают сделать reboot)-
И после перезагрузки вне зависимости от того что бы я не выбирал при установке и какую бы версию убунты не ставил, я каждый раз получал ошибку "you are in emergency mode". Вероятно эта ошибка вызвана еще сырой версией операционной системы так как Orange Pi 5 Pro вышла всего за несколько месяцев до моей покупки. Я запускал версию операционной системы 1.0.2. Поначалу я пытался бежать от от этой ошибки, делал все, чтобы ее не возникло, но в конечном счете я смирился, принял бой и пошел
заколебывать chatGPTкурить мануалы по запуску линукс дистрибутивов. Поресерчив я выяснил, что успешный запуск возможен только если сойдутся все звезды на небе, всего их 3:В директории "boot/*" будут существовать инструкции для запуска операционной системы.
Устройство, с которого планируется загружать операционную систему должно отображаться командой blkid и у такого устройства должен быть свой UUID
Правильно размеченная таблица монтирования файловых систем в файле "/etc/fstab". Тут то и возникает наша проблема. При установке операционной системы на ssd
какого-то лешегопо непонятным причинам неправильно размечается этот файлик из-за чего и получается наша ошибка "emergency mode".
-
Чтобы исправить эту ошибку пришлось исполнить следующий танец с бубном:
-
Найти в какой директории boot(коих несколько чтобы вас запутать) лежат бут файлы:
`sudo find / -name boot` -
Найти UUID целевого загрузочного устройства, в нашем случае SSD диска(dev/nvme0n1p1):
`blkid` -
Разметить таблицу монтирования файловых систем:
`sudo nano /etc/fstab`И вот остается только вызвать ребут и проблема с "emergency mode" канет в Лету.
-
Комментарии (21)
Kill_Voice
07.06.2024 18:15+10Вот так, с помощью нехитрых приспособлений буханку белого (или черного) хлеба можно превратить в троллейбус…
Если бы почитали доку на плату, то могли просто подключится к консоли через Debug UART
GennPen
07.06.2024 18:15На Orange Pi 5 pro не существует биоса, в котором можно выбрать девайс для загрузки оси. Тут точка входа только одна и это sd карта.
На таком устройстве если захотели бы, то уже давно могли бы сделать что то наподобие биоса. Ну или распаять eMMC чтобы на нее записывать загрузчик с GRUB или подобным.
Johan_Palych
07.06.2024 18:15+3Если на плате есть SPI Flash и M.2 NVMe SSD - прошивают загрузчик, чтобы система работала с диском M.2 NVMe SSD без EMMC и SDCARD.
EDK2 UEFI firmware
https://github.com/edk2-porting/edk2-rk3588
Скрины в этой статье.
https://habr.com/ru/articles/817901/
x89377
07.06.2024 18:15+3В armbian-config есть пункт меню для переноса системы с SD на SATA/NVM/eMMC. Надо только нажать.
sergeygals
07.06.2024 18:15+7Пару моментов
на самом деле вариант с ethernet проводом отринутый как самый ненадежный и был самым простым, надёжным и дешёвым. Тем более пароль на убунту искать бы особо не пришлось (orangepi/orangepi), он есть даже в официальном мануале доступном в виде большой pdf на http://www.orangepi.org/html/hardWare/computerAndMicrocontrollers/service-and-support/Orange-Pi-5-Pro.html
Если после раскатки образа убунты на SD карту её подмонтировать то можно увидеть /boot/orangepi_first_run.txt.template который позволяет не только ставить статические ip но и указывать настройки wifi при первой загрузке, надо только ДО первой загрузки его переименовать в orangepi_first_run.txt ну и выставить в нем параметры на желаемые. Глянуть онлайн на него можно тут https://github.com/orangepi-xunlong/orangepi-build/blob/main/external%2Fpackages%2Fbsp%2Forangepi_first_run.txt.template
Kononvaler
07.06.2024 18:15+2Пока читал про задачи чувствовал себя нубом, когда про запуск и заливку пиайки видел автора ламером.
Рекомендовать к повторению не стал бы.
DungeonLords
07.06.2024 18:15Я раньше тоже использовал BalenaEtcher Но она очень долго грузиться и каждый раз тыкать мышкой там... В итоге написал простенький скриптик с вызовом dd
Johan_Palych
07.06.2024 18:15+2https://wiki.archlinux.org/title/USB_flash_installation_medium_(Русский)#Через_dd
wipefs --all /dev/sdx
dd bs=4M if=путь/до/disk.img of=/dev/sdx status=progress oflag=sync
roverseti
07.06.2024 18:15+1А можно о : " Интересный вариант - отодрать матрицу от старого ноутбука и используя переходник из hdmi в edp 30 pin шлейф от матрицы подключиться к hdmi выходу Orange Pi, благо их там аж целых 2. И отодрать матрицу ноутбука тут оказалось самой простой подзадачей, потому что на поиск переходника у меня ушло добрых часа 3. Названий и видов у таких переходников целый зоопарк: hdmi - edp адаптер/конвертер, LCD-контроллер, HDMI-совместимый драйвер платы управления EDP, скалер и думаю еще десятком недобрых слов можно обозвать это устройство." подробнее написать ??? Очень интересно !
nikolz
07.06.2024 18:15+1В рамках небольшого стартапа GrifOn ...
Так вот про что статья, Карл!!!,
а ты думал, что это про то, как...
... отодрать матрицу ...
наивный ты, Карл!!!
Saz_An
07.06.2024 18:15+2Зачем жизнь усложнять себе. SSH там есть, учетка по умолчанию orangepi/orangepi (она нужна же и из GUI). Проверить всё это дело 5 минут, если даже уверенности не было.
DungeonLords
07.06.2024 18:15Я написал статью где можно не имея реального одноплатника уже начать с ним работать. Хоть моя статья и ориентирована на rpi, последовательность действия аналогична для любого другого железа и дистрибутива... Надеюсь вам будет полезна.
NutsUnderline
07.06.2024 18:15Статья по сути совсем не простая и не для начинающих, как можно подумать из заголовка. А для тех кто уже собаку сьел в матрицах, линуксах, но почему то ни разу не работал с одноплатниками, а потом вдруг увереннеше взял дорогую модель для сложной задачи и пошел ее решать не традиционными способами
Aelliari
07.06.2024 18:15+16 TOPS на NPU
3 ядра по 2 TOPS не совсем эквивалентно 6 TOPS, там и сейчас есть вопросы по применению и загрузке всех трех ядер одной задачей, или тремя разными задачами, по задаче на ядро
NIggadjai
07.06.2024 18:15Столько гемора с подключением дисплея вместо пятиминутного чтения манов и интернета и подключения к пишке по ssh... Автор знает толк в извращениях.
sekuzmin
Очень познавательно.
Все таки на Raspberry Pi все проще с headless установкой.
Да и новый Raspberry Pi AI Kit 13 TOPS.
Vorkov Автор
Действительно Raspberry Pi Ai Kit на первый взгляд выглядит привлекательнее. Я так понял она только-только на этой неделе вышла, ее бы релиз да на месяц пораньше...
svok
Лично я несколько опасаюсь покупать изделие британской компании, выпускающей rpi. Что угодно можно ожидать от наших бывших "партнёров".
Kil1J0y
С тем же успехом китайцы могут подсуть вам свое хитрое по) коих случаев уже не один десяток )
svok
И те, и другие подсунут. Но британцы ещё и заблокируют все кругом.