summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSimon <965089+sarthurdev@users.noreply.github.com>2024-09-17 20:04:04 +0200
committerGitHub <noreply@github.com>2024-09-17 20:04:04 +0200
commit2a53f210eed9e8c7b862f232c5b5ee825da655dc (patch)
treea69470be1cab02bccf8b4ae448ae8b4530786ced
parentbe867edddc35ed5e8880c6de3a55e879dbf70524 (diff)
parent983e4ffd9779451510cb40acb4ef34e86dd56084 (diff)
downloadvyos-build-2a53f210eed9e8c7b862f232c5b5ee825da655dc.tar.gz
vyos-build-2a53f210eed9e8c7b862f232c5b5ee825da655dc.zip
Merge pull request #765 from sarthurdev/tpm_luks
-rw-r--r--docker/Dockerfile3
-rwxr-xr-xscripts/check-qemu-install31
2 files changed, 10 insertions, 24 deletions
diff --git a/docker/Dockerfile b/docker/Dockerfile
index 576d1085..498dd69a 100644
--- a/docker/Dockerfile
+++ b/docker/Dockerfile
@@ -87,7 +87,8 @@ RUN apt-get update && apt-get install -y \
gosu \
po4a \
openssh-client \
- jq
+ jq \
+ socat
# Packages needed for vyos-build
RUN apt-get update && apt-get install -y \
diff --git a/scripts/check-qemu-install b/scripts/check-qemu-install
index e1fd45f1..dfb772d8 100755
--- a/scripts/check-qemu-install
+++ b/scripts/check-qemu-install
@@ -360,11 +360,15 @@ if args.qemu_cmd:
test_timeout = 3 *3600 # 3 hours (in seconds)
tpm_process = None
try:
+ # Start TPM emulator
+ if args.tpmtest:
+ tpm_process = start_swtpm()
+
#################################################
# Installing image to disk
#################################################
log.info('Installing system')
- cmd = get_qemu_cmd(qemu_name, args.uefi, args.disk, raid=diskname_raid, iso_img=args.iso, vnc_enabled=args.vnc, secure_boot=args.sbtest)
+ cmd = get_qemu_cmd(qemu_name, args.uefi, args.disk, raid=diskname_raid, tpm=args.tpmtest, iso_img=args.iso, vnc_enabled=args.vnc, secure_boot=args.sbtest)
log.debug(f'Executing command: {cmd}')
c = pexpect.spawn(cmd, logfile=stl, timeout=60)
@@ -489,12 +493,6 @@ try:
os.system(f'echo "eject -f drive-cd1" | socat - unix-connect:/tmp/qemu-monitor-socket-{args.disk}')
#################################################
- # Powering down installer
- #################################################
- if args.tpmtest:
- tpm_process = start_swtpm()
-
- #################################################
# Booting installed system
#################################################
log.info('Booting installed system')
@@ -569,7 +567,7 @@ try:
tpm_timeout = 600 # Give it 10 mins to encrypt
# Verify TPM is loaded
- c.sendline('ls /dev/tpm0')
+ c.sendline('find /dev -name tpm0')
c.expect('/dev/tpm0')
c.expect(op_mode_prompt)
@@ -608,21 +606,8 @@ try:
c.sendline('exit')
c.expect(op_mode_prompt)
- # Shutdown VM
- shutdownVM(c, log, 'Shutdown VM after TPM encryption')
-
- # Shutdown kills swtpm
- tpm_process.join()
- tpm_process.close()
-
- # Start emulator again
- tpm_process = start_swtpm()
-
- # Booting back into VM
- log.info('Booting TPM-backed system')
- cmd = get_qemu_cmd(qemu_name, args.uefi, args.disk, raid=diskname_raid, tpm=args.tpmtest, vnc_enabled=args.vnc)
- log.debug(f'Executing command: {cmd}')
- c = pexpect.spawn(cmd, logfile=stl)
+ log.info('system installed, rebooting')
+ c.sendline('reboot now')
try:
c.expect('The highlighted entry will be executed automatically in', timeout=10)