Поддержка моделей

Добавление модели Blade

Для каждой модели Blade нужны собственные данные об оборудовании и проверки безопасности.

Текущий допуск

Поддерживаемые модели

Проверенные и экспериментальные модели и данные об их прошивках приведены в разделе Справочник протокола.

Поддержку определяет код Манифест приложения и типизированный код определяют, какие функции доступны OpenBlade.

Два уровня доказательств

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

Ниже описан переход к проверенной поддержке. Совпадение с upstream-кодом не заменяет проверку применения, восстановления и жизненного цикла на устройстве.

  1. Запишите название и номер модели, VID/PID, прошивку, назначение HID, длины отчётов и надёжный способ проверки компьютера. Серийный номер ноутбука не включайте.
  2. Найдите ровно один подходящий интерфейс, используя только чтение. Не допускайте устройство, если оно отсутствует, заблокировано, не соответствует требованиям или его нельзя определить однозначно.
  3. Перед проверкой записи реализуйте безопасные запросы идентификации, охлаждения, вентиляторов, батареи, подсветки и прошивки. Отклоняйте неверные и неизвестные ответы.
  4. Соберите доказательства о модели с помощью Synapse Observer. Следуйте руководству по безопасному тестированию для каждого значения и режима питания. Сохраняйте и восстанавливайте исходное значение. Собирайте доказательства именно на этой модели.
  5. Добавляйте только типизированные проверенные операции. Без доказательств управление остаётся недоступным. Общие названия можно использовать повторно, но различия байтов должны оставаться в протоколе модели. Не предоставляйте API сырых команд.
  6. Проверьте переподключение, сон и пробуждение, перезапуск службы, смену питания, неверные ответы, другие контроллеры, восстановление и длительную работу. Затем добавьте таблицу протокола модели, точный охват прошивок и проверенную ревизию ядра.

Карта интеграции

УровеньЗадачи участникаПоведение при сбое
ИдентификацияОпределите номер модели, VID/PID, наблюдаемые версии BIOS, EC и MCU, проверенный диапазон прошивок, кортежи назначения и точные длины отчётов.Отклоняйте устройство при отсутствии, несовпадении или неоднозначности обязательных данных. Справочные версии, которые нельзя безопасно прочитать, отмечайте как недоступные.
Оболочка отчётаОбщий кодек допустим только после подтверждения одинакового поведения статуса, транзакции, класса, ID, длины данных, контрольной суммы, ID отчёта, заполнения и завершающего байта.Отклоняйте неверные и неизвестные ответы, не подменяя их значениями по умолчанию.
ЗапросыРеализуйте типизированные запросы и декодеры ответов каждой команды до того, как состояние станет использоваться логикой или интерфейсом.Если запрос недоступен или результат неизвестен, оставьте соответствующую функцию недоступной и не принимайте на его основе решения о питании.
Команды записиДля каждого очищенного образца добавьте именованное действие. Предусмотрите независимое считывание результата либо задокументируйте одноразовый контракт ответа и доказательства восстановления.Не добавляйте API для сырых классов, ID или данных. Команда без доказательств остаётся недоступной.
ВозможностиПредоставляйте только команды, разрешённые точной идентификацией, допущенными образцами, читаемым состоянием, ограничениями питания и владением контроллером.У новой модели может быть меньше доступных настроек, чем у старой.
ДокументацияДобавьте таблицу модели и проверенную ревизию ядра. Описывайте ответы символически, кроме случаев, когда точные байты поясняют контракт.Документация не может разрешить команду, не допущенную ядром.

Перед открытием pull request