Petalinux2018.3環境を整える の履歴(No.2)
更新Zynq-7000 ソフトウェア開発用に Petalinux 2018.3 環境を整える†
vivado 2018.3 のインストーラを動かしてるのと平行して、Petalinux 開発環境も 2018.3 を整えよう。それにしても vivado 2018.3 のインストーラがファイルをダウンロードしているだけなのにもかかわらず CPU リソースをを異常に食い潰すのはなぜなんだぜ?むしろインストール中は CPU を使ってないので何かがおかしい気がするのだけれど。
ということでこのページ、簡単に言えば 電気回路/zynq/Petalinux のビルド と 電気回路/zynq/Petalinux のカスタマイズ では 2016.4 だったのを 2018.3 でやろうという話だ。
環境†
以下は 2019-03-15 時点で、Windows10 Home 64bit に VirtualBox 5.2.26 という環境での話。
VirtualBox には Extention Pack 5.2.26 を入れてある。
Virtual Box に Ubuntu 16.04 を入れる†
要求される環境を確認†
Xinlinx の PetaLinux ツール関連ドキュメントページから、
"UG1144 - PetaLinux Tools Documentation: Reference Guide (v2018.3) " をクリックして Installation Requirements を見ると、Ubuntu Linux 16.04.3, 16.04.4 (64-bit) がリストアップされていたのでこれで行こう。
ちなみに、UG1144 の日本語訳は現時点では 2017_2 のものが最新みたい。 ちょっと古いのでアレだけど、ざっと眺めるには良いかも。
仮想環境を構築†
Virtual Box で 「新規」 を押して、
Ubuntu のインストールメディアをダウンロード†
http://releases.ubuntu.com/16.04/
から "64-bit PC (AMD64) server install image" をダウンロード
ubuntu-16.04.6-server-amd64.iso, 873MB でした。
16.04.4 ではないのだけれど、セキュリティ的にも新しい方が良いのだろうということで、あえて 16.04.6 にした。
どうしても 16.04.4 にしたければ http://old-releases.ubuntu.com/releases/16.04.4/ からダウンロードすれば良い。ただなぜかリンク先のファイル名は ubuntu-16.04.1-server-amd64.iso となっていた???
Ubuntu のインストール†
何もせずに起動すると "No bootable medium" と言われるので、 ウィンドウ下部の CD のアイコンを右クリックして "ディスクイメージを選択"
上記でダウンロードした .iso ファイルを指定してから [仮想マシン]-[リセット]
ちゃんと立ち上がった。
etckeeper を入れる†
/etc の設定変更履歴を取れるようにする。
LANG:console $ export LANG=C $ sudo apt-get install etckeeper
ネットワーク設定†
LANG:console $ ifconfig ... inet addr:10.0.2.15 ...
とのことなので、ホストPCの PuTTY からこのアドレスに繋ぎに行ったところ繋がらなかった。
LANG:console $ shutdown 0
にて一旦仮想マシンを落とし、Virtual Box, Windows および Ubuntu のネットワーク設定を行う。
Virtual Box†
Virtual Box にて仮想マシンの右クリックから [設定]
ネットワークアダプタ2にホストオンリーアダプタを設定する。
Windows 10†
Windows ボタンを押して control と打ってコントロールパネルを起動
[共有] タブにて [ネットワークのほかのユーザーに、このコンピューターのインターネット接続をとおしての接続を許可する(N)] にチェックを付ける。
1つ戻って、IPv4 をダブルクリックすると、
IPアドレス範囲が 192.168.56.0-255 であることが確認できる。
Ubuntu†
LANG:console $ export LANG=C $ ifconfig -a ... enp0s8 Link encap:Ethernet HWaddr 08:00:27:7d:e7:f9 ... $ sudo vi /etc/network/interfaces $ cd /etc $ sudo git diff network/interfaces diff --git a/network/interfaces b/network/interfaces index 4afd144..931a40e 100644 --- a/network/interfaces +++ b/network/interfaces @@ -10,3 +10,7 @@ iface lo inet loopback # The primary network interface auto enp0s3 iface enp0s3 inet dhcp + +# The host only network interface +auto enp0s8 +iface enp0s8 inet dhcp $ sudo service networking restart $ ifconfig ... enp0s8 Link encap:Ethernet HWaddr 08:00:27:7d:e7:f9 inet addr:192.168.56.101 Bcast:192.168.56.255 Mask:255.255.255.0 ...
ということで、PuTTY から 192.168.56.101 へ繋ぎに行ったらちゃんと繋がった
必要なパッケージを Ubuntu へインストール†
(xilinx2018_3 のところは適当に変えて) の Quick Installation of Packages を参考にして、 Petalinux を動かすのに必要なパッケージを導入する。
LANG:console $ 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
Petalinux をインストール†
インストーラのダウンロード†
https://japan.xilinx.com/products/design-tools/embedded-software/petalinux-sdk.html
の右側のクイックリンクから、「Petalinux のダウンロード」をクリック。
訳の分からないページに飛ばされて面食らうのだけれど、 目的のものは「エンベッド開発」の中にあった。
Xilinx にサインインして、個人情報の Verification をすると自動でダウンロードが始まる。
ダウンロードしたのは、
- PetaLinux 2018.3 インストーラー(TAR/GZIP - 6.79GB)
- PetaLinux 2018.3 ライセンスおよび著作権情報
「sstate キャッシュ」というのを入れておくと Petalinux を完全にオフラインでも使えるようになる、 と書かれていたけど、ここではとりあえずスキップした。
インストーラを Ubuntu から読めるようにする†
ホストPCにダウンロードしてしまったため、 これを Ubuntu 側から読めるようにしないと動かせない。
VirtualBox コンソールの右下のフォルダアイコンで右クリックし、「共有フォルダー設定...」を選択。
[ダウンロード] フォルダを Downloads という名前で共有する。
Ubuntu に VirtualBox のゲストシステム用のツールをインストールし、 上記フォルダをマウントする。
LANG:console $ sudo apt install virtualbox-guest-dkms $ mkdir downloads $ sudo mount -t vboxsf Downloads downloads/ $ ls downloads/petalinux-v2018.3-* downloads/petalinux-v2018.3-final-installer.run downloads/petalinux-v2018.3-license.tar.gz downloads/petalinux-v2018.3-open_components.tar.gz
インストーラを起動†
の "Run PetaLinux Tools Installer" に
- You cannot install the tool as root user.
- You can install at any desired location that has the 755 permissions.
- Once installed, you cannot move or copy the installed directory.
- By default, the webtalk option is enabled to send tools usage statistics back to Xilinx.
- You can turn off the webtalk feature by running the petalinux-util --webtalk command
LANG:console $ petalinux-util --webtalk off
の注意書きがあることを心に留めておく。
始め ~/petalinux_2018.3 にインストールすることを試みたのだけれど、 下に詳しく書いたように暗号化ファイルシステムへ aarch64 Yocto SDK をインストールしようとすると途中で "File name too long" のエラーが出て止ってしまう。
仕方がないのでリファレンスマニュアルと同様 /opt 以下にインストールすることにした。
LANG:console $ sudo mkdir -p /opt/petalinux_2018.3 $ sudo chown takeuchi:takeuchi /opt/petalinux_2018.3 $ cd $ downloads/petalinux-v2018.3-final-installer.run /opt/petalinux_2018.3 INFO: Checking installation environment requirements...(3分くらい待たされる) 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...(2分くらい待たされる) INFO: Extracting PetaLinux installer...(10分くらい待たされる) 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(Enterを押す) (内容を確認したら "q" を押す) Do you accept Xilinx End User License Agreement? [y/N] > y(Enterを押す) (内容を確認したら "q" を押す) Do you accept Webtalk Terms and Conditions? [y/N] > y(Enterを押す) (内容を確認したら "q" を押す) Do you accept Third Party End User License Agreement? [y/N] >y(Enterを押す) INFO: Installing PetaLinux...(4分半くらい待たされる) INFO: Checking PetaLinux installer integrity...(1分半くらい待たされる) INFO: Installing PetaLinux SDK to "./petalinux_2018.3/." (7分くらい待たされる) INFO: Installing aarch64 Yocto SDK to "./petalinux_2018.3/./components/yocto/source/aarch64"...(1分くらい) INFO: Installing arm Yocto SDK to "/opt/petalinux_2018.3/./components/yocto/source/arm"...(1分半くらい) INFO: Installing microblaze_full Yocto SDK to "/opt/petalinux_2018.3/./components/yocto/source/microblaze_full"...(2分くらい) INFO: Installing microblaze_lite Yocto SDK to "/opt/petalinux_2018.3/./components/yocto/source/microblaze_lite"...(1分くらい) INFO: PetaLinux SDK has been installed to /opt/petalinux_2018.3/. $ du -sh /opt/petalinux_2018.3 14G /opt/petalinux_2018.3
ということで、インストールできた。
/opt/petalinux_2018.3 は 14GB くらいになっている。
暗号化ファイルシステムへインストールしようとするとエラーで止る†
Ubuntu インストール時に、ホーム領域を暗号化するよう選んだのだけれど、 そのために ~/ 以下に Petalinux をインストールしようとすると、
LANG:console $ cd $ mkdir petalinux_2018.3 $ downloads/petalinux-v2018.3-final-installer.run /opt/petalinux_2018.3 ... INFO: Installing aarch64 Yocto SDK to "./petalinux_2018.3/./components/yocto/source/aarch64"... ********************************************* ERROR: Failed to install Yocto SDK for aarch64. ********************************************* Please refer to the PetaLinux Tools Installation Guide. Check the troubleshooting guide at the end of that manual, and if you are unable to resolve the issue please contact customer support with file: /home/takeuchi/petalinux_installation_log $ tail -10 /home/takeuchi/petalinux_installation_log ... INFO: Installing aarch64 Yocto SDK to "./petalinux_2018.3/./components/yocto/source/aarch64"... PetaLinux Extensible SDK installer version 2018.3 ================================================= You are about to install the SDK to "/home/takeuchi/petalinux_2018.3/components/yocto/source/aarch64". Proceed[Y/n]? Y Extracting SDK..........tar: ./sstate-cache/8c/sstate\:linux-xlnx\:zynqmp_generic-xilinx-linux\:4.14-xilinx-v2018.3+gitAUTOINC+eeab73d120\:r0\:zynqmp_generic\:3\:8c03d3549442fefdae49621db9597267_deploy.tgz: Cannot open: File name too long ...
のように "File name too long" というエラーで止ってしまう。
https://forums.xilinx.com/t5/Embedded-Linux/Petalinuxv2018-3-installation-Error/td-p/924156
Re: Petalinuxv2018.3 installation Error
SOLVED: The reason I was receiving this error was because I had an encrypted file system mainly my home directory. I solved this issue by chaining the absolute path of the install folder to an arbitrary directory outside of home.
にあるように、暗号化ファイルシステムを使っちゃダメらしい。
というわけで、30分近くかけた作業が始めからやり直しになっちゃった orz
こういうのは始めの方でチェックするようにして欲しいなあ。
環境変数の読み込み†
Petalinux の環境変数を整えるには /opt/petalinux_2018.3/settings.sh を読めば良い。
LANG:console $ source /opt/petalinux_2018.3/settings.sh PetaLinux environment set to '/opt/petalinux_2018.3' 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 WARNING: No tftp server found - please refer to "PetaLinux SDK Installation Guide" for its impact and solution $ petalinux-(TABキー) petalinux-boot petalinux-config petalinux-package petalinux-build petalinux-create petalinux-util $
/bin/sh が bash じゃない! と文句を言われたけど、動作には問題ないみたい。
Zynq‐7000 システムで Linux をブートするためのハードウェア要件†
- 1 個のト リプルタイマーカウンター (TTC) (必須)
複数の TTC を有効にした場合、Zynq-7000 Linux カーネルはデバイスツリーの最初の TTC ブロックを使用します。 この TTC がほかで使用されていないことを確認する必要があります。
- 外部メモリコントローラーと 32MB 以上のメモリ (必須)
- UART (必須)
重要:ソフト IP を使用する場合、 割り込み信号を接続する必要があります。
- QSPI フラッシュ、SD/MMC などの不揮発性メモリ (オプション)
- イーサネット (オプション。 ネットワークアクセスを利用する場合は必須)
重要:ソフト IP または外部 PHY デバイスで割り込みを使用する場合、 割り込み信号を接続する必要があります。
後で試す†
- FPGA Regionを使ってZYNQのPLを変更する https://okchan08.hateblo.jp/entry/zynq-fpga_region
- out‐of‐treeビルド
ZynqのLinux kernelを更新する https://okchan08.hateblo.jp/entry/2019/02/03/200000 とも関連するのかな?PetaLinux には、 最新版のカーネル/U-Boot ソースコードをGitリポジト リから自動的にダウンロードする機能があります。