Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
38 commits
Select commit Hold shift + click to select a range
3992a3c
test(xcat-core): capture the genesis specs leaving %{tarch} unexpanded
dhilst Sep 2, 2026
11da82d
fix(xcat-core): the genesis specs have no riscv64 branch, so %{tarch}…
dhilst Sep 2, 2026
f7d52f9
test(xcat-core): capture the Debian control files excluding riscv64
dhilst Sep 2, 2026
1cffcec
fix(xcat-core): build the xCAT debs for riscv64
dhilst Sep 2, 2026
97f481a
fix(build): builddebs.pl drops riscv64, so apt serves no riscv64 xCAT
dhilst Sep 4, 2026
445b755
test(mknb): capture a Genesis copy failing without failing mknb
dhilst Sep 4, 2026
0136c51
fix(mknb): a Genesis copy that fails must fail mknb
dhilst Sep 4, 2026
2bed8fe
fix(xcat-core): bound the pings that assert a purged node stopped res…
dhilst Sep 4, 2026
349658d
fix(xcat-core): mkvm builds a riscv64 node as an x86_64 domain
dhilst Sep 4, 2026
1a5192d
fix(xcat-core): build-ubunturepo is dead code that still looks buildable
dhilst Sep 4, 2026
0a858b6
fix(xcat-core): a pool-backed KVM disk reaches libvirt with no bus
dhilst Sep 4, 2026
5060690
fix(xcat-core): a match made elsewhere can name a KVM volume
dhilst Sep 4, 2026
f746238
fix(xcat-core): xcattest reports only the check where a case stopped
dhilst Sep 4, 2026
ea1cb82
fix(xcat-core): five check lines the xcattest harness never evaluates
dhilst Sep 4, 2026
ff20388
fix(xcat-core): the legacy Genesis image never reaches doxcat, so no …
dhilst Sep 4, 2026
afa2d85
test(xcat-core): capture doxcat naming dhclient on a release that dro…
dhilst Sep 4, 2026
279207c
fix(xcat-core): the legacy Genesis image for el10 carries no DHCP client
dhilst Sep 4, 2026
4dd16eb
test(xcat-core): capture the genesis harness passing on a failed nodeset
dhilst Sep 4, 2026
1db2c7c
fix(xcat-core): the genesis harness passes on a nodeset that failed a…
dhilst Sep 4, 2026
76d6967
test(xcat-core): capture the Debian genesis dependency ignoring the a…
dhilst Sep 4, 2026
6798db5
fix(xcat-core): the Debian genesis dependency ignores the node archit…
dhilst Sep 4, 2026
8c87ecf
test(xcat-core): capture go-xcat naming a genesis package no reposito…
dhilst Sep 4, 2026
b83d337
fix(xcat-core): go-xcat names a genesis package no apt repository has
dhilst Sep 4, 2026
4c81628
fix(xcat-core): the alien Genesis base deb keeps the rpm architecture
dhilst Sep 4, 2026
084d776
test(xcat-core): capture the el10 Genesis image shipping no openssl
dhilst Sep 5, 2026
772f11c
fix(xcat-core): the el10 Genesis image carries no openssl, so getcert…
dhilst Sep 5, 2026
100d537
test(xcat-core): capture the Genesis root home directory left at /root
dhilst Sep 5, 2026
0b31e21
fix(xcat-core): the el10 Genesis image gives root the home directory …
dhilst Sep 5, 2026
c406d93
fix(xcat-core): the genesis lzma case passes when mknb writes no lzma…
dhilst Sep 4, 2026
0eaed31
fix(xcat-core): six xcattest checks pass on the failure they test for
dhilst Sep 4, 2026
24e2267
Merge branch 'master' of https://github.com/xcat2/xcat-core into rele…
dhilst Sep 11, 2026
b3ed5e6
test(xcat-core): a Genesis image with no /usr/bin/awk passes verifica…
dhilst Sep 11, 2026
da9e17f
fix(xcat-core): check the absolute paths the Genesis module installs,…
dhilst Sep 11, 2026
57dddd4
test(xcat-core): follow the per-architecture Genesis scripts dependency
dhilst Sep 11, 2026
b91795a
test(xcat-core): a failed extraction in thirteen test files stops the…
dhilst Sep 14, 2026
79b2e44
style(xcat-core): the payload test comment describes the verifier tha…
dhilst Sep 14, 2026
4b9572a
test(xcat-core): the Genesis shell tests are written as Perl programs
dhilst Sep 14, 2026
6f63554
test(xcat-core): a missing deb converter makes the arch test skip, no…
dhilst Sep 14, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
711 changes: 0 additions & 711 deletions build-ubunturepo

