0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【EBAZ4205+Vivado2023.2】 ♯* WSL2上のUbuntuでPetaLinux2023.2のビルド環境を構築してみる

Last updated at Posted at 2024-12-29

Aliexpressにて激安で販売されている、Zync-7000(xc7z010clg400-1)を搭載したマイニング用ボード「EABZ4205」向けにAMD(Xilinx)の公式Linux環境であるPetaLinuxを動かした記録です。
ネット上の記事ではVivado(Vitis)のバージョンが古い(2020.1が多い)ものが多いこともあり、比較的新しい2023.2を使ってWindows11のWSL2+Ubuntuでビルドしたのですが、※1: Xilinxの公式ドキュメント(UG114)通りではエラーが出まくってかなり苦戦したので、記録に残しておきます。

EBAZ4205については、参考リンク ※2を参照してください。

WSL2でのPetaLinux環境の構築

開発環境

  • Windows11 Pro 24H2
  • WSL v2.3.26.0

Windows11にWSL2をインストールする

以下の記事を参考にさせていただきました。
Windows 11にWSL2をインストールする

Windows Power Shell を管理者権限で起動します。
image.png

起動したら、以下のコマンドでWSL2をインストールします。

PS C:\Users\***> WSL --install

インストールが完了したら、システムを再起動します。
標準のインストールでは、規定のUbuntuのバージョンがインストールされます。
PetaLinux2023.2がサポートするOSのバージョンをユーザーガイド(UG1144)で確認します。

image.png

WSL2でインストールできるディストリビューションをPower Shellで確認します。

PS C:\Users\***> WSL --list --online
インストールできる有効なディストリビューションの一覧を次に示します。
'wsl.exe --install <Distro>' を使用してインストールします。

NAME                            FRIENDLY NAME
Ubuntu                          Ubuntu
Debian                          Debian GNU/Linux
kali-linux                      Kali Linux Rolling
Ubuntu-18.04                    Ubuntu 18.04 LTS
Ubuntu-20.04                    Ubuntu 20.04 LTS
Ubuntu-22.04                    Ubuntu 22.04 LTS
Ubuntu-24.04                    Ubuntu 24.04 LTS
OracleLinux_7_9                 Oracle Linux 7.9
OracleLinux_8_7                 Oracle Linux 8.7
OracleLinux_9_1                 Oracle Linux 9.1
openSUSE-Leap-15.6              openSUSE Leap 15.6
SUSE-Linux-Enterprise-15-SP5    SUSE Linux Enterprise 15 SP5
SUSE-Linux-Enterprise-15-SP6    SUSE Linux Enterprise 15 SP6
openSUSE-Tumbleweed             openSUSE Tumbleweed

今回は、サポートしているUbuntuのバージョンで最新の"Ubuntu-22.04"を追加でインストールします。

PS C:\Users\***> wsl --install Ubuntu-22.04

インストールが終わったら、PoWER Shellでインストールされているディストリビューションを確認します。

PS C:\Users\***> WSL --list
Linux 用 Windows サブシステム ディストリビューション:
Ubuntu (既定)
Ubuntu-24.04
Ubuntu-22.04

以下のコマンドで規定のバージョンを22.04に変更します。

PS C:\Users\***> wsl --set-default ubuntu-22.04
この操作を正しく終了しました。
PS C:\Users\***> WSL --list
Linux 用 Windows サブシステム ディストリビューション:
Ubuntu-22.04 (既定)
Ubuntu-24.04
Ubuntu

PetaLinuxをインストールする

PetaLinux2023.2のインストーラを以下からダウンロードします。

ダウンロードページのリンク製品アップデートのリリース ノートおよび既知の問題を開きます。

最下段のリンクからUbuntu22.04での必要なパッケージリストが記載されたエクセルをダウンロードします。
image.png

このファイルの"Ubuntu Desktop/Server 64-bit"に記載された部分が必要なパッケージです。

Ubuntu22.04を起動必要なパッケージをインストールします。
Ubuntu22.04では"python"は廃止され”python2"に名称が変わっているので、以下のように修正して実行します。

PetaLinux_2023.2_OS_Package_List.xlsx
~$ sudo apt-get install iproute2 gawk python3 python2 build-essential gcc git make net-tools libncurses5-dev tftpd zlib1g-dev libssl-dev flex bison libselinux1 gnupg wget git-core diffstat chrpath socat xterm autoconf libtool tar unzip texinfo zlib1g-dev gcc-multilib automake zlib1g:i386 screen pax gzip cpio python3-pip python3-pexpect xz-utils debianutils iputils-ping python3-git python3-jinja2 libegl1-mesa libsdl1.2-dev pylint

