XU4 vs RPi using ODROID 802.11ac USB adapter [SOLVED]

Moderators: mdrjr, odroid

XU4 vs RPi using ODROID 802.11ac USB adapter [SOLVED]

Unread postby CalebCarroll » Fri Sep 01, 2017 9:46 am

Config Summary:
I used the same ODROID 802.11ac adapter for both tests.
I used the same kernel module from here: https://github.com/gnab/rtl8812au on both systems.
I tried both the USB 3.0 ports and the USB 2.0 port on the XU4 but throughput results were the same


Result Summary:
Raspberry Pi 3 model B throughput with the ODROID 802.11ac adapter connected to a USB 2.0 port (The RPi only has USB 2.0) was double that of the XU4.. How embarrassing! ;-)


XU4 - kernel 4.9.44-56
root@odroid:~ # cd /run

root@odroid:/run # iwconfig wlan0
wlan0 IEEE 802.11AC ESSID:"Nova58" Nickname:"<WIFI@REALTEK>"
Mode:Managed Frequency:5.785 GHz Access Point: D8:50:E6:D0:BF:B4
Bit Rate:867 Mb/s Sensitivity:0/0
Retry:off RTS thr:off Fragment thr:off
Encryption key:****-****-****-****-****-****-****-**** Security mode:open
Power Management:off
Link Quality=100/100 Signal level=74/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

root@odroid:/run # dd if=/dev/zero of=100M bs=8192 count=12800
12800+0 records in
12800+0 records out
104857600 bytes (105 MB, 100 MiB) copied, 0.168926 s, 621 MB/s

root@odroid:/run # rm 100M
rm: remove regular file '100M'? y

root@odroid:/run # wget http://192.168.100.60/100M; rm -f 100M
--2017-08-31 23:56:55-- http://192.168.100.60/100M
Connecting to 192.168.100.60:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 104857600 (100M) [text/plain]
Saving to: '100M'

100M 100%[===============================================================>] 100.00M 16.1MB/s in 6.3s

2017-08-31 23:27:01 (15.8 MB/s) - '100M' saved [104857600/104857600]

RPi v3 Model B - kernel 4.9.46-v7+
root@raspberrypi:~ # cd /run

root@raspberrypi:/run # iwconfig wlan1
wlan1 IEEE 802.11AC ESSID:"Nova58" Nickname:"<WIFI@REALTEK>"
Mode:Managed Frequency:5.785 GHz Access Point: D8:50:E6:D0:BF:B4
Bit Rate:867 Mb/s Sensitivity:0/0
Retry:off RTS thr:off Fragment thr:off
Encryption key:****-****-****-****-****-****-****-**** Security mode:open
Power Management:off
Link Quality=100/100 Signal level=74/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

root@raspberrypi:/run # dd if=/dev/zero of=100M bs=8192 count=12800
12800+0 records in
12800+0 records out
104857600 bytes (105 MB) copied, 0.262472 s, 400 MB/s

root@raspberrypi:/run # rm 100M
rm: remove regular file '100M'? y

root@raspberrypi:/run # wget http://192.168.100.60/100M; rm -f 100M
converted 'http://192.168.100.60/100M' (ANSI_X3.4-1968) -> 'http://192.168.100.60/100M' (UTF-8)
--2017-09-01 00:20:58-- http://192.168.100.60/100M
Connecting to 192.168.100.60:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 104857600 (100M) [text/plain]
Saving to: '100M'

100M 100%[=================================================================>] 100.00M 30.3MB/s in 3.4s

2017-09-01 00:21:02 (29.8 MB/s) - '100M' saved [104857600/104857600]
Last edited by CalebCarroll on Thu Sep 14, 2017 1:53 am, edited 1 time in total.
CalebCarroll
 
Posts: 7
Joined: Wed Aug 30, 2017 6:37 am
languages_spoken: english
ODROIDs: XU4

Re: XU4 vs RPi using ODROID 802.11ac USB adapter

Unread postby odroid » Fri Sep 01, 2017 10:45 am

Our kernel has the RTL8812AU driver by default which works with our WiFi module 5 out of the box.
According to our iperf test result, the transfer rate should be over 30MB/s(250Mbps) on XU4.
https://wiki.odroid.com/accessory/conne ... oid_series

Anyway, we will try your test procedure early next week.
User avatar
odroid
Site Admin
 
Posts: 24288
Joined: Fri Feb 22, 2013 11:14 pm
languages_spoken: English
ODROIDs: ODROID

Re: XU4 vs RPi using ODROID 802.11ac USB adapter

Unread postby CalebCarroll » Fri Sep 01, 2017 11:47 am