This file was deleted.

4 changes: 2 additions & 2 deletions builddebs.pl
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
#!/usr/bin/perl
# Build the xcat-core Debian packages and assemble a signed apt repository.
#
# Replaces build-ubunturepo. The shape mirrors buildrpms.pl -- Getopt::Long options,
# Builds every xCAT deb and the apt repository. The shape mirrors buildrpms.pl -- Getopt::Long options,
# one package list, build then index then sign -- so the two builders read the same way
# and share XCAT::BuildUtils.
#
Expand Down Expand Up @@ -385,7 +385,7 @@ package is built B<once> and the resulting C<.deb> files are published into ever
compiled output. Consequently this builder needs no C<sbuild> and no per-codename
chroot. (xcat-dep is different: its packages are compiled, so it builds per codename.)

Replaces C<build-ubunturepo>. The GSA upload paths, the C<PROMOTE>/C<PREGA> release
Replaced C<build-ubunturepo>, removed in 2.19. The GSA upload paths, the C<PROMOTE>/C<PREGA> release
flows and the C<-d> xcat-dep repository mode were not carried over: publishing is done
by the CD pipeline's own deploy step, and xcat-dep is built from its own repository.

Expand Down
3 changes: 3 additions & 0 deletions buildrpms.pl
Original file line number Diff line number Diff line change
Expand Up @@ -346,6 +346,9 @@ ($)
"Error copying dracut_105 sources");
cp "xCAT-genesis-builder/80-net-name-slot.rules",
"$staging_root/80-net-name-slot.rules";
# %install runs this against the extracted payload before it becomes an rpm.
cp "xCAT-genesis-builder/verify-genesis-payload",
"$staging_root/verify-genesis-payload";

unlink $support_tarball if -f $support_tarball;
sh_or_die(qq(tar --sort=name --owner=0 --group=0 --mtime="\@$SOURCE_DATE_EPOCH" -cjf "$support_tarball" -C "$staging_parent" xCAT-genesis-base-build-support),
Expand Down
6 changes: 2 additions & 4 deletions docs/source/developers/guides/code/builds.rst
Original file line number Diff line number Diff line change
Expand Up @@ -36,10 +36,8 @@ emitted, because a source-only run has no binary packages to advertise.
``buildrpms.pl`` replaces all three, and its ``--source-only`` replaces the
old ``SRCONLY=1``.

``build-ubunturepo`` is superseded by ``builddebs.pl`` but is **still in the
tree for now**, as a differential oracle: it is the reference the new builder
is checked against, and it is removed once the CD pipelines have been moved
over. Do not add features to it.
``build-ubunturepo`` was removed in 2.19. ``builddebs.pl`` replaces it, and the
CD pipelines build every Ubuntu target with it.

Debian and Ubuntu packages
--------------------------
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -64,7 +64,7 @@ Remove xCAT Files

[Ubuntu] ::

apt-get remove conserver-xcat elilo-xcat goconserver grub2-xcat ipmitool-xcat perl-xcat syslinux-xcat xcat xcat-buildkit xcat-client xcat-confluent xcat-genesis-base-amd64 xcat-genesis-base-ppc64 xcat-genesis-scripts-amd64 xcat-genesis-scripts-ppc64 xcat-probe xcat-server xcat-test xcat-vlan xcatsn xnba-undi
apt-get remove conserver-xcat elilo-xcat goconserver grub2-xcat ipmitool-xcat perl-xcat syslinux-xcat xcat xcat-buildkit xcat-client xcat-confluent xcat-genesis-base-amd64 xcat-genesis-base-ppc64el xcat-genesis-scripts-amd64 xcat-genesis-scripts-ppc64el xcat-probe xcat-server xcat-test xcat-vlan xcatsn xnba-undi

To do an even more thorough cleanup, use links below to get a list of RPMs installed by xCAT. Some RPMs may not to be installed in a specific environment.

Expand Down
10 changes: 3 additions & 7 deletions github_action_xcat_test.pl
Original file line number Diff line number Diff line change
Expand Up @@ -32,13 +32,9 @@
# through FindBin, so they can only be run from a source tree. Take a copy
# before building and run the unit tests out of the copy.
#
# This used to be mandatory rather than tidy: build-ubunturepo set
# local_core_repo_path="$curdir/../../xcat-core"
# which, under the work/<repo>/<repo> layout GitHub checks out into, resolved to
# the checkout's own parent, and it rm -rf'd that path to make room for the apt
# repository -- destroying the tree the tests need. builddebs.pl writes under
# dist/debs INSIDE the checkout and restores every file it edits, so the copy is
# now only isolating the tests from build residue.
# The copy is tidiness, not a requirement: builddebs.pl writes under dist/debs
# inside the checkout and restores every file it edits, so the copy only keeps
# build residue away from the tests.
my $srcdir = getcwd();
my $unitsrc = ($ENV{'RUNNER_TEMP'} ? $ENV{'RUNNER_TEMP'} : "/tmp") . "/xcat-core-unitsrc";

Expand Down
17 changes: 15 additions & 2 deletions xCAT-genesis-builder/builddeb-genesis-base
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,20 @@ case "$BUILDARCH" in
*) echo "ERROR: unsupported architecture: $BUILDARCH" >&2; exit 1 ;;
esac

