В 2023 году потребовался новый ноутбук, способный проработать долго. Framework привлекла обещанием ремонтопригодности и модульности: поддержка Linux из коробки без проблем с драйверами, возможность самостоятельной сборки ноутбука1 и отдельная покупка нужных объёмов RAM и SSD2, когда они были ещё дешёвыми.

Три года ноутбук работал без проблем, пока Framework не предложила через рассылку установить последнее обновление BIOS — версию 3.20 с рядом исправлений безопасности. К сожалению, система зависла, а на экране появилось искажённое изображение — явный признак неудачной прошивки BIOS.

Обращение в поддержку Framework дало стандартный совет: отключить ноутбук от питания, дать батарее разрядиться и попробовать включить снова в надежде на самовосстановление. Этого не произошло, а после предоставления всей запрошенной информации в поддержке сообщили, что годовая гарантия истекла, и единственный вариант — купить новую материнскую плату Framework за минимум 500 канадских долларов.

Быстрый поиск показал, что с этим конкретным обновлением BIOS сталкивались многие пользователи на форумах Framework, включая тех, кто ещё был на гарантии, а в другой ветке подобные проблемы с прошивкой BIOS на этой модели фиксировались как минимум с марта 2025 года. Насколько известно, Framework никогда не признавала проблему официально и не сообщала об её устранении, поэтому покупка новой материнской платы означала бы игру в русскую рулетку при любом следующем обновлении BIOS — вдобавок к тратам 500+ долларов не по своей вине.

Поэтому вместо покупки новой платы было решено прошить BIOS самостоятельно. Весь процесс документирован в мельчайших деталях, чтобы читатели могли повторить решение подобной проблемы у себя.

Почему Framework?

В 2023 году базовые требования к ноутбуку были такими:

  1. Совместимость с Linux;
  2. Компактность и лёгкость для путешествий;
  3. Стандартная американская раскладка клавиатуры, а не ужасная канадская многоязычная раскладка (Canadian Multilingual Standard), которая почему-то очень распространена в Канаде4;
  4. Современный процессор, но без необходимости в большом количестве ядер, поскольку интенсивная компиляция или игры в путешествиях не планировались;
  5. Съёмная RAM и SSD, чтобы можно было обновить их позже или купить у третьей стороны, если это финансово оправдано. Изначально требовалось 32 ГиБ RAM5 и 1 ТБ SSD6, что в 2023 году было разумно доступным.

Таким образом, выбор фактически сужался до 13-дюймовых тонких и лёгких ноутбуков без дискретной видеокарты. На тот момент AMD Ryzen опережал Intel по производительности, поэтому решение пало на процессор AMD.

Существовало множество подходящих 13-дюймовых ноутбуков на AMD Ryzen, но поскольку новый ноутбук не требовался срочно, была возможность попробовать что-то новое.

На тот момент Framework была относительным новичком на рынке ноутбуков, обещавшим ремонтопригодность, модульность и заменяемые порты. Идея не быть привязанным к набору портов, выбранному производителем, показалась привлекательной, как и дополнительная модульность. Определённо помогло и то, что Linux поддерживался официально, без необходимости патчить ядро или заниматься чем-то подобным.

Кроме того, Framework активно продвигала движение за право на ремонт, а идея о том, что ноутбуки должны быть ремонтопригодны, как настольные компьютеры, а не выбрасываться после мелкой поломки, всецело поддерживалась — поэтому хотелось поддержать компанию и в этом отношении.

Разница в цене оказалась не такой большой, если выбрать DIY-редакцию, самостоятельно приобрести RAM и SSD и отказаться от бессмысленной лицензии Windows. У других брендов пришлось бы либо покупать модель с минимальным объёмом RAM и SSD и потом обновлять их до нужных 32 ГиБ и 1 ТБ, либо платить производителю за установку этих компонентов.

В итоге ноутбук Framework был предзаказан и спустя несколько месяцев ожидания прибыл. Сборка свелась к установке RAM и SSD, подключению нижней крышки с клавиатурой, закручиванию винтов и установке рамок — и всё. Для «DIY»-ноутбука это ощущалось несколько разочаровывающе просто. Затем была установлена флешка с Debian netinst, и всё заработало.

Следующие три года прошли вполне приятно — AMD Ryzen 5 7640U с графикой Radeon 760M оставался достаточно быстрым для всех задач. Необходимости в обновлении не возникало, хотя теоретически такая возможность была.

Фатальная прошивка BIOS

Долгое время Framework выглядела очень клиентоориентированной компанией, регулярно выпуская обновления BIOS с простым способом установки на Linux через Linux Vendor Firmware Service (LVFS) и fwupd. Подписка на рассылку Framework информировала о всех выходящих обновлениях.

Обновления BIOS через fwupdmgr update проводились много раз, и если не считать необходимости перезагружать ноутбук и ждать около десяти минут завершения флешинга, ничего плохого раньше не происходило.

7 июля 2026 года Framework отправила следующее письмо:

От: Framework <support@frame.work>
Тема: Обновление ПО для Framework Laptop 13 (AMD Ryzen™ 7040 Series) - BIOS 3.20

У нас есть обновление BIOS для вашего Framework Laptop 13 (AMD Ryzen™ 7040 Series). Мы рекомендуем всегда устанавливать последнюю версию BIOS и драйверов для безопасности, стабильности и высокой производительности системы.

  • BIOS 3.20, с установщиками для Windows и Linux
    • Добавлена поддержка функций Framework Laptop 13 Pro — совместимость с тактильным тачпадом, сенсорной панелью и батареей на 74 Вт.
    • Обновлена таблица аудиовербов для поддержки новых динамиков в шасси Framework Laptop 13 Pro.
    • Обновлён AMD PhoenixPI-FP8-FP7_1.2.0.0f.
    • Исправлена проблема, при которой система не могла загрузиться с частично заблокированных самошифрующихся дисков (SED).
    • Исправлена проблема, при которой статус Battery Extender отображался неверно после перезагрузки, гибернации или выключения после истечения таймера.
    • Исправлена проблема, при которой система загружалась с чёрным экраном при подключении монитора Dell U2725QE и мыши.
    • Поддержка 16-битного postcode.
    • Исправлена проблема с пониженной громкостью звука на 3.19 beta.
    • Исправления безопасности
      • CVE-2025-54502 — CVSS-балл не указан.
      • CVE-2025-29949 — CVSS-балл не указан.
      • CVE-2025-0040 — CVSS-балл не указан.
      • CVE-2024-36355 — CVSS-балл не указан.
      • CVE-2024-36310 — CVSS-балл не указан.

Узнать, как проверить текущую версию BIOS, посмотреть подробности обновлений и всегда получать доступ к последнему ПО можно на странице загрузок Framework Laptop 13 (AMD Ryzen 7040 Series).

Учитывая потенциальные риски багов при немедленной прошивке, было решено немного подождать: если возникнут проблемы, либо выйдет новое обновление, либо текущее отзовут. Не увидев ни того, ни другого, прошивку выполнили утром 5 августа, во время приготовления завтрака.

Однако по возвращении на экране обнаружилась следующая картина, сразу выдающая, что что-то пошло не так:

Прошивальщик BIOS Framework показывает треугольник и узоры, которых не должно быть

Прошивальщик BIOS Framework показывает треугольник и диагональные узоры, которых не должно быть7

Поскольку прошивальщик BIOS завис и, вероятно, выводил на экран случайные данные из памяти, единственный вывод — прошивка BIOS завершилась неудачно.

Ноутбук оставили включённым на несколько часов на случай самовосстановления. Оно не произошло.

Обращение в поддержку

Обращение в поддержку Framework с надеждой на быстрый ответ и решение проблемы выглядело так:

Тема: Застрял на обновлении BIOS
Категория запроса в поддержку: Проблема с продуктом Framework
Продукт Framework был доставлен за последние 30 дней?: Нет
Продукт: Framework Laptop 13
Поколение Framework Laptop 13: AMD Ryzen 7040 Series
Операционная система: Linux
Дистрибутив Linux: Debian 12 [опечатка, должно быть 13]
BIOS: 3.20
Номер заказа: [скрыт]
Выбор проблемы с продуктом: Материнская плата
Описание: Пытался обновить BIOS через fwupdmgr update, и после перезагрузки система застряла в странном состоянии без прогресса уже более часа. Отображение неправильное, см. картинку. Что делать?

К обращению также была приложена картинка с экраном, показанная выше.

Поддержка ответила лишь через сутки и 8 часов.

Самостоятельная диагностика

Тем временем оставлять компьютер зависшим бесконечно — особенно с громко работающим вентилятором процессора — показалось не лучшей идеей, поэтому начались собственные поиски. Довольно быстро обнаружилась эта ветка с множеством людей, столкнувшихся с той же проблемой при обновлении с BIOS 3.18 до 3.20, хотя картина на экране у них немного отличалась.

Пользователи форума, находившиеся на гарантии, сообщали о замене материнской плате, тогда как пользователи без гарантии получали от Framework полное отсутствие помощи. Это вызывало серьёзное беспокойство.

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

Затем обнаружилась другая ветка, где пользователь форума @cesfahani, увидевший точно такой же экран, подробно описал, как с помощью Raspberry Pi и навыков пайки прошил чип BIOS внешним способом. Несмотря на базовые навыки пайки, продемонстрированные при сборке сервера NTP уровня stratum 18, паять крошечные провода к крошечному чипу BIOS не хотелось.

Стало очевидно: если прошивка BIOS на Framework не удаётся и не восстанавливается автоматически, никакого механизма восстановления, кроме внешнего программирования чипа BIOS, просто не существует. Это было по-настоящему поразительно для продукта, рекламируемого как «ремонтопригодный».

Невольно вспомнился первый компьютер, хоть и приобретённый с рук — материнская плата P4P800 SE выпуска 2004 года. До сих пор помнится, как в детстве от корки до корки читалось руководство, с полным нежеланием сломать свой первый компьютер. Даже эта 22-летняя материнская плата обладала функцией ASUS «CrashFree BIOS 2», рекламируемой как способ восстановления после неудачной прошивки без обращения к столь безумным ручным методам. Достаточно было вставить дискету9 или CD с образом BIOS под именем P4P800SE.ROM после неудачной прошивки — и восстановление происходило автоматически. И вот десятилетия спустя приходится иметь дело с «ремонтопригодным» ноутбуком, лишённым такой функции.

Возникло предположение, что подобная функция специфична для ноутбуков, поэтому был проведён быстрый поиск, поддерживают ли такое восстановление бренды, отвергнутые в своё время, — Dell и HP. Например, ноутбуки Dell могут восстанавливать BIOS с USB-флешки или раздела восстановления после удержания клавиш Ctrl+Esc при подключении питания, а ноутбуки HP имеют аналогичную функцию «HP Sure Start». Получается, что Framework фактически хуже своих «неремонтопригодных» конкурентов в этом отношении.

К счастью, дальнейшее изучение ветки подарило надежду: вместо пайки крошечных проводов к чипу на Raspberry Pi пользователь форума @moparisthebest рассказал о так называемых «pogo-пинах», подключаемых к USB-программатору без всякой пайки. Ещё ниже в ветке пользователи @David_Henry и @Richard6 сообщали об успехе аналогичного подхода.

Чип BIOS

Прежде чем двигаться дальше, важно разобраться в устройстве самого чипа BIOS — иначе разговоры о прошивке превратятся в путаный набор жаргона, как это произошло при первом чтении той ветки форума.

Нужный флеш-чип расположен справа от слота M.2, скрыт под пластиковой крышкой и выглядит так (изображение повёрнуто на 90° по часовой стрелке, чтобы маркировка была вертикальной):

Чип BIOS на Framework 13" AMD 7040 series

Искомый чип BIOS, слот M.2 показан для масштаба

Это чип Winbond 25R256JWEQ. По его техническому описанию (datasheet) для серии W25Q256JW выяснилось, что вся серия работает на 1,8 В и представляет собой SPI флеш-чипы объёмом 256 Мбит (32 МиБ). Крайне важно найти образ BIOS для этой материнской платы ровно на 32 МиБ и прошивать его строго при 1,8 В, чтобы не уничтожить чип.

Что такое SPI? Это фактический стандарт под названием Serial Peripheral Interface, широко используемый во встраиваемых системах для связи между интегральными схемами. Именно благодаря этому стандарту Raspberry Pi мог общаться с чипом и прошивать его, как и многие микроконтроллеры.

У чипа W25Q256JW есть несколько вариантов исполнения, различающихся форм-фактором:

  • вариант P — 8-контактный WSON 6×5 мм;
  • вариант E — 8-контактный WSON 8×6 мм;
  • вариант F — 16-контактный SOIC 300 мил;
  • варианты B и C — исполнение с шариковыми выводами (BGA).

В данном случае используется вариант E — WSON 8×6 мм. Из datasheet можно увидеть его схему:

Расположение выводов чипа Winbond 25R256JWEQ

Схема выводов чипа Winbond 25R256JWEQ

Крайне важно обратить внимание на белую точку в верхнем левом углу чипа, показанную на фото и на схеме выводов. Эта точка размещена рядом с выводом 1, позволяя правильно ориентировать чип. При повороте чипа в другую сторону и подключении VCC вместо GND случится нечто очень нехорошее.

Что такое WSON? Это сокращение от Very, Very-thin Small Outline No-lead — форм-фактор для чипов. Видимо, аббревиатура VVSON звучала бы нелепо, поэтому остановились на WSON. Это, пожалуй, худший форм-фактор для внешней прошивки.

