Third Encore

思い出すために忘れたことたち

Raspberry Piの電源いろいろ

Anker Nano II 30W

低ノイズのGaN電源。通常のGaN電源のような、付帯音の影響と思われるギラッとした感じが控えめ。それでもGaN独特のシャッキリとした音がします。

 

ダイソー AC充電器(自動判別機能付、USBポート2口、合計最大3.4

なめらかで落ち着いたピラミッド・バランスで聴きやすい。音の傾向からして定位感が緩くなりそうなものですが、その点でも良好。

AC充電器(自動判別機能付、USBポート2口、合計最大3.4

jp.daisonet.com

 

ZENDURE SuperMini

USB-Cポートからバッテリーを充電しつつUSB-Aから給電出来るパススルー充電に対応したモバイル・バッテリー。音の切れ、ふわりと広がる定位感、安定感のある低域と個人的にはこれがいちばん好みでした。

 

 

いずれの電源も悪くないので好み次第で使い道がありそう。

 

 

 

2022年4月12日のメモ

MPDのinput_cacheはローカルのファイルにしか適用されないらしい…。

github.com

 

のでUpmpdcliが受けたファイルをキャッシュしようとするといまだにpolipoを使うことになるみたいだ。

 

2022年4月13日追記:

polipoは古すぎるのでSquidとかPrivoxyを使えとのこと。

wiki.archlinux.jp

MPDのPipeWire plug-in

MPD -> PipeWireで音を出すのに苦労したのでメモ。

  • Raspberry Pi OSのapt installで入るMPDはPipeWire非対応、PipeWireをインストールした後自分でMPDをbuildすること
  • PipeWireをupgradeした時は一度confファイル類を全削除、テンプレートからコピーすること
  • mpd、pipewire共にsystemctl enable --userコマンドでユーザーpiとして実行すること

MacでのLLVMを使ったRaspberry Pi 64bit kernel cross-compile

下記のページによると、基本的にはLLVMをインストールして

$ make ARCH=arm64 LLVM=1 CROSS_COMPILE=aarch64-linux-gnu-

が実行出来れば良い。

 

www.kernel.org

 

 

Clang / LLVMのインストール

下記の手順に沿って実行。特に問題は起きませんでした。

 

students-tech.blog

 

OpenSSLのインストール

$ brew install openssl

 

大文字と小文字を区別出来るFATのストレージを用意する

MacのOSがインストールされているストレージは大文字と小文字を区別しない仕様でフォーマットされているとのこと…。そのままだとkernelのヘッダなど同じファイル名で大文字と小文字の区別があるものが消えてしまう。

sugawarayusuke.hatenablog.com

 

外部ストレージのFATをどうするか迷ったけれど、ジャーナリングを無効にしたHFS+を試してみたところラズパイで問題なくマウント出来た。

javaflavor.cocolog-nifty.com

 

byteswap.hとelf.hを/usr/local/includeにコピー

2つのファイルをダウンロードし、/usr/local/includeにコピーする。byteswap.hは最後の2行をコメントアウトすること。

byteswap.h · GitHub

elf.h for OSX · GitHub

 

scripts/mod/file2alias.cにpatch適用

Macでのbuildではscripts/mod/file2alias.cのコンパイルでerrorが出るので下記のpatchを適用する。

gitce.net

 

Kernelのビルド

$ make LLVM=1 ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- bcm2711_defconfig

$ make LLVM=1 ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- menuconfig 

 した後

$ make ARCH=arm64 LLVM=1 CROSS_COMPILE=aarch64-linux-gnu-

で基本は良いんだけど、最適化オプションを付けたいのでmakeのコマンドは最終的に下記のようになりました。

$ make LLVM=1 ARCH=arm64 \

CROSS_COMPILE=aarch64-linux-gnu- \

KCFLAGS="-O3 -mcpu=cortex-a72+fp+simd+crc" \

HOSTCFLAGS="-O3" \

Image modules dtbs

 

AppArmorのコンパイルでerrorが出るけれどこれに関しては現状解決策が分からなかった。自宅でオーディオ用途に使うだけなのでAppArmorは無効にして対処しました。

 

2022年5月28日追記:

third-encore.hatenablog.com

 

インストール

Linuxでマウント出来るストレージで作業しているはずなので

$ mkdir /mnt/usb

$ mount /dev/sdb2 /mnt/usb/root

$ cd /mnt/usb/root/path/to/src

などとすれば後はmake install、make modules_installで普通にインストール出来る。

2022年1月24日のメモ

  • Clang / LLVMでkernelにFull LTOをかけてラズパイ上でビルドする時はメモリを6GiB弱使うっぽいのでRAMとswap合わせてそれ以上を用意しておく必要がある
  • kernel 5.16系をLLVMでbuildしようとした時に出るエラーはCONFIG_COMPAT_VDSOを無効にすると回避出来るみたいだ

Raspberry Piのストレージ

UASP + NVMeなケース。

 

速度のボトルネックはケースなのでSSDは適当にケースのベンチマーク結果より速いものをチョイス。

 

全体的な動作がきびきびと速くなった。ファイルのコピーも速いのでkernelのソースのコピーもすぐ終わる。