# The Genesis debs carry the architecture in the package name, so the packages an upgrade has
# to displace carry it too. 2.19 renames the ppc64 debs to ppc64el; dpkg keeps the old package,
# and its copy of the same files, unless the new one replaces it by name.
rewrite_control() {
local control=$1 arch=$2 superseded
case "$arch" in
ppc64el) superseded="xcat-genesis-ppc64, xcat-genesis-base-ppc64" ;;
*) superseded="xcat-genesis-$arch" ;;
esac
sed -i -e "s/xcat-genesis-base-amd64/xcat-genesis-base-$arch/g" \
-e "s/xcat-genesis-scripts-amd64/xcat-genesis-scripts-$arch/g" \
-e "s/xcat-genesis-amd64/$superseded/g" "$control"
}

VERSION=$(cat "$DIR/../Version" 2>/dev/null || echo "2.18.0")
RELEASE=$(cat "$DIR/../Release" 2>/dev/null || echo "snap$(date +%Y%m%d%H%M)")
CODENAME=$(. /etc/os-release && echo "$VERSION_CODENAME")
Expand Down Expand Up @@ -148,8 +162,7 @@ rm -rf "$DIR/opt"
cp -a "$GENESIS_TMPDIR/opt" "$DIR/"

# Adjust control file for target arch
sed -i "s/xcat-genesis-base-amd64/xcat-genesis-base-$BUILDARCH/g" "$DIR/debian/control"
sed -i "s/xcat-genesis-scripts-amd64/xcat-genesis-scripts-$BUILDARCH/g" "$DIR/debian/control"
rewrite_control "$DIR/debian/control" "$BUILDARCH"

PKG_VERSION="${VERSION}-${RELEASE}~${CODENAME}"
rm -f "$DIR/debian/changelog"
Expand Down
37 changes: 30 additions & 7 deletions xCAT-genesis-builder/debuild-xcat-genesis-base
Original file line number Diff line number Diff line change
Expand Up @@ -30,17 +30,40 @@ alien -d -g -c -k "${RPM_PACKAGE}" || exit 1
PACKAGE_ARCH="${EXTRACT_DIR%-*}"
PACKAGE_ARCH="${PACKAGE_ARCH##*-}"

if [[ ${EXTRACT_DIR} =~ -x86_64- ]]
# The rpm carries the Genesis target architecture, the deb must carry the Debian architecture.
# alien copies the rpm name into the deb and writes "_" as "-", so x86_64 arrives as x86-64.
case "${PACKAGE_ARCH}" in
x86_64)
ALIEN_ARCH="x86-64" ; DEB_ARCH="amd64" ;;
ppc64|ppc64le)
ALIEN_ARCH="${PACKAGE_ARCH}" ; DEB_ARCH="ppc64el" ;;
*)
ALIEN_ARCH="${PACKAGE_ARCH}" ; DEB_ARCH="${PACKAGE_ARCH}" ;;
esac

