あっきぃ日誌

鉄道ブログのような技術系ブログのようななにか

Raspberry Pi OS Bookworm 2024-03-12版リリース。Linuxカーネルが6.6に

されていました。リリースノートをかいつまむ記事です。

https://www.raspberrypi.com/software/operating-systems

今回からLinuxカーネルが6.1から6.6に移行しています。先月Githubで6.6に切り替わったのを観測していましたが、数日前からaptでもカーネルが配信され始めていました。Bookworm環境でOSアップデートを実行するとバージョンがガラッと変わるので、カーネルのバージョンに左右される何かをやられている方はご注意を。とは言え、そこまで気にするほどではない気がします(?)。

https://github.com/raspberrypi/firmware/commit/2a1e5bfd933d977a57ba4cd62f3381fdc339e29a

その他は機能改善、バグ修正、新しいバージョンのWebブラウザバンドルが主のようです。

ヘッドレスのときの解像度設定が、raspi-configからScreen Configurationに移動しました。言われてみればそのほうがわかりやすいですね。

wayvncがsystemd管理に移行したのはちょっとうれしい。wayvncがおかしくなったときの切り分けがしやすくなるので。互換性もさらに向上したようで何より。

また、fbturbo xorgビデオドライバーが削除された模様。むかしfbcpが重いので使ったことがありましたが、もう4年前か……。いまはfbcpを使えって感じでしょうか。いや、Waylandのときってどうするんだろうな。今度試してみようかしら。

akkiesoft.hatenablog.jp

OSC2024 Tokyo/Spring

昨日は浅草でOSCでした。

昨年同様、結構なにぎわいとなり、案の定ご飯を食べる間もなく、対応をしていました。2つ買ったおにぎり片方食べそびれちゃった……。多分、OSCみたあとに別の予定を入れても移動しやすい位置だからとかなんでしょうかね。23区内は強いぜ。私としては電車1回乗り換えで行けはするものの、遠いのでちょっとつらいですが。

設営開始直前のフロア。全然関係ないけど前週の台東館7Fは自作キーボードのイベントがあったそうですね。

あと、4Fでは爬虫類とか小動物のイベントもあって、最近YouTubeでこの辺のジャンルをよく見ているらしいオカンに教えたろと思いスマホをポケットから取り出したら、全く同時のタイミングで向こうからこれについて聞かれて、声が出ましたね。

会場設営が終わって、さてワシも設営するぞ(手前)となっている様子。自ブース設営には1時間かかりました。


本題

今回のブース。個人ブースではプラレールとEjectと物販を展開しました。

RPi UGブースはPi 5を中心とした展示に注力して、昔からのやつや小物は減らしました。が、やはりどうも散らかり気味になりますね。また、西永さんが参戦してくれて、Pi 5のJTAGデバッグのデモを展示したりしてくれました。大変助かる〜〜〜〜。

そして目玉はPi 5を使った10GbEの1:1接続とiperf3での計測デモ。本来はこれをデスクトップデモ用のPi 5からSSHして見せる予定が、有線LAN接続のためのスイッチングハブ設営を面倒くさがって、Pi 5上でブリッジネットワークを組んでUSB-Ethernetで接続などという無精をしたがために、なんかうまくSSH接続ができず、結局MacBookを使ってなんとか見せるというグダりっぷりでした。スイッチングハブはポチったので、次回以降はなんとかなるはず。いや、次回以降もこのデモやるんか??

さらに、デスクトップ環境用のキーボード・マウスは片方が電池切れで動かなかったり、モバイルバッテリーも忘れてポーチの中のlightingケーブルがなくてスマホの充電もできないなど、たいへんガバガバな運用となりました。反省していぬ。あと、キーボード・マウスの電池は充電しました。次は大丈夫だ。

それでも、10GbEベンチマーク結果はちゃんと4.5〜6.3Gbpsを叩き出してくれたし、これは釣れると思ってXに投げた結果、案の定「Xで見た」をたくさん聞けたので、まあ良かったのかなと思います。でもごめんね、イベントのあとでXをフォローしてくれた人たち。今年は基本的に1ヶ月遅れのブログとかをランダムで投げることにしてるんだ。MastodonかMisskey.ioをフォローしてね。

プラレール

今年のプラレール計算機はフラットなレイアウトだったので、色々積み込んだラズピッピプラレールもなんとか参戦できました。

