在Linux安装USB无线网卡教学课件_第1页
在Linux安装USB无线网卡教学课件_第2页
在Linux安装USB无线网卡教学课件_第3页
在Linux安装USB无线网卡教学课件_第4页
在Linux安装USB无线网卡教学课件_第5页
已阅读5页,还剩30页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、在Linux安裝USB無線網卡ProposalBackground動機有一張號稱支援Linux的USB無線網卡雖然有附驅動程式但總是不能成功編譯網路上有搜尋到幾種修改driver的方法但有待驗證USB無線網卡PLANEX GW-US54GZL IEEE802.11g USB2.0 攜帶型無線網路卡.tw/product/soho/wireless/gw-us54gzl.htm使用ZD1211晶片.tw/product/ZD1211.asp支援kernel 2.4.x與2.6.xZD1211晶片Block Diagram選用哪個driver好呢?驅動程式來源From Planex (http:/

2、.tw).tw/download/wireless/gw-us54gzl.htmDriver version : From ZyDas (http:/.tw).tw/downloads/download-1211.aspDriver version : 由於ZyDas公司提供的driver比較新,所以就選用它了沒有kernel source怎麼辦?http:/linux/RPM/安裝kernel devel即可ZyDas的driver第一步:當然是把它的tarball給解開啦第二步:必須要修改它的Makefile,將kernel source的位址寫上去第三步:make 與 make inst

3、all !它含有兩個晶片的driver:zd1211與zd1211b。使用make ZD1211REV_B=0就只會編譯zd1211但是在hotplug時似乎不會自動載入,必須手動modprobeZD1211的driver載入 modprobe v zd1211 lsmodModule Size Used byzd1211 263504 0 tail /var/log/messagesDebug工具附有兩個debug工具apdbgmenudbg安裝方法 make debug目標將USB無線網卡在Linux上成功安裝運作hotplug了解USB無線網卡在Linux的driver架構src/zdu

4、sb.c在Linux安裝USB無線網卡Final Projecthotplug問題出在哪?由於網路上有人抱怨使用此晶片的廠商與產品太多,driver常來不及更新因此假設問題出在Vendor ID與Device ID取得USB裝置的基本資料 (1/2)USB裝置在連接到電腦時, /var/log/messages 會有訊息提示,如下usb 4-3: new high speed USB device using ehci_hcd and address 9 ehci_hcd : USB 2.0 Enhanced Host Controller4 : bus number9 : device nu

5、mber取得USB裝置的基本資料 (2/2)USB裝置在連接到電腦後,資訊會更新在 /proc/bus/usb/devices 這個檔案T: Bus=04 Lev=01 Prnt=01 Port=02 Cnt=01 Dev#= 9 Spd=480 MxCh= 0D: Ver= 2.00 Cls=ff(vend.) Sub=ff Prot=ff MxPS=64 #Cfgs= 1P: Vendor=2019 ProdID=c007 Rev=47.21S: Manufacturer=PLANEXS: Product=PLANEX GW-US54GZLC:* #Ifs= 1 Cfg#= 1 Atr=8

6、0 MxPwr=500mAI: If#= 0 Alt= 0 #EPs= 4 Cls=ff(vend.) Sub=00 Prot=00 Driver=zd1211E: Ad=01(O) Atr=02(Bulk) MxPS= 512 Ivl=0msE: Ad=82(I) Atr=02(Bulk) MxPS= 512 Ivl=0msE: Ad=83(I) Atr=03(Int.) MxPS= 64 Ivl=125usE: Ad=04(O) Atr=03(Int.) MxPS= 64 Ivl=125usHotPlug修復 zdusb.c (1/3)static struct usb_device_id

7、 zd1211_ids = (省略) USB_DEVICE(VENDOR_3COM, PRODUCT_A727) , USB_DEVICE(0 x2019, 0 xc007) , /加入這項 USB_DEVICE(0 x2019, 0 xc008) ,(省略)HotPlug修復 zdusb.c (2/3)將zdusb.c修改完成後重新編譯出模組測試結果成功!HotPlug修復 zdusb.c (3/3)rootTony # tail -17 /var/log/messageskernel: usb 4-3: new high speed USB device using ehci_hcd an

