搞定ARM LINUX下用ntfsprogs(ntfsmount)挂载ntfs分区

来源:互联网 发布:泰拉瑞亚手机联机软件 编辑:程序博客网 时间:2024/05/22 00:40

折腾了几天,加了几天的班,不停的编译,不停的更换代码版本。总算搞定了。一个小小的功能,却让我把整个系统的基础翻了个底朝天。

第一步:arm-linux-uclibc交叉编译工具链没有宽字符支持,无法编译ntfsprogs或者ntfs-3g.重新自己制作交叉编译工具链,花了不少于两天的时间,包括编译gcc,uclibc,linux kernel 这一步等整理过后一定做个记录,太不容易了。

第二步:busybox和ntfs-3g以及ntfsprogs的版本匹配问题,busybox中实现的mount不支持某些特定的参数,导致ntfs-3g或者ntfsprogs无法正确执行,而且busybox某些版本的make menuconfig配置中也没交叉编译选项。

第三步:fuse的内核BUG,linux2.6.14内核源码中的fuse无法正常工作于ARM平台,在ls等命令时会卡住无法退出,必须使用fuse2.6.x的内核模块编译后动态插入,要保证此步骤正确完成,前面的交叉工具链,kernel,busybox等都必须配置正确。否则会出现文件明明就在其目录下,insmod却找不到等奇怪现象。

 

 

目前正确工作的版本为:binutils-2.16+gcc-3.4.3+uClibc-0.9.28  linux-2.6.14+busybox-1.1.2+fuse2.6.0+ntfsprogs-1.13.1

以上7个组件全部自行编译测试。

总结:要在没有参考的情况下自己搭建linux嵌入式开发的基础平台真的很麻烦,无数的不明所以的错误,无数的版本兼容配合问题。

 

原创粉丝点击