Pixlet install on linux/RaspberryPi

hello everyone. Im new to the tidbyt and to coding in general. the thing that hooked me to tidbyt was being able to code for it with its opensource api. recently I stumbled across pixlet. I was able to get it on my mac very easily using hombrew but what im trying now is to get it on a linux. specifically a raspberry pi. i was able to download the tar.gz file and extract it no problem but im not too sure how to install it. ive tried ./configure and no luck ive also managed to install libwebp per the instructions but not sure what to do from here. any suggestions greatly appreciated. thanks all!! :sunglasses:

I’m guessing the problem is that go-libwebp (the Go bindings for libwebp) doesn’t properly support ARM. I’ve opened an issue on GitHub to look into this:

1 Like

Thanks for looking into it! In the meantime ill play around with it on the mac. meanwhile trying different ways to install on the PI

1 Like

Hi,
I was able to build pixlet on a raspberry pi. I did it using docker, I didn’t want to install Go on the raspberry, but should work the same.
Steps to build Pixlet (you need Go installed):

$ apt update; apt install git libwebp-dev -y
$ git clone https://github.com/tidbyt/pixlet.git
$ cd pixlet
$ go get ./...
$ go build
$ file pixlet
pixlet: ELF 32-bit LSB executable, ARM, EABI5 version 1 (SYSV), dynamically linked, interpreter /lib/ld-linux-armhf.so.3, for GNU/Linux 3.2.0, Go BuildID=L3SCqJY0UVob0DlCsab-/JlBN1p2CjnW7_tJp8Oed/kcojjphELWPIAAwwbtPA/BVl4n6uRF2oPpfNGuL_a, BuildID[sha1]=1b1b26f571888886a3ac1c12d0880b75728c9ed9, not stripped

I hope that helps.

2 Likes

That sounds promising. I will follow the steps and see what I get, thanks so much for the help.

1 Like

Thanks @deyavito! So I guess if Go and libwebp-dev are installed it should “just work”. That’s great.

1 Like

Yeah, at least that worked for me. If anyone else could confirm it’d be great.

hello, im trying the above steps to get this thing working and am running into a little problem. if you could shine some light on it, I have go installed and libwep but when I do the “go get ./…” it give me some errors. am I supposed to add the url after “go get” or do it exactly like you have it written down. ive tried both your way and adding a url to the pixlet github with no success. further more when i try go build i get the same output as the go get. here is what im getting.

runtime

/usr/local/go/src/runtime/mgclarge.go:320:6: s.scavenged undefined (type *mspan has no field or method scavenged)
/usr/local/go/src/runtime/mgclarge.go:323:6: s.hugePages undefined (type *mspan has no field or method hugePages)
/usr/local/go/src/runtime/mgclarge.go:390:13: s.hugePages undefined (type *mspan has no field or method hugePages)
/usr/local/go/src/runtime/mgclarge.go:391:16: s.scavenged undefined (type *mspan has no field or method scavenged)
/usr/local/go/src/runtime/mgclarge.go:396:9: mheap_.free undefined (type mheap has no field or method free)
/usr/local/go/src/runtime/mgclarge.go:398:7: s.scavenged undefined (type *mspan has no field or method scavenged)
/usr/local/go/src/runtime/signal_unix.go:517:5: crashing redeclared in this block
previous declaration at /usr/local/go/src/runtime/signal_sighandler.go:15:5
/usr/local/go/src/runtime/signal_unix.go:522:5: testSigtrap redeclared in this block
previous declaration at /usr/local/go/src/runtime/signal_sighandler.go:20:5
/usr/local/go/src/runtime/signal_unix.go:536:6: sighandler redeclared in this block
previous declaration at /usr/local/go/src/runtime/signal_sighandler.go:33:69
/usr/local/go/src/runtime/stubs32.go:14:6: call16 redeclared in this block
previous declaration at /usr/local/go/src/runtime/stubs.go:287:55
/usr/local/go/src/runtime/mgclarge.go:398:7: too many errors

i did get pixlet onto the pi and i was able to get into the dir using cd, am i missing something ? i can send screen shots if need be. when i peek into the pixlet dir using ls pixlet i see

“doc encode examples fonts go.mod go.sum LICENSE.txt main.go push.go README.md render render.go renovate.json runtime serve.go”

Im stuck. sorry for being such a noob if this is an easy fix. thanks again for the input i appreciate you guys

edit looks like I did not install Go properly. I had to find 3 different tutorials online and found one that worked. i finally got “go get” working and it downloaded everything. i was able to get go build to build pixlet and i also got the "pixlet elf " output. thanks very much. the website i used for the go tutorial was “https://www.e-tinkers.com/2019/06/better-way-to-install-golang-go-on-raspberry-pi/

1 Like

Thanks for sharing how you managed to install go on the raspbery pi. I had docker installed and went that route directly (pulled golang docker container and built pixlet from there).

1 Like