Ben NanoNote Wi-Fi
There are two proven ways of using Wi-Fi (802.11) connectivity with the Ben NanoNote:
- Using Wi-Fi devices based on the KS7010 Wi-Fi chip from KeyStream
- Using a wireless router running an OpenWrt build that supports Ethernet over USB
Obviously, connecting the Ben NanoNote using USB or Ben WPAN to a personal computer (laptop, desktop, netbook) that already resides on a wireless network will also provide Wi-Fi connectivity, but this page concerns itself with solutions requiring peripheral devices only.
Contents |
[edit] KeyStream KS7010 Devices
KeyStream was a small Japanese startup (about 30 people) focusing on mobile Wi-Fi chips, their first and only main product being the KS3021 RF chip and the KS7010 Wi-Fi baseband chip. They were acquired by Renesas in April 2009, and are now continuing as the KeyStream brand inside Renesas. The technology will probably appear in other Renesas chips in the future.
Known users of these chips are:
- Microsoft Zune 30, and probably other Zune models as well
- Spectec SDW-821 full-size SD (SDIO) Wi-Fi card
- Spectec SDW-823 microSD (SDIO) Wi-Fi card
- (note that all other Spectec Wi-Fi cards use MTK Wi-Fi chips without Linux drivers!)
In October 2009, Renesas released driver sources licensed under the GPL (version 007 for Linux 2.6.24), and a binary firmware (v0.2f), available at ks7010_sdio_v007.tar.bz2.
[edit] Ben Nanonote Wi-Fi How-To
- The original driver from KeyStream was a little bit modified in other to match with Ben Nanonote recent kernel (2.6.32.7).
- You can find this driver as stand-alone driver in the openwrt-xburst layout:
openwrt-xburst/package/ks7010/ |-- Makefile `-- src |-- Kconfig |-- Makefile |-- eap_packet.h |-- ks7010_config.c |-- ks7010_sdio.c |-- ks7010_sdio.h |-- ks_debug.c |-- ks_debug.h |-- ks_hostif.c |-- ks_hostif.h |-- ks_wlan.h |-- ks_wlan_ioctl.h |-- ks_wlan_net.c |-- michael_mic.c `-- michael_mic.h
- The tests reported were done with the Spectec SDW-823 microSD (SDIO) Wi-Fi card.
- You have to check the proper section in the openWrt menu in order to include this driver: Kernel modules -> Wireless Drivers -> kmod-ks7010
- You have to copy two files ks7010sd.rom and ks79xx.cfg from the original tarball in the Nanonote's "/lib/firmware" folder too.
ks7010_sdio_v007 |-- Firmware | `-- ks7010sd.rom `-- GPL `-- Src `-- sdio `-- ks79xx.cfg
[edit] Vendor Features
- Wi-Fi modes
IEEE801.11b/g Infrastructure mode and ad-hoc mode WEP40/WEP104/WPA/WPA2 Linux Wireless extension 29
- Throughput
TCP Tx 15.3Mbps TCP Rx 19.2Mbps UDP Tx 12.6Mbps UDP Rx 14.9Mbps
[edit]
- Set up the correct WPA supplicant file to match with the AP:
root@BenNanoNote:~# cat /etc/wpa_supplicant/wpa_supplicant.conf ctrl_interface=/var/run/wpa_supplicant network={ ssid="your-ap-ssid" bssid=00:19:15:4f:f5:d6 scan_ssid=1 key_mgmt=WPA-PSK psk="mypasswork" }
- Check if the ks7010 is working fine:
root@BenNanoNote:~# iwconfig lo no wireless extensions. usb0 no wireless extensions. eth0 IEEE 802.11b/g ESSID:"default" Mode:Managed Frequency:2.457 GHz Access Point: Not-Associated Bit Rate:11 Mb/s RTS thr:off Fragment thr:off Encryption key:off Power Management:off Link Quality=0/100 Signal level=0 dBm Noise level=0 dBm Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0 Tx excessive retries:0 Invalid misc:0 Missed beacon:0
- Raise the wpa_supplicant command:
root@BenNanoNote:~# wpa_supplicant -Dwext -ieth0 -d -c /etc/wpa_supplicant/wpa_supplicant.conf
- Get the IP and surf!:
root@BenNanoNote:~# udhcpc eth0 udhcpc (v1.14.4) started Sending discover... Sending select for 192.168.0.53... Lease of 192.168.0.53 obtained, lease time 86400 udhcpc: ifconfig eth0 192.168.0.53 netmask 255.255.255.0 broadcast + udhcpc: setting default routers: 192.168.0.1 udhcpc: setting dns servers: 80.58.61.250 80.58.61.254 ... root@BenNanoNote:~# nslookup google.com Server: 80.58.61.250 Address 1: 80.58.61.250 250.Red-80-58-61.staticIP.rima-tde.net Name: google.com Address 1: 74.125.67.100 gw-in-f100.1e100.net Address 2: 74.125.45.100 yx-in-f100.1e100.net Address 3: 74.125.53.100 pw-in-f100.1e100.net ... root@BenNanoNote:~# ping www.qi-hardware.com PING www.qi-hardware.com (88.198.75.224): 56 data bytes 64 bytes from 88.198.75.224: seq=0 ttl=47 time=735.883 ms 64 bytes from 88.198.75.224: seq=1 ttl=48 time=648.022 ms 64 bytes from 88.198.75.224: seq=2 ttl=48 time=1270.320 ms 64 bytes from 88.198.75.224: seq=3 ttl=48 time=936.241 ms ^C --- www.qi-hardware.com ping statistics --- 5 packets transmitted, 4 packets received, 20% packet loss round-trip min/avg/max = 648.022/897.616/1270.320 ms
[edit] To Do
- Create a qi-hardware project with the driver
- Determine the exact feature set of the driver
- Cleanup the driver sources and get upstream feedback
[edit] Known Issues
- Driver doesn't support removing and reinserting the card
[edit] Wireless Routers and Ethernet over USB
Wireless routers like the TP-Link TL-MR3020 can be made to support Ethernet over USB and thus act as a networked host, in place of a normal networked personal computer, to which the Ben NanoNote can then be attached. This is described in the Make Ben Nanonote access Wireless over USB guide which actually refers to the TP-Link TL-MR11U.
[edit] Other Possibilities
Some other ideas that might also provide wireless connectivity if brought to fruition:
- Interfacing a wireless controller (like the AR9271 or other chipsets supporting Free Software drivers and firmware) to the 8:10 port and writing a wireless networking driver or adapter for the existing drivers
- Interfacing a USB Host controller to the 8:10 port and writing a USB Host controller driver which might then be able to allow existing, suitable wireless drivers to operate with USB networking dongles (such as the FSF-certified Penguin Wireless N USB Adapter for GNU / Linux (TPE-N150USB))
- Interfacing wireless SD card products to the 8:10 port, taking advantage of the apparent signal compatibility between SD and microSD form factors (probably subject to electrical or power constraints) and existing wireless drivers (although this may end up involving proprietary binary drivers and firmware)