Rock/Wireless
Before start
The Radxa Rock provides various ways to connect, wired and wireless. The full version has wifi and bluetooth on board, and lite version has wifi only. Both module are connect to the cpu via the USB interface.
Using wireless under Android
The wifi and bluetooth(if has) works out of the box, check out in the Setting to configure it.
Using wireless under Linux
Wifi
The model number of the module on RR and RR lite is RTL8723AU on RR full version and RTL8188ETV on lite version. You can see the id of the module with the following command on RR:
sudo apt-get install usbutils lsusb
For RR full version the output is
root@radxa:~# lsusb Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub Bus 002 Device 002: ID 05e3:0608 Genesys Logic, Inc. USB-2.0 4-Port HUB Bus 002 Device 003: ID 0bda:0724 Realtek Semiconductor Corp.
on lite version, the output is:
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub Bus 002 Device 002: ID 05e3:0608 Genesys Logic, Inc. USB-2.0 4-Port HUB Bus 002 Device 003: ID 0bda:0179 Realtek Semiconductor Corp.
The 0bda:0724 is the id of rtl8723 modlue, the 0bda:0179 is the id of rtl8188etv module.
Desktop
Go to Start menu -> Perference -> Network Connections -> wifi, choose the wifi network you want to join and click edit -> wifi security, input the wifi password and save. Then click the right corner to join your wifi network.
Manually connect with Network Manager
You can use nmcli (Network Manager Command Line Interface) to configure your network interfaces.
List wireless networks
# nmcli dev wifi list SSID BSSID MODE FREQ RATE SIGNAL SECURITY ACTIVE 'MY-ACCESS-POINT' 12:34:56:78:90:AB Infrastructure 2412 MHz 44 MB/s 100 WPA WPA2 yes 'OTHER-ACCESS-POINT' 34:12:78:56:AB:90 Infrastructure 2416 MHz 54 MB/s 70 WPA WPA2 yes
Connect to your wireless network
# nmcli dev wifi connect MY-ACCESS-POINT password MY-PASSWORD
List network devices
# nmcli device DEVICE TYPE STATE wlan1 802-11-wireless connected eth0 802-3-ethernet unavailable
List saved networks
# nmcli connection NAME UUID TYPE TIMESTAMP-REAL MY-ACESS-POINT a2301195-5c6a-4000-adc5-dd388a58822e 802-11-wireless Tue 15 Apr 2014 10:30:30 PM UTC OTHER-ACCESS-POINT 83202209-1328-4e85-b7fa-e8c4a902e9ef 802-11-wireless never Wired connection 1 413fdf5a-27bf-4f88-93c5-a4da394e20ce 802-3-ethernet Tue 15 Apr 2014 10:10:33 PM UTC Auto Ethernet e96a5543-1235-4497-9e10-b431f588a94d 802-3-ethernet Fri 14 Mar 2014 11:36:21 AM UTC
Manually config to connect wireless router
To use RR(lite) to connect to your wireless router, you need to do the following:
sudo apt-get install wireless-tools sudo apt-get install wpasupplicant sudo ifconfig wlan0 up
If you are unable to bringup wlan0, mean drivers are not installed. Follow this step to add driver. Assumes you have net connection thru ethernet, else download and move
sudo mkdir -p /lib/modules && cd /lib/modules sudo wget http://dl.radxa.com/rock/images/ubuntu/partitions/modules_3.0.36+_14-04-12.tar.gz sudo tar zxvf modules_3.0.36+_14-04-12.tar.gz sudo rm modules_3.0.36+_14-04-12.tar.gz sudo modprobe 8723au
now you should see wlan0 by ifconfig
Now you can view is the wifi module works by scanning the AP nearby
iwlist wlan0 scan
edit /etc/wpa_supplicant.conf
ctrl_interface=/var/run/wpa_supplicant network={ ssid="your ssid name" psk="your wireless password" }
and then run
wpa_supplicant -B -i wlan0 -c /etc/wpa_supplicant.conf
to connect to the wireless router.
run the following to get an IP from the router.
dhclient wlan0
If you want to set the RR to connect to the wireless router automatically every time it boot up. Add the following to the /etc/network/interfaces
auto wlan0 iface wlan0 inet dhcp wpa-conf /etc/wpa_supplicant.conf
AP mode(RR acts as wireless router)
Build the driver for softAP
Download the source driver from the address:
wget http://dl.radxa.com/rock/source/RTL8723A_WiFi_linux_v4.1.7_8023_BTCOEX20130528_ver3.3_beta.rar
Download the toolchain from the address:
if your host is 64bit git clone -b kitkat-release --depth 1 https://android.googlesource.com/platform/prebuilts/gcc/linux-x86/arm/arm-eabi-4.6 if your host is 32bit git clone -b jb-release --depth 1 https://android.googlesource.com/platform/prebuilts/gcc/linux-x86/arm/arm-eabi-4.6
Download the kernel from the address:
git clone -b radxa-stable-3.0 https://github.com/radxa/linux-rockchip.git or download here http://pan.baidu.com/s/1jfOTo (china)
Attention please: first,ensure your kernel has been compiled
root@jim-L:/media/jim/rmdisk#unrar x RTL8723A_WiFi_linux_v4.1.7_8023_BTCOEX20130528_ver3.3_beta.rar root@jim-L:/media/jim/rmdisk#cd RTL8723A_WiFi_linux_v4.1.7_8023_BTCOEX20130528_ver3.3_beta root@jim-L:/media/jim/rmdisk/RTL8723A_WiFi_linux_v4.1.7_8023_BTCOEX20130528_ver3.3_beta#cd driver root@jim-L:/media/jim/rmdisk/RTL8723A_WiFi_linux_v4.1.7_8023_BTCOEX20130528_ver3.3_beta/driver#tar zxvf rtl8723A_WiFi_linux_v4.1.7_8023.20130628_BTCOEX20130528_ver3.3_beta.tar.gz root@jimL:/media/jim/rmdisk/RTL8723A_WiFi_linux_v4.1.7_8023_BTCOEX20130528_ver3.3_beta/driver/rtl8723A_WiFi_linux_v4.1.7_8023.20130628_BTCOEX20130528_ver3.3_beta#vim Makefile
1>.To select target platform for compilation,Only one entry is allowed to be set with value ‘y’ and others with ‘n’ :
47 CONFIG_PLATFORM_I386_PC = n 48 CONFIG_PTFORM_ANDROID_X86 = n 49 CONFIG_PLATFORM_JB_X86 = n ... ... 66 CONFIG_PLATFORM_ARM_TCC8920_JB42 = n 67 CONFIG_PLATFORM_ARM_RK2818 = y 68 CONFIG_PLATFORM_ARM_URBETTER = n
2>.you should modify the corresponding entry inside platform setting section
603 ARCH := arm 604 CROSS_COMPILE := arm-eabi- 605 KSRC := /media/jim/radxa_rock_linux/linux-rockchip
ARCH The ARCH is used to specify the architecture of the target platform CPU. CROSS_COMPILE The CROSS_COMPILE is used to specify the toolchain prefix used for driver compilation. KSRC The KSRC is used to specify the path of kernel source used for driver compilation
3>.to install the wlan0.ko
root@jim-L:/media/jim/rmdisk/RTL8723A_WiFi_/driver/rtl8723A_WiFi_linux_v4.1.7_8023.20130628_BTCOEX20130528_ver3.3_beta#make root@radxa:~#rmmod wlan0.ko root@radxa:~#insmod wlan0.ko
Configure dhcp server,wifi(user,password),autorun the softAP
configure the dhcp server:
root@radxa:/etc# vim dnsmasq.conf 631 interface=wlan0 632 bind-interfaces 633 except-interface=lo 634 dhcp-range=192.168.2.150,192.168.2.254,12h //configure the range of available ip 635 dhcp-option=3,192.168.2.1 //configure the server
configure the wifi(user,password):
root@radxa:/etc# vim /etc/hostapd/hostapd.conf 3 interface=wlan0 4 ctrl_interface=/var/run/hostapd 5 ssid=user-name 6 channel=6 7 wpa=2 8 wpa_passphrase=password 9 #bridge=br0
autorun the softAP:
root@radxa:/etc#vim wifs.sh add lines #!/bin/sh #start the AP service #Start hostapd, and it will automatically be bringed up sudo hostapd -B /etc/hostapd/hostapd.conf #Set ip on wlan0 sudo /sbin/ip addr add 192.168.2.1/24 dev wlan0 #Start dnsmasq sudo /usr/sbin/service dnsmasq start #Start ip_forward sudo echo 1 > /proc/sys/net/ipv4/ip_forward #add iptables rule for NAT sudo /sbin/iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE #start haveged sudo /etc/init.d/haveged start
root@radxa:/etc/init.d# vim rc.local add the line 13 . /etc/wifs.sh 14 . /lib/init/vars.sh 15 . /lib/lsb/init-functions root@radxa:/etc/init.d# reboot
Bluetooth
to get the driver:
git clone https://github.com/lwfinger/rtl8723au_bt
To compile the driver, you need to have compiled your own Kernel like described in
http://wiki.radxa.com/Rock/Booting_Linux
Then on your Linux host computer you will find a directory "/lib/modules/3.0.36+/" containing a "kernel" directory and two symbolic links called "build" and "source" to your Rockchip kernel source directory (originally called "rockchip-3.0") wherever you downloaded it to. This is the prerequisite for compiling rockchip modules.
Then change into the bluetooth driver directory rtl8723au_bt and edit the textfile called "Makefile". My "Makefile" now looks like this, I marked the changes bold:
FW_DIR := /lib/firmware/rtk_bt MDL_DIR := /lib/modules/3.0.36+ DRV_DIR := $(MDL_DIR)/kernel/drivers/bluetooth ifneq ($(KERNELRELEASE),) obj-m := rtk_btusb.o else PWD := $(shell pwd) KVER := "3.0.36+" KDIR := /lib/modules/3.0.36+/build all: $(MAKE) -C $(KDIR) M=$(PWD) modules clean: rm -rf *.o *.mod.c *.mod.o *.ko *.symvers *.order *.a endif install: mkdir -p $(FW_DIR) cp -f rlt8723a_chip_b_cut_bt40_fw_asic_rom_patch-svn8511-0x0020342E-20121105-LINUX_USB.bin $(FW_DIR)/rtk8723a.bin cp -f rtk_btusb.ko $(DRV_DIR)/rtk_btusb.ko #depmod -a $(MDL_DIR)' #echo "install rtk_btusb success! uninstall: rm -f $(DRV_DIR)/rtk_btusb.ko depmod -a $(MDL_DIR) rm -f $(FW_DIR)/rtk8723a.bin echo "uninstall rtk_btusb success!"
Then do
export ARCH=arm export CROSS_COMPILE=arm-linux-gnueabihf- make sudo make install
After that copy the following files from the host system into the same folder on Radxa Rock:
/lib/firmware/rtk_bt/rtk8723a.bin /lib/modules/3.0.36+/kernel/drivers/bluetooth/rtk_btusb.ko
Last on Radxa Rock system change into the folder
/lib/modules/3.0.36+/kernel/drivers/bluetooth
and enter the command
sudo insmod rtk_btusb.ko
Now "hcitool dev" recognizes the adapter (hci0) and "hcitool scan" finds remote bluetooth devices. But I could not get any device to pair. Any ideas appreciated.
Alex letux@arcor.de