| d7d5e93 by Kalle Valo at 2008-09-22 |
1 |
stlc45xx README |
|
2 |
Kalle Valo <kalle.valo@nokia.com> |
|
3 |
|
|
4 |
---------------------------------------------------------------------- |
|
5 |
This is stlc45xx, a mac80211 driver for stlc4550 and stlc4560 WLAN |
|
6 |
chips used, for example, in Nokia N800 and N810. This is very much |
|
7 |
work in progress and contains a lot of bugs. |
|
8 |
|
|
9 |
---------------------------------------------------------------------- |
|
10 |
|
|
11 |
1. Getting linux-omap tree |
|
12 |
|
|
13 |
* Clone latest linux-omap tree: |
|
14 |
|
|
15 |
$ git clone git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap-2.6.git |
|
16 |
|
|
17 |
2. Kernel configuration |
|
18 |
|
|
19 |
$ make n800_defconfig |
|
20 |
|
|
21 |
Also enable mac80211 with 'make menuconfig'. |
|
22 |
|
|
23 |
3. Compiling |
|
24 |
|
|
25 |
* Compile kernel: |
|
26 |
|
|
27 |
$ make |
|
28 |
|
|
29 |
* Compile stlc45xx: |
|
30 |
$ make KERNEL_SRC_DIR=../linux-omap-2.6 |
|
31 |
|
|
32 |
* Before flashing kernel to device, you should disable three daemons |
|
33 |
Nokia-N810$> update-rc.d -f dsp-init remove |
|
34 |
Nokia-N810$> update-rc.d -f multimediad remove |
|
35 |
Nokia-N810$> update-rc.d -f esd remove |
|
36 |
|
|
37 |
* Enable necessary R&D flags: |
|
38 |
|
|
39 |
$ flasher --set-rd-flags=no-omap-wd,no-retu-wd,no-lifeguard-reset |
|
40 |
|
|
41 |
* Flash kernel: |
|
42 |
|
|
43 |
$ flasher -k arch/arm/boot/zImage -f |
|
44 |
|
|
45 |
4. Setting up usb-network |
|
46 |
|
|
47 |
* Reboot device. |
|
48 |
|
|
49 |
* Enable usb networking: |
|
50 |
|
|
51 |
$ insmod g_ether.ko (you might need to do this twice) |
|
52 |
$ ifconfig usb0 10.1.1.11 up |
|
53 |
$ ifconfig usb0 10.1.1.10 up |
|
54 |
|
|
55 |
* Setting usb0 to start automatically: |
|
56 |
|
|
57 |
- copy usbnet script to device's /etc/init.d/ directory (see appendix A) |
|
58 |
- add execution bit for usbnet (chmod +x /etc/init.d/usbnet) |
|
59 |
- set usbnet start at runlevel 2 (update-rc.d usbnet start 99 2) |
|
60 |
- device: add following lines to /etc/network/interface |
|
61 |
allow-hotplug usb0 |
|
62 |
iface usb0 inet static |
|
63 |
address 10.1.1.11 |
|
64 |
netmask 255.255.255.0 |
|
65 |
broadcast 10.1.1.255 |
|
66 |
- desktop: add following lines to /etc/network/interface |
|
67 |
allow-hotplug usb0 |
|
68 |
iface usb0 inet static |
|
69 |
address 10.1.1.10 |
|
70 |
netmask 255.255.255.0 |
|
71 |
broadcast 10.1.1.255 |
|
72 |
- Add following line to your desktop's /etc/hosts file |
|
73 |
10.1.1.11 n8x0 |
|
74 |
|
|
75 |
* Restart device. After restarting you should be able to log in via |
|
76 |
ssh (ssh root@n8x0). Unplug-plug usb cable might needed. |
|
77 |
|
|
78 |
5. Setting up stlc45xx module |
|
79 |
|
|
80 |
* Copy stlc45xx.ko and stlc45xx-cal from your desktop to the device. |
|
81 |
|
|
82 |
* Disable automatic WLAN connections from Control Panel or shutdown |
|
83 |
wlancond (/etc/init.d/wlancond stop) |
|
84 |
|
|
85 |
* Unload cx3110x driver from memory (rmmod cx3110x). |
|
86 |
|
|
87 |
* Load mac80211.ko and stlc45xx.ko modules and run stlc45xx-cal: |
|
88 |
|
|
89 |
$ cp stlc45xx-cal /mnt/initfs/tmp/ & chroot /mnt/initfs /tmp/stlc45xx-cal) |
|
90 |
|
|
91 |
Now wlan0 interface is ready to run. Use iwconfig, wpa_supplicant or |
|
92 |
whatever you intent to use. |
|
93 |
|
|
94 |
6.1. How roll back to default settings, option 1: |
|
95 |
|
|
96 |
* Just flash the full release you want to use: |
|
97 |
$ flasher -F latest_release.bin -f -R |
|
98 |
|
|
99 |
6.2. How roll back to default settings, option 2: |
|
100 |
|
|
101 |
* Enable disabled daemons: |
|
102 |
|
|
103 |
$ update-rc.d dsp-init start 24 2 |
|
104 |
$ update-rc.d multimediad start 24 2 |
|
105 |
$ update-rc.d esd start 26 2 |
|
106 |
|
|
107 |
* Disable usbnet if you find it necessary (if you want use device's |
|
108 |
memory via USB): |
|
109 |
|
|
110 |
$ update-rc.d -f usbnet remove |
|
111 |
|
|
112 |
* Disable some RD flags |
|
113 |
|
|
114 |
$ flasher --clear-rd-flags=no-omap-wd,no-retu-wd,no-lifeguard-reset |
|
115 |
|
|
116 |
* Flash latest released kernel and initfs: |
|
117 |
|
|
118 |
$ flasher -F latest_release.bin --flash-only kernel,initfs -f -R |
|
119 |
|
|
120 |
7. NOTES: |
|
121 |
|
|
122 |
* MMC do not work |
|
123 |
* DSP do not work |
|
124 |
* SPI have some bugs, packet loss in SPI bus |
|
125 |
|
|
126 |
|
|
127 |
Appendix A |
|
128 |
|
|
129 |
filename usbnet |
|
130 |
#! /bin/sh |
|
131 |
# |
|
132 |
# Startup script for USBnet (networking, instead of USB Mass Storage behaviour) |
|
133 |
# Author: Michael Mlivoncic |
|
134 |
|
|
135 |
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin |
|
136 |
NAME=usbnet |
|
137 |
DESC="USB Networking for Nokia 770" |
|
138 |
INITFILE=/etc/init.d/$NAME |
|
139 |
|
|
140 |
case "$1" in |
|
141 |
start) |
|
142 |
umount /media/mmc1 |
|
143 |
umount /media/mmc2 |
|
144 |
sleep 2 |
|
145 |
USBNET="`lsmod | grep g_ether`" |
|
146 |
KERNEL_VERSION="`uname -r`" |
|
147 |
if [ "$USBNET" = "" ] |
|
148 |
then |
|
149 |
echo "entering Ethernet via USB mode (g_ether)..." |
|
150 |
insmod /mnt/initfs/lib/modules/$KERNEL_VERSION/g_ether.ko |
|
151 |
if [ "$?" != "0" ]; then |
|
152 |
insmod /mnt/initfs/lib/modules/$KERNEL_VERSION/g_ether.ko |
|
153 |
fi |
|
154 |
echo "waiting, then starting up the usb0.." |
|
155 |
sleep 1 |
|
156 |
/sbin/ifup usb0 |
|
157 |
else |
|
158 |
echo "already in Ethernet-via-USB mode..." |
|
159 |
echo "try ping 192.168.2.15" |
|
160 |
fi |
|
161 |
;; |
|
162 |
stop) |
|
163 |
echo "switching back to USB Mass Storage mode..." |
|
164 |
echo "removing module g_ether" |
|
165 |
/sbin/ifdown usb0 |
|
166 |
sleep 2 |
|
167 |
rmmod g_ether |
|
168 |
;; |
|
169 |
*) |
|
170 |
printf "Usage: $INITFILE {start|stop}\n" >&2 |
|
171 |
exit 1 |
|
172 |
;; |
|
173 |
esac |
|
174 |
|
|
175 |
exit 0 |
|
176 |
|
|
177 |
Appendix B |
|
178 |
|
|
179 |
Wpa_supplican usage: wpa_supplicant -D wext -i wlan0 -c config_file |
|
180 |
optional flags: |
|
181 |
-d show debug messages, -dd even more |
|
182 |
-B daemonize wpa_supplicant |
|
183 |
|
|
184 |
Example wpa_supplicant configurations: |
|
185 |
|
|
186 |
#OPEN |
|
187 |
network={ |
|
188 |
ssid="open_ssid" |
|
189 |
key_mgmt=NONE |
|
190 |
} |
|
191 |
|
|
192 |
#WEP |
|
193 |
network={ |
|
194 |
ssid="test1" |
|
195 |
key_mgmt=NONE |
|
196 |
wep_key0=acdc123456 |
|
197 |
wep_tx_keyidx=0 |
|
198 |
} |
|
199 |
|
|
200 |
#WPA(1&2) Personal |
|
201 |
network={ |
|
202 |
ssid="test2" |
|
203 |
proto=WPA RSN |
|
204 |
key_mgmt=WPA-PSK |
|
205 |
group=CCMP TKIP WEP104 WEP40 |
|
206 |
pairwise=CCMP TKIP |
|
207 |
#psk="acdc123456" |
|
208 |
psk=bf91ce371ac1eb3617b1f59be5339658c7ea44bf23071bcdd59bbd16d03f2c9f |
|
209 |
} |
|
210 |
|
|
211 |
#WPA Enterprise |
|
212 |
network={ |
|
213 |
ssid="test3" |
|
214 |
proto=WPA |
|
215 |
key_mgmt=WPA-EAP |
|
216 |
pairwise=TKIP |
|
217 |
identity="test" |
|
218 |
password="test123" |
|
219 |
} |