matrix-io/matrixio-kernel-modules

Install error

Closed this issue · 10 comments

install fail with those errors:
make : on entre dans le répertoire « /usr/src/linux-headers-4.19.42-v7+ » CC [M] /var/lib/dkms/matrixio/0.1/build/matrixio-core.o CC [M] /var/lib/dkms/matrixio/0.1/build/matrixio-uart.o CC [M] /var/lib/dkms/matrixio/0.1/build/matrixio-everloop.o CC [M] /var/lib/dkms/matrixio/0.1/build/matrixio-codec.o /var/lib/dkms/matrixio/0.1/build/matrixio-codec.c:63:40: warning: ‘struct snd_soc_codec’ declared inside parameter list will not be visible outside of this definition or declaration static int matrixio_codec_probe(struct snd_soc_codec *codec) { return 0; } ^~~~~~~~~~~~~ /var/lib/dkms/matrixio/0.1/build/matrixio-codec.c:65:21: error: variable ‘matrixio_soc_codec_driver’ has initializer but incomplete type static const struct snd_soc_codec_driver matrixio_soc_codec_driver = { ^~~~~~~~~~~~~~~~~~~~ /var/lib/dkms/matrixio/0.1/build/matrixio-codec.c:67:5: error: unknown field ‘probe’ specified in initializer .probe = matrixio_codec_probe, ^ /var/lib/dkms/matrixio/0.1/build/matrixio-codec.c:67:14: warning: excess elements in struct initializer .probe = matrixio_codec_probe, ^~~~~~~~~~~~~~~~~~~~ /var/lib/dkms/matrixio/0.1/build/matrixio-codec.c:67:14: note: (near initialization for ‘matrixio_soc_codec_driver’) /var/lib/dkms/matrixio/0.1/build/matrixio-codec.c:68:5: error: unknown field ‘component_driver’ specified in initializer .component_driver = ^ /var/lib/dkms/matrixio/0.1/build/matrixio-codec.c:69:2: error: extra brace group at end of initializer { ^ /var/lib/dkms/matrixio/0.1/build/matrixio-codec.c:69:2: note: (near initialization for ‘matrixio_soc_codec_driver’) /var/lib/dkms/matrixio/0.1/build/matrixio-codec.c:69:2: warning: excess elements in struct initializer /var/lib/dkms/matrixio/0.1/build/matrixio-codec.c:69:2: note: (near initialization for ‘matrixio_soc_codec_driver’) /var/lib/dkms/matrixio/0.1/build/matrixio-codec.c: In function ‘matrixio_probe’: /var/lib/dkms/matrixio/0.1/build/matrixio-codec.c:111:8: error: implicit declaration of function ‘snd_soc_register_codec’ [-Werror=implicit-function-declaration] ret = snd_soc_register_codec(&pdev->dev, &matrixio_soc_codec_driver, ^~~~~~~~~~~~~~~~~~~~~~ /var/lib/dkms/matrixio/0.1/build/matrixio-codec.c: At top level: /var/lib/dkms/matrixio/0.1/build/matrixio-codec.c:65:42: error: storage size of ‘matrixio_soc_codec_driver’ isn’t known static const struct snd_soc_codec_driver matrixio_soc_codec_driver = { ^~~~~~~~~~~~~~~~~~~~~~~~~ cc1: some warnings being treated as errors CC [M] /var/lib/dkms/matrixio/0.1/build/matrixio-mic.o scripts/Makefile.build:309 : la recette pour la cible « /var/lib/dkms/matrixio/0.1/build/matrixio-codec.o » a échouée make[1]: *** [/var/lib/dkms/matrixio/0.1/build/matrixio-codec.o] Erreur 1 make[1]: *** Attente des tâches non terminées.... /var/lib/dkms/matrixio/0.1/build/matrixio-mic.c:260:21: error: variable ‘matrixio_soc_platform’ has initializer but incomplete type static const struct snd_soc_platform_driver matrixio_soc_platform = { ^~~~~~~~~~~~~~~~~~~~~~~ /var/lib/dkms/matrixio/0.1/build/matrixio-mic.c:261:5: error: unknown field ‘ops’ specified in initializer .ops = &matrixio_pcm_ops, .pcm_new = matrixio_pcm_new, ^ /var/lib/dkms/matrixio/0.1/build/matrixio-mic.c:261:12: warning: excess elements in struct initializer .ops = &matrixio_pcm_ops, .pcm_new = matrixio_pcm_new, ^ /var/lib/dkms/matrixio/0.1/build/matrixio-mic.c:261:12: note: (near initialization for ‘matrixio_soc_platform’) /var/lib/dkms/matrixio/0.1/build/matrixio-mic.c:261:31: error: unknown field ‘pcm_new’ specified in initializer .ops = &matrixio_pcm_ops, .pcm_new = matrixio_pcm_new, ^ /var/lib/dkms/matrixio/0.1/build/matrixio-mic.c:261:42: warning: excess elements in struct initializer .ops = &matrixio_pcm_ops, .pcm_new = matrixio_pcm_new, ^~~~~~~~~~~~~~~~ /var/lib/dkms/matrixio/0.1/build/matrixio-mic.c:261:42: note: (near initialization for ‘matrixio_soc_platform’) /var/lib/dkms/matrixio/0.1/build/matrixio-mic.c: In function ‘matrixio_pcm_platform_probe’: /var/lib/dkms/matrixio/0.1/build/matrixio-mic.c:284:6: error: implicit declaration of function ‘devm_snd_soc_register_platform’ [-Werror=implicit-function-declaration] devm_snd_soc_register_platform(&pdev->dev, &matrixio_soc_platform); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /var/lib/dkms/matrixio/0.1/build/matrixio-mic.c: At top level: /var/lib/dkms/matrixio/0.1/build/matrixio-mic.c:260:45: error: storage size of ‘matrixio_soc_platform’ isn’t known static const struct snd_soc_platform_driver matrixio_soc_platform = { ^~~~~~~~~~~~~~~~~~~~~ cc1: some warnings being treated as errors scripts/Makefile.build:309 : la recette pour la cible « /var/lib/dkms/matrixio/0.1/build/matrixio-mic.o » a échouée make[1]: *** [/var/lib/dkms/matrixio/0.1/build/matrixio-mic.o] Erreur 1 Makefile:1524 : la recette pour la cible « _module_/var/lib/dkms/matrixio/0.1/build » a échouée make: *** [_module_/var/lib/dkms/matrixio/0.1/build] Erreur 2 make : on quitte le répertoire « /usr/src/linux-headers-4.19.42-v7+ »

Same error when building from sources.
Thanks

same here

DKMS make.log for matrixio-0.1 for kernel 4.19.42-v7+ (armv7l)
Sat 18 May 16:26:53 CEST 2019
make: Entering directory '/usr/src/linux-headers-4.19.42-v7+'
  CC [M]  /var/lib/dkms/matrixio/0.1/build/matrixio-core.o
  CC [M]  /var/lib/dkms/matrixio/0.1/build/matrixio-uart.o
  CC [M]  /var/lib/dkms/matrixio/0.1/build/matrixio-everloop.o
  CC [M]  /var/lib/dkms/matrixio/0.1/build/matrixio-codec.o
/var/lib/dkms/matrixio/0.1/build/matrixio-codec.c:63:40: warning: ‘struct snd_soc_codec’ declared inside parameter list will not be visible outside of this definition or declaration
 static int matrixio_codec_probe(struct snd_soc_codec *codec) { return 0; }
                                        ^~~~~~~~~~~~~
/var/lib/dkms/matrixio/0.1/build/matrixio-codec.c:65:21: error: variable ‘matrixio_soc_codec_driver’ has initializer but incomplete type
 static const struct snd_soc_codec_driver matrixio_soc_codec_driver = {
                     ^~~~~~~~~~~~~~~~~~~~
/var/lib/dkms/matrixio/0.1/build/matrixio-codec.c:67:5: error: unknown field ‘probe’ specified in initializer
     .probe = matrixio_codec_probe,
     ^
/var/lib/dkms/matrixio/0.1/build/matrixio-codec.c:67:14: warning: excess elements in struct initializer
     .probe = matrixio_codec_probe,
              ^~~~~~~~~~~~~~~~~~~~
/var/lib/dkms/matrixio/0.1/build/matrixio-codec.c:67:14: note: (near initialization for ‘matrixio_soc_codec_driver’)
/var/lib/dkms/matrixio/0.1/build/matrixio-codec.c:68:5: error: unknown field ‘component_driver’ specified in initializer
     .component_driver =
     ^
/var/lib/dkms/matrixio/0.1/build/matrixio-codec.c:69:2: error: extra brace group at end of initializer
  {
  ^
/var/lib/dkms/matrixio/0.1/build/matrixio-codec.c:69:2: note: (near initialization for ‘matrixio_soc_codec_driver’)
/var/lib/dkms/matrixio/0.1/build/matrixio-codec.c:69:2: warning: excess elements in struct initializer
/var/lib/dkms/matrixio/0.1/build/matrixio-codec.c:69:2: note: (near initialization for ‘matrixio_soc_codec_driver’)
/var/lib/dkms/matrixio/0.1/build/matrixio-codec.c: In function ‘matrixio_probe’:
/var/lib/dkms/matrixio/0.1/build/matrixio-codec.c:111:8: error: implicit declaration of function ‘snd_soc_register_codec’ [-Werror=implicit-function-declaration]

Hi,

me too

APT:

Runs this command: make -j4 KERNELRELEASE=4.19.42-v7+ -C /lib/modules/4.19.42-v7+/build M=/var/lib/dkms/matrixio/0.1/build.....

DKMS make.log for matrixio-0.1 for kernel 4.19.42-v7+ (armv7l)
Sa 18. Mai 18:52:55 UTC 2019
make: Verzeichnis „/usr/src/linux-headers-4.19.42-v7+“ wird betreten
.....

rest like the log from candea21

MAKE direct from the sources:

make -C /lib/modules/4.19.42-v7+/build M=/home/pi/matrixio-kernel-modules/src modules
make[1]: Verzeichnis „/usr/src/linux-headers-4.19.42-v7+“ wird betreten
  CC [M]  /home/pi/matrixio-kernel-modules/src/matrixio-codec.o
/home/pi/matrixio-kernel-modules/src/matrixio-codec.c:63:40: warning: ‘struct snd_soc_codec’ declared inside parameter list will not be visible outside of this definition or declaration
 static int matrixio_codec_probe(struct snd_soc_codec *codec) { return 0; }
                                        ^~~~~~~~~~~~~
/home/pi/matrixio-kernel-modules/src/matrixio-codec.c:65:21: error: variable ‘matrixio_soc_codec_driver’ has initializer but incomplete type
 static const struct snd_soc_codec_driver matrixio_soc_codec_driver = {
                     ^~~~~~~~~~~~~~~~~~~~
/home/pi/matrixio-kernel-modules/src/matrixio-codec.c:67:5: error: unknown field ‘probe’ specified in initializer
     .probe = matrixio_codec_probe,
     ^
/home/pi/matrixio-kernel-modules/src/matrixio-codec.c:67:14: warning: excess elements in struct initializer
     .probe = matrixio_codec_probe,
              ^~~~~~~~~~~~~~~~~~~~
/home/pi/matrixio-kernel-modules/src/matrixio-codec.c:67:14: note: (near initialization for ‘matrixio_soc_codec_driver’)
/home/pi/matrixio-kernel-modules/src/matrixio-codec.c:68:5: error: unknown field ‘component_driver’ specified in initializer
     .component_driver =
     ^
/home/pi/matrixio-kernel-modules/src/matrixio-codec.c:69:2: error: extra brace group at end of initializer
  {
  ^
/home/pi/matrixio-kernel-modules/src/matrixio-codec.c:69:2: note: (near initialization for ‘matrixio_soc_codec_driver’)
/home/pi/matrixio-kernel-modules/src/matrixio-codec.c:69:2: warning: excess elements in struct initializer
/home/pi/matrixio-kernel-modules/src/matrixio-codec.c:69:2: note: (near initialization for ‘matrixio_soc_codec_driver’)
/home/pi/matrixio-kernel-modules/src/matrixio-codec.c: In function ‘matrixio_probe’:
/home/pi/matrixio-kernel-modules/src/matrixio-codec.c:111:8: error: implicit declaration of function ‘snd_soc_register_codec’ [-Werror=implicit-function-declaration]
  ret = snd_soc_register_codec(&pdev->dev, &matrixio_soc_codec_driver,
        ^~~~~~~~~~~~~~~~~~~~~~
/home/pi/matrixio-kernel-modules/src/matrixio-codec.c: At top level:
/home/pi/matrixio-kernel-modules/src/matrixio-codec.c:65:42: error: storage size of ‘matrixio_soc_codec_driver’ isn’t known
 static const struct snd_soc_codec_driver matrixio_soc_codec_driver = {
                                          ^~~~~~~~~~~~~~~~~~~~~~~~~
cc1: some warnings being treated as errors
scripts/Makefile.build:309: die Regel für Ziel „/home/pi/matrixio-kernel-modules/src/matrixio-codec.o“ scheiterte
make[2]: *** [/home/pi/matrixio-kernel-modules/src/matrixio-codec.o] Fehler 1
Makefile:1524: die Regel für Ziel „_module_/home/pi/matrixio-kernel-modules/src“ scheiterte
make[1]: *** [_module_/home/pi/matrixio-kernel-modules/src] Fehler 2
make[1]: Verzeichnis „/usr/src/linux-headers-4.19.42-v7+“ wird verlassen
Makefile:15: die Regel für Ziel „all“ scheiterte

It looks like I suffer from the same issue.

I'm trying to install matrixio-kernel-modules on Raspian Stretch desktop version.
The install is aborted, see below the screen output.

Can anyone help to get the matrixio-kernel-modules installed ?

`pi@raspberrypi-3B:~ $ sudo apt install matrixio-kernel-modules
Paketlisten werden gelesen... Fertig
Abhängigkeitsbaum wird aufgebaut.
Statusinformationen werden eingelesen.... Fertig
Die folgenden NEUEN Pakete werden installiert:
matrixio-kernel-modules
0 aktualisiert, 1 neu installiert, 0 zu entfernen und 0 nicht aktualisiert.
Es müssen noch 0 B von 17,7 kB an Archiven heruntergeladen werden.
Nach dieser Operation werden 109 kB Plattenplatz zusätzlich benutzt.
Vormals nicht ausgewähltes Paket matrixio-kernel-modules wird gewählt.
(Lese Datenbank ... 182125 Dateien und Verzeichnisse sind derzeit installiert.)
Vorbereitung zum Entpacken von .../matrixio-kernel-modules_0.1.6_armhf.deb ...
Entpacken von matrixio-kernel-modules (0.1.6) ...
matrixio-kernel-modules (0.1.6) wird eingerichtet ...
Enabling firmware loading at startup

Creating symlink /var/lib/dkms/matrixio/0.1/source ->
/usr/src/matrixio-0.1

DKMS: add completed.

Kernel preparation unnecessary for this kernel. Skipping...

Building module:
cleaning build area...
make -j4 KERNELRELEASE=4.19.42-v7+ -C /lib/modules/4.19.42-v7+/build M=/var/lib/dkms/matrixio/0.1/build.....(bad exit status: 2)
Error! Bad return status for module build on kernel: 4.19.42-v7+ (armv7l)
Consult /var/lib/dkms/matrixio/0.1/build/make.log for more information.
dpkg: Fehler beim Bearbeiten des Paketes matrixio-kernel-modules (--configure):
Unterprozess installiertes post-installation-Skript gab den Fehlerwert 10 zurück
Fehler traten auf beim Bearbeiten von:
matrixio-kernel-modules
E: Sub-process /usr/bin/dpkg returned an error code (1)`

Here the details from the log file.

pi@raspberrypi-3B:~ $ vi /var/lib/dkms/matrixio/0.1/build/make.log DKMS make.log for matrixio-0.1 for kernel 4.19.42-v7+ (armv7l) Mo 20. Mai 11:18:36 CEST 2019 make: Verzeichnis „/usr/src/linux-headers-4.19.42-v7+“ wird betreten CC [M] /var/lib/dkms/matrixio/0.1/build/matrixio-core.o CC [M] /var/lib/dkms/matrixio/0.1/build/matrixio-uart.o CC [M] /var/lib/dkms/matrixio/0.1/build/matrixio-everloop.o CC [M] /var/lib/dkms/matrixio/0.1/build/matrixio-codec.o /var/lib/dkms/matrixio/0.1/build/matrixio-codec.c:63:40: warning: ‘struct snd_soc_codec’ declared inside parameter list will not be visible outside of this definition or declaration static int matrixio_codec_probe(struct snd_soc_codec *codec) { return 0; } ^~~~~~~~~~~~~ /var/lib/dkms/matrixio/0.1/build/matrixio-codec.c:65:21: error: variable ‘matrixio_soc_codec_driver’ has initializer but incomplete type static const struct snd_soc_codec_driver matrixio_soc_codec_driver = { ^~~~~~~~~~~~~~~~~~~~ /var/lib/dkms/matrixio/0.1/build/matrixio-codec.c:67:5: error: unknown field ‘probe’ specified in initializer .probe = matrixio_codec_probe, ^ /var/lib/dkms/matrixio/0.1/build/matrixio-codec.c:67:14: warning: excess elements in struct initializer .probe = matrixio_codec_probe, ^~~~~~~~~~~~~~~~~~~~ /var/lib/dkms/matrixio/0.1/build/matrixio-codec.c:67:14: note: (near initialization for ‘matrixio_soc_codec_driver’) /var/lib/dkms/matrixio/0.1/build/matrixio-codec.c:68:5: error: unknown field ‘component_driver’ specified in initializer .component_driver = ^ /var/lib/dkms/matrixio/0.1/build/matrixio-codec.c:69:2: error: extra brace group at end of initializer { ^ /var/lib/dkms/matrixio/0.1/build/matrixio-codec.c:69:2: note: (near initialization for ‘matrixio_soc_codec_driver’) /var/lib/dkms/matrixio/0.1/build/matrixio-codec.c:69:2: warning: excess elements in struct initializer /var/lib/dkms/matrixio/0.1/build/matrixio-codec.c:69:2: note: (near initialization for ‘matrixio_soc_codec_driver’) /var/lib/dkms/matrixio/0.1/build/matrixio-codec.c: In function ‘matrixio_probe’: /var/lib/dkms/matrixio/0.1/build/matrixio-codec.c:111:8: error: implicit declaration of function ‘snd_soc_register_codec’ [-Werror=implicit-function-declaration] ret = snd_soc_register_codec(&pdev->dev, &matrixio_soc_codec_driver, ^~~~~~~~~~~~~~~~~~~~~~ /var/lib/dkms/matrixio/0.1/build/matrixio-codec.c: At top level: /var/lib/dkms/matrixio/0.1/build/matrixio-codec.c:65:42: error: storage size of ‘matrixio_soc_codec_driver’ isn’t known static const struct snd_soc_codec_driver matrixio_soc_codec_driver = { ^~~~~~~~~~~~~~~~~~~~~~~~~ CC [M] /var/lib/dkms/matrixio/0.1/build/matrixio-mic.o cc1: some warnings being treated as errors scripts/Makefile.build:309: die Regel für Ziel „/var/lib/dkms/matrixio/0.1/build/matrixio-codec.o“ scheiterte make[1]: *** [/var/lib/dkms/matrixio/0.1/build/matrixio-codec.o] Fehler 1 make[1]: *** Es wird auf noch nicht beendete Prozesse gewartet... /var/lib/dkms/matrixio/0.1/build/matrixio-mic.c:260:21: error: variable ‘matrixio_soc_platform’ has initializer but incomplete type static const struct snd_soc_platform_driver matrixio_soc_platform = { ^~~~~~~~~~~~~~~~~~~~~~~ /var/lib/dkms/matrixio/0.1/build/matrixio-mic.c:261:5: error: unknown field ‘ops’ specified in initializer .ops = &matrixio_pcm_ops, .pcm_new = matrixio_pcm_new, ^

I tried compiling from the guthub resources also, but this is failing too. The output may be better readable, but is in German. See screenshot below.

screenshot matrixio-kernel-modules installation error

Guess there won't be any solution to this problem in near time...

Is there a known stretch version/RPi board combination that actually works?
Wanted to showcase this as an input device alternative this week in the office (o;

Maybe someone has the binaries? That should work or not?

I have an old image on what that is working, but I have not enough knowledge to install the module by hand.

cmetz commented

the latest raspbian update has bumped the kernel version from 4.14 to 4.19. Between these versions the soc drivers got changed from platform/codec to components and the current matrixio-kernel-modules do not reflect this.

Update:

Please follow the steps here, they are more convenient:

https://community.matrix.one/t/kernel-modules-4-19-workaround/2413

Previous:

If you really want to downgrade the kernel you can try using following steps, but be careful. i'm not responsible if you break your system, as rpi-update and rpi-source is not suggested if you don't know what you are doing

you need https://github.com/Hexxeh/rpi-update and https://github.com/notro/rpi-source

sudo rpi-update a08ece3d48c3c40bf1b501772af9933249c11c5b
sudo reboot
sudo rpi-source
sudo dkms remove matrixio/0.1 --all
sudo apt install (--reinstall) matrixio-kernel-modules <-- the reinstall is optional if the matrix kernel modules are installed already
sudo reboot

I can confirm, the above workaround makes the matrixio-kernel-modules installable again. Didn't test anything further yet, though.

Thanks cmetz,

with your hints the matrixio-kernel-modules could be installed in the end.
On my system (Raspian Stretch desktop version) the packages for rpi-source , bc and libncurses5-dev was missing . I could add the mssing packages with this statements :

sudo apt-get install bc
sudo apt-get install libncurses5-dev
sudo wget https://raw.githubusercontent.com/notro/rpi-source/master/rpi-source -O /usr/bin/rpi-source && sudo chmod +x /usr/bin/rpi-source && /usr/bin/rpi-source -q --tag-update

The matrix module installs fine with this method ;-)

Though...the direction of arrival demo crashes the RPi (A+) after few minutes...

As mentioned above, we have a temporary workaround as we update the MATRIX kernel modules on our end: https://community.matrix.one/t/kernel-modules-4-19-workaround/2413