当前位置:  技术问答>linux和unix

问个2.6.12 kernel的usb keyboard的问题

    来源: 互联网  发布时间:2016-06-17

    本文导语:  是这样,我静态编译了2.6.12的kernel,让它支持usb keyboard在我们自己的板子上。 下面是devices的信息: # more devices I: Bus=0003 Vendor=0a81 Product=0101 Version=0110 N: Name="CHESEN USB Keyboard" P: Phys=usb-ohci-1/input0 H: Handlers=event1 ...

是这样,我静态编译了2.6.12的kernel,让它支持usb keyboard在我们自己的板子上。
下面是devices的信息:
# more devices
I: Bus=0003 Vendor=0a81 Product=0101 Version=0110
N: Name="CHESEN USB Keyboard"
P: Phys=usb-ohci-1/input0
H: Handlers=event1 evbug 
B: EV=120003 
B: KEY=7 ff87207a c14057ff febeffdf ffefffff ffffffff fffffffe 
B: LED=1f 

我在编译的时候没有选择VT,如果选择上,那么H: Handlers=kbd event0 evbug (我加入了event debug信息)

这个时侯,我阅读/dev/input/event0,是可以读到东西的。
# hexdump /dev/input/event0
0000000 43af 386d bd09 0007 0001 0023 0001 0000
0000010 43af 386d bd5e 0007 0000 0000 0000 0000
0000020 43af 386d b100 0009 0001 0023 0000 0000
0000030 43af 386d b14f 0009 0000 0000 0000 0000
0000040 43b0 386d c7c8 0000 0001 0021 0001 0000
0000050 43b0 386d c81f 0000 0000 0000 0000 0000
0000060 43b0 386d fa3c 0002 0001 0021 0000 0000
0000070 43b0 386d fa8a 0002 0000 0000 0000 0000

在我不停掉这个hexdump,然后拔掉usb keyboard,这个时侯打印:
hexdump: /dev/input/event0: No such device
0000080
----------------------------------------------------
这样证明usb keyboard的驱动,open,read都正常了。于是我写了一个简单的程序来读取input_event。

while(1)
{
while(read(fd,&buff,sizeof(struct input_event))==0)
{
;
}
printf("type:%d code:%d value:%dn",buff.type,buff.code,buff.value); 


打印正常:
type:1 code:46 value:1
type:1 code:33 value:1
type:0 code:0 value:0
type:1 code:46 value:0
type:0 code:0 value:0
type:1 code:33 value:0
type:0 code:0 value:0
这个时侯,我在不停掉该程序的情况下,拔掉keyboard,于是这段程序不停地打印:
type:0 code:0 value:0
type:0 code:0 value:0
type:0 code:0 value:0
type:0 code:0 value:0
type:0 code:0 value:0
type:0 code:0 value:0
type:0 code:0 value:0
type:0 code:0 value:0
type:0 code:0 value:0

我想知道,当我拔掉keyboard的时候,如何让内核知道usb keyboard已经被拔掉了?
是不是我应该使用hotplug的脚本进行rmmod?
谢谢!

|
我想知道,当我拔掉keyboard的时候,如何让内核知道usb keyboard已经被拔掉了? 

我想usb子系统和input子系统会自动将该usb驱动和input驱动给卸载的,而且/dev/input/event0也会被udev给自动删除了的

|
你用的那个驱动已经编译到内核中了,
不能用rmmod卸载的。
除非你是把它编译成了模块。

当你拔掉keyboard的时候,内核会知道的,
因为找不到设备了,驱动程序会检测到。

    
 
 

您可能感兴趣的文章:

  • kernel升级问题,初学,大家指教。
  • 一个Kernel panic的问题怎么解决?
  • linux kernel启动中,网络加载问题
  • 2440 kernel 初级问题,大家指教。
  • kernel跳转到task的地址问题
  • !!!请教关于linux Kernel panic启动问题
  • linux kernel 2.6.28 启动问题
  • bootloader 向kernel传送参数问题
  • 有关Kernel问题
  • 请教kernel启动时的一个问题
  • kernel链接文件问题
  • 【菜鸟问题】linux kernel 如何加打印?
  • kernel 2.6中alsa的问题
  • linux应用层调用kernel接口函数问题。
  • kernel启动的时候logo进度条显示的问题~~
  • 关于kernel内,大容量内存申请问题
  • linux-2.4.32.tar.bz2 这个Kernel下载以后一个问题。
  • 关于kernel和用户进程内存映射,进行读写问题
  • kernel panic, internal error: oops,遇到这类问题该怎么解决?
  • 引导KERNEL,启动LINUX遇到问题
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • java命名空间java.awt.image类kernel的类成员方法: kernel定义及介绍
  • lock_kernel unlock_kernel编译不通过
  • java命名空间java.awt.image类kernel的类成员方法: getheight定义及介绍
  • linux-3ES-13.9.5安装oracle10g时更改/etc/sysctl.conf没有kernel.shmmax,kernel.shmmni
  • java命名空间java.awt.image类kernel的类成员方法: getwidth定义及介绍
  • ▲求助:kernel panic:No init found.try passing init=option to kernel.
  • java命名空间java.awt.image类kernel的类成员方法: getkerneldata定义及介绍
  • kernel too old , kernel panic原因
  • java命名空间java.awt.image类kernel的类成员方法: getyorigin定义及介绍
  • 区分uboot和kernel的宏
  • java命名空间java.awt.image类kernel的类成员方法: clone定义及介绍
  • 关于www.kernel.org结构
  • Linux Kernel 'sctp_v6_xmit()'函数信息泄露漏洞
  • __kernel_vsyscall 是什么?
  • CentOS 6.5 下载地址及如何升级内核(kernel)版本到 3.10.28
  • 急!怎么没有/usr/src/kernel目录啊?
  • Uncompressing Linux... done, booting the kernel
  • Come in please! About the kernel.3X
  • [救命]安装Ubuntu 时的Kernel Panic - not syncing 错误~
  • 关于kernel解压!!!!
  • 如何Update redhat linux 9 kernel


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3