Source2: libhal-api.conf
Source3: systemd-hal-firmware-generator
Source4: macros.hal-api
+Source5: haltest.target
+Source6: reboot-haltest
+Source7: reboot-normal
Requires(post): /sbin/ldconfig
Requires(postun): /sbin/ldconfig
install -D -m 0644 %{SOURCE2} %{buildroot}%{_sysconfdir}/ld.so.conf.d/libhal-api.conf
install -D -m 0755 %{SOURCE3} %{buildroot}%{_systemdgeneratordir}/systemd-hal-firmware-generator
install -D -m 0644 %{SOURCE4} %{buildroot}%{_sysconfdir}/rpm/macros.hal-api
+install -D -m 0644 %{SOURCE5} %{buildroot}%{_unitdir}/haltest.target
+install -D -m 0755 %{SOURCE6} %{buildroot}%{_bindir}/reboot-haltest
+install -D -m 0755 %{SOURCE7} %{buildroot}%{_bindir}/reboot-normal
%clean
rm -rf %{buildroot}
%files -n %{test_name}
%{_bindir}/hal/common-haltests
+%{_unitdir}/haltest.target
+%{_bindir}/reboot-haltest
+%{_bindir}/reboot-normal
--- /dev/null
+[Unit]
+Description=HALTEST Mode
+Requires=basic.target ac.service deviced.service getty.target
+Conflicts=rescue.service rescue.target
+After=basic.target rescue.service rescue.target ac.service deviced.service getty.target
+AllowIsolate=yes
--- /dev/null
+#!/bin/bash
+PATH=/bin:/usr/bin:/sbin:/usr/sbin
+
+user=`whoami`
+default=`systemctl get-default`
+dmverity_path="/usr/bin/verityctl"
+dmverity_cmd=`verityctl get-mode root`
+dmverity_log="dm-verity is disabled (Normal boot)"
+
+if ! [ "$user" = "root" ]
+then
+ echo "HALTEST: Need 'root' permission for switching mode"
+ exit
+fi
+
+if [ -f $dmverity_path ]
+then
+ if ! [ "$dmverity_cmd" = "$dmverity_log" ]
+ then
+ echo "HALTEST: Need to disable DM-VERITY to use HALTEST Mode "
+ echo "HALTEST: Disable DM-VERITY and reboot target "
+ echo "HALTEST: After rebooting, need to execure reboot-haltest again "
+ verityctl disable
+ echo "HALTEST: Rebooting ..."
+ reboot -f
+ fi
+fi
+
+if ! [ "$default" = "haltest.target" ]
+then
+ echo "HALTEST: Switch to HALTEST Mode from Normal Mode"
+ echo "HALTEST: Change default.target from $default to haltest.target"
+ mount -o remount,rw /
+ systemctl set-default haltest.target
+ sync
+ echo "HALTEST: Rebooting ..."
+ reboot -f
+else
+ echo "HALTEST: HALTEST Mode is already enabled (default: $default)"
+fi
+
--- /dev/null
+#!/bin/bash
+
+PATH=/bin:/usr/bin:/sbin:/usr/sbin
+
+user=`whoami`
+default=`systemctl get-default`
+
+if ! [ "$user" = "root" ]
+then
+ echo "HALTEST: Need 'root' permission for switching mode"
+ exit
+fi
+
+if ! [ "$default" = "graphical.target" ]
+then
+ echo "HALTEST: Switch to Normal Mode from HALTEST Mode"
+ echo "HALTEST: Change default.target from $default to graphical.target"
+ mount -o remount,rw /
+ systemctl set-default graphical.target
+ sync
+ echo "HALTEST: Rebooting ..."
+ reboot -f
+else
+ echo "HALTEST: Normal Mode is already enabled (default: $default)"
+fi
+