ntfs-3g 集成
1. 下载
http://www.tuxera.com/community/ntfs-3g-download/
ntfs-3g-2010.8.8
2. 建立makefile
a. 参考gstreamer/makefile
大概把 gstreamer改成ntfs_3g和ntfs-3g,GSTREAMER改成NTFS_3G,设置版本,源码包等。
b. 定义option_configure_args
c. 取消install过程
根据需要确定是否--enable-debug
3. 编译
$make -C src/thirdparty/ntfs-3g/ remove
在Huangpu/makefile下面加入对ntfs-3g的编译目标,然后$make ntfs-3g
4. 运行
a. 把编译的结果mount到机顶盒
pc: #ln -s /home/qianjiang/apollo/sw/ga300/target/output/objs/summit-dualhd-gnu-4.4.0-linux-debug/comps/generic_apps/ ~/nfsroot/apps
apollo: # mount -t nfs -o rw,tcp,nolock,nfsvers=3 192.168.2.2:/home/qianjiang/nfsroot/apps mnt/apps/
b. 把目标文件拷贝到/bin和/lib下面
# cp mnt/apps/ntfs-3g/ntfs-3g-2010.8.8/libntfs-3g/.libs/libntfs-3g.so* /lib/
# cp mnt/apps/ntfs-3g/ntfs-3g-2010.8.8/src/.libs/ntfs-3g /bin/
# ntfs-3g --help
注意:
曾经运行src下面的ntfs-3g得到异常的问题:
# /mnt/apps/ntfs-3g/ntfs-3g-2010.8.8/src/ntfs-3g
-/bin/sh: /mnt/apps/ntfs-3g/ntfs-3g-2010.8.8/src/ntfs-3g: not found
网上说可能是相关库文件找不到,应该拷贝至/lib或者设置LD_LIBRARY_PATH,但是都未奏效。而且pc下运行也没问题,ldd ntfs-3g表明是无动态链接库。所以,很奇怪!
5. 调试
# ntfs-3g /dev/sda4 mnt/sda/
modprobe: module 'fuse' not found
ntfs-3g-mount: fuse device is missing, try 'modprobe fuse' as root
注:
曾经可没有这么好的出现提示,而是死机,,,所以。。。
6. 加入fuse
6.1 pc
#cd target/src/sd/os/oslinux/comps/kernel/linux-2.6.28.10/
#cp target/output/objs/pnx8473_hirf_moca_mp1_mtd_debug/.config ./
#make menuconfig => 选中fuse文件系统
#make modules
#cp fs/fuse/fuse.ko /home/qianjiang/nfsroot/appfs/lib/modules/2.6.28.10/extra/
注:这里对kernel的编译可能不是Official的方式。
6.2 apollo
#insmod fuse.ko
7. 测试
7.1写测试 ==> OK
7.2性能测试 ===>
写hello.sh
date
cp mnt/sda/GA300_full_src.tar.gz mnt/sda/GA300_full_src.tar.gz1
umount mnt/sda
date
# sh hello.sh
Wed Dec 31 17:06:19 MST 1969
Unmounting /dev/sda4 ()
Wed Dec 31 17:19:44 MST 1969
(read + write)bs = 1608602770(file size) * 8 / 805(time) = 15.3Mbits/s
8. 集成和check in
8.1 file: pnx8473_hirf_moca_mp1_mtd_debug_defconfig
enable fuse
8.2 Huangpu/makefile
add make target: ntfs-3g
8.3 ntfs-3g/makefile
use to untar ntfs-3g package, configure, compile etc...
8.4 TODO
需要编译结束后安装bin到rootfs,完成类似下面的功能:
cp ntfs-3g-2010.8.8/libntfs-3g/.libs/libntfs-3g.so* /lib/
cp ntfs-3g-2010.8.8/src/.libs/ntfs-3g /bin/