PetaLinux SDKのインストールで"python"(python2)を呼び出しますので、シンボリックリンクを作成します。

~$ sudo ln -s /usr/bin/python2 /usr/bin/python

今回はPetaLinuxのインストーラを"~/Downloads/"に置き、 PetaLinuxを "~/petalinux2023.2/"にインストールします。

~/petalinux2023.2$ ../Downloads/petalinux-v2023.2-10121855-installer.run

PetaLinuxを実行するための設定ファイルを読み込みます。

~/petalinux2023.2$ source settings.sh

毎回起動時に設定ファイルを読み込む場合は、同じ内容を.bashrcに追記します。

.bashrc
~/petalinux2023.2$ vi ~/.bashrc

//末尾に以下を追加
source ~/petalinux2023.2/settings.sh

EBAZ4205用のプロジェクトの作成

テンプレートから空のプロジェクトを作成します。

~/petalinux2023.2$ petalinux-create --type project --template zynq --name ebaz4205
~/petalinux2023.2$ cd ebaz4205/
~/petalinux2023.2/ebaz4205$

Vivadoからエクスポートしたハードウエア情報(ebaz4205_wrapper.xsa)を読み込みます。

~/petalinux2023.2/ebaz4205$ cp /mnt/c/Users/tomor/Downloads/ebaz4205_wrapper.xsa ../
~/petalinux2023.2/ebaz4205$ petalinux-config --get-hw-description ../ebaz4205_wrapper.xsa  

筆者の環境ではここで以下のエラーが出ましたので、追加のパッケージをインストールして対応しました。

  • "en_US.utf8がない"というエラーになった場合
    以下の言語パックを追加インストールします。ついでに日本語も追加しておきます。
~/petalinux2023.2/ebaz4205$ sudo apt install language-pack-ja -y
~/petalinux2023.2/ebaz4205$ sudo apt install language-pack-en -y
  • "[INFO] Generating Kconfig for project"でエラーになった場合
    以下の"libtinfo5"をインストールします。
~/petalinux2023.2/ebaz4205$ sudo apt-get install libtinfo5

PetaLinux System Configuration

メニューが出るので、u-bootでFIT イメージ(image.ub)を読み込むアドレスを修正します。
デフォルト値

  • imageub_addr=0x10000000

これは、EBAZ4205 に搭載された DDR3 のアドレス範囲(0x0000_0000~0x1000_0000)を超えていますので、正しく読み込めるアドレス

  • imageub_addr=0x01000000

に変更します。

image.png

image.png

image.png

image.png

PetaLinuxをビルドする

UG1144の手順では、デバイスツリーの記載にtypoがありエラーでビルドができませんので、wavelet2氏のEBAZ4205リポジトリの2023.1ブランチを参考に作業をしていきます。

デフォルトでは"system_conf.dtsi"にtypoがあるので、まずデバイスツリーをビルドします。

~/petalinux2023.2/ebaz4205$ petalinux-build -c device-tree -x do_configure

以下のファイルの18行目を'ps7_nand_0'から'nfc0'に変更します。

  • components/plnx_workspace/device-tree/device-tree/system-conf.dtsi
system-conf.dtsi
/*
 * CAUTION: This file is automatically generated by PetaLinux SDK.
 * DO NOT modify this file
 */

/ {
chosen {
    bootargs = "console=ttyPS0,115200 earlycon root=/dev/ram0 rw";
    stdout-path = "serial0:115200n8";
    };
};

&gem0 {
    local-mac-address = [00 0a 35 00 1e 53];
};

/*&ps7_nand_0 {*/
&nfc0 {
    nand@0 {
        partition@0 {
            label = "nand-boot";
            reg = <0x0 0x00000000 0x00500000>;
        };
        partition@1 {
            label = "nand-kernel";
            reg = <0x0 0x00500000 0x00a80000>;
        };
        partition@2 {
            label = "nand-bootenv";
            reg = <0x0 0x00f80000 0x00020000>;
        };
        partition@3 {
            label = "nand-device-tree";
            reg = <0x0 0x00fa0000 0x00400000>;
        };
        partition@4 {
            label = "nand-rootfs";
            reg = <0x0 0x013a0000 0x03c00000>;
        };
    };
};