Если бы Framework использовала форм-фактор SOIC (small outline integrated circuit), можно было бы просто зафиксировать зажим на чипе и прошить его таким способом, но WSON практически не за что зацепить зажимом. Вместо этого остаются два варианта:

  1. попытаться выпаять чип, что требует термофена, поскольку под чипом WSON находится большая контактная площадка заземления, с которой обычный паяльник не справится; либо
  2. программировать чип прямо в схеме (без выпаивания), используя щуп с «pogo-пинами» — пружинными контактами.

Щуп с pogo-пинами представляет собой кусок пластика с выемкой ровно по размеру чипа WSON. Вокруг выемки расположены пружинные контакты, проходящие через пластик. Для использования щупа пластик должен быть направлен вниз, а чип должен попасть в выемку. Затем прилагается усилие вниз, чтобы контакты прошли через пластик и коснулись контактных площадок. Это усилие необходимо поддерживать в течение всей операции прошивки, иначе данные окажутся повреждены.

На форуме о прошивке BIOS пользователи применяли разные тяжёлые предметы для поддержания контакта во время прошивки. К сожалению, случайных тяжёлых керамических предметов дома не нашлось, так что удерживать pogo-пины пришлось вручную. Это делает критически важной высокую скорость прошивки — последствия обратного будут показаны далее.

Обратите внимание на белые линии вокруг чипа BIOS — это называется «шелкографией» в терминологии печатных плат и обозначает позиции для монтажа компонентов. Судя по форме, материнская плата могла быть спаяна с разъёмом для заменяемого чипа BIOS, и тогда для ремонта можно было бы либо:

  1. купить новый чип с нужной прошивкой у Framework; либо
  2. вынуть чип и вставить в программатор без грубых методов вроде pogo-пинов.

Однако снова компания, называющая себя «ремонтопригодной», закрыла возможность для ремонта.

Более того, на плате явно есть место для разъёма прошивки, подключённого к чипу BIOS, и можно было бы просто подсоединиться к нему через обычные джампер-провода (иногда называемые «DuPont»), а не через pogo-пины. Также хватало вертикального зазора благодаря высоте слота M.2. И снова Framework выбрала недружелюбный к пользователю вариант.

Программатор для прошивки

Теперь, разобравшись в чипе BIOS и необходимости подключения через щуп с pogo-пинами, можно перейти к обсуждению того, что нужно для связи с чипом и его программирования.

Поскольку требовалось что-то компактное и интегрированное, логично было взять программатор, работающий через USB. Существует несколько популярных вариантов, каждый со своими плюсами и минусами.

Мини-программатор CH341A

Это, вероятно, самый популярный вариант, которым пользовалось большинство участников той ветки форума Framework. Он очень дёшев на AliExpress и на момент написания стоит US$3 сам по себе — весьма доступный вариант. Сам чип CH341A работает при 3,3 В и 5 В, поэтому для устройств на 1,8 В, как Winbond 25R256JWEQ, требуется преобразователь уровня 1,8 В.

К сожалению, как отметил пользователь форума @jim_m, дешёвые мини-программаторы CH341A, особенно с чёрными печатными платами, имеют проблемы с напряжением на линиях данных. Хотя чип (или преобразователь уровня) питается от 3,3 В, линии данных остаются на 5 В, что не очень хорошо для подключённой к ним техники. Впрочем, многие другие пользователи не сообщали о проблемах. Чтобы окончательно разобраться в этом вопросе, было решено заказать один экземпляр и проверить его самостоятельно, учитывая невысокую цену.

После получения программатор подключили к мультиметру, следуя инструкциям из этого блога, где описан безпаечный способ исправления проблемы, а также проверки её наличия и устранения:

Мультиметр на CH341A показывает 4,8 В вместо 3,3 В

Мультиметр измеряет напряжение на выводах MOSI и MISO мини-программатора CH341A, которое должно составлять 3,3 В

Похоже, действительно варианты с чёрной платой проблемны.

Считается, что варианты CH341A с переключателем напряжения между 5 В, 3,3 В, 2,5 В и 1,8 В не подвержены этому багу. Там же утверждается, что преобразователь уровня 1,8 В в любом случае преобразует 5 В на линиях данных до 1,8 В, хотя не совсем ясно, стоит ли этому доверять и насколько это безопасно для самого преобразователя.

Дальнейшие эксперименты были отклонены из-за другого крупного недостатка CH341A — скорости. Согласно datasheet серии Winbond 25R256JW, максимальная частота SPI-тактового сигнала для чипа составляет 133 МГц. Однако CH341A, по данным из открытых источников, способен максимум на 1,7 МГц, если не медленнее. Пользователи форума сообщали, что чтение занимало около 5 минут, а запись 32 МиБ чипа BIOS — ещё 5 минут. Держать щуп с pogo-пинами столько времени совершенно не хотелось.

Программатор CH347 «высокой скорости»

CH347 — более новый программатор, духовный преемник CH341A. С тактовой частотой SPI 15 МГц он способен прошивать чипы значительно быстрее CH341A. Разъём программатора должен быть совместим с CH341A и служить прямой заменой. К сожалению, документация по нему довольно скудна. Тем не менее удалось выяснить, что это устройство на 3,3 В10.

После получения программатора удалось подтвердить, что он выдаёт 3,3 В на линиях данных, в отличие от CH341A:

Мультиметр на CH347 показывает примерно 3,3 В на выводах

Мультиметр измеряет MOSI и MISO на программаторе CH347, показывая ожидаемые 3,3 В на линиях данных

Это определённо вселяет больше уверенности. Более быстрая скорость прошивки означает, что pogo-пины придётся удерживать меньше времени — весомый плюс. Именно этот программатор планировался для проекта.

XGecu T48

Один из пользователей форума сообщал об успехе с программатором XGecu T48. Однако при цене свыше $100 он сразу показался слишком дорогим для этого ремонта.

Покупка инструментов

Вооружившись знаниями о необходимом наборе и не питая иллюзий насчёт того, что Framework самостоятельно решит проблему, заказ на AliExpress был сделан заранее, зная, что доставка займёт некоторое время. В итоге были куплены следующие компоненты:

Общая стоимость составила US$20,41. Стоит отметить, что для достижения этой цены пришлось докупить некоторые другие, не связанные с проектом товары, которые всё равно планировалось приобрести.

Также стоит отметить, что CH341A был куплен для проверки, сохранился ли баг с напряжением в новых чёрных версиях — для самого проекта он не требовался. Вероятно, можно было сэкономить, купив только преобразователь уровня — единственную реально нужную часть из набора CH341A, доступную в том же листинге за US$2,23 на момент написания. Впрочем, остальное могло пригодиться в будущем.

Также стоит отметить, что срочной необходимости в ноутбуке не было, поэтому имелась возможность сэкономить, заказывая на AliExpress, зная о доставке в 1–2 недели. При срочной необходимости ремонта, вероятно, доставка Amazon Prime в тот же день оказалась бы предпочтительнее, хотя и стоила бы дороже.

