Вставить модуль во время загрузки

Для указания аргументов загрузки можно использовать файл uEnv.txt в загрузочном разделе. Это пример для устройств Xilinx zynq-7000 из слоя yocto meta-zybo:

kernel_image=uImage
devicetree_image=zybo-zynq7.dtb
bootargs=console=ttyPS0,115200 root=/dev/mmcblk0p2 rw rootwait earlyprintk
uenvcmd=echo Copying Linux from SD to RAM... && fatload mmc 0 0x3000000 ${kernel_image} && fatload mmc 0 0x2A00000 ${devicetree_image} && bootm 0x3000000 - 0x2A00000

Здесь указывается дерево устройств (это не нужно делать, если устройство называется device _ tree.dtb ), за которым следует набор аргументов для ядра.

Дополнительную информацию об использовании uEnv.txt можно найти здесь

-121--105232-

Существует два способа передачи аргументов ядру: 1. Скомпилировать их внутри. 2. Используйте загрузчик

Поэтому сначала проверьте, не скомпилированы ли ваши аргументы в ядро. Вторая команда setenv найдена не в команде bash, а в команде boot loader. Это зависит от того, как конкретное устройство сделано, но обычно в каком-то внутреннем хранилище (флэш-памяти вашего устройства, а не на хосте) есть раздел, где загрузчик считывает параметры или файл в файловой системе и u-boot берет конфигурацию оттуда.

Другим способом является подключение устройства по кабелю и использование специфичного для устройства способа получения запроса загрузчика и интерактивного изменения настроек.

Это не очень тривиально, если вы не знакомы с конкретной схемой загрузки устройства. Назовите ваше устройство, это может помочь ответить на ваш вопрос.

-121--105231-

Когда Upstart останавливает задание, он посылает сигнал SIGTERM . По умолчанию SIGTERM вызывает немедленный выход программы. Это означает, что выполнение не проходит через остальную часть кода, оно просто останавливается.

Обработчик сигналов может быть реализован с помощью модуля signal , подробную информацию о его использовании можно найти здесь . Это позволит запустить код после получения сигнала.

0
04.01.2018, 18:35
1 ответ

Теги

Похожие вопросы