wifi on Rock64?


Recommended Posts

Donate and support the project!

OK, I have installed the armbian-firmware package, and I even see the firmware drivers I need for my wifi dongle:

 

/lib/firmware/rtlwifi/rtl8188eufw.bin
/lib/modules/4.4.77-rk3328/kernel/drivers/net/wireless/rockchip_wlan/rtl8188eu
/lib/modules/4.4.77-rk3328/kernel/drivers/net/wireless/rockchip_wlan/rtl8188eu/8188eu.ko
/lib/modules/4.4.77-rk3328/kernel/drivers/staging/rtl8188eu
/lib/modules/4.4.77-rk3328/kernel/drivers/staging/rtl8188eu/r8188eu.ko

 

I reboot, but the wlan0 device still does not show up:

 

ip link set wlan0 up
Cannot find device "wlan0"

 

And... I can't seem to get modprobe to load the firmware;

 

modprobe -f rtl8188eu
modprobe: FATAL: Module rtl8188eu not found in directory /lib/modules/4.4.77-rk3328

 

Anyone know what to do here?

 

Thanks!

Link to post
Share on other sites

Hi,

 

looks like we are making progress;

 

armbianmonitor.log shows the device, as expected,

Bus 001 Device 002: ID 0bda:8179 Realtek Semiconductor Corp. RTL8188EUS 802.11n Wireless Network Adapter

 

Ifconfig shows the device info:

wlx0013ef800c58 Link encap:Ethernet  HWaddr 00:13:ef:80:0c:58

(I think that is it - sure is a strange device name - seems to be derived from the HWaddr)

 

And I can use modprobe to load the firmware (though that does not seem to be necessary at this point)

modprobe -f r8188eu

 

But alas, no activity:

wlx0013ef800c58 Link encap:Ethernet  HWaddr 00:13:ef:80:0c:58  
          UP BROADCAST MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame
          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)


OK, next step - I'm going to put This in my /etc/network/interfaces config file:

auto wlx0013ef800c58
allow-hotplug wlx0013ef800c58
iface wlx0013ef800c58 inet dhcp

 

Be right back...

 

 

 

 

 

 

Link to post
Share on other sites
3 hours ago, thomasgrzybowski said:

Should I try messing around with the contents of /etc/network/interfaces.r1  ?

 

No, you've been told to provide 'armbianmonitor -u' output (which you refuse to do -- you actively hinder people trying to help you) and you have been told to not fiddle around with these files at all (there's a reason technical documentation has been written. To be read and not ignored)

Link to post
Share on other sites
On 28/10/2017 at 6:53 AM, thomasgrzybowski said:

Ifconfig shows the device info:

wlx0013ef800c58 Link encap:Ethernet  HWaddr 00:13:ef:80:0c:58

(I think that is it - sure is a strange device name - seems to be derived from the HWaddr)

 


OK, next step - I'm going to put This in my /etc/network/interfaces config file:

auto wlx0013ef800c58
allow-hotplug wlx0013ef800c58
iface wlx0013ef800c58 inet dhcp

 

 

wlx0013ef800c58 is the new naming convention from debian 9 stretch.

You could try to comment out the wlx0013ef800c58 in /etc/network/interfaces and then use the network manager ( nmtui ) to configure your WiFi.

 

A easy way to get wlan0 back is to add net.ifnames=0 to the kernel command line

https://www.freedesktop.org/wiki/Software/systemd/PredictableNetworkInterfaceNames/ )

 

From the armmonitor -u I did found the following annoying::


[    7.822128] =======================================================
[    7.822129] ==== Launching Wi-Fi driver! (Powered by Rockchip) ====
[    7.822130] =======================================================
[    7.822133] Realtek 8188EU USB WiFi driver (Powered by Rockchip,Ver 2.20.WFD) init.
[    7.888765] r8188eu: module is from the staging directory, the quality is unknown, you have been warned.

