Select Your Language

免責事項

  • 本サイトの情報の利用、内容、サービスによって、利用者にいかなる損害、被害が生じても、著者は一切の責任を負いません。ユーザーご自身の責任においてご利用いただきますようお願いいたします。

    本サイトで頒布している基板およびキットは、技術者、またはそれに準ずる電気的知識をお持ちの電子工作ファンの方のためのものです。一般のオーディオファンの方のためのものではありません。
    また、頒布基板およびキットは、いかなる条件でも動作を保証するものではございませんので、あらかじめご了承ください。

    電子工作では、火傷、感電、火災などの可能性があります。十分に注意をして作業して下さい。

    営利目的のご使用は認めておりません。 記事の転載や、基板・キットの商用利用の方は、ご連絡ください。学生やサークルの学習目的でまとめてご購入する場合は特別価格でご提供させていただきます。
無料ブログはココログ

スポンサー

« アクリル板の加工データを作ろう(2) | トップページ | PRT-01、PRT-02を補充しました。 »

2022年2月20日 (日)

reTerminal(Raspberry Pi CM4)でMoodeAudioを動かそう

reTerminalというRaspberry Pi CM4と5インチタッチパネルを組み込んだユニットが秋月電子で売っていました。

ラズパイ全般が品切れしているなか少し目立つ存在だったため、特に使う用途は考えずに購入してみました。

価格は24,800円(3月末までのキャンペーン価格は23,700円)と少々お高めですが、内蔵しているCM4はメモリ4GB、eMMC 32GB、WIFIありモデルで単体では12,000円くらいのものです。静電容量式タッチパネル5インチ1280x720のLCDと共にキレイなケースに収まっていることを考えると納得の価格設定とは思います。でも高い。

設定に苦労したので備忘録としてまとめました。興味のある方はどうぞ。

 

 

ドライバが必要

reTerminalの画面とタッチパネルなどのドライバは、RaspbaeeyPi OS用になっていて僅かなコマンドで組み込むことができるようになっています。ドライバソースなどは以下にあります。

https://github.com/Seeed-Studio/seeed-linux-dtoverlays

設定方法など詳細は後述します。

 

 

eMMC書換え方法

Seeed社の松岡氏が丁寧に説明されているので、そちらをご覧ください。

ブログ https://lab.seeed.co.jp/archive/category/reTerminal

reTerminalのeMMCを初期状態に戻す

この方法を使ってRaspberryPi OSではなくmoodeAudioを書き込みます。
moode-r761-iso.zipを使いました。

最初にVolumioをインストールしてみたのですが、画面のドライバ導入時にコンパイルエラーが発生して結局、画面を出せませんでした。修行が足りないようです。引き続き挑戦してみようかと思ってます。

気を取り直してMoodeAudioで挑戦したところ、うまく行きましたので本日の備忘録になっています。

 

 

MoodeAudioが起動したところからスタート

sshにてリモートログインします。

host: moode.local
user: pi
pass: moodeaudio

私の環境だけかもしれませんが、teratermから接続できるもののwebブラウザからアクセスできず少々苦労しました。

http://moode.local

に繋がらないのです。

 

仕方ないのでteratermからコマンドでIPアドレスを強制的に指定します。

sudo ifconfig eth0 192.168.50.55 netmask 255.255.255.0

といった感じ。ご自身のネットワーク環境に合わせてください。

 

設定したらwebブラウザからそのIPアドレスにアクセスして、web-UI上からもう一度アドレスを固定します。

Configのネットワークから

Reterm02

※ アドレスはご自身の環境に合わせてください。

これで次回起動以降も安定して繋がるようになります。

 

 

DACの設定をして確認

これは後で設定しても良いのですが、どの時点で音がでなくなるのか確かめるために最初に設定しておくことにしました。(何度も再インストールして、途中で音が出なくなることが分ったので)

Reterm03

設定して再起動するとちゃんと音が出ます。

 

 

ストレージ拡張

ドライバを導入するときにrootパーティションの容量が足りなくなるのでeMMCの容量いっぱいまで拡張します。

sudo raspi-config

> 6 Advancd Option
> A1 Ecpand Filesystem

設定終了して再起動します。

この辺はRaspberryPi OSそのものです。MoodeAudioがRaspberryPi OSをベースにソフトを組み込んでいるので助かりますね。

 

 

画面ドライバの導入

