
Хакерські експерименти з внутрішньою будовою Raspberry Pi – одна з моїх улюблених тем. Я знаю багато неочевидних речей про ці милі маленькі плати. Три роки тому я писала про модернізацію ОЗП Raspberry Pi 4. Заміна мікросхеми ОЗП BGA здавалася мені найпростішим рішенням, попри численні непередбачувані аспекти. Я з радістю спостерігала, як хакери це робили, і як це добре працювало!
Ситуація змінилася. Зараз майже неможливо знайти мікросхеми ОЗП. Також неможливо знайти планки ОЗП. Навіть SSD з мікросхемами ОЗП не знайти. Навіть самі плати Raspberry Pi важко дістати, якщо ви не знаєте, де шукати. Саме в цей момент з’явилося нещодавнє трихвилинне відео від [Jeff Geerling].
Виявилося, що Raspberry Pi Foundation внесла зміни до завантажувача (bootloader) у вигляді бінарних блоків, які обмежують можливості модернізації ОЗП. Я знала про це з минулого року через чутки, і, дивним чином, коли я це читала, мене це зовсім не турбувало. Настільки, що я навіть не написала про це статтю на Hackaday, не кажучи вже про те, щоб говорити про це ширше. Чому мене це не турбувало? Сьогодні я сіла і трохи про це подумала.
Ось мій висновок: я не вважаю, що це взагалі велика проблема, навіть якщо багато людей, здається, не погодяться. Заходьте, як є, і сподіваюся, мої думки щодо ситуації вас розважать.
Як це зроблено
Спочатку кілька базових фактів. Ця зміна обмежує модернізацію мікросхеми ОЗП на Pi 4 і Pi 5, а також на Compute Modules. На вигляд, це не забороняє заміну мікросхеми ОЗП на мікросхему подібного розміру, цитуючи: «фіксуючи пристрої на їхньому оригінальному розмірі ОЗП». Отже, це не заважає ремонту плати Raspberry Pi, але, щонайбільше, дещо обмежує вибір запчастин для ремонту.
Це обмеження легко обійти. Завантажувач зберігається в мікросхемі SPI flash, яку можна перепрошити за допомогою вбудованого mask ROM через USB і rpiboot, і досі немає заборони на прошивку старіших версій завантажувача. Це означає, що навіть якщо ви вручну заміните мікросхему ОЗП, вам потрібно буде лише знизити версію завантажувача до останньої відомої робочої версії – 2024-09-10 – і тоді ваша плата Pi або Compute Module буде працювати з модернізованим ОЗП. Якщо у вас є навички модернізації ОЗП, у вас, безумовно, є навички для зниження версії завантажувача Raspberry Pi.
Для більшості звичайного використання дворічна версія завантажувача насправді не матиме значення. З моменту випуску 2024-09-10 було близько 15 релізів, тому я пройшлася по примітках до виправлень. Швидко перевіривши, важливі функції, такі як завантаження NVMe, були доступні задовго до цього випуску, можливо, ви пропустите кілька виправлень для зручності користування або більш рідкісних проблем конфігурації обладнання, але це все. Сподіваюся, я нічого не пропустила, будь ласка, вкажіть, якщо я помиляюся. Знаєте, що є проблемою, до речі? У примітках до випуску 2024-09-23 взагалі не згадується додавання перевірки розміру ОЗП, можливо, їм варто це виправити.
Смішно те, що я перевіряю звіти, і здається, що плата буде завантажуватися і працювати добре з новішими завантажувачами (переважно версій 2025 року), а в інших випадках (переважно, але не завжди версії завантажувача 2026 року) вона взагалі відмовиться завантажуватися з кодом помилки 8 або 9. Я ще не порівнювала деталі того, що саме може спричиняти це, але, можливо, вам навіть не доведеться так сильно знижувати версію завантажувача – хоча я б точно почала з найстарішої відомої робочої версії.
Як це сталося
Це перша причина, чому я не можу змусити себе переживати. Якщо ви можете модернізувати своє ОЗП, ви можете знизити версію завантажувача. Однак, ось спірний момент – чи справді ця зміна була необхідна?
Для довідки, ця зміна завантажувача сталася майже рівно два роки тому, десь між 10 і 23 вересня 2024 року. Це було рівно півтора року після того, як ми висвітлювали першу модернізацію ОЗП Raspberry Pi. Що змінилося?
Raspberry Pi Foundation (RPF) обґрунтовує це так: вони бачили, як сторонні перекупники купували Compute Modules з низьким обсягом ОЗП, модернізували їх ОЗП з невідомого джерела та невідомої стабільності. Моє спостереження полягає в тому, що вони також перепродавали б модулі з націнкою виключно з комерційною метою, підриваючи RPF, яка б натомість спрямовувала ці гроші на дослідження та розробки, що мені дуже подобається спостерігати. Це створює спотворені стимули та ризик для людей, які купують плати Raspberry Pi онлайн, і RPF вирішила обмежити це насамперед для блага своїх користувачів, а також, якщо ви мене запитаєте, трохи для себе.
Чи правдиве це обґрунтування? Я не можу знати, але я перевірила наявність ознак цього, і, здається, несанкціоновані заміни ОЗП відбуваються повсюди! Відповідні проблеми на GitHub мають чимало згадок, і їх дослідження здається мені похмурим.
На ходу, я витратила 15-20 хвилин на перевірку, і я легко можу знайти п’ятнадцять різних людей на GitHub, які скаржаться на цю проблему. [(1) (2) (3) (4) (5) (6) (7) (8) (9) (10) (11) (12) (13) (14) (15)] Наскільки це стосується режимів збою в популярному обладнанні, це дивовижно велика кількість, яка свідчить щонайменше про сотні постраждалих хакерів та аматорів, якщо не більше. Жоден з них, схоже, не виконував модернізацію самостійно, за допомогою гарячого повітря та флюсу, як це роблять на Hackaday – всі вони, здавалося б, просто купували версію «8 ГБ» з Aliexpress або Amazon. Принаймні в одному випадку продавець негайно збрехав покупцеві про проблему і взагалі не визнав, що модернізація мала місце, хоча вона явно відбулася.
Чому це має сенс
Це, здається, точно відповідає тому, що каже RPF. Я цілком розумію, чому вони могли б хвилюватися. Наприклад, на той час, коли вони зробили цю зміну, якщо моя пам’ять мене не підводить, плати CM5 або CM4 2 ГБ коштували 30-40 доларів, плати 8 ГБ коштували близько 100 доларів, а плати 4 ГБ були десь посередині. Наскільки це стосується перетину хакерських гаджетів та промислового обладнання, ця ціна більш ніж справедлива.
На цьому етапі ми більше не говоримо про людей, які модернізують ОЗП на своїх платах заради розваги, і пам’ятайте, ви все ще можете робити все це. Натомість, це значна націнка для когось, хто витратить 20 хвилин на роботу з гарячим повітрям, для когось, хто не вклав жодних досліджень та розробок, які зробила RPF. Я особисто воліла б, щоб ця націнка дісталася RPF, і я б хотіла, щоб вони не мали жодного клопоту з цим.
Створення стимулів для такого роду підступного бізнесу, безперешкодно, здається мені глибоко руйнівним. По-перше, для тих, хто оснащує ці плати низькоякісними та вкраденими чіпами, немає жодних наслідків. RPF, як і будь-яка досвідчена компанія-виробник обладнання, знала б про закупівлю вкрадених або інших підозрілих ОЗП та інших чіпів. Сторонній продавець на Amazon/Aliexpress, який передає ці чіпи неуповноваженим кінцевим користувачам, тепер виходить далеко за межі звичайних жахливих історій про вкрадені чіпи. Це перетворюється на гру «чи помітить користувач дивацтва і попросить продавця про відшкодування вчасно», і за ціною 100-200 доларів, разом із необхідністю відправляти товар назад, ці ціни приносять, відповідь, як правило, буде «ні». Тепер покупець дізнається про фальсифікацію майже негайно, оскільки плати Raspberry Pi автоматично оновлюють прошивку.
Якщо ви не згодні з тим, що це саме по собі руйнівно – зверніть увагу, як цей тип «модернізованої» плати явно вимагає від продавців спотворювати те, що вони продають? Ви не знайдете цього «апгрейду» в оголошенні, не буде напису «8 ГБ перероблено», явно це вимагало б зниження ціни та/або зменшення націнки. Так само, як немає стимулу використовувати свіжий чіп ОЗП замість вкраденого, також немає жодного стимулу бути відвертим щодо модифікації. Це не спосіб продати ручку, не кажучи вже про повноцінний комп’ютер.
Як RPF це робить
Ось найзаплутаніша частина для мене. Я бачу, як [Jeff] та інші кажуть, що це нехарактерно для RPF. Це зовсім не схоже на правду, чи не так? Я не пригадую жодного випадку, коли Raspberry Pi докладала зусиль, щоб надати користувачам свободу втручатися в плату, як тільки виникала будь-яка юридична проблема або проблема конкуренції.
Raspberry Pi встановлює криптографічні EEPROM на платах камери Pi, v2 і новіших, щоб протидіяти клонованим камерам, які стали настільки поширеними та дешевими з v1, у мене є щонайменше п’ять таких клонів у різних форм-факторах. Мені це не подобається, але принаймні перевірки автентичності вимкнені для версій Compute Module, наскільки я пам’ятаю. Вони досі не продають PMIC MLX7704, який відразу виходить з ладу, якщо ви випадково замкнули GPIO-роз’єм 5 В на 3,3 В, два штирі, які знаходяться прямо збоку плати і надзвичайно легко замкнути одночасно з трьох сторін.
Raspberry Pi публікує «скорочені» схеми, починаючи з 2013 року, і вони навіть не випустили їх для Pi 5. Також вони не опублікували схеми виправлення проблеми USB-C Pi 4, незважаючи на обіцянку це зробити. Половина чіпів на сучасній платі Raspberry Pi є одноджерельными та специфічними для плати, згаданий PMIC є цікавим прикладом. Плати Raspberry Pi постачаються із закритим програмним забезпеченням, від завантажувача до коду GPU, що керує процесором, до всіх бортових бездротових чіпів, які вони використовували досі, і це створює реальні проблеми, з якими ви зіткнетеся, коли розсуватимете межі. Порт JTAG завжди був заблокований, і навіть завантажувач криптографічно підписаний – неможливо виправити код перевірки ОЗП, вибачте, що псую сюрприз.
Я далека від того, щоб перерахувати всі способи, якими Raspberry Pi запобігає або працює проти низькорівневого втручання в плату, я можу перерахувати ще щонайменше п’ять речей з пам’яті, якби мені було не ліньки ретельно їх перевіряти зараз. Суть у тому, що якщо хтось прийшов до Raspberry Pi заради низькорівневої хакерської привабливості обладнання, то завжди було достатньо причин шукати в іншому місці. Це ніколи не було перевагою.
Я не думаю, що низькорівневе втручання в плату – це те, чого люди насправді очікують від Raspberry Pi, навіть якщо вони можуть це сказати – тому що цього ніколи насправді не було. Ви не можете щиро очікувати чогось, чого майже ніколи не було. Натомість, є багато конкурентів, які публікують повні схеми плат, іноді навіть гербери, використовують якомога більше відкритого коду, не підписують завантажувачі тощо. Raspberry Pi не є відкритим чи хакерським обладнанням за цими показниками, і ніколи не було. Це обладнання, яке призначене для використання хакерами, а не настільки хакерське обладнання, і між цим є явна велика різниця.
Як ми дійшли до цього?
Практично, люди явно звертаються до Raspberry Pi через їхню спільноту з мільйонів користувачів, ретельно вивчене та задокументоване обладнання, неперевершену доступність як плат, так і програмного забезпечення, наявність рішень для майже будь-якої дрібниці, здатність RPF експериментувати та випускати нове класне обладнання рік за роком, і навіть нові стандарти, які вони створюють по дорозі. Більшість низькорівневих проблем згладжується завдяки масштабу – скажімо, минулого року [Jonathan Clark] зробив реверс-інжиніринг Raspberry Pi Zero 2 W, а потім [TubeTime] зробив реверс-інжиніринг Compute Module 5, хіба це не круто?
Я можу погодитися з [Jeff Geerling], що замість цього це могло б принести користь механізм типу «гарантійний біт», але, чесно кажучи, зниження версії завантажувача – це не така вже й велика ціна, а «плата автоматично оновлює прошивку, збій при наступному завантаженні» – це набагато сильніший показник того, що вам слід негайно повернути кошти. Повернення коштів також значно легше отримати, якщо сказати «ей, плата одразу перестала працювати», і хто знає, можливо, ви отримаєте повернення коштів і збережете плату, щоб ви могли знизити версію прошивки і все ще користуватися нею! Перемога-перемога, продавець втрачає на тому, що продав вам підозрілу плату, а ви отримуєте підозрілу плату, яка може просто працювати, безкоштовно. Ймовірно, ми б навіть не говорили про обмеження заміни ОЗП на Pi, якби не дефіцит ОЗП, і це зовсім не вина RPF.
Моя порада: не оплакуйте модернізацію ОЗП Raspberry Pi, особливо враховуючи, що зараз це лише трохи складніше. Дуже мало хакерів коли-небудь робили це, основною аудиторією для них виявилися сумнівні продавці обладнання онлайн, і в більшості випадків ремонт, здається, зовсім не ускладнений.
Подумайте про користувачів, яких більше не обманюватиме сумнівний продавець на Amazon, особливо тепер, коли спотворені стимули для моддингу плат та повторного використання вкрадених мікросхем ОЗП перебувають на найвищому рівні. Дефіцит ОЗП може зробити будь-яку тему, пов’язану з ОЗП, більш болючою, ніж зазвичай, що, на мою думку, є найбільш ймовірною причиною того, що ми обговорюємо це у 2026 році, а не у 2025, але ця зміна, швидше за все, допоможе хакеру на практиці, ніж нашкодить.
