Hello,
I used to run EDGE with a Windows ground station without problems, however now I switched to a linux and couldn’t follow to quick start guide.
When I try to install the WiFi driver with to command:
sudo ./install-rtl8812au
I got the following error message:
gabriel@gabriel-note:~/Downloads/edge/8812au$ sudo ./install-rtl8812au
[sudo] senha para gabriel:
EFI variables are not supported on this system
Building the module
make ARCH=x86_64 CROSS_COMPILE= -C /lib/modules/5.3.0-26-generic/build M=/home/gabriel/Downloads/edge/8812au modules
make[1]: Entering directory ‘/usr/src/linux-headers-5.3.0-26-generic’
CC [M] /home/gabriel/Downloads/edge/8812au/core/rtw_cmd.o
CC [M] /home/gabriel/Downloads/edge/8812au/core/rtw_security.o
CC [M] /home/gabriel/Downloads/edge/8812au/core/rtw_debug.o
CC [M] /home/gabriel/Downloads/edge/8812au/core/rtw_io.o
In file included from /home/gabriel/Downloads/edge/8812au/include/osdep_service.h:41,
from /home/gabriel/Downloads/edge/8812au/include/drv_types.h:32,
from /home/gabriel/Downloads/edge/8812au/core/rtw_io.c:52:
/home/gabriel/Downloads/edge/8812au/include/osdep_service_linux.h: In function ‘_init_timer’:
/home/gabriel/Downloads/edge/8812au/include/osdep_service_linux.h:277:8: error: ‘_timer’ {aka ‘struct timer_list’} has no member named ‘data’
277 | ptimer->data = (unsigned long)cntx;
| ^~
In file included from /home/gabriel/Downloads/edge/8812au/include/osdep_service.h:41,
from /home/gabriel/Downloads/edge/8812au/include/drv_types.h:32,
from /home/gabriel/Downloads/edge/8812au/core/rtw_cmd.c:22:
/home/gabriel/Downloads/edge/8812au/include/osdep_service_linux.h: In function ‘_init_timer’:
/home/gabriel/Downloads/edge/8812au/include/osdep_service_linux.h:277:8: error: ‘_timer’ {aka ‘struct timer_list’} has no member named ‘data’
277 | ptimer->data = (unsigned long)cntx;
| ^~
/home/gabriel/Downloads/edge/8812au/include/osdep_service_linux.h:278:2: error: implicit declaration of function ‘init_timer’; did you mean ‘_init_timer’? [-Werror=implicit-function-declaration]
278 | init_timer(ptimer);
| ^~~~~~~~~~
| _init_timer
/home/gabriel/Downloads/edge/8812au/include/osdep_service_linux.h:278:2: error: implicit declaration of function ‘init_timer’; did you mean ‘_init_timer’? [-Werror=implicit-function-declaration]
278 | init_timer(ptimer);
| ^~~~~~~~~~
| _init_timer
In file included from /home/gabriel/Downloads/edge/8812au/include/drv_types.h:35,
from /home/gabriel/Downloads/edge/8812au/core/rtw_io.c:52:
/home/gabriel/Downloads/edge/8812au/include/wifi.h: At top level:
/home/gabriel/Downloads/edge/8812au/include/wifi.h:1019: warning: “IEEE80211_MAX_AMPDU_BUF” redefined
1019 | #define IEEE80211_MAX_AMPDU_BUF 0x40
|
In file included from ./include/net/cfg80211.h:21,
from /home/gabriel/Downloads/edge/8812au/include/osdep_service_linux.h:91,
from /home/gabriel/Downloads/edge/8812au/include/osdep_service.h:41,
from /home/gabriel/Downloads/edge/8812au/include/drv_types.h:32,
from /home/gabriel/Downloads/edge/8812au/core/rtw_io.c:52:
./include/linux/ieee80211.h:1441: note: this is the location of the previous definition
1441 | #define IEEE80211_MAX_AMPDU_BUF 0x100
|
In file included from /home/gabriel/Downloads/edge/8812au/include/drv_types.h:35,
from /home/gabriel/Downloads/edge/8812au/core/rtw_cmd.c:22:
/home/gabriel/Downloads/edge/8812au/include/wifi.h: At top level:
/home/gabriel/Downloads/edge/8812au/include/wifi.h:1019: warning: “IEEE80211_MAX_AMPDU_BUF” redefined
1019 | #define IEEE80211_MAX_AMPDU_BUF 0x40
|
In file included from ./include/net/cfg80211.h:21,
from /home/gabriel/Downloads/edge/8812au/include/osdep_service_linux.h:91,
from /home/gabriel/Downloads/edge/8812au/include/osdep_service.h:41,
from /home/gabriel/Downloads/edge/8812au/include/drv_types.h:32,
from /home/gabriel/Downloads/edge/8812au/core/rtw_cmd.c:22:
./include/linux/ieee80211.h:1441: note: this is the location of the previous definition
1441 | #define IEEE80211_MAX_AMPDU_BUF 0x100
|
In file included from /home/gabriel/Downloads/edge/8812au/include/osdep_service.h:41,
from /home/gabriel/Downloads/edge/8812au/include/drv_types.h:32,
from /home/gabriel/Downloads/edge/8812au/core/rtw_debug.c:22:
/home/gabriel/Downloads/edge/8812au/include/osdep_service_linux.h: In function ‘_init_timer’:
/home/gabriel/Downloads/edge/8812au/include/osdep_service_linux.h:277:8: error: ‘_timer’ {aka ‘struct timer_list’} has no member named ‘data’
277 | ptimer->data = (unsigned long)cntx;
| ^~
In file included from /home/gabriel/Downloads/edge/8812au/include/osdep_service.h:41,
from /home/gabriel/Downloads/edge/8812au/include/drv_types.h:32,
from /home/gabriel/Downloads/edge/8812au/core/rtw_security.c:22:
/home/gabriel/Downloads/edge/8812au/include/osdep_service_linux.h: In function ‘_init_timer’:
/home/gabriel/Downloads/edge/8812au/include/osdep_service_linux.h:277:8: error: ‘_timer’ {aka ‘struct timer_list’} has no member named ‘data’
277 | ptimer->data = (unsigned long)cntx;
| ^~
/home/gabriel/Downloads/edge/8812au/include/osdep_service_linux.h:278:2: error: implicit declaration of function ‘init_timer’; did you mean ‘_init_timer’? [-Werror=implicit-function-declaration]
278 | init_timer(ptimer);
| ^~~~~~~~~~
| _init_timer
/home/gabriel/Downloads/edge/8812au/include/osdep_service_linux.h:278:2: error: implicit declaration of function ‘init_timer’; did you mean ‘_init_timer’? [-Werror=implicit-function-declaration]
278 | init_timer(ptimer);
| ^~~~~~~~~~
| _init_timer
In file included from /home/gabriel/Downloads/edge/8812au/include/drv_types.h:35,
from /home/gabriel/Downloads/edge/8812au/core/rtw_debug.c:22:
/home/gabriel/Downloads/edge/8812au/include/wifi.h: At top level:
/home/gabriel/Downloads/edge/8812au/include/wifi.h:1019: warning: “IEEE80211_MAX_AMPDU_BUF” redefined
1019 | #define IEEE80211_MAX_AMPDU_BUF 0x40
|
In file included from ./include/net/cfg80211.h:21,
from /home/gabriel/Downloads/edge/8812au/include/osdep_service_linux.h:91,
from /home/gabriel/Downloads/edge/8812au/include/osdep_service.h:41,
from /home/gabriel/Downloads/edge/8812au/include/drv_types.h:32,
from /home/gabriel/Downloads/edge/8812au/core/rtw_debug.c:22:
./include/linux/ieee80211.h:1441: note: this is the location of the previous definition
1441 | #define IEEE80211_MAX_AMPDU_BUF 0x100
|
In file included from /home/gabriel/Downloads/edge/8812au/include/drv_types.h:35,
from /home/gabriel/Downloads/edge/8812au/core/rtw_security.c:22:
/home/gabriel/Downloads/edge/8812au/include/wifi.h: At top level:
/home/gabriel/Downloads/edge/8812au/include/wifi.h:1019: warning: “IEEE80211_MAX_AMPDU_BUF” redefined
1019 | #define IEEE80211_MAX_AMPDU_BUF 0x40
|
In file included from ./include/net/cfg80211.h:21,
from /home/gabriel/Downloads/edge/8812au/include/osdep_service_linux.h:91,
from /home/gabriel/Downloads/edge/8812au/include/osdep_service.h:41,
from /home/gabriel/Downloads/edge/8812au/include/drv_types.h:32,
from /home/gabriel/Downloads/edge/8812au/core/rtw_security.c:22:
./include/linux/ieee80211.h:1441: note: this is the location of the previous definition
1441 | #define IEEE80211_MAX_AMPDU_BUF 0x100
|
cc1: some warnings being treated as errors
make[2]: *** [scripts/Makefile.build:290: /home/gabriel/Downloads/edge/8812au/core/rtw_io.o] Error 1
make[2]: ** Esperando que outros processos terminem.
/home/gabriel/Downloads/edge/8812au/core/rtw_debug.c: In function ‘dump_drv_version’:
/home/gabriel/Downloads/edge/8812au/core/rtw_debug.c:71:64: warning: macro “DATE” might prevent reproducible builds [-Wdate-time]
71 | DBG_871X_SEL_NL(sel, “build time: %s %s\n”, DATE, TIME);
| ^
In file included from /home/gabriel/Downloads/edge/8812au/include/drv_types.h:65,
from /home/gabriel/Downloads/edge/8812au/core/rtw_debug.c:22:
/home/gabriel/Downloads/edge/8812au/core/rtw_debug.c:71:46: warning: macro “TIME” might prevent reproducible builds [-Wdate-time]
71 | DBG_871X_SEL_NL(sel, “build time: %s %s\n”, DATE, TIME);
| ^~~~~~~~
/home/gabriel/Downloads/edge/8812au/include/rtw_debug.h:205:43: note: in definition of macro ‘DBG_871X_LEVEL’
205 | _dbgdump(DRIVER_PREFIX"ERROR " fmt, ##arg);
| ^~~
/home/gabriel/Downloads/edge/8812au/core/rtw_debug.c:71:2: note: in expansion of macro ‘DBG_871X_SEL_NL’
71 | DBG_871X_SEL_NL(sel, “build time: %s %s\n”, DATE, TIME);
| ^~~~~~~~~~~~~~~
/home/gabriel/Downloads/edge/8812au/core/rtw_debug.c:71:56: warning: macro “DATE” might prevent reproducible builds [-Wdate-time]
71 | DBG_871X_SEL_NL(sel, “build time: %s %s\n”, DATE, TIME);
| ^~~~~~~~
/home/gabriel/Downloads/edge/8812au/include/rtw_debug.h:205:43: note: in definition of macro ‘DBG_871X_LEVEL’
205 | _dbgdump(DRIVER_PREFIX"ERROR " fmt, ##arg);
| ^~~
/home/gabriel/Downloads/edge/8812au/core/rtw_debug.c:71:2: note: in expansion of macro ‘DBG_871X_SEL_NL’
71 | DBG_871X_SEL_NL(sel, “build time: %s %s\n”, DATE, TIME);
| ^~~~~~~~~~~~~~~
/home/gabriel/Downloads/edge/8812au/core/rtw_debug.c:71:46: warning: macro “TIME” might prevent reproducible builds [-Wdate-time]
71 | DBG_871X_SEL_NL(sel, “build time: %s %s\n”, DATE, TIME);
| ^~~~~~~~
/home/gabriel/Downloads/edge/8812au/include/rtw_debug.h:207:35: note: in definition of macro ‘DBG_871X_LEVEL’
207 | _dbgdump(DRIVER_PREFIX fmt, ##arg);
| ^~~
/home/gabriel/Downloads/edge/8812au/core/rtw_debug.c:71:2: note: in expansion of macro ‘DBG_871X_SEL_NL’
71 | DBG_871X_SEL_NL(sel, “build time: %s %s\n”, DATE, TIME);
| ^~~~~~~~~~~~~~~
/home/gabriel/Downloads/edge/8812au/core/rtw_debug.c:71:56: warning: macro “DATE” might prevent reproducible builds [-Wdate-time]
71 | DBG_871X_SEL_NL(sel, “build time: %s %s\n”, DATE, TIME);
| ^~~~~~~~
/home/gabriel/Downloads/edge/8812au/include/rtw_debug.h:207:35: note: in definition of macro ‘DBG_871X_LEVEL’
207 | _dbgdump(DRIVER_PREFIX fmt, ##arg);
| ^~~
/home/gabriel/Downloads/edge/8812au/core/rtw_debug.c:71:2: note: in expansion of macro ‘DBG_871X_SEL_NL’
71 | DBG_871X_SEL_NL(sel, “build time: %s %s\n”, DATE, TIME);
| ^~~~~~~~~~~~~~~
/home/gabriel/Downloads/edge/8812au/core/rtw_debug.c:71:46: warning: macro “TIME” might prevent reproducible builds [-Wdate-time]
71 | DBG_871X_SEL_NL(sel, “build time: %s %s\n”, DATE, TIME);
| ^~~~~~~~
/home/gabriel/Downloads/edge/8812au/include/rtw_debug.h:242:25: note: in definition of macro ‘DBG_871X_SEL_NL’
242 | _seqdump(sel, fmt, ##arg) /rtw_warn_on(1)/;
| ^~~
/home/gabriel/Downloads/edge/8812au/core/rtw_security.c: In function ‘aes_cipher’:
/home/gabriel/Downloads/edge/8812au/core/rtw_security.c:1598:5: warning: this ‘for’ clause does not guard… [-Wmisleading-indentation]
1598 | for (j = 0; j < 8; j++)
| ^~~
/home/gabriel/Downloads/edge/8812au/core/rtw_security.c:1601:2: note: …this statement, but the latter is misleadingly indented as if it were guarded by the ‘for’
1601 | payload_index = hdrlen + 8;
| ^~~~~~~~~~~~~
/home/gabriel/Downloads/edge/8812au/core/rtw_security.c: In function ‘aes_decipher’:
/home/gabriel/Downloads/edge/8812au/core/rtw_security.c:1984:5: warning: this ‘for’ clause does not guard… [-Wmisleading-indentation]
1984 | for (j = 0; j < 8; j++)
| ^~~
/home/gabriel/Downloads/edge/8812au/core/rtw_security.c:1987:2: note: …this statement, but the latter is misleadingly indented as if it were guarded by the ‘for’
1987 | payload_index = hdrlen + 8;
| ^~~~~~~~~~~~~
cc1: some warnings being treated as errors
make[2]: *** [scripts/Makefile.build:290: /home/gabriel/Downloads/edge/8812au/core/rtw_security.o] Error 1
cc1: some warnings being treated as errors
make[2]: *** [scripts/Makefile.build:290: /home/gabriel/Downloads/edge/8812au/core/rtw_cmd.o] Error 1
cc1: some warnings being treated as errors
make[2]: *** [scripts/Makefile.build:290: /home/gabriel/Downloads/edge/8812au/core/rtw_debug.o] Error 1
make[1]: *** [Makefile:1655: module/home/gabriel/Downloads/edge/8812au] Error 2
make[1]: Leaving directory ‘/usr/src/linux-headers-5.3.0-26-generic’
make: *** [Makefile:1717: modules] Error 2
Adding udev rule for 8812au device
Installing the module…
install -p -m 644 8812au.ko /lib/modules/5.3.0-26-generic/kernel/drivers/net/wireless/
install: não foi possível obter estado de ‘8812au.ko’: Arquivo ou diretório inexistente
make: *** [Makefile:1723: install] Error 1
modprobe: FATAL: Module 8812au not found in directory /lib/modules/5.3.0-26-generic
gabriel@gabriel-note:~/Downloads/edge/8812au$
As you can see, the problem is related to EFI variables. I’m no linux expert and I know it’s related to my PC, not EMLID software. Any ideas of how I should procede?
I am running Ubuntu 19.10 64 bits, already installed and runned QGroundControl, no issues with linux OS so far.