では早速、画面ドライバを入れていきます。

基本的にこちらの「ドライバーをインストールする」項目の説明の通りに進めます。

sudo apt update

git clone --depth 1 https://github.com/Seeed-Studio/seeed-linux-dtoverlays

cd seeed-linux-dtoverlays

sudo ./scripts/reTerminal.sh

ここで長々と文字が出てきて、最後にエラーで止まります。

Can't compile with this kernel, aborting
Please try to compile with the option --compat-kernel

うーん。 良くわからないが --compat-kernel というオプションを試してくださいとの事らしいです。

sudo ./scripts/reTerminal.sh --compat-kernel 

そうすると、

DKMS: install completed.
DTC overlays/rpi/reTerminal-overlay.dtbo
'overlays/rpi/reTerminal-overlay.dtbo' -> '/boot/overlays/reTerminal.dtbo'
DTC overlays/rpi/reTerminal-bridge-overlay.dtbo
'overlays/rpi/reTerminal-bridge-overlay.dtbo' -> '/boot/overlays/reTerminal-bridge.dtbo'
cp: cannot create directory '/usr/share/plymouth/themes/': No such file or directory

ディレクトリが無いとか吐いてますがドライバ自体はインストールできたっぽいです。

/boot/config.txtには下記のものが追記されていました。

enable_uart=1
dtoverlay=dwc2,dr_mode=host
dtparam=ant2
disable_splash=1
ignore_lcd=1
dtoverlay=vc4-kms-v3d-pi4
dtoverlay=i2c3,pins_4_5
gpio=13=pu
dtoverlay=reTerminal
dtoverlay=reTerminal-bridge

再起動します。

 

この時点でmoodeAudioの音はでなくります。(再生するとALSAエラーがでて再生不能)

lsmodではsoundドライバが取り込まれているのにaplay -lやalsamixerではDAC基板が無いことになっている。

 

 

縦横がへん

起動時にはこんな感じで文字が表示されるようになります。

Reterm04

画面が出たというところでホっとしました。Volmioでは一切出ませんでしたから。

pi@moode:~ $ DISPLAY=:0.0 xrandr
Screen 0: minimum 320 x 200, current 720 x 1280, maximum 7680 x 7680
HDMI-1 disconnected primary (normal left inverted right x axis y axis)
HDMI-2 disconnected (normal left inverted right x axis y axis)
DSI-1 connected 720x1280+0+0 (normal left inverted right x axis y axis) 0mm x 0mm
720x1280 60.00*+

最後のDSI-1というのがこのLCD画面らしいです。720x1280というのが縦横比がおかしい部分です。

気にしないで以下のコマンドで画面を出してみます。

startx

私も初めて知ったのですが、MoodeAudioでは最初からX11とchromiumなど一式インストールされていて、このコマンドでweb-UIがローカルで出力されるようになっています。

Reterm05

まあ、そうなりますよね・・・

 

 

 

正しく表示させる組み合わせ

Linuxで画面の縦横を回転させる方法は様々なところに存在します。環境によりどこで設定するのが適切なのか色々パターンがあります。とりあえず手あたり次第やってみました。(バージョンやディストリビューションによって設定方法が変わるのはLinuxあるあるですよね。)

 

■ /boot/cmdline.txt に以下の文字列を追記する方法

video=DSI-1:1280x720@60,rotate=270

-> 横長方向になるが、画面がチラついて 二重になる。 NG 戻す。

 

ここの「モニターを設定する」 という項目

~/.config/monitors.xml を作って指定しています。

->何も変わらない。 NG 消す。

ウインドウマネージャー用の設定なのか、素のstartxには利かないっぽいです。

 

■ .xinitrc設定(chromiumのkioskモード設定)

sudo nano .xinitrc を編集

SCREENSIZE="$(fbset -s | awk '$1 == "geometry" { print $2","$3 }')" 

で画面サイズを検出している部分を強制的に指定する。( print $2と$3の入換えでも良いかも)

さくっと

SCREENSIZE="1280,720" にします。

Reterm06

ついでに画面が一定時間で消えるのを解消するために

xset s 600  を  xset s off  に変更しておきます。

-> 画面サイズは正しくなる。が、縦横回転していないためハミ出る。 採用

 

■モニターの回転指定

sudo nano /usr/share/X11/xorg.conf.d/30-monitor.conf  で新規ファイルを作成して下記を記入

