Skip to content
This repository was archived by the owner on Nov 28, 2025. It is now read-only.

Commit 48cfb9b

Browse files
xilzcu102-boot-from-jtag: rebased to v0.2.0
Changelog: - Fixed #94 - Fixed !186 - Moved remaining `tools` content to `util` folder - Update boog_jtag.sh. Added `NO_IIS` environment option - Update reset_jtag.sh. Added `NO_IIS` environment option - Fix after code review (!186) - Fixed boot with NFS Rootfs and DHCP - Fixed major issue on buildroot network configuration in case of usage of NFS rootfs and DHCP. - Fixed also minor problem related to local.cfg file parsing. Petalinux build was not able to skip commented (\#) configurations. - Fix #114 - Fixed petalinux script for booting in different configurations (SD and JTAG mainly
1 parent 57d1129 commit 48cfb9b

9 files changed

Lines changed: 425 additions & 9 deletions

File tree

Config.in

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,3 +30,23 @@ config BR2_HERO_EXT_MOUNT
3030
Binds system to the filesystem. Options can be specified
3131
before (with -o) as the options are completely forwarded to
3232
mount. Leave empty to not mount external partition.
33+
34+
config BR2_HERO_ETH_IP_ADDR
35+
string "Optional static IP address for the Host"
36+
help
37+
Static IP address. Leave empty to use DHCP.
38+
39+
config BR2_HERO_ETH_NETMASK
40+
string "Optional static IP netmask"
41+
help
42+
Static netmask. Only considered when static IP address is set.
43+
44+
config BR2_HERO_ETH_GATEWAY
45+
string "Optional static IP gateway"
46+
help
47+
Static gateway. Only considered when static IP address is set.
48+
49+
config BR2_HERO_ETH_DNS
50+
string "Optional static IP DNS"
51+
help
52+
Static DNS server. Only considered when static IP address is set.

