This evening I need to fire up this RTL8723e WLAN interface on axioo RNE model. Using updated precise with 3.2.0-30 kernel the network manager cannot see this device.

Here is the lsusb outputs :

[root@user-NEON-RNE ~]# 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 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub
Bus 002 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub
Bus 003 Device 002: ID 0bda:8723 Realtek Semiconductor Corp.
Bus 001 Device 003: ID 5986:0400 Acer, Inc
[root@user-NEON-RNE ~]#

And here is the lspci outputs :

[root@user-NEON-RNE ~]# lspci -nn | grep 0280
02:00.0 Network controller [0280]: Realtek Semiconductor Co., Ltd. Device [10ec:8723]
[root@user-NEON-RNE ~]#

Try to search the internet trying to find the supported Relatek driver module for this wlan, but cannot find it everywhere, neither on their driver download page or any reply from email sent to realtek wlanfae. Finally, found this tutorial and give it a go … and voila … it works …

The driver compiling and installation is very easy,

1. Prepare the driver build environment and kernel header :

sudo apt-get install build-essential linux-headers-generic linux-headers-`uname -r`

2. Extract the downloaded driver source to some location, then cd into it.

3. Do the make :

[root@user-NEON-RNE rtl_92ce_92se_92de_8723ae_linux_mac80211_0006.0514.2012]# make
make -C /lib/modules/3.2.0-30-generic-pae/build M=/usr/src/rtl_92ce_92se_92de_8723ae_linux_mac80211_0006.0514.2012 modules
make[1]: Entering directory `/usr/src/linux-headers-3.2.0-30-generic-pae’
CC [M]  /usr/src/rtl_92ce_92se_92de_8723ae_linux_mac80211_0006.0514.2012/base.o
CC [M]  /usr/src/rtl_92ce_92se_92de_8723ae_linux_mac80211_0006.0514.2012/rc.o
CC [M]  /usr/src/rtl_92ce_92se_92de_8723ae_linux_mac80211_0006.0514.2012/debug.o
CC [M]  /usr/src/rtl_92ce_92se_92de_8723ae_linux_mac80211_0006.0514.2012/regd.o
CC [M]  /usr/src/rtl_92ce_92se_92de_8723ae_linux_mac80211_0006.0514.2012/efuse.o
CC [M]  /usr/src/rtl_92ce_92se_92de_8723ae_linux_mac80211_0006.0514.2012/cam.o
CC [M]  /usr/src/rtl_92ce_92se_92de_8723ae_linux_mac80211_0006.0514.2012/ps.o
CC [M]  /usr/src/rtl_92ce_92se_92de_8723ae_linux_mac80211_0006.0514.2012/core.o
CC [M]  /usr/src/rtl_92ce_92se_92de_8723ae_linux_mac80211_0006.0514.2012/stats.o
CC [M]  /usr/src/rtl_92ce_92se_92de_8723ae_linux_mac80211_0006.0514.2012/pci.o
LD [M]  /usr/src/rtl_92ce_92se_92de_8723ae_linux_mac80211_0006.0514.2012/rtlwifi.o
Building modules, stage 2.
MODPOST 1 modules

… blah blah blah …

Building modules, stage 2.
MODPOST 1 modules
CC      /usr/src/rtl_92ce_92se_92de_8723ae_linux_mac80211_0006.0514.2012/rtl8192ce/rtl8192ce.mod.o
LD [M]  /usr/src/rtl_92ce_92se_92de_8723ae_linux_mac80211_0006.0514.2012/rtl8192ce/rtl8192ce.ko

… blah blah blah

Building modules, stage 2.
MODPOST 1 modules
CC      /usr/src/rtl_92ce_92se_92de_8723ae_linux_mac80211_0006.0514.2012/rtl8192se/rtl8192se.mod.o
LD [M]  /usr/src/rtl_92ce_92se_92de_8723ae_linux_mac80211_0006.0514.2012/rtl8192se/rtl8192se.ko

… blah blah blah

Building modules, stage 2.
MODPOST 1 modules
CC      /usr/src/rtl_92ce_92se_92de_8723ae_linux_mac80211_0006.0514.2012/rtl8192de/rtl8192de.mod.o
LD [M]  /usr/src/rtl_92ce_92se_92de_8723ae_linux_mac80211_0006.0514.2012/rtl8192de/rtl8192de.ko
make[2]: Leaving directory `/usr/src/linux-headers-3.2.0-30-generic-pae’
make[1]: Leaving directory `/usr/src/rtl_92ce_92se_92de_8723ae_linux_mac80211_0006.0514.2012/rtl8192de’
make[1]: Entering directory `/usr/src/rtl_92ce_92se_92de_8723ae_linux_mac80211_0006.0514.2012/rtl8723e’
make -C /lib/modules/3.2.0-30-generic-pae/build M=/usr/src/rtl_92ce_92se_92de_8723ae_linux_mac80211_0006.0514.2012/rtl8723e modules
make[2]: Entering directory `/usr/src/linux-headers-3.2.0-30-generic-pae’
CC [M]  /usr/src/rtl_92ce_92se_92de_8723ae_linux_mac80211_0006.0514.2012/rtl8723e/hw.o
CC [M]  /usr/src/rtl_92ce_92se_92de_8723ae_linux_mac80211_0006.0514.2012/rtl8723e/table.o
CC [M]  /usr/src/rtl_92ce_92se_92de_8723ae_linux_mac80211_0006.0514.2012/rtl8723e/sw.o
CC [M]  /usr/src/rtl_92ce_92se_92de_8723ae_linux_mac80211_0006.0514.2012/rtl8723e/trx.o
CC [M]  /usr/src/rtl_92ce_92se_92de_8723ae_linux_mac80211_0006.0514.2012/rtl8723e/led.o
CC [M]  /usr/src/rtl_92ce_92se_92de_8723ae_linux_mac80211_0006.0514.2012/rtl8723e/fw.o
CC [M]  /usr/src/rtl_92ce_92se_92de_8723ae_linux_mac80211_0006.0514.2012/rtl8723e/phy.o
CC [M]  /usr/src/rtl_92ce_92se_92de_8723ae_linux_mac80211_0006.0514.2012/rtl8723e/rf.o
CC [M]  /usr/src/rtl_92ce_92se_92de_8723ae_linux_mac80211_0006.0514.2012/rtl8723e/dm.o
CC [M]  /usr/src/rtl_92ce_92se_92de_8723ae_linux_mac80211_0006.0514.2012/rtl8723e/pwrseq.o
CC [M]  /usr/src/rtl_92ce_92se_92de_8723ae_linux_mac80211_0006.0514.2012/rtl8723e/pwrseqcmd.o
CC [M]  /usr/src/rtl_92ce_92se_92de_8723ae_linux_mac80211_0006.0514.2012/rtl8723e/hal_btc.o
CC [M]  /usr/src/rtl_92ce_92se_92de_8723ae_linux_mac80211_0006.0514.2012/rtl8723e/hal_bt_coexist.o
LD [M]  /usr/src/rtl_92ce_92se_92de_8723ae_linux_mac80211_0006.0514.2012/rtl8723e/rtl8723e.o
Building modules, stage 2.
MODPOST 1 modules
CC      /usr/src/rtl_92ce_92se_92de_8723ae_linux_mac80211_0006.0514.2012/rtl8723e/rtl8723e.mod.o
LD [M]  /usr/src/rtl_92ce_92se_92de_8723ae_linux_mac80211_0006.0514.2012/rtl8723e/rtl8723e.ko
make[2]: Leaving directory `/usr/src/linux-headers-3.2.0-30-generic-pae’
make[1]: Leaving directory `/usr/src/rtl_92ce_92se_92de_8723ae_linux_mac80211_0006.0514.2012/rtl8723e’
[root@user-NEON-RNE rtl_92ce_92se_92de_8723ae_linux_mac80211_0006.0514.2012]#

4. Do make install :

[root@user-NEON-RNE rtl_92ce_92se_92de_8723ae_linux_mac80211_0006.0514.2012]# make install
make -C /lib/modules/3.2.0-30-generic-pae/build M=/usr/src/rtl_92ce_92se_92de_8723ae_linux_mac80211_0006.0514.2012 modules
make[1]: Entering directory `/usr/src/linux-headers-3.2.0-30-generic-pae’
Building modules, stage 2.
MODPOST 1 modules
make[1]: Leaving directory `/usr/src/linux-headers-3.2.0-30-generic-pae’
make[1]: Entering directory `/usr/src/rtl_92ce_92se_92de_8723ae_linux_mac80211_0006.0514.2012/rtl8192ce’
make -C /lib/modules/3.2.0-30-generic-pae/build M=/usr/src/rtl_92ce_92se_92de_8723ae_linux_mac80211_0006.0514.2012/rtl8192ce modules
make[2]: Entering directory `/usr/src/linux-headers-3.2.0-30-generic-pae’
Building modules, stage 2.
MODPOST 1 modules
make[2]: Leaving directory `/usr/src/linux-headers-3.2.0-30-generic-pae’
make[1]: Leaving directory `/usr/src/rtl_92ce_92se_92de_8723ae_linux_mac80211_0006.0514.2012/rtl8192ce’
make[1]: Entering directory `/usr/src/rtl_92ce_92se_92de_8723ae_linux_mac80211_0006.0514.2012/rtl8192se’
make -C /lib/modules/3.2.0-30-generic-pae/build M=/usr/src/rtl_92ce_92se_92de_8723ae_linux_mac80211_0006.0514.2012/rtl8192se modules
make[2]: Entering directory `/usr/src/linux-headers-3.2.0-30-generic-pae’
Building modules, stage 2.
MODPOST 1 modules
make[2]: Leaving directory `/usr/src/linux-headers-3.2.0-30-generic-pae’
make[1]: Leaving directory `/usr/src/rtl_92ce_92se_92de_8723ae_linux_mac80211_0006.0514.2012/rtl8192se’
make[1]: Entering directory `/usr/src/rtl_92ce_92se_92de_8723ae_linux_mac80211_0006.0514.2012/rtl8192de’
make -C /lib/modules/3.2.0-30-generic-pae/build M=/usr/src/rtl_92ce_92se_92de_8723ae_linux_mac80211_0006.0514.2012/rtl8192de modules
make[2]: Entering directory `/usr/src/linux-headers-3.2.0-30-generic-pae’
Building modules, stage 2.
MODPOST 1 modules
make[2]: Leaving directory `/usr/src/linux-headers-3.2.0-30-generic-pae’
make[1]: Leaving directory `/usr/src/rtl_92ce_92se_92de_8723ae_linux_mac80211_0006.0514.2012/rtl8192de’
make[1]: Entering directory `/usr/src/rtl_92ce_92se_92de_8723ae_linux_mac80211_0006.0514.2012/rtl8723e’
make -C /lib/modules/3.2.0-30-generic-pae/build M=/usr/src/rtl_92ce_92se_92de_8723ae_linux_mac80211_0006.0514.2012/rtl8723e modules
make[2]: Entering directory `/usr/src/linux-headers-3.2.0-30-generic-pae’
Building modules, stage 2.
MODPOST 1 modules
make[2]: Leaving directory `/usr/src/linux-headers-3.2.0-30-generic-pae’
make[1]: Leaving directory `/usr/src/rtl_92ce_92se_92de_8723ae_linux_mac80211_0006.0514.2012/rtl8723e’
find /lib/modules/3.2.0-30-generic-pae -name “r8192se_*.ko” -exec rm {} ;
find /lib/modules/3.2.0-30-generic-pae -name “r8192ce_*.ko” -exec rm {} ;
find /lib/modules/3.2.0-30-generic-pae -name “r8723e_*.ko” -exec rm {} ;
[root@user-NEON-RNE rtl_92ce_92se_92de_8723ae_linux_mac80211_0006.0514.2012]#

5. And finally load the driver module :

modprobe rtl8723e

The driver will loaded succesfully and the network manager will automatically pick up the device and scan the available AP. (don’t forget to switch off the Radio Kill Switch with Fn + F11 in case is switched on)

If you’ve got error trying to modprobe rtl8723e, just like this :

[root@user-NEON-RNE rtl_92ce_92se_92de_8723ae_linux_mac80211_0006.0514.2012]# modprobe rtl8723e
FATAL: Error inserting rtl8723e (/lib/modules/3.2.0-30-generic-pae/kernel/drivers/net/wireless/rtlwifi/rtl8723e/rtl8723e.ko): Invalid argument

then it means there is some compat wireless module especially with rtlwifi.ko module that conflicting with this rtl_92ce_92se_92de_8723ae_linux_mac80211_0006.0514.2012 driver. You must make sure there were no compat wireless on the system by removing / uninstalling them before doing make. If you were using atheros ethernet ar8161 with compat-wireless or there is the linux-backports-modules-cw-xxx module on system, you must uninstall them first.