😊

KV260/KR260の初期セットアップ

2024/10/14に公開

はじめに

本記事では KV260 や KR260 を初めて買ってきた人で、まず Ubuntu を起動してみようという人を中心に、セットアップの一例を紹介するものです。

過去に下記のような入門記事を幾つか書いていますが、その前提となる初期設定の説明があまり十分ではなかったので、補足的な記事になればと思います。

ボードの説明

共通する話

KV260 も KR260 も電源スイッチというものがありません。したがって電源アダプタの抜き差しでそれを行う事になります。

一方で、アダプタを差し込むと早速起動が始まってしまうので、

  • 周辺ケーブルやSDカードなど必要なものを接続してから電源を挿す
  • Linux の シャットダウンなどを行ってから電源を抜く

というのが基本になってきますので最初に覚えておいてください。
(なお、SDカードを挿さずに電源を入れて USB経由で接続して使うという場合もあります。)

またどちらのボードも使い方として

  • ヘッドレスPCのようにして、別の PC を母艦として使う
  • ディスプレイやキーボード/マウスなどを接続して KV260 や KR260 を Ubuntu マシンとして使う

の2種類の使い方が出来ます。

前者の場合は PC と USBケーブルで接続する事が必要となり、後者の場合は ディスプレイやキーボードマウスの接続が必須となります。

また両者において LAN ケーブルの接続は必須となります。どちらも WiFi は備えていないので有線LANを用意しましょう(きちんと設定すれば USBのWiFi アダプタも利用可能だとは思います)。

以降の説明は、有線LANで、自宅のインターネットルーターなどに繋がっており、PC と同じサブネットにボードがある前提で説明を行います。

KV260について

KV260の接続は下記のようになっています。特に悩む点は無いでしょう。

KV260

KR260について

KR260の接続は下記のようになっています。
注意点は

  • 有線LAN は4つあるポートの右側を使う必要がある
  • DisplayPort のモニタを持っていない場合は、アクティブタイプの DP-HDMI変換器が必要

という点です。

KR260

なお、DP-HDMI変換器とは下記のようなものです。

DP-HDMI変換

似た見た目で、パッシブタイプとアクティブタイプがあるので必ずアクティブタイプを用意してください。

Ubuntu 22.04 イメージのダウンロード

SDカードを読み書きできるカードリーダーを用意しておいてください。

Kria KV260/KR260 の Ubuntu のイメージは下記からダウンロードすることが出来ます。

https://ubuntu.com/download/amd

当方がダウンロードした段階では iot-limerick-kria-classic-desktop-2204-20240304-165.img.xz でした。

イメージの展開とSDカードへの書き込み

PC が Windows の場合

まずブラウザなどからイメージをダウンロードしてきます。

次に 7zipなどのソフトウェアを使ってファイルを展開して iot-limerick-kria-classic-desktop-2204-20240304-165.img を得ます。

これを SD カードに書き込むには Win32 Disk Imagerbalena を利用します。

なお、Win32 Disk Imager は Google Drive と相性問題があるそうですので、併用する場合はご注意ください。対策版もあるそうです。

PC が Ubuntu の場合

ブラウザなどからイメージをダウンロードし、ターミナルを開いてダウンロードしたディレクトリに移動して、イメージを展開します。

cd ~/Downloads/
unxz iot-limerick-kria-classic-desktop-2204-20240304-165.img.xz

展開すると iot-limerick-kria-classic-desktop-2204-20240304-165.img が得られますのでこれを SD カードに書き込むのですが、例えば Ubuntu の場合、USB の カードリーダーなどで SDカードを取り付けると自動的にマウントされてしまう為、一度アンマウントする必要があります。

自動マウント

デバイスの探し方の1つとして

lsblk

と打ち込む方法があります。今回、16Gバイトの新品の状態(FATでフォーマット済み)のSDカードで試したものが下記です。
(なお、説明の為手元に余っていた16Gで実験していますが、実際の運用には 32Gや64Gなどの大容量のSDカードをお勧めします)。

picture 0

サイズや /media/ユーザー名 の下に自動マウントされる点などから、デバイス名が sdc で マウントされているパーティーションが sdc1 であることが分かります。

sudo umount /dev/sdc1

としてパーティーションを指定して、アンマウントします。

続けて

sudo dd if=iot-limerick-kria-classic-desktop-2204-20240304-165.img of=/dev/sdc bs=4M status=progress
sync

のようにすれば SDカードに書き込みが行えます。
sync を実行して確実に書き込んでおきましょう。

最後にイジェクトして安全にSDを取り出します。

sudo eject /dev/sdc

USB 経由のシリアル接続とボードの起動

PC が Windows の場合

Windows の場合 TeraTerm を利用するのが便利です。

KV260などにUSBを接続すると COMポートとして認識されます。デバイスマネージャなどを見てUSBを挿した時に新たに表れるCOM番号を確認してください。
増えた COM ポートのうちの1つが、Linux 起動時のコンソールとなるので、初回のみ幾つか開いて調べてください。

デバイスマネージャ

TeraTerm を起動して、目的のポートを選んで 115200bps 8bit noneパリティ に設定してください。

picture 9

ここでボードの電源を入れると下記のようにログインプロンプトが出てきます。

TeraTerm

PC が Ubuntu の場合

Ubuntu の場合、USBケーブルを接続すると、/dev/USBx のようなデバイスが4つ現れます。

増えた ttyUSB のうちの1つが、Linux 起動時のコンソールとなります。

LinuxTty

ここでは gtkterm を使う事にします。

下記のようにインストールし

sudo apt update
sudo apt install gtkterm

下記のように起動できます。

gtkterm --port /dev/ttyUSB1

picture 11