Ответ от Framework

После всех этих изысканий Framework наконец ответила, посоветовав отключить зарядку и дать батарее разрядиться, а затем попробовать включить снова — именно это уже было сделано ранее, и ноутбук не включался. К этому моменту ноутбук официально стал «кирпичом» — то есть очень дорогим бесполезным предметом.

После сообщения об этом Framework запросила дополнительную информацию и предложила ещё несколько шагов диагностики. Вот ответы:

Какая версия BIOS была установлена, и на какую версию производилось обновление? (Например: была версия BIOS 3.09, обновление на BIOS 3.18)

Точно не помню, но, вероятно, была 3.18. Обновление точно шло на 3.20.

Версия BIOS, на которую производилось обновление, была Alpha, Beta или Stable? (Если загружалась из нашей базы знаний — это Stable-версия. Если с форума сообщества — в заголовке должно быть указано, какая именно версия)

Это должна быть стабильная версия BIOS, хотя загружалась через LVFS.

Какие коды мигания (Blink Codes) показывает устройство при попытке включения? (Если это можно записать на видео и предоставить нам — будем очень благодарны)

Видео прилагается (blink.mp4), уменьшено до 144p для экономии места. На мой взгляд, это 12 зелёных вспышек, 1 красная, 1 зелёная, 1 синяя, 1 зелёная, 2 синих, 8 зелёных, 2 синих.

Можете предоставить нам фотографию передней части материнской платы?

См. mainboard.jpg

Можете отправить нам фото ноутбука со всех сторон в закрытом виде (слева, справа, сверху, снизу, спереди и сзади)? См. изображение ниже для примера.

См. остальные вложенные jpg.

Для диагностики:

  1. Отключите систему от питания.
  2. ОСТОРОЖНО отключите батарею и оставьте её отключённой на 30 минут для наилучших шансов восстановления.
  3. ОСТОРОЖНО подключите батарею обратно.
  4. Подключите питание.
  5. Попробуйте включить систему.

Сделано. Без изменений, тот же световой паттерн.

Прилагаемые фото здесь не воспроизводятся, но достаточно сказать, что ноутбук физически выглядел исправным.

Framework ответила 2026-08-07 в 05:49 EDT:

Спасибо за ваш ответ и присланные фотографии. Мы это ценим.

После тщательного изучения проблемы и присланных фото/видео мы пришли к выводу, что необходима замена материнской платы.

К сожалению, мы не можем предоставить замену, так как ваша гарантия уже истекла.

Мы предлагаем приобрести замену в нашем Marketplace.

Условия гарантии и продажи можно посмотреть ниже.

Гарантия Framework - https://frame.work/warranty
Условия продажи Framework - https://frame.work/terms-of-sale

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

Если мы можем чем-то ещё помочь, не стесняйтесь обращаться.

Спасибо за понимание. Хорошего дня!
С уважением,
Поддержка Framework

Итак, после того как сама Framework рекомендовала обновить BIOS, компания сообщила, что из-за истёкшей гарантии единственный вариант — выбросить целую материнскую плату, включая абсолютно исправный, но припаянный процессор, и купить замену за 500+ долларов в собственном магазине.

Как получается, что испорченные данные на чипе BIOS стоимостью US$5 в рознице должны обойтись покупкой целой новой платы и процессора за 500+ долларов? Особенно когда это произошло по прямой рекомендации самой Framework? Особенно когда многие пользователи жаловались на официальных форумах Framework без каких-либо действий по предотвращению новых случаев «кирпичей»?

Хуже всего то, что Framework не предложила никакой помощи в попытке самостоятельного ремонта — ни документации, ни схемы, ни даже необработанного образа BIOS для внешней прошивки. Вот и всё «право на ремонт»…

Утечка данных

В довершение неприятностей, во время взаимодействия с поддержкой пришло следующее письмо от Framework:

От: Framework <support@frame.work>
Тема: Уведомление об ограниченной утечке данных
Дата: 2026-08-06 23:04 EDT

Уважаемый клиент Framework,

Мы пишем, чтобы сообщить об утечке данных у нашего поставщика бизнес-аналитики Metabase, в результате которой злоумышленник получил доступ к именам, адресам электронной почты, номерам телефонов и адресам клиентов. Ваша информация находилась в базе данных, к которой был получен доступ в ходе этой утечки. Информация о заказах или платежах не была затронута.

Полные детали инцидента приведены ниже. Мы глубоко сожалеем об этой утечке информации и пересматриваем и улучшаем нашу методологию хранения данных у внешних поставщиков баз данных.

Мы также уведомляем регулирующие органы в каждом регионе, где действуют соответствующие требования. Обратите внимание, что хотя в большинстве регионов законодательство не требует уведомления об утечках имён, адресов электронной почты, номеров телефонов и адресов, мы всё равно отправляем это письмо, чтобы вы были в курсе и могли принять необходимые меры.

Что произошло?

6 августа 2026 года в 9 утра по тихоокеанскому времени Metabase уведомила нас о взломе своих систем следующим письмом:

В понедельник, 3 августа, мы обнаружили, что Metabase Cloud была атакована с использованием неизвестной («0-day») уязвимости в версиях 1.58 и выше. Мы немедленно блокировали эндпоинты, использованные для атаки, а затем быстро выявили и устранили уязвимость. Мы уведомили правоохранительные органы и привлекли независимую судебно-техническую фирму для проведения расследования.

Ваш экземпляр Metabase был подвержен этой 0-day уязвимости. Поэтому, чтобы защитить вашу компанию, мы рекомендуем:

  • Обновить учётные данные для всех баз данных, подключённых к вашему экземпляру; и
  • Проверить учётные записи администраторов в вашем экземпляре и удалить все неизвестные вам.

Мы также обнаружили, что злоумышленник смог получить доступ к вашему экземпляру. Мы создали отчёт о действиях, которые, по нашему мнению, злоумышленник совершил в вашем экземпляре, включая файлы журналов, который вы можете получить в Metabase Store по [удалённый URL].

(Если у вас нет доступа к Metabase Store, возникают проблемы с доступом к отчёту, или вы не хотите переходить по ссылке в неожиданном письме, вы можете напрямую войти в свой экземпляр и обратиться к нам через Help > Get help в меню в правом верхнем углу. Мы подтвердим, что это сообщение от нас, и отправим вам отчёт по электронной почте.)

Этот отчёт основан на наших собственных журналах приложения. Мы не запрашивали и не читали данные в подключённых у вас базах данных.

В зависимости от юрисдикций, в которых вы работаете, и видов данных, к которым подключён ваш экземпляр, у вас могут быть обязательства по уведомлению согласно применимому законодательству. Если у вас есть опасения по этому поводу, рекомендуем оценить возможные обязательства по уведомлению с юридическими или комплаенс-специалистами вашей компании.

