ntfs-3g 集成

发布时间:2019-08-10 08:23:50编辑:auto阅读(1639)

    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/

关键字