README.md

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -187,7 +187,10 @@ insmod /run/media/mmcblk0p2/lib/modules/4.19.0/extra/pulp.ko
187187
```
188188
after every reboot. The kernel messages on the serial terminal will inform you about the outcome (it should end with `PULP: Device registered.` if successful).
189189

190-
Finally, to develop applications for this setup, initialize the environment on your development workstation with `source env/exilzcu102.sh`. Afterwards applications can be built with the provided `Makefile`s and transferred to the board with `scp`.
190+
Users can enable NFS-based RootFS by configuring in `local.cfg` the following variables: `PT_NFSSERVER_IP="<server_ip>"`, `PT_ROOTFS_NFS="y"`, `PT_NFSROOT_DIR="</path/to/nfs/rootfs>"`. The configurations will be propagated in the Petalinux build process, thus such variables must be set before the `make br-har-exilzcu102` command execution.
191+
Additional information about IP configuration, and about to how to boot Linux without SD card (using JTAG) can be found [here](doc/BootZCU102WithoutSDCard.md).
192+
193+
To develop applications for this setup, initialize the environment on your development workstation with `source env/exilzcu102.sh`. Afterwards applications can be built with the provided `Makefile`s and transferred to the board with `scp` or using NFS.
191194

192195
##### QEMU RISC-V
193196

board/common/overlay/etc/network/interfaces

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,4 +3,8 @@ auto lo
33
iface lo inet loopback
44

55
auto eth0
6-
iface eth0 inet dhcp
6+
iface eth0 inet dhcp
7+
pre-up /etc/network/nfs_check
8+
wait-delay 15
9+
hostname $(hostname)
10+

board/common/post_build.sh

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,3 +17,40 @@ if [ ! -z "$AUTH_KEYS" ]; then
1717
mkdir -p ${TARGET_DIR}/root/.ssh/
1818
cp $AUTH_KEYS ${TARGET_DIR}/root/.ssh/authorized_keys
1919
fi
20+
21+
echo "Setup Networking ${BR2_CONFIG}"
22+
IP_ADDR=$(grep BR2_HERO_ETH_IP_ADDR ${BR2_CONFIG} | sed -e 's/.*=//' -e 's/^"//' -e 's/"$//')
23+
if [ ! -z "$IP_ADDR" ]; then
24+
IP_NETMASK=$(grep BR2_HERO_ETH_NETMASK ${BR2_CONFIG} | sed -e 's/.*=//' -e 's/^"//' -e 's/"$//')
25+
IP_GATEWAY=$(grep BR2_HERO_ETH_GATEWAY ${BR2_CONFIG} | sed -e 's/.*=//' -e 's/^"//' -e 's/"$//')
26+
IP_DNS=$(grep BR2_HERO_ETH_DNS ${BR2_CONFIG} | sed -e 's/.*=//' -e 's/^"//' -e 's/"$//')
27+
28+
echo " IP........$IP_ADDR"
29+
echo " Netmask...$IP_NETMASK"
30+
echo " Gateway...$IP_GATEWAY"
31+
echo " DNS.......$IP_DNS"
32+
33+
rm -rf ${TARGET_DIR}/etc/network/interfaces
34+
echo "
35+
# configure eth0 with static IP
36+
auto lo
37+
iface lo inet loopback
38+
39+
auto eth0
40+
iface eth0 inet static
41+
address $IP_ADDR
42+
netmask $IP_NETMASK
43+
gateway $IP_GATEWAY
44+
pre-up /etc/network/nfs_check
45+
wait-delay 15
46+
hostname $(hostname)
47+
48+
" > ${TARGET_DIR}/etc/network/interfaces
49+
50+
rm -rf ${TARGET_DIR}/etc/resolv.conf
51+
echo "nameserver $IP_DNS" > ${TARGET_DIR}/etc/resolv.conf
52+
53+
else
54+
echo " IP........DHCP"
55+
fi
56+

doc/BootZCU102WithoutSDCard.md

Lines changed: 119 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,119 @@
1+
# HERO Boot from JTAG+TFTPBOOT+NFS (w/o SDCard)
2+
3+
## Intro
4+
This tutorial shows how to boot the HERO ecosystem on the ZCU102 instance without the usage of SDCard. JTAG will be used to boot FSBL and U-Boot. Linux kernel, which is quite bigger, is loaded through TFTP, while RootFS is exported using NFS. This tutorial will use also static IP for the HERO board.
5+
6+
## 1. Prerequisite
7+
### 1.1. Setup JTAG Boot
8+
Setup the switch on the ZCU102 for JTAG boot (See [https://www.xilinx.com/support/answers/68682.html](https://www.xilinx.com/support/answers/68682.html)).
9+
10+
11+
### 1.2. Setup TFTPBOOT and NFS Server
12+
First, you need to set up your TFT and NFS server. If you have already a TFTP and NFS server installed you can skip this pass.
13+
#### 1.2.1 Install TFTPBOOT and NFS Server packages (Ubuntu)
14+
```
15+
sudo apt update
16+
sudo apt install -y tftpd-hpa nfs-kernel-server
17+
```
18+
19+
#### 1.2.2 Setup NFS Folder
20+
Edit the file `/etc/exports` adding the following line to export an NFS folder (i.e. `/opt/hero/rootfs`) to the HERO board:
21+
```
22+
/opt/hero/rootfs <hero_ip>(rw,nohide,insecure,no_subtree_check,async,no_root_squash)
23+
24+
```
25+
After the file modification, you should execute the command `sudo exportfs -ra` to activate the new configuration.
26+
27+
#### 1.2.3. Setup TFTP Folder
28+
By default, the tftpboot shared folder is located at `/var/lib/tftpboot`. You can select another folder changing in the file `/etc/default/tftpd-hpa` the value of `TFTP_DIRECTORY` (i.e. `TFTP_DIRECTORY="/opt/tftpboot"`). You need also to setup the `--create` to `TFTP_OPTIONS`.
29+
30+
Here an example of `/etc/default/tftpd-hpa`:
31+
```
32+
# /etc/default/tftpd-hpa
33+
34+
TFTP_USERNAME="tftp"
35+
TFTP_DIRECTORY="/opt/tftpboot"
36+
TFTP_ADDRESS=":69"
37+
TFTP_OPTIONS="--secure --create"
38+
```
39+
40+
Then we create the target folder for HERO and we restart the service to update the configuration.
41+
```
42+
sudo mkdir -p /opt/tftpboot
43+
sudo chown root:nogroup /opt/tftpboot
44+
sudo chmod 777 /opt/tftpboot
45+
sudo systemctl restart tftpd-hpa
46+
```
47+
## 2. Setup and Build Custom Configuration of HERO
48+
### 2.1 Setup custom local.cfg
49+
You should modify the `local.cfg` as follow:
50+
```
51+
#
52+
# Buildroot Custom Configurations
53+
#
54+
BR2_HERO_BITSTREAM="<path/to/hero/bistream.bit>"
55+
BR2_HERO_ETH_IP_ADDR="<hero_ip>"
56+
BR2_HERO_ETH_NETMASK="<netmask>"
57+
BR2_HERO_ETH_GATEWAY="<gateway_ip>"
58+
BR2_HERO_ETH_DNS="<dnsserver_ip>"
59+
60+
#
61+
# Petalinux Custom Configurations
62+
#
63+
PT_NFSSERVER_IP="<server_ip>"
64+
PT_ROOTFS_NFS="y"
65+
PT_NFSROOT_DIR="/opt/rootfs"
66+
PT_TFTPBOOT_DIR="/opt/tftpboot"
67+
```
68+
All the `BR2_HERO_ETH_*` values are optional in case you want to use DHCP.
69+
70+
### 2.2 Build HERO Environment
71+
In case it is your first build you can build all you need using the following command:
72+
```
73+
make har-exilzcu102
74+
```
75+
76+
Otherwise, if you had already built all toolchain and the auxiliary environment, you can execute the following command to re-build only the Linux Kernel and the RootFS:
77+
```
78+
make br-har-exilzcu102
79+
```
80+
81+
After the build you need to install the generated files into the NFS and TFTP shared folders:
82+
```
83+
cp output/br-har-exilzcu102/images/Image $PT_TFTPBOOT_DIR
84+
cp output/br-har-exilzcu102/images/system.dtb $PT_TFTPBOOT_DIR
85+
tar -xf output/br-har-exilzcu102/images/rootfs.tar -C $PT_NFSROOT_DIR
86+
```
87+
88+
Note, you can automatically install the generated files executing the following command:
89+
```
90+
util/xsdb/install_tftp_nfs_rootfs.sh
91+
```
92+
93+
### 2.3 Boot U-Boot from JTAG
94+
You can boot FSBL and U-Boot using the following Petalinux command:
95+
```
96+
cd petalinux/zcu102
97+
petalinux-boot --jtag --U-Boot --fpga --bitstream <path/to/hero-bistream.bit> -v --hw_server-url <hwserver_ip>:<hwserver_port>
98+
```
99+
Or you can use the following command:
100+
```
101+
util/xsdb/boot_jtag.sh -i <hwserver_ip> -p <hwserver_port>
102+
```
103+
104+
The boot process takes around 5 minutes. After that, you can access to the U-Boot prompt connecting to the UART port of the board.
105+
106+
107+
### 2.4 Setting U-Boot Bootargs and Boot Linux Kernel (Finally!)
108+
From the U-Boot prompt you need to fix the `bootargs` (due to some problem of petalinux to generate a correct configuration). Here the comand you should execute inside the prompt of U-Boot (adjust with your local configuration):
109+
```
110+
setenv tftpblocksize 512
111+
setenv bootargs console=ttyPS0,115200n8 earlycon clk_ignore_unused ip=<hero_ip>:<server_ip>:<gateway_ip>:<netmask>::eth0:off root=/dev/nfs rootfstype=nfs nfsroot=<server_ip>:/opt/hero/rootfs,tcp,nolock,nfsvers=3 rw
112+
```
113+
114+
Now you are able to boot Linux triggering the following list of commands inside the U-Boot prompt:
115+
```
116+
tftpb 0x200000 Image
117+
tftpb 0x7000000 system.dtb
118+
booti 0x200000 - 0x7000000 ${bootargs}
119+
```

petalinux/zcu102.sh

Lines changed: 75 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@ python3.6 -m venv .venv
3030
ln -sf python3.6 .venv/bin/python3
3131
source .venv/bin/activate
3232

33+
# Read Petalinux name
3334
if [ -n "$NO_IIS" ]; then
3435
PETALINUX_VER=''
3536
else
@@ -58,19 +59,86 @@ cd linux-xlnx
5859
git checkout tags/xilinx-v2019.2.01
5960

6061
cd ../../../
61-
sed -i 's|CONFIG_SUBSYSTEM_COMPONENT_LINUX__KERNEL_NAME_LINUX__XLNX||' project-spec/configs/config
62-
sed -i 's|CONFIG_SUBSYSTEM_ROOTFS_INITRAMFS||' project-spec/configs/config
63-
echo 'CONFIG_SUBSYSTEM_ROOTFS_SD=y' >> project-spec/configs/config
62+
sed -i 's|CONFIG_SUBSYSTEM_COMPONENT_LINUX__KERNEL_NAME_LINUX__XLNX.*||' project-spec/configs/config
6463
echo 'CONFIG_SUBSYSTEM_COMPONENT_LINUX__KERNEL_NAME_EXT__LOCAL__SRC=y' >> project-spec/configs/config
6564
echo 'CONFIG_SUBSYSTEM_COMPONENT_LINUX__KERNEL_NAME_EXT_LOCAL_SRC_PATH="${TOPDIR}/../components/ext_sources/linux-xlnx"' >> project-spec/configs/config
66-
echo 'CONFIG_SUBSYSTEM_SDROOT_DEV="/dev/mmcblk0p2"' >> project-spec/configs/config
65+
sed -i 's|CONFIG_SUBSYSTEM_MACHINE_NAME.*||' project-spec/configs/config
6766
echo 'CONFIG_SUBSYSTEM_MACHINE_NAME="zcu102-revb"' >> project-spec/configs/config
6867

69-
if [ -f "$LOCAL_CFG" ] && grep -q PT_ETH_MAC "$LOCAL_CFG"; then
70-
sed -e 's/PT_ETH_MAC/CONFIG_SUBSYSTEM_ETHERNET_PSU_ETHERNET_3_MAC/;t;d' "$LOCAL_CFG" >> project-spec/configs/config
68+
# Cleanup All RootFS Options
69+
sed -i 's|CONFIG_SUBSYSTEM_ROOTFS_INITRAMFS.*||' project-spec/configs/config
70+
sed -i 's|CONFIG_SUBSYSTEM_ROOTFS_INITRD.*||' project-spec/configs/config
71+
sed -i 's|CONFIG_SUBSYSTEM_ROOTFS_JFFS2.*||' project-spec/configs/config
72+
sed -i 's|CONFIG_SUBSYSTEM_ROOTFS_JFFS2.*||' project-spec/configs/config
73+
sed -i 's|CONFIG_SUBSYSTEM_ROOTFS_NFS.*||' project-spec/configs/config
74+
sed -i 's|CONFIG_SUBSYSTEM_ROOTFS_OTHER.*||' project-spec/configs/config
75+
76+
# Select RootFS Option (Default: SD_CARD)
77+
nfsrootfs="$("$HERO_ROOT/util/configfile/get_value" -s "$LOCAL_CFG" PT_ROOTFS_NFS \
78+
| tr -d '"')";
79+
if ! [[ $nfsrootfs == "y" ]]; then
80+
# SD-CARD
81+
echo 'CONFIG_SUBSYSTEM_ROOTFS_SD=y' >> project-spec/configs/config
82+
echo 'CONFIG_SUBSYSTEM_SDROOT_DEV="/dev/mmcblk0p2"' >> project-spec/configs/config
83+
else
84+
# NFS ROOTFS
85+
nfsrootdir="$("$HERO_ROOT/util/configfile/get_value" -s "$LOCAL_CFG" PT_NFSROOT_DIR)";
86+
if [ -z $nfsrootdir ]; then
87+
>&2 echo "Error: PT_NFSROOT_DIR is not defined in '$LOCAL_CFG'!"
88+
exit 1
89+
fi
90+
nfsserverip="$("$HERO_ROOT/util/configfile/get_value" -s "$LOCAL_CFG" PT_NFSSERVER_IP \
91+
| tr -d '"')";
92+
if [ -z $nfsserverip ]; then
93+
>&2 echo "Error: PT_NFSSERVER_IP is not defined in '$LOCAL_CFG'!"
94+
exit 1
95+
fi
96+
set -e
97+
echo "CONFIG_SUBSYSTEM_ROOTFS_NFS=$nfsrootfs" >> project-spec/configs/config
98+
echo "CONFIG_SUBSYSTEM_NFSROOT_DIR=$nfsrootdir" >> project-spec/configs/config
99+
echo "CONFIG_SUBSYSTEM_NFSSERVER_IP=$nfsserverip" >> project-spec/configs/config
71100
fi
72101

73-
$PETALINUX_VER petalinux-config --oldconfig --get-hw-description "$HERO_ROOT/hardware/fpga/hero_exil$TARGET/hero_exil$TARGET.sdk"
102+
# Ethernet Settings
103+
104+
# Set MAC address if specified
105+
sed -i 's|CONFIG_SUBSYSTEM_ETHERNET_PSU_ETHERNET_3_MAC.*||' project-spec/configs/config
106+
eth_mac="$("$HERO_ROOT/util/configfile/get_value" -s "$LOCAL_CFG" PT_ETH_MAC \
107+
| tr -d '"')";
108+
if ! [ -n $eth_mac ]; then
109+
echo "CONFIG_SUBSYSTEM_ETHERNET_PSU_ETHERNET_3_MAC=$eth_mac" >> project-spec/configs/config
110+
else
111+
echo "CONFIG_SUBSYSTEM_ETHERNET_PSU_ETHERNET_3_MAC=\"ff:ff:ff:ff:ff:ff\"" >> project-spec/configs/config
112+
fi
113+
114+
# Set IP Configuration
115+
sed -i 's|CONFIG_SUBSYSTEM_ETHERNET_PSU_ETHERNET_3_USE_DHCP=y||' project-spec/configs/config
116+
ip="$("$HERO_ROOT/util/configfile/get_value" -s "$LOCAL_CFG" BR2_HERO_ETH_IP_ADDR \
117+
| tr -d '"')";
118+
if [ -z $ip ]; then
119+
# DHCP
120+
echo 'CONFIG_SUBSYSTEM_ETHERNET_PSU_ETHERNET_3_USE_DHCP=y' >> project-spec/configs/config
121+
else
122+
# Static IP Configuration
123+
echo '# CONFIG_SUBSYSTEM_ETHERNET_PSU_ETHERNET_3_USE_DHCP is not set' >> project-spec/configs/config
124+
set +e
125+
netmask="$("$HERO_ROOT/util/configfile/get_value" -s "$LOCAL_CFG" BR2_HERO_ETH_NETMASK \
126+
| tr -d '"')";
127+
if [ -z $netmask ]; then
128+
>&2 echo "Error: BR2_HERO_ETH_NETMASK is not defined in '$LOCAL_CFG'!"
129+
exit 1
130+
fi
131+
gateway="$("$HERO_ROOT/util/configfile/get_value" -s "$LOCAL_CFG" BR2_HERO_ETH_GATEWAY \
132+
| tr -d '"')";
133+
if [ -z $gateway ]; then
134+
>&2 echo "Error: BR2_HERO_ETH_GATEWAY is not defined in '$LOCAL_CFG'!"
135+
exit 1
136+
fi
137+
set -e
138+
echo "CONFIG_SUBSYSTEM_ETHERNET_PSU_ETHERNET_3_IP_ADDRESS=$ip" >> project-spec/configs/config
139+
echo "CONFIG_SUBSYSTEM_ETHERNET_PSU_ETHERNET_3_IP_NETMASK=$netmask" >> project-spec/configs/config
140+
echo "CONFIG_SUBSYSTEM_ETHERNET_PSU_ETHERNET_3_IP_GATEWAY=$gateway" >> project-spec/configs/config
141+
fi
74142

75143
echo "
76144
/include/ \"system-conf.dtsi\"

util/xsdb/boot_jtag.sh

Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
1+
#!/usr/bin/env bash
2+
3+
this_dir=$(dirname "$(readlink -f "${BASH_SOURCE[0]}")")
4+
hero_root_dir="${this_dir}/../.."
5+
6+
hero_config_file=${hero_root_dir}/local.cfg # HERO Config File
7+
hero_petalinux_dir=${hero_root_dir}/petalinux/zcu102 # HERO Petalinux Folder
8+
9+
usage () {
10+
echo "Usage: $0 [-h | -i <hw_server_ip> | -p <hw_server_port>] -- Boot u-boot from XSDB/JTAG"
11+
echo "Arguments:"
12+
echo " -h Show this help text"
13+
echo " -i <hw_server_ip> Xilinx HW Server IP (default: 127.0.0.1)"
14+
echo " -p <hw_server_port> Xilinx HW Server Port (default: 3121)"
15+
exit 0
16+
}
17+
18+
# HW Server Default Configuration
19+
hw_server_ip=127.0.0.1
20+
hw_server_port=3121
21+
22+
while getopts "hi:p:" option; do
23+
case "$option" in
24+
i) hw_server_ip="$OPTARG" ;;
25+
p) hw_server_port="$OPTARG" ;;
26+
h) # it's always useful to provide some help
27+
usage
28+
exit 0
29+
;;
30+
:) echo "Error: -$OPTARG requires an argument"
31+
usage
32+
exit 1
33+
;;
34+
?) echo "Error: unknown option -$OPTARG"
35+
usage
36+
exit 1
37+
;;
38+
esac
39+
done
40+
41+
if [ -n "$NO_IIS" ]; then
42+
PETALINUX_VER=''
43+
else
44+
if [ -z "$PETALINUX_VER" ]; then
45+
PETALINUX_VER="vitis-2019.2"
46+
fi
47+
fi
48+
readonly PETALINUX_VER
49+
50+
# Boot HERO from JTAG
51+
eval hero_bitstream=$(grep BR2_HERO_BITSTREAM ${hero_config_file} | sed 's/.*=//' | tr -d '"')
52+
if [ -z "${hero_bitstream}" ]; then
53+
echo "ERROR: please set BR2_HERO_BITSTREAM in local.cfg file"
54+
else
55+
cd ${hero_petalinux_dir}
56+
echo "Booting Petalinux project: ${hero_petalinux_dir}"
57+
echo "HW Server: ${hw_server_ip}:${hw_server_port} Bitstream: ${hero_bitstream}"
58+
$PETALINUX_VER petalinux-boot --jtag -v --hw_server-url tcp:${hw_server_ip}:${hw_server_port} --u-boot --fpga --bitstream ${hero_bitstream}
59+
fi
60+
61+
# That's all folks!!
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
#!/usr/bin/env bash
2+
THIS_DIR=$(dirname "$(readlink -f "${BASH_SOURCE[0]}")")
3+
4+
CONFIG_FILE=$THIS_DIR/../../local.cfg
5+
OUTPUT_DIR=$THIS_DIR/../../output
6+
7+
if [ -f ${CONFIG_FILE} ] && grep -q PT_TFTPBOOT_DIR ${CONFIG_FILE}; then
8+
eval TFTPBOOT_DIR=$(grep PT_TFTPBOOT_DIR ${CONFIG_FILE} | sed 's/.*=//' | tr -d '"')
9+
echo "Installing Boot Files: ${OUTPUT_DIR}/br-har-exilzcu102/images/ -> $TFTPBOOT_DIR"
10+
cp ${OUTPUT_DIR}/br-har-exilzcu102/images/Image $TFTPBOOT_DIR
11+
cp ${OUTPUT_DIR}/br-har-exilzcu102/images/system.dtb $TFTPBOOT_DIR
12+
else
13+
echo "Installing Boot Files: SKIPPED (PT_TFTPBOOT_DIR is not set in local.cfg)"
14+
fi
15+
16+
if [ -f ${CONFIG_FILE} ] && grep -q PT_NFSROOT_DIR ${CONFIG_FILE}; then
17+
eval NFSROOT_DIR=$(grep PT_NFSROOT_DIR ${CONFIG_FILE} | sed 's/.*=//' | tr -d '"')
18+
echo "Installing Host RootFS: ${OUTPUT_DIR}/br-har-exilzcu102/images/rootfs.tar -> $NFSROOT_DIR"
19+
tar -xf ${OUTPUT_DIR}/br-har-exilzcu102/images/rootfs.tar -C $NFSROOT_DIR
20+
echo "Installing HERO RootFS: ${OUTPUT_DIR}/har-rootfs.tar -> $NFSROOT_DIR/mnt"
21+
tar -xf ${OUTPUT_DIR}/har-rootfs.tar -C $NFSROOT_DIR/mnt
22+
else
23+
echo "Installing RootFS: SKIPPED (PT_NFSROOT_DIR is not set in local.cfg)"
24+
fi
25+
26+
# That's all folks!!

0 commit comments

Comments
 (0)