Archを話そう

arch-botic関係のご意見・ご質問ほかいろいろなことはこちらにお願いします。

Archを話そう への11件のフィードバック

  1. ca2 のコメント:

    こんばんは。boticのSDカードをunionfsを使ってro(リード・オンリー)で運用する話を書こうと思います。SDのかわりにeMMCに読みかえても可能なはずです。ただし、作業をまちがえるとシステムを破壊する危険があります。

    具体的な方法は、すでにBBG用に解説を書いて下さってる方がいて:
    http://qiita.com/pinebright/items/aa98c214f4e80bfdd4c2
    この作業をたどればboticでもSDをro化できます。以下の話はそちらの内容を前提にして書きます。

    Arch版での注意点は:
    1. インストールは pacman -S unionfs-fuse になる。
    2. mount_unionfs の中身で、
    /usr/bin/unionfs-fuse の部分は /usr/bin/unionfs と書きかえる。
    3. ちなみに fstab は
    /dev/mmcblk0p1 / ext4 ro,noatime,errors=remount-ro 0 1
    mount_unionfs /etc fuse defaults 0 0
    mount_unionfs /var fuse defaults 0 0
    のようになる。あと、ついでにnasのマウントもroにすると良いかと。

    こうしてro化すると、SDカードが消耗することはなくなるはずで、また急に電源がおちてもSD自体は大丈夫になるはずです。SDは始めから読み込み専用でマウントされ、unionfsによって書き込みはRAM上に限定されるわけです(そうすると音に多少良いかも?と思ったのがきっかけでした)。

    ただ、boticの場合i2s関係でボードが繊細なところがありそうで、電源ひっこ抜きをすると、SDは平気でもBBB(G)本体のボードにダメージがないか不安が私はあります(ハードに詳しくないので良く分からない…)。
    また、一度ro化の作業をしてしまうと、rw(リード・ライト)モードに入ってもpacman等で大規模に変更を加えると色々おかしくなるので、開発環境向きではないです。利用法が固まって始めて検討できる感じでしょうか。
    mpdの設定変更やtag_cacheの更新などは面倒で、rwモードに変えてから、
    cp -rp /var/lib/mpd/* /var_org/lib/mpd/
    cp /etc/mpd.conf /etc_org/mpd.conf
    の様な感じで更新しなければいけません。stateファイルを使いたい場合はさらに面倒でpoweroff前にrwモードにして同様に更新しないといけません。

    こう書くとメリットがどれだけあるか分かりませんが…SDへの書き込み排除にこだわるとこんな方法もあると言うことで紹介してみました。

    • kick のコメント:

      ca2 さん こんばんは
      面白そうな情報、ありがとうございます。音のほうがもう少し固まったらやってみたいです。
      ちょっとVoyageMPDのような感じがしますね。
      tag_cacheなんかはnasの方に置いといて別のマシーンから更新をかければ良いから問題ないと思います。
      上とは少し矛盾しますが、nasはstorage pluginsでmpdの方から直に読み込ませるのも面白いかもしれませんね。sshfを使えないのが少々残念なのと、今の仕様では2箇所以上から同時に読み込めないようなので私は使いたくないのですが。
      電源ブチ切りは、システムの起動前にMCLKを入れちゃいけないということなので、LINUXCOMさんのブリッジボードのようにI2Cで電源を制御したり、Amaneroの様にUSBから持って行くやつは多分大丈夫だと思います。私のようにクロックのところに大容量のコンデンサーをぶら下げると少し危険な気もしますが,(極端な大容量は?)間違って電源を引っこ抜いたり、接触不良で電源が落ちても壊れていませんから多分大丈夫と思っています。

      • ca2 のコメント:

        kichさん

        電源を切る部分はまあ大丈夫なのですね。あと、たしかにtag_cache等のデータ編集は別のPCで行うと割りきれば、Botic自体はroだけで運用できますね。ほかにも、(公平のため?)いろいろ面倒と上では書きましたが、個人的に対処はできると思っています。

        ちなみに、これは本当にちょっと面倒ですが、別のPCでSDをマウントして作業を逆にたどれば元にももどせます。具体的には: (1) fstabの中身をもどして、var_org を var にもどす。(2) etc はデータが残ってるのでそのまま。etc_org は消去してよい。(3) これで起動すれば元通りで pacman 等も使えます。

        ちなみに、fsprotectと言うパッケージが使えればもっと簡単だと思うんですが、前にubuntuで試して利用できなかったのでunionfsの方法を紹介しました。

  2. kens のコメント:

    こんばんは
    systemd-resolved.service もmaskしてしまうと時計合わせができなくなってしまうようです。

  3. kick のコメント:

    ja7jtzさん ytkさん こんばんは
    RockDiskNextをnfsでマウントできないとのことでしたので、少し考えてみました。
    手動ではマウントできるけれども、/etc/rc.localでは不可能ということでしたが、このrc.localは名前は同じであってもシェルスクリプトをサービス化しているだけで、あくまで「もどき」です。
    同じ方法で、新たにnas-mount用のサービスを作って登録すれなんとかなりそうなので……

    vi /etc/nasmount
    #!/bin/bash
    sleep 10
    nasをマウントするコマンド

    chmod +x /etc/nasmount (実行権限を付加)

    nas-mount.serviceを作成
    vi /usr/lib/systemd/system/nas-mount.service
    [Unit]
    Description=/etc/nasmount Compatibility
    [Service]
    Type=oneshot
    ExecStart=/etc/nasmount
    TimeoutSec=0
    #StandardInput=tty
    RemainAfterExit=yes

    [Install]
    WantedBy=multi-user.target

    起動リンクを張る
    ln -s /usr/lib/systemd/system/nas-mount.service /etc/systemd/system/multi-user.target.wants/

    reboot

    多分大丈夫です。

    • ja7jtz のコメント:

      kickさん,ありがとうございました。
      私はlinuxのことはさっぱりわからないので,ネットで情報を探していたのですが,何をやってもダメでしたが,この方法で試したところ,見事に成功しました。
      ただし,/etc/nasmountでnasをマウントするコマンドだけだと,マウントはしているのですがmpdは起動しませんでした。
      そこで/etc/nasmaountにさらに
      /usr/local/bin/mpd –no-daemon /etc/mpd.conf
      を付け加えたところ,めでたくmpdの起動にも成功し,音楽を再生することが出来ました。
      ありがとうございました。これからゆっくり音楽を聞きたいと思います。

    • ytk のコメント:

      kickさん、ja7jtzさん、お世話になっております。
      おかげさまで、私のところでもお二人の情報によってNASをマウントして再生ができるようになりました。
      nas-mount用のサービスというのは、NASをマウントするタイミングを調整するものなのでしょうか。あるいは強力にマウントするような仕組みなのでしょうか。
      不思議でありがたいお呪いのように思いました。
      ありがとうございました。

    • ja7jtz のコメント:

      こんばんは。
      Arch-Boticで「不要なプロセスを止める」を実行して,私の環境では何の問題もなく音楽を再生しています。
      本当に素晴らしいです。オーケストラの音の出方がこれまでのどれとも違います。私の第九H28年版のDSD録音ですが,アンサンブルの乱れ,合唱の不揃い,様々なミスすべてを露わにしてしまいますが,そんなことはどうでも良くなり,聞くことに没頭できるのです。
      これまでは演奏の不具合がはっきりしなくなる,残響の超長いH27年までのボワンボワンした方が良いと思っていました。
      kickさんにDSD命の・・・と評されましたが,私がDSD命の理由は,たまたまナマロクするレコーダーとしてMR-1000を購入したからで,PCMの良いものを購入していたら違っていたと思います。
      期待されてとても嬉しいのですが,私には到底開発側に加わるスキルはありません。申し訳ありません。ただ,一方的にお世話になっているので,こうした開発に加わってお礼をしたいという思いはあります。
      ということで,こらからもよろしくお願いいたします。

  4. tac のコメント:

    eMMCから起動にて

    [root@alarm music]# dd bs=1M if=arch-botic-rt-01092017.img of=/dev/mmcblk1
    dd: error writing ‘/dev/mmcblk1’: No space left on device
    3689+0 records in
    3688+0 records out
    3867148288 bytes (3.9 GB, 3.6 GiB) copied, 362.069 s, 10.7 MB/s

    のようにエラーになるのですがなにか問題があるのでしょうか?
    BBGにて行いました

    • kick のコメント:

      tacさん こんにちは
      説明不足で申し訳ありません。
      eMMCへの書き込みは終わっていると思われます。
      そのままeMMCから再起動して下さい。
      ddコマンドでイメージファイルの内容をそのままeMMCにコピーしようとしたけれど、イメージファイルの容量がeMMCより大きかったので止めた、という内容のエラーです。
      イメージファイルを作る際、eMMCより容量の大きなSDカードを使ったのが原因ですが、実際に使用している領域はeMMCより小さくしてあります。

  5. kick のコメント:

    ca2さん kensさん こんばんは
    systemd-timesyncd.serviceは時計を合わせるコマンドで、networkの変更があった時ntpサーバーをみにいくやつのようです。
    ですから1回仕事してもらってからお休みになっていただいたほうが都合いいのでmaskよりrc.localの最後辺りでおねんねしてもらったほうが、ファイル更新の時なんかにタイムスタンプなどのトラブルなどが出にくくなるように思います。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA