Virtual Box上でZybo用にLinuxをビルドする
Linux環境がないシチュエーションでPetaLinuxをビルドする必要があったので、作業ログ。
環境
項目 | 概要 |
---|---|
OS | Windows 10 Enterprise 1909 |
Vivado (on Windows) | 2021.1 |
Virtual Box | 6.1.26 |
PetaLinux | 2021.1 |
Board | Zybo z7-20 |
WSL(2), DockerではなくVirtual BoxなのはUSBが扱いやすいこと、PetaLinux用に環境が切れることが主な理由である。
Bitstream作成
Vivadoでプロジェクト作成後、Zybo Z7-20を選択した。
[PROJECT MANAGER]>[Create Block Design]でZynqだけのブロック作成
[Block Design]ビュー内の[Sources]>[Design Sources]のdesign_1_iを右クリックし、[Create HDL wrapper]でラッパーを作り、
[Project Manager]>[PROGRAM AND DEBUG]の、[Generate Bitstream]する。
完了後、[File]>[Export]>[Export Hardware]を選択、
下記のように選択し、
これでハードウェア情報を持つファイル、design_1_wrapper.xsaができる。後で使う。
Virtual Box上にUbuntuをインストール
6.1.28をインストールしたが、Hyper-V関係で起動できなかったため6.1.26にした。
対応するLinuxのバージョン及び保存容量、メモリ容量はPetaLinuxのリファレンスマニュアルをチェックすること
今回はPetaLinux 2021.1であるため、次のようにした。
項目 | 概要 |
---|---|
OS on Virtual Box | Ubuntu 18.04.1 |
メモリ | 8GB |
保存容量 | 120GB |
PetaLinux周りに入る前に以下の設定は行った。
PetaLinux環境の構築
# su するか適宜sudoしてください
apt update
apt upgrade
# 共有ディレクトリの設定
apt install virtualbox-guest-utils
mkdir /share
# petalinux install
## 必要ライブラリのインストール(リファレンスマニュアル参照)
apt install -y gcc git make net-tools libncurses5-dev tftpd zlib1g-dev libssl-dev flex bison libselinux1 gnupg wget diffstat chrpath socat xterm autoconf libtool tar unzip texinfo zlib1g-dev gcc-multilib build-essential
apt install -y -dev zlib1g:i386 screen pax gzip
## インストールディレクトリの設定
mkdir -p /opt/pkg/petalinux
chown -R [usr_name] /opt/pkg
chgrp -R [usr_nane] /opt/pkg
## インストール
./petalinux-v2021.1-final-installer.run --dir /opt/pkg/petalinux/
# device tree install
git clone https://git.kernel.org/pub/scm/utils/dtc/dtc.git
cd dtc
make
以下を~/.bashrcに追加
# petalinux関連
export LC_ALL=en_US.UTF-8
export LANG=en_US.UTF-8
export LANGUAGE=en_US.UTF-8
source /opt/pkg/petalinux/settings.sh
# 共有ディレクトリのマウント
mount.vboxsf share /share
# dtcのパス通す
PATH=$PATH:[dtcをインストールしたディレクトリ]
共有ディレクトリ経由等でWindows上のVivadoで生成したxsaファイル(下記ではdesign_1_wrapper.xsa)をコピーしておく。
petalinux-create -t project --template zynq -n linux_build_test
cd linux_build_test
petalinux-config --get-hw-description=[path-to-you-putted]/design_1_wrapper.xsa
デフォルトのまま[Exit]
petalinux-build
petalinux-package --boot --force --fsbl images/linux/zynq_fsbl.elf --fpga images/linux/system.bit --u-boot
SDカードへの書き込み。
gpartedを使う。
apt install gparted
gparted
こんな感じでパーティションを作った。
今回はrootfs等は使わないのでext4の方はいらないが、今後楽なので。
パーティションを切った後、SDカードをマウントし直す必要があるが、面倒なのでrebootすることでマウントし直している。
作ったfat32のパーティションにimage.ub
とBOOT.bin
, boot.scr
をコピーする。
(boot.scr
を忘れると正常にbootできない6)
df -h # FAT32のパーティションを探す
cd images/linux/
cp image.ub BOOT.bin boot.scr [path-to-FAT32-partition]
コピーが終わったら、SDカードをZyboに差し、JP5ジャンパをSDカードブートに刺し替え、USBケーブルでPCと接続する。
Tera Term等で接続する。何も弄ってなければボーレートは115200である。
Starting tcf-agent: OK
root@linux_build_test:~#
参考資料
Author And Source
この問題について(Virtual Box上でZybo用にLinuxをビルドする), 我々は、より多くの情報をここで見つけました https://qiita.com/walk_to_work/items/a55b941f8a17441cd5cc著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .