それマグで!

知識はカップより、マグでゆっくり頂きます。 takuya_1stのブログ

習慣に早くから配慮した者は、 おそらく人生の実りも大きい。

Ubuntu Serve rpi4でカーネルモジュールを追加してError: Unknown device type.に対応しmacvlanを使う。

大問題 Ubuntu Server raspberry pi4でmacvlanが使えません。

ubuntu for pi の 21.10ではmacvlan/macvtap/vlan などが使えませんでした。

docker / lxc / qemu / libvirt などで大問題です。仮想マシンのネットワークがうまく扱えません。

rpi4 ubuntuでmacvlanが使えない

まさか正式対応版がMacVLAN非対応と思わないです

macvlan を使おうと思ったら、「Error: Unknown device type.」 になります。

sudo ip link add dev macvlan1 link eth0 type macvlan mode bridge
Error: Unknown device type.

20.04ならフル機能が使えた iproute2 だけど、アップグレートしたら動かなくなったのです。

モジュールが削られたんだと思います。20.04 LTSの方が使い勝手が良かったとかまさかです。

Ubuntu 21.10 から 正式対応でデフォルトでraspi USBブートに対応しているので、特に何もせずにUbuntu Serverを raspi imager で焼いてあげるとUSBブートするですが。そのためにアレコレ動かなくなるのは悲しかった。

解決策

そこで、モジュールを足してあげます。

sudo apt install linux-modules-extra-raspi

docker / lxc / qemu など macvlanが使えないと困ることは多いと思う。この他にもモジュールエラーが出てる気がする。

このインストールをしてあげないと、ubuntu@raspi は実力を発揮できないんじゃないかなと思います。

解決策が見つからなかった中で世界中でこの人だけが解決策を書いていた。

参考資料にしたのは、このブログでした。

sudo apt-file show linux-modules-extra-raspi

https://blog.jrehkemper.de/index.php/category/it-systeme/virtualisierung/

このブログをmacvlan で探すと、Google 検索で結果が1件だけ。Googleの検索結果がたった1とか奇跡に近い。

検索結果が1つとか珍しいので記念スクショ

f:id:takuya_1st:20220218151753p:plain 

ついでに vcgencmd を使えるようにする

raspberry pi 特有のコマンドを ubutun に導入する。

sudo apt install libraspberrypi-bin 

このapt をインストールすれば、つぎの rpi 特有のコマンドをubuntu に導入することができる。

takuya@raspi-ubuntu:~$ sudo apt-file show  libraspberrypi-bin | grep usr/bin
libraspberrypi-bin: /usr/bin/dtmerge
libraspberrypi-bin: /usr/bin/dtoverlay
libraspberrypi-bin: /usr/bin/dtoverlay-post
libraspberrypi-bin: /usr/bin/dtoverlay-pre
libraspberrypi-bin: /usr/bin/dtparam
libraspberrypi-bin: /usr/bin/raspistill
libraspberrypi-bin: /usr/bin/raspivid
libraspberrypi-bin: /usr/bin/raspividyuv
libraspberrypi-bin: /usr/bin/raspiyuv
libraspberrypi-bin: /usr/bin/tvservice
libraspberrypi-bin: /usr/bin/vcgencmd
libraspberrypi-bin: /usr/bin/vcmailbox

vcgencmd や tvservice とか便利ですよね。

参考資料

https://blog.jrehkemper.de/index.php/category/it-systeme/virtualisierung/