<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>NetBSD on きょうのかんぱぱ</title><link>https://kanpapa.com/tags/netbsd.html</link><description>Recent content in NetBSD on きょうのかんぱぱ</description><generator>Hugo -- gohugo.io</generator><language>ja</language><copyright>kanpapa.com</copyright><lastBuildDate>Sat, 27 Jun 2026 14:32:55 +0900</lastBuildDate><atom:link href="https://kanpapa.com/tags/netbsd/index.xml" rel="self" type="application/rss+xml"/><item><title>DEC AXPvme230で遊ぶ #6 NetBSDをネットワークブートする</title><link>https://kanpapa.com/2026/06/axpvme-vme-6.html</link><pubDate>Sat, 27 Jun 2026 14:32:55 +0900</pubDate><guid>https://kanpapa.com/2026/06/axpvme-vme-6.html</guid><description>&lt;img src="https://kanpapa.com/2026/06/axpvme-vme-6/network-mau.jpg" alt="Featured image of post DEC AXPvme230で遊ぶ #6 NetBSDをネットワークブートする" /&gt;&lt;p&gt;&lt;a class="link" href="https://kanpapa.com/2026/06/axpvme-vme-5.html" &gt;前回&lt;/a&gt;でBreakout moduleのエラーも無くなり足回りが安定になりました。今回はネットワークを接続し、いよいよOSのネットワークブートを試してみます。&lt;/p&gt;
&lt;h2 id="ターゲットosの選定"&gt;ターゲットOSの選定
&lt;/h2&gt;&lt;p&gt;Alpha CPUをサポートしているOSは以下のものがあります。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Tru64 UNIX（旧名：Digital UNIX / DEC OSF/1）&lt;/li&gt;
&lt;li&gt;OpenVMS（VMS）&lt;/li&gt;
&lt;li&gt;Windows NT (3.51 / 4.0)&lt;/li&gt;
&lt;li&gt;Linux&lt;/li&gt;
&lt;li&gt;NetBSD / FreeBSD / OpenBSD&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;やはりいろいろ試すにはオープンなOSが良さそうです。その中でもNetBSDは移植性が良いと聞いています。まずはNetBSDをターゲットOSとしました。&lt;/p&gt;
&lt;h2 id="auiポートにmauを接続する"&gt;AUIポートにMAUを接続する
&lt;/h2&gt;&lt;p&gt;まずはAXPvmeのAUIポートに問題がないかを確認します。&lt;br&gt;
AUIポートに10BASE-TのMAU(Medium Attachment Unit)を接続し、ネットワークに接続したところMAUのLINKが点灯しました。&lt;/p&gt;
&lt;p&gt;&lt;img alt="AUIポートにMAUを接続" class="gallery-image" data-flex-basis="318px" data-flex-grow="132" height="602" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://kanpapa.com/2026/06/axpvme-vme-6/network-mau.jpg" width="800"&gt;&lt;/p&gt;
&lt;p&gt;実際にパケットの送受信ができているかをSRMで確認したところ、TX/RXのパケット数がカウントされているようです。&lt;/p&gt;
&lt;p&gt;&lt;img class="gallery-image" data-flex-basis="361px" data-flex-grow="150" height="438" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://kanpapa.com/2026/06/axpvme-vme-6/network-packet-count.jpg" width="659"&gt;&lt;/p&gt;
&lt;p&gt;AUIポートは正常に動作していると確認できました。&lt;/p&gt;
&lt;h2 id="実験用ネットワークの構築"&gt;実験用ネットワークの構築
&lt;/h2&gt;&lt;p&gt;実験用ネットワークとしてスイッチを１つ準備して、新たにサブネットを作成しました。
このネットワークにはDHCP/TFTP/NFSサーバが動いているUbuntuデスクトップとAXPvme230だけを接続しています。&lt;/p&gt;
&lt;p&gt;/etc/hosts&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-plain" data-lang="plain"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;192.168.99.1 ubuntu # Ubuntu 22.04 LTS Desktop (Bootp, TFTP, NFS)
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;192.168.99.10 axpvme # AXPvme230 (NetBSD)
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;UbuntuデスクトップにLANポートが１つしかなかったので、USB3.0にLANアダプタを接続しスイッチに接続しました。&lt;/p&gt;
&lt;p&gt;&lt;img alt="実験用ネットワークのスイッチ" class="gallery-image" data-flex-basis="318px" data-flex-grow="132" height="602" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://kanpapa.com/2026/06/axpvme-vme-6/network-switch.jpg" width="800"&gt;&lt;/p&gt;
&lt;h2 id="dhcptftpサーバの構築"&gt;DHCP/TFTPサーバの構築
&lt;/h2&gt;&lt;p&gt;ネットワークブートを行うためにはBOOTPまたはDHCPサーバーとTFTPサーバが必要です。&lt;br&gt;
今回は&lt;a class="link" href="https://thekelleys.org.uk/dnsmasq/doc.html" target="_blank" rel="noopener"
 &gt;Dnsmasq&lt;/a&gt;を使用し、設定ファイルは以下のようにしました。&lt;/p&gt;
&lt;p&gt;/etc/dnsmasq.conf&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-plain" data-lang="plain"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;interface=enx6084bd485c85
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;bind-interfaces
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;port=0
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;dhcp-range=192.168.99.10,192.168.99.50,255.255.255.0
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;dhcp-host=00:00:f8:25:76:fc,192.168.99.10
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;dhcp-boot=netboot
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;dhcp-option=17,/export/client/root
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;enable-tftp
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;tftp-root=/srv/tftp
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;TFTPサーバーのルートにNetBSD公式サイトからダウンロードした&lt;a class="link" href="https://cdn.netbsd.org/pub/NetBSD/NetBSD-10.1/alpha/installation/netboot/" target="_blank" rel="noopener"
 &gt;netboot&lt;/a&gt;を置きます。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-plain" data-lang="plain"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;$ ls -l /srv/tftp
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;total 64
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;-rw-r--r-- 1 root root 61952 Jun 22 11:00 netboot
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;次にdnsmasqを起動します。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-plain" data-lang="plain"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;sudo systemctl start dnsmasq
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;sudo systemctl status dnsmasq
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;これでAXPvme230はDHCPでIPを割り当ててもらい、その後TFTPサーバにあるnetbootを読み込んでネットワークブートができるはずです。&lt;/p&gt;
&lt;h2 id="nfsサーバの設定"&gt;NFSサーバの設定
&lt;/h2&gt;&lt;p&gt;netbootはNFSサーバーにあるカーネルファイルを読み込んでNetBSDが起動します。&lt;br&gt;
NFSサーバーは当初はQNAPを使おうと思ったのですが、QNAPもLANポートが１つしかなかったので、Ubuntu DesktopにNFSサーバーを設定しました。
NFSサーバの設定は/export/clientディレクトリをNFSでアクセスできるようにしました。&lt;/p&gt;
&lt;p&gt;/etc/exports&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-plain" data-lang="plain"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;/export/client 192.168.99.0/24(rw,sync,no_root_squash,insecure,no_subtree_check)
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="ファイルシステムの作成"&gt;ファイルシステムの作成
&lt;/h2&gt;&lt;p&gt;NetBSDのファイルシステムをNFSサーバのexportディレクトリに準備する必要があります。
&lt;a class="link" href="https://cdn.netbsd.org/pub/NetBSD/NetBSD-10.1/alpha/binary/sets/" target="_blank" rel="noopener"
 &gt;NetBSD/alphaのバイナリセット&lt;/a&gt;にあるbase.tgz、etc.tgz、kern-GENERIC.tgz をダウンロードして/export/client/rootに展開します。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-plain" data-lang="plain"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;sudo mkdir /export/client/
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;sudo mkdir /export/client/root
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;tar -xvzpf base.tgz -C /export/client/root
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;tar -xvzpf etc.tgz -C /export/client/root
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;tar -xvzpf kern-GENERIC.tgz -C /export/client/root
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;sudo mkdir /export/client/root/kern
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;sudo mkdir /export/client/root/swap
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;sudo dd if=/dev/zero of=/export/client/swap bs=4k count=4k
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;sudo mv /export/client/root/usr /export/client/usr
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;展開したファイルシステムはデバイスファイルが空の状態なので、VirtualBoxにインストールしたNetBSDからこのNFSサーバーにmountして、MAKEDEVを実行することでデバイスファイルを作成しておきます。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-plain" data-lang="plain"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;cd /dev
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;/bin/sh MAKEDEV all
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;ファイルシステムが完成するとこのようなディレクトリになります。ルートディレクトリにある&lt;code&gt;netbsd&lt;/code&gt;がカーネルファイルです。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-plain" data-lang="plain"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;$ ls -l /export/client
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;total 16396
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;drwxr-xr-x 2 root root 4096 Jun 22 16:56 home
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;drwxr-xr-x 18 root root 4096 Jun 22 20:46 root
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;-rw-r--r-- 1 root root 16777216 Jun 22 16:34 swap
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;drwxr-xr-x 11 root root 4096 Dec 16 2024 usr
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-plain" data-lang="plain"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;$ ls -l /export/client/root
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;total 29000
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;drwxr-xr-x 2 root root 4096 Dec 16 2024 altroot
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;drwxr-xr-x 2 root root 4096 Dec 16 2024 bin
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;drwxr-xr-x 9 root root 36864 Jun 22 16:49 dev
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;drwxr-xr-x 30 root root 4096 Jun 22 16:42 etc
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;drwxr-xr-x 2 root root 4096 Jun 22 16:33 kern
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;drwxr-xr-x 3 root root 4096 Dec 16 2024 lib
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;drwxr-xr-x 3 root root 4096 Dec 16 2024 libdata
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;drwxr-xr-x 5 root root 4096 Dec 16 2024 libexec
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;drwxr-xr-x 2 root root 4096 Dec 16 2024 mnt
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;-rwxr-xr-x 1 root root 14805376 Dec 16 2024 netbsd
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;drwxr-xr-x 2 root root 4096 Dec 16 2024 rescue
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;drwxr-xr-x 2 root root 4096 Jun 22 16:33 root
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;drwxr-xr-x 2 root root 4096 Dec 16 2024 sbin
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;drwxr-xr-x 2 root root 4096 Dec 16 2024 stand
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;drwxr-xr-x 2 root root 4096 Jun 22 16:34 swap
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;drwxrwxrwt 2 root root 4096 Dec 16 2024 tmp
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;drwxr-xr-x 24 root root 4096 Dec 16 2024 var
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;他にもクライアント側の設定も必要になりますが、まずはカーネルを起動するところまで試したいのでここまでにしておきます。&lt;/p&gt;
&lt;h2 id="ネットワークブートの実行"&gt;ネットワークブートの実行
&lt;/h2&gt;&lt;p&gt;いよいよネットワークブートを実行します。SRMから以下のように入力します。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&amp;gt;&amp;gt;&amp;gt; boot ewa0
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;順調にネットワークブートが進んでいきます。&lt;/p&gt;
&lt;p&gt;&lt;img alt="ネットワークブート中" class="gallery-image" data-flex-basis="305px" data-flex-grow="127" height="605" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://kanpapa.com/2026/06/axpvme-vme-6/axpvme-netboot.png" width="770"&gt;&lt;/p&gt;
&lt;p&gt;しかし、カーネルが起動した途端に停止してしまいました。&lt;/p&gt;
&lt;p&gt;&lt;img alt="カーネルが起動しない" class="gallery-image" data-flex-basis="305px" data-flex-grow="127" height="605" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://kanpapa.com/2026/06/axpvme-vme-6/axpvme-kernelboot.png" width="770"&gt;&lt;/p&gt;
&lt;p&gt;メッセージをよく見ると、AXPvme 64はサポートされていないと表示されています。&lt;/p&gt;
&lt;p&gt;NetBSDの公式サイトのドキュメントをよくみたところAXPvmeは未サポートであることがわかりました。
さすがにAXPvmeは一般的な機種ではないからでしょう。&lt;/p&gt;
&lt;h2 id="まとめ"&gt;まとめ
&lt;/h2&gt;&lt;p&gt;今回はネットワークブートの環境構築およびNetBSD/Alphaのnetbootの動作確認ができました。&lt;br&gt;
カーネルも起動はしたもののそのままでは動かずAXPvme用のポーティングが必要のようです。&lt;br&gt;
Alpha CPUは64bit RISCプロセッサであり、これまで経験してきたm68kやV53とは桁違いに複雑です。&lt;br&gt;
しかし、すでにNetBSD/Alphaでは多数のAlpha CPU搭載機種がサポートされていますので、これらの情報を参考にしてAXPvmeへのポーティングにチャレンジしてみます。&lt;/p&gt;</description></item></channel></rss>