今回は多分初展示のPico W版を持ち込んだのですが、1両編成の必要があったらしく(?)モーター用電池をPico Wの上に乗せて走行させました。

1枚目は側面に張っていますが、これはカーブの遠心力でバランスを崩すのでNG、後部のバッテリーの上だと前部がかるすぎてウィリー状態になるのでNGなど、安定走行までにちょっと苦労しましたが、ちゃんと走らせられてよかったです。

Misskey方面

今回はじめてMisskey方面からPrisMisskeyのコミュニティが出展していて、立ち寄ったらサーバーの老若男女のユーザーが集まってて、す、すげぇ、これ昔ハイクのオフで見たやつだ……!になりました。やっぱMisskey方面はもっと出てきたほうがいいですね(わたしが呼びたいだけ)。:ota:ステッカーが貰えて大満足。

あと、私のブースで動かしていたデスクトップ環境でも実はMisskeyが動いていて、バブルゲームのkowaiiモードとか、kowaiiステッカーとか缶バッジで喜んでいる人は何人かお見かけしました。やったぜ。

が、OSPN Misskeyサーバーの宣伝をやるのをすっかり忘れちゃってたんだよな……。というか、そんなんやれる余裕が全くない。どうしたら良いんだ。分身か???

打ち上げ

OSC後の打ち上げはmikutter界隈でちゃんこ鍋屋に。しかし、としぁは不調によりておくれたため、本当に界隈だけの集まりとなりました。

二次会のスタバ。

帰りは東武浅草から曳舟を経由して半直で帰りました。が、田園都市線内も各停でかつ長津田まで先行だったので、35駅をのんびり帰ることになり、首都圏在住勢ではぶっちぎりのラスト帰宅となりました……。尻が疲れた。

次は3/30のラズピッピバースデー

次のイベント系は、RPi UG企画の12周年バースデーイベントです。よかったら遊びに来てね。10GbEのデモくらいなら持っていってもいいかしらん?

raspberrypi.connpass.com

ラズピッピ雑記

MagPi Issue 139にEjectが載っていた

定期購読のMagPiのあたらしい号が届いたので、ペラペラめくっていたところ……

唐突にEjectコマンド工作が飛び出してきて声が出ました。

エキセントリックな工作アイデアみたいな5〜6ページのプチ特集に掲載されていたんですが、まあよく10年以上も前のネタを掘り返してきたなあとw

ちなみに、 https://magpi.cc/akkiecd にアクセスすると、raspberrypi.com ではじめて取り上げられたときのLiz執筆の記事にジャンプしました。Magpi短縮URLが作られるのはこれが3つ目ですね。 https://magpi.cc/akkieMastodonアカウント、 https://magpi.cc/akkieblog はこのブログに飛びます。便利や……。

2月のRaspberry JAM Tokyoでやったスライドの基板実物がきたがミスってた

来ました。

早速組み立てて、同じように接続して通電したところ、パン!という音とともに、ちょっと焦げ臭い匂いがしてきました。やっちゃったぜ。

赤外線受信モジュールの向きが鏡になっていたらしく、新しいモジュールに交換してPicoの方を向くように差し替えて通電したら動作しました。設計ミスりました。よく確認しましょうとかスライドに書いたじゃんかよ〜〜〜〜。

というわけで、そのうちデータだけ修正したRev.2を作ってGithubに放流しようと思います。基板自体はもういらないので、これで使おうと思います。受信モジュールは登録の時しか使わないですからね。

Raspberry Pi 5に10GbE NICを乗せたやつを2台並べてiperf3で計測すると……

明日はオープンソースカンファレンス 2024 Tokyo/Springです。この記事の物体を展示予定なのでお近くの方はぜひ。

event.ospn.jp

OSCに10GbE NICのデモを持ち込みたい

これの続き。

akkiesoft.hatenablog.jp

10GbE NICが動くことがわかったので、OSCでデモをしたら映えるかなと思い、会社からNICを借りてきました。適当に余っているIntel X520を連れ出そうとしたら、部長から「そんな古いんじゃ消費電力デカくね?YOUこれ持っていきなよ(意訳)」と、Mellanox ConnectX-4 Lxを授かりました。社内的にはもう箪笥の肥やしになっていたものですが、10GbEどころか25GbEもいけるNICです。はげしい。<写真>

というわけで、これを持ち帰ってカーネルコンパイルを済ませ(mlx5_coreを有効にしました)、動作も確認できました。