初回ログイン

初期は

  • カウント名:ubuntu
  • パスワード: ubuntu

となっているようです。これでログインしようとすると新しいパスワードを設定するように促されますので新しいパスワードを設定してください。

ログインは GUI から行う事も、COMポート経由で CLI で行うことも出来ます。

この段階でいろいろな事が出来るようになります。

作業用のユーザーを新規に作っても良いかもしれません。

Kria KV260 環境構築メモ(Ubuntu22.04 版) などの記事が参考になれば幸いです。

また、KV260 と KR260 などを複数枚使う場合は、ホスト名などもボード毎にユニークな名前を付けておくと良いかもしれません。

電源の切り方

GUI からであれば電源を切るのは容易です。CLIの場合は

sudo poweroff

とすることで、電源を落とすことが出来ます。

COMポートに Power down の文字が出るのを待って電源を引き抜きましょう。

Powroff

PCからの ssh 接続

ボード側の IP アドレスの確認

ボードを起動してログインした後に、コンソールから

ip address

のように打ち込めばIPアドレスなどの情報が確認できます。
有線LANが正しく接続されて入れば DHCP などで IP アドレスが取得出来ているはずなので、IPアドレスをメモしてください。

パスワードでの接続

PC Ubuntu の場合は ターミナルを開き(bash)、Windows の場合は PowerShell から作業します。

下記のようにすると KV260 や KR260 にPCからログインできます。

ssh -l ubuntu XX.XX.XX.XX

XX.XX.XX.XX の部分は上で調べたボードの IP アドレスを入力してください。
また ubuntu の部分はユーザーを新しく作った場合はそちらの名前を使ってください。

authorized_key での接続

ますパスワードで ssh 出来る状態にします。

PC が Windows の場合

PC 側でまだ、認証鍵を生成してない場合は PowerShell から

ssh-keygen -t rsa -b 4096

として生成します。

公開鍵をコピーします。

scp $env:USERPROFILE\.ssh\id_rsa.pub ubuntu@XX.XX.XX.XX:/tmp/id_rsa.pub

ボードにログインします

ssh -l ubuntu XX.XX.XX.XX

authorized_keys を設定し、適切なパーミッションを設定します。

mkdir -p ~/.ssh
cat /tmp/id_rsa.pub >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys
chmod 700 ~/.ssh
rm /tmp/id_rsa.pub

再び PC 側に戻り C:\Users\<ユーザー名>\.ssh のフォルダに config というファイルを作り、下記のような内容を追加します(X-Windowを使えるように設定しています)。

Host kria
    HostName XX.XX.XX.XX
    User ubuntu
    ForwardX11 yes
    ForwardX11Trusted yes

以降

ssh kria

としすれば接続できます。

PC が Ubuntu の場合

毎回パスワードを打ち込んで接続するのは面倒ですので、 authorized_key での接続を設定します。

PC 側でまだ、認証鍵を生成してない場合は

ssh-keygen -t rsa -b 4096

として生成します。

続けて下記のコマンドでボード側に認証ファイルをコピーします。

ssh-copy-id ubuntu@XX.XX.XX.XX

~/.ssh/config ファイルを作成し、下記のような内容を打ち込みます(X-Windowを使えるように設定しています)。

Host kria
    HostName XX.XX.XX.XX
    User ubuntu
    ForwardX11 yes
    ForwardX11Trusted yes

以降

ssh kria

としすれば接続できます。

VS Code Remote Development の利用

PC から VS Code Remote Development を使うと何かと便利です(Windows/Ubuntu共通)。

VS-Code

Remote-ssh をインストールし、コマンドパレットから Remote-ssh Connection to Host... を選ぶと

Remote-ssh

.ssh/config に登録しているホストの一覧が表示されます。

Host一覧

接続すると以降はまるでローカルPCのように VS-Code が扱えます。

Vivado Hardware Manager の接続

PC で起動した Vivado などから USB経由でボードに直接接続することが出来ます。

これは KR260 や KV260 が JTAG ダウンロードケーブルの機能をオンボードで有しているためです。

JTAG は半導体のテストやロジックやCPUのデバッグなど多岐にわたる機能を実現するインターフェース規格です。しばし上級者は「JTAGで繋ぐ」と略すケースがあるので注意してください。

Linuxのケーブルドライバのインストール

Ubuntu の場合で、インストール時にケーブルドライバをインストールしていない場合は、下記のようにしてインストールできます。

cd tools/Xilinx/Vitis/2023.2/data/xicom/cable_drivers/lin64/install_script/install_drivers
sudo ./install_drivers

Hardware Manager を開く

Vivado を起動して

Hardware Manager

Open target を選び、Auto Connect を選ぶと接続できます。

Open target

また、このとき Auto Connect を選ぶとより詳細な設定で接続でき、後述の hw_server を使った接続も可能です。

Hardware Manager からは、ILA(Integrated Logic Analyzer) を埋め込んだ回路の波形確認などが出来るので、覚えておきましょう。

なお Hardware Manager の接続などが、ボードの起動を妨げるときなどがあるようですので、必要な時だけ繋ぐのが良いでしょう。

hw_server について

WSL2 や VirtualBox などの仮想環境内で開発する事も多いかと思います。

そちらに USB を認識させる手もありますが、hw_server を使う手もあります。

下記は Windows の場合ですが、ホストOSでこれを実行しておくと、ネットワーク経由で Vivado の Hardware Manager などを接続することが出来ます。

hw_server

hw_server はインストールの小さな Vivado Lab Edition にも含まれます。

筆者は Windows ネイティブに Vivado Lab Edition をインストールし、WSL2 に Vitis をフルインストールして利用しています。

GitHubで編集を提案

Discussion