はじめに
ZYBOやPYNQでPetaLinuxで作ったLinuxイメージを起動し,これにSSH経由で接続しようとすることはよくあることだと思います.
ところが,大体のイメージが固定IPを設定してくる割には大学のネットワークでは固定IPを設定できないばかりか,使おうとしてもブラウザを使った接続設定が必要なので現実的ではありません.そこで今回はRaspberry Piを使ってDHCPサーバを立て,ローカルエリアネットワークを作って開発をしてみたのでそのやり方をメモっておきます.
TL;DR
- Raspberry PiのLinuxにisc-dhcp-serverをインストールする
- dhcpd.confのサブネットの設定を変える
- dhcpd.confに固定IPの割当設定を記述する
Raspberry PiのLinuxにisc-dhcp-serverをインストールする
普通にaptでインストールします.
なお,Raspberry PiではRaspbianを使っています
$ sudo apt install isc-dhcp-server
この状態でisc-dhcp-serverを有効化して実行してみて動くかどうか確認します.
$ sudo systemctl enable isc-dhcp-server
$ sudo systemctl start isc-dhcp-server
dhcpd.confのサブネットの設定を変える
PetaLinuxで作るイメージを自分で設定して作れる場合には何も考えずに自分のサブネット上で有効なIPアドレスをstatic ip addressで設定すれば良いですが,どこかから持ってきたイメージを使う場合には勝手に設定されているため,うまく動かないことがあります.
大抵は192.168.x.xに固定IPアドレスを設定していることが多いので,サブネットは192.168.0.1でネットマスクは255.255.0.0で作っておけば動きます.
subnet 192.168.0.1 netmask 255.255.0.0 {
option broadcast-address 192.168.0.255;
option subnet-mask 255.255.0.0;
option routers 192.168.0.1;
range 192.168.0.1 192.168.255.255;
}
これでisc-dhcp-serverを再起動してみます.
$ sudo systemctl restart isc-dhcp-server
このときにtypoなどで設定が正しく行われていなかった場合は,jurnalctl -xe
で最後の方のログを見るとたいていエラーログが吐かれていて,それを見ると何をどうすればよいのかわかる様になっているはずです.
dhcpd.confに固定IPの割当設定を記述する
最後にFPGAボードに載せたLinuxのMacアドレスを使って固定IPを設定します.
以下に設定例を示します.
host [host-name] {
hardware ethernet 00:00:00:00:00:00;
fixed-address 192.168.1.1;
}
ここで,上に書いた00:00:00:00:00:00
のところに設定したいMacアドレスを書きます.このMacアドレスは,ip addr show
を使ってlink/ether
のところを見ると調べることが可能です.または,PetaLinuxのビルド設定で指定することが可能です.
この状態で,dhcpサーバを再起動します.
$ sudo systemctl restart isc-dhcp-server
これでLinuxイメージでSSHサーバの設定が有効になっていれば接続できるようになっているはずです.
最後に
設定としては上述した通りのことをするだけですが,実際には繋がなければ接続はできません.
基本的には,スイッチングハブを使ってRaspberry PiとFPGAボードと作業したいPCをつなげる必要があります.