あっきぃ日誌

ラズピッピブログのようなオタクブログのようななにか

Fold for Covid

Raspberry Piのディスクイメージを焼くときに使うやつでおなじみのEtcherで、イメージを焼いている間に紹介されているFold for CovidをRaspberry Pi 4でうごかし始めてみました。

foldforcovid.io

Rosetta@homeのクライアントをアプライアンス化しているプロジェクトのようで、Pi4, Pi3の他にいくつかのシングルボードPC、普通のPCなど向けに対応しています。Raspberry Piの場合はイメージをダウンロードしてEtcherで焼いてRaspberry Piで起動し放置するだけです。

起動した後のタスクの稼働状況は http://foldforcovid.local/ で確認できるようになっています。Pi4は2台あるけど、2つ動かしたら2つ目のアドレスかぶるじゃん……と思ったら、2台目以降は http://foldforcovid-2.local/ といった感じで番号が増えていくらしく、よくできています。

f:id:Akkiesoft:20200515092623j:plain

というわけで2台を1日放置した結果。これがどのくらい貢献できているのかわからんのがあれなところですけど、なんかの役にたてばいいですね。

f:id:Akkiesoft:20200515093341j:plain

( 自分のメモ用に自分のプロフィールURL: https://boinc.bakerlab.org/rosetta/show_user.php?userid=2155909 )

ちなみに、どちらのPi4もFan SHIMで冷却はしっかりやっています。Fanをつけない場合の挙動は試していませんが、おそらくクロックが落ちて計算どころではなくなるかと思います。ヒートシンクを貼ってしまったやつもBooster Headerを噛ましてFanをつけました。SoCに直に風を当てるよりもやや劣るらしいですがないより全然マシです。

Fan SHIM – Active Cooling for Raspberry Pi 4 – Pimoroni Store

Booster Header – Pimoroni Store

ちょうどRaspberry PiのブログでもCovid-19に向けたFolding@Homeの始め方が紹介されていました。Raspberry Piの出版部門であるRaspberry Pi Pressが発行するCustom PC最新号からの紹介なので、この記事自体は普通のPCではじめる方法の紹介になっています。最後のほうに「じゃあARM機では?」というセクションがあって、F@Hができるようにコンタクトを取っているような話が少し書かれていました。それまではRosetta@homeでもできまっせ、とのこと。どちらでも良いんですが、Raspberry PiGPUで計算できるようになるともっと良いかんじになりそうな気はしています。

www.raspberrypi.org

PCでもF@Hを動かしたりしていましたが、最近はお仕事で使うタイミングも多少あるのでお休みしています。

昨日の長津田検車区(さよなら8606F)

8606Fが離脱したと聞き、昨日検車区の歩道橋から屋根を見たのが最後になったなと思ったので書く次第。

上京してまもなくて、まだほとんど鉄道を知らないながらもすでに全編成乗車とか言うマニアックなことをしていた私は、それでも8609Fが離脱したあたりで「8606Fもそろそろ廃車されてどこかに譲渡されるのかしら」などと思っていた時期がありましたが、それから12年。まさか2000系とか8642Fよりも長生きするとは思ってもみませんでした。なんかちょっと感慨深いものがありますね。長い間お疲れさまでした。

そんなわけで最後に拝んだ8606Fの屋根。検査通せばきれいになったりするのかもしれませんが、もう十分役目は果たした感じが伝わって来るような。

f:id:Akkiesoft:20200511180212j:plain

検車区全体はこんな感じ。9001Fが出場して洗車線で留置。5163Fと5165Fは変わらず。2136Fも場所は変わらずでした。なので8606Fの屋根を見た以外特に何もなしです。

f:id:Akkiesoft:20200511180726j:plain

f:id:Akkiesoft:20200511180832j:plain

帰りに2135Fに初乗車。新車の香り is GOOD。多分まだ乗っていない2134Fも運用に入っていたのですが、行きの駅で目の前で発車してしまい逃しました。おしい。

f:id:Akkiesoft:20200511180935j:plain

8606Fの離脱で8500系は16本に。2136Fも含めると2020系と同数になりましたね。また、方向幕車と恒久的なサークルK編成もいよいよ消滅となりました。

実際にPi4を1台ネットワークブート環境に移してみる

Raspberry Pi 4 のPXE対応の続き。

akkiesoft.hatenablog.jp

家ではPi4が1台常時稼働しており、MySQLが動くなどSDカードをしばくかんじの環境なので、PXEブート&ReadyNASNFSストレージ化してみました。

やり方はここを参照。

www.raspberrypi.org

ReadyNASの設定

ReadyNAS(スクショはReadyNAS 102)に、NFSの共有を作ります。クオーターはつけなくて良いですが、なんとなくSDカードっぽく16GBに設定。

f:id:Akkiesoft:20200510132049j:plain

次に共有設定。192.168.29.39はDHCPサーバーのアドレスで、/bootをここに置くのでアクセス権限が必要です。ただ、リードオンリーでもいいかも。Pi4アドレス(192.168.29.82)はリードライトとROOTにチェックを入れます。

f:id:Akkiesoft:20200510132857j:plain

SDカードで稼働中のPi4での作業

まずPXEに対応するために、冒頭に貼った先日の記事の通りブートローダーをアップデートして、PXEブートの有効化を済ませておきます。

SDカード内のデータをNFSrsyncします。ここはドキュメントと同じやり方で良いでしょう。

$ sudo mkdir /nfs
$ sudo mount 192.168.29.12:/data/rpi-rastv /nfs
$ sudo rsync -xa --progress --exclude /nfs / /nfs/
$ sudo rsync -xa --progress /boot/ /nfs/boot/

NFSにコピーした側の起動設定を変えていきます。192.168.29.12がReadyNASのアドレスです。

$ sudo vi /nfs/boot/cmdline.txt

console=serial0,115200 console=tty1 root=/dev/nfs nfsroot=192.168.29.12:/data/rpi-pi4,vers=4.1,proto=tcp rw ip=dhcp elevator=deadline fsck.repair=yes rootwait

$ sudo vi /nfs/etc/fstab
# PARTUUIDで始まる行はコメントアウトする
#PARTUUID=56cd6262-01  /boot           vfat    defaults          0       2
#PARTUUID=56cd6262-02  /               ext4    defaults,noatime  0       1
192.168.29.12:/data/rpi-pi4/boot /boot nfs defaults,vers=4.1,proto=tcp 0 0

最後に、Pi4のシリアル番号をメモしておきます。以下の出力からabcd1234の8ケタの部分をdnsmasqの設定でつかいます。

$ cat /proc/cpuinfo

Serial		: 10000000abcd1234

dnsmasqサーバーの設定

家ではすでにdnsmasqが動いていて、PXEっぽい設定も済ですがこんな感じで設定してます。ドキュメントではMACアドレス限定してなかったですが、家ではなんでこうしていたか忘れたな。多分いらない。

enable-tftp
tftp-root=/tftpboot

# PXE for Raspberry Pi
dhcp-mac=set:rpi,b8:27:eb:*:*:*
dhcp-mac=set:rpi4,dc:a6:32:*:*:*
pxe-service=tag:rpi,0,"Raspberry Pi Boot"
pxe-service=tag:rpi4,0,"Raspberry Pi Boot"

# Pi4のアドレスはDHCP側で固定にしてやるとラク。この例では192.168.29.82に固定
dhcp-host=<Pi4のMACアドレス>,192.168.29.82,infinite

fstabにNFSのマウント設定を書きます。マウント先は/tftpboot/です。先程確認したabcd1234を入れます。

$ sudo mkdir -p /tftpboot/abcd1234

$ sudo vi /etc/fstab

192.168.29.12:/data/rpi-pi4/boot /tftpboot/abcd1234 nfs ro 0 0

$ sudo mount /tftpboot/abcd1234
$ ls /tftpboot/abcd1234
(こんな感じで/bootの中身が見えていればOK)
bcm2708-rpi-b.dtb         bcm2711-rpi-4-b.dtb  fixup.dat         start4cd.elf
bcm2708-rpi-b-plus.dtb    bootcode.bin         fixup_db.dat      start4db.elf
bcm2708-rpi-cm.dtb        cmdline.txt          fixup_x.dat       start4.elf
bcm2708-rpi-zero.dtb      config.txt           issue.txt         start4x.elf
bcm2708-rpi-zero-w.dtb    COPYING.linux        kernel7.img       start_cd.elf
bcm2709-rpi-2-b.dtb       fixup4cd.dat         kernel7l.img      start_db.elf
bcm2710-rpi-2-b.dtb       fixup4.dat           kernel8.img       start.elf
bcm2710-rpi-3-b.dtb       fixup4db.dat         kernel.img        start_x.elf
bcm2710-rpi-3-b-plus.dtb  fixup4x.dat          LICENCE.broadcom
bcm2710-rpi-cm3.dtb       fixup_cd.dat         overlays

起動する

あとはPi4の電源を落として、SDカードを抜いて電源を入れ直せばPXEブートして、NFSファイルシステムにして起動してくるでしょう。今回は移行なのでSSHホスト鍵の再生成はしませんでしたが、必要に応じてドキュメントの手順に従って実施すると良いでしょう。

起動しない場合、ReadyNASなどNASNFSがV4に対応しているかの確認をします。していない場合はNFSマウントオプションから「,vers=4.1」を削ると起動します。

ちなみにReadyNASの場合はシステム設定のサービスのところで有効化できました。

f:id:Akkiesoft:20200510135424j:plain

速度は……

SDカードが無くなったことによって、ストレージの信頼性はぐいっと上がるものと考えられます。ギガビットなのでNFSストレージのIOで帯域をつかいきることもそれほどないでしょう。

ddコマンドでファイル作成スピードを計測したところ、10MB/s前後でした。100Mbpsかな……?これはもしかするとSDカードのほうが早いかもしれない🤔?自宅のReadyNAS 102はHDD2本構成なので、たとえば4本構成とか、今ならSSDNASなんてのもあるので、そういうのを使えばもっと快適なNFSを提供できるかもしれません。使用中の環境はIO速度は求めないはずなので、これでしばらく様子見でしょうかね。

まとめ

初めてRaspberry PiPXEブートを本番にぶっこんでみました。様子見してダメそうならSDに戻しますが、まあ多分大丈夫なんじゃないかなあ、と思います。

いまさら触ったラズピッピ4とかでできるやつ2つ

すでにさわってるひとも結構多いっぽい機能も、へえ~そうなんだ〜とスルーしていたので、いまさらながら自分で触ったやつを2つメモ。

Raspbianを64bitにする

/boot/config.txtに以下の1行を追記するとarmv7lからaarch64になるというもの。動かしたいアプリの対応アーキテクチャがaarch64というときには有効なのかも。

arm_64bit=1

ドキュメントにも書かれておる。kernel8.imgが/bootにあるリリースで利用可能。busterリリース以降かしらん。

www.raspberrypi.org

ちなみに、/boot/config.txtに書くとき、[pi4]セクションに書くとPi4ではaarch64、それ以外ではarmv6l or armv7lで起動するといった使い方ができた。これのありがたみのほどは不明。

(略)
[pi4]
arm_64bit=1

[all]
(略)

さらに、[pi4]セクションと同じノリで、[pi3 +][pi3]…と書くこともできるらしい。これも知らんかった。できたらいいなと思って書きながらググったら出てきた。

www.raspberrypi.org

なので、64bit使えるモデルでは全部aarch64で起動してほしいなら、こう書いても良さそう。

(略)
[pi4]
arm_64bit=1
[pi3 +]
arm_64bit=1
[pi3]
arm_64bit=1

[all]
(略)

Raspberry Pi 4のUSB-C電源コネクターでOTG

いつからだろうと思って調べてたら最初からっぽかった。私が調べたときはなんかいつもとは違うOTGのやり方してる人のブログを見かけてた気がするけど、掘り返せなかったー。

www.raspberrypi.org

Zeroでやるようにconfig.txtとcmdline.txtに一言ずつ書いたら普通にEthernetバイスとして見えるようになりました。マジかー。

とはいえ普段からOTGで使ってるものがあるかと言われると、そんなにない……。

バッファローの超小型USB接続SSDを誕生日プレゼントにいただいたのでレビューする

先月末で32歳になりました。0x20歳ともいいます。キリが良い数字ですね。

あまり手入れをしていないAmazonの欲しい物リストを貼ったところ、色々と贈り物をいただきました。皆様ありがとうございました。お前たちの誕生日も祝ってやる。

つついさんからはバッファローの超小型USB接続SSDをいただきまして、大変恐縮だったのでブログでレビューします。前に記事かなんかで見て、すげえほしい!となり、いつかクリアファイルのおまけに買おうかと思いつつ突っ込んでいたものなので本当に恐縮。

www.buffalo.jp

もう本当に小さい。2.5インチSATA SSDも持った時に重心が端子側にあるというか、つつくと空洞音しかしないような昨今、このサイズまで小さくできるのかという感想です。サイズ比較は、同じく誕生日プレゼントに頂いたMicroSDカードとキーキャップ。

f:id:Akkiesoft:20200506173222j:plain

惜しいところはUSBコネクターがいまどきMicro USB 3.0コネクターなところでしょうか。USB-Cだと厚みが増すのかしら。このため、付属品はMicro USB 3.0 to AケーブルとA to C変換の2点になっています。もっとも、USB-CをUSB-Cとして差し込めるPCなどいまだに限られているので、この構成でいいといえばいい気はします。個人的にはUSBメモリーっぽく使えたら便利じゃね?と思い、変換アダプターを別途ポチってみました。

f:id:Akkiesoft:20200506173811j:plain

ディスプレイのUSBハブに接続したところ。良い。

f:id:Akkiesoft:20200506174214j:plain

素の状態では中はNTFSでフォーマットされており、ドライブ画像に使える製品アイコンと、謎の使えないランチャーが入っていました。NTFSでは他のOSで使えないので、アイコンだけ退避してMacLinuxもいけるExFATでフォーマットし直し、アイコン画像を戻しました。MacでもUSBストレージのアイコンを設定できるので、アイコン画像をPNGに変換したものを設定。

f:id:Akkiesoft:20200506174159p:plain

NTFSの状態で取得した結果ですが、CrystalDiskMarkではご覧の通り、SATA SSDとたいして変わらない感じの良い速度が出てきました。この小ささで速さで480GB(上位は960GBもある)。技術の進歩すごい……すごい……。

f:id:Akkiesoft:20200506174249p:plain

さあ、用途は何も考えていなくて本当にヽ('ω')ノ三ヽ('ω')ノもうしわけねぇもうしわけねぇ状態ですが、Raspberry Piの作業用外部ストレージ用として重宝しそうな気がしたので、まずはmikutterのAppImage生成作業にこれを使おうと環境構築中です。これならmikutterにも貢献できて良いですなガハハ!