In debian is a additionally firmware paket for realtek called : firmware-realtek ( https://packages.debian.org/de/stretch/firmware-realtek )

I dont know if is it there in armbian, but if yes - then there could be a newer firmware inside as the driver/firmware powered by Rockchip.

 

So try

apt install realtek-firmware

Link to post
Share on other sites
1 hour ago, guidol said:

A easy way to get wlan0 back

Why? Interface names don't matter and the new 'predictable names' are an improvement anyway compared to before.

 

1 hour ago, guidol said:

apt install realtek-firmware

Why? According to this thread armbian-firmware 'was installed', according to dmesg driver+firmware load (the 'module is from the staging directory, the quality is unknown, you have been warned' can be ignored, just search the web for it, it's pretty common for those types of drivers) so next step is 'nmtui-connect'. And if that doesn't work 'armbianmonitor -u' again.

 

I don't understand the whole thread since most probably following the documentation would simply work. Though what needs discussion is why people don't follow/find the documentation.

Link to post
Share on other sites
37 minutes ago, tkaiser said:

Why? Interface names don't matter and the new 'predictable names' are an improvement anyway compared to before.

Why? According to this thread armbian-firmware 'was installed', according to dmesg driver+firmware load

so next step is 'nmtui-connect'. And if that doesn't work 'armbianmonitor -u' again.

I don't understand the whole thread since most probably following the documentation would simply work.

Though what needs discussion is why people don't follow/find the documentation.

 

On such small systems where I only got 1x WiFi and 1x Ethernet I -personally- dont need and like predictbale names - I like the simple wlan0 and eth0

 

I did see that driver and firmware was loaded, while it was tagged "by Rockchip" I didnt know that this driver is out of the armbian-firmware-package.

In my personally opinion is has possible that it was an additinal Rockchip-package.

And - as I wrote - I dont know if there is an additional realtek-firmware (didnt got a armbian-system here reachable) where a newer firmware could be included.

 

So if the armbian-firmware is the newest and there is no realtek-firmware package, then the driver should be fine.

 

I dont want to discuss and I did read some documentations.
At the documentation page https://docs.armbian.com/User-Guide_Getting-Started/#how-to-connect-to-wireless
there is nmtui-connect used.
I did read at some other documentations ( while starting with debian stretch and network manager) that when Iam using network manager (like nmtui and nmtui-connect ) I shouldnt have active configurations for the devices inside the /etc/network/interfaces - because when they are there they couldnt be managed from the network manager.

 

And as the second part of the armbian-documentaion page I see that a static IP has to be set in /etc/network/interfaces....
This could also be done via nmtui - while using network manager.

So I was confused by this example..... maybe I had to read less other dodumentation? :(
I dont want to make you angry - I only will learn to do it right. And sometimes not all my questions are answered by a single doumentaion page.

Link to post
Share on other sites
19 minutes ago, guidol said:

I did see that driver and firmware was loaded, while it was tagged "by Rockchip" I didnt know that this driver is out of the armbian-firmware-package.

 

Driver and firmware are two different things. With ROCK64/RK3328 we currently use a 'vendor kernel' and Rockchip added a bunch of Wi-Fi drivers to their kernel sources. Part of Armbian images is an installed package 'armbian-firmware' which should at least address onboard adapters and most common dongles.

 

So all that should be needed is nmtui-connect, done. No need to fiddle around with interfaces files and names. There's a reason we recommend using nmtui-connect (since usually 'just works') but I have no idea how to improve the current situation that users don't read/follow this documentation...

Link to post
Share on other sites

OK, some further progress - I think - I hope...

 

Running nmtui, I supplied wlx0013ef800c58 in the device field.  And it echoed back a hardware address in parentheses.  I also supplied the local wan SSID.  I rebooted the machine, but when I tried to activate the connection with nmtui or nmtui-connect, still no device shows up.

 

Looking in the syslog file, I see this:

 

Oct 29 23:45:02 localhost dhclient[819]: DHCPDISCOVER on wlx0013ef800c58 to 255.255.255.255 port 67 interval 12 (xid=0xdb228974)
Oct 29 23:45:02 localhost sh[650]: DHCPDISCOVER on wlx0013ef800c58 to 255.255.255.255 port 67 interval 12 (xid=0xdb228974)
Oct 29 23:45:04 localhost ntpd[761]: error resolving pool 1.ubuntu.pool.ntp.org: Name or service not known (-2)
Oct 29 23:45:05 localhost ntpd[761]: error resolving pool ntp.ubuntu.com: Name or service not known (-2)
Oct 29 23:45:05 localhost ntpd[761]: error resolving pool 3.ubuntu.pool.ntp.org: Name or service not known (-2)
Oct 29 23:45:14 localhost dhclient[819]: DHCPDISCOVER on wlx0013ef800c58 to 255.255.255.255 port 67 interval 12 (xid=0xdb228974)
Oct 29 23:45:14 localhost sh[650]: DHCPDISCOVER on wlx0013ef800c58 to 255.255.255.255 port 67 interval 12 (xid=0xdb228974)

 

Seems a problem with DHCP?   And I don't understand how we can be getting this far when the device does not even show any activity in ifconfig. 

Link to post
Share on other sites

Also interesting:

 

$ifup --force wlx0013ef800c58
Internet Systems Consortium DHCP Client 4.3.3
Copyright 2004-2015 Internet Systems Consortium.
All rights reserved.
For info, please visit https://www.isc.org/software/dhcp/

Listening on LPF/wlx0013ef800c58/00:13:ef:80:0c:58
Sending on   LPF/wlx0013ef800c58/00:13:ef:80:0c:58
Sending on   Socket/fallback
DHCPDISCOVER on wlx0013ef800c58 to 255.255.255.255 port 67 interval 3 (xid=0xcb025177)
DHCPDISCOVER on wlx0013ef800c58 to 255.255.255.255 port 67 interval 3 (xid=0xcb025177)
DHCPDISCOVER on wlx0013ef800c58 to 255.255.255.255 port 67 interval 3 (xid=0xcb025177)
DHCPDISCOVER on wlx0013ef800c58 to 255.255.255.255 port 67 interval 8 (xid=0xcb025177)
DHCPDISCOVER on wlx0013ef800c58 to 255.255.255.255 port 67 interval 12 (xid=0xcb025177)

.

.

.

Link to post
Share on other sites
6 hours ago, thomasgrzybowski said:

Has anyone been able to use a Realtek 8188EU USB WiFi?

I got TP-Link USB WiFi with 8188EU Chipset running on a OrangePi One, but on Kernel 3.4.113:

dmesg
[    9.446473] RTL871X: rtl8188eu v4.3.0.6_12167.20140828
[    9.446481] RTL871X: build time: Jun 15 2017 02:14:59
[    9.538833] RTL871X: MAC Address from Efuse is e8:94:f6:15:a4:45
[    9.635919] RTL871X: rtw_ndev_init(wlan0)
[    9.637252] RTL871X: rtw_ndev_init(wlan1)
[    9.638499] usbcore: registered new interface driver rtl8188eu

root@orangepione:~# lsusb
Bus 002 Device 002: ID 0bda:8179 Realtek Semiconductor Corp. RTL8188EUS 802.11n Wireless Network Adapter

root@orangepione:~# lsmod
Module                  Size  Used by
8188eu                908230  0

root@orangepione:~# uname -a
Linux orangepione 3.4.113-sun8i #18 SMP PREEMPT Thu Jun 15 02:16:06 CEST 2017 armv7l armv7l armv7l GNU/Linux

root@orangepione:~# ifconfig
wlan1     Link encap:Ethernet  HWaddr ee:94:f6:15:a4:45
          inet addr:192.168.6.244  Bcast:192.168.6.255  Mask:255.255.255.0
          inet6 addr: fe80::ec94:f6ff:fe15:a445/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:4838 errors:0 dropped:785 overruns:0 frame:0
          TX packets:7229 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:653374 (653.3 KB)  TX bytes:2129363 (2.1 MB)

wlxe894f615a445 Link encap:Ethernet  HWaddr e8:94:f6:15:a4:45
          UP BROADCAST MULTICAST  MTU:1500  Metric:1
          RX packets:930 errors:0 dropped:2316 overruns:0 frame:0
          TX packets:932 errors:0 dropped:1 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:144376 (144.3 KB)  TX bytes:92677 (92.6 KB)
          
root@orangepione:/lib# find /lib -name *8188*
/lib/modules/3.4.113-sun8i/kernel/drivers/net/wireless/rtl8188eu
/lib/modules/3.4.113-sun8i/kernel/drivers/net/wireless/rtl8188eu/8188eu.ko
/lib/firmware/rtlwifi/rtl8188eufw.bin
/lib/firmware/rtlwifi/rtl8188efw.bin

 

Link to post
Share on other sites
5 hours ago, thomasgrzybowski said:

I rebooted the machine, but when I tried to activate the connection with nmtui or nmtui-connect, still no device shows up

 

You use nmtui[-connect] ONLY ONCE to activate a connection. Then NM stores a profile and will use this based on policies (eg. after reboot connecting to the wireless network defined in the respective profile -- if the profile contains the MAC address of the device you initiated the wifi connection the first time it will try to use this, if not then it will use any available wifi network device to connect. This works totally reliable).

 

So there's no need to fiddle around with /etc/network/interfaces, there's no need to call nmtui multiple times (only if you want to edit profiles later), there's especially no need to fiddle around with ifup and other conflicting stuff!

 

Remove everything you added to /etc/network/interfaces or in /etc/network/interfaces.d/ then remove every profile you defined below /etc/NetworkManager/system-connections/ then use nmtui-connect to join the wireless network and you're done. And as already said: If you want help you need to provide information ('armbianmonitor -u' and iwconfig output would be helpful too)

 

5 hours ago, thomasgrzybowski said:

DHCPDISCOVER on wlx0013ef800c58 to 255.255.255.255 port 67 interval 12 (xid=0xdb228974)

This means you joined already a wireless network (success on network layer 2! Check with iwconfig), now you need to figure out why DHCP isn't working (and therefore DNS as well if you chose to use DNS server provided by DHCP server -- you could have configured something different with nmtui) but that problem is located in the network you joined or in a messed up nmtui config (so better delete existing profiles and the stuff below /etc/network, reboot and simply start with nmtui-connect again)

Link to post
Share on other sites
4 minutes ago, tkaiser said:

Check with iwconfig

for comparison this is my iwconfig output of the 8188eu:
 

root@orangepione:/lib# iwconfig
lo        no wireless extensions.

wlan1     IEEE 802.11bgn  ESSID:"MR3020"  Nickname:"<WIFI@REALTEK>"
          Mode:Managed  Frequency:2.462 GHz  Access Point: F8:D1:11:9E:88:9A
          Bit Rate:150 Mb/s   Sensitivity:0/0
          Retry:off   RTS thr:off   Fragment thr:off
          Encryption key:****-****-****-****-****-****-****-****   Security mode:open
          Power Management:off
          Link Quality=99/100  Signal level=100/100  Noise level=0/100
          Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0
          Tx excessive retries:0  Invalid misc:0   Missed beacon:0

eth0      no wireless extensions.

wlxe894f615a445  unassociated  Nickname:"<WIFI@REALTEK>"
          Mode:Managed  Frequency=2.462 GHz  Access Point: Not-Associated
          Sensitivity:0/0
          Retry:off   RTS thr:off   Fragment thr:off
          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:0

 

Link to post
Share on other sites

Hmm, OK, I removed everything from /etc/network/interfaces, other than the loopback device.  Removed everything under  /etc/NetworkManager/system-connections/.  Rebooted the machine  to make things clean.  Then ran nmtui-connect.  Some progress:  I now see a "Wired connection 1" there, where there was nothing before.  Too bad I was expecting to see Wireless connection"   Anyway, when I hit <Activate> I get the message:

 

Could not activate connection: 'Connection 'Wired connection 1' is not available on the device eth0 at this time.

 

I'll next provide the info from iwconfig and armbianmonitor -u. 

 

Tom

Link to post
Share on other sites

Wow!  When I plugged-in an ethernet cable and then ran nmtui-connect again (sorry), the wireless interface showed up.  I was then able to activate it!  Now this is a little strange to me.  Here are the results from iwconfig:

 

iwconfig 
lo        no wireless extensions.

wlx0013ef800c58  IEEE 802.11bgn  ESSID:"verizon"  Nickname:"<WIFI@REALTEK>"
          Mode:Managed  Frequency:2.462 GHz  Access Point: 00:25:9C:13:CE:8B   
          Bit Rate:72.2 Mb/s   Sensitivity:60/0  
          Retry:off   RTS thr:off   Fragment thr:off
          Encryption key:off
          Power Management:off
          Link Quality=95/100  Signal level=-60 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

p2p0      unassociated  Nickname:"<WIFI@REALTEK>"
          Mode:Managed  Frequency=2.412 GHz  Access Point: Not-Associated   
          Sensitivity:0/0  
          Retry:off   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

eth0      no wireless extensions.
 

I have also attached the results of armbianmonitor -u, which did not transport (I wonder why not)

/var/log/armhwinfo.log has been uploaded to gzip: /var/log/armhwinfo.log.1.gz: No such file or directory
http://sprunge.us/MGeA
Please post the URL in the Armbian forum where you've been asked for.

.

.

Opps, no such file:  cannot access '/var/log/armhwinfo.log.1.gz': No such file or directory

 

Now, a general question, not to be critical, but I'm curious - why ARE we using nmtui  and nmtui-connect instead of the standard tools?

Link to post
Share on other sites

Cool - rebooted without the ethernet cable, and wifi came right up.  Also able to successfully run transfer the results of armbianmonitor -u:

 

/var/log/armhwinfo.log has been uploaded to http://sprunge.us/PhLR
Please post the URL in the Armbian forum where you've been asked for.

 

I'm happy this all works now - thanks everyone for your advice.  Would we expect the standard network tools to be used when this image is in production?

Link to post
Share on other sites
4 hours ago, thomasgrzybowski said:

gzip: /var/log/armhwinfo.log.1.gz: No such file or directory

This can only happen if /var/log/armhwinfo.log is either missing or empty. Did you also start to delete log files?

 

4 hours ago, thomasgrzybowski said:

why ARE we using nmtui  and nmtui-connect instead of the standard tools?

 

Since it just works? This thread now has 23 posts and all that would've been needed is

  • Booting Armbian image
  • Insert wireless dongle
  • (2 seconds waiting)
  • nmtui-connect

If driver is contained in the kernel and if firmware is contained in armbian-firmware package (as in your case) Wi-Fi is up and running after this (and if not 'armbianmonitor -u' output is needed). No need to fiddle around in config files and with interface names people seem to hate (and not understand).

 

If you love to configure Linux networking the anachronistic way (you call this 'standard' for reasons unknown to me) you can always do so. Just waste some hours of your live to get an idea how to get back primitive interface names (wlan0), how/why some wireless network adapters appear as more than 1 device by default (RealTek's p2p0 you see above for example), how/why network manager and Debian's/Ubuntu's 'classical' interfaces stuff interfere and how to deal properly with link status changes. As with every task you can spend hours on stuff that could be done within seconds --> nmtui/nmtui-connect.

 

BTW: the driver contained for the dongle spits out an awful lot of messages. Might be worth to open an issue at https://github.com/ayufan-rock64/linux-kernel to lower verbosity for drivers below drivers/net/wireless/rockchip_wlan/

Link to post
Share on other sites

Hi,

 

Just wanted to chime in here as I had a similar issue with a wifi adapter bought from Pine64.

My issue began with the fact that the aforementioned adapter would just randomly lose connection to my wifi router and at that point I could not even see the device in the USB tree using the 'lsusb -t' command.

In my case, I believe there was a hardware issue with the adapter I received so I decided on buying a new one, which used the same Realtek RTL8188EU chipset, namely a COMFAST CF-WU810N which works out of the box with the Rock64 in case anyone needs a compatible wifi adapter not sold by Pine64.

 

More to the point of this thread, the configuration of the wireless interface on Armbian Xenial can also be done without the use of the "NetworkManager" service.

 

  •  Optional Step:

 

I did not want to keep the horrid predictable/unique wireless interface name generated based on the device's MAC address so I added the below line in this file to assign it the name "wlan0".

* Please note, you need to change the 'ATTR(address)' field with your device's MAC address and REBOOT your machine so the kernel assigns the new interface name.

This change is reboot persistent and may be taken out by removing the "70-persistent-net.rules" file.

 

$ cat /etc/udev/rules.d/70-persistent-net.rules
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="40:a4:3f:98:a1:xt", ATTR{dev_id}=="0x0", ATTR{type}=="1", NAME="wlan0"
$

 

  •  Mandatory Steps:

 

Configure the wireless interface with a static IP address as below:

 

$ cat /etc/network/interfaces.d/wlan0

auto wlan0
allow-hotplug wlan0
iface wlan0 inet static
    address 192.168.1.10
    netmask 255.255.255.0
    #gateway 192.168.1.1
    dns-nameservers 192.168.1.1
    wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf
$

 

Next, you need to create the "wpa_supplicant.conf" file, where the details of your SSID (wIreless network name) are stored like below.

* Please note, you must change the 2 letter "country" code to your specific country, and the "ssid" & "psk" parameters to your network's name and password.


 

$ sudo cat /etc/wpa_supplicant/wpa_supplicant.conf

ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
country=<YourCountryCode>

network={
    ssid="YourWirelessNetworkName"
    key_mgmt=WPA-PSK
    psk="YourSecretPassword"
}
$

 

The last step implies performing a link down/up of the interface.

 

ip link set interface_name down && ip link set interface_name up

 

 

Link to post
Share on other sites
Guest
This topic is now closed to further replies.