respeaker / seeed-voicecard

2 Mic Hat, 4 Mic Array, 6-Mic Circular Array Kit, and 4-Mic Linear Array Kit for Raspberry Pi
GNU General Public License v3.0
470 stars 284 forks source link

After update of OS the Respeaker Card didn't work anymore #321

Closed bruesche closed 2 years ago

bruesche commented 2 years ago

Describe the bug

I updates my pi yesterday. After that the software rhasspy didn't work. I look at the config and can't find the 4-mic array. Tried to restart. Software didn't work. I tried to install the respecter drivers again because with the command "arecord -L" there was no mic array shown. I get this error on installation:

Building module: cleaning build area... make -j4 KERNELRELEASE=5.15.32-v7l+ -C /lib/modules/5.15.32-v7l+/build M=/var/lib/dkms/seeed-voicecard/0.3/build....(bad exit status: 2) Error! Bad return status for module build on kernel: 5.15.32-v7l+ (armv7l) Consult /var/lib/dkms/seeed-voicecard/0.3/build/make.log for more information.

I put the mentioned log above in the attachment.

Thx for help.

Expected behavior

After OS update the 4-Mic Array should work.

Platform

Relevant log output

pi@raspberrypi:/proc $ less /var/lib/dkms/seeed-voicecard/0.3/build/make.log

      |        asoc_simple_parse_clk
/var/lib/dkms/seeed-voicecard/0.3/build/seeed-voicecard.c:546:31: error: passing argument 1 of ‘asoc_simple_canonicalize_cpu’ from incompatible pointer type [-Werror=incompatible-pointer-types]
  546 |  asoc_simple_canonicalize_cpu(dai_link, single_cpu);
      |                               ^~~~~~~~
      |                               |
      |                               struct snd_soc_dai_link *
In file included from /var/lib/dkms/seeed-voicecard/0.3/build/seeed-voicecard.c:28:
./include/sound/simple_card_utils.h:158:70: note: expected ‘struct snd_soc_dai_link_component *’ but argument is of type ‘struct snd_soc_dai_link *’
  158 | void asoc_simple_canonicalize_cpu(struct snd_soc_dai_link_component *cpus,
      |                                   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~
/var/lib/dkms/seeed-voicecard/0.3/build/seeed-voicecard.c:548:36: error: passing argument 1 of ‘asoc_simple_canonicalize_platform’ from incompatible pointer type [-Werror=incompatible-pointer-types]
  548 |  asoc_simple_canonicalize_platform(dai_link);
      |                                    ^~~~~~~~
      |                                    |
      |                                    struct snd_soc_dai_link *
In file included from /var/lib/dkms/seeed-voicecard/0.3/build/seeed-voicecard.c:28:
./include/sound/simple_card_utils.h:156:75: note: expected ‘struct snd_soc_dai_link_component *’ but argument is of type ‘struct snd_soc_dai_link *’
  156 | void asoc_simple_canonicalize_platform(struct snd_soc_dai_link_component *platforms,
      |                                        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~
/var/lib/dkms/seeed-voicecard/0.3/build/seeed-voicecard.c:548:2: error: too few arguments to function ‘asoc_simple_canonicalize_platform’
  548 |  asoc_simple_canonicalize_platform(dai_link);
      |  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /var/lib/dkms/seeed-voicecard/0.3/build/seeed-voicecard.c:28:
./include/sound/simple_card_utils.h:156:6: note: declared here
  156 | void asoc_simple_canonicalize_platform(struct snd_soc_dai_link_component *platforms,
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
At top level:
/var/lib/dkms/seeed-voicecard/0.3/build/seeed-voicecard.c:263:12: warning: ‘asoc_simple_parse_dai’ defined but not used [-Wunused-function]
  263 | static int asoc_simple_parse_dai(struct device_node *node,
      |            ^~~~~~~~~~~~~~~~~~~~~
cc1: some warnings being treated as errors
make[1]: *** [scripts/Makefile.build:277: /var/lib/dkms/seeed-voicecard/0.3/build/seeed-voicecard.o] Error 1
make[1]: *** Waiting for unfinished jobs....
make: *** [Makefile:1868: /var/lib/dkms/seeed-voicecard/0.3/build] Error 2
make: Leaving directory '/usr/src/linux-headers-5.15.32-v7l+'
HinTak commented 2 years ago

This looks like it is an issue with compatibility to kernel 5.13+ which is already fixed in my fork https://github.com/HinTak/seeed-voicecard . Please use that instead, and if it works for you, please consider clicking the donate link.

bahamut657 commented 2 years ago

Is it possible to merge into official repo? It seems to work also in RPI0W (armv6 version)

HinTak commented 2 years ago

It is most likely these two commits in mine:

v5.13: Conditionally re-adding asoc_simple_parse_xxx() v5.13: cope with multi-support at asoc_simplecanonicalize*()

Possibly this too:

v5.12: symmetric_rates renamed symmetric_rate

git cherry-pick should do.

Some of the rest of diferences are a matter of differing opinion on how to do things, so shouldn't be merged.

yezzer commented 2 years ago

This looks like it is an issue with compatibility to kernel 5.13+ which is already fixed in my fork https://github.com/HinTak/seeed-voicecard . Please use that instead, and if it works for you, please consider clicking the donate link.

Your fork worked for me, and have sent a small donation for my thanks. Why aren't Seeed Studio taking their software seriously?