Можно ли запустить Linux на плате nucleo -stm32F429zi?

Если у вас есть файл cpio со «специальным файлом персонажа, указанным внутри», вам нужно будет использовать root для распаковки (sudo cpio -idmv ), иначе специальный файл персонажа не будет создан.

Так что да, еще один способ создать специальный файл персонажа (путем копирования из существующего специального файла персонажа):

а. Создайте файл со списком копируемых файлов:

enter image description here

б. создать сам файл cpio (должен работать как root):

enter image description here

(обратите внимание, что "cpio -it" просто перечисляет и проверяет)

с. из файла cpio воссоздайте файл символов в другом каталоге:

enter image description here

(здесь необходим запуск от имени пользователя root, и мы видим, что сам «cpio» использует команду mknod для создания специальных файлов ).

1
31.12.2020, 14:20
1 ответ

Вы можете легко запустить mainline linux на stm32f429 и любом другом MMU -меньше mcu. Я запускал основное ядро ​​Linux на stm32h743 (, это также MMU -, менее похожее на stm32f4 ).

Но единственная проблема заключается в том, что на вашей макетной плате нет внешней памяти .

Для запуска Linux вам потребуется не менее 4 МБ оперативной памяти .

Поэтому я рекомендую вам купить Отладочную плату с микроконтроллером STM32F429NI . Также эта оценочная плата имеет слот для SD-карты.

Шаги по запуску Linux на вашей плате:

  1. загрузите u -загрузочный и ядро ​​Linux и busybox.
  2. соберите ядро ​​u -boot и linux и busybox (для создания rootfs с помощью busybox следуйте этому руководству).
  3. flash u -загрузиться во внутреннюю флэш-память stm32
  4. подготовьте свою SD-карту (создайте толстый раздел размером 20 МБ и создайте большой раздел ext4)
  5. скопируйте загрузочные файлы на SD-карту (dtb-файл вашей платы и zImage вашего ядра в раздел fat и скопируйте rootfs в раздел ext4 ).
  6. используйте команды загрузки u -для загрузки DTB и zImage в dram и загрузки ядра.

некоторые полезные и необходимые u -команды загрузки:

  1. используйте команду "fatload" для загрузки DTB и zImage, например. (fatload mmc 0 :1 ${ядро _адрес _r} zImage ).
  2. используйте команду «setenv bootargs», чтобы установить bootargs , например. (setenv bootargs console=ttySTM0,115200n8 root=/dev/mmcblk0p2 rw rootwait loglevel=7 init=/linuxrc ).
  3. используйте команду "bootz" для загрузки ядра, например. (bootz ${ядро _адрес _r} -${fdt _адрес _r} ).

PS :uClinux старый и бесполезный.не используйте его, если вы можете использовать последнее основное ядро ​​Linux.

2
18.03.2021, 23:14

Теги

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