ubuntu linux3.16 USB驱动 学习及实践

boot权限下操作。

1、查看内核源码是否有USB

一般在/use/src/linux-?.?/drives/usb 下,应包含storage文件夹及usb-skeleten.c

没有的话版本升级 

查看版本uname -a



2、查看文件usb-skeleten.c或vi 修改

找到

usb_register_dev 注册  在usb_driver结构体中,skel_probe中用了该函数。

usb_dergister_dev 注销 在usb_driver结构体中,在usb_disconnect实现了该函数。



3、在注册函数和中注销函数中 做标志

如printk("hello");   成功后可用cat /var/log/kern.log命令查看


4、进入storage 修改 makefile 空格都是tab键

ifneq ($(KERNELRELEASE),)
obj-m := xxx.o
else
KERNELDIR ?= /lib/modules/$(shell uname -r)/build
PWD := $(shell pwd)
default:
$(MAKE) -C $(KERNELDIR) M=$(PWD) modules
endif
clean:
rm -rf *.mod.* *.o *.ko .*.ko.* .tmp* .*.mod.o.* .*.o.*

5、将修改好的usb-skeleten.c文件与makefile文件一起放在storage 文件夹下

运行命令make 


make成功

6、到 /lib/modules/3.16.0/kernel/drivers/usb/storage 下执行rmmod usb-storage 卸载原usb驱动(U盘等设备应拔出)

将usb-storage.ko改名usb-storage.ko.bak 避免自动加载

将刚才编译的usb-skeleton.ko文件复制到该文件夹下,执行insmod usb-skeleton.ko完成驱动安装

7、插入U盘 执行cat /var/log/kern.log即可查看



以上基本完成。

也可以自建usb.c文件实现该功能


参考http://www.redflag-linux.com/product/emb/resource/1000000825.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值