Мы сожалеем о любых неудобствах, которые может причинить этот инцидент, и готовы вас поддержать. Если у вас есть вопросы, пожалуйста, ответьте на это письмо или напишите нам по [удалённый адрес электронной почты], и мы ответим как можно быстрее.

Самир Аль-Сакран
Основатель и CEO
Metabase

Мы немедленно изучили журналы, предоставленные Metabase, и подтвердили, что к нашему экземпляру базы данных был получен доступ злоумышленником. Мы подтвердили, что была доступна следующая информация:

  • Полное имя
  • Адрес электронной почты
  • IP-адреса входа
  • Информация о платёжном и почтовом адресе
    • Страна
    • Адрес
    • Город
    • Штат/область
    • Почтовый индекс
    • Номер телефона
    • Компания

Для клиентов Framework for Business мы расследуем, был ли также получен доступ к следующей информации:

  • Компания
  • Телефон
  • НДС
  • EIN
  • Платёжный email

Никакая другая персонально идентифицирующая информация, информация о заказах или платежах не была доступна.

Обратите внимание, что Metabase дополнительно отметила:

Важно: это предварительное обновление на основе наших текущих знаний.

Мы работаем со сторонней фирмой судебно-технического расследования, чтобы понять полную природу и масштаб инцидента.

Мы предоставляем это промежуточное обновление до завершения нашего расследования, чтобы вы могли лучше понять потенциальное влияние и защитить свои данные.

Наше расследование продолжается, и предоставленная сейчас информация является предварительной.

Пожалуйста, изучите журналы приложения, а также выполненные запросы, предоставленные в отдельных файлах в zip-архиве, для получения подробной информации о деятельности и возможной хронологии.

Мы предоставляем вам уведомление об утечке в настоящее время, чтобы обеспечить вам максимально раннюю видимость. В случае, если Metabase уведомит нас о дополнительной информации, влияющей на вас, мы отправим дополнительное письмо.

Что было сделано для решения проблемы?

После уведомления об утечке от Metabase мы обновили учётные данные для всех баз данных, связанных с нашим экземпляром Metabase, и подтвердили отсутствие изменений в доступе администраторов или доступе к системам за пределами Metabase.

Какие шаги предприняты, чтобы это не повторилось?

Мы оцениваем объём и глубину данных, передаваемых платформам бизнес-аналитики, и сокращаем их доступ только до столбцов, необходимых для анализа.

Нирав Патель и команда Framework

Что ж, по крайней мере Framework раскрыла этот инцидент безопасности, а не замолчала его — это можно считать плюсом? Впрочем, регуляторы наверняка были бы очень недовольны, если бы узнали о неразглашённом инциденте…

Тем не менее оставалось крайне неприятное чувство от того, что Framework доверила конфиденциальные данные третьей стороне, которая явно не смогла обеспечить их безопасность. Совпадение по времени с превращением дорогого ноутбука в «кирпич» лишь усугубляет ситуацию. Разочарование в Framework на данный момент не поддаётся описанию словами.

Стоит отметить, что Framework указала: платёжная информация не была скомпрометирована. Многие могли бы вздохнуть с облегчением, но не стоит торопиться. При оплате кредитной картой, даже если Framework утекла бы полный номер карты11, ответственность за любые мошеннические транзакции в результате этой утечки составила бы ноль. Достаточно было бы позвонить в банк-эмитент карты, и там выдали бы новую карту. Гораздо более неприятная утечка касается номера телефона и адреса — их так просто не поменять, если только не переехать… В защиту Framework стоит сказать: компания просто изложила факт и не пыталась выдать отсутствие утечки платёжных данных за некое утешение, как поступили бы некоторые недобросовестные компании.

Извлечение образа BIOS

Итак, инструменты для прошивки BIOS готовы, а Framework даже не желает предоставить необработанный образ BIOS — нужно самостоятельно определить, что именно прошивать для восстановления работы.

Из ветки о прошивке BIOS пользователь @David_Henry определил путём изучения содержимого BIOS и экспериментов с прошивкой, что необработанный образ BIOS занимает ровно 32 МиБ, начиная со смещения 1993293 в файле .cap из пакета обновления UEFI shell от Framework, и это совпадает с результатом работы стороннего инструмента InsydeH2O-extractor-2 на GitHub.

Поскольку жёстко заданное смещение вряд ли будет работать для будущих версий, рекомендуется использовать именно инструмент-экстрактор. К сожалению, он был написан для библиотеки C от Microsoft и использует нестандартные функции вроде fopen_s, из-за чего не запускался на Linux. Для решения этой проблемы был сделан форк инструмента, скомпилированный под Linux.

Собрать его и извлечь файл .cap можно так:

git clone https://github.com/quantum5/InsydeH2O-extractor-2.git
cd InsydeH2O-extractor-2
cmake .
make
./extractor /path/to/bios.cap

В каталоге появится файл BIOSFILE.FD — именно его нужно прошивать.

Для Framework 13" AMD Ryzen 7040 series BIOS версии 3.20 уже подготовлен готовый образ: https://dl.quantum2.xyz/firmware/framework-3.20-bios.bin

Хеши этого файла:

  • MD5: 8bc4cde1b7e8413b9b405b8e7b243e1f
  • SHA1: b562976496f3bafba5e07f2d96b03804a708f90d
  • SHA256: a64541 3ee19c7cf2879 17a71709988 3ea37ed6b556c74cf31adbc5b1afcc9c05

Использовать этот образ можно свободно, после проверки его целостности. На момент написания статьи как минимум четыре пользователя скачали полный образ BIOS с сервера, вероятно, потому что у них тоже возникли «кирпичи», о которых они не писали на форумах Framework.

Доставка инструментов

Спустя восемь дней после заказа на AliExpress комплектующие наконец прибыли. Началось всё с осмотра приобретённых программаторов. CH341A страдал от бага с напряжением и медленной скорости, поэтому решено было опробовать его лишь в крайнем случае после устранения проблемы с напряжением. Основные надежды возлагались на CH347.

Преобразователь уровня 1,8 В был подключён к CH347, и на всякий случай было проверено, что на линиях данных действительно выдаются ожидаемые 1,8 В. Также была проверена непрерывность цепи щупа с pogo-пинами мультиметром, чтобы убедиться, что каждый pogo-пин соединён с правильно пронумерованным выводом разъёма. Такие меры предосторожности могут показаться избыточными, но с товарами с AliExpress никогда нельзя быть уверенным до конца.

В целом инструменты не вызвали претензий, и можно было двигаться дальше.

Подключение чипа

Осталось соединить всё вместе, чтобы ПК мог общаться с чипом BIOS через программатор CH347.

Поскольку прошивка выполнялась с настольного ПК, для удобства использовался удлинительный USB кабель типа A (мама-папа), чтобы программатор CH347 не был жёстко привязан к USB-порту.

