おなまえ
Eメール
タイトル
コメント
参照先
暗証キー (英数字で8文字以内)
画像認証 (右画像の数字を入力) 画像認証
Re: Boticized lightMPD システムの作り方 投稿者:yo 投稿日:2017/01/12(Thu) 21:32 No.5485

タイトルと内容が不一致になっているので、新しいスレッドで続けます。
lightMPDのコンフィグだとエラーになるということですが、なんとかならないかと試してみました。

/home/yo/linux-upstream/drivers/rtc/rtc-omap.c:703: `pm_schedule_power_off' に対する定義されていない参照です
Makefile:951: ターゲット 'vmlinux' のレシピで失敗しました
make: *** [vmlinux] エラー 1

こういうエラーになります。

rtc-omap.cについて調べると、
/*
* The OMAP RTC is a year/month/day/hours/minutes/seconds BCD clock
* with century-range alarm matching, driven by the 32kHz clock.
*
* The main user-visible ways it differs from PC RTCs are by omitting
* "don't care" alarm fields and sub-second periodic IRQs, and having
* an autoadjust mechanism to calibrate to the true oscillator rate.
*
* Board-specific wiring options include using split power mode with
* RTC_OFF_NOFF used as the reset signal (so the RTC won't be reset),
* and wiring RTC_WAKE_INT (so the RTC alarm can wake the system from
* low power modes) for OMAP1 boards (OMAP-L138 has this built into
* the SoC). See the BOARD-SPECIFIC CUSTOMIZATION comment.
*/
ということです。
エラーの出た部分のソースを見ると
if (rtc->is_pmic_controller) {
if (!pm_power_off) {
omap_rtc_power_off_rtc = rtc;
pm_power_off = omap_rtc_power_off;
}
pm_schedule_power_off = omap_rtc_schedule_power_off;
}
最後の行の「omap_rtc_schedule_power_off が定義されていない」と怒られて、vmlinuxを作ってもらえないということのようです。
rtc-omap.cはBoticのパッチはかかっていないプログラムなので、Botictze化とは関係がなさそうです。menuconfigを見ると
Device Drivers --->
[*] Real Time Clock --->
<*> TI OMAP Real Time Clock
となっているので、こいつがエラーを引き起こした犯人であるようです。
どうしたものかと悩みましたが(まあ、デシファイのおとさんに質問する内容だと思いますが)、
// pm_schedule_power_off = omap_rtc_schedule_power_off;
というトランプ並(^^;;;(^^;;;(^^;;;の無謀な解決方法を選ぶふとにしました。

結果はビルドは通り、音も出ています。

音の感じは大分違いますね。僕にはこっちの方がいいかなという感想。尖っているのは相変わらずですが、これなら、APU(lightmpd upnpgw)と繋いで、使うことは出来そうです。
ちなみに大きさの比較ですが、こんな具合になります。
-rwxr-xr-x 1 yo yo 5515504 1月 11 19:59 zImage-lightmpd-botic
-rwxrwxr-x 1 yo yo 3042040 1月 12 08:35 zImage-lightmpd-botic-org
-rwxr-xr-x 1 yo yo 2786880 1月 11 20:00 zImage-org
一番上がinthedarkさんがビルドしたもの(omap2plus_defconfig)、二番目が今回ビルドしたもの(config-lightmpd)、一番下がオリジナルです。
やはり同じコンフィグを使えば、大幅に減量されますね。

ビルド方法を紹介します。

あらかじめlightMPDのコンフィグを取り出しておきます。
zcat /proc/config.gz > config-lightmpd

wget http://repo.ieero.com/botic/pool/main/l/linux-upstream/linux-upstream_4.8.13-botic7-rc3.orig.tar.gz" target="_blank">http://repo.ieero.com/botic/pool/main/l/linux-upstream/linux-upstream_4.8.13-botic7-rc3.orig.tar.gz
wget ftp://ftp.kernel.org/pub/linux/kernel/projects/rt/4.8/older/patch-4.8.14-rt8.patch.gz
tar -zxvf linux-upstream_4.8.13-botic7-rc3.orig.tar.gz
cd linux-upstream
gzip -dc ../patch-4.8.14-rt8.patch.gz | patch -p1
patch -p1 < ../patches/native-dsd-noise.patch
nano drivers/rtc/rtc-omap.c
ソースの修正
cp ../config-lightmpd ./.config
make ARCH=arm CROSS_COMPILE=/usr/bin/arm-linux-gnueabihf- menuconfig
#5455の(6)だけやればいいです。
make ARCH=arm CROSS_COMPILE=/usr/bin/arm-linux-gnueabihf- zImage dtbs

SDカードの設定(Windows側でのフォーマットとzipファイルの解凍は行っておきます)。
以下は僕の環境での設定です。
sudo fdisk /dev/sdb
ブート指定をon
a->w
sudo mount /dev/sdb1 /mnt
sudo cp /mnt/boot/zImage /mnt/boot/zImage-org
sudo cp /mnt/boot/dtbs/am335x-boneblack.dtb /mnt/boot/dtbs/am335x-boneblack.dtb-org
sudo cp arch/arm/boot/zImage /mnt/boot/
sudo cp arch/arm/boot/dts/am335x-boneblack-botic.dtb /mnt/boot/dtbs/am335x-boneblack.dtb
sudo nano /mnt/lightMPD/lightmpd.conf
[network]
address=192.168.0.20
[ntp]
server=ntp.nict.jp
nas:NASID1を全てコメントイン
nas:NASID2を全てコメントアウト
[nas:NASID2]
host=192.168.0.35
remotedir=public
remoteuser=yo
[mpd]
# load_module=mpd-0.19.9rt
load_module=mpd
music_directory=NASID2/
# playlist_directory=NASID2/mpd/playlists
playlist_directory=NASID2/mpd/
db_file=NASID2/mpd/tag_cache
# db_file=NASID2/mpd/
# sticker_file=NASID2/mpd/sticker.sql
sticker_file=NASID2/mpd/
log_file=NASID2/mpd/mpd.log
# log_file=/dev/null
sudo nano /mnt/lightMPD/mpd.conf
# dsd_usb "yes"
dsd_usb "no"
dsd_native "yes"
dsd_native_type "3"
sudo nano /mnt/uEnv.txt
optargs=snd_soc_botic.ext_masterclk=3 snd_soc_botic.serconfig=MMMM snd_soc_botic.dsd_format_switch=3
sudo umount /mnt
sync
こうやってみると案外簡単ですね。

リスクを承知で音を聞いてみたいという方もいらっしゃるだろうから、僕のサイトのアップロードフォルダーに置いておきます。何があっても、文句はいわないという条件でダウンロードして下さい。
zImage
http://mimizukobo.sakura.ne.jp/cgi-bin/downlog.cgi?upload/zImage-lightmpd-botic8" target="_blank">http://mimizukobo.sakura.ne.jp/cgi-bin/downlog.cgi?upload/zImage-lightmpd-botic8
am335x-boneblack-botic.dtb
http://mimizukobo.sakura.ne.jp/cgi-bin/downlog.cgi?upload/am335x-boneblack-botic.dtb-lightmpd-botic8" target="_blank">http://mimizukobo.sakura.ne.jp/cgi-bin/downlog.cgi?upload/am335x-boneblack-botic.dtb-lightmpd-botic8


Re: Boticized lightMPD システムの作り方 投稿者:inthedark 投稿日:2017/01/12(Thu) 22:07 home No.5486

yoさん

こういう工夫を待ってました。
元の.configを使う方がよりlightmpdに近いわけですから。
あとlightmpd bbb版はusbの優先度を最高にあげてますので
chrtで設定をやり直すか、romfsを解凍してchrtの箇所に修正を
加えるとまた音が違ってくるかもしれません。

inthedark


Re: Boticized lightMPD システムの作り方 投稿者:inthedark 投稿日:2017/01/13(Fri) 09:08 home No.5487

このスレッドでやっていることに興味をもって頂いた皆さん
にお願いです。

  inthedarkのコンフィグよりこっちの方がいいぜ!

というものがあればぜひ御報告ください。(yoさんのように)

やり方は公開されてますし、チャレンジされる方がどんどん
登場されると楽しいんじゃないかなあ。そう思います。

inthedark


Re: Boticized lightMPD システムの作り方 投稿者:in 投稿日:2017/01/13(Fri) 09:37 home No.5488

先に述べましたコンフィグだけでなく、

  こんな風にしたらいいんじゃね?

といったアイデアなどありましたら、お気軽にレスを残して
頂けると、なお楽しいかなあ。そう思います。

inthedark


Re: Boticized lightMPD システムの作り方 投稿者:yo 投稿日:2017/01/13(Fri) 17:16 home No.5489

inthedark さん

> romfsを解凍してchrtの箇所に修正を加えるとまた音が違ってくるかもしれません。

このやり方がよく分からないのですよね。
uInitrd はgzipフォーマットのようなのですが、
yo@ubuntu:~$ gzip -d /mnt/boot/uInitrd
gzip: /mnt/boot/uInitrd: unknown suffix -- ignored
とエラーになってしまいます。

無理矢理、windows環境で7zipを使って解凍し、initrd.romfsにします。その後
sudo ./extromfs.sh /mnt/boot/initrd.romfs root/
で展開することは出来ました。
extromfs.shは
http://download.atmark-techno.com/armadillo-9/tools/extromfs.sh" target="_blank">http://download.atmark-techno.com/armadillo-9/tools/extromfs.sh
からダウンロードしました。

usb処理の優先レベルを変更します。
cd root
nano ./var.rom/lightMPD/bin/irqhandler.scm
(cond [(string=? systype "beaglebone") '(("musb-hdrc.1.auto" "FIFO:20"))]
genromfs -f ../initrd.romfs
で initrd.romfs.gz が作成されるので、これを無理矢理 lightmpdの /boot/uInitrd にリネーム・コピーしても、ブートするとカーネルパニックとなってしまうのですよね。

何かお気づきの点があれば、ご指摘ください。

ところで、rtカーネルでないとnasを認識しないのはどうもlightmpdの仕様のようですね。rt化されていないと、優先レベルの設定処理でエラーとなり、その先のnasの認識処理が出来なくなるということのようです。


Re: Boticized lightMPD システムの作り方 投稿者:moct 投稿日:2017/01/13(Fri) 18:05 home No.5490

inthedark さん はじめまして  yoさん こんばんは
まず私の方で分かったことです。
telnetでログインしてchrtコマンドは有効ですが、pgrepを使えません。yoさんがエラーになったのはこのあたりが原因と思います。
何度か起動を繰り返してもpidは変わらないようなのでchrtに直接pidを入れて優先レベルを変えてみました。usbは99に設定してあったので49に変え、nasも49、面倒なのでmpd-outputを99に設定して聴いてみましたが、随分雰囲気が変わります。これは良いと思います。
そして思ったのですが、起動時に実行するスクリプトファイルをSDカード上に置くことができれば、簡単に優先レベルの設定をを変えることができるのに、ということです。
もうひとつは、クロスコンパイラでmpdをコンパイルする環境の構築方法が知りたいことです。
カーネルについては、何をやっているのかよく分からないレベルなので、みなさんの真似をしながら少しずつ理解していこうかと思っています。


Re: Boticized lightMPD システムの作り方 投稿者:inthedark 投稿日:2017/01/13(Fri) 18:18 home No.5491

yoさん

解凍の方は僕もその方法でやりました。
uInitrdの作り方ですが、ubootのソースにmkimageというコマンドがあります。これを使って例えばこんな風にするとよいと思います。

/uboot-2017.01/tools/mkimage -A arm -O linux -T rmadisk -C gzip -d initrd.romfs.gz uInitrd
試してみてください。

nasのマウントの件はまだこちらでは試しておりません。
が、おそらくyoさんの推理があたっているのではないかと思います。

inthedark


Re: Boticized lightMPD システムの作り方 投稿者:inthedark 投稿日:2017/01/13(Fri) 18:20 home No.5492

コマンドの訂正です。

rmadisk(誤)  
ramdisk(正)

inthedark


Re: Boticized lightMPD システムの作り方 投稿者:inthedark 投稿日:2017/01/13(Fri) 18:45 home No.5493

moctさん

yoさんのようにlightmpdを解凍する、固めるができるようになれば中に入っていじくることができて面白いとは思いますが、一般的にはそんなの面倒くさい!となるでしょうね。
lightmpd.confでchrtの設定項目でもつくってそこから優先度を
変えられるようにできればたくさんのユーザーに気軽に試して
頂けるかと思いますが、それはlightmpdが本当にわかっていないとできません。
pgrepが使えないのは、ルートファイルシステムに組み込まれて
いないんでしょうね。たぶん。
mpdについてはカーネルの着せ替えのように簡単ではありません。ライブラリの整合性がないと動きませんしね。
(私は実際試したことがあります、見事に動きません。)

これからもお気軽に色々つぶやいていってください。

inthedark


Re: Boticized lightMPD システムの作り方 投稿者:yo 投稿日:2017/01/13(Fri) 19:22 home No.5494

inthedark さん

アドバイス、Many thanks です。うまくいきました。これで何でも出来そうですね。
問題はGaucheとかいうlisp風の初期処理の設定言語ですね。


moct さん

一応、lightmpdをboticizedしながら、乗っ取る方法はほぼ解明しましたので、ご注文にアドバイスはできそうです(必ず出来るとはいえませんが)。
とりあえずのレベルの設定のスクリプトについては作戦を考えてみます。
lightmpd用mpdのクロスコンバイル環境ですが、仮想環境を使うということでいいのじゃないですか。


Re: Boticized lightMPD システムの作り方 投稿者:inthedark 投稿日:2017/01/13(Fri) 19:37 No.5495

yoさん

ho-ho-ho、よかったですね。苦労した甲斐がありました。
ときどきlightmpdの掲示板でお見掛けするdounuts.shop73さんという方がいらっしゃいますが、その方もこんな風におっしゃってます。

一般的にlightmpdはブラックボックスということになっています
が自分にとってはそんなことはありません。(gauche以外)

まあこれでスーパーサイヤ人化したyoさんは無敵ですな。

inthedark


Re: Boticized lightMPD システムの作り方 投稿者:yo 投稿日:2017/01/13(Fri) 19:50 home No.5496

> mpdについてはカーネルの着せ替えのように簡単ではありません。ライブラリの整合性がないと動きませんしね。

その通りなのですが、カーネルのレベルが4.8.13なので、最新のライブラリにすることは出来ると思います。問題は整合性の確保ですが、MPDだけに限定すれば、なんとかなるかなと思います。MPDで使う機能次第ではありますが。今、展開したライブラリを眺めていますが、比較的シンプルです。

まあ、しかし、デジファイのおとさんはこれを様々な機種に対応させてやっているわけで、大変だろうなぁと思います。改めて感謝です。


Re: Boticized lightMPD システムの作り方 投稿者:yo 投稿日:2017/01/13(Fri) 20:01 home No.5497

inthedark さん

> 一般的にlightmpdはブラックボックスということになっています
> が自分にとってはそんなことはありません。(gauche以外)

同感です。
僕もlightmpdは他のディストリビューションのように中味を自由にいじることが出来ないので、面白くないと思っていましたが、今回、認識を改めました。コンパクトにまとまっている分、仕組みが分かればいじりやすそうですね。ただ、あのスクリプト言語はパスだなぁ(^^;;;。


Re: Boticized lightMPD システムの作り方 投稿者:inthedark 投稿日:2017/01/13(Fri) 20:14 home No.5498

yoさん

mpdの着せ替え、期待しております。喜ばれると思います。
これで僕も安心して一読者にもどれます。ho-ho-ho-ho

inthedark


Re: Boticized lightMPD システムの作り方 投稿者:yo 投稿日:2017/01/13(Fri) 21:04 home No.5499

これは僕のVmwarePlayerのArch Linux環境です。
login as: root
root@192.168.5.135's password:
Last login: Wed Jan 4 00:29:11 2017 from 192.168.5.1
[root@arch ~]# uname -a
Linux arch 4.8.13-1-ARCH #1 SMP PREEMPT Fri Dec 9 07:43:17 CET 2016 i686 GNU/Linux
先月インストールしたものだと思いますが、ほぼ今回のBoticied lightMPDと同じレベルですから、この位だとそんなに極端な整合性の狂いは発生しないのではないでしょうか。


Re: Boticized lightMPD システムの作り方 投稿者:yo 投稿日:2017/01/13(Fri) 21:16 home No.5500

勘違いしていました。arm環境じゃないと意味がないから、Boticized Arch linuxがお勧めですね。
login as: root
root@192.168.0.5's password:
Last login: Tue Jan 10 12:28:26 2017 from 192.168.0.9
[root@alarm ~]# uname -a
Linux alarm 4.8.13-botic7-rc3 #4 PREEMPT Wed Dec 28 20:07:34 JST 2016 armv7l GNU/Linux


Re: Boticized lightMPD システムの作り方 投稿者:inthedark 投稿日:2017/01/13(Fri) 21:22 home No.5501

yoさん

そうですね。大丈夫だと保証はできませんが。
まだまだ楽しみがつきませんね。
うまくいくといいなあ。

inthedark


Re: Boticized lightMPD システムの作り方 投稿者:ca2 投稿日:2017/01/14(Sat) 03:04 home No.5502

はじめまして。uInitrdの解凍の件で書かきます。
すでにwinでの7zipでOKとのことなので良いのかもしれませんが、次の質問へのアンサーの方法でubuntu等でも中身をマウントできるようです。
http://unix.stackexchange.com/questions/113827/how-to-extract-files-from-uimage" target="_blank">http://unix.stackexchange.com/questions/113827/how-to-extract-files-from-uimage
具体的には、
tail -c+65 < uInitrd | gunzip > out
sudo mount -ro loop out /mnt
としました(最初のコマンドの+65あたりの意味は私は良くわかってません)。参考まで…


Re: Boticized lightMPD システムの作り方 投稿者:yo 投稿日:2017/01/14(Sat) 08:09 No.5503

ca2さん、情報ありがとうございます。

VmwarePlayerのubuntu環境で早速試してみました。

yo@ubuntu:~$ sudo mount /dev/sdb1 /mnt
yo@ubuntu:~$ tail -c+65 < /mnt/boot/uInitrd | gunzip > out
yo@ubuntu:~$ sudo mount -o loop,rw out mnt
yo@ubuntu:~$ ls mnt
bin dev home lib linuxrc mnt proc run sys usr var.rom
boot etc init lib32 media opt root sbin tmp var

となります。これはスマートでいいですね。-c+65はgunzipに渡す解凍用の情報なのですかね。
こうやってどんどん情報が集まってくるところが、ネットワークプロジェクトのいいところですね。


Re: Boticized lightMPD システムの作り方 投稿者:えふ 投稿日:2017/01/14(Sat) 16:40 home No.5504

yoさん、大変ご無沙汰しております。

最近の一連の記事を拝見して、数年ぶりにBBBを持ち出して来ました(^^;
moctさんのArch BoticとyoさんのlightMPD Boticを交互に差し替えて聴いています。本当に、どちらも素晴らしいと思います。

ちなみに、DACは自作でTI(BB)社のDSD1794を使用したものなので最新のものではありませんが、私にはこれで充分です。聴く音楽がちゃんと楽しめていますので。工夫したところは、自作プログラムによるマイコンを搭載して、PCM,DSDの自動切換を行っているところです。

いつも何のお役には立てませんが、取りあえずお礼を申し上げたくて…。


Re: Boticized lightMPD システムの作り方 投稿者:yo 投稿日:2017/01/15(Sun) 07:58 home No.5505

えふ さん、お久しぶりです。

BBB-Boticプロジェクトがお役にたったようで、なによりです。

僕がBBB-Boticで主に使っているハードはaitlaboの古いDACです。これはES9018Sと今となっては旧式のチップを使ったDACですが、暖かい音がするので気に入ってます。新しいチップを使ったハードも出ているらしいのですが、入れ換えるどうか、どうしたものかと思案しています。

Arch版とlightMPD版はそれほど大きい差はないと思いますが、お勧めはapuをお持ちなら、最新のlightMPDを使い、apuとBBBをデュアルで接続するUPnP方式です。これは耳に優しくて、とても良い音がします。


Re: Boticized lightMPD システムの作り方 投稿者:Toshi 投稿日:2017/01/16(Mon) 10:44 home No.5506

yo様

LightMPD BBB-Boticのイメージ公開有難うございました。BoticにHifiberry-dacを載せて、動作確認しました。いつでも電源をオフにできるLightMPDが使える事になり、嬉しく思います。ただ、Hifiberry-dacplus、Hifiberry-digi、Hifiberry-digi-proでは、動作しないようです。特別の設定が必要なのでしょうか?


Re: Boticized lightMPD システムの作り方 投稿者:yo 投稿日:2017/01/16(Mon) 17:55 home No.5507

Toshi さん

Hifiberry-dacの動作報告ありがとうございました。linuxcomさんのブリッジ基板を使われたということでしょうか。
それで、

> ただ、Hifiberry-dacplus、Hifiberry-digi、Hifiberry-digi-proでは、動作しないようです。特別の設定が必要なのでしょうか?

分かりません。ブリッジ基板と接続されているのであれば、動きそうなものですが。
全てrpi用のi2s接続の合体型DACですよね。とすると関連するのはuEnv.txtのoptargs=文だけのはずです。
特にlightMPD固有の話ではないので、情報はmieroさんのサイトか
http://bbb.ieero.com/" target="_blank">http://bbb.ieero.com/
Boticサポート用のボード
http://www.diyaudio.com/forums/twisted-pear/258254-support-botic-linux-driver.html" target="_blank">http://www.diyaudio.com/forums/twisted-pear/258254-support-botic-linux-driver.html
にあるのではないかと思います。情報がなければ、ボードで質問するのが早いかと思います。



mail

- YY-BOARD -