版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、在Linux安裝USB無線網(wǎng)卡ProposalBackground動(dòng)機(jī)l有一張?zhí)柗Q援助Linux的USB無線網(wǎng)卡l雖然有附驅(qū)動(dòng)程式但總是不能勝利編譯l網(wǎng)路上有搜尋到幾種修正driver的方法但有待驗(yàn)證USB無線網(wǎng)卡lPLANEX GW-US54GZL IEEE802.11g USB2.0 攜帶型無線網(wǎng)路卡lplanex.tw/product/soho/wireless/gw-us54gzl.html運(yùn)用ZD1211晶片lzydas.tw/product/ZD1211.aspl援助kernel 2.4.x與2.6.xZD1211晶片Block Diagram選用哪個(gè)driver好呢?l驅(qū)動(dòng)程式來
2、源lFrom Planex (planex.tw)lplanex.tw/download/wireless/gw-us54gzl.htmlDriver version : 2.4.0.0lFrom ZyDas (zydas.tw)lzydas.tw/downloads/download-1211.asplDriver version : 2.8.0.0l由於ZyDas公司提供的driver比較新,所以就選用它了沒有kernel source怎麼辦? devel即可ZyDas的driverl第一步:當(dāng)然是把它的tarball給解開啦l第二步:必須要修正它的Makefile,將kernel sou
3、rce的位址寫上去l第三步:make 與 make install !l它含有兩個(gè)晶片的driver:zd1211與zd1211b。運(yùn)用make ZD1211REV_B=0就只會(huì)編譯zd1211l但是在hotplug時(shí)似乎不會(huì)自動(dòng)載入,必須手動(dòng)modprobeZD1211的driver載入l modprobe v zd1211l lsmodlModule Size Used bylzd1211 263504 0l tail /var/log/messagesDebug工具l附有兩個(gè)debug工具lapdbglmenudbgl安裝方法l make debug目標(biāo)l將USB無線網(wǎng)卡在Linux上勝
4、利安裝運(yùn)作lhotplugl了解USB無線網(wǎng)卡在Linux的driver架構(gòu)lsrc/zdusb.c在Linux安裝USB無線網(wǎng)卡Final Projecthotplug問題出在哪?l由於網(wǎng)路上有人埋怨運(yùn)用此晶片的廠商與產(chǎn)品太多,driver常來不及更新l因此假設(shè)問題出在Vendor ID與Device ID獲得USB裝置的根本資料 (1/2)lUSB裝置在連接到電腦時(shí), /var/log/messages 會(huì)有訊息提示,如下lusb 4-3: new high speed USB device using ehci_hcd and address 9 lehci_hcd : USB 2.0
5、Enhanced Host Controllerl4 : bus numberl9 : device number獲得USB裝置的根本資料 (2/2)lUSB裝置在連接到電腦後,資訊會(huì)更新在 /proc/bus/usb/devices 這個(gè)檔案lT: Bus=04 Lev=01 Prnt=01 Port=02 Cnt=01 Dev#= 9 Spd=480 MxCh= 0lD: Ver= 2.00 Cls=ff(vend.) Sub=ff Prot=ff MxPS=64 #Cfgs= 1lP: Vendor=2019 ProdID=c007 Rev=47.21lS: Manufacturer=P
6、LANEXlS: Product=PLANEX GW-US54GZLlC:* #Ifs= 1 Cfg#= 1 Atr=80 MxPwr=500mAlI: If#= 0 Alt= 0 #EPs= 4 Cls=ff(vend.) Sub=00 Prot=00 Driver=zd1211lE: Ad=01(O) Atr=02(Bulk) MxPS= 512 Ivl=0mslE: Ad=82(I) Atr=02(Bulk) MxPS= 512 Ivl=0mslE: Ad=83(I) Atr=03(Int.) MxPS= 64 Ivl=125uslE: Ad=04(O) Atr=03(Int.) MxP
7、S= 64 Ivl=125usHotPlug修復(fù) zdusb.c (1/3)static struct usb_device_id zd1211_ids = (省略) USB_DEVICE(VENDOR_3COM, PRODUCT_A727) , USB_DEVICE(0 x2019, 0 xc007) , /參與這項(xiàng) USB_DEVICE(0 x2019, 0 xc008) ,(省略)HotPlug修復(fù) zdusb.c (2/3)l將zdusb.c修正完成後重新編譯出模組l測(cè)試結(jié)果HotPlug修復(fù) zdusb.c (3/3)rootTony # tail -17 /var/log/mess
8、ageskernel: usb 4-3: new high speed USB device using ehci_hcd and address 11kernel: usb 4-3: configuration #1 chosen from 1 choicekernel:kernel: _ _ _ _kernel: |_ / _| _ / / _|kernel: / / | | | | | |/ _ _ kernel: / /| |_| | |_| / _ _) |kernel: /_, |_/_/ _/kernel: |_/kernel: zd1211 - version 2.8.0.0k
9、ernel: Release Ver = 4721kernel: EEPORM Ver = 4330kernel: PA type: 0kernel: AiroHa AL2230RFkernel: AllowedChannel = 000107ffkernel: Region:48kernel: usbcore: registered new driver zd1211無線網(wǎng)卡運(yùn)作情形 (1/2)rootTony # ifconfig eth2eth2Link encap:Ethernet HWaddr 00:90:CC:CC:CE:84inet addr:192.168.1.50 Bcast
10、:192.168.1.255 Mask:255.255.255.0inet6 addr: fe80:290:ccff:fecc:ce84/64 Scope:LinkUP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1RX packets:6 errors:0 dropped:0 overruns:0 frame:0TX packets:2 errors:0 dropped:0 overruns:0 carrier:0collisions:0 txqueuelen:1000RX bytes:491 (491.0 b) TX bytes:458 (458
11、.0 b)無線網(wǎng)卡運(yùn)作情形 (2/2)rootTony # iwconfig eth2 essid CD0rootTony # iwconfig eth2eth2802.11b/g NIC ESSID:CD0Mode:Managed Frequency=2.462 GHz Access Point: 00:80:C8:37:BF:77Bit Rate:11 Mb/sRetry:off RTS thr=2432 B Fragment thr:offEncryption key:offPower Management:offLink Quality:75/100 Signal level:72/1
12、00 Noise level:7/100Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0Tx excessive retries:261 Invalid misc:3 Missed beacon:0usbnet.c/drivers/usb/net/usbnet.cAuthor : David BrownellUSB Network Driver Frameworkusbnet.c (1/13)lint usbnet_get_endpoints(struct usbnet *dev, struct usb_interface *intf
13、)l判斷endpointl方向(bEndpointAddress) (in/out)l種類(bmAttributes) (USB_ENDPOINT_XFER_INT/BULK)usbnet.c (2/13)lstatic int init_status (struct usbnet *dev, struct usb_interface *intf)l初始化l讀取並設(shè)定設(shè)定最大封包、速度l包含kmalloclvoid usbnet_skb_return (struct usbnet *dev, struct sk_buff *skb)l收到封包後更新統(tǒng)計(jì)資料usbnet.c (3/13)lsta
14、tic void defer_bh(struct usbnet *dev, struct sk_buff *skb, struct sk_buff_head *list)lDelaying (spinlock)lvoid usbnet_defer_kevent (struct usbnet *dev, int work)lDelaying (kevent)usbnet.c (4/13)lstatic int usbnet_change_mtu (struct net_device *net, int new_mtu)l改變MTUlstatic struct net_device_stats *
15、usbnet_get_stats (struct net_device *net)l回傳usbnet結(jié)構(gòu)中stat部分usbnet.c (5/13)lstatic void rx_submit (struct usbnet *dev, struct urb *urb, gfp_t flags)l準(zhǔn)備urb(USB Request Block)l運(yùn)用usb_submit_urb()將bulk urb送出至USB core或掛到queue尾端lstatic void rx_complete (struct urb *urb, struct pt_regs *regs)l根據(jù)urb結(jié)構(gòu)的status
16、變數(shù)得知狀態(tài)並做各種處理,最後用rx_submit()將urb送出usbnet.c (6/13)lstatic int unlink_urbs (struct usbnet *dev, struct sk_buff_head *q)l運(yùn)用usb_unlink_urb()lstatic int usbnet_stop (struct net_device *net)lusbnet結(jié)束時(shí)的處理l運(yùn)用remove_wait_queue()與usb_kill_urb()將urb清乾淨(jìng)usbnet.c (7/13)lstatic int usbnet_open (struct net_device *n
17、et)lusbnet的開啟與初始lvoid usbnet_get_drvinfo (struct net_device *net, struct ethtool_drvinfo *info)lmodinfousbnet.c (8/13)lstatic void kevent (void *data)l判斷usbnet結(jié)構(gòu)的flag得到狀態(tài)l對(duì)以下event狀態(tài)進(jìn)行動(dòng)作l#define EVENT_TX_HALT0l#define EVENT_RX_HALT 1l#define EVENT_RX_MEMORY2l#define EVENT_LINK_RESET4usbnet.c (9/13)ls
18、tatic void tx_complete (struct urb *urb, struct pt_regs *regs)l根據(jù)urb結(jié)構(gòu)status變數(shù)得狀態(tài)並做各種處理l沒有將urb送出lstatic int usbnet_start_xmit (struct sk_buff *skb, struct net_device *net)lusb_fill_bulk_urb()準(zhǔn)備bulk urblusb_submit_urb()送出urbusbnet.c (10/13)lInt usbnet_probe (struct usb_interface *udev, const struct usb_device_id *prod)l呼叫usbnet_get_endpoints()進(jìn)行初始動(dòng)作lusb_set_intfdata()儲(chǔ)存data pointerlnetif_device_attach()usbnet.c (11/13)lvoid usbnet_disconnect (struct usb_interface *intf)lusb_get_intfdata()查閱資料lusb_set_intfdata()將device部份設(shè)為NULLlunregister_netdev()usbnet.c (12/13)lint usbnet_
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 渣土購買及環(huán)保處理服務(wù)2025年度合同3篇
- 二零二五年度荒料銷售與風(fēng)險(xiǎn)管理合同3篇
- 二零二五版房地產(chǎn)租賃合同增加補(bǔ)充協(xié)議范本3篇
- 二零二五年度餐飲公司環(huán)保設(shè)施投資合作合同范本3篇
- 二零二五版本二手房買賣合同含房屋相鄰權(quán)及公共設(shè)施使用協(xié)議2篇
- 二零二五版中小學(xué)教師派遣及教學(xué)資源整合合同3篇
- 二零二五年度文化產(chǎn)業(yè)園區(qū)場(chǎng)地使用權(quán)買賣合同范例3篇
- 基于2025年度的環(huán)保服務(wù)合同2篇
- 二零二五版企業(yè)股權(quán)激勵(lì)方案評(píng)估與優(yōu)化合同3篇
- 個(gè)人出版作品稿酬合同(2024版)3篇
- 蘇北四市(徐州、宿遷、淮安、連云港)2025屆高三第一次調(diào)研考試(一模)語文試卷(含答案)
- 第7課《中華民族一家親》(第一課時(shí))(說課稿)2024-2025學(xué)年統(tǒng)編版道德與法治五年級(jí)上冊(cè)
- 2024年醫(yī)銷售藥銷售工作總結(jié)
- 急診科十大護(hù)理課件
- 山東省濟(jì)寧市2023-2024學(xué)年高一上學(xué)期1月期末物理試題(解析版)
- GB/T 44888-2024政務(wù)服務(wù)大廳智能化建設(shè)指南
- 2025年上半年河南鄭州滎陽市招聘第二批政務(wù)輔助人員211人筆試重點(diǎn)基礎(chǔ)提升(共500題)附帶答案詳解
- 山東省濟(jì)南市歷城區(qū)2024-2025學(xué)年七年級(jí)上學(xué)期期末數(shù)學(xué)模擬試題(無答案)
- 國(guó)家重點(diǎn)風(fēng)景名勝區(qū)登山健身步道建設(shè)項(xiàng)目可行性研究報(bào)告
- 投資計(jì)劃書模板計(jì)劃方案
- 《接觸網(wǎng)施工》課件 3.4.2 隧道內(nèi)腕臂安裝
評(píng)論
0/150
提交評(píng)論