odroid wrote:Our kernel has the RTL8812AU driver by default which works with our WiFi module 5 out of the box.
According to our iperf test result, the transfer rate should be over 30MB/s(250Mbps) on XU4.
https://wiki.odroid.com/accessory/conne ... oid_series

Anyway, we will try your test procedure early next week.


I tried your driver first but the result was the same. I tried both the USB 2.0 port and the USB 3.0 port. The highest download speed I observed was 16MB/s.
CalebCarroll
 
Posts: 7
Joined: Wed Aug 30, 2017 6:37 am
languages_spoken: english
ODROIDs: XU4

Re: XU4 vs RPi using ODROID 802.11ac USB adapter

Unread postby Brian.K » Tue Sep 05, 2017 12:06 pm

That's weird. The performance must be almost same in the same network environment.
I tested Wifi Module 5 following @CalebCarroll's process. I executed the 'wget' command 5 times.

[*] ODROID-XU4 + Wifi Module 5 (5GHz): 21.3MB/s, 24.1MB/s, 25.2MB/s, 20.2MB/s, 23.0MB/s-> Average 22.76MB/s
[*] RPI3 Model B+ Wifi Module 5 (5GHz): 23.6MB/s, 24.7MB/s, 19.2MB/s, 25.1MB/s, 23.6MB/s -> Average 23.24MB/s


ODROID-XU4 log:
Code: Select all
root@odroid:/run# uname -a
Linux odroid 4.9.47 #11 SMP PREEMPT Mon Sep 4 15:52:04 KST 2017 armv7l armv7l armv7l GNU/Linux
root@odroid:/run# iwconfig wlan0
wlan0     IEEE 802.11AC  ESSID:"Hardkernel Lab 5G"  Nickname:"<WIFI@REALTEK>"
Mode:Managed  Frequency:5.18 GHz  Access Point: 90:9F:33:BA:37:00   
Bit Rate:867 Mb/s   Sensitivity:0/0 
Retry:off   RTS thr:off   Fragment thr:off
Encryption key:****-****-****-****-****-****-****-****   Security mode:open
Power Management:off
Link Quality=100/100  Signal level=61/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

root@odroid:/run# wget http://192.168.100.2/100M; rm -f 100M
--2017-09-05 02:54:34--  http://192.168.100.2/100M
Connecting to 192.168.100.2:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 104857600 (100M)
Saving to: ‘100M’

100M                100%[===================>] 100.00M  24.4MB/s    in 4.7s   

2017-09-05 02:54:39 (21.3 MB/s) - ‘100M’ saved [104857600/104857600]

root@odroid:/run# wget http://192.168.100.2/100M; rm -f 100M
--2017-09-05 02:54:45--  http://192.168.100.2/100M
Connecting to 192.168.100.2:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 104857600 (100M)
Saving to: ‘100M’

100M                100%[===================>] 100.00M  25.6MB/s    in 4.2s   

2017-09-05 02:54:49 (24.1 MB/s) - ‘100M’ saved [104857600/104857600]

root@odroid:/run# wget http://192.168.100.2/100M; rm -f 100M
--2017-09-05 02:54:50--  http://192.168.100.2/100M
Connecting to 192.168.100.2:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 104857600 (100M)
Saving to: ‘100M’

100M                100%[===================>] 100.00M  25.9MB/s    in 4.0s   

2017-09-05 02:54:54 (25.2 MB/s) - ‘100M’ saved [104857600/104857600]

root@odroid:/run# wget http://192.168.100.2/100M; rm -f 100M
--2017-09-05 02:54:55--  http://192.168.100.2/100M
Connecting to 192.168.100.2:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 104857600 (100M)
Saving to: ‘100M’

100M                100%[===================>] 100.00M  21.6MB/s    in 4.9s   

2017-09-05 02:55:00 (20.2 MB/s) - ‘100M’ saved [104857600/104857600]

root@odroid:/run# wget http://192.168.100.2/100M; rm -f 100M
--2017-09-05 02:55:01--  http://192.168.100.2/100M
Connecting to 192.168.100.2:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 104857600 (100M)
Saving to: ‘100M’

100M                100%[===================>] 100.00M  22.9MB/s    in 4.4s   

2017-09-05 02:55:05 (23.0 MB/s) - ‘100M’ saved [104857600/104857600]

