Переезд с micro SD card на eMMC на Raspberry Pi4

29 января 2020, 07:00

Краткая предыстория

У меня 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, к сожалению многих, еще нет.


Все новости мира умных домов - t.me/SprutAI_News или Instagram
Остались вопросы? Мы в Telegram - @Soprut

Хочешь умный дом но нет времени разбираться?
Посмотри примеры работ и выбери себе интегратора.
  1. Евгений Лузин (EvLuz)
    Евгений Лузин (EvLuz) 19 дней назад

    Отлично, спасибо за статью, теперь со спокойной совестью могу прикупить четверку, уже и emmc для неё есть👍

    • Igor Gubaidullin (pavuk)
      Igor Gubaidullin (pavuk) 19 дней назад

      Да, главное, ридер найти, который будет работать с emmc, чтобы образ записать. Может, на винде с этим попроще.

  2. (durovmn)
    (durovmn) 19 дней назад

    А с Raspberry Pi 3B+ такое можно провернуть или он не поддерживает eMMC?

    • Igor Gubaidullin (pavuk)
      Igor Gubaidullin (pavuk) 19 дней назад

      Трешка и так может грузиться и с eMMC и даже с USB безо всяких танцев с бубнами.

  3. Николай Васильчук (anonym.tsk)

    Малина с такой памятью по цене уже почти как нормальный miniPC на x86

  4. Эдуард Салло (Edward)
    Эдуард Салло (Edward) 19 дней назад
    Про загрузку по сети, можно подробней плиз)))

  5. Белояр Иван (Ivan711)
    Белояр Иван (Ivan711) 19 дней назад

    Вот не понимаю. 

    За те же +- 5 тысяч, на авито можно выдернуть неттоп (нюк, брикс) на i3, с которым малина ( любая ) не сможет тягаться не в плане скорости, не в плане стабильности. 

    Так зачем все это? Сначала покупать 4 малину, потом решать вопрос с ее перегревом, потом с надежностью карт памяти. Зачем создавать себе проблемы, что бы потом мужественно их решать? 

    • (dmitriimi)
      (dmitriimi) 19 дней назад

      Лично я нуб и не хочу тратить дни на пролет накатывая HA на подобные системы, мне надо просто накатить образ на sd карту и забыть. А если появилась проблема, то в два клика найду решение, для неттопа сомневаюсь, что решение будет в два клика, если вообще такой вопрос нетривиальной проблемы в интернете даже найдется.

      Получаешь без шумную, мало потребляющую и стабильную машинку. 

      P.S. У меня есть нетбук, который хотел заюзать как систему под УД, но это провести вечера и не одни десятки, чтобы настроить как надо все от и до. Так что нам нубам приходиться платить, если напишите как сделать от и до на таких системах, то возможно и больше станет последователей.

      • (t3sc0)
        (t3sc0) 18 дней назад

        на nuc вы точно также берете готовый образ, делаете загрузочную флешку одним кликом и с нее ставите систему (далее - далее - готово). при этом он не арм, такой же энергоэффективный как малина, в нем есть все те же интерфейсы (wifi ac, bt, hdmi), больше памяти, ну и упомянутый выше  ссд

    • Igor Gubaidullin (pavuk)
      Igor Gubaidullin (pavuk) 18 дней назад

      Не думали о том, что малинка может появиться в хозяйстве задолго до того, как вы решили делать сервер УД? В таком случае, зачем еще покупать нюк и так далее, когда уже есть платформа, вполне для этого подходящая? Ну и не забывайте про ту категорию людей, для которых это просто just for fun.

  6. (dmitriimi)
    (dmitriimi) 19 дней назад

    Скорость чтения/записи на SD у малинки же мелкая, даже не выжать никаких соков из eMMC, лучше с USB грузиться, там 300МБ/с, когда у SD вроде 20-40МБ/с.

    • Igor Gubaidullin (pavuk)
      Igor Gubaidullin (pavuk) 18 дней назад

      Четвертая малина не умеет грузиться с USB. В статье об этом сказано.

К списку статей

Похожие статьи

17 декабря 2019, 17:49
Универсальный привод для автоматического удаленного открытия окон с простой интеграцией в умные дома
15 ноября 2018, 09:42
Способы автоматизации механических ворот
15 ноября 2018, 13:11
Xiaomi Mi Remote 360 добавляем Apple HomeKit
15 июня 2018, 12:13
Охранная система в гараж на ESP8266 с интеграцией в Apple HomeKit
24 августа 2018, 12:18
Пошаговая установка HomeAssistant
20 октября 2018, 22:57
Теоретические основы протокола MQTT и описание того, как он работает и для чего используется
28 августа 2018, 09:48
От голого Raspbian до веб-интерфейса homebridge за четыре команды в терминале.
27 августа 2018, 10:14
Интегрируем ХА в HomeKit
03 октября 2018, 22:03
Как собрать и настроить Hyperion Ambilight - адаптивную подсветку ТВ.
01 ноября 2018, 09:27
Настройка Deconz USB стика ConBee от Dresden Elektronik в Hass.io и некоторые особенности эксплуатации