1. 程式人生 > >讓Android 裝置通過USB 轉RJ45有線網絡卡上網

讓Android 裝置通過USB 轉RJ45有線網絡卡上網

一、下載驅動

網絡卡採用USB 2.0轉乙太網控制晶片AX88772B, android 2.3 和4.0下的通用網絡卡驅動不支援這款晶片, 需要從網上下載最新的linux 下AX88772B驅動

二、將下載的驅動原始碼編譯進kernel image.

下載的驅動解包後有6個檔案, readme檔案是release note , 裡面有revision history和 make 方法, 可以簡單看一下.

Makefile檔案告訴我們生成的最終檔案是asix.o, 其它4個檔案asix.c, asix.h,axusbnet.c,axusbnet.h就是我們需要的原始碼檔案了.

進入你的kernel 目錄, 你會發現/drivers/net/usb裡已經有asix.c 檔案, 你可以用下載的asix.c 直接替換這個檔案, 也可以將原始的asix.c 改名成asix_ori.c.

將asix.c, asix.h,axusbnet.c,axusbnet.h全部放入/drivers/net/usb 目錄, 不需要做任何修改,直接在終端執行make -j2.

如果不能生asix.o, 你需要檢查你的config 檔案裡下面幾個flag 是否有設定

#
# USB Network Adapters
#
CONFIG_USB_PEGASUS=y
CONFIG_USB_USBNET=y
CONFIG_USB_NET_AX8817X=y
CONFIG_USB_NET_CDCETHER=y
CONFIG_USB_NET_CDC_NCM=y
CONFIG_USB_NET_DM9601=y
CONFIG_USB_NET_NET1080=y
CONFIG_USB_NET_CDC_SUBSET=y
CONFIG_USB_BELKIN=y
CONFIG_USB_ARMLINUX=y
CONFIG_USB_NET_ZAURUS=y

三、配置dhcp 和dns

燒入新生成的kernel image, 這時你的裝置還不能通過瀏覽器訪問internet, 需要配置dhcp 和dns.

開啟adb, 輸入下面兩條命令

netcfg eth0 dhcp
setprop net.dns1 8.8.8.8

最後用busybox ifconfig 檢查一下設定是否生效.

如果在eth0 裡能看到系統分配的IP 地址, 說明一切設定OK了.