GPRS--ubifs系统的制作


前言:

在根文件目录制作完成后,我们制作了initramfs内核启动系统,明白该系统的缺点不适合长期的开发,因此引入了移植ubifs系统这个想法,该系统的好处,读者们可自行百度,是目前较为流行的嵌入式根文件系统;


Linux内核MTD对同一Flash分区提供了两种设备文件给用户层使用,一种是/dev/mtdblockX块设备,该设备用来建立文件系统并挂载起来使用;另外一种相对应的/dev/mtdX字符设备,其里面添加了一些ioctl,支持很多命令,如MEMGETINFO,MEMERASE等。而mtd-util就是以这些ioctl为基础而实现的工具,实现一些关于Flash的操作,如flash_erase、flash_eraseall、flashcp、nandwrite等命令,此外在PC上制作根文件系统所需要的一些工具也在里面,如制作JFFS2根文件系统用的mkfs.jffs2、制作UBIFS根文件系统工具mkfs.ubifs以及开发板上操作UBI文件系统的命令。

mtd-utils编译依赖lzo、zlib和libuuu这几个库,所以我们在编译它之前先要编译这些库。另外,为了在运行mkfs.ubifs这些命令时不依赖这些动态库,我们采用静态编译、然后静态链接生成这两个命令。

    以编译lzo库为例:

    在fl2440文件夹下穿建文件夹:    

[guozhihao@localhost fl2440]$ mkdir -p x86_tools/mtd_utils
[guozhihao@localhost fl2440]$ cd x86_tools/mtd_tils/
[guozhihao@localhost mtd_tils]$ wget http://www.oberhumer.com/opensource/lzo/download/lzo-2.10.tar.gz
[guozhihao@localhost mtd_tils]$ tar -xzf lzo-2.10.tar.gz
[guozhihao@localhost mtd_tils]$ cd lzo-2.10
[guozhihao@localhost mtd_tils]$ ./configure --help
[guozhihao@localhost mtd_tils]$ ./configure --prefix=`pwd`/../install --enable-static --disable-shared                //路径设置为../install 静态编译
[guozhihao@localhost mtd_tils]$ make && make install

 

编译e2fsprogs也是相同步骤:(略)   

 ....
[guozhihao@localhost e2fsprogs-1.43.7]$ make ; make install-libs

 

编译mtd-utils并安装mkfs.ubifs

[guozhihao@localhost ~]$ cd cd ~/Desktop/fl2440/x86_tools/mtd_utils/
[guozhihao@localhost mtd_tils]$ wget http://repository.timesys.com/buildsources/m/mtd-utils/mtd-utils-1.5.2/mtd-utils-1.5.2.tar.gz
//需要翻墙搜索mtd_utils就有下载源码的地址
[guozhihao@localhost mtd_tils]$ tar -xzf mtd-utils-1.5.2.tar.gz
[guozhihao@localhost mtd_tils]$ cd mtd-utils-1.5.2/

指定链接头文件、动态库文件,生成mkfs.ubifs和ubinize  

[guozhihao@localhost mtd-utils-1.5.2]$ "export CFLAGS+=" -I../install/include/"
[guozhihao@localhost mtd-utils-1.5.2]$ "export CFLAGS+=" -I../install/include/"
[guozhihao@localhost mtd-utils-1.5.2]$ "export LDFLAGS+=" -L../install/lib/ -static "
[guozhihao@localhost mtd-utils-1.5.2]$ make WITHOUT_XATTR=1

然后将生成的mkfs.ubifs命令移植到 /bin/路径下    

[guozhihao@localhost mtd-utils-1.5.2]$ sudo cp mkfs.ubifs/mkfs.ubifs /bin/
[guozhihao@localhost mtd-utils-1.5.2]$ sudo cp ubi-utils/ubinize /bin/
[guozhihao@localhost fl2440]$ cd /home/guozhihao/Desktop/fl2440
[guozhihao@localhost fl2440]$ mkfs.ubifs -h
...

 

调用mkfs.ubifs来生成镜像文件(此时生成的根文件系统镜像不能直接烧入)    

[guozhihao@localhost fl2440]$ cd linux
[guozhihao@localhost linux]$ mkfs.ubifs -x lzo -m 2048 -e 129024 -c 300 -r ./rootfs -o rootfs-ubifs.img
[guozhihao@localhost linux]$ ubinize -h
 ...

 

用ubinize来处理:创建ubinize的配置文件,然后再使用ubinize命令对image进行处理:

[guozhihao@localhost linux]$ vim ubinize.ini
[ubifs-volume]
mode=ubi 
image=rootfs-ubifs.img    
vol_id=0    
vol_size=38707200   
vol_type=dynamic
vol_name=rootfs
vol_flags=autoresize
vol_alignment=1


  

[guozhihao@localhost linux]$ ubinize -o rootfs-ubifs.bin -m 2048 -p 131072 -s 512 -O 512ubinize.ini
[guozhihao@localhost linux]$ du -h rootfs-ubifs.bin
8.3M    rootfs-buifs.bin

 

    烧入完后登入界面: 完成

...
usb 1-1.3: new full speed USB device number 3 using s3c2410-ohci
ch341 1-1.3:1.0: ch341-uart converter detected
usb 1-1.3: ch341-uart converter now attached to ttyUSB0

Copyright (C) 2018 LingYun I.o.T Studio< iot-yun.com >
Default Logon Username: root Password: 123456
(none) login:

内核配置的更改参考博客:https://blog.csdn.net/pipiavenger/article/details/82423187

 

 

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值