Как стать автором
Обновить

Первый одноплатник или как поднять Orange Pi 5 Pro

Уровень сложностиПростой
Время на прочтение4 мин
Количество просмотров15K

Эту небольшую статейку я написал как для тех, кто хочет первый раз запустить одноплатник, так и для тех, кто сталкивается с ошибкой "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 (Или похожее коих много) и воткнуть шнур с переходником. Настолько просто, что действительно неинтересно! Подключив плату к монитору, клаве и банке получился довольно экзотический ноутбук, с которым шансов на привлечение внимания девушек в любой кофейне значительно больше, чем у остальных представителей программистского вида.

Результат сборки

Как настроить ось

  1. Выбираем ось. Просто накатить на orange pi стандартную ось не получится, потому разработчики orange pi адаптировали и выпустили свои образы. Тут важно учесть, что под разные версии orange pi: базовую, plus и pro выпускаются разные образы и для pro образы качать нужно именно отсюда. Я как фанат убунты решил ставить именно ее.

  2. Записываем образ. Несмотря на то, что 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 карту принудительно затер нулями. Не знаю совпадение это или нет, но рекомендую попробовать при возникновении подобной ошибки.

  3. Теперь, когда я запустил Orange Pi на sd карте необходимо было установить ось на ssd. Благо тут предполагался разработчиками простой порядок действий:

    1. набираем sudo orangepi-config, вводим пароль orangepi

    2. Выбираем System -> Install -> и дальше мне лень вспоминать так как после установки у меня это окно пропало все интуитивно понятно(Выбираем установку на ssd, в интерактивном окне размечаем файловую систему под ext4, тыкаем везде Ok и в конце нам предлагают сделать reboot)

    3. И после перезагрузки вне зависимости от того что бы я не выбирал при установке и какую бы версию убунты не ставил, я каждый раз получал ошибку "you are in emergency mode". Вероятно эта ошибка вызвана еще сырой версией операционной системы так как Orange Pi 5 Pro вышла всего за несколько месяцев до моей покупки. Я запускал версию операционной системы 1.0.2. Поначалу я пытался бежать от от этой ошибки, делал все, чтобы ее не возникло, но в конечном счете я смирился, принял бой и пошел заколебывать chatGPT курить мануалы по запуску линукс дистрибутивов. Поресерчив я выяснил, что успешный запуск возможен только если сойдутся все звезды на небе, всего их 3:

      • В директории "boot/*" будут существовать инструкции для запуска операционной системы.

      • Устройство, с которого планируется загружать операционную систему должно отображаться командой blkid и у такого устройства должен быть свой UUID

      • Правильно размеченная таблица монтирования файловых систем в файле "/etc/fstab". Тут то и возникает наша проблема. При установке операционной системы на ssd какого-то лешего по непонятным причинам неправильно размечается этот файлик из-за чего и получается наша ошибка "emergency mode".

    4. Чтобы исправить эту ошибку пришлось исполнить следующий танец с бубном:

      • Найти в какой директории boot(коих несколько чтобы вас запутать) лежат бут файлы:
        `sudo find / -name boot`

      • Найти UUID целевого загрузочного устройства, в нашем случае SSD диска(dev/nvme0n1p1):
        `blkid`

      • Разметить таблицу монтирования файловых систем:
        `sudo nano /etc/fstab`

        Данная разметка таблицы не является единственно правильным вариантом
        Данная разметка таблицы не является единственно правильным вариантом

        И вот остается только вызвать ребут и проблема с "emergency mode" канет в Лету.

Теги:
Хабы:
Всего голосов 10: ↑8 и ↓2+9
Комментарии24

Публикации

Ближайшие события