当前位置:   article > 正文

富瀚6630用busybox制作squashfs文件系统并在只读文件系统添加可读可写jffs2分区_squashfs怎样加载为可读写

squashfs怎样加载为可读写

内核squashfs的使能

因为富瀚默认是文件系统内嵌在内核上,所以我们要先把initrd关掉使能squashfs

  1. 把SDK默认内核配置拷贝过来
    cp boards/mc6630/demoboard/molchip_kernel_defconfig arch/arm/configs/molchip_defconfig
  2. make menuconfig进行squashfs使能,并关掉initrd
    在这里插入图片描述
    在这里插入图片描述
  3. 其他配置开关就不一一发出来了,太多了
  4. make进行编译完了之后回到SDK主目录执行make kernelpost生成zImage-dtb就可以烧录了

附上内核配置文件

点这!点这!

用busybox制作squashfs文件系统

  1. 可参考海思SDK文档比较详细
    在这里插入图片描述
  2. 附上我编译命令
rm /home/liu/Fulhan/FFFFFFFFFFF/MC6630_SDK_V1.3.0-20210304/output/rootfs_uclibc* -rf
//把原本编译好的文件系统删除
tar xzf /home/liu/Fulhan/FFFFFFFFFFF/MC6630_SDK_V1.3.0-20210304/osdrv/rootfs_scripts/rootfs.tar.gz -C /home/liu/Fulhan/FFFFFFFFFFF/MC6630_SDK_V1.3.0-20210304/osdrv/pub
//把富瀚SDK中文件系统解压出来
mv /home/liu/Fulhan/FFFFFFFFFFF/MC6630_SDK_V1.3.0-20210304/osdrv/pub/rootfs /home/liu/Fulhan/FFFFFFFFFFF/MC6630_SDK_V1.3.0-20210304/output/rootfs_uclibc
//移动到指定位置
sudo mknod -m 600 /home/liu/Fulhan/FFFFFFFFFFF/MC6630_SDK_V1.3.0-20210304/output/rootfs_uclibc/dev/console c 5 1
sudo mknod -m 600 /home/liu/Fulhan/FFFFFFFFFFF/MC6630_SDK_V1.3.0-20210304/output/rootfs_uclibc/dev/null c 1 3
tar xvf  /opt/molchip/arm-molchip-linux/bin/../runtime_uclibc.tar.bz2 -C /home/liu/Fulhan/FFFFFFFFFFF/MC6630_SDK_V1.3.0-20210304/output/rootfs_uclibc
//继续解压
cd /home/liu/Fulhan/FFFFFFFFFFF/MC6630_SDK_V1.3.0-20210304/output/rootfs_uclibc;chmod -R 0755 runtime_uclibc;mv runtime_uclibc/* lib/;rm lib/libstdc++*;rm -rf runtime_uclibc;
//把没用的库删除
cd /home/liu/Fulhan/FFFFFFFFFFF/MC6630_SDK_V1.3.0-20210304/osdrv/opensource/busybox/busybox-1.29.3/

cp /home/liu/Fulhan/FFFFFFFFFFF/MC6630_SDK_V1.3.0-20210304/boards/mc6630/demoboard/busybox_molchip_config     /home/liu/Fulhan/FFFFFFFFFFF/MC6630_SDK_V1.3.0-20210304/osdrv/opensource/busybox/busybox-1.29.3/.config
//用富瀚默认的config替换busybox里面的配置文件
make CROSS_COMPILE=arm-mol-linux-uclibcgnueabihf- -C /home/liu/Fulhan/FFFFFFFFFFF/MC6630_SDK_V1.3.0-20210304/osdrv/opensource/busybox/busybox-1.29.3 -j 20
//开始编译
make CROSS_COMPILE=arm-mol-linux-uclibcgnueabihf- -C /home/liu/Fulhan/FFFFFFFFFFF/MC6630_SDK_V1.3.0-20210304/osdrv/opensource/busybox/busybox-1.29.3 install
//install
cp -af /home/liu/Fulhan/FFFFFFFFFFF/MC6630_SDK_V1.3.0-20210304/osdrv/opensource/busybox/busybox-1.29.3/_install/* /home/liu/Fulhan/FFFFFFFFFFF/MC6630_SDK_V1.3.0-20210304/output/rootfs_uclibc
//把编译出来的所有文件拷贝到文件系统中
#cd /home/liu/Fulhan/FFFFFFFFFFF/MC6630_SDK_V1.3.0-20210304/output/rootfs_uclibc/;ln -s bin/busybox init;
//内核内嵌文件系统用的这里不需要

mkdir -p /home/liu/Fulhan/FFFFFFFFFFF/MC6630_SDK_V1.3.0-20210304/output/rootfs_uclibc/usr/share/udhcpc

cp -af /home/liu/Fulhan/FFFFFFFFFFF/MC6630_SDK_V1.3.0-20210304/osdrv/opensource/busybox/busybox-1.29.3/examples/udhcp/simple.script /home/liu/Fulhan/FFFFFFFFFFF/MC6630_SDK_V1.3.0-20210304/output/rootfs_uclibc/usr/share/udhcpc/default.script

make -C /home/liu/Fulhan/FFFFFFFFFFF/MC6630_SDK_V1.3.0-20210304/osdrv/tools/board/udev-164 OSDRV_CROSS=arm-mol-linux-uclibcgnueabihf

cp -af /home/liu/Fulhan/FFFFFFFFFFF/MC6630_SDK_V1.3.0-20210304/osdrv/tools/board/udev-164/rootfs/. /home/liu/Fulhan/FFFFFFFFFFF/MC6630_SDK_V1.3.0-20210304/output/rootfs_uclibc/
//上面都是配置dhcp的命令
make -C /home/liu/Fulhan/FFFFFFFFFFF/MC6630_SDK_V1.3.0-20210304/osdrv/tools/board/udev-164 OSDRV_CROSS=arm-mol-linux-uclibcgnueabihf clean
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  1. 编译生成mksquashfs工具
cd ../../../tools/pc/squashfs4.2/
//直接make
make
./mksquashfs /home/liu/Fulhan/FFFFFFFFFFF/MC6630_SDK_V1.3.0-20210304/output/rootfs_uclibc ./rootfs.squashfs -b 64K –comp xz -noappend
//-b 是指flash的块大小 -comp是压缩的格式
//然后生成的rootfs.squashfs就可以烧录了
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

配置uboot,不然开机起不来

gedit osdrv/opensource/uboot/uboot/include/configs/fy01.h
  • 1

在这里插入图片描述

gedit boards/mc6630/demoboard/molchip_uboot_defconfig
  • 1

在这里插入图片描述

  1. 回到sdk主目录编译Uboot即可
    make myboard=mc6630/demoboard boot

烧录后成功起来

在这里插入图片描述

**************************************************************

在squashfs只读系统中添加可写可读分区

修改uboot环境变量

在这里插入图片描述
在烧录过程中对config分区,进行擦除,不然有可能mount不上

sf probe 0;sf erase 0x800000 0x100000;
  • 1

开机脚本加上mount命令

在这里插入图片描述

成功mount

在这里插入图片描述
在这里插入图片描述

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/菜鸟追梦旅行/article/detail/287296
推荐阅读
相关标签
  

闽ICP备14008679号