Build an open future with us.

Invest in Mycroft and become a community partner.

Pi3B 64bit OS implementation


#1

I have Mycroft running on Pi3B with 64 bit OS. Due to the type of processing that Mycroft does I figured that the 64bit implementation would be faster and more responsive. Now I just need to power it down and mount it with the google AIY kit parts in my Adabot robot head. Looks like it will run great.

FYI, the Pi running 64bit OS benchmarks much stronger with sysbench vs the 32bit OS.


#2

Which distro did you use? And curious how it goes with the aiy bits.


#3

I’m actually using my own Distro that I’ve developed over quite a series of years. I started it just before the 64 bit x86_64 transition was common. The cool thing about having my own distro is that I can implement changes immediately. For example all of my systems are running Python 3.7.2 and kernel 4.20.

I have another box that I tested the AIY kit with, based off the stock images. That one works fine. I’m pretty sure that I won’t have any major hurdles getting the AIY bits working on the 64bit OS.

If I was to recommend a common distro to go with it would be Arch. Arch is philosophically very close to my distro.


#4

It would definitely be interesting to see how Mycroft runs on some sort of 64-bit Raspbian-type OS. There’s been a bit of discussion about this on the Raspberry Pi forums at;
https://www.raspberrypi.org/forums/viewtopic.php?t=208314

For now though, I’d be a little hesitant to use something other than a widely-supported Raspberry Pi distro as the base for Picroft - as it is we struggle to try and support all the different audio combinations that can be used with Picroft - implementing a more niche type of OS might generate additional support load.


#5

I have mycroft speaking and responding to requests from the command line. From what I see the google voice hat overlay is working properly (kernel 4.14.91). The google voice hat overlay doesn’t work properly with kernel 4.19 and 4.20 yet, which really isn’t an important issue at this point. The audio devices should work as well on 64bit as 32bit. Real-world testing is the only way to know for sure.

My sticking point at this time is that the PortAudio lib is throwing an error, which is preventing the mic from working. Not sure if that is 64 bit specific or not. I’m not too excited on the dependency on PortAudio that comes with pyaudio. In this case you end up going pyaudio->portaudio->alsa->pulseaudio, which seems like an unnecessarily long path to capture audio. I may look at replacing pyaudio with a direct path to pulseaudio, rather than trying to debug the PortAudio problem.

Expression ‘paInvalidSampleRate’ failed in ‘…/Source/src/hostapi/alsa/pa_linux_alsa.c’, line: 2043
Expression ‘PaAlsaStreamComponent_InitialConfigure( &self->capture, inParams, self->primeBuffers, hwParamsCapture, &realSr )’ failed in ‘…/Source/src/hostapi/alsa/pa_linux_alsa.c’, line: 2714
Expression ‘PaAlsaStream_Configure( stream, inputParameters, outputParameters, sampleRate, framesPerBuffer, &inputLatency, &outputLatency, &hostBufferSizeMode )’ failed in ‘…/Source/src/hostapi/alsa/pa_linux_alsa.c’, line: 2838


#6

BTW, I would be surprised if Pi 4 doesn’t go 64bit right out of the gate. When that happens Pi 3 and Pi 4 will probably have a common 64bit base distro.

The alternative SBC’s that are running 64bit are making the 32bit Pi’s look pretty anemic. I don’t think the Pi Foundation can ignore that any longer.


#7

Got it working…for one thing I took pulseaudio out of the loop. Then I fine-tuned my asound.conf.

On another note, I just got my Khadas Vim2 8 core up and running Linux 4.20.0 with my distro. I’ll use the Khadas Vim2 as my build server for aarch64.