本文大部分参考了

我的两个学生移植工作

大部分是重做一遍.

测试环境S3C6410开发板

内核 linux 2.6.28.6

编译器 arm-linux-gcc 4.4.1

一.内核配置

高版本的Linux已经内置了fuse file sytem驱动。首先确保FUSE FS加入配置

将其做为动态模块形式,这样编译出来fuse.ko待用

fs/fuse/fuse.ko

fs/isofs/isofs.ko

fs/ntfs/ntfs.ko

二.应用程序移植

主要是 ntfs-3g的模块的移植.

解压 tar xvzf ntfs-3g-2010.8.8.tgz

cd ntfs-3g-2010.8.8

生成Makefile

./configure  --host=arm-linux  --prefix=$PWD/../../output/arm-linux --exec-prefix=$PWD/../../output/arm-linux

这里要注意--exec-prefix必须要加(一般的configure的中,--exec-prefix是自动等于--prefix,便这个configure 脚本有一个小bug,必须要再次指定,否则ntfs-3g会被安装到/bin目录下。ntfs-3g的动态库会被安装到/lib目录。这个相当危险,等于冲掉桌面的X86的版本了。

三.在ARM-Linux的测试

0 安装fuse.ko模块

insmod /huisen/modules/fuse.ko        fuse init (API version 7.10)

1.首先插USB移动硬盘。在我的开发板上提示

usb 1-1: new full speed USB device using s3c2410-ohci an

d address 2

usb 1-1: configuration #1 chosen from 1 choice

scsi0 : SCSI emulation for USB Mass Storage devices

usb 1-1: New USB device found, idVendor=067b, idProduct=2571

usb 1-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3

usb 1-1: Product: Mass Storage Device

usb 1-1: Manufacturer: Prolific Technology Inc.

usb 1-1: SerialNumber: 00

scsi 0:0:0:0: Direct-Access     SAMSUNG  HM160HI          HH10 PQ: 0 ANSI: 0

sd 0:0:0:0: [sda] 312581808 512-byte hardware sectors: (160 GB/149 GiB)

sd 0:0:0:0: [sda] Write Protect is off

sd 0:0:0:0: [sda] Assuming drive cache: write through

sd 0:0:0:0: [sda] 312581808 512-byte hardware sectors: (160 GB/149 GiB)

sd 0:0:0:0: [sda] Write Protect is off

sd 0:0:0:0: [sda] Assuming drive cache: write through

sda: sda1 sda2 sda3 sda4sd 0:0:0:0: [sda] Attached SCSI disk

sd 0:0:0:0: Attached scsi generic sg0 type 0

FAT: utf8 is not a recommended IO charset for FAT filesystems, filesystem will be case sensitive!

表示硬件挂在 /dev/sda上,有四个分区 sda1/sda2/sda3/sda4

2.检查硬盘分区

查看硬盘的分区

fdisk -l /dev/sda #如果busybox没编译此命令可以如下命令

cat /proc/partitions

有如下提示

cat /proc/partitions

major minor  #blocks  name

31        0        512 mtdblock0

31        1       5120 mtdblock1

31        2     256512 mtdblock2

8        0  156290904 sda

8        1   39319056 sda1

8        2   39319087 sda2

8        3   39319087 sda3

8        4   38331090 sda4

3.挂载相应分区

mkdir -p /media/mdisk

这里无法采用mount来挂载,只能使用ntfs-3g来挂载。

假设libntfs-3g.so库在 /mnt/nfs/output/arm-linux/lib 之下.用ntfs-3g命令执行

export LD_LIBRARY_PATH=/mnt/nfs/output/arm-linux/lib

./ntfs-3g /dev/sda2 /media/mdisk

为了与桌面版的命令兼容,可以使用ln将ntfs-3g链接成桌面版的mount.ntfs命令

ln -s ntfs-3g mount.ntfs-3g

如果出现如下提示,表示fuse.ko未安装

modprobe: module 'fuse' not found

Did not find any restart pages in $LogFile and it was not empty.

The file system wasn't safely closed on Windows. Fixing.

ntfs-3g-mount: fuse device is missing, try 'modprobe fuse' as root

4.中文文件名显示与操作.

四.热插拨的改进

待续

arm linux 识别新硬盘_嵌入式Linux 的NTFS移动硬盘支持相关推荐

  1. arm linux 识别新硬盘_嵌入式Linux系列第13篇:USB摄像头拍照

    1.引言 本篇介绍USB摄像头的使用,实现的功能是通过摄像头进行拍照,生成jpg格式图片. 2.环境介绍 2.1.硬件 1) NUC972开发板 2) USB摄像头 2.2.软件 1) Uboot继续 ...

  2. linux系统无法识别固态硬盘_重装Linux操作系统为什么识别不了硬盘

    近日朋友拿了台联想小新本子,靓丽的外观,轻薄的机体,价格也很有吸引力.无奈只有Win10系统,朋友欲采用普华Linux桌面系统来提供业务支撑,而因常规方法无法识别SSD固态硬盘,未能加载Linux系统 ...

  3. 嵌入式linux python移植过程_嵌入式linux项目开发(一)——BOA移植

    嵌入式linux项目开发(一)--BOA移植 项目目标:使用BOA.CGIC.SQLite搭建嵌入式web服务器 一.嵌入式web服务器BOA简介 在嵌入式设备的管理与交互中,基于Web方式的应用成为 ...

  4. linux java usb 串口_嵌入式linux usb-ftdi串口读取问题

    我有一个运行嵌入式Linux的基于TI Cortex的Pengwyn板,我试图用来从USB-ftdi外设读取原始串行数据,因此我可以将其处理成数据包 . 为此,我编写了一个简单的程序(使用Qt)和te ...

  5. arm linux 识别新硬盘_Arm发布首款64位实时处理器CortexR82

    EETOP专注芯片.微电子,点击上方蓝字关注我们 Arm以其在移动设备中的Cortex系列处理器而闻名,然而主流Cortex-A系列CPU并不是该公司唯一提供的CPU,Arm还提供了用于高性能实时应用 ...

  6. linux pwm 调屏_嵌入式Linux系统基于PWM机制的液晶屏背光Backlight功能配置

    在研发嵌入式产品时,往往会用到LCD(液晶屏)来显示图形界面,而液晶屏的显示亮度则需要背光系统去调节. 调光方法: 1.数字调光,又称波宽控制调光(Pulse Width Modulation,简称P ...

  7. linux挂载新硬盘,开机自动挂载

    http://blog.chinaunix.net/uid-7411781-id-2056205.html linux挂载新硬盘,开机自动挂载 Linux的硬盘识别: 2.6 kernel以后,lin ...

  8. linux加新的硬盘,linux添加新硬盘

    1.添加新磁盘 2.fdisk -l查看磁盘被识别的名称 3.如果输入fdisk -l命令没有找到新的磁盘,按下面步骤操作 1)进入到cd /sys/class/scsi_host/ 2)echo & ...

  9. Linux添加新硬盘和扩容已有硬盘

    Linux添加新硬盘 用 fdisk -l 查看下: 图中可以看出 /dev/sdb 是500G,新加的硬盘. 接下来我用命令 fdisk sdb 进行分区,输入 p 查看新硬盘分区,如图: 可以用m ...