手持ちのSolarFlareのカードがiperf3で3Gbps止まりだったのに対して、ConnectX-4は6Gbps==750MB/sを叩き出したので、PCIe 3.0x1が理論値8.0Gbpsなのと、NVMeがシーケンシャル700MB/sくらい出していることを考えると、ちゃんとPi 5のPCIeの性能を使えている感じがしますね。VERY GOOD.

対向のマシンがほしい

上記のテストはあくまで(10GbEスイッチを介して)自宅サーバーの10GbEとテストした結果です。OSCに持ち込むには対向のマシンが必要ですし、できればコンパクトな方が良いです。

手としては、ラズピッピで前回のブログで使えないと書いた安物PCIe変換をリトライするか、CM4のIOボードでやるかという感じでしたが、カーネルコンパイルして試した結果、

(1) どちらも共通して、/boot/firmware/cmdline.txtに「pcie_ports=compat pcie_aspm=off」を追加しないと、PCIeのリンクエラーが大量に出てなんかシステムがめちゃくちゃ不安定になったりする
(2) (1)の対策後、安物PCIe変換は動きそうだったのに対して、CM4はやはりダメそう

というわけで、Pi 5と安物PCIe変換のリトライで行く方向にしました。

なお、この間にながいずみさんからMisskey.ioでお声がけいただき、超立派なM.2→PCIe変換とATX電源のセットを譲って頂いたのですが、可搬性の都合から一旦見送りました。OSCが終わってから遊びたい所存。

misskey.io

やっていき

構成はこんなかんじ。会社から借りてきすぎだろ。

  • 10GbE NICを搭載したPi 5(私物)を2台用意してiperf3をかけてあそぶ環境
    • ケーブルは会社からずっと借りっぱなしのDAC(余してるのでヨシ!)
    • 安物PCIe変換の方には外部電源として昔CD-ROMドライブを動かすのに使っていた電源を使用
  • iperf3を実行したり、デスクトップのデモとして使用するための、NVMe SSDを搭載したPi 5(会社でVPNサーバーにしようと調達していたものを拝借)を1台

Pi 5の公式電源が、ユーザー会のサンプル1つしかないため、これはNVMeの方に割り当てます。10GbE環境は5V3Aで動かすことになりますが、まあなんか動いたので良しとしつつ、OSはMicroSDカードにして省電力&挿しっぱなしにして現地での設営の手間を削減していきます。

MicroSDカードのOSセットアップは、コンパイル済みの環境に合わせてRPi OS(64-bit)を選択して、コンパイル済みのファイルをコピーして展開しました。

$ tar xzf pi-kernerl-pcie.tgz
$ sudo cp boot/firmware/initramfs_2712 boot/firmware/kernel_2712.img /boot/firmware/
$ sudo rsync -a lib/modules/6.1.77-v8-16k+ /lib/modules/
$ sudo reboot

起動してNICが認識しているのを確認したら、nmcliでIPアドレスを適当に固定します。

$ ip a
(略)
4: eth1: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc mq state DOWN group default qlen 1000
    link/ether 24:8a:07:XX:XX:Xa brd ff:ff:ff:ff:ff:ff
5: eth2: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc mq state DOWN group default qlen 1000
    link/ether 24:8a:07:XX:XX:Xb brd ff:ff:ff:ff:ff:ff

$ nmcli con
NAME                UUID                                  TYPE      DEVICE 
Wired connection 1  db957665-1d22-36da-a7ae-2103d0958e43  ethernet  eth0   
preconfigured       e62b271f-03bf-4a79-b9db-8238d6f2b4e3  wifi      wlan0  
lo                  51f50ece-5d00-435e-a865-842930898cd4  loopback  lo     
Wired connection 2  09b5f6c9-5da5-3c17-aecb-1df3dc85f32a  ethernet  --     
Wired connection 3  fcaa7110-709b-3ca6-b07d-9e4c375d1eff  ethernet  --

$ sudo nmcli con mod "Wired connection 2" ipv4.method manual ipv4.addresses 192.168.10.2/24

もう一台も同じ作業を繰り返して(IPアドレスを適宜変更)構築は完了です。

iperf3実行用のデスクトップ環境の用意

デスクトップ環境と言いつつ、適当なスイッチングハブがなかったので、10GbE環境へのアクセスのために、USB-LAN変換を2本挿してオンボードのやつとブリッジポートにしました。nmcliでブリッジを作る手順は以下を参考にしました。

enakai00.hatenablog.com