Далее необходимо разобраться в выводах CH347. Исследование показало, что порядок выводов для SPI NOR flash типа 25 всегда одинаков, включая наш W25Q256JW, и именно под это рассчитана левая сторона CH347:

Размеченные выводы CH347 для SPI NOR flash

Схема того, куда должен подключаться каждый вывод SPI NOR flash на программаторе CH347

Если внимательно посмотреть на нижний правый угол, там показана схема двух чипов, обозначенных 25 и 24, описывающая этот распределение выводов. Это означает, что чипы типа 25 подключаются слева, а вывод 1 находится справа, как показывает полукруг на правой стороне. Чипы типа 24, то есть I²C серийные EEPROM, подключаются справа, но для этого проекта они не нужны.

А что за разъём в центре? Это разъём с нулевым усилием вставки (ZIF), предназначенный для приёма контактной колодки. После установки контактов рычаг переводится в горизонтальное положение, фиксируя контакты. Механизм очень похож на сокеты процессоров PGA, например AM4.

Хотя некоторые чипы с контактами можно вставить прямо в программатор, в данном случае это не подходит: имеется программатор на 3,3 В и чип на 1,8 В, поэтому вместо чипа в CH347 нужно вставить преобразователь уровня:

Размеченные выводы преобразователя уровня 1,8 В

Схема того, куда должен подключаться каждый вывод SPI NOR flash на преобразователе уровня 1,8 В

Преобразователь уровня имеет контактную колодку с обозначенными выводами сверху, а сами контакты расположены снизу. Их нужно вставить в соответствующие отверстия разъёма ZIF на CH347, как описано выше.

Преобразователь предоставляет ещё один разъём ZIF, работающий на 1,8 В. На этот раз используется только правая сторона разъёма, а вывод 1 обращён вправо. При внимательном рассмотрении преобразователя видно, что выводы промаркированы прямо рядом с разъёмом ZIF на плате, но на фото это сложно разглядеть, поэтому маркировка добавлена дополнительно.

Следующий шаг — подключение щупа с pogo-пинами. Выглядит он так:

Щуп с pogo-пинами

Фотография щупа с pogo-пинами WSON8 6×8 мм

Ленточный кабель нужно подключить к плате контактной колодкой с другой стороны. Выводы пронумерованы со стороны ленточного кабеля. Колодку нужно вставить в разъём ZIF на преобразователе уровня и зафиксировать разъём.

Теперь можно подключать щуп к чипу BIOS. Перед этим необходимо открыть ноутбук Framework и извлечь дорогие RAM и SSD с материнской платы — на случай ошибки и случайного повреждения этих компонентов. Также стоит ещё раз перепроверить все соединения и убедиться в правильном порядке выводов повсюду. Одна ошибка — и чип может быть повреждён, а в худшем случае — вся материнская плата.

Полная сборка с CH347, преобразователем уровня и щупом pogo-пинов

Полная сборка с CH347, преобразователем уровня и щупом с pogo-пинами должна выглядеть так

Теперь нужно определить сторону пластика щупа с pogo-пинами, помеченную непрозрачным полукругом — это сторона вывода 1, и её нужно расположить с той же стороны, что и белая точка на чипе. Это правильный порядок выводов. При прошивке щуп размещается на чипе, и усилие прилагается для его удержания:

Щуп с pogo-пинами, применённый к чипу BIOS

Щуп с pogo-пинами в процессе применения к чипу BIOS

Выполнение прошивки

Прошивка выполняется с помощью инструмента flashrom из проекта coreboot. В отличие от Windows, где для этих программаторов нужны драйверы, flashrom способен общаться со всеми поддерживаемыми USB флеш-программаторами через libusb.

Стоит перепроверить, поддерживается ли ваш программатор установленной версией flashrom:

$ sudo flashrom -L
...
Supported USB devices for the ch341a_spi programmer:
Vendor            Device   USB IDs    Status
Winchiphead (WCH) CH341A   1a86:5512  OK

Supported USB devices for the ch347_spi programmer:
Vendor              Device               USB IDs    Status
QinHeng Electronics USB To UART+SPI+I2C  1a86:55db  OK
QinHeng Electronics USB To UART+SPI+I2C  1a86:55de  OK
...

Оба варианта, CH341A и CH347, поддерживаются. Если у вас их нет в списке, вероятно, потребуется более новая версия flashrom.

Также учтите, что одной рукой придётся удерживать pogo-пины, и при относительно быстрой прошивке CH347 это, вероятно, более удачная стратегия, чем попытки использовать тяжёлый предмет для создания необходимого усилия. Поэтому настоятельно рекомендуется использовать выделение текста в Linux для копирования команд из этой статьи (попробуйте тройной клик), а затем вставлять их средней кнопкой мыши — это гораздо проще делать одной рукой.

Также подготовьте файл BIOS как wanted.bin. Затем хешируйте его:

$ sha256sum wanted.bin
a645413ee19c7cf287917a717099883ea37ed6b556c74cf31adbc5b1afcc9c05  wanted.bin

Теперь прижмите щуп с pogo-пинами (не забывайте про ориентацию!) к чипу и проверьте, распознаётся ли он:

$ sudo flashrom --programmer ch347_spi
flashrom 1.4.0 on Linux 6.12.101+deb13-amd64 (x86_64)
flashrom is free software, get the source code at https://flashrom.org

Found Winbond flash chip "W25Q256JW" (32768 kB, SPI) on ch347_spi.
...

Если распознавание удалось, значит, всё в порядке. Если нет, убедитесь в правильном положении щупа и приложите больше усилия. Для хорошего контакта требуется довольно значительное усилие — рекомендуется постепенно увеличивать нажим, если контакт не достигнут.

Теперь прочитайте текущее содержимое чипа BIOS. Поскольку соединение довольно ненадёжное, вполне вероятны ошибки чтения, поэтому рекомендуется читать несколько раз, пока хеш не совпадёт хотя бы на двух попытках, желательно подряд:

sudo flashrom --programmer ch347_spi -r read-v1.bin --progress && sha256sum read-v1.bin
sudo flashrom --programmer ch347_spi -r read-v2.bin --progress && sha256sum read-v2.bin
sudo flashrom --programmer ch347_spi -r read-v3.bin --progress && sha256sum read-v3.bin
sudo flashrom --programmer ch347_spi -r read-v4.bin --progress && sha256sum read-v4.bin
sudo flashrom --programmer ch347_spi -r read-v5.bin --progress && sha256sum read-v5.bin
sudo flashrom --programmer ch347_spi -r read-v6.bin --progress && sha256sum read-v6.bin

В данном случае совпадение хеша получилось на попытках 1, 4 и 5, после чего проверка была прекращена. Щуп удерживался в точно том же положении всё это время, поскольку контакт был хорошим и это обеспечивало наивысшие шансы успеха на следующих шагах.

Если ни одна из попыток не дала совпадающего хеша, нужно увеличить усилие на щупе и повторить попытку. Хотя время попыток не замерялось, по ощущениям каждое чтение с CH347 занимало менее 20 секунд.

