Сборка Mendel-Linux с изменениями кода в драйвере камеры
Я хочу собрать Mendel Linux для Coral Dev Board, чтобы использовать некоторые изменения, которые я внес в драйвер камеры (ov5645_mipi_v2.c).
Проблема в том, что
после перепрошивки платы мои изменения кода вообще не коснулись недавно прошитой платы.
Что я сделал:
я экспериментировал с некоторыми изменениями в драйвере камеры (ov5645_mipi_v2.c), чтобы ввести новый режим камеры, работающий с более высокой частотой кадров (на основе набора настроек регистра, которые я нашел в другом месте, например raspiraw). Я выполнил инструкции по сборке дистрибутива Mendel Linux, как указано здесь https://coral.googlesource.com/docs/+/refs/heads/master/GettingStarted.md, и просто скопировал изменения кода в проверенные источники. Я продолжил с инструкциями по сборке и использовал
m docker-dist
вариант для сборки. Сборка окончательно скомпилировала мой измененный файл, поскольку я сначала допустил синтаксическую ошибку, которая привела к отказу от сборки. После успешной сборки я получил образ флэш-карты (flashcard_arm64.img) и прошил плату. Плата перепрошилась и завелась пустая и с новым именем. Хотя, отдав команду
v4l2-ctl --list-formats-ext
не дал мне результатов, которые я ввел в код (я изменил
ov5645_mode_info
в этом файле, который должен быть основой для сообщаемых доступных размеров кадра).
Я уже пробовал следующие подходы:
- Бег
m clean
и полностью удалите все образы докеров и создайте заново - сначала выполните сборку с параметром «все», а затем используйте параметр «флэш-карта» для создания флэш-карты.
Думаю, я просто пропустил базовый шаг по созданию сборки с использованием изменений моего кода, например, увеличения номера версии? или создание ветки Git? или как ...
1 ответ
Сам нашел решение:
Я использовал вариант сборки
m docker-linux-imx
который уже где-то упоминался для сборки нового ядра. Для меня эта опция вызвала некоторые ошибки зависимостей из образа докера, но я смог их исправить, добавив зависимости в «Dockerfile» в каталоге «build».
Я использовал следующую строку в «Dockerfile»:
apt-get install -y sudo make kmod libssl-dev bc git && \
вместо
apt-get install -y sudo make && \
.
Ядро было построено, и я скопировал полученный файл '.deb' на плату Coral.
scp linux-image-4.14.98-imx_12-4_arm64.deb mendel@BYBOARDSNAME:.
И установлен на плате с
sudo dpkg -i linux-image-4.14.98-imx_12-4_arm64.deb
Изменения, которые я внес в драйвер, теперь правильно отображаются при вызове
sudo v4l2-ctl --list-formats-ext
Надеюсь, это сэкономит кому-то время...