烧录到EMMC测试,还需进一步测试和配置。
1、删除rootfs”目录下的“rootfs.tar”压缩包
打开第1个终端
输入“ls回车”
输入“cd linux/回车”,切换到“linux”目录
输入“ls回车”,列出“linux”目录下的文件和文件夹
输入“cd nfs/回车”,切换到“nfs”目录
输入“ls回车”,列出“nfs”目录下的文件和文件夹
输入“cd rootfs/回车”,切换到“rootfs”目录
输入“ls回车”,列出“rootfs”目录下的文件和文件夹
输入“rm rootfs.tar/回车”,删除“rootfs.tar”压缩包
输入“ls回车”,列出“rootfs”目录下的文件和文件夹
输入“cd ../回车”,返回到“nfs”目录
输入“ls回车”,列出“nfs”目录下的文件和文件夹
2、将“rootfs.ext4”挂载在“/mnt/rootfs/”目录下
打开第2个终端
输入“ls回车”
输入“cd linux/回车”,切换到“linux”目录
输入“ls回车”,列出“linux”目录下的文件和文件夹
输入“cd rootfs/回车”,切换到“rootfs”目录
输入“ls回车”,列出“rootfs”目录下的文件和文件夹
输入“mv rootfs.ext4 rootfs-busybox.ext4回车”,将busybox生成的“rootfs.ext4”根文件系统重命名为“rootfs-busybox.ext4”。
输入“ls回车”,列出“rootfs”目录下的文件和文件夹
输入“dd if=/dev/zero of=rootfs.ext4 bs=1M count=1024回车”,分配1G空间给“rootfs.ext4”
输入“mkfs.ext4 -L rootfs rootfs.ext4回车”,将“rootfs.ext4”格式化
输入“ls -l回车”,查看“/home/zgq/linux/rootfs/”目录下的文件和文件夹
输入“sudo mount rootfs.ext4 /mnt/rootfs/回车”,将“rootfs.ext4”挂载在“/mnt/rootfs/”目录下
3、拷贝系统文件至“/mnt/rootfs/ ”
回到第1个终端
输入“cd rootfs/回车”,切换到“rootfs”目录
输入“ls回车”,列出“rootfs”目录下的文件和文件夹
输入“sudo cp * /mnt/rootfs/ -drf 回车”,执行拷贝
输入密码“123456回车”
5、查看挂载文件和和文件夹
输入“ls /mnt/rootfs/ -f回车”,查看“/mnt/rootfs/”目录下的文件和文件夹
输入“ls /mnt/rootfs/ -l回车”
6、卸载磁盘
输入“cd /home/zgq/linux/rootfs/”
输入“ls回车”,查看“/home/zgq/linux/rootfs/”目录下的文件和文件夹
输入“sudo umount /mnt/rootfs/回车”卸载掉“rootfs”
输入“ls -l回车”,查看“/home/zgq/linux/rootfs/”目录下的文件和文件夹
至此,我们生成新的“rootfs.ext4”,这个文件可以烧录到EMMC中。
7、使用“FileZilla”将“rootfs.ext4”下载到“windows”中。
8、烧录
1)、关闭虚拟机,防止开发板连接到虚拟机
2)、将开发板上拨码开关拨到“000”位置
3)、将USB导线连接电脑的USB3.0接口,另外一端连接开发板的USB OTG接口;
4)、将USB导线连接电脑的USB3.0接口,另外一端连接到开发板的USB TTL接口;
5)、双击“STM32CubeProgrammer”图标
6)、选择上图中的USB,然后点击“Connect”
7)、点击“刷新”,直到出现USB1,表示连接成功。
8)、点击“Open file”,找到
“C:\Program Files\STMicroelectronics\images\my-tfa”目录下“tf-a.tsv”打开。
9)、点击“Browse”,打开
“C:\Program Files\STMicroelectronics\images\my-tfa”目录。
10)、点击“选择文件夹”
11)、点击“Download”
12)、点击“确定”
13)、将拨码开关设置为“010”
14)、按下开发板的“复位按钮”,重新启动开发板。
9、从EMMC启动测试
1)、在串口查看EMMC是否烧录了“uImage”和“stm32mp157d-atk.dtb”
输入“ext4ls mmc 1:2回车”查看EMMC分区2“内核镜像”有哪些文件和目录
发现“uImage”和“stm32mp157d-atk.dtb”
输入“ext4ls mmc 1:3回车”查看EMMC分区3“根文件系统”有哪些文件和目录
2)、设置“bootcmd和bootargs”这两个环境变量,从EMMC启动linux系统
输入setenv bootcmd 'ext4load mmc 1:2 c2000000 uImage;ext4load mmc 1:2 c4000000 stm32mp157d-atk.dtb;bootm c2000000 - c4000000'
输入setenv bootargs 'console=ttySTM0,115200 root=/dev/mmcblk1p3 rootwait rw'
输入saveenv,保存“bootcmd和bootargs”的值
输入boot,启动 Linux 系统
4)、查看运行结果:
输入“ifconfig -a”
输入“ifconfig eth0 up”
输入“ifconfig”
输入“udhcpc”,自动申请IP地址
输入“ifconfig”
至此,系统移植全部学习完了。
10、设置“bootcmd和bootargs”这两个环境变量,从网络启动linux系统
输入setenv bootcmd 'tftp c2000000 uImage;tftp c4000000 stm32mp157d-atk.dtb;bootm c2000000 - c4000000',设置从网络启动linux系统
输入“setenv bootargs 'console=ttySTM0,115200 root=/dev/nfs nfsroot=192.168.2.180:/home/zgq/linux/nfs/rootfs,proto=tcp rw ip=192.168.2.178:192.168.2.180:192.168.2.1:255.255.255.0::eth0:off'
回车”
输入: saveenv,保存bootcmd的值
输入: boot,启动 Linux 系统
至此根文件系统学习完了,后面要学习linux驱动开发。