Skip to main content

PetaLinux v2019.1 on Ubuntu 18.04 LTS

Although Xilinx PetaLinux officially supports the Ubuntu 18.04 LTS GNU/Linux distribution, there is a small glitch in the installation procedure. Following UG1144 the installation aborts like this:

dzu@zarniwoop:~/Downloads$ bash
INFO: Checking installation environment requirements...
awk: read error (Bad address)

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/dzu/Downloads/petalinux_installation_log line 140: /tmp/tmp.rlFbcgKOQZ/petalinux-env-check: No such file or directory
ERROR: Failed to extract Petalinux installer...

The fix is rather straightforward and easy, but I'll include the explanation for a better understanding.

So the error is thrown by the awk tool which first appeared on the scene 42 years ago in 1977. It is certainly amazing that tools of that age are still used for non-legacy things, but why exactly does it prevent us from installing PetaLinux to our machine?

Searching for the answer leads us into the Debian alternatives system:

dzu@zarniwoop:~/Downloads$ awk --version
awk: not an option: --version
dzu@zarniwoop:~/Downloads$ ls -l /usr/bin/awk
lrwxrwxrwx 1 root root 21 May 28 17:17 /usr/bin/awk -> /etc/alternatives/awk
dzu@zarniwoop:~/Downloads$ ls -l /etc/alternatives/awk
lrwxrwxrwx 1 root root 13 May 28 17:17 /etc/alternatives/awk -> /usr/bin/mawk

So the default awk flavor of Ubuntu 18.04 is not the continuously improved GNU awk but rather a minimal POSIX compatible implementation called mawk. Xilinx indeed documents the requirement of gawk in UG1144 on page 10, but the same document forgets to mention it in the "Quick Installation of Packages" section for Ubuntu.

So all in all, fixing the problem is straightforward:

dzu@zarniwoop:~/Downloads$ sudo apt install gawk
Reading package lists... Done
Building dependency tree
Reading state information... Done
Suggested packages:
The following NEW packages will be installed:
0 upgraded, 1 newly installed, 0 to remove and 58 not upgraded.
Need to get 401 kB of archives.
After this operation, 1552 kB of additional disk space will be used.
Get:1 bionic/main amd64 gawk amd64 1:4.1.4+dfsg-1build1 [401 kB]
Fetched 401 kB in 0s (1388 kB/s)
Selecting previously unselected package gawk.
(Reading database ... 181794 files and directories currently installed.)
Preparing to unpack .../gawk_1%3a4.1.4+dfsg-1build1_amd64.deb ...
Unpacking gawk (1:4.1.4+dfsg-1build1) ...
Setting up gawk (1:4.1.4+dfsg-1build1) ...
Processing triggers for man-db (2.8.3-2ubuntu0.1) ...

This automatically takes care of installing gawk as the preferred awk flavor and is enough for the PetaLinux installer to run correctly:

dzu@zarniwoop:~/Downloads$ ls -l /etc/alternatives/awk
lrwxrwxrwx 1 root root 13 Dec 29  2018 /etc/alternatives/awk -> /usr/bin/gawk*
dzu@zarniwoop:~/Downloads$ bash
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...


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


Comments powered by Disqus