Крайне важно получить корректную копию текущего содержимого чипа BIOS, поскольку в нём может содержаться информация, полезная в дальнейшем. Далее станет понятно, какая ещё информация хранится в чипе BIOS, которую может понадобиться восстановить позже. Сохраните успешно прочитанный файл BIOS в безопасном месте.

Теперь настало время записи в чип. Проверка была отключена флагом -nN из-за ненадёжности соединения, чтобы верификацию можно было выполнить позже в спокойной обстановке, а не удерживать щуп во время записи и верификации одновременно:

$ sudo flashrom --programmer ch347_spi -nNw wanted.bin --progress
flashrom 1.4.0 on Linux 6.12.101+deb13-amd64 (x86_64)
flashrom is free software, get the source code at https://flashrom.org

Found Winbond flash chip "W25Q256JW" (32768 kB, SPI) on ch347_spi.
===
Reading old flash chip contents... [READ] 1% complete... [snip]
[READ] 100% complete... [READ] 50% complete... [READ] 0% complete... [READ] 100% complete... done.
[READ] 0% complete... Erase/write done from 0 to 1ffffff

На этом прошивка завершена. В этом случае операция заняла менее минуты. CH347 определённо оправдал себя по сравнению с CH341A. Учитывая, насколько быстро прошло внешнее прошивание через столь ненадёжное соединение, при использовании программатора, поддерживающего лишь 11% от максимальной тактовой частоты SPI чипа, невольно возникает вопрос — что же делает встроенный обновлятор BIOS Framework, если обычное обновление занимает так много минут…

Теперь выполните ручную верификацию таким же образом, как чтение, но в другие файлы:

sudo flashrom --programmer ch347_spi -r verify-v1.bin --progress && sha256sum verify-v1.bin
sudo flashrom --programmer ch347_spi -r verify-v2.bin --progress && sha256sum verify-v2.bin
sudo flashrom --programmer ch347_spi -r verify-v3.bin --progress && sha256sum verify-v3.bin

Остановитесь, когда получите хеш, совпадающий с wanted.bin из предыдущего шага. В данном случае верификация прошла успешно с первой попытки. Если после трёх попыток совпадения не получается, повторите запись до успешной верификации.

Последствия прошивки

После завершения прошивки RAM и SSD были установлены обратно, и ноутбук Framework был включён. После минуты начальной тренировки памяти (или чего-то подобного) он наконец загрузился. Однако история на этом не заканчивается.

Вход в настройки BIOS показал, что все ранее внесённые настройки исчезли. При наличии собственных настроек их придётся восстанавливать вручную. Также в настройках BIOS обнаружилось следующее:

System UUID       1234567890
System SN         1234567890

Совершенно точно ранее было не так. Похоже, эта информация хранится в самом чипе BIOS. Видимых негативных последствий такого положения дел, по крайней мере на Linux, не наблюдается, но вполне возможно, что потребуется повторная активация Windows12.

Теоретически правильные значения должны сохраняться в оригинальном образе BIOS. Зная нужные смещения, можно было бы скопировать эту информацию в новый образ BIOS и предпринять повторную прошивку, но, к сожалению, Framework не предоставляет документации по структуре BIOS. Ещё одна проблема с ремонтопригодностью. Именно поэтому стоит сохранять повреждённый образ BIOS.

После настройки BIOS система была перезагружена, и выяснилось, что загрузчик Debian не найден. Эта информация хранится в UEFI NVRAM, которая, очевидно, была каким-то образом стёрта в ходе всей этой истории.

К счастью, была доступна опция «boot from file», и на SSD был найден файл EFI/debian/shimx64.efi, после выбора которого появилось меню GRUB. Путь может отличаться в зависимости от дистрибутива, а при отсутствии secure boot нужно выбрать grubx64.efi.

После этого система загрузилась в обычном режиме, но требовалось переустановить загрузчик, чтобы не выбирать файл вручную при каждой загрузке. В большинстве дистрибутивов это делается командой sudo grub-install /dev/nvme0n1p1, где /dev/nvme0n1p1 нужно заменить на свой EFI system partition13.

Заключение

При аналогичной ситуации с «убитым» ноутбуком Framework из-за проблем с BIOS и отсутствием инструментов для прошивки, приобретение программатора CH347 — правильный путь. Он значительно лучше старого CH341A во всех отношениях и, очевидно, справился с задачей быстро. Сама прошивка оказалась не такой сложной, как только были понятны необходимые действия и приобретены инструменты — весь процесс занял менее пяти минут.

А что касается Framework Computer Inc, тут есть немало, что добавить…

Во-первых, очевидно, что программа обновления BIOS от Framework неисправна, по крайней мере на серии AMD 7040. Явно присутствует программный баг, приводящий к выводу на экран, судя по всему, случайных данных из памяти — тем более что подобное случалось и с другими пользователями на других версиях BIOS, и даже на 16-дюймовых ноутбуках. При этом штатное обновление BIOS работает медленнее, чем дешёвый программатор на 15 МГц через pogo-пины, что заставляет задуматься о том, что происходит «под капотом».

Во-вторых, Framework поощряет пользователей выполнять обновления BIOS через рассылки, но если обновление приводит к «кирпичу», компания предлагает лишь выбросить полностью исправное оборудование из-за проблемы с прошивкой, просто потому что гарантия истекла. Хотя такое поведение может быть законным согласно условиям гарантии, оно тем не менее морально неверно по отношению к пользователям. Это также противоречит всей философии сокращения электронного мусора, которую Framework заявляет как одну из своих ключевых ценностей.

В-третьих, Framework заявляет о создании ремонтопригодного ноутбука, но описанный опыт и все препятствия, которые пришлось преодолеть для прошивки BIOS, ясно показывают, что это не так. Framework безусловно создала легко обслуживаемый ноутбук, на котором тривиально заменить RAM и SSD, но это не ремонтопригодный ноутбук, если производитель просто предлагает купить новую материнскую плату и процессор, не предлагая никакой помощи в самостоятельном устранении неисправности.

По данным Repair Association, организации, продвигающей право на ремонт, ключевым столпом права на ремонт является документация:

Предоставлять те же руководства по ремонту, схемы и прочую документацию, что облегчает полноценный ремонт.

В этом отношении Framework полностью провалилась. Весь процесс прошивки пришлось выяснять самостоятельно по сторонним источникам. Даже необработанный прошиваемый образ BIOS пришлось извлекать самостоятельно.

Кроме того, попытка этого ремонта показала, что Framework приняла ряд конструктивных решений, значительно усложнивших ремонт без особой необходимости:

  1. у Framework отсутствует опция восстановления BIOS;
  2. хотя на материнской плате Framework есть шелкографическая маркировка для сокетного чипа BIOS, вместо этого он был припаян;
  3. Framework выбрала форм-фактор WSON для чипа BIOS; и
  4. Framework решила не предусматривать разъём для прошивки BIOS, что в сочетании с пунктом 3 вынуждает использовать pogo-пины.

