Raspberry Pi запретила замену памяти на Pi 5 через прошивку

Перевод статьи Raspberry Pi locks down Pi 5 RAM upgrades in firmware — Jeff Geerling.
Raspberry Pi добавила в прошивку функцию, которая не даёт пользователям менять чипы оперативной памяти — иногда даже на чипы того же объёма, снятые с других плат Raspberry Pi.

Память LPDDR4X, снятая с Raspberry Pi 5
Судя по всему, находились люди, которые покупали дешёвые Pi 5 на 1 или 2 ГБ, перепаивали на них дешёвые и порой ненадёжные чипы на 8 ГБ и продавали как новые восьмигигабайтные Pi 5.
Я прекрасно понимаю позицию Raspberry Pi. Им не хочется поддерживать платы, проданные таким образом: глючная память и сомнительные перекупщики — огромная проблема. Особенно сейчас, когда на фоне ИИ-пузыря память стала таким прибыльным товаром.
Но я совершенно не согласен с тем, как они решают эту проблему.
Обновление прошивки, запретившее замену памяти, на самом деле вышло ещё в конце 2024 года, два года назад. Так что свалить всё на нынешние цены на память не получится.
Raspberry Pi имеет полное юридическое право так закрывать своё железо, но это не значит, что нам это должно нравиться.
Главная беда в том, что простого способа обойти ограничение нет — разве что сидеть на древней прошивке (2024-09-10-2712 или старше).
Этот пост — слегка отредактированная расшифровка моего видео на YouTube.
Зачем#
Пожалуй, самый официальный ответ, который мы получим, — сообщение PhilE на форуме Raspberry Pi, и в нём чувствуется раздражение. Ещё бы: владельцы таких доработанных плат идут за поддержкой именно в Raspberry Pi. Звонить в магазин, где они купили плату, когда что-то сломалось, никто не станет.
Но стоит сразу ответить на вопрос: есть ли у Raspberry Pi настоящая техническая причина запрещать замену — или это заговор, чтобы люди платили за «фирменную» память?
Короткий ответ: да, резон у Raspberry Pi есть. Тайминги памяти, особенно у современных чипов LPDDR, очень непросто выставить правильно, а плохая пайка или дешёвый чип, едва прошедший отбраковку, дают очень странные отказы.
Более того, нагрев и разгон усугубляют ситуацию, если конфигурация не была протестирована и настроена.
Так что да, с технической и, наверное, даже с юридической точки зрения я Raspberry Pi понимаю. Мне просто не нравится это с точки зрения аппаратного хакинга.
Вся суть Pi была в том, что с ней можно возиться. И невозможность копаться в ней вплоть до уровня отдельных чипов — серьёзный промах. Не то чтобы многие вообще стали выпаивать память, но важна сама идея: если захочешь — сможешь.
Как можно было бы решить#
Я помню, что на старых Pi (до Pi 3 B включительно) у Raspberry Pi было решение такой проблемы — «гарантийный бит».
Это был бит в прошивке, который переключался из 0 в 1, если вы сознательно обходили ограничения безопасности в config.txt — например, чтобы разогнать Pi сильнее, чем Raspberry Pi считала безопасным.
Вместо того чтобы блокировать законную замену памяти — будь то ремонт сломанной платы или, когда-нибудь, апгрейд с 2 до 8 ГБ, — можно было бы сделать нечто подобное. Выставляешь одноразовый флаг в прошивке, подтверждая отказ от гарантийной поддержки, меняешь память — и дальше отвечаешь за всё сам.
Большая проблема в том, что сейчас физически отличить Pi с перепаянной памятью невозможно. Зато есть программный способ, описанный в блоге Geekworm: Raspberry Pi публикует коды всех моделей, так что можно проверить, сколько памяти должно стоять на вашей плате.
Кто-то на Hacker News даже предложил, чтобы Raspberry Pi сверлила отверстие, обозначающее заводской объём памяти, вместо того чтобы запаивать для этого резистор. Возможно, пришлось бы немного перетрассировать плату, но это всё равно лучше, чем закрывать доступ пользователям.
Но в итоге это просто ещё одна печальная потеря в праве владеть своим железом: заменить или нарастить память теперь нельзя.