修正が終わったら、PetaLinuxをビルドします。ビルドには数時間かかりますので気長に待ちます。

~/petalinux2023.2/ebaz4205$ petalinux-build

BOOT.BIN作成用のシェルスクリプトを作成し、プロジェクトディレクトリ(~/petalinux2023.2/ebaz4205$)に保存します。

make_BOOT.BIN.sh
#!/bin/bash -eu
petalinux-package --boot --force --fsbl ./images/linux/zynq_fsbl.elf --fpga ./project-spec/hw-description/ebaz4205_wrapper.bit --u-boot

シエルスクリプトを実行しBOOT.BINを作成します。

~/petalinux2023.2/ebaz4205$ ./make_BOOT.BIN.sh
[INFO] Sourcing buildtools
INFO: File in BOOT BIN: "/petalinux2023.2/ebaz4205/images/linux/zynq_fsbl.elf"
INFO: File in BOOT BIN: "/petalinux2023.2/ebaz4205/project-spec/hw-description/ebaz4205_wrapper.bit"
INFO: File in BOOT BIN: "/petalinux2023.2/ebaz4205/images/linux/u-boot.elf"
INFO: File in BOOT BIN: "/petalinux2023.2/ebaz4205/images/linux/system.dtb"
INFO: Generating zynq binary package BOOT.BIN...

****** Bootgen v2023.2
  **** Build date : Sep  4 2023-15:57:12
    ** Copyright 1986-2022 Xilinx, Inc. All Rights Reserved.
    ** Copyright 2022-2023 Advanced Micro Devices, Inc. All Rights Reserved.

[INFO]   : Bootimage generated successfully

INFO: Binary is ready.

~/petalinux2023.2/ebaz4205/images/Linux/ の下に起動用ブートイメージが生成されますので、

  • BOOT.BIN
  • boot.scr
  • image.ub

の3個のファイルをSDカードにコピーします。

~/petalinux2023.2/ebaz4205/images/linux$ cp BOOT.BIN boot.scr image.ub /mnt/c/Users/*****/Downloads/

EBAZ4205をSDカードをからブートします。

筆者の環境では、u-bootを実行したところでFATの環境変数が設定されていないというエラーが出ましたので、以下のコマンドを実行し環境変数をFATファイルシステム(SDカード)に保存しました

Zynq> saveenv

リセットして再起動したら、u-bootのプロンプトで停止しましたが、"boot"と入力してPetaLinuxをブートできました。

U-Boot 2023.01 (Sep 21 2023 - 11:02:37 +0000)

CPU:   Zynq 7z010
Silicon: v3.1
DRAM:  ECC disabled 256 MiB
Core:  24 devices, 16 uclasses, devicetree: board
Flash: 0 Bytes
NAND:  0 MiB
MMC:   mmc@e0100000: 0
Loading Environment from FAT... OK
In:    serial@e0001000
Out:   serial@e0001000
Err:   serial@e0001000
Net:
ZYNQ GEM: e000b000, mdio bus e000b000, phyaddr 0, interface gmii
eth0: ethernet@e000b000
Hit any key to stop autoboot:  0
Zynq> boot

正常にブートすると、ログインのプロンプトが出ます。
ttyPS0経由では、rootログインできません。以下のユーザーが設定されていますのでこれでログインします。

  • ユーザー: petalinux
  • 新規パスワードの設定が要求されるので入力してログイン
PetaLinux 2023.2+release-S10121051 ebaz4205 ttyPS0

ebaz4205 login: petalinux
You are required to change your password immediately (administrator enforced).
New password:
Retype new password:
ebaz4205:~$

参考リンク

※1: PetaLinux ツール資料: リファレンス ガイド (UG1144) 2023.2
https://docs.amd.com/r/2023.2-English/ug1144-petalinux-tools-reference-guide/Overview

※2: 1500円の ZYNQ 基板を買ってみた (EBAZ4205, ANTMINER)
https://qiita.com/kan573/items/e951a0b2e26e19372800

※3: Windows 11にWSL2をインストールする
https://qiita.com/SAITO_Keita/items/148f794a5b358e5cb87b

※4: wavelet2氏のEBAZ4205リポジトリの2023.1ブランチ
https://github.com/wavelet2/EBAZ4205/blob/2023.1/docs/how-to-build.md

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?