Section "Monitor"
    Identifier "DSI-1"
    Option "Rotate" "right"
EndSection

-> 正しく表示できた。 採用

 

ココまでで特に気にしていませんでしたが、タッチパネルの動きも正常な方向になっているようです。

pi@moode:~ $ DISPLAY=:0.0 xrandr
Screen 0: minimum 320 x 200, current 1280 x 720, maximum 7680 x 7680
HDMI-1 disconnected primary (normal left inverted right x axis y axis)
HDMI-2 disconnected (normal left inverted right x axis y axis)
DSI-1 connected 1280x720+0+0 right (normal left inverted right x axis y axis) 0mm x 0mm
720x1280 60.00*+

と先ほどとは変わって「1280x720 right」となってますね。めでたしめでたし。

 

 

startxの自動起動

起動後sshログインしてstartxコマンドを打たないとweb-UIが出ないのは面倒ですね。自動起動しましょう。

sodu nano /etc/rc.local  で exit 0 の前に以下の一行を追加します。

su -l pi -c startx

これで再起動後に自動でweb-UIが表示されるようになります。

 

だが、音は出ない。

 

 

音を出すには

sudo nano /boot/config.txt を編集します。

Reterm07

dtoverlay=vc4-kms-v3d-pi4,noaudio=on 

それとHATのDACドライバを一番下に移動することでOKになります。(Moodeのweb-UIから設定すると中間くらいに記載が入ります。)

dtoverlay=hifiberry-dac     <- (hifiberry-dacの場合)

 

 

■ちょっと詳細説明

vc4-kms-v3d-pi4 がHDMIなどの画面ドライバの設定ですが、HDMIは音も出せるため、サウンドドライバも同時に入ってしまいます。

dtoverlay=vc4-kms-v3d-pi4 の場合

pi@moode:~ $ aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: vc4hdmi0 [vc4-hdmi-0], device 0: MAI PCM vc4-hdmi-hifi-0 [MAI PCM vc4-hdmi-hifi-0]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 1: vc4hdmi1 [vc4-hdmi-1], device 0: MAI PCM vc4-hdmi-hifi-0 [MAI PCM vc4-hdmi-hifi-0]
Subdevices: 1/1
Subdevice #0: subdevice #0

 

dtoverlay=vc4-kms-v3d-pi4,noaudio=on の場合

pi@moode:~ $ aplay -l
aplay: device_list:272: no soundcards found...

 

dtoverlay=allo-digione を一番下に書いてみる

pi@moode:~ $ aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: sndallodigione [snd_allo_digione], device 0: Allo DigiOne HiFi wm8804-spdif-0 [Allo DigiOne HiFi wm8804-spdif-0]
Subdevices: 1/1
Subdevice #0: subdevice #0

となり、Moodeの側の設定と一致して音が出せるようになります。

HATのDACドライバを一番下に記載するのがミソです。これに気付くのに2日かかりました。

 

 

 

HAT基板のデカップリングコンデンサの影響

SB32+PRO DoPやNorthFoxDigiなど電源デカップリングの容量が大きいと、画面が表示されないという不具合が出ます。

 

画面が真っ黒のままなのでCM4が起動していないのかな、とも思ったのですが、MPDやwebアクセスなど基本動作はしているので単純にLCDのハードウェアのリセット不良が起きていると推測しています。

という訳で電源デカップリングの容量が大きい基板は使えません。

SabreberryDAC ZEROは問題なく使用できています。NorthFoxDigiは画面が出たり出なかったりと不安定。

格安で売られているHATのDAC基板は大容量のデカップリングは搭載されていないので、問題なく使えるかもしれません。

 

 

 

« アクリル板の加工データを作ろう(2) | トップページ | PRT-01、PRT-02を補充しました。 »

Raspberry Pi」カテゴリの記事

コメント

たかじんさん

これ、いいですね。 小さいので、電源関係を工夫すれば、音質改良もできそうだし。

次の解決策の記事を楽しみにしています。

n'Guin さん

画面の解像度が高くキレイなLCDなので見た目は良いです。

ただ、このUIだと文字が小さすぎて老眼にはつらい。。。

コメントを書く

(ウェブ上には掲載しません)

« アクリル板の加工データを作ろう(2) | トップページ | PRT-01、PRT-02を補充しました。 »

サイト内検索(new)

2022年7月
          1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31