1. 程式人生 > >開發板移植MT7601網絡卡

開發板移植MT7601網絡卡

grep “***” * -nR
掛載nfsmount -t nfs -o nolock 192.168.1.141:/home/aston/x210rootfs /opt
wifi專案移植
1 開發環境搭建,
1)ubuntu14.04
2)核心原始碼樹
3)開發板提供的官方linux+qt4.8映象
4)nfs伺服器和資料夾形式的rootfs
5)網絡卡的驅動原始碼
6)網絡卡硬體,插入後輸入lsusb 檢視網絡卡的VID和PID
Bus 001 Device 003:ID 148f:7601
2更改驅動原始碼樹
1)檢視USB DEVICE ID rtusb dev id[]產品的VID和PID和這個結構體中的是否匹配
2)更改Makefile 選擇對應的platform,更改核心原始碼樹路徑和CROSS_COMPILE路徑
和SUBDIRS, 修改os/linux/目錄下config.mk檔案,新增對應的PLATFORM
3)修改網絡卡名稱 include/rtmp_def.h 一般是rax或者wlanx
4)新增wpa_supplicant支援
確保config.mk檔案中WPA_SUPPLICANT-y
5) make編譯生成驅動模組
6)在/os/linux下生成了mt7601usta.ko檔案
3 驅動程式碼分析
1)分析驅動先從入口入手,查詢moudle_init
2)裝置和驅動進行匹配通過.name或者dev_id[]裡面的內容
3 wifi網絡卡配置
1)ubuntu14將mt7601usta.ko拷貝到開發板系統,進行insmod 通過ifconfig -a檢視所有網絡卡
2)iwconfig用來管理無線網絡卡,busybox中有整合進去,現在基本不用了
3)wpa——supplicant無線網絡卡管理配置工具
安裝wpa_supplicant
1 下載對應的wpa_supplicant和opensell,這裡選擇的是wpa_supplicant_2.5和openssl_0.9.8za
2 安裝補丁,openssl需要用到wpa_supplicant裡面的panch,拷貝他到openssl的根目錄,執行patch -pl < penssl-0.9.8za-tls-extensions.patch
3 更改makefile,主要是交叉編譯工具鏈
1、需要建立配置檔案/etc/Wireless/RT2870STA/RT2870STA.dat,在原始碼的根目錄就有
2、更改/etc/wpa_supplicant.conf //wpa_supplicant配置檔案

ctrl_interface=/var/run/wpa_supplicant
	network={
	   ney_mgmt=WPQ-PSK//加密方式
	   ssid=""//網路名稱
	   psk=“”//密碼
	   }
3、測試ra0之前一定要先關閉eth0,否則預設都是使用eth0
ifconfig ra0 up //開啟網絡卡
wpa_supplicant -B -c /etc/wpa_supplicant.conf -i ra0 //連線無線網
wpa_cli -i ra0 status      //檢視網路連線狀態
ifconfig ra0 192.168.1.200 //手動配置ip地址
route add default gw 192.168.1.1 dev ra0 //配置閘道器或者更改/etc/network/interfaces方法更改配合檔案
vi /etc/resolv.conf  //配置dns
nameserver 192.168.1.1

4、用interface去配置閘道器、ip和DNS
insmod mt7601usta.ko
拷貝/etc/wireless/RT2870STA/RT2870STA.dat
配置/etc/wpa_supplicant.conf
   ney_mgmt=WPQ-PSK
   ssid=""
ifconfig ra0 up //開啟網絡卡
wpa_supplicant -B -c /etc/wap_supplicant.conf -i ra0 //連線無線網
wpa_cli -i ra0 status      //檢視網路連線狀態
配置ip地址
方法1 用udhcpc busybox中整合的命令
命令udhcpc -i ra0
方法2 配置/etc/network/interface 檔案(配置IP地址和閘道器)
配置DNS  vi /etc/resolv.conf  //配置dns
nameserver 192.168.1.1

通過nfs方式掛載根檔案系統
1、在make_menuconfig中配置網路部分,主要是使能CONFIG_IP_PNP以在2中能夠看到Root file system on NFS選項
Networking support
Networking options
TCP/IP networking
IP: kernel level autoconfiguration
[] IP: DHCP support
[
] IP: BOOTP support

2、配置開啟nfs服務
File systems —>
Network File Systems —>
<*> NFS client support

	[*] NFS client support for NFS version 3        y                         [*] NFS client support for the NFSv3 ACL protocol extension 
	[*] NFS client support for NFS version 4 (EXPERIMENTAL) 
	[*] NFS client support for NFSv4.1 (DEVELOPER ONLY) 
	[*] Root file system on NFS  

3、在uboot中設定如下啟動引數(IP根據實際使用更改)
setenv bootargs root=/dev/nfs nfsroot=192.168.1.141:/rootfs/rootfs ip=192.168.1.20:192.168.1.141:192.168.1.1:255.255.255.0::eth0:off init=/linuxrc console=ttySAC2,115200
set bootcmd ‘tftp 30008000 zImage; bootm 30008000’

根檔案系統下移植無線網絡卡:
1 下載解壓縮wap_supplicant
2 defconfig改名成.config
3 更改makefile gcc改成arm-linux-gcc,編譯的時候提示需要openssl
4安裝移植openssl,也是需要更改makefile,編譯提示man手冊安裝有問題,刪除makeinstall裡面的doc,
5 wap_supplicatn的makefile中gcc新增-L和openssl的lib目錄
CFLAGS+=-l/include
LIBS+=-Lopenssl安裝目錄/lib
更改.config檔案中CONFIG_DRIVER_NL80211,註釋掉
編譯後生成wap_supplicant和wpa_cli,然後拷貝到根檔案系統裡面的usr/bin目錄
6拷貝RT2870STA.dat檔案和/etc/wpa_supplicant.conf,