亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? linux_usb_driver.txt

?? 基于LINUX操作系統下的各種詳細配置(如FTP
?? TXT
?? 第 1 頁 / 共 2 頁
字號:

下面是具體看到的信息 


T: Bus=02 Lev=00 Prnt=00 Port=00 Cnt=00 Dev#= 1 Spd=12 MxCh= 2 
B: Alloc= 11/900 us ( 1%), #Int= 1, #Iso= 0 
D: Ver= 1.00 Cls=09(hub ) Sub=00 Prot=00 MxPS= 8 #Cfgs= 1 
P: Vendor=0000 ProdID=0000 Rev= 0.00 
S: Product=USB UHCI Root Hub 
S: SerialNumber=d800 
C:* #Ifs= 1 Cfg#= 1 Atr=40 MxPwr= 0mA 
I: If#= 0 Alt= 0 #EPs= 1 Cls=09(hub ) Sub=00 Prot=00 Driver=hub 
E: Ad=81(I) Atr=03(Int.) MxPS= 8 Ivl=255ms 
T: Bus=02 Lev=01 Prnt=01 Port=01 Cnt=01 Dev#= 3 Spd=12 MxCh= 3 
D: Ver= 1.10 Cls=09(hub ) Sub=00 Prot=00 MxPS= 8 #Cfgs= 1 
P: Vendor=07e4 ProdID=9473 Rev= 0.02 
S: Manufacturer=ALCOR 
S: Product=Movado USB Keyboard 
C:* #Ifs= 1 Cfg#= 1 Atr=e0 MxPwr=100mA 
I: If#= 0 Alt= 0 #EPs= 1 Cls=09(hub ) Sub=00 Prot=00 Driver=hub 
E: Ad=81(I) Atr=03(Int.) MxPS= 1 Ivl=255ms 



找到相應的信息后就可開始工作了。實際上,飛梭的定義和鍵盤鍵碼通常是一樣的,所以我們參照drivers/usb/usbkbd..c代碼進行一些改動就可以了。因為沒能拿到相應的硬件USB協議,我無從知道飛梭在按下時通訊協議眾到底發什么,我只能把它的信息打出來進行分析。幸好,它比較簡單,在下面代碼的usb_kbd_irq函數中if(kbd->new[0] == (char)0x01)和if(((kbd->new[1]>>4)&0x0f)!=0x7)就是判斷飛梭左旋。usb_kbd_irq函數就是鍵盤中斷響應函數。他的掛接,就是在usb_kbd_probe函數中 
FILL_INT_URB(&kbd->irq, dev, pipe, kbd->new, maxp > 8 ? 8 : maxp, 
usb_kbd_irq, kbd, endpoint->bInterval); 



一句中實現。 

從usb骨架中我們知道,usb_kbd_probe函數就是在USB設備被系統發現是運行的。其他部分就都不是關鍵了。你可以根據具體的探測值(Vendor=07e4 ProdID=9473等)進行一些修改就可以了。值得一提的是,在鍵盤中斷中,我們的做法是收到USB飛梭消息后,把它模擬成左方向鍵和右方向鍵,在這里,就看你想怎么去響應它了。當然你也可以響應模擬成F14、F15等擴展鍵碼。 

在了解了此基本的驅動后,對于一個你已經拿到通訊協議的鍵盤所帶手寫板,你就應該能進行相應驅動的開發了吧。



附一個鍵盤飛梭的源碼

使用此驅動要注意的問題:在加載此驅動時你必須先把hid設備卸載,加載完usbhkey.o模塊后再加載hid.o。因為若hid存在,它的probe會屏蔽系統去利用我們的驅動發現我們的設備。其實,飛梭本來就是一個hid設備,正確的方法,或許你應該修改hid的probe函數,然后把我們的驅動融入其中。 


鍵盤飛梭驅動 


#include <linux/kernel.h> 
#include <linux/slab.h> 
#include <linux/module.h> 
#include <linux/input.h> 
#include <linux/init.h> 
#include <linux/usb.h> 
#include <linux/kbd_ll.h> 

/* 
* Version Information 
*/ 
#define DRIVER_VERSION "" 
#define DRIVER_AUTHOR "TGE HOTKEY " 
#define DRIVER_DESC "USB HID Tge hotkey driver" 

#define USB_HOTKEY_VENDOR_ID 0x07e4 
#define USB_HOTKEY_PRODUCT_ID 0x9473 
//廠商和產品ID信息就是/proc/bus/usb/devices中看到的值 

MODULE_AUTHOR( DRIVER_AUTHOR ); 
MODULE_DESCRIPTION( DRIVER_DESC ); 

struct usb_kbd { 
struct input_dev dev; 
struct usb_device *usbdev; 
unsigned char new[8]; 
unsigned char old[8]; 
struct urb irq, led; 
// devrequest dr; 
//這一行和下一行的區別在于kernel2.4.20版本對usb_kbd鍵盤結構定義發生了變化 
struct usb_ctrlrequest dr; 
unsigned char leds, newleds; 
char name[128]; 
int open; 
}; 
//此結構來自內核中drivers/usb/usbkbd..c 

static void usb_kbd_irq(struct urb *urb) 
{ 
struct usb_kbd *kbd = urb->context; 
int *new; 
new = (int *) kbd->new; 

if(kbd->new[0] == (char)0x01) 
{ 
if(((kbd->new[1]>>4)&0x0f)!=0x7) 
{ 
handle_scancode(0xe0,1); 
handle_scancode(0x4b,1); 
handle_scancode(0xe0,0); 
handle_scancode(0x4b,0); 
} 
else 
{ 
handle_scancode(0xe0,1); 
handle_scancode(0x4d,1); 
handle_scancode(0xe0,0); 
handle_scancode(0x4d,0); 
} 
} 


printk("new=%x %x %x %x %x %x %x %x", 
kbd->new[0],kbd->new[1],kbd->new[2],kbd->new[3], 
kbd->new[4],kbd->new[5],kbd->new[6],kbd->new[7]); 

} 

static void *usb_kbd_probe(struct usb_device *dev, unsigned int ifnum, 
const struct usb_device_id *id) 
{ 
struct usb_interface *iface; 
struct usb_interface_descriptor *interface; 
struct usb_endpoint_descriptor *endpoint; 
struct usb_kbd *kbd; 
int pipe, maxp; 

iface = &dev->actconfig->interface[ifnum]; 
interface = &iface->altsetting[iface->act_altsetting]; 

if ((dev->descriptor.idVendor != USB_HOTKEY_VENDOR_ID) || 
(dev->descriptor.idProduct != USB_HOTKEY_PRODUCT_ID) || 
(ifnum != 1)) 
{ 
return NULL; 
} 
if (dev->actconfig->bNumInterfaces != 2) 
{ 
return NULL; 
} 

if (interface->bNumEndpoints != 1) return NULL; 

endpoint = interface->endpoint + 0; 

pipe = usb_rcvintpipe(dev, endpoint->bEndpointAddress); 
maxp = usb_maxpacket(dev, pipe, usb_pipeout(pipe)); 

usb_set_protocol(dev, interface->bInterfaceNumber, 0); 
usb_set_idle(dev, interface->bInterfaceNumber, 0, 0); 

printk(KERN_INFO "GUO: Vid = %.4x, Pid = %.4x, Device = %.2x, ifnum = %.2x, bufCount = %.8x\\n", 
dev->descriptor.idVendor,dev->descriptor.idProduct,dev->descriptor.bcdDevice, ifnum, maxp); 

if (!(kbd = kmalloc(sizeof(struct usb_kbd), GFP_KERNEL))) return NULL; 
memset(kbd, 0, sizeof(struct usb_kbd)); 

kbd->usbdev = dev; 

FILL_INT_URB(&kbd->irq, dev, pipe, kbd->new, maxp > 8 ? 8 : maxp, 
usb_kbd_irq, kbd, endpoint->bInterval); 

kbd->irq.dev = kbd->usbdev; 

if (dev->descriptor.iManufacturer) 
usb_string(dev, dev->descriptor.iManufacturer, kbd->name, 63); 

if (usb_submit_urb(&kbd->irq)) { 
kfree(kbd); 
return NULL; 
} 

printk(KERN_INFO "input%d: %s on usb%d:%d.%d\\n", 
kbd->dev.number, kbd->name, dev->bus->busnum, dev->devnum, ifnum); 

return kbd; 
} 

static void usb_kbd_disconnect(struct usb_device *dev, void *ptr) 
{ 
struct usb_kbd *kbd = ptr; 
usb_unlink_urb(&kbd->irq); 
kfree(kbd); 

} 

static struct usb_device_id usb_kbd_id_table [] = { 
{ USB_DEVICE(USB_HOTKEY_VENDOR_ID, USB_HOTKEY_PRODUCT_ID) }, 
{ } /* Terminating entry */ 
}; 

MODULE_DEVICE_TABLE (usb, usb_kbd_id_table); 

static struct usb_driver usb_kbd_driver = { 
name: "Hotkey", 
probe: usb_kbd_probe, 
disconnect: usb_kbd_disconnect, 
id_table: usb_kbd_id_table, 
NULL, 
}; 

static int __init usb_kbd_init(void) 
{ 
usb_register(&usb_kbd_driver); 
info(DRIVER_VERSION ":" DRIVER_DESC); 
return 0; 
} 

static void __exit usb_kbd_exit(void) 
{ 
usb_deregister(&usb_kbd_driver); 
} 

module_init(usb_kbd_init); 
module_exit(usb_kbd_exit);

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
一区视频在线播放| 99vv1com这只有精品| 国产精品影视在线| 欧洲一区在线观看| 久久精品一区二区三区不卡牛牛| 亚洲视频在线一区| 国内精品视频666| 欧美在线短视频| 国产精品欧美久久久久无广告| 日韩综合一区二区| 日本高清不卡在线观看| 国产亚洲综合在线| 奇米精品一区二区三区四区| 91视频免费播放| 国产欧美一区二区精品性色 | 一本色道久久综合狠狠躁的推荐| 日韩欧美国产1| 香蕉久久夜色精品国产使用方法 | 日本一区二区三级电影在线观看| 美女mm1313爽爽久久久蜜臀| 欧美日韩成人在线一区| 亚洲精品日韩综合观看成人91| 风间由美一区二区三区在线观看| 亚洲精品一区二区在线观看| 秋霞电影网一区二区| 欧美日韩一级片网站| 亚洲另类色综合网站| 97精品久久久久中文字幕| 中文字幕不卡在线观看| 成人免费观看av| 国产欧美日韩三级| 成人一区二区三区在线观看| 国产欧美日韩一区二区三区在线观看| 精品写真视频在线观看| 精品剧情在线观看| 国产最新精品免费| 久久久久久一级片| 成人永久看片免费视频天堂| 中文字幕av免费专区久久| www.日韩精品| 亚洲男人的天堂在线aⅴ视频| 99久久精品99国产精品| 亚洲欧美视频一区| 欧美系列日韩一区| 午夜精品久久一牛影视| 欧美一二三四在线| 国产一区欧美一区| 国产欧美日韩三级| 色婷婷综合久久久中文字幕| 亚洲在线免费播放| 91精品国产综合久久福利软件| 热久久免费视频| 精品国产免费人成在线观看| 成人午夜电影久久影院| 亚洲视频一区二区在线| 欧美久久久影院| 韩国女主播一区| 国产精品久久久爽爽爽麻豆色哟哟 | 一区二区三区免费观看| 欧美精品一二三| 狠狠色丁香久久婷婷综合_中| 国产日韩欧美精品电影三级在线| 9色porny自拍视频一区二区| 一区二区三区免费网站| 精品日韩欧美一区二区| 国产成人综合精品三级| 亚洲精品亚洲人成人网| 日韩欧美一区在线观看| 处破女av一区二区| 亚洲高清免费一级二级三级| 精品电影一区二区| 欧洲亚洲国产日韩| 国产一区美女在线| 亚洲美女屁股眼交| 久久这里只精品最新地址| 99精品欧美一区二区蜜桃免费| 天天操天天干天天综合网| 欧美国产一区二区| 91精品国产欧美一区二区成人| 成人高清视频免费观看| 日韩高清一级片| 亚洲人快播电影网| 久久精品一区八戒影视| 正在播放亚洲一区| 97精品国产97久久久久久久久久久久 | 免费一级片91| 亚洲精品大片www| 精品99999| 欧美三级在线播放| 99riav一区二区三区| 精品一区二区三区影院在线午夜| 夜色激情一区二区| 欧美韩国日本不卡| 欧美v亚洲v综合ⅴ国产v| 欧洲亚洲国产日韩| caoporn国产一区二区| 久久99热这里只有精品| 亚洲成人av一区二区| 亚洲人成电影网站色mp4| 国产视频一区二区在线观看| 日韩午夜电影av| 欧洲亚洲国产日韩| 91久久精品国产91性色tv| 丁香一区二区三区| 国产91精品露脸国语对白| 日本网站在线观看一区二区三区| 亚洲综合一区二区精品导航| 亚洲精品欧美激情| 亚洲欧美怡红院| 国产精品久久久久婷婷二区次| 欧美精品一区二| 日韩视频免费观看高清完整版 | 一区二区三区四区在线播放| 国产午夜三级一区二区三| 精品国产一区二区三区忘忧草| 91 com成人网| 日韩亚洲电影在线| 日韩一区二区三区电影| 91精品国产91久久综合桃花| 欧美嫩在线观看| 欧美一级片在线观看| 日韩一级成人av| 欧美一区二区三区精品| 日韩一区二区三区在线观看| 欧美v国产在线一区二区三区| 日韩天堂在线观看| 2019国产精品| 欧美激情一区二区| 亚洲欧美电影院| 亚洲激情图片一区| 婷婷中文字幕一区三区| 全国精品久久少妇| 狠狠色狠狠色合久久伊人| 粉嫩高潮美女一区二区三区| 99久久综合色| 91视视频在线直接观看在线看网页在线看 | 日韩av网站在线观看| 久久国产成人午夜av影院| 国产美女视频91| 91免费看片在线观看| 在线中文字幕一区| 欧美一区二区三区色| 久久久久久一二三区| 一区二区三区在线观看动漫| 午夜精品久久久久久久99水蜜桃| 久久se精品一区精品二区| 国产91精品欧美| 91久久人澡人人添人人爽欧美| 另类专区欧美蜜桃臀第一页| 国产黄色精品网站| 色欧美88888久久久久久影院| 欧美精品自拍偷拍| 中文字幕精品综合| 亚洲成人www| 国产不卡在线一区| 在线精品视频一区二区三四| 精品国产1区二区| 亚洲另类色综合网站| 国产一区美女在线| 欧美撒尿777hd撒尿| 久久这里只有精品视频网| 亚洲一区二区三区四区在线免费观看| 麻豆成人久久精品二区三区红| 99久久婷婷国产综合精品| 日韩一区和二区| 夜夜嗨av一区二区三区| 国产精品123| 日韩一区二区在线看片| 亚洲精品中文字幕乱码三区| 国产制服丝袜一区| 欧美日本一区二区在线观看| 国产精品网曝门| 久久超碰97人人做人人爱| 色悠悠亚洲一区二区| 久久久99精品免费观看| 天堂一区二区在线| 一本色道久久加勒比精品| 欧美精品一区二区三| 午夜精品福利在线| 91亚洲国产成人精品一区二区三 | 麻豆高清免费国产一区| 一本大道久久a久久精品综合| 久久女同互慰一区二区三区| 亚洲动漫第一页| 9人人澡人人爽人人精品| 国产亚洲精品福利| 久久国产尿小便嘘嘘尿| 91精品婷婷国产综合久久竹菊| 亚洲视频一区二区在线| proumb性欧美在线观看| 国产网站一区二区| 国产一区二区免费在线| 日韩精品最新网址| 欧美性猛交xxxxxx富婆| 中文字幕在线免费不卡| 成人av电影免费在线播放| 国产精品伦理一区二区| 成人18视频日本| 国产精品―色哟哟| 成人激情免费网站|