開發板移植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,