# O-Cloud Infrastructure (INF) 安裝
###### tags: `Construction`
首先需透過Yocto/OpenEmbedded製作安裝INF所需之inf-image-aio-installer-intel-corei7-64.iso
## Prerequisite for build environment
### 支持的linux發行版
- Ubuntu 16.04 (LTS)
- Ubuntu 18.04
- Fedora 28
- CentOS 7.x
- Debian GNU/Linux 8.x (Jessie)
- Debian GNU/Linux 9.x (Stretch)
- OpenSUSE 42.3
### Host Requirement
- 50 Gbytes 空間
- Git 1.8.3.1 or greater
- tar 1.27 or greater
- Python 3.4.0 or greater
### 需要先安裝的packages
- for Ubuntu 16.04/18.04:
```
$ sudo apt install -y gawk wget git-core diffstat unzip texinfo gcc-multilib \
build-essential chrpath socat cpio python python3 python3-pip python3-pexpect \
xz-utils debianutils iputils-ping make xsltproc docbook-utils fop dblatex xmlto \
python-git vim
```
- for CentOS 7:
```
$ sudo yum install -y epel-release
$ sudo yum makecache
$ sudo yum install gawk make wget tar bzip2 gzip python unzip perl patch \
diffutils diffstat git cpp gcc gcc-c++ glibc-devel texinfo chrpath socat \
perl-Data-Dumper perl-Text-ParseWords perl-Thread-Queue perl-Digest-SHA \
python34-pip xz which SDL-devel xterm
```
可參考以下連結:
[Required Packages for the Build Host](https://www.yoctoproject.org/docs/2.6.3/ref-manual/ref-manual.html#required-packages-for-the-build-host)
## Use wrapper script build_inf.sh to setup build env and build the INF AIO x86 image
- 使用curl 或 wget 指令獲取build inf-image-aio-installer-intel-corei7-64.iso所需之shell script
```
$ curl -o build_inf.sh 'https://gerrit.o-ran-sc.org/r/gitweb?p=pti/rtp.git;a=blob_plain;f=scripts/build_inf.sh;hb=HEAD'
$ wget -O build_inf.sh 'https://gerrit.o-ran-sc.org/r/gitweb?p=pti/rtp.git;a=blob_plain;f=scripts/build_inf.sh;hb=HEAD'
```
- 指定安裝路徑WORKSPACE
```
$ chmod +x build_inf.sh
$ WORKSPACE=/path/to/workspace
$ ./build_inf.sh -w ${WORKSPACE}
ex.
$ ./build_inf.sh -w $HOME
```
### Note
若電腦核心數較少(e.g. core只有4個),此過程長達數十小時,屬正常情形

### 過程中可能遭遇之error
1. 此error可能發生於安裝starlingx image開始前或結束後,原因為無法連至www.example.com的DNS server,解法為改連至google DNS sever
```
WARNING: Host distribution "ubuntu-18.04" has not been validated with this version of the build system; you may possibly experience unexpected failures. It is recommended that you use a tested distribution.
ERROR: OE-core's config sanity checker detected a potential misconfiguration.
Either fix the cause of this error or at your own risk disable the checker (see sanity.conf).
Following is the list of potential problems / advisories:
Fetcher failure for URL: 'https://www.example.com/'. URL https://www.example.com/ doesn't work.
Please ensure your host's network is configured correctly,
or set BB_NO_NETWORK = "1" to disable network access if
all required sources are on local disk.
```
解法:
```
# 修改prj_oran_stx/conf/local.conf內容,添加以下幾行與最後
$ vim prj_oran_stx/conf/local.conf
#check connectivity using google
CONNECTIVITY_CHECK_URIS = "https://www.google.com/"
#skip connectivity checks
CONNECTIVITY_CHECK_URIS = ""
```
```
# NOT WORKING
# Change ${WORKSPACE}/src_layers/poky/meta/conf/distro/include/default-distrovars.inc
CONNECTIVITY_CHECK_URIS ?= "https://www.example.com/"
CONNECTIVITY_CHECK_URIS ?= "https://www.google.com/"
```
2. kubernetes-contrib-v1.18.1 checksum mismatch 問題,問題原因為upstream changed
```
WARNING: kubernetes-1.18.1+git7879fc12a63337efff607952a323df90cdc7a335-r0 do_fetch: Checksum mismatch for local file /home/mwnl/workspace/prj_shared/downloads/kubernetes-contrib-v1.18.1.tar.gz
Cleaning and trying again.
WARNING: kubernetes-1.18.1+git7879fc12a63337efff607952a323df90cdc7a335-r0 do_fetch: Renaming /home/mwnl/workspace/prj_shared/downloads/kubernetes-contrib-v1.18.1.tar.gz to /home/mwnl/workspace/prj_shared/downloads/kubernetes-contrib-v1.18.1.tar.gz_bad-checksum_9aa15af65ed89a7167b9520573bbdcd7
WARNING: kubernetes-1.18.1+git7879fc12a63337efff607952a323df90cdc7a335-r0 do_fetch: Checksum failure encountered with download of https://github.com/kubernetes-retired/contrib/tarball/89f6948e24578fed2a90a87871b2263729f90ac3;downloadfilename=kubernetes-contrib-v1.18.1.tar.gz;name=contrib - will attempt other sources if available
ERROR: kubernetes-1.18.1+git7879fc12a63337efff607952a323df90cdc7a335-r0 do_fetch: Fetcher failure for URL: 'https://github.com/kubernetes-retired/contrib/tarball/89f6948e24578fed2a90a87871b2263729f90ac3;downloadfilename=kubernetes-contrib-v1.18.1.tar.gz;name=contrib'. Checksum mismatch!
File: '/home/mwnl/workspace/prj_shared/downloads/kubernetes-contrib-v1.18.1.tar.gz' has md5 checksum 9aa15af65ed89a7167b9520573bbdcd7 when fc05d9dc693dd71e3afb98fa51419879 was expected
File: '/home/mwnl/workspace/prj_shared/downloads/kubernetes-contrib-v1.18.1.tar.gz' has sha256 checksum 97206b6c1ea8dc7cb6201f909c2d14fc68cf40faa4e2641cdefb8411e9403274 when 0e1c6f70fc167d4ff1f268bbb72a8a91fab9bdeb17cec95bd3bb7fe4f56ebdcb was expected
If this change is expected (e.g. you have upgraded to a new version without updating the checksums) then you can use these lines within the recipe:
SRC_URI[contrib.md5sum] = "9aa15af65ed89a7167b9520573bbdcd7"
SRC_URI[contrib.sha256sum] = "97206b6c1ea8dc7cb6201f909c2d14fc68cf40faa4e2641cdefb8411e9403274"
Otherwise you should retry the download and/or check with upstream to determine if the file has become corrupted or otherwise unexpectedly modified.
ERROR: kubernetes-1.18.1+git7879fc12a63337efff607952a323df90cdc7a335-r0 do_fetch: Fetcher failure for URL: 'https://github.com/kubernetes-retired/contrib/tarball/89f6948e24578fed2a90a87871b2263729f90ac3;downloadfilename=kubernetes-contrib-v1.18.1.tar.gz;name=contrib'. Unable to fetch URL from any source.
ERROR: kubernetes-1.18.1+git7879fc12a63337efff607952a323df90cdc7a335-r0 do_fetch:
ERROR: kubernetes-1.18.1+git7879fc12a63337efff607952a323df90cdc7a335-r0 do_fetch: Function failed: base_do_fetch
ERROR: Logfile of failure stored in: /home/mwnl/workspace/prj_oran_stx/tmp/work/corei7-64-poky-linux/kubernetes/1.18.1+git7879fc12a63337efff607952a323df90cdc7a335-r0/temp/log.do_fetch.23315
NOTE: recipe kubernetes-1.18.1+git7879fc12a63337efff607952a323df90cdc7a335-r0: task do_fetch: Failed
ERROR: Task (/home/mwnl/workspace/src_layers/meta-virtualization/recipes-containers/kubernetes/kubernetes_git.bb:do_fetch) failed with exit code '1'
```
3. cluster-glue-1.0.12-r0 無效的SRC_URL,與前情況類似
```
WARNING: cluster-glue-1.0.12-r0 do_fetch: Failed to fetch URL http://hg.linux-ha.org/glue/archive/glue-1.0.12.tar.bz2, attempting MIRRORS if available
ERROR: cluster-glue-1.0.12-r0 do_fetch: Fetcher failure: Fetch command export PSEUDO_DISABLED=1; unset _PYTHON_SYSCONFIGDATA_NAME; export DBUS_SESSION_BUS_ADDRESS="unix:path=/run/user/1000/bus"; export SSH_AGENT_PID="1175"; export SSH_AUTH_SOCK="/run/user/1000/keyring/ssh"; export GIT_SSL_CAINFO="/home/mwnl/buildtools/sysroots/x86_64-pokysdk-linux/etc/ssl/certs/ca-certificates.crt"; export PATH="/home/mwnl/workspace/prj_oran_stx/tmp/sysroots-uninative/x86_64-linux/usr/bin:/home/mwnl/workspace/src_layers/poky/scripts:/home/mwnl/workspace/prj_oran_stx/tmp/work/corei7-64-poky-linux/cluster-glue/1.0.12-r0/recipe-sysroot-native/usr/bin/x86_64-poky-linux:/home/mwnl/workspace/prj_oran_stx/tmp/work/corei7-64-poky-linux/cluster-glue/1.0.12-r0/recipe-sysroot/usr/bin/crossscripts:/home/mwnl/workspace/prj_oran_stx/tmp/work/corei7-64-poky-linux/cluster-glue/1.0.12-r0/recipe-sysroot-native/usr/sbin:/home/mwnl/workspace/prj_oran_stx/tmp/work/corei7-64-poky-linux/cluster-glue/1.0.12-r0/recipe-sysroot-native/usr/bin:/home/mwnl/workspace/prj_oran_stx/tmp/work/corei7-64-poky-linux/cluster-glue/1.0.12-r0/recipe-sysroot-native/sbin:/home/mwnl/workspace/prj_oran_stx/tmp/work/corei7-64-poky-linux/cluster-glue/1.0.12-r0/recipe-sysroot-native/bin:/home/mwnl/workspace/src_layers/poky/bitbake/bin:/home/mwnl/workspace/prj_oran_stx/tmp/hosttools"; export HOME="/home/mwnl"; /usr/bin/env wget -t 5 -T 60 --waitretry=5 --passive-ftp --no-check-certificate -P /home/mwnl/workspace/prj_shared/downloads 'http://hg.linux-ha.org/glue/archive/glue-1.0.12.tar.bz2' --progress=dot -v failed with exit code 4, output:
--2021-09-27 02:39:10-- http://hg.linux-ha.org/glue/archive/glue-1.0.12.tar.bz2
Resolving hg.linux-ha.org (hg.linux-ha.org)... 78.142.182.100
Connecting to hg.linux-ha.org (hg.linux-ha.org)|78.142.182.100|:80... failed: Connection timed out.
Retrying.
--2021-09-27 02:40:12-- (try: 2) http://hg.linux-ha.org/glue/archive/glue-1.0.12.tar.bz2
Connecting to hg.linux-ha.org (hg.linux-ha.org)|78.142.182.100|:80... failed: Connection timed out.
Retrying.
--2021-09-27 02:41:14-- (try: 3) http://hg.linux-ha.org/glue/archive/glue-1.0.12.tar.bz2
Connecting to hg.linux-ha.org (hg.linux-ha.org)|78.142.182.100|:80... failed: Connection timed out.
Retrying.
--2021-09-27 02:42:17-- (try: 4) http://hg.linux-ha.org/glue/archive/glue-1.0.12.tar.bz2
Connecting to hg.linux-ha.org (hg.linux-ha.org)|78.142.182.100|:80... failed: Connection timed out.
Retrying.
--2021-09-27 02:43:21-- (try: 5) http://hg.linux-ha.org/glue/archive/glue-1.0.12.tar.bz2
Connecting to hg.linux-ha.org (hg.linux-ha.org)|78.142.182.100|:80... failed: Connection timed out.
Giving up.
ERROR: cluster-glue-1.0.12-r0 do_fetch: Fetcher failure for URL: 'http://hg.linux-ha.org/glue/archive/glue-1.0.12.tar.bz2'. Unable to fetch URL from any source.
ERROR: cluster-glue-1.0.12-r0 do_fetch:
ERROR: cluster-glue-1.0.12-r0 do_fetch: Function failed: base_do_fetch
ERROR: Logfile of failure stored in: /home/mwnl/workspace/prj_oran_stx/tmp/work/corei7-64-poky-linux/cluster-glue/1.0.12-r0/temp/log.do_fetch.23324
NOTE: recipe cluster-glue-1.0.12-r0: task do_fetch: Failed
ERROR: Task (/home/mwnl/workspace/src_layers/meta-starlingx/meta-stx-integ/recipes-support/cluster-glue/cluster-glue_1.0.12.bb:do_fetch) failed with exit code '1'
NOTE: Tasks Summary: Attempted 10023 tasks of which 10000 didn't need to be rerun and 2 failed.
```
解法:
```
# go to src_layers/meta-starlingx
# and change as the following
diff --git a/meta-stx-cloud/recipes-support/puppet/puppetlabs-create-resources_git.bb b/meta-stx-cloud/recipes-support/puppet/puppetlabs-create-resources_git.bb
index 7b05ca3..f551304 100644
--- a/meta-stx-cloud/recipes-support/puppet/puppetlabs-create-resources_git.bb
+++ b/meta-stx-cloud/recipes-support/puppet/puppetlabs-create-resources_git.bb
@@ -13,7 +13,7 @@ S = "${WORKDIR}/git"
SRC_URI = " \
- git://github.com/puppetlabs/puppetlabs-create_resources.git;protocol=${PROTOCOL};rev=${SRCREV};branch=${BRANCH} \
+ git://github.com/jackiehjm/puppetlabs-create_resources.git;protocol=${PROTOCOL};rev=${SRCREV};branch=${BRANCH} \
file://${PN}/Add-gemspec.patch \
file://${PN}/metadata.json.patch \
"
diff --git a/meta-stx-integ/recipes-devtools/python/python-google-auth_git.bb b/meta-stx-integ/recipes-devtools/python/python-google-auth_git.bb
index 4258427..ca332a9 100644
--- a/meta-stx-integ/recipes-devtools/python/python-google-auth_git.bb
+++ b/meta-stx-integ/recipes-devtools/python/python-google-auth_git.bb
@@ -6,7 +6,7 @@ LIC_FILES_CHKSUM = file://LICENSE;md5=86d3f3a95c324c9479bd8986968f4327
SRCREV = "1322d896ba725b8d73fd7ac4793601d9f574a839"
PROTOCOL = "https"
-BRANCH = "master"
+BRANCH = "main"
S = "${WORKDIR}/git"
PV = "1.6.3+git${SRCPV}"
# downloads tarballs
cd prj_shared/downloads
wget https://github.com/jackiehjm/staging-stx/raw/jackiehjm/master/dl-mirrors/glue-1.0.12.tar.bz2
touch glue-1.0.12.tar.bz2.done
wget https://github.com/jackiehjm/staging-stx/raw/jackiehjm/master/dl-mirrors/kubernetes-contrib-v1.18.1.tar.gz
touch kubernetes-contrib-v1.18.1.tar.gz.done
```
4. elastic
```
NOTE: Running task 3804 of 17624 (virtual:native:/home/user/src_layers/poky/meta/recipes-support/atk/atk_2.30.0.bb:do_install)
NOTE: recipe atk-native-2.30.0-r0: task do_install: Started
WARNING: monitor-helm-elastic-1.0.0+gitAUTOINC+9450172875-r0 do_fetch: Failed to fetch URL git://github.com/elastic/helm-charts;protocol=https, attempting MIRRORS if available
ERROR: monitor-helm-elastic-1.0.0+gitAUTOINC+9450172875-r0 do_fetch: Fetcher failure: Unable to find revision 945017287598479ba8653d9baf3ff26f7fe31e50 in branch master even from upstream
ERROR: monitor-helm-elastic-1.0.0+gitAUTOINC+9450172875-r0 do_fetch: Fetcher failure for URL: 'git://github.com/elastic/helm-charts;protocol=https'. Unable to fetch URL from any source.
ERROR: monitor-helm-elastic-1.0.0+gitAUTOINC+9450172875-r0 do_fetch:
ERROR: monitor-helm-elastic-1.0.0+gitAUTOINC+9450172875-r0 do_fetch: Function failed: base_do_fetch
ERROR: Logfile of failure stored in: /home/user/prj_oran_stx/tmp/work/all-poky-linux/monitor-helm-elastic/1.0.0+gitAUTOINC+9450172875-r0/temp/log.do_fetch.7911
NOTE: recipe monitor-helm-elastic-1.0.0+gitAUTOINC+9450172875-r0: task do_fetch: Failed
ERROR: Task (/home/user/src_layers/meta-starlingx/meta-stx-flock/stx-monitor-armada-app/monitor-helm-elastic_git.bb:do_fetch) failed with exit code '1'
NOTE: Running task 3805 of 17624 (/home/user/src_layers/meta-openembedded/meta-networking/recipes-filter/libnftnl/libnftnl_1.1.1.bb:do_fetch)
NOTE: recipe libnftnl-1.1.1+gitAUTOINC+d379dfcb6c-r0: task do_fetch: Started
NOTE: recipe atk-native-2.30.0-r0: task do_install: Succeeded
NOTE: recipe libnftnl-1.1.1+gitAUTOINC+d379dfcb6c-r0: task do_fetch: Succeeded
NOTE: recipe etcd-3.3.15+gitAUTOINC+94745a4eed-r0: task do_fetch: Succeeded
NOTE: recipe mariadb-native-10.3.16-r0: task do_compile: Succeeded
NOTE: recipe monitor-helm-1.0.0+gitAUTOINC+92b6289ae9-r0: task do_fetch: Succeeded
NOTE: recipe binutils-cross-x86_64-2.32.0-r0: task do_fetch: Succeeded
NOTE: recipe binutils-native-2.32.0-r0: task do_fetch: Succeeded
NOTE: recipe erlang-R16B03-1-r0: task do_fetch: Succeeded
NOTE: recipe erlang-native-R16B03-1-r0: task do_fetch: Succeeded
NOTE: recipe rocksdb-5.18.2-r0: task do_fetch: Succeeded
NOTE: recipe kubernetes-1.18.1+git7879fc12a63337efff607952a323df90cdc7a335-r0: task do_fetch: Succeeded
NOTE: recipe linux-yocto-rt-5.0.19+gitAUTOINC+7f6e97c357_e6cb812b55-r0: task do_fetch: Succeeded
NOTE: Tasks Summary: Attempted 3805 tasks of which 0 didn't need to be rerun and 1 failed.
Summary: 1 task failed:
/home/user/src_layers/meta-starlingx/meta-stx-flock/stx-monitor-armada-app/monitor-helm-elastic_git.bb:do_fetch
Summary: There were 9 WARNING messages shown.
Summary: There were 4 ERROR messages shown, returning a non-zero exit code.
```
5. go-native OSError Cannot allocate memory (Ubnutu 1604)
```
NOTE: Running task 2602 of 17624 (virtual:native:/home/user/src_layers/poky/meta/recipes-graphics/xorg-lib/libfontenc_1.1.4.bb:do_configure)
NOTE: recipe libfontenc-native-1_1.1.4-r0: task do_configure: Started
ERROR: go-native-1.14.15-r0 do_populate_sysroot: Error executing a python function in exec_python_func() autogenerated:
The stack trace of python calls that resulted in this exception/failure was:
File: 'exec_python_func() autogenerated', lineno: 2, function: <module>
0001:
*** 0002:relocatable_binaries_preprocess(d)
0003:
File: '/home/user/src_layers/poky/meta/classes/relocatable.bbclass', lineno: 6, function: relocatable_binaries_preprocess
0002:
0003:SYSROOT_PREPROCESS_FUNCS += "relocatable_binaries_preprocess relocatable_native_pcfiles"
0004:
0005:python relocatable_binaries_preprocess() {
*** 0006: rpath_replace(d.expand('${SYSROOT_DESTDIR}'), d)
0007:}
0008:
0009:relocatable_native_pcfiles () {
0010: if [ -d ${SYSROOT_DESTDIR}${libdir}/pkgconfig ]; then
File: '/home/user/src_layers/poky/meta/classes/chrpath.bbclass', lineno: 122, function: rpath_replace
0118:
0119: for bindir in bindirs:
0120: #bb.note ("Processing directory " + bindir)
0121: directory = path + "/" + bindir
*** 0122: process_dir (path, directory, d)
0123:
File: '/home/user/src_layers/poky/meta/classes/chrpath.bbclass', lineno: 98, function: process_dir
0094: # Skip symlinks
0095: continue
0096:
0097: if os.path.isdir(fpath):
*** 0098: process_dir(rootdir, fpath, d)
0099: else:
0100: #bb.note("Testing %s for relocatability" % fpath)
0101:
0102: # We need read and write permissions for chrpath, if we don't have
File: '/home/user/src_layers/poky/meta/classes/chrpath.bbclass', lineno: 98, function: process_dir
0094: # Skip symlinks
0095: continue
0096:
0097: if os.path.isdir(fpath):
*** 0098: process_dir(rootdir, fpath, d)
0099: else:
0100: #bb.note("Testing %s for relocatability" % fpath)
0101:
0102: # We need read and write permissions for chrpath, if we don't have
File: '/home/user/src_layers/poky/meta/classes/chrpath.bbclass', lineno: 98, function: process_dir
0094: # Skip symlinks
0095: continue
0096:
0097: if os.path.isdir(fpath):
*** 0098: process_dir(rootdir, fpath, d)
0099: else:
0100: #bb.note("Testing %s for relocatability" % fpath)
0101:
0102: # We need read and write permissions for chrpath, if we don't have
File: '/home/user/src_layers/poky/meta/classes/chrpath.bbclass', lineno: 98, function: process_dir
0094: # Skip symlinks
0095: continue
0096:
0097: if os.path.isdir(fpath):
*** 0098: process_dir(rootdir, fpath, d)
0099: else:
0100: #bb.note("Testing %s for relocatability" % fpath)
0101:
0102: # We need read and write permissions for chrpath, if we don't have
File: '/home/user/src_layers/poky/meta/classes/chrpath.bbclass', lineno: 111, function: process_dir
0107: perms = None
0108: else:
0109: # Temporarily make the file writeable so we can chrpath it
0110: os.chmod(fpath, perms|stat.S_IRWXU)
*** 0111: process_file(cmd, fpath, rootdir, baseprefix, tmpdir, d)
0112:
0113: if perms:
0114: os.chmod(fpath, perms)
0115:
File: '/home/user/src_layers/poky/meta/classes/chrpath.bbclass', lineno: 7, function: process_file_linux
0003:
0004:def process_file_linux(cmd, fpath, rootdir, baseprefix, tmpdir, d):
0005: import subprocess as sub
0006:
*** 0007: p = sub.Popen([cmd, '-l', fpath],stdout=sub.PIPE,stderr=sub.PIPE)
0008: out, err = p.communicate()
0009: # If returned successfully, process stdout for results
0010: if p.returncode != 0:
0011: return
File: '/usr/lib/python3.5/subprocess.py', lineno: 947, function: __init__
0943: startupinfo, creationflags, shell,
0944: p2cread, p2cwrite,
0945: c2pread, c2pwrite,
0946: errread, errwrite,
*** 0947: restore_signals, start_new_session)
0948: except:
0949: # Cleanup if the child failed starting.
0950: for f in filter(None, (self.stdin, self.stdout, self.stderr)):
0951: try:
File: '/usr/lib/python3.5/subprocess.py', lineno: 1490, function: _execute_child
1486: close_fds, sorted(fds_to_keep), cwd, env_list,
1487: p2cread, p2cwrite, c2pread, c2pwrite,
1488: errread, errwrite,
1489: errpipe_read, errpipe_write,
*** 1490: restore_signals, start_new_session, preexec_fn)
1491: self._child_created = True
1492: finally:
1493: # be sure the FD is closed no matter what
1494: os.close(errpipe_write)
Exception: OSError: [Errno 12] Cannot allocate memory
ERROR: go-native-1.14.15-r0 do_populate_sysroot: [Errno 12] Cannot allocate memory
ERROR: go-native-1.14.15-r0 do_populate_sysroot: Function failed: relocatable_binaries_preprocess
ERROR: Logfile of failure stored in: /home/user/prj_oran_stx/tmp/work/x86_64-linux/go-native/1.14.15-r0/temp/log.do_populate_sysroot.110349
NOTE: recipe go-native-1.14.15-r0: task do_populate_sysroot: Failed
ERROR: Task (/home/user/src_layers/meta-starlingx/meta-stx-integ/recipes-devtools/go/go-native_1.14.bb:do_populate_sysroot) failed with exit code '1'
NOTE: Running task 2603 of 17624 (virtual:native:/home/user/src_layers/poky/meta/recipes-graphics/xorg-app/mkfontscale_1.1.3.bb:do_fetch)
NOTE: recipe mkfontscale-native-1.1.3-r0: task do_fetch: Started
NOTE: recipe mkfontscale-native-1.1.3-r0: task do_fetch: Succeeded
ERROR: Worker process (3570) exited unexpectedly (-9), shutting down...
ERROR: Worker process (3570) exited unexpectedly (-9), shutting down...
WARNING: /home/user/src_layers/poky/bitbake/lib/bb/runqueue.py:1291: ResourceWarning: unclosed file <_io.BufferedWriter name=31>
self.worker = {}
NOTE: Tasks Summary: Attempted 2592 tasks of which 0 didn't need to be rerun and 1 failed.
Summary: 1 task failed:
/home/user/src_layers/meta-starlingx/meta-stx-integ/recipes-devtools/go/go-native_1.14.bb:do_populate_sysroot
Summary: There were 8 WARNING messages shown.
Summary: There were 5 ERROR messages shown, returning a non-zero exit code.
```
最後便能於以下路徑找到製作好的映象檔:

> ${WORKSPACE}/prj_oran_inf_anaconda/tmp-glibc/deploy/images/intel-corei7-64/inf-image-aio-installer-intel-corei7-64.iso
## Target Hardware Requirements
