Linux 3.6 配置S3C2416支持模拟U盘
来源:互联网 发布:知乎论坛网站彭加木 编辑:程序博客网 时间:2024/04/25 18:29
环境:PC: debian-7.6.0ARM CPU: S3c2416Linux: 3.6.0busybox: busybox-1.20.2
最终目的是:ARM采集数据,按日期写到某个文件夹中,完了通过USB线缆连接PC,把数据拷到PC。
实现流程如下:
1、配置内核,使其支持虚拟U盘
2、配置busybox,使mount命令支持loopback(busybox默认支持该功能,为保无虞,查看哈)
3、制作U盘文件系统镜像文件
4、烧写到开发板,进行测试
1、配置Linux 3.6.0内核使其支持虚拟U盘
注:在Linux 3.6.0版本中,虚拟U盘的实现不再是使用g_file_storage.ko模块,而是g_mass_storage.ko模块。
如果加载g_file_storage.ko模块的话,会有以下提示:
NOTE: This driver is deprecated. Consider using g_mass_storage instead.
警告信息来源:drivers/usb/gadget/file_storage.c的int __init fsg_bind(struct usb_gadget *gadget)函数。
修改内核相关文件:drivers/usb/gadget/file_storage.c
/* Use this for bulk or interrupt transfers, not ep0 */static void start_transfer(struct fsg_dev *fsg, struct usb_ep *ep,struct usb_request *req, int *pbusy,enum fsg_buffer_state *state){intrc;udelay(800); /* add here */........}
mod_data = {// Default values.transport_parm= "BBB",.protocol_parm= "SCSI",/* .removable= 0, *//* .can_stall= 1, */.removable= 1,.can_stall= 0,.cdrom= 0,.vendor= FSG_VENDOR_ID,.product= FSG_PRODUCT_ID,.release= 0xffff,// Use controller chip type.buflen= 16384,};
2、配置busybox
编译好之后,替换原文件系统的相关文件
3、制作U盘文件系统镜像文件
dd if=/dev/zero of=udisk32M.img bs=1k count=32768mkfs.vfat udisk32M.img</span>将该文件制作到文件系统中,或者系统启动后复制到文件系统
4、烧写到开发板,进行测试
文件存放位置:
g_mass_storage.ko:/lib/modules/
udisk32M.img:/home/
加载模块:
insmod /lib/modules/g_<span style="font-family: 'Courier New'; font-size: 16px; line-height: 24px;">mass</span>_storage.ko file=/home/udisk32M.img stall=0 removable=1挂载U盘:
mount -o loop /home/udisk32M.img /tmp此命令有个前提:在/dev目录下存在/dev/loop节点,否则需要创建(mknod /dev/loop b 7 0)
数据测试:
1)S3C2416到PC机:
cp /home/test.file /tmp
用USB线连接ARM到PC机,在PC机上显示我们的U盘,打开它可以看到test.file文件,查看里面的数据
2)PC机到S3C2416:
复制文件到U盘,在ARM板上重新挂载:
umount /tmp
mount -o loop /home/udisk32M.img /tmp
即可看到从PC机写入的文件
0 0
- Linux 3.6 配置S3C2416支持模拟U盘
- S3C2416支持DM9000驱动(Linux)
- S3C2416支持DM9000驱动(Linux)
- 配置内核支持U盘
- u-boot在s3c2416上的移植(10)--支持串口xmodem协议
- 让Linux下U盘支持中文
- OK2440开发板 ------linux-2.6.12内核配置支持U盘,SD卡
- s3c2416 U-Boot移植笔记
- linux 开发板(Linux USB Gadget) 模拟u盘
- linux 开发板(Linux USB Gadget) 模拟u盘
- 第24章 配置开发板支持 u 盘
- 内核支持U盘
- 模拟U盘
- s3c2416 u-boot增加LCD驱动
- s3c2416 u-boot增加LCD驱动(二)
- 【转】Linux支持U盘的一些内核选项
- Linux支持U盘的一些内核选项
- ARM-Linux支持并自动挂载U盘
- 研究一下午滑动边栏效果
- Android设置SurfaceView任意大小和任意位置
- Windows系统使用INI配置文件
- C# FTPClient--FTP操作帮助类,上传下载,文件,目录操作
- perl 把源目录下的文件拷贝到目标目录(带路径)
- Linux 3.6 配置S3C2416支持模拟U盘
- nginx性能改进一例
- D. Do it Right!(2014-2015 ACM-ICPC, NEERC, Moscow Subregional Contest )
- android 自定义textview属性配置
- iOS静态库的编译
- 常用默认端口号
- 第十二周项目1阅读全局变量
- LeetCode——Longest Common Prefix
- logj配置详解