Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

RAMDISK安装imx6ull开发板系统包以及双分区切换 #2

Open
zwg0106 opened this issue Dec 5, 2019 · 0 comments
Open

RAMDISK安装imx6ull开发板系统包以及双分区切换 #2

zwg0106 opened this issue Dec 5, 2019 · 0 comments

Comments

@zwg0106
Copy link
Owner

zwg0106 commented Dec 5, 2019

开发板系统包文件系统由initramfs+squashfs组成,编译命令分别为:
bitbake imx-image-initramfs
bitbake imx-image
在编译之前需要确保已完成上一篇的yocto环境配置和生成ramdisk image,并且更新uboot到2017.03,卡能从ramdisk image load起来。
在build/tmp/deploy/images/hwasin目录下回生成initramfs和squashfs文件系统包
imx-image-initramfs-hwasin-20191204095550.rootfs.cpio.gz.u-boot
imx-image-hwasin-20191204095550.rootfs.squashfs
Package_imx6u_hwasin_20191204095550_alex.run
imx-image-initramfs-hwasin-20191204095550.rootfs.cpio.gz.u-boot是initramfs文件系统包,initramfs包会拷贝到squashfs的/boot目录下,imx-image-hwasin-20191204095550.rootfs.squashfs是squashfs文件系统包,最后在生成.run文件后被删除掉了,最后生成的完整包文件为Package_imx6u_hwasin_20191204095550_alex.run。
.run文件是用makeself.sh将squashfs和包安装脚本(pkg-install.sh)打包在一起。
initramfs是一个精简的文件系统,主要做文件系统的初始化和mount ext4分区,以及引导squashfs。 由于squashfs文件系统是只读的,为了支持根文件系统的写操作,引入了overlayfs,堆叠一个64M的可读写的tmpfs文件系统,同时还可以支持给系统打patch。

包安装:
ramdisk load起来后,把Package_imx6u_hwasin_20191204095550_alex.run文件通过tftp或者ftp上传到卡上的/tmp目录,然后执行下面的命令:
chmod +x Package_imx6u_hwasin_20191204095550_alex.run
./Package_imx6u_hwasin_20191204095550_alex.run -- -r
上面两个命令对格式化emmc,重新分区,emmc卡分成两个区BOOT和APP,格式为ext4,BOOT分区为200M,剩下的给APP分区,包安装BOOT和APP的imgx目录下,卡在uboot启动会从imgx load内核,dts和initramfs。
BOOT下面img[x|y]存放uboot,内核,dts和initramfs image,APP下面img[x|y]存放squashfs系统包。
/BOOT/目录下面有一个软连接boot.imgdir,软连接指向哪个分区目录,uboot就从这个目录下去load kernel image,dtb和initramfs。

上传待安装的.run包到卡上,软件包升级命令:
chmod +x Package_imx6u_hwasin_20191204095550_alex.run
./Package_imx6u_hwasin_20191204095550_alex.run
上面的命令会将包安装在另外一个分区,如果当前分区是imgx,包将安装在imgy,但是emmc不会被格式化和重新分区。

查看安装包信息命令:
pkg-install.sh -i

Current media: /media/sda
Current boot: /media/sda1
Current app: /media/sda2
Active partition: imgx
Standby partition: imgy

Status Partition Image
========== ========== ==================================================
Active imgx Package_imx6u_hwasin_20191204095550_alex.run
Standby imgy Package_imx6u_hwasin_20191204095550_alex.run

切换分区命令:
pkg-install.sh -s

@zwg0106 zwg0106 changed the title RAMDISK安装imx6ull开发系统包以及双分区切换 RAMDISK安装imx6ull开发板系统包以及双分区切换 Dec 5, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant