※完全に自分のメモ用です。説明を省略した部分が多いです。
※前回の続きです
berota.hatenablog.com
はじめに
Zybo Z7-10にLinuxを入れたからにはSSH接続で色々やりたい。
将来的には入力をFPGA側で制御して、タイムスタンプ付きでテキストにまとめてホストしてるUbuntuに送る。みたいなことをしたい。
PetaLinuxは最低限のバイナリしか用意されていないのでconfigで色々設定してからProjectをビルドする必要がある。
どうやらdropbearが初期設定で登録されているようなので、これを無効化した上でsshを有効化する。
今回は同一LAN内、というよりVirtualBox内のUbuntuとボードの間のssh通信を試みる。一応同一LAN内の他のサーバーにも接続できたのでこの方法でやれば問題ないはず。
PetaLinuxでSSH接続
一度やってしまえば楽なのだが、何かと設定が多い。
…というより、この手順を明確にした公式ドキュメントないのかな…探すの疲れた
それはそうと、ボードにLANケーブルを刺してネットワークに接続する必要があるので注意。
※PetaLinuxのバージョンは前回に引き続き2022.1です。
PetaLinux projectの設定
projectのフォルダに移動する。
$ cd /home/username/project_1/peta_project
SSHの設定とdropbear無効化
Exitを1回押して
SaveしてExit
- console > network > openssh
- openssh, openssh-sshd, openssh-sftp-server, openssh-scpを有効化
- Save > OK > Exit×5
・Packageの設定(これ必要?詳しい人教えてください)
- Image Features
- package-management 有効化
Petalinuxを再ビルド
$ LANG=C petalinux-build
$ petalinux-package --boot --force --fsbl images/linux/zynq_fsbl.elf --fpga images/linux/system.bit --u-boot
$ sudo mount /dev/sdb1 /home/username/BOOT
$ sudo mount /dev/sdb2 /home/username/ROOT
ここでread only(読み込み専用)と出る場合、SDカードのLockが付いてる場合があります。要注意。
$ cd /home/username/project_1/peta_project/images/linux/
$ sudo cp BOOT.BIN boot.scr image.ub /home/username/BOOT/
$ sudo tar xf rootfs.tar.gz -C /home/username/ROOT/
$ sync
多分必要ないんだけど、念のためにVirtualbox側の設定でネットワーク > 割り当て >ブリッジアダプターに設定して再起動
gtktermの起動
前回行った手順と同じ。USBのポートが異なる場合は対応するポートで設定してください。
$ sudo gtkterm
- gtktermが起動したらConfigration>portを選択。
- Portを/dev/tty/USB1
- Band Rateを115200
- Parityをnone
- Bitsを8
- Stopbitsを1
- Flow controlをnoneに設定。
- OKで設定が完了したら、Zyboの電源をONする。
- 一斉に文字が流れてPetaLinuxが起動する。
PetaLinuxにログイン
login:petalinux
password:てきとう
SSHする前にサーバー側で準備
手ぶらで接続するわけにも行かないのでとりあえずサーバー側(Ubuntu)の設定を行う。
前回と同じ環境なのでVirtualBox内のUbuntu20.04.1をサーバーとする。
ローカルで接続するので鍵認証の設定は行わない。
$ sudo apt -y install openssh-server
※ここではサーバーに作成するユーザーを"peta"とした。基本的に任意。
$ sudo useradd -m peta
$ sudo passwd peta
パスワードを設定する。忘れなければ何でもいい。
サーバーのIPが必要なので
$ ip -4 a
を実行してinetの後ろに書かれた数字をメモる。これがサーバーのIPアドレス。
sudo権限を与えるなら
$ sudo visudo
で%sudoの下に
ユーザーネーム ALL=(ALL) ALL
を追加する。