if [[ "${DEB_ARCH}" != "${PACKAGE_ARCH}" ]]
then
rm -rf "${EXTRACT_DIR//x86_64/amd64}"
mv "${EXTRACT_DIR}" "${EXTRACT_DIR//x86_64/amd64}"
EXTRACT_DIR="${EXTRACT_DIR//x86_64/amd64}"
rm -rf "${EXTRACT_DIR//${PACKAGE_ARCH}/${DEB_ARCH}}"
mv "${EXTRACT_DIR}" "${EXTRACT_DIR//${PACKAGE_ARCH}/${DEB_ARCH}}"
EXTRACT_DIR="${EXTRACT_DIR//${PACKAGE_ARCH}/${DEB_ARCH}}"

sed -i -e 's/x86-64/amd64/g' "${EXTRACT_DIR}/debian/control"
sed -i -e 's/x86-64/amd64/g' "${EXTRACT_DIR}/debian/changelog"
sed -i -e "s/${ALIEN_ARCH}/${DEB_ARCH}/g" "${EXTRACT_DIR}/debian/control"
sed -i -e "s/${ALIEN_ARCH}/${DEB_ARCH}/g" "${EXTRACT_DIR}/debian/changelog"
fi

sed -i -e "/^Description:/i Breaks: xcat-genesis-scripts-${PACKAGE_ARCH//x86_64/amd64} (<< 2.13.10)" "${EXTRACT_DIR}/debian/control"
# The Genesis debs carry the architecture in the package name, so the packages an upgrade has
# to displace carry it too. 2.19 renames the ppc64 debs to ppc64el; dpkg keeps the old package,
# and its copy of the same files, unless the new one replaces it by name.
case "${DEB_ARCH}" in
ppc64el)
SUPERSEDED="xcat-genesis-ppc64, xcat-genesis-base-ppc64" ;;
*)
SUPERSEDED="xcat-genesis-${DEB_ARCH}" ;;
esac

sed -i -e "/^Description:/i Replaces: ${SUPERSEDED}" \
-e "/^Description:/i Breaks: ${SUPERSEDED}, xcat-genesis-scripts-${DEB_ARCH} (<< 2.13.10)" \
"${EXTRACT_DIR}/debian/control"