# ブリッジつくるやつ
$ sudo nmcli con add type bridge ifname br0
$ sudo nmcli con modify bridge-br0 bridge.stp no
$ sudo nmcli con modify bridge-br0 ipv4.method auto

# ブリッジにぶら下げるやつ
$ sudo nmcli con add type bridge-slave ifname eth0 master bridge-br0
$ sudo nmcli con add type bridge-slave ifname eth1 master bridge-br0
$ sudo nmcli con add type bridge-slave ifname eth2 master bridge-br0

# オンボードポートの設定をとばすやつ
$ sudo nmcli con del "有線接続 1"

あとはOSCでやる練習も兼ねてKVMも揃える感じで配線。デスクトップ環境はモバイルルーターに接続する感じでやっていくこととして、これの無線経由でワンチャンMacとかからもアクセスできる想定としました。そんなわけで、ひととおり完成です。


iperf3を実行してみよう

片方をサーバーにしておいといて、

akkie@tengbe1:~ $ iperf3 -s

もう片方からテストを実行します。

akkie@tengbe2:~ $ iperf3 -c 192.168.10.1
Connecting to host 192.168.10.1, port 5201
[  5] local 192.168.10.2 port 60458 connected to 192.168.10.1 port 5201
[ ID] Interval           Transfer     Bitrate         Retr  Cwnd
[  5]   0.00-1.00   sec   757 MBytes  6.35 Gbits/sec    1   1.56 MBytes       
[  5]   1.00-2.00   sec   758 MBytes  6.35 Gbits/sec    0   1.56 MBytes       
[  5]   2.00-3.00   sec   756 MBytes  6.34 Gbits/sec   12   1.56 MBytes       
[  5]   3.00-4.00   sec   758 MBytes  6.35 Gbits/sec    8   1.56 MBytes       
[  5]   4.00-5.00   sec   760 MBytes  6.38 Gbits/sec    0   1.56 MBytes       
[  5]   5.00-6.00   sec   759 MBytes  6.36 Gbits/sec    0   1.56 MBytes       
[  5]   6.00-7.00   sec   760 MBytes  6.38 Gbits/sec    0   1.56 MBytes       
[  5]   7.00-8.00   sec   759 MBytes  6.36 Gbits/sec    0   1.56 MBytes       
[  5]   8.00-9.00   sec   760 MBytes  6.38 Gbits/sec    0   1.56 MBytes       
[  5]   9.00-10.00  sec   759 MBytes  6.36 Gbits/sec    0   1.56 MBytes       
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bitrate         Retr
[  5]   0.00-10.00  sec  7.41 GBytes  6.36 Gbits/sec   21             sender
[  5]   0.00-10.00  sec  7.41 GBytes  6.36 Gbits/sec                  receiver

6.36Gbpsの結果が出ました。は、はええよ。サーバー側の10回の実行結果も6.36Gbpsで合っていますね。MB/sにすると795MB/sなので、まあ早い。

[ ID] Interval           Transfer     Bitrate
[  5]   0.00-10.00  sec  7.41 GBytes  6.36 Gbits/sec                  receiver

昨晩環境ができた直後は5Gbps台に落ちる回もあったので、発熱とか電源の兼ね合いもあるともちろんあると思われますが、それでも早いので、感動の性能ですね。

ちなみに、ここで片方のPi 5を手持ちのSolarFlareのカードにすると、やはり3Gbps台に落ちるようだったので、ドライバー的な問題かもしれませんし、だいぶ古いので、まあしょうがないかなという気はします。

まとめ&あしたの告知

  • Pi 5にMellanox ConnectX-4を乗せたものを2台用意して1:1でiperf3を実行すると6.36Gbps==795MB/sくらい出る
  • 手持ちのSolarFlareのカードは古すぎるので3Gbpsくらいしか出ない

というわけで、なんとか動く環境が作れたので、明日はOSCでこれの展示ができそうです。ヨカッタァ。

明日のOSCは去年と同じく浅草です。展示物は10GbEをメインにするので、今年一年回して来たものはいくつか引っ込めの予定です。また、tnishinagaさんがPi 5のJTAGデバッグデモをしに来てくれるそうなので、そちらもお楽しみに。なお、Pi 5のデバッグの話はraspi.jpのほうにも記事を寄稿いただきました。ありがてえありがてえ!

www.raspi.jp

www.raspi.jp

さぁ、機材を荷造りするか……。