【Raspberry Pi4】jack server is not running or cannot be started【kodi】

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/254888/d6a46857-8ae3-f826-a90c-b296e994eed7.png" width=50%>

## 前文
最新の kodi では起動時に「jack server is not running or cannot be started」メッセージが一瞬表示されるようになった。気になったので調査。

## 環境
| Pi | Raspberry Pi OS | kodi |
| ---- | ---- | ---- |
| 4B 4G | Raspberry Pi OS with desktop / 64-bit / bullseye | 19.3 |

## 結論
無視して良い。

## 詳細
[mieki256's diary - 「jack server is not running or cannot be started」について](http://blawat2015.no-ip.com/~mieki256/diary/201711012.html "mieki256's diary - 「jack server is not running or cannot be started」について")
> どうやら、コレって別にエラーが出てるわけではなくて、サウンドを鳴らす何かしらが「音を出す色んな仕組みにとりあえず打診してみたんだけど、jack君は無反応だったよ」と調査結果を報告してるだけ、らしい…。

[[SOLVED] ALSA complaining about Jack Server](https://ubuntuforums.org/showthread.php?t=1867298 "[SOLVED] ALSA complaining about Jack Server")
> I fixed the problem.
> 
> I installed jackd (sudo apt-get install jackd).
> 
> Then I added this command to my startup programs: jackd -d dummy
> 
> Now the errors are gone.

試しに`jackd -d dummy`を実行してみた結果が以下。
```shell
pi@raspberrypi4:~ $ jackd -d dummy
jackdmp 1.9.17
Copyright 2001-2005 Paul Davis and others.
Copyright 2004-2016 Grame.
Copyright 2016-2021 Filipe Coelho.
jackdmp comes with ABSOLUTELY NO WARRANTY
This is free software, and you are welcome to redistribute it
under certain conditions; see the file COPYING for details
JACK server starting in realtime mode with priority 10
self-connect-mode is "Don't restrict self connect requests"
Cannot use real-time scheduling (RR/10) (1: Operation not permitted)
AcquireSelfRealTime error


^CJack main caught signal 2
pi@raspberrypi4:~ $
```

うーむ、何かエラーが出るし。これも一応ぐぐってみたがよく分からず。
Linux環境って分からないことを調べていると知らない用語や概念が出てきて、それを更に調べていると……の無限地獄に陥ることがよくあるので、これ以上は深追いせず。
そもそも root権限でなければ駄目なのかなと`sudo`で実行するとエラーは出なくなる。
ただいずれにしても返ってこない（要強制終了）。上記の説明をよくよく見ると「I added this command to my startup programs」とある。
つまり開始時に実行して流しっぱなしにしておけってことか。
確かにこれが動いていると例のメッセージが出なくなることは確認できたが。

しかし、よく分からないプログラムが裏で動いているのも気持ち悪い。万が一将来それが原因のトラブルが発生しても、その頃には`jackd`は忘却の彼方で無駄に時間を使ってしまうことも予想される。
`jackd`は`sudo apt --purge autoremove jackd`で削除した。

また`dmesg`で以下が出力されることに気が付いた。
```shell
[   10.900427] hdmi-audio-codec hdmi-audio-codec.4.auto: ASoC: error at snd_soc_dai_startup on i2s-hifi: -19
[   10.901072] hdmi-audio-codec hdmi-audio-codec.4.auto: ASoC: error at snd_soc_dai_startup on i2s-hifi: -19
[   10.901718] hdmi-audio-codec hdmi-audio-codec.4.auto: ASoC: error at snd_soc_dai_startup on i2s-hifi: -19
[   10.908762] hdmi-audio-codec hdmi-audio-codec.4.auto: ASoC: error at snd_soc_dai_startup on i2s-hifi: -19
[   10.909087] hdmi-audio-codec hdmi-audio-codec.4.auto: ASoC: error at snd_soc_dai_startup on i2s-hifi: -19
[   10.909351] hdmi-audio-codec hdmi-audio-codec.4.auto: ASoC: error at snd_soc_dai_startup on i2s-hifi: -19
```
調べたら公式フォーラムにも挙がっていた。

[Kernel 5.10.76-v8+ - Raspberry Pi Forums](https://forums.raspberrypi.com/viewtopic.php?p=1930408#p1935685 "Kernel 5.10.76-v8+ - Raspberry Pi Forums")
> ```
> red6 wrote: ↑
> Tue Nov 09, 2021 7:12 pm
> Nov 9 13:51:58 pi4 kernel: [ 14.942115] hdmi-audio-codec hdmi-audio-codec.7.auto: ASoC: error at > > snd_soc_dai_startup on i2s-hifi: -19
> ```
> それは正常で無害です。



というか、これも Linux あるあるで、何かメッセージが表示されている、ログに出力されている、何だろうこれと調べてみるも、結局無視して良い、ってありがち過ぎる。何とかならないものかね。

等々と試行錯誤していて思い出したこと。
64-bit版 Pi OS は HDMI音声出力のトラブルが公式フォーラムによく挙がっていた。
また、kodi にしても、インストール直後、音声が出力されず面食らった。
よくよく設定を確認してみるとオーディオ出力デバイスが Default になっていて、出力先を変更したら音声が出力されるようになった。しかし、今までそんな設定弄ったことないんだよな。
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/254888/ce4a6a79-81c3-c3d1-d76e-3f6f93359e6e.png" width=60%>

64-bit環境からなのか、bullseye環境からかよく分からないが、音声出力系が色々と変わっている印象。