NetBSDでdevpubd(8)を使ってみる

これは、NetBSD Advent Calendar 2020の12日目の記事です。

はじめに

USB接続のEthernetアダプター(cdce(4))を使っています。 これをUSBレセプタクルに挿した時に、自動的にIPv6のユニークローカルアドレスを割り当ててくれると大変助かると考えていました。 どうやら、devpubd(8)というデーモンを使うと、うまく行くのかもしれないと考えて試してみました。

devpubd(8)を実行してみる

devpubd(8)をフォアグラウンドで動かしてみて、cdce(4) USB Ethernetアダプターを挿した際にどのように動作するのか確認してみましょう。

# devpubd -f
devpubd_eventloop: event='device-attach', device='uhub4'
devpubd_eventloop: event='device-attach', device='uhub5'
devpubd_eventloop: event='device-attach', device='cdce0'

これで、イベントはdevice-attachで、 デバイスはcdce0であることが分かりました。

devpubd(8)が実行するスクリプトを用意する

devpubd(8)には 1つ目のcdce(4)であるcdce0が認識された時にだけ実行して欲しいので、 以下のようなスクリプトを/libexec/devpubd-hooks/03-cdce-ipv6 に置くことにしました。

#!/bin/sh
#
# $NetBSD$
#
# Assign IPv6 address for local connection when cdce0 is detected.
#

event="$1"
shift
devices=$@

for device in $devices; do
	case $device in
	cdce0)
		case $event in
		device-attach)
			ifconfig $device inet6 fd00:5100::1/64 
			;;
		device-detach)
			;;
		esac
		;;
	esac
done

これで、cdce(4)デバイスを最初に挿した際に自動的に設定がされて非常に便利になりました。

0 件のコメント:

コメントを投稿

注: コメントを投稿できるのは、このブログのメンバーだけです。

Windows 11 Pro 24H2からSambaのguest ok = yesな共有フォルダーへアクセスする

Microsoft Windows 11 Proを動かしているマシンで、sambaでguest ok = yesにしている共有フォルダーにアクセスしていた。 Windows 11を24H2にアップデートしたところ、その共有フォルダーを開こうとすると、ログインを求められ、...