Сборка 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

Надеюсь, это сэкономит кому-то время...

Другие вопросы по тегам