嵌入式 linux 基于fuse 的 exfat 文件系统实现
2017-01-11 15:16
1091 查看
1、下载源代码
https://github.com/relan/exfat 下载:exfat-master.ziphttps://github.com/libfuse/libfuse/ 下载 fuse-2.9.3.tar.gz
2、编译
交叉编译fusetar zxf fuse-2.9.3.tar.gz
cd fuse-2.9.3/
mkdir install
(交互编译的平台为 海思 hi3516 芯片,交叉编译链为arm-hisiv300-linux )
./configure –host=arm-hisiv300-linux –prefix=/ternence/01_debug/46_exfat/hisi/fuse-2.9.3/install/
make
make install
在install 目录下面可以看到:
ls install
bin include lib share
交叉编译 exfat
unzip exfat-master.zip
cd exfat-master/
mkdir install
autoreconf –install
./configure –prefix=/ternence/01_debug/46_exfat/hisi/exfat-master/install –host=arm-hisiv300-linux CPPFLAGS=-I/ternence/01_debug/46_exfat/hisi/fuse-2.9.3/install/include LDFLAGS=-L/ternence/01_debug/46_exfat/hisi/fuse-2.9.3/install/lib
make
make install
编译成功后:
ls install/sbin/
dumpexfat exfatfsck exfatlabel fsck.exfat mkexfatfs mkfs.exfat mount.exfat mount.exfat-fuse
3、安装
1、把fuse的库文件放到文件系统的lib目录下2、把exfat 的执行文件 mount.exfat-fuse 放到开发板的bin文件夹下
执行:./mount.exfat-fuse /dev/mmcblk0p1 /mnt/SDCard/
结果:FUSE exfat 1.2.5
ERROR: invalid VBR checksum 0x0 (expected 0x4601ae68).
以上方法在ubuntu系统中测试是没有问题的,但是交叉编译后却无法正常运行。
方法2:
通过 exfat-nofuse 模块来实现
源码下载: https://github.com/dorimanx/exfat-nofusegit clone https://github.com/rxrz/exfat-nofuse.git
cd exfat-nofuse/
修改makefile:
先把嵌入式平台的内核先编译一遍
#KDIR := /lib/modules/$(shell uname -r)/build
#MDIR := /lib/modules/$(shell uname -r)
KDIR := /ternence/hi3516a/Hi3516A_SDK_V1.0.5.0/osdrv/opensource/kernel/linux-3.4.y
MDIR := /ternence/hi3516a/Hi3516A_SDK_V1.0.5.0/osdrv/opensource/kernel/
修改目标all
在编译命令后面添加 ARCH=arm CROSS_COMPILE=arm-hisiv300-linux-
$(MAKE) -C $(KDIR) M=$(PWD) modules ARCH=arm CROSS_COMPILE=arm-hisiv300-linux-
编译
make
编译成功
会生成内核模块/ternence/01_debug/46_exfat/exfat-nofuse/exfat-nofuse/exfat.ko
insmod exfat.ko 到嵌入式linux平台
挂载usb磁盘
mount -t exfat $dev $dir
上面方法在ubuntu中测试没有问题,在hi3516a系统中也测试正常。
相关文章推荐
- 基于ARM11的嵌入式linux系统移植与实现--(笔记一)
- 嵌入式linux下jffs2文件系统的实现
- YAFFS文件系统在嵌入式Linux上的实现
- 基于AT91SAM9261EK的嵌入式Linux2.6.32+Yaffs2 根文件系统移植成功
- 基于redis ae实现 Linux中的文件系统监控机制(inotify)
- 基于μcosII的嵌入式文件系统的设计与实现
- 基于Linux的嵌入式文件系统构建与设计
- 嵌入式实战项目:基于嵌入式linux花卉大棚温湿度监测与调节系统的设计与实现
- 基于嵌入式Linux的视频采集系统5--基于MJPEG编码方式的视频采集实现
- 基于ARM11的嵌入式linux系统移植与实现--笔记四
- 基于redis ae实现 Linux中的文件系统监控机制(inotify)
- 基于ARM11的嵌入式linux系统移植与实现--笔记二
- Linux环境下C语言实现简单的基于文件的学生信息管理系统
- 在嵌入式Linux 系统中实现基于Web 的配置管理
- YAFFS文件系统在嵌入式Linux上的实现
- 基于Linux的嵌入式文件系统构建与设计
- 基于ARM11的嵌入式linux系统移植与实现--笔记三
- 基于嵌入式Linux的视频采集系统9----基于JRTPLIB的视频数据接收模块实现
- 基于嵌入式Linux平台的最小文件系统的制作
- 基于Linux的嵌入式文件系统构建与设计