RPI3 Model B log:
Code: Select all
root@max2play:/run# uname -a
Linux max2play 4.9.47-v7+ #1033 SMP Mon Sep 4 21:48:16 BST 2017 armv7l GNU/Linux
root@max2play:/run# iwconfig wlan0
wlan0     IEEE 802.11AC  ESSID:"Hardkernel Lab 5G"  Nickname:"<WIFI@REALTEK>"
          Mode:Managed  Frequency:5.18 GHz  Access Point: 90:9F:33:BA:37:00   
          Bit Rate:867 Mb/s   Sensitivity:0/0 
          Retry:off   RTS thr:off   Fragment thr:off
          Encryption key:****-****-****-****-****-****-****-****   Security mode:open
          Power Management:off
          Link Quality=100/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

root@max2play:/run# wget http://192.168.100.2/100M; rm -f 100M
--2017-09-05 04:44:42--  http://192.168.100.2/100M
Connecting to 192.168.100.2:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 104857600 (100M)
Saving to: ‘100M’

100M                                                                        100%[============================================================================================================================================================================================>] 100.00M  25.1MB/s   in 4.2s   

2017-09-05 04:44:46 (23.6 MB/s) - ‘100M’ saved [104857600/104857600]

root@max2play:/run# wget http://192.168.100.2/100M; rm -f 100M
--2017-09-05 04:47:04--  http://192.168.100.2/100M
Connecting to 192.168.100.2:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 104857600 (100M)
Saving to: ‘100M’

100M                                                                        100%[============================================================================================================================================================================================>] 100.00M  25.5MB/s   in 4.1s   

2017-09-05 04:47:08 (24.7 MB/s) - ‘100M’ saved [104857600/104857600]

root@max2play:/run# wget http://192.168.100.2/100M; rm -f 100M
--2017-09-05 04:47:33--  http://192.168.100.2/100M
Connecting to 192.168.100.2:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 104857600 (100M)
Saving to: ‘100M’

100M                                                                        100%[============================================================================================================================================================================================>] 100.00M  20.6MB/s   in 5.2s   

2017-09-05 04:47:39 (19.2 MB/s) - ‘100M’ saved [104857600/104857600]

root@max2play:/run# wget http://192.168.100.2/100M; rm -f 100M
--2017-09-05 04:47:41--  http://192.168.100.2/100M
Connecting to 192.168.100.2:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 104857600 (100M)
Saving to: ‘100M’

100M                                                                        100%[============================================================================================================================================================================================>] 100.00M  25.7MB/s   in 4.0s   

2017-09-05 04:47:45 (25.1 MB/s) - ‘100M’ saved [104857600/104857600]

root@max2play:/run# wget http://192.168.100.2/100M; rm -f 100M
--2017-09-05 04:47:45--  http://192.168.100.2/100M
Connecting to 192.168.100.2:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 104857600 (100M)
Saving to: ‘100M’

100M                                                                        100%[============================================================================================================================================================================================>] 100.00M  23.6MB/s   in 4.2s   

2017-09-05 04:47:50 (23.6 MB/s) - ‘100M’ saved [104857600/104857600]
User avatar
Brian.K
 
Posts: 244
Joined: Tue Sep 15, 2015 7:30 pm
Location: South Korea
languages_spoken: English, Korean
ODROIDs: XU4, C1+, C2

Re: XU4 vs RPi using ODROID 802.11ac USB adapter

Unread postby crashoverride » Tue Sep 05, 2017 12:53 pm

I would recommend checking whether the driver is placing the device into USB3 mode. The numbers reported are close to USB2 limits. Also, I have seen other WiFi devices that have USB3 (blue) connector but internally only connect the USB2 lines to the wifi chip.
crashoverride
 
Posts: 3058
Joined: Tue Dec 30, 2014 8:42 pm
languages_spoken: english
ODROIDs: C1

Re: XU4 vs RPi using ODROID 802.11ac USB adapter

Unread postby odroid » Tue Sep 05, 2017 1:16 pm

It was detected at USB 3.0 Super-speed mode. But the throughput is limited at USB 2.0 high-speed mode.
I think the Realtek Linux driver still has the problem since we could reproduce the issue with x86 Linux PC too.
User avatar
odroid
Site Admin
 
Posts: 24288
Joined: Fri Feb 22, 2013 11:14 pm
languages_spoken: English
ODROIDs: ODROID

Re: XU4 vs RPi using ODROID 802.11ac USB adapter

Unread postby mad_ady » Tue Sep 05, 2017 7:25 pm

For speed tests with wget I suggest writing to /dev/null instead of using a ramdrive. It allows longer tests which are crucial in wifi environments because early packet loss can affect tcp speed ramp-up.
Something like
Code: Select all
wget -O /dev/null http://192.168.100.60/1000M
User avatar
mad_ady
 