Особенно возмутительно то, что бренды, специально не претендующие на ремонтопригодность, способны восстанавливаться после неудачной прошивки BIOS, и даже материнская плата 2004 года выпуска обладала такой возможностью…

Так что, хотя Framework заявляет о поддержке права на ремонт, действия компании демонстрируют совершенно противоположное. По этой причине рекомендовать ноутбуки Framework кому-либо в их текущем состоянии не получается по совести.

Наконец, остаётся неясным, зачем Framework вообще нужен провайдер «бизнес-аналитики», не говоря уже о том, который хранит данные клиентов недостаточно защищённым образом. Также неясно, зачем этому провайдеру требовались номер телефона или почтовый адрес. В полученной от Framework коммуникации не объяснялось, зачем эта информация передавалась и как она использовалась, а обновлений по расследованию так и не появилось спустя более недели после инцидента.

Как владелец ноутбука Framework, желающий воспользоваться преимуществами модульности в будущем, хотелось бы увидеть, что Framework наведёт порядок и выполнит обещания, данные при продаже продукта. В связи с этим к Framework предъявляются следующие требования:

  1. Немедленно прекратить призывать пользователей без гарантии обновлять BIOS до исправления обновлятора;
  2. Как можно скорее исправить обновлятор BIOS;
  3. Немедленно оказать помощь всем клиентам без гарантии, чьи ноутбуки превратились в «кирпич» из-за обновления BIOS — либо заменой материнской платы, как для клиентов на гарантии, либо бесплатной поставкой набора инструментов и подробным руководством для самостоятельного ремонта;
  4. Предоставить официальную документацию по прошивке BIOS, необработанные образы BIOS и инструкции по восстановлению серийных номеров и UUID;
  5. Проектировать все будущие материнские платы так, чтобы они легко восстанавливались после неудачных прошивок BIOS; и
  6. Немедленно прекратить любую ненужную передачу данных третьим сторонам.

Если Framework изменится к лучшему, к ней можно будет вернуться. До тех пор остаётся повторить слова, которые некий Нанни написал Эа-насиру14 почти четыре тысячелетия назад:

Kīma annikīam maḫšabam la dummuqām la amaḫḫaruka talammad. U ana ša tumeišanni nasiḫtam epūška.

Перевод зависит от того, кого спрашивать, но, вероятно, он означает что-то вроде:

Знай, что я не приму от тебя ни одного компьютера, если он не будет высокого качества. И поскольку ты обошёлся со мной с презрением, я воспользуюсь своим правом на отказ.

Примечания

  1. Хотя DIY-редакция Framework была дешевле в покупке, на деле она оказалась не такой уж «DIY». Ноутбук приходил практически полностью собранным, и требовалось лишь установить RAM и SSD, подключить нижнюю крышку с клавиатурой, закрыть ноутбук и установить рамки. Ожидалась хотя бы установка материнской платы, а не завершение сборки почти готового ноутбука.
  2. В 2023 году удалось получить почти 50%-ную скидку, покупая компоненты отдельно на Amazon вместо покупки в комплекте с ноутбуком Framework. Представьте это сегодня…
  3. Да, технически это прошивка UEFI (Unified Extensible Firmware Interface), поскольку сейчас никто не использует legacy BIOS. Тем не менее многие производители называют прошивку UEFI «BIOS», поскольку это привычный термин. Здесь термин «BIOS» используется свободно, поскольку так его называет сама Framework.
  4. Однажды был ноутбук с канадской многоязычной клавиатурой, и использовать её было просто ужасно — дополнительные клавиши для французского языка занимали место, где ожидались клавиши Enter и левый Shift. Сама раскладка при использовании в программном обеспечении также использует AltGr и захватывает правый Ctrl в качестве дополнительного модификатора, хотя слой AltGr не используется полностью. Самое неприятное — раскладка крайне неинтуитивна для набора текста на французском, что и является всей её raison d'être, по сравнению с самостоятельно созданной раскладкой на основе AltGr и мёртвых клавиш, которая позволяет набирать большинство европейских языков, включая греческий и кириллический алфавиты, с лёгкостью. Возможно, однажды будет написан отдельный материал о создании собственной раскладки клавиатуры, но не сегодня.
  5. В итоге был куплен комплект Crucial 2×16 ГиБ DDR5 5600 МТ/с за 154,80 канадских долларов с налогом — цена, немыслимая сегодня. Сейчас тот же комплект стоит 854,18 долларов без налога, хотя, возможно, это связано с тем, что бренд Crucial больше не существует. Аналогичные комплекты SODIMM других брендов той же скорости начинаются от 570 канадских долларов без налога.
  6. В итоге был куплен 1 ТБ Samsung 980 Pro за 90,37 канадских долларов с налогом — тоже немыслимая сегодня цена. Этой модели уже нет в продаже, но 990 Pro на момент написания стоит 400 долларов.
  7. Приносим извинения за низкое качество этого изображения, но в тот момент были более важные вещи, чем хорошая фотография.
  8. В последнее время много паяльных работ проводилось для нескольких датчиков умного дома — об этом проекте, возможно, будет отдельный материал позже.
  9. Кто-нибудь ещё помнит, что такое дискета? В любом случае, упоминание о ней показывает, насколько древними являются материнские платы с подобными функциями восстановления.
  10. Существует также вариант CH347 на 1,8 В на AliExpress, но он якобы переключается между 1,8 В и 3,3 В программно, что показалось слишком сложным по сравнению с обычной версией на 3,3 В с преобразователем уровня.
  11. Было бы удивительно, если бы Framework действительно сумела утечь полный номер кредитной карты. Большинство платёжных процессоров никогда не раскрывают полный номер продавцам, использующим их сервисы — только последние четыре цифры.
  12. Неизвестно. Windows никогда не устанавливалась «на голое железо» ни на настольном компьютере, ни на ноутбуке.
  13. Технически, судя по исходному коду grub-install на системах UEFI, можно передать любой аргумент, если передать хоть какой-то, но для надёжности лучше указать именно ESP.
  14. Знание аккадского языка весьма скромное, но эта фраза основана на последних строках клинописной таблички, содержащей самую древнюю известную жалобу клиента, где слово «медь» заменено на «компьютер». Разумеется, компьютеров в те времена не существовало, поэтому слово было сконструировано на основе семитского корня ḥ-s₁-b, используемого в арабском слове حاسوب и еврейском слове מחשב. Латинский алфавит использован вместо клинописи, поскольку Unicode не поддерживает большинство знаков, использованных на реальной табличке.
  15. Клавиша AltGr — это просто правая клавиша Alt, но переопределённая раскладкой клавиатуры как отдельный модификатор для набора дополнительных символов, а не просто ещё одна клавиша Alt.