V853 SDK:Linux内核下载。
-
你好。
我的设备从 SD 卡启动
1.为了简化驱动程序-linux内核模块的开发,我在SDK的menuconfig中进行了设置:
[] Include kernel in root filesystem
[] Include DTB in root filesystem组装好系统并将其安装到SD卡上后,我看到了linux内核文件,但找不到.dtb文件。
还需要配置什么才能使 dtb 文件位于文件系统上?- uboot 中从 SD 卡加载 Linux 内核的命令顺序是什么? 核心图像:uImage。
-
@alb702 在 V853 SDK:Linux内核下载。 中说:
uboot
从 SD 卡启动的“快速而肮脏”的方式。 也许这对某人有用。V853 SDK不完全支持从SD卡启动。 我没有足够的信息来修复 SDK 的所有缺点,因此我使用了下面描述的方法。
我的设备使用 sdc0 控制器 (PF00...PF05) 和相应的 mmc0 接口进行启动。 下面的描述中将用到该接口。Linux内核将通过脚本加载到uboot中。 我们准备一个文本格式的脚本,内容如下:
setenv bootargs console=ttyS0,115200 debug panic=5 rootwait root=/dev/mmcblk0p4 earlyprintk rw loglevel=7
fatload mmc 0:3 0x42000000 uImage
fatload mmc 0:3 0x43000000 board.dtb
bootm 0x42000000 - 0x43000000并将其以 boot.cmd 的名称保存在临时目录中。
2、对于SDK中对应的【chip】和【board】:
在文件 //device/config/chips/[chip]/configs/[board]/sys_config.fex 中
需要更换:;storage_type = 2
storage_type = 13.在SDK menuconfig(make menuconfig)中安装:
在linux内核配置(make kernel_menuconfig)中设置:
4.进入目录//lichee/brandy-2.0/u-boot-2018。 你需要做:
make menuconfig对于 Boot Images 我们设置:
对于 Boot Media 我们安装:
如果你以这种形式组装系统并使用phoenixcard将其写入SD卡,那么u-boot很可能会启动。 但将无法访问mmc接口。 要使其出现,您需要运行命令:
mmcinfo出现对界面的访问,但无法访问 mmc 部分。 你需要做:
part list mmc 0现在您可以上传文件了 (fatload...)。
- 很明显,在u-boot控制台中输入这些命令是没有意义的,因此您需要在文件中写下引导的整个命令序列
//device/config/chips/[chip]/configs/[board]/linux/env-4.9.cfg :
....
#bootcmd=run setargs_nand boot_normal <-- 这需要禁用并替换为
bootcmd=mmcinfo; part list mmc 0; fatload mmc 0:3 0x42000000 boot.scr; source
....
6.如果使用mmc0,那么在文件中
//lichee/brandy-2.0/u-boot-2018/drivers/mmc/mmc.c在 mmc_exit(void) 函数中,您需要更改:
...
//int sdc_no = 2;
int sdc_no = 0;
...您可以组装系统(make)
- 镜像必须在“StartUp”模式下使用phoenixcard安装到SD卡上(不是“Product”!!!) 在这种情况下,应该出现对引导部分中的目录的访问,uImage 文件应位于其中。
您需要将boot.scr文件和board.dtb文件复制到该目录。 board.dtb 位于
//lichee/brandy-2.0/linux-4.9/arch/arm/boot/dts/
SDK 本身应该在构建时复制此文件,但由于某种原因它没有复制。
- 卸载SD 卡。 过程结束了!
- 很明显,在u-boot控制台中输入这些命令是没有意义的,因此您需要在文件中写下引导的整个命令序列
Copyright © 2024 深圳全志在线有限公司 粤ICP备2021084185号 粤公网安备44030502007680号