Hi, I recently bought a Vero 4K and the wifi dongle from the osmc store. Today I connected the dongle to the Vero 4K but it does not work. The device appears as 0e8d:7610 MediaTek Inc.
Shouldn’t the driver/firmware for this device (MT7610U) be included by default in osmc?
The onboard wifi works fine but I’d like to try the dongle too, to see if I can get a better signal with a usb extension, also maybe connect to two wifi networks simultaneously in the future.
If you haven’t done so already, you need to copy the file /lib/firmware/mt7610u_sta.template.dat to /lib/firmware/mt7610u_sta.dat and edit it (it’s a config file) for your applicable situation.
I see, well in the store it is stated that there is “Guaranteed compatibility and easy setup with OSMC”, which is quite misleading, potential buyers should be made aware of the fact that currently the Vero 4K is not supported.
I have a similar chip (idVendor=0e8d, idProduct=7612) in an external USB WiFi adapter[1]. The adapter has two rather large external antennas and I hope to get better connectivity for my Vero 4K+. Would it be possible to include the mt76[2] driver for the MediaTek 7612U chip?
WARNING: Symbol version dump KERNEL-DIR/vero364-source-3.14.29-157-osmc/Module.symvers
is missing; modules will have no dependencies and modversions.
CC [M] DRIVER-DIR/os/linux/…/…/sta/assoc.o
In file included from DRIVER-DIR/include/rt_config.h:54,
from DRIVER-DIR/os/linux/…/…/sta/assoc.c:28:
DRIVER-DIR/include/rtmp.h:606:18: error: ‘TX_RING_SIZE’ undeclared here (not in a function); did you mean ‘TXINFO_SIZE’?
606 | RTMP_DMACB Cell[TX_RING_SIZE];
| ^~~~~~~~~~~~
| TXINFO_SIZE
DRIVER-DIR/include/rtmp.h:617:18: error: ‘RX_RING_SIZE’ undeclared here (not in a function); did you mean ‘RXINFO_SIZE’?
617 | RTMP_DMACB Cell[RX_RING_SIZE];
| ^~~~~~~~~~~~
| RXINFO_SIZE
DRIVER-DIR/include/rtmp.h:628:18: error: ‘MGMT_RING_SIZE’ undeclared here (not in a function)
628 | RTMP_DMACB Cell[MGMT_RING_SIZE];
| ^~~~~~~~~~~~~~
DRIVER-DIR/os/linux/…/…/sta/assoc.c: In function ‘AssocTimeout’:
DRIVER-DIR/os/linux/…/…/sta/assoc.c:81:2: warning: implicit declaration of function ‘RTMP_MLME_HANDLER’; did you mean ‘RTMP_TIME_AFTER’? [-Wimplicit-function-declaration]
81 | RTMP_MLME_HANDLER(pAd);
| ^~~~~~~~~~~~~~~~~
| RTMP_TIME_AFTER
make[2]: *** [scripts/Makefile.build:309: DRIVER-DIR/os/linux/…/…/sta/assoc.o] Error 1
make[1]: *** [Makefile:1291: _module_DRIVER-DIR/os/linux] Error 2
make[1]: Leaving directory ‘KERNEL-DIR/vero364-source-3.14.29-157-osmc’
make: *** [Makefile:391: LINUX] Error 2
I took a quick stab at this using the OSMC aarch64 toolchain on the Vero4K (package: aarch64-toolchain-osmc). Unfortunately, it fails with what seems to be an incorrect header:
root@osmc-4k:/home/DPO# CHIPSET=mt7612u make
make -C tools
make[1]: Entering directory '/home/DPO/tools'
gcc -g bin2h.c -o bin2h
make[1]: Leaving directory '/home/DPO/tools'
/home/DPO/tools/bin2h
chipset = mt7612u
cp -f os/linux/Makefile.6 /home/DPO/os/linux/Makefile
make -C /lib/modules/3.14.29-158-osmc/build SUBDIRS=/home/DPO/os/linux modules
make[1]: Entering directory '/usr/src/vero364-headers-3.14.29-158-osmc'
KBUILD_CFLAGS_MODULE:-DMODULE -mfix-cortex-a53-843419 -mfix-cortex-a53-835769
CC [M] /home/DPO/os/linux/../../sta/assoc.o
In file included from /usr/src/vero364-headers-3.14.29-158-osmc/arch/arm64/include/asm/dma-mapping.h:27:0,
from include/linux/dma-mapping.h:76,
from include/linux/skbuff.h:33,
from include/linux/if_ether.h:23,
from include/uapi/linux/ethtool.h:17,
from include/linux/ethtool.h:16,
from include/linux/netdevice.h:42,
from /home/DPO/include/os/rt_linux.h:29,
from /home/DPO/include/rtmp_os.h:46,
from /home/DPO/include/rtmp_comm.h:76,
from /home/DPO/include/rt_config.h:35,
from /home/DPO/os/linux/../../sta/assoc.c:28:
/usr/src/vero364-headers-3.14.29-158-osmc/arch/arm64/include/asm/xen/hypervisor.h:1:50: fatal error: ../../arm/include/asm/xen/hypervisor.h: No such file or directory
#include <../../arm/include/asm/xen/hypervisor.h>
^
compilation terminated.
scripts/Makefile.build:308: recipe for target '/home/DPO/os/linux/../../sta/assoc.o' failed
make[2]: *** [/home/DPO/os/linux/../../sta/assoc.o] Error 1
Makefile:1291: recipe for target '_module_/home/DPO/os/linux' failed
make[1]: *** [_module_/home/DPO/os/linux] Error 2
make[1]: Leaving directory '/usr/src/vero364-headers-3.14.29-158-osmc'
Makefile:390: recipe for target 'LINUX' failed
make: *** [LINUX] Error 2
This error is real:
/usr/src/vero364-headers-3.14.29-158-osmc/arch/arm64/include/asm/xen/hypervisor.h:1:50: fatal error: ../../arm/include/asm/xen/hypervisor.h: No such file or directory
#include <../../arm/include/asm/xen/hypervisor.h>
The first header contains a single line #include pointing to ../../arm/include/asm/xen/hypervisor.h that doesn’t exist. In fact ../../arm doesn’t have an include directory. There are only two hypervisor.h files in the headers package and they’re both under arm64:
Anyway, exactly almost the same error occurs on a Pi 3 (4.19.122 kernel with fixed headers).
root@osmc:/home/DPO# CHIPSET=mt7612u make
make -C tools
make[1]: Entering directory '/home/DPO/tools'
gcc -g bin2h.c -o bin2h
make[1]: Leaving directory '/home/DPO/tools'
/home/DPO/tools/bin2h
chipset = mt7612u
cp -f os/linux/Makefile.6 /home/DPO/os/linux/Makefile
make -C /lib/modules/4.19.122-1-osmc/build SUBDIRS=/home/DPO/os/linux modules
make[1]: Entering directory '/usr/src/rbp2-headers-4.19.122-1-osmc'
CC [M] /home/DPO/os/linux/../../sta/assoc.o
In file included from /home/DPO/include/os/rt_linux.h:85:0,
from /home/DPO/include/rtmp_os.h:46,
from /home/DPO/include/rtmp_comm.h:76,
from /home/DPO/include/rt_config.h:35,
from /home/DPO/os/linux/../../sta/assoc.c:28:
/home/DPO/include/cfg80211.h:39:49: error: ‘IEEE80211_NUM_BANDS’ undeclared here (not in a function)
struct ieee80211_supported_band Cfg80211_bands[IEEE80211_NUM_BANDS];
^~~~~~~~~~~~~~~~~~~
In file included from /home/DPO/include/rt_config.h:54:0,
from /home/DPO/os/linux/../../sta/assoc.c:28:
/home/DPO/include/rtmp.h:606:18: error: ‘TX_RING_SIZE’ undeclared here (not in a function)
RTMP_DMACB Cell[TX_RING_SIZE];
^~~~~~~~~~~~
/home/DPO/include/rtmp.h:617:18: error: ‘RX_RING_SIZE’ undeclared here (not in a function)
RTMP_DMACB Cell[RX_RING_SIZE];
^~~~~~~~~~~~
/home/DPO/include/rtmp.h:628:18: error: ‘MGMT_RING_SIZE’ undeclared here (not in a function)
RTMP_DMACB Cell[MGMT_RING_SIZE];
^~~~~~~~~~~~~~
/home/DPO/os/linux/../../sta/assoc.c: In function ‘AssocTimeout’:
/home/DPO/os/linux/../../sta/assoc.c:81:2: error: implicit declaration of function ‘RTMP_MLME_HANDLER’ [-Werror=implicit-function-declaration]
RTMP_MLME_HANDLER(pAd);
^~~~~~~~~~~~~~~~~
cc1: some warnings being treated as errors
scripts/Makefile.build:303: recipe for target '/home/DPO/os/linux/../../sta/assoc.o' failed
make[2]: *** [/home/DPO/os/linux/../../sta/assoc.o] Error 1
Makefile:1522: recipe for target '_module_/home/DPO/os/linux' failed
make[1]: *** [_module_/home/DPO/os/linux] Error 2
make[1]: Leaving directory '/usr/src/rbp2-headers-4.19.122-1-osmc'
Makefile:390: recipe for target 'LINUX' failed
make: *** [LINUX] Error 2
If I understand the wiki page [1] correctly, the mt76 driver package should be included in the mainline Linux kernel from version 4.19 onward.
While the OSMC package for the Raspberry Pi is already on Linux kernel 4.19.x [3], I guess we have to wait until the OSMC package for the Vero 4K+ moves from Linux kernel 3.x to 4.x, to get MediaTek chips going, right?
(Note: Seems like somebody has already tried (and failed) to compile the mt76 driver [1] on Linux kernel 3.x, see [2]).