gokrazy has limited support for Bluetooth. The usual Bluetooth utilities (bluez) have a lot of dependencies that are not available on gokrazy and those are out of scope here. But the basic Bluetooth hardware are supported on low level. This is useful in particular for applications using Bluetooth LE natively in Go.
To enable Bluetooth in gokrazy, first add the
github.com/gokrazy/bluetooth
package to your gokrazy instance:
gok add github.com/gokrazy/bluetooth
The github.com/gokrazy/bluetooth
package loads the appropriate kernel modules
and firmware required.
As demo we’re using the bluewalker Bluetooth LE scanner utility to show that Bluetooth is working:
gok add gitlab.com/jtaimisto/bluewalker
Then, open your instance’s config.json
in your editor:
gok edit
And configure Package config: Command-line flags:
{
"Hostname": "blue",
"Packages": [
"github.com/gokrazy/fbstatus",
"github.com/gokrazy/hello",
"github.com/gokrazy/serial-busybox",
"github.com/gokrazy/breakglass",
"gitlab.com/jtaimisto/bluewalker"
],
"PackageConfig": {
"gitlab.com/jtaimisto/bluewalker": {
"CommandLineFlags": [
"-device=hci0"
]
}
}
}
Then, deploy as usual:
gok update
Once deployed, you can see Bluetooth events being received in the bluewalker output.