分类: LINUX
2011-05-16 16:26:46
Contents[hide]
|
This How-To is meant to be a starting point for people to learn setup the wifi on IGEP v2 devices as quickly and easily as possible.
Feedback and ContributingAt any point, if you see a mistake you can contribute to this How-To.
Setup basicsSDIO card should be showed after the image is downloaded to the board.
mmc1: new SDIO card at address 0001The firmware binaries sd8686_helper.bin and sd8686.bin should be in /lib/firmware directory.
NOTE: It appears that the helper file is named differently in newer versions of the firmware (helper_sd.bin). I renamed it to "sd8686_helper.bin". Also, the following command assumes that you have compiled the libertas driver as a module. If you use the "igep0020_defconfig" during kernel compilation, you will want to menuconfig and make libertas a module instead of a built in kernel.
To make the SDIO WIFI module work load the libertas_sdio module
# modprobe libertas_sdio libertas_sdio: Libertas SDIO driver libertas_sdio: Copyright Pierre Ossman libertas_sdio mmc1:0001:1: firmware: requesting sd8686_helper.bin libertas_sdio mmc1:0001:1: firmware: requesting sd8686.bin libertas: 00:13:e0:c3:0c:3c, fw 9.70.3p24, cap 0x00000303 libertas: unidentified region code; using the default (USA) libertas: PREP_CMD: command 0x00a3 failed: 2 libertas: PREP_CMD: command 0x00a3 failed: 2 libertas: eth1: Marvell WLAN 802.11 adapterNOTE: I did not see any of the above output when I modprobe'd libertas_sdio on a 2.6.35-rc6 kernel.
Now you can connect this wifi module to an AP. First of all, you'll check if your devices is detected.
# iwconfig eth1 IEEE 802.11b/g ESSID:"" Mode:Managed Frequency:2.412 GHz Access Point: Not-Associated Bit Rate:0 kb/s Tx-Power=18 dBm Retry short limit:8 RTS thr=2347 B Fragment thr=2346 B Encryption key:off Power Management:off Link Quality:0 Signal level:0 Noise level:0 Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0 Tx excessive retries:0 Invalid misc:0 Missed beacon:0Next, you will set up the interface
# ifconfig eth1 up eth1 Link encap:Ethernet HWaddr 00:13:E0:C3:0C:3C UP BROADCAST MULTICAST MTU:1500 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)and you can scan for an AP
# iwlist eth1 scan Cell 04 - Address: 00:18:84:81:46:E2 ESSID:"MyPlace" Mode:Managed Frequency:2.427 GHz (Channel 4) Quality=100/100 Signal level=-39 dBm Noise level=-96 dBm Encryption key:off Bit Rates:1 Mb/s; 2 Mb/s; 5.5 Mb/s; 6 Mb/s; 9 Mb/s 11 Mb/s; 12 Mb/s; 18 Mb/s; 24 Mb/s; 36 Mb/s 48 Mb/s; 54 Mb/sNow, is time to associate to your AP
# iwconfig eth1 txpower auto essid MyPlace channel 4 eth1 IEEE 802.11b/g ESSID:"MyPlace" Mode:Managed Frequency:2.427 GHz Access Point: 00:18:84:81:46:E2 Bit Rate:0 kb/s Tx-Power=13 dBm Retry short limit:8 RTS thr=2347 B Fragment thr=2346 B Encryption key:off Power Management:off Link Quality=97/100 Signal level=-43 dBm Noise level=-94 dBm Rx invalid nwid:0 Rx invalid crypt:3109 Rx invalid frag:0 Tx excessive retries:13 Invalid misc:3315 Missed beacon:0and get and ip address
# udhcpc -i eth1 udhcpc (v1.9.1) started Sending discover... Sending select for 192.168.10.216... Lease of 192.168.10.216 obtained, lease time 43200 adding dns 192.168.10.1Last, you can test the network interface.
# ping -c 1 192.168.10.1 PING 192.168.10.1 (192.168.10.1): 56 data bytes 64 bytes from 192.168.10.1: seq=0 ttl=64 time=16.327 ms --- 192.168.10.1 ping statistics --- 1 packets transmitted, 1 packets received, 0% packet loss round-trip min/avg/max = 16.327/16.327/16.327 ms How to debug the libertas driverFrom:
To enable debug on the wireless (libertas) driver you may write to the libertas_debug '/sys' file:
echo LBS_DEBUG_FLAGS > /sys/module/libertas/parameters/libertas_debugYou can calculate the value for LBS_DEBUG_FLAGS using the table bellow (just add up the values for the flags you want to activate).
Debug Flag Name | Flag Hex value | Description(*) |
---|---|---|
LBS_DEB_ENTER | 0x00000001 | function entrance |
LBS_DEB_LEAVE | 0x00000002 | function exit |
LBS_DEB_MAIN | 0x00000004 | main libertas library code |
LBS_DEB_NET | 0x00000008 | interaction with network subsystem |
LBS_DEB_MESH | 0x00000010 | wireless mesh network |
LBS_DEB_WEXT | 0x00000020 | interaction with wireless extensions |
LBS_DEB_IOCTL | 0x00000040 | misc IOCTLs |
LBS_DEB_SCAN | 0x00000080 | scanning for APs |
LBS_DEB_ASSOC | 0x00000100 | associating ton an AP |
LBS_DEB_JOIN | 0x00000200 | joining an IBSS? |
LBS_DEB_11D | 0x00000400 | 802.11d country settings |
LBS_DEB_DEBUGFS | 0x00000800 | interaction with the debugfs subsystem |
LBS_DEB_ETHTOOL | 0x00001000 | interaction with ethtool subsystem |
LBS_DEB_HOST | 0x00002000 | communication between host and wlan chip |
LBS_DEB_CMD | 0x00004000 | command and response processing |
LBS_DEB_RX | 0x00008000 | packet reception |
LBS_DEB_TX | 0x00010000 | packet transmission |
LBS_DEB_USB | 0x00020000 | interaction with USB subsystem |
LBS_DEB_CS | 0x00040000 | interaction with card services subsystem |
LBS_DEB_FW | 0x00080000 | firmware downloading |
LBS_DEB_THREAD | 0x00100000 | main libertas worker thread |
LBS_DEB_HEX | 0x00200000 | turn on detailed hex dumps |
LBS_DEB_SDIO | 0x00400000 | interaction with SDIO subsystem |
(*) Description taken from (by Holger Schurig) |
Example:
To activate scanning (LBS_DEB_SCAN), associating (LBS_DEB_ASSOC), command (LBS_DEB_CMD) and host (LBS_DEB_HOST):
The output will be post to the kernel ring buffer. You can display it with the dmesg command:
dmesgYou can also use the lbsdebug tool, from Holger Shurig, git tree available .
How to get WIFI active upon system start (using a WPA2 access-point)Tested configuration:
Basically you have to create/modify two files:
Here are the details.
To create /etc/wpa_supplicant.conf do:
Now add the following lines at the end of this file:
proto=WPA2 key_mgmt=WPA-PSK pairwise=CCMPThen modify /etc/network/interfaces
Change the line
auto eth0 into #auto eth0Add the next lines (replace eth2 by your wifi interface):
iface eth2 inet dhcp wpa-conf /etc/wpa_supplicant.confTo check if your /etc/wpa_supplicant.conf file is correct you can type
wpa_supplicant -ieth2 -c/etc/wpa_supplicant.conf -d(come from )http://huangjianming31.blog.163.com/blog/static/34740871201082682735715/