Raspberry Pi:Настройка/Новая прошивка с деревом устройств готова к тестированию
Содержание | Введение | Продукты | Операционная система | Настройка | Основы Linux | Аппаратные средства | Неисправности | Типовые проблемы | Часто возникающие вопросы | Библиотеки | Примеры |
Новая прошивка с деревом устройств готова к тестированию[1]
Итак, экспериментальная прошивка получила «следующую» ветку. Обновить ее можно при помощи этой команды:
sudo BRANCH=next rpi-update
Эта прошивка – то же самое, что и основное дерево, но с ядром версии 3.18 и активированным деревом устройств. Ее особенность – использование оверлеев дерева устройств для поддержки HAT-карт (т.е. карт, монтируемых на Pi сверху – HAT означает «hardware-attached-on-top», т.е. «оборудование, прикрепленное сверху») и автоматической загрузки нужных модулей. Разработчики надеются, что это позволит избежать проблем с конфликтующими модулями (т.е. обеспечит возможность прямо активировать нужные модули и заносить в черный список ненужные, тем самым избегая конфликтов). Эта проблема в особенной мере затрагивает аудиокарты с интерфейсом I2S.
Итак, если у вас есть HAT-карта, умеющая идентифицировать сама себя, эта прошивка автоматически добавит оверлей дерева устройств для этой карты, в результате чего загрузятся соответствующие модули. Поскольку существует множество дополнительных карт, не поддерживающих HAT-идентификацию, то оверлей дерева устройств можно выбрать и вручную. Поддерживаемые в данный момент оверлеи можно увидеть в /boot/overlays:
hifiberry-dac-overlay.dtb
hifiberry-dacplus-overlay.dtb
hifiberry-digi-overlay.dtb
iqaudio-dac-overlay.dtb
iqaudio-dacplus-overlay.dtb
Если вы хотите добавить модуль вручную, то в config.txt нужно добавить что-то вроде этого:
device_tree_overlay=overlays/iqaudio-dac-overlay.dtb
В будущем для карт, поддерживающих HAT-идентификацию, это будет происходить автоматически.
Однако сейчас эта «следующая» прошивка нуждается в тестировании, и для этого нам нужны тестеры. Причем вы можете записаться в тестеры, даже не имея HAT-карты – просто загрузите апдейт и сообщите, не поломалось ли что-нибудь. Также нам хотелось бы услышать фидбек от владельцев аудиокарт hifiberry или iqaudio – работают ли эти карты с новой версией этой прошивки? Кроме того, для активации модулей и занесения их в черный список, совсем не обязательно лезть в, соответственно, in/modules и /etc/modprobe.d/, – просто добавьте в config.txt строчку device_tree_overlay. Большую часть работы над этим проектом проделал Фил, поэтому если у вас будут какие-то вопросы – не стесняйтесь, пишите. Думаю, он найдет время на них ответить. В ближайшем будущем мы будем переезжать на основную ветку, поэтому тестирование было бы весьма кстати.
Дополнительная информация
- Список поддерживаемых аудиокарт – эти лишь те карты, к которым у разработчиков был доступ. То есть это совсем не упрек в адрес других карт, имеющихся на рынке.
- Источник для существующих оверлей-файлов (т.е. файлов формата .dtb) можно найти в arch/arm/boot/dts в ветке 3.17.y. Компиляция этих файлов требует обновленной DTC-утилиты – из-за отсылок к неразрешенным символам. Неплохой материал о DT-фрагментах и апгрейде DTC (device tree compiler, т.е. «компилятора дерева устройств») можно найти здесь.
- Без DTB-файла ядро должно работать также, как и прежде. То есть начальный загрузчик, имеющийся в прошивке, теперь будет по умолчанию игнорировать соответствующий DTB-файл, но при условии, если это поддерживается ядром (см. ниже). Впрочем, эту функцию можно переписать или отключить посредством другой (или пустой) строки device_tree в config.txt.
- Во избежание разрушения ядер, не умеющих работать с DT, kernel.img теперь включает в себя метку, которая сигнализирует о том, готово ли ядро к DT или нет. Отсутствие этой метки воспринимается как «нет», но это можно переписать (см. выше).
- В случае конфигурационной ошибки (т.е. если DTB-файл был испорчен или пропущен) начальный загрузчик вернется к операции без использования DT.