Linux驱动之挂接U盘

当我们做实际项目开发式,有时候我不可能把很大的数据直接放在flash上,很多时候多事放在U盘或者SD卡,这里我们讲解怎么让Linux系统支持挂机U盘。

这个U盘代码Linux内核是自带的,我们直接编译,具体怎么编译请接着往下看。

在内核根目录下执行make menuconfig命令,然后:

方法一:直接编译进内核

      Device Drivers  --->    

  [*] USB support  --->            
  

 
<*>   USB Mass Storage support    /* 这样选择是直接编译进内核 */

不用拷贝了,驱动已经在内核里面了。

插上U盘,将打印如下信息:

在/dev目录下面就会多出两个设备节点,分别为/dev/sda   /dev/sda1

sda是指U盘,sda1是指U盘的一个分区,然后我们执行mount /dev/sda1  /mnt     命令,这里我们就可以在/mnt目录下面看到U盘中的内容了

方法二:直接编译成模块

      Device Drivers  --->    

  [*] USB support  --->               

  <M>   USB Mass Storage support    /* 这样选择是直接编译成模块 */

拷贝drivers/usb/storage/usb-storage.ko  到开发板的某个目录下面,这里我们举例为/tmp 目录。

然后 cd /tmp进入tmp目录,执行insmod usb-storage.ko 命令将打印如下信息:

其他的和方法一一样,就这样我们就能够使用U盘了,挂在SD卡在下篇文章中讲解。

时间: 2025-01-20 19:56:47

Linux驱动之挂接U盘的相关文章

Linux驱动之挂在SD卡

      讲解之前我得说一下,现在有一个新的技术在公司已经在用了,远远比你在学校学的东西要先进一点,我们烧写u-boot程序一般是在flash上,然后由flash中的程序来引导linux内核,但是flash成本远远比SD卡要高,现在公司很多都用SD卡来代替flash,这个具体怎么实现,还得自己去学习,我目前也不是很熟悉这个新的技术,就不写出来了,等我熟悉以后再写出来分享吧. Linux中对S3C2440 SD驱动已经支持的非常好.为了让FL2440支持2G以上的SD卡,只需要完成几个步骤即可.

linux驱动

知识结构: 1.    Linux驱动程序设计模式(40%)2.内核相关知识(30%)3. 硬件相关知识(30%)z 驱动分类:字符,网络,块 字符设备:以字节为最小单位,不可以乱序读写. 块设备: 一次传送一个整体数据(512字节),Linux可以以字节访问块设备(仅仅是驱动与内核的接口不同,访问的顺序的不同(字符只可顺序访问,块驱动可随机访问))   网络接口:硬件(eth0),纯软件(lo) 驱动的安装:模块,编译进内核(Linux启动的时候会自动加载init段) 使用驱动程序:字符设备文

linux驱动学习(八) i2c驱动架构(史上最全) davinc dm368 i2c驱动分析【转】

转自:http://blog.csdn.net/ghostyu/article/details/8094049 版权声明:本文为博主原创文章,未经博主允许不得转载. 目录(?)[-] 预备知识 linux设备驱动到底复杂在什么地方 linux驱动中 i2c驱动架构 架构层次分类 具体分析 i2c_driver i2c_client i2c_adapter i2c_algorithm 梳理图 ov2715设备i2c驱动源码分析 预备知识 在阅读本文最好先熟悉一种i2c设备的驱动程序,并且浏览一下i

linux驱动-Linux驱动结构体中probe函数的参数怎么得到?

问题描述 Linux驱动结构体中probe函数的参数怎么得到? 解决方案 他既然都写了那在驱动文件里面应该会有这个函数啊,这种敦泰的TP驱动在SDK里面能找到好几个吧 解决方案二: static int ft5x_ts_probe(struct i2c_client *client const struct i2c_device_id *id) 函数原型是这个,我疑问的是原函数的这两个参数怎么确定的?{...

linux驱动加载后能找到设备,但是/dev下不能找到设备文件

问题描述 linux驱动加载后能找到设备,但是/dev下不能找到设备文件 linux驱动加载后能找到设备,但是/dev下不能找到设备文件,我用的是动态分配设备号,insmod也能通过,但是/dev下就是找不到设备文件,加载后也不能通过测试程序我基本上直接用的板子例程,静态动态我都试了,就是不行,日志文件里面也什么都没有,板子是2410的,主机是红帽的,希望大神能够指点迷津/*****************************************Copyright (c)********

【ARM】Linux驱动移植

1驱动模块移植过程 1模块的第一种编译方法改kconfig 2模块的第二种编译方法Makefile 2Linux驱动原理 0从哪里切入 1什么是注册 2register_chrdev提交哪些数据 21设备号为什么是231 22设备名随便给 23文件操作结构体怎么设置 什么是THIS_MODULE Opencloseread这些都好理解 3register_chrdev返回什么 31 简洁而高效的goto 32 还记得什么是三目运算符吗 33 返回0表示什么 34 什么情况下返回cd-major

Linux驱动之虚拟网卡

写网卡驱动之前我总结一下个人的一些观点:其实写驱动并不是大家想想的那么难,这里我客观评价一下内核层和应用层的区别: 底层: 工作在内核层的朋友应该有这种感觉,才开始学的时候真的很难,也就是说上手难,我就拿Linux驱动来说吧,写一个完整的驱动,你得装一个虚拟机跑Linux吧,用来编译驱动程序,虚拟机里面需要安装一些库和工具,驱动程序必须跑在一个完整的系统上,所以首先你得搭建好整个系统,你还得了解硬件时序等,这些东西对新手来说真的是够头痛了,但是你会发现你真正的成为一个驱动开发人员后你就有一种豁然

linux内核 访问外设-Linux驱动中访问外设端口的outb为什么不是访问内存空间

问题描述 Linux驱动中访问外设端口的outb为什么不是访问内存空间 原文如下面,其中第一个宏的意思不是把值v赋给了内存地址为a的内存空间吗,为什么是访问outb是往外设端口写数据的? 在linux的驱动程序中,都会使用大量的outb.outw.inb.inw等等宏来访问硬件或寄存器.这些宏的定义都在相应处理器体系下的include/asm目录下的io.h中定义.追究下去,这些宏最终就是一个volatile变量的的赋值: #define arch_putb(v,a) (*(volatile u

win8 映射到虚拟盘到 linux下samba设置的共享盘,为什么虚拟盘的大小会变动,而且变小??

问题描述 win8 映射到虚拟盘到 linux下samba设置的共享盘,为什么虚拟盘的大小会变动,而且变小?? win8 映射到虚拟盘到 linux下samba设置的共享盘,为什么虚拟盘的大小会变动,而且变小?? 解决方案 不知道变动大小是多少 很有可能是计量单位不同,df -h 和 df -H 分别是按1000和1024计算的 解决方案二: 文件大小计算不同OS会有一些区别.