PetalinuxをZyboで動かしたい.
Zybo Z7-20でPetalinuxを動かしたかったのでやってみました.調べてみると2018以前のものが多く,XilinxSDKなどいろいろ変わった2019年以降とは少し違います.ちょこっとハマるポイント(勝手に自滅しただけ)もあったのでそれをちょこっと残しておこうと思います.(こいついつもハマってんな)
書いてみたら結構長くなったので2つの分けます.今回はPetalinuxのインストール,次回はPetalinuxをビルドしてZyboZ7-20を動かすところをやっていきます.
次回かけました.
環境
- Ubuntu18.04
- たぶん18じゃなくても大丈夫かなと思いますが自分は18でやりました.
- Petalinux 2019.2
Ubuntuを入れておく
Ubuntuを入れて使える状態にしておきましょう.自分はMacBookProで作業してるのでParallelsを使って仮想マシンとしてUbuntuを入れてます.ParallelsはVirtualBoxみたいに苦労することがないのでおすすめです...有料だけど買って損ないと思う.(VMWareもいいらしい)
Petalinuxをインストールする
Xilinxが公式でインストールのやり方を教えてくれてるのでこれ通りやればおKです.
データシートの方は結構詳しく引数なども日本語で教えてくれてるので目を通しておくのをおすすめします.日本語資料が充実してるとちょっと嬉しい.
下準備をする
先にupdateとupgradeしておきます.
sudo apt update sudo apt upgrade
もうapt-getは非推奨らしいですよ.あんまりわからんけどaptだけでいいみたいです.でも癖でapt-getを使ってしまう.
Petalinuxをビルドするために必要なものを先に入れておきます.説明通りにこれをインストールします.
apt-get install tofrodos gawk xvfb git libncurses5-dev tftpd zlib1g-dev zlib1g-dev:i386 \ libssl-dev flex bison chrpath socat autoconf libtool texinfo gcc-multilib \ libsdl1.2-dev libglib2.0-dev screen pax
必要であれば,TFTPサーバをインストールしておきましょう.使う予定がなければ飛ばしてもいいですが入れておいて損はない.インストールしたらリファレンスにしたがってchmodしておきましょう.
sudo apt-get install tftpd-hpa sudo chmod a+w /var/lib/tftpboot/
インストーラーをダウンロードします
.run形式のものがダウンロードされます.適当にmkdirして~/petaにおいておきました.ここを作業ディレクトリとします.
インストーラーを実行
/opt/pkg/petalinux
にインストールしたいので作ります.
sudo mkdir -p /opt/pkg/petalinux ./petalinux-v2019.2-final-installer.run /opt/pkg/petalinux/
します.
許可がありませんとでた.どうやら/opt/pkg/petalinuxに権限がないらしい.ls -l
で様子を見てみます.
fumi@ubuntu:/opt/pkg$ ls -l 合計 4 drwxr-xr-x 2 root root 4096 Sep 29 23:48 petalinux fumi@ubuntu:/opt/pkg$
ということでgroupとOwnerを変更します.
sudo chgrp fumi /opt/pkg && sudo chgrp fumi /opt/pkg/petalinux && sudo chown fumi /opt/pkg && sudo chown fumi /opt/pkg/petalinux
もう一度ls -l
で見てみる.
fumi@ubuntu:/opt/pkg$ ls -l 合計 4 drwxr-xr-x 2 fumi fumi 4096 Sep 29 23:48 petalinux fumi@ubuntu:/opt/pkg$
大丈夫そう.ちなみに,sudoでインストーラーを動かせばいいじゃないかと思うかもしれませんが,公式ドキュメントによればそれをやるとbitbikeエラーを起こすらしくやってはいけないそうです.ユーザー権限で実行するようにしましょう.
あたらめてインストーラーを動かします.
cd ~/peta ./petalinux-v2019.2-final-installer.run /opt/pkg/petalinux/
まだ許可がないらしい.困った.ちょっと調べたらインストーラーをchmod 755すれば良いという情報があった.ということでchmodしておきます.
sudo chmod 755 petalinux-v2019.2-final-installer.run
今度こそ実行
ERROR: Failed to extract Petalinux installer...
となってしまった.これが人生.調べてみるといくつかパッケージがたりてない可能性があるらしい.そのページにあったこれを入れてみる.よくみるとgawkというのが追加されているようだ.
sudo apt-get 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 libsdl1.2-dev libglib2.0-dev zlib1g:i386 screen pax gzip gawk
もう一度トライ
./petalinux-v2019.2-final-installer.run /opt/pkg/petalinux/
動きました,よかった.画面ではAgreeを求められているのでEnterを押して
ここでqを推します.
そしてyを押してEnter.これを3セットやります.
3回やるとこのようになり,Petalinuxがインストールされます.ちょっと時間かかるかも.MacBookが熱々でした.
ERROR: Failed to install Yocto SDK for aarch64.
はい,できませんねこれ.Failed to install Yocto SDK for aarch64.
と書いてあります.~/petaにあるインストールログをみるとPythonがないよって言っています.
ここによるとPython2じゃないと動かんらしい.見てみるとUbuntu18はPython3しか入ってない.(そりゃそうだ)なのでPython2を入れます,
sudo apt install python
入りました.も一度トライ.
./petalinux-v2019.2-final-installer.run /opt/pkg/petalinux/
fumi@ubuntu:~/peta$ ./petalinux-v2019.2-final-installer.run /opt/pkg/petalinux/ INFO: Checking installation environment requirements... INFO: Checking free disk space INFO: Checking installed tools INFO: Checking installed development libraries INFO: Checking network and other services WARNING: No tftp server found - please refer to "PetaLinux SDK Installation Guide" for its impact and solution INFO: Checking installer checksum... INFO: Extracting PetaLinux installer... LICENSE AGREEMENTS PetaLinux SDK contains software from a number of sources. Please review the following licenses and indicate your acceptance of each to continue. You do not have to accept the licenses, however if you do not then you may not use PetaLinux SDK. Use PgUp/PgDn to navigate the license viewer, and press 'q' to close Press Enter to display the license agreements Do you accept Xilinx End User License Agreement? [y/N] > y Do you accept Webtalk Terms and Conditions? [y/N] > y Do you accept Third Party End User License Agreement? [y/N] > y INFO: Installing PetaLinux... ********************************************* WARNING: PetaLinux installation directory: /opt/pkg/petalinux/. is not empty! ********************************************* Please input "y" to continue to install PetaLinux in that directory?[n]y INFO: Checking PetaLinux installer integrity... INFO: Installing PetaLinux SDK to "/opt/pkg/petalinux/." INFO: Installing aarch64 Yocto SDK to "/opt/pkg/petalinux/./components/yocto/source/aarch64"... INFO: Installing arm Yocto SDK to "/opt/pkg/petalinux/./components/yocto/source/arm"... INFO: Installing microblaze_full Yocto SDK to "/opt/pkg/petalinux/./components/yocto/source/microblaze_full"... INFO: Installing microblaze_lite Yocto SDK to "/opt/pkg/petalinux/./components/yocto/source/microblaze_lite"... INFO: PetaLinux SDK has been installed to /opt/pkg/petalinux/. fumi@ubuntu:~/peta$
やった!インストール成功しました!長い道のりだった…まだPetalinuxをインストールしただけで何も始まってないんですけどね.
設定を読み込むようにする
このままだとPetalinuxの設定が読み込まれておらずpetalinux-config
とかやってもエラーになると思います.
fumi@ubuntu:~$ petalinux-config petalinux-config: コマンドが見つかりません fumi@ubuntu:~$
なので設定が読み込まれるようにします.一回手動で動かしてみます.
source /opt/pkg/petalinux/settings.sh
こんな感じで読み込まれます.この状態ならPetalinuxコマンドが動くと思います.
fumi@ubuntu:~$ source /opt/pkg/petalinux/settings.sh PetaLinux environment set to '/opt/pkg/petalinux' WARNING: /bin/sh is not bash! bash is PetaLinux recommended shell. Please set your default shell to bash. INFO: Checking free disk space INFO: Checking installed tools INFO: Checking installed development libraries INFO: Checking network and other services fumi@ubuntu:~$ petalinux-config ERROR: You are not inside a PetaLinux project. Please specify a PetaLinux project! Configures the project or the specified component with menuconfig. Usage: petalinux-config [options] {--component <COMPONENT> |--get-hw-description[=SRC]} Options: -h, --help show function usage -p, --project <PROJECT> path to PetaLinux SDK project. default is the working project --silentconfig takes the default configuration and skips the GUI. -c, --component <COMPONENT> Specify the component If no component is specified, it will do top level project configuration . If you specify a component,it will configure it with menuconfig and saves user's config fragments in meta-user. E.g. -c rootfs, -c busybox --get-hw-description [SRC] get hardware description. if [SRC] is specified, look in that location for an Vivado export to SDK directory. Otherwise, this MUST be run from WITHIN the vivado export to SDK directory. --defconfig [DEFCONFIG_TARGET] defconfig the specified component. It applies to kernel and u-boot. -v, --verbose verbose mode Note: There is no validation for configurable components. User can provide any component, bitbake will throw error for invalid components. fumi@ubuntu:~$
ちゃんと動いてますね.Terminalを起動する旅にこれをやるのは面倒なのでbashrcに書いておきましょう.bashrcはbashが起動するたびに自動で実行してくれる設定ファイルです.(たぶん)
fumi@ubuntu:~$ echo source /opt/pkg/petalinux/settings.sh >> ~/.bashrc
これでTerminalを起動するたびに実行してくれます.
でも毎回実行した時の文字が出るのはちょっと煩わしいので実行しても文字が出ないようにしておきました. 面倒だったのでnanoで編集してますが別になんでも大丈夫です./dev/nullにつないで消しましたがもっと賢い方法があるような気がします...誰か教えてください.
これで再度Terminalを起動しても何も表示されずにPetalinuxが読み込まれるようになりました.やったね.
今回はここまでにします.次回はPetalinuxのプロジェクトを作ってビルドして動かします.
次回→PetalinuxをビルドしてZybo Z7-20実行する