8、d address 11kernel: usb 4-3: configuration #1 chosen from 1 choicekernel:kernel: _ _ _ _kernel: |_ / _| _ / / _|kernel: / / | | | | | |/ _ _ kernel: / /| |_| | |_| / _ _) |kernel: /_, |_/_/ _/kernel: |_/kernel: zd1211 - version kernel: Release Ver = 4721kernel: EEPORM Ver = 4330kernel: PA type: 0ker

9、nel: AiroHa AL2230RFkernel: AllowedChannel = 000107ffkernel: Region:48kernel: usbcore: registered new driver zd1211無線網卡運作情形 (1/2)rootTony # ifconfig eth2eth2Link encap:Ethernet HWaddr 00:90:CC:CC:CE:84inet addr:0 Bcast:55 Mask:inet6 addr: fe80:290:ccff:fecc:ce84/64 Scope:LinkUP BROADCAST RUNNING MUL

10、TICAST 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.0 b)無線網卡運作情形 (2/2)rootTony # iwconfig eth2 essid CD0rootTony # iwconfig eth2eth2802.11b/g NIC ESSID:CD0Mo

11、de: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/100 Noise level:7/100Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0Tx excessive retries:261 Invalid

12、 misc:3 Missed beacon:0usbnet.c/drivers/usb/net/usbnet.cAuthor : David BrownellUSB Network Driver Frameworkusbnet.c (1/13)int usbnet_get_endpoints(struct usbnet *dev, struct usb_interface *intf)判斷endpoint方向(bEndpointAddress) (in/out)種類(bmAttributes) (USB_ENDPOINT_XFER_INT/BULK)usbnet.c (2/13)static

13、int init_status (struct usbnet *dev, struct usb_interface *intf)初始化讀取並設定設定最大封包、速度包含kmallocvoid usbnet_skb_return (struct usbnet *dev, struct sk_buff *skb)收到封包後更新統計資料usbnet.c (3/13)static void defer_bh(struct usbnet *dev, struct sk_buff *skb, struct sk_buff_head *list)Delaying (spinlock)void usbnet_d

14、efer_kevent (struct usbnet *dev, int work)Delaying (kevent)usbnet.c (4/13)static int usbnet_change_mtu (struct net_device *net, int new_mtu)改變MTUstatic struct net_device_stats *usbnet_get_stats (struct net_device *net)回傳usbnet結構中stat部分usbnet.c (5/13)static void rx_submit (struct usbnet *dev, struct

15、urb *urb, gfp_t flags)準備urb(USB Request Block)使用usb_submit_urb()將bulk urb送出至USB core或掛到queue尾端static void rx_complete (struct urb *urb, struct pt_regs *regs)根據urb結構的status變數得知狀態並做各種處理,最後用rx_submit()將urb送出usbnet.c (6/13)static int unlink_urbs (struct usbnet *dev, struct sk_buff_head *q)使用usb_unlink_u

16、rb()static int usbnet_stop (struct net_device *net)usbnet結束時的處理使用remove_wait_queue()與usb_kill_urb()將urb清乾淨usbnet.c (7/13)static int usbnet_open (struct net_device *net)usbnet的開啟與初始void usbnet_get_drvinfo (struct net_device *net, struct ethtool_drvinfo *info)modinfousbnet.c (8/13)static void kevent (

17、void *data)判斷usbnet結構的flag得到狀態對以下event狀態進行動作#define EVENT_TX_HALT0#define EVENT_RX_HALT1#define EVENT_RX_MEMORY2#define EVENT_LINK_RESET4usbnet.c (9/13)static void tx_complete (struct urb *urb, struct pt_regs *regs)根據urb結構status變數得狀態並做各種處理沒有將urb送出static int usbnet_start_xmit (struct sk_buff *skb, st

18、ruct net_device *net)usb_fill_bulk_urb()準備bulk urbusb_submit_urb()送出urbusbnet.c (10/13)Int usbnet_probe (struct usb_interface *udev, const struct usb_device_id *prod)呼叫usbnet_get_endpoints()進行初始動作usb_set_intfdata()儲存data pointernetif_device_attach()usbnet.c (11/13)void usbnet_disconnect (struct usb_interface *intf)usb_get_intfdata()查閱資料usb_set_intfdata()將device部份設為NULLunregister_netdev()usbnet.c (12/13)int us

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论