diff options
author | Simon <965089+sarthurdev@users.noreply.github.com> | 2024-09-17 20:04:04 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-09-17 20:04:04 +0200 |
commit | 2a53f210eed9e8c7b862f232c5b5ee825da655dc (patch) | |
tree | a69470be1cab02bccf8b4ae448ae8b4530786ced | |
parent | be867edddc35ed5e8880c6de3a55e879dbf70524 (diff) | |
parent | 983e4ffd9779451510cb40acb4ef34e86dd56084 (diff) | |
download | vyos-build-2a53f210eed9e8c7b862f232c5b5ee825da655dc.tar.gz vyos-build-2a53f210eed9e8c7b862f232c5b5ee825da655dc.zip |
Merge pull request #765 from sarthurdev/tpm_luks
-rw-r--r-- | docker/Dockerfile | 3 | ||||
-rwxr-xr-x | scripts/check-qemu-install | 31 |
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) |