cat >"${EXTRACT_DIR}/debian/preinst" <<EOF
#!/bin/bash
Expand Down
41 changes: 39 additions & 2 deletions xCAT-genesis-builder/dracut_105/el/module-setup.sh
Original file line number Diff line number Diff line change
Expand Up @@ -48,13 +48,50 @@ install() {
dracut_install mount.nfs sshd vi reboot lspci parted tmux mkfs mkfs.ext4 mkfs.xfs xfs_db
#dracut_install libvirtd /usr/share/libvirt/cpu_map.xml /usr/bin/qemu-img /usr/libexec/qemu-kvm
dracut_install mkswap df ifenslave ssh-keygen scp clear
dracut_install dhclient lldpad
# getdestiny makes its request file with mktemp.
dracut_install mktemp
dracut_install lldpad

# RHEL 10 packages no ISC dhcp-client. Install whichever client the build root carries;
# doxcat chooses between them at run time.
if command -v dhclient >/dev/null 2>&1; then
dracut_install dhclient
elif command -v dhcpcd >/dev/null 2>&1; then
dracut_install dhcpcd
# dhcpcd runs these on every lease. They write resolv.conf, the hostname and
# ntp.conf, which is the work dhclient-script does for the ISC client.
dracut_install /usr/libexec/dhcpcd-run-hooks
for _dhcpcd_hook in /usr/libexec/dhcpcd-hooks/*; do
_dracut_install_opt "$_dhcpcd_hook"
done
_dracut_install_opt /etc/dhcpcd.conf
fi

# OpenSSH 9.8 moved the per-connection work into sshd-session, which sshd execs by
# absolute path.
for _sshd_helper in \
/usr/libexec/openssh/sshd-session \
/usr/libexec/openssh/sshd-auth \
/usr/lib/openssh/sshd-session \
/usr/lib/openssh/sshd-auth
do
_dracut_install_opt "$_sshd_helper"
done

# tmux exits under the C locale, and the image carries no locale data of its own.
for _lc_file in /usr/lib/locale/C.utf8/LC_*; do
_dracut_install_opt "$_lc_file"
done
dracut_install /lib64/libnss_dns.so.2
dracut_install poweroff hwclock date /usr/share/terminfo/x/xterm /usr/share/terminfo/s/screen /etc/nsswitch.conf /etc/services
dracut_install /sbin/rsyslogd /etc/protocols umount /bin/rpm /usr/lib/rpm/rpmrc
#dracut_install chmod /sbin/route /sbin/ifconfig /usr/bin/whoami /usr/bin/head /usr/bin/tail basename /etc/redhat-release ping tr lsusb /usr/share/hwdata/usb.ids #ibm fw wrapper requirements
dracut_install chmod ip /usr/bin/whoami /usr/bin/head /usr/bin/tail basename /etc/redhat-release ping tr lsusb /usr/share/hwdata/usb.ids #ibm fw wrapper requirements
dracut_install efibootmgr dmidecode #uxspi prereqs, but will use dmidecode to improve decision on loading ipmi_si
# uxspi prereqs. dmidecode also improves the decision on loading ipmi_si. Neither is
# packaged for ppc64le, so install whichever the build root carries.
for _fw_tool in efibootmgr dmidecode; do
command -v "$_fw_tool" >/dev/null 2>&1 && dracut_install "$_fw_tool"
done
dracut_install lldptool
dracut_install /usr/share/zoneinfo/posix/Zulu
dracut_install /usr/share/zoneinfo/posix/GMT-0
Expand Down
31 changes: 27 additions & 4 deletions xCAT-genesis-builder/dracut_105/el/xcat-cmdline.sh
Original file line number Diff line number Diff line change
Expand Up @@ -2,13 +2,29 @@
root=1
rootok=1
netroot=xcat

# The image ships the C.UTF-8 locale only. tmux refuses to start under the C locale.
export LC_ALL=C.UTF-8

# tmux exits when the image carries no UTF-8 locale. doxcat is the whole of Genesis, so it
# must run whether or not the multiplexer starts. Prints tmux or direct.
xcat_console_mode() {
if tmux -f /dev/null new-session -d -s xcatprobe true >/dev/null 2>&1; then
tmux kill-session -t xcatprobe >/dev/null 2>&1
echo tmux
else
echo direct
fi
}
clear
echo PS1="'"'[xCAT Genesis running on \H \w]\$ '"'" > /.bashrc
echo PS1="'"'[xCAT Genesis running on \H \w]\$ '"'" > /.bash_profile
mkdir -p /etc/ssh
mkdir -p /var/tmp/
mkdir -p /var/empty/sshd
sed -i '/^root:x/d' /etc/passwd
# dracut writes this entry itself, with an empty password field unless the image is
# built --hostonly. Match the user name only.
sed -i '/^root:/d' /etc/passwd
cat >>/etc/passwd <<"__ENDL"
root:x:0:0::/:/bin/bash
sshd:x:30:30:SSH User:/var/empty/sshd:/sbin/nologin
Expand Down Expand Up @@ -39,10 +55,13 @@ mkdir -p /var/lib/dhclient/
mkdir -p /var/log
ip link set lo up
echo '127.0.0.1 localhost' >> /etc/hosts
if grep -q console=ttyS /proc/cmdline; then
XCAT_CONSOLE_MODE="$(xcat_console_mode)"
if [ "$XCAT_CONSOLE_MODE" = "tmux" ]; then
if grep -q console=ttyS /proc/cmdline; then
while :; do sleep 1; tmux attach-session -t doxcat </dev/tty1 &>/dev/tty1; clear &>/dev/tty1 ; done &
fi
while :; do tmux new-session < /dev/tty2 &> /dev/tty2 ; done &
fi
while :; do tmux new-session < /dev/tty2 &> /dev/tty2 ; done &

# The section below is just for System P LE hardware discovery

Expand Down Expand Up @@ -87,4 +106,8 @@ elif [[ ${ARCH} =~ x86_64 ]]; then
done
fi

while :; do tmux attach-session -t doxcat || tmux new-session -s doxcat doxcat; done
if [ "$XCAT_CONSOLE_MODE" = "tmux" ]; then
while :; do tmux attach-session -t doxcat || tmux new-session -s doxcat doxcat; done
else
while :; do doxcat; sleep 5; done
fi
18 changes: 18 additions & 0 deletions xCAT-genesis-builder/dracut_105/ubuntu/module-setup.sh
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,25 @@ install() {
dracut_install mount.nfs sshd vi reboot lspci parted screen mkfs mkfs.ext4 mkfs.btrfs
#dracut_install libvirtd /usr/share/libvirt/cpu_map.xml /usr/bin/qemu-img /usr/libexec/qemu-kvm
dracut_install mkswap df ifenslave ssh-keygen scp clear
# getdestiny makes its request file with mktemp.
dracut_install mktemp
dracut_install dhclient lldpad

# OpenSSH 9.8 moved the per-connection work into sshd-session, which sshd execs by
# absolute path.
for _sshd_helper in \
/usr/libexec/openssh/sshd-session \
/usr/libexec/openssh/sshd-auth \
/usr/lib/openssh/sshd-session \
/usr/lib/openssh/sshd-auth
do
_dracut_install_opt "$_sshd_helper"
done

# tmux exits under the C locale, and the image carries no locale data of its own.
for _lc_file in /usr/lib/locale/C.utf8/LC_*; do
_dracut_install_opt "$_lc_file"
done
_dracut_install_opt "/lib/$TRIPLET/libnss_dns.so.2"
dracut_install poweroff hwclock date /usr/share/terminfo/x/xterm /usr/share/terminfo/s/screen /etc/nsswitch.conf /etc/services
dracut_install /usr/sbin/rsyslogd /etc/protocols umount /usr/bin/dpkg
Expand Down
31 changes: 27 additions & 4 deletions xCAT-genesis-builder/dracut_105/ubuntu/xcat-cmdline.sh
Original file line number Diff line number Diff line change
Expand Up @@ -2,13 +2,29 @@
root=1
rootok=1
netroot=xcat

# The image ships the C.UTF-8 locale only. tmux refuses to start under the C locale.
export LC_ALL=C.UTF-8

# screen exits when the image carries no usable terminal. doxcat is the whole of Genesis, so
# it must run whether or not the multiplexer starts. Prints screen or direct.
xcat_console_mode() {
if screen -ln -d -m -S xcatprobe true >/dev/null 2>&1; then
screen -S xcatprobe -X quit >/dev/null 2>&1
echo screen
else
echo direct
fi
}
clear
echo PS1="'"'[xCAT Genesis running on \H \w]\$ '"'" > /.bashrc
echo PS1="'"'[xCAT Genesis running on \H \w]\$ '"'" > /.bash_profile
mkdir -p /etc/ssh
mkdir -p /var/tmp/
mkdir -p /var/empty/sshd
sed -i '/^root:x/d' /etc/passwd
# dracut writes this entry itself, with an empty password field unless the image is
# built --hostonly. Match the user name only.
sed -i '/^root:/d' /etc/passwd
cat >>/etc/passwd <<"__ENDL"
root:x:0:0::/:/bin/bash
sshd:x:30:30:SSH User:/var/empty/sshd:/sbin/nologin
Expand Down Expand Up @@ -39,10 +55,13 @@ mkdir -p /var/lib/dhclient/
mkdir -p /var/log
ip link set lo up
echo '127.0.0.1 localhost' >> /etc/hosts
if grep -q console=ttyS /proc/cmdline; then
XCAT_CONSOLE_MODE="$(xcat_console_mode)"
if [ "$XCAT_CONSOLE_MODE" = "screen" ]; then
if grep -q console=ttyS /proc/cmdline; then
while :; do sleep 1; screen -S console -ln screen -x doxcat </dev/tty1 &>/dev/tty1; clear &>/dev/tty1 ; done &
fi
while :; do screen -ln < /dev/tty2 &> /dev/tty2 ; done &
fi
while :; do screen -ln < /dev/tty2 &> /dev/tty2 ; done &

# The section below is just for System P LE hardware discovery

Expand Down Expand Up @@ -87,4 +106,8 @@ elif [[ ${ARCH} =~ x86_64 ]]; then
done
fi

while :; do screen -dr doxcat || screen -S doxcat -L -ln doxcat; done
if [ "$XCAT_CONSOLE_MODE" = "screen" ]; then
while :; do screen -dr doxcat || screen -S doxcat -L -ln doxcat; done
else
while :; do doxcat; sleep 5; done
fi
Loading
Loading