Posts: 2379
Joined: Wed Jul 15, 2015 5:00 pm
Location: Bucharest, Romania
languages_spoken: english
ODROIDs: XU4, C1+, C2

Re: XU4 vs RPi using ODROID 802.11ac USB adapter

Unread postby CalebCarroll » Wed Sep 06, 2017 9:02 am

Sending wget output to /dev/null and downloading a 1000M file created using dd if=/dev/urandom of=1000M bs=1024 count=1024000
With the XU4, I see download speeds ranging from 16 to 25MB/s. With the RPi, results are more consistent ranging from 28 to 31 MB/s
I tried to make the tests as similar as possible by keeping the USB 802.11ac adapter in the same physical location for each test.

This is the fastest download I observed - 33.2MB/s !
root@raspberrypi:~ # wget -O /dev/null http://192.168.100.60/1000M
converted 'http://192.168.100.60/1000M' (ANSI_X3.4-1968) -> 'http://192.168.100.60/1000M' (UTF-8)
--2017-09-05 23:35:26-- http://192.168.100.60/1000M
Connecting to 192.168.100.60:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 1073741824 (1.0G) [text/plain]
Saving to: '/dev/null'

/dev/null 100%[=======================================================================================================================>] 1.00G 33.2MB/s in 46s s

2017-09-05 23:36:12 (22.3 MB/s) - '/dev/null' saved [1073741824/1073741824]

One other observation that may be related to this issue is that it takes a long time for the XU4 to receive an IP address for the interface. If I use your 8812au kernel module, it usually takes a very, very long time to get an IP address. If I use this kernel module: https://github.com/gnab/rtl8812au , it still usually takes a few minutes to get an IP address. The behaviour is very inconsistent. The same adapter attached to the RPi always gets an IP address in response to the first DHCP DISCOVER message that is sent.

Using tcpdump to watch wlan0 on XU4 shows DHCP DISCOVER being sent but DHCP OFFER is not received. Server is sending DHCP OFFER -
DHCP server log shows it took 20 minutes before the XU4 finally saw one of the DHCP OFFER messages that were being sent:
Sep 5 17:10:42 router dhcpd: DHCPDISCOVER from 40:a5:ef:d5:32:0b via eth1
Sep 5 17:10:42 router dhcpd: DHCPOFFER on 192.168.100.66 to 40:a5:ef:d5:32:0b via eth1
Sep 5 17:10:49 router dhcpd: DHCPDISCOVER from 40:a5:ef:d5:32:0b via eth1
Sep 5 17:10:49 router dhcpd: DHCPOFFER on 192.168.100.66 to 40:a5:ef:d5:32:0b via eth1
Sep 5 17:11:01 router dhcpd: DHCPDISCOVER from 40:a5:ef:d5:32:0b via eth1
Sep 5 17:11:01 router dhcpd: DHCPOFFER on 192.168.100.66 to 40:a5:ef:d5:32:0b via eth1
.
.
Sep 5 17:32:01 router dhcpd: DHCPACK on 192.168.100.66 to 40:a5:ef:d5:32:0b via eth1
CalebCarroll
 
Posts: 7
Joined: Wed Aug 30, 2017 6:37 am
languages_spoken: english
ODROIDs: XU4

Re: XU4 vs RPi using ODROID 802.11ac USB adapter

Unread postby CalebCarroll » Sun Sep 10, 2017 1:39 pm

Good news everyone!

I compiled from a new source and it solved both problems.
- I am getting around 30MB/s on every download.
- The ODROID 802.11ac Module 5 is now connecting to my network within seconds of booting.

The source is here:
https://github.com/gordboy/rtl8812au

The Makefile needs to be modified with appropriate compiler options for XU4:
Code: Select all
CONFIG_PLATFORM_I386_PC = n
CONFIG_PLATFORM_ARM_HF = y

# RPi & XU4 config
ifeq ($(CONFIG_PLATFORM_ARM_HF), y)
EXTRA_CFLAGS += -DCONFIG_LITTLE_ENDIAN
EXTRA_CFLAGS += -DCONFIG_IOCTL_CFG80211 -DRTW_USE_CFG80211_STA_EVENT
ARCH := arm
CROSS_COMPILE :=
KVER  := $(shell uname -r)
KSRC := /lib/modules/$(KVER)/build
MODDESTDIR := /lib/modules/$(KVER)/kernel/drivers/net/wireless/rtl8812au/
endif
CalebCarroll
 
Posts: 7
Joined: Wed Aug 30, 2017 6:37 am
languages_spoken: english
ODROIDs: XU4


Return to Issues

Who is online

Users browsing this forum: No registered users and 2 guests