Building Raspbian Buster Support

@Michael,

Yes, it seems Google Assistant is having this issue with Raspbian Buster. I will give it a go this weekend and let you know if I make any progress with troubleshooting.

Best,
Samreen

Hi @Michael,

I tried Google Assistant on a Pi 3 using Buster and found that it does work in general, save some issues I am working through. Will test on a Pi 4 as well.

When you followed our guide, did you use Google Assistant Service or Google Assistant Library when going to “configure the developer project”?

Google Assistant Library is what our google-matrixio-assistant-hotword example is based on but that library has now been deprecated by Google.

I tried it with the Google Assistant Service and will be creating another google-matrixio-assistant-hotword example to work with it (the API is a bit different).

I tested the Google Assistant Service version of the setup by trying one of their sample programs as shown here. I did have to add rate 16000 under the hw line in pcm.speaker in the /etc/asound.conf file to get the sample program to run, in case you want to try this yourself before we update the guide.

Best,
Samreen

Hi @Samreen,

Thanks for diving into this. I used the library, while being aware that it was depricated. This lead to me getting thesegmentation fault error.
I also gave the Google Assistant Service a try, but was not able to configure the sound card properly.

I’ll try out your suggestion shortly!

@Michael,

How has this been for you?

We found that the Google Assistant Service actually does not offer hotword detection but rather a push-to-talk model. We are also having some buffer underflow & kernel panic issues for this on Buster that we are currently troubleshooting.

Best,
Samreen

I have reinstalled my Raspberry Pi with Stretch, subsequently following the tutorial. It works again, but the strange thing is that upon the command “Hey Google, turn everything on” (in Dutch; I have a group called everything), it responds with “sorry, I didn’t get any response”, but still turns everything on. I am wondering if this could have something to do with the deprecated library.

I haven’t attempted anymore getting it to work on Buster. Last time, everything went well, up until running the hotword command for the first time. Then the device should be registered, but instead it gave a segmentation fault. On Stretch this works perfectly.

@Samreen , I am now working with a Pi4 on Buster and Matrix Voice. What would you recommend for getting google assistant to work? Work with the deprecated python library?

Also, would it still be possible to work with hotword icw the Google Assistant Service?
Thanks for your support!

By the way, the issue with the response is resolved. Apparently it was an issue on Google’s side.

1 Like

Hey @Michael,

As far as I can tell, the deprecated Google Assistant Library doesn’t work on Buster.

Google Assistant Service does work on Buster but all the issues with it have not been resolved on Google’s side yet. For example, it has a buffer underflow issue for me (others as well) which causes a kernel panic after the first round of exchanges with the assistant on the pushtotalk example.

Currently, Google Assistant Service does not have a hotword feature, but it seems some people have tried to integrate it with the Snowboy hotword.

I am following this GitHub issue for updates on the Google Assistant Service and to see what other people are doing.

I would recommend installing the Google Assistant Service on Buster and trying the pushtotalk example first. If that works, then try a Snowboy integration for hotword. If you also have buffer underflow issues, try these troubleshooting steps to solve it.

I will keep you updated on whether I make any progress or see any improvements in the Google Assistant repos.

Best,
Samreen

Has anyone managed to get the Matrix Creator to work with the avs-sdk on Buster?

arecord and aplay both record/play as expected with the default device setup for matrixiosound and HDMI out

However, if you watch the PortAudio debug messages it always chooses the dummy device for the default input device.

Hey @rysmith0315,

Welcome to the community!

Last I checked, Alexa SDK still did not have support for Buster. This article seems to have some sort of workaround (find with Ctrl+F “Buster”) that I have yet to try out and test with MATRIX devices. You could try it out.

Let me know how it goes!

Best,
Samreen

I think there may be something else going on.

I downgraded to to stretch and have the same problem. arecord/aplay both work with the default device but portaudio is still defaulting to the first card that has an input. In this case, snd-dummy.

UPDATE It appears that changes to ALSA in the Linux Kernel 4.0.19 has broken PortAudio. The fix is to downgrade the kernel to 4.0.14 and re-install the matrix kernel modules. (stretch will install the new kernel if you run apt-get upgrade)

Has anyone managed to get any of the mic_demo_direct or mic related demos working… on pi4 buster… ? am unable to run any of the mic demos to work … i can get all everloops and led related projects to work though…

Hi @varungujjar,

I indeed was able to replicate your issue and am investigating it. I will let you know when I have an update.

I was able to get the basic HAL record to file example working though. Did that work for you as well?

In the meantime, you should be able to use the MATRIX kernel modules for microphone related algorithms on Buster. Installation instructions here.

Thank you for your patience!

Best,
Samreen

Hi,
I want to make an alexa device with raspberry pi 4 and Matrix Voice. Matrix Voice is not getting compiled on RPI4. Does Matrix Voice support RPI4(Buster)?

Thanks

I’m trying to change my Matrix Voice & Mycroft.AI to a Raspberry Pi 4 (RPI 4) with 4GB. I installed the latest Picroft image (based on Buster), and the matrixio-kernel-modules and pulseaudio. But when checking ‘pactl list sources short’ the Matrix Voice is not recognized. Is this issue known @Samreen ?

Hi @SpaceGlider,

Our matrixio-kernel-module package was recently updated and there were some issues during the update that have temporarily broken the package. This is likely what is causing your problem.

We are working on fixing this and will notify you as soon as it has been resolved. A temporary solution could be compiling the kernel modules from source for your project.

Before doing this, I would recommend a purge of the package installation.

sudo apt purge matrixio-kernel-modules

We apologize for any inconvenience caused. Please reach out if issues persist!

Best,
Samreen

When I follow the instructions to build myself, I get the following error:

pi@picroft:~/matrixio-kernel-modules/src $ make && make install
make -C /lib/modules/4.19.86-v7l+/build M=/home/pi/matrixio-kernel-modules/src modules
make[1]: *** /lib/modules/4.19.86-v7l+/build: No such file or directory.  Stop.
make: *** [Makefile:5: all] Error 2

@SpaceGlider,

Apologies for the delayed response, was at a conference!

Testing kernel issues today and will get back to you by the end of the week.

Best,
Samreen

@SpaceGlider,

The MATRIX kernel modules should now be working again on Buster.

Please purge what you have and re-install the kernel modules.

sudo apt purge matrixio-kernel-modules
sudo apt update
sudo apt install matrixio-kernel-modules

Let me know how it goes!

Could you also send me the output of uname -a? Your Linux kernels seem to be way ahead of the default for Buster, seemingly into the beta branch (should be around 4.19.75). Did you run rpi-update at any point? It takes you into the bleeding edge of the Linux kernel which can break many packages.

Best,
Samreen

Hi @Samreen

so I was on:
Linux picroft 4.19.86-v7l+ #1283 SMP Fri Nov 29 18:37:40 GMT 2019 armv7l GNU/Linux

I haven’t run rpi-update, just the regular apt-get update / apt-get upgrade. I did use the picroft image and installer though so not sure what all that did in the background.

I did this:
install --reinstall raspberrypi-bootloader raspberrypi-kernel

And then got back to this
Linux picroft 4.19.75-v7l+ #1270 SMP Tue Sep 24 18:51:41 BST 2019 armv7l GNU/Linux

Now everything works! Still not sure where that kernel upgrade came from…