最新文章

  1. Android 手机卫士--9patch图
  2. 个人空间风格模版php,home.php这个页面风格模板在哪里修改?答案:space_home.html...
  3. Flowable 数据库表结构 ACT_HI_IDENTITYLINK
  4. AssetManager asset的使用
  5. WCF技术剖析之十七:消息(Message)详解(上篇)
  6. Ansible 入门:安装 简例 playbook应用
  7. 浅谈App-V(附:参考资料)
  8. 计算机考试考什么二级,计算机国家二级考试会考什么内容?怎么考?
  9. 工程图字体宋体仿宋_Windows自带的宋体、黑体、楷体、仿宋体等能免费商用吗?...
  10. ADAS工程师的成长之路——ACC法规(ISO 15622-2018 — Adaptive cruise control systems)
  11. 辩证统一和有机统一的比较
  12. 使用usb串口线作为console
  13. 前端实现Thing.js 3D模型展示Demo
  14. 生产排程系统_高级计划与排程的基本概念
  15. 用endnote x9在Word 2016中插入参考文献到特定位置
  16. python中的计时模块:time.time()
  17. 常用正则表达式及其规则
  18. Vue的三种路由模式
  19. 7个最佳实践,告诉你企业如何实施云安全监控
  20. 计算机无法连接移动硬盘,win7电脑连接移动硬盘后没反应怎么解决?win7电脑连接移动硬盘后没反应解决方法...

热门文章

  1. python云计算好学吗_没有基础,可以学云计算专业吗,学起来是不是很难,?
  2. PubMed文献影响因子怎么显示保姆教程
  3. MT6735A和MT6753 前摄无法点亮
  4. html5我的心灵小屋,描写我的小屋优美句子
  5. android开发设置Button背景颜色
  6. Opserver 初探三《服务器数据监控》
  7. 作为一名大学生,为什么会直接选择IT培训?IT培训有什么好处?
  8. MPT——cost function推导过程
  9. ll -h和du -sh的区别
  10. 如何使用 Diago 诊断 Go 程序中的 CPU 和内存使用情况