Краткая предыстория
У меня Hassio сборка от OXOTH1K прекрасно работала на Raspberry Pi4 и micro SD карточке SanDisk Ultra 32Gb. До нее какая-то не запомнившаяся карточка на 16Gb внезапно умерла. Благо, делаю бэкапы на Google Drive великолепным аддоном.
Но всегда хочется чего-то лучшего, быстрого и надежного, поэтому я стал смотреть в сторону решений на eMMC. В итоге, была куплена на Aliexpress вот такая карта с адаптером на 32Gb.
План был следующий. Установить на eMMC Raspbian Buster Lite, а на него - оптимизированную для Raspberry Pi4 версию hass.io Затем, развернуть на нее бэкап от охотниковской сборки и наслаждаться сумасшедшей скоростью.
Заранее скажу, что план в итоге удался на все 100% :)
Проблемы
У меня везде маки и первой проблемой стало то, что далеко не через каждый переходник SD - microSD, не через каждый card reader эта карточка eMMC виделась в MacOS. В итоге, взятый у админов на работе card reader Transcend TS-RDF8W решил эту проблему и я успешно записал на карту свежий образ Raspbian Buster Lite с официального сайта Raspberry c помощью Balena Etcher.
Вынув из малинки карточку и воткнув через адаптер eMMC карту, я включил питание и обнаружил, что загрузка не идет. Зеленый светодиод периодически мигает и даже на подключенный монитор ничего не выводится.
Решение
Решением проблемы является то, что официальный бутлоадер последней версии Raspberry Pi4 не поддерживает загрузку не только с USB, но и с eMMC. Чтобы обновить бутлоадер до бета версии с поддержкой возможности загрузки с eMMC, мне пришлось снова загрузиться со своей старой microSD карточки.
Версию вашего бутлоадера можно посмотреть командой:
$ vcgencmd bootloader_version
Скорее всего, у вас будет стоять последняя официальная версия от 10 сентября 2019 года. Та версия, которая умеет грузиться с eMMC карты, должна быть минимум от 16 октября.
Итак, давайте обновим бутлоадер до этой версии.
Для начала, обновим нужные пакеты:
$ sudo apt update $ sudo apt upgrade $ sudo apt install rpi-eeprom
Далее, eсли открыть файл /etc/default/rpi-eeprom-update и заменить там строку
FIRMWARE_RELEASE_STATUS="critical"
на
FIRMWARE_RELEASE_STATUS="beta"
то в дальнейшем вы сможете апдейтиться системным сервисом rpi-eeprom до последних бета версий. Конечно, это опасно и чревато тем, что однажды ваша малинка не загрузится, поэтому, лучше обновлять бутлоадер вручную и выключить этот сервис командой:
$ sudo systemctl mask rpi-eeprom-update
Включить сервис назад вы можете командой:
$ sudo systemctl unmask rpi-eeprom-update
Теперь, в директории /lib/firmware/raspberrypi/bootloader/beta/ у вас есть бета версии бутлоадера:
$ ls -la /lib/firmware/raspberrypi/bootloader/beta/ total 5484 drwxr-xr-x 2 root root 4096 Jan 28 19:48. drwxr-xr-x 4 root root 4096 Jan 28 19:48.. -rw-r--r-- 1 root root 524288 Jan 22 21:28 pieeprom-2019-09-06.bin -rw-r--r-- 1 root root 524288 Jan 22 21:28 pieeprom-2019-09-10.bin -rw-r--r-- 1 root root 524288 Jan 22 21:28 pieeprom-2019-09-23.bin -rw-r--r-- 1 root root 524288 Jan 22 21:28 pieeprom-2019-09-25.bin -rw-r--r-- 1 root root 524288 Jan 22 21:28 pieeprom-2019-10-08.bin -rw-r--r-- 1 root root 524288 Jan 22 21:28 pieeprom-2019-10-16.bin -rw-r--r-- 1 root root 524288 Jan 22 21:28 pieeprom-2019-11-18.bin -rw-r--r-- 1 root root 524288 Jan 22 21:28 pieeprom-2019-12-03.bin -rw-r--r-- 1 root root 524288 Jan 22 21:28 pieeprom-2020-01-09.bin -rw-r--r-- 1 root root 524288 Jan 22 21:28 pieeprom-2020-01-17.bin -rw-r--r-- 1 root root 60868 Jan 22 21:28 recovery.bin -rw-r--r-- 1 root root 96984 Jan 22 21:28 vl805-00013701.bin -rw-r--r-- 1 root root 98712 Jan 22 21:28 vl805-000137ab.bin -rw-r--r-- 1 root root 98904 Jan 22 21:28 vl805-000137ad.bin
Мы готовы прошить нужную нам бета версию бутлоадера под названием pieeprom-2019-10-16.bin.
Честно говоря, прошивать более свежие бета версии я не пробовал, потому как для загрузки с eMMC достаточно и этой версии.
Команда для прошивки такая:
$ sudo rpi-eeprom-update -f /lib/firmware/raspberrypi/bootloader/beta/pieeprom-2019-10-16.bin
После моментальной прошивки нужно будет перезагрузить малинку, чтобы завершить процесс обновления. Затем, после успешного окончания загрузки системы с вашей microSD карты, вы можете остановить малинку, вставить вашу eMMC карту через адаптер с записанным образом Raspbian Buster Lite и загрузиться с нее.
Кстати, в последних версиях беты бутлоадера добавили загрузку по сети. По USB, к сожалению многих, еще нет.
Отлично, спасибо за статью, теперь со спокойной совестью могу прикупить четверку, уже и emmc для неё есть👍
Да, главное, ридер найти, который будет работать с emmc, чтобы образ записать. Может, на винде с этим попроще.
А с Raspberry Pi 3B+ такое можно провернуть или он не поддерживает eMMC?
Трешка и так может грузиться и с eMMC и даже с USB безо всяких танцев с бубнами.
Малина с такой памятью по цене уже почти как нормальный miniPC на x86
Возможно. Каждый выбирает то, что ему ближе :)
Вот тут все подробности https://www.raspberrypi.org/documentation/hardware/raspberrypi/bootmodes/net_tutorial.md">https://www.raspberrypi.org/documentation/hardware/raspberrypi/bootmodes/net_tutorial.md
Вот не понимаю.
За те же +- 5 тысяч, на авито можно выдернуть неттоп (нюк, брикс) на i3, с которым малина (
любая ) не сможет тягаться не в плане скорости, не в плане стабильности.
Так зачем все это? Сначала покупать 4 малину, потом решать вопрос с ее перегревом, потом с надежностью карт памяти. Зачем создавать себе проблемы, что бы потом мужественно их решать?
Лично я нуб и не хочу тратить дни на пролет накатывая HA на подобные системы, мне надо просто накатить образ на sd карту и забыть. А если появилась проблема, то в два клика найду решение, для неттопа сомневаюсь, что решение будет в два клика, если вообще такой вопрос нетривиальной проблемы в интернете даже найдется.
Получаешь без шумную, мало потребляющую и стабильную машинку.
P.S. У меня есть нетбук, который хотел заюзать как систему под УД, но это провести вечера и не одни десятки, чтобы настроить как надо все от и до. Так что нам нубам приходиться платить, если напишите как сделать от и до на таких системах, то возможно и больше станет последователей.
на nuc вы точно также берете готовый образ, делаете загрузочную флешку одним кликом и с нее ставите систему (далее - далее - готово). при этом он не арм, такой же энергоэффективный как малина, в нем есть все те же интерфейсы (wifi ac, bt, hdmi), больше памяти, ну и упомянутый выше ссд
Не думали о том, что малинка может появиться в хозяйстве задолго до того, как вы решили делать сервер УД? В таком случае, зачем еще покупать нюк и так далее, когда уже есть платформа, вполне для этого подходящая? Ну и не забывайте про ту категорию людей, для которых это просто just for fun.
Скорость чтения/записи на SD у малинки же мелкая, даже не выжать никаких соков из eMMC, лучше с USB грузиться, там 300МБ/с, когда у SD вроде 20-40МБ/с.
Четвертая малина не умеет грузиться с USB. В статье об этом сказано.
"Переезд" удался. Спасибо за инструкцию.
Проверять более новые прошивки на предмет возможности загрузки
с eMMC карты только методом проб ? Кстати, на карту заливал, просто вставив в ноутбучный ридер.
Почему только методом проб. Есть ChangeLog на прошивки. Начиная с какой-то конкретной беты emmc стал поддерживаться. Следовательно все остальные беты и релизы должны эту возможность загрузки с emmc продолжать поддерживать и улучшать.
Поучительно и ново для меня. Переехал мой Raspberry4 + Emmc 32Gb на последнюю прошивку.
А почему eMMC? Я так и не могу понять, зачем жертвовать надёжностью, скоростью и объёмом ради того, чтобы потратить на это больше денег? Смотрел цены на али. eMMC на 32Гб +адаптер стОит дороже, чем быстрый ssd на 128Гб + usb2sata. Тем более, что малины 4-е напрямую могут загружаться с USB стораджа. А для всех предыдущих можно оставить маленькую флешку в RO и в fstab биндом монтировать все разделы с SSD. У меня годами уже так работает.
В то время, когда писалась эта статья, четвертая малина еще не умела грузиться с SSD. Кроме того, многим важно сохранение концепции компактного одноплатника при варианте с использованием emmc накопителя. Дополнительная огромная SSD бандура на проводе рядом с малинкой очень противоречит этой концепции.
Да зачем необходимость грузиться с него? У меня с ssd всё годами работало ещё до появления четвёртой малины и на распберри и на всяких прочих банана/апельсина паях. Тупо биндом монтировнание нужного набора директорий с ssd на соответствующие в файловой системе, рутфс флешки при этом изначально можно в ro перевести, да и флешки хватит любой на 2гб. Элементарно за 3-5 минут всё делается. Бомбануло, писал ночью сегодня часа 3 статью на эту тему на спрут.ио. Сохранял несколько раз в черновик, но она там по неведомой мне причине не появилась, напишу снова. По поводу эстетичности и огромных бандур - странный аргумент, если честно. Торчащий модуль eMMC тоже эстетики не добавляет, а сама пишка обычно живёт где-то на антресолях/в шкафу и не отсвечивает. Плюс "бандура" по площади близка к пишке, можно расположить компактно одно над другим. В сухом остатке - за одни и те же деньги разница в объёме, скорости и надёжности примерно в 4 раза и всё не в пользу eMMC.
Что значит "зачем грузиться с emmc"? Еще раз: в то время, когда писалась эта статья, НЕЛЬЗЯ было грузиться с SSD на четвертой малине! Бутлоадер четвертой малины просто не поддерживал SSD. Альтернативой SD карточкам была только emmc и поэтому появилась эта статья, как способ решения проблемы умирающих SD карточек.
Про то, что SSD надежнее и быстрее, вопрос спорный и не такой однозначный, как вы думаете. Так же, как и вопрос эстетичности огромного диска на проводке. Но пускаться в споры на эти темы у меня нет никакого желания.
Никто не заставляет вас пользоваться emmc. Не нравится вам, думаете вы, что SSD лучше, да ради Бога! Но статья была очень актуальна и востребована в свое время. А теперь, спустя год, с новыми реалиями, новыми знаниями, появившимся за прошедший года, вы приходите в комментарии и пишете, что она не нужна? Очень странно, честное слово.
Уважаемый, я ни в коем случае не принижаю ваших заслуг, вы молодец, вы написали полезную статью. Никто не спорит, что eMMC надёжнее карты памяти. Но в разы менее надёжно, быстро и меньше по объему (т.е. объективно хуже), чем ssd за те же деньги. Я пытаюсь найти аргументы в пользу eMMC, но не вижу их кроме разве что компактности. И год назад ssd уже давно были в ходу и стоили не дороже, чем сейчас. И простые способы использовать ssd в качестве накопителя есть на любом одноплатнике с полноценным usb разъёмом. Я тоже не собираюсь с пеной у рта пытаться что-то доказать. Просто напишу свою статью. Меня интересовали аргументы за eMMC, я думал, что что-то ещё упустил.
Можете попробовать разобраться, почему множество производителей до сих пор ставят в свои микрокомпьютеры именно emmc, а не ssd. Вот, например, официальная железка от HomeAssistant тоже использует emmc, а не ssd.
Видимо, компактность, большая энергоэффективность играет свою роль.
Я разбирался. Краткий ответ - потому что это дешевле и потому что на плате нет места под sata/m.2 разъёмы. Если взять ноутбуки, то eMMC устанавливают только на самые дешёвые модели, на более дорогих ставят ssd, на телефонах и планшетах бюджетного сегмента тоже eMMC и у меня было два телефона, где флеш сдох и перешёл в режим только для чтения. Рассчет на то, что телефон станеиэт неактуален раньше, чем сдохнет флеш и специфика нагрузки на флеш там иная, а всякого рода логи и подобное пишутся в рамдрайв. В более дорогих смартфонах ставят память, выполненную по другой технологии - UFS.
Как альтернатива emmc имеет полное право на существование и использование в контексте УД. Каждый сам выбирает, что ему дешевле, красивее, ближе к дому или еще по каким-то критериям.
Сам я давным давно уже на x86 с SSD диском, а тогда, когда писал эту статью, как оказалось, не только мне эта тема с emmc была актуальна.
raspberry pi 3b поддерживает загрузку с usb https://www.raspberrypi.org/documentation/hardware/raspberrypi/bootmodes/msd.md">https://www.raspberrypi.org/do...
А какие преимущества в данном случае у eMMC перед microSD, например, при резкой потере питания на raspberry больше шансов что на eMMC не порушится файловая система на карте?
Не могу сказать. Таких тестов я не проводил.
Кстати, а какое решение на
x86 с SSD диском
для описанной в твоей статье задачи используешь сейчас? Т.е. какие комплектующие?
У меня сейчас в качестве сервера используется Gigabyte Brix GB-BACE-3000 с SSD диском на 32 гига и 4 гигабайтами памяти. Стоит Debian 10 и Supervised HomeAssistant.