Файл /boot/uEnv.txt изменяется с помощью сценария прошивки eMMC, который выполняется при загрузке платы с файлом uEnv.txt, содержащим строку cmdline=init=/opt/scripts/tools/eMMC/init-eMMC-flasher-v3.sh
: параметр cmdline
в этом файле указывает ядро командная строка, которую U-Boot передает ядру Linux при загрузке.
Итак, с этой строкой в uEnv.txt вы в основном говорите U-Boot, чтобы он велел ядру запустить «нестандартное» приложение вместо программы инициализации по умолчанию (которая будет загружать систему «нормально»). Это приложение, работающее под Linux, может получить доступ ко всей SD-карте и памяти eMMC, включая раздел, содержащий файл uEnv.txt, и может изменять содержимое файла по своему усмотрению.
Что касается вашего последнего вопроса, вы можете создать файл с изображением вашей модифицированной SD-карты из оболочки Linux, используя инструмент dd
, например:
dd if=/dev/mmcblk0 of=mySDcard.img
В приведенной выше команде замените /dev/mmcblk0
файлом блочного устройства, созданным в системе, когда вы вставляете SD-карту (чьи разделы НЕ должны быть смонтированы, чтобы это работало правильно); файл изображения будет создан как mySDcard.img
.