Вы можете передавать свои загрузочные файлы через файл uEnv.txt, помимо ваших файлов на SD-карте.
эти файлы нужны для загрузки:BOOT.bin
(загружает fsbl и uboot ),bitstream.bit
(ваш битовый поток, который загружает в PL,uImage
(скомпилированное ядро linux ),devicetree.dtb
(адрес драйверов, которые linux читает ),uramdisk.image.gz
(файлы linux после загрузки ).
вы можете загрузить их в DDR с помощью этой команды:
bootargs=console=ttyPS0,115200 root=/dev/ram rw earlyprintk
load_image=fatload mmc 0 ${kernel_load_address} ${kernel_image} &&
fatload mmc 0 ${devicetree_load_address} ${devicetree_image} &&
fatload mmc 0 ${ramdisk_load_address} ${ramdisk_image} uenvcmd=run mmc_loadbit_fat &&
echo Copying Linux from SD to RAM... &&
run load_image &&
bootm ${kernel_load_address} ${ramdisk_load_address} ${devicetree_load_address}
также, если вы хотите загрузить другие файлы Linux из раздела ext4 SD, вы можете использовать эти команды наuEnv.txt
:
bootargs=console=ttyPS0,115200 root=/dev/mmcblk0p2 rw earlyprintk rootfstype=ext4 rootwait devtmpfs.mount=0
load_image=fatload mmc 0 ${kernel_load_address} ${kernel_image} &&
fatload mmc 0 ${devicetree_load_address} ${devicetree_image} uenvcmd=run mmc_loadbit_fat &&
echo Copying Linux from SD to RAM... &&
mmcinfo && run load_image &&
bootm ${kernel_load_address} - ${devicetree_load_address}
Системные «зависания» часто бывают вызваны запуском слишком большого количества слишком больших программ и нехваткой доступной памяти. Используйте free
, чтобы узнать, есть ли у вас пространство подкачки, прочитайте man mkswap swapon fstab
, чтобы создать его. Пространство подкачки должно быть непрерывным. используйте mkswap
или fallocate
, а не dd
. Традиционно рекомендуется пространство подкачки 1,5 × ОЗУ, но YMMV. Если вы не планируете переводить систему в спящий режим, у вас может быть менее 1,0 × ОЗУ.