hashicorp / packer

Packer is a tool for creating identical machine images for multiple platforms from a single source configuration.
http://www.packer.io
Other
15.12k stars 3.33k forks source link

builder/qemu: packer sends the wrong key code for "<" #5769

Closed shibumi closed 6 years ago

shibumi commented 6 years ago

packer version: 1.1.3 qemu version: 2.11 Host platform: Arch Linux

Hello, packer sends the wrong keycode for "<". My vagrant.json line looks like this:

            "boot_command": [
                "<enter><wait10><wait10><wait10><wait10><wait10><enter><enter>",
                "curl -O 'http://{{.HTTPIP}}:{{.HTTPPort}}/install{,-chroot}.sh'<enter><wait>",
                "bash install.sh < install-chroot.sh && systemctl reboot<enter>"
            ]

With PACKER_LOG=1 I see this line:

2018/01/07 01:07:07 packer-io: 2018/01/07 01:07:07 Sending char '<', code 60, shift true

but in my VNC session in my qemu I see this line:

bash install.sh > install-chroot.sh && systemctl reboot
rickard-von-essen commented 6 years ago

Code 60 is the correct keycode for <. Most likely you have a (software) keymap in the VM remapping this key to the > character.

foutrelis commented 6 years ago

FWIW, with xev I see keycode 59 for < and keycode 60 for >.

This appears to come from xkeyboard-config:

$ grep -A1 'less, lesst' /usr/share/X11/xkb/symbols/us 
    key <AB08> { [     comma,       less, lessthanequal,      dead_macron ] };
    key <AB09> { [    period,    greater, greaterthanequal,    dead_breve ] };
$ grep AB0[89] /usr/share/X11/xkb/keycodes/evdev 
    <AB08> = 59;
    <AB09> = 60;
shibumi commented 6 years ago

@rickard-von-essen When I type the "<" manually it works out. So I don't think I have the wrong keymap in the VM.

rickard-von-essen commented 6 years ago

0x3c => 60 see vnc_keysym.h

rickard-von-essen commented 6 years ago

If you supply the information requested in the issue template it makes it faster for us to reproduce this:

shibumi commented 6 years ago

@rickard-von-essen

The template: https://github.com/archlinux/arch-boxes/blob/master/vagrant.json Project: https://github.com/archlinux/arch-boxes/ (master branch) Link to the Packer log: http://ix.io/DPe Link to the screenshot of the VNC session: http://ix.io/DPf

The keycode in the vnc session is wrong. The packer_log says that the right code is submitted but the VNC session shows another key on that position. How is that even possible? I guess it has something todo with the qemu version: 2.11

rickard-von-essen commented 6 years ago

Don't your single quotes (') look like apostrophes (’) too?

shibumi commented 6 years ago

@rickard-von-essen mhhh not sure. Maybe the font? I will check this. Do you have any news about that crazy keycode behaviour?

rickard-von-essen commented 6 years ago

@foutrelis do you have the same problem? If so what's you OS version (guest and host) qemu, and packer version?

rickard-von-essen commented 6 years ago

@shibumi haven't had time to read repro this yet.

shibumi commented 6 years ago

Any update on this?

rickard-von-essen commented 6 years ago

@vtolstov It would be great if you could repro this?

vtolstov commented 6 years ago

In qemu builder i can't reproduce this issue: qemu 2.11.0-4.fc27.x86_64 fedora 27

packer log: 2018/01/21 23:47:34 packerio: 2018/01/21 23:47:34 Sending char '<', code 60, shift true

guest os: debian jessie 8.10.0

shibumi commented 6 years ago

Hi @vtolstov , can you try out the newest Arch linux ISO as Guest OS? https://www.archlinux.de/download/iso/2018.01.01/archlinux-2018.01.01-x86_64.iso

And did you verify the right char? It seems for me you looked only on the packer log. I had the same line when running packer..

Here is my packer configuration: https://github.com/archlinux/arch-boxes/blob/master/vagrant.json

Keep in mind that you need to change some variables in vagrant.json

vtolstov commented 6 years ago

i'm not confirm this issue. fedora 27: archlinux 2018.01.01 boot_command: "> > > > < < <" works fine in qemu builder

shibumi commented 6 years ago

Is it possible that this has something to do with the host system or the locale settings on the host system? @foutrelis is running Arch linux as host system as well and has the same issues.

On my Laptop (Arch Linux) I get keycode "60" as well for ">":

KeyRelease event, serial 33, synthetic NO, window 0x1a00001,
    root 0xce, subw 0x0, time 7199217, (202,929), root:(1485,951),
    state 0x1, keycode 94 (keysym 0x3e, greater), same_screen YES,
    XKeysymToKeycode returns keycode: 60
    XLookupString gives 1 bytes: (3e) ">"
    XFilterEvent returns: False

localectl says:

  System Locale: LANG=en_US.UTF-8
       VC Keymap: us
      X11 Layout: us

Here is an additional screenshot of the problem

You can see at 20:10:48 the key "<" in packer but on the VNC session you can clearly see a ">". Any way I can override the key code?

I have no clue why this behaviour exists only on Arch Linux host systems. Maybe newer software? If so all other distributions will run in the same error in the future.

vtolstov commented 6 years ago
   System Locale: LANG=en_US.UTF-8
       VC Keymap: us
      X11 Layout: n/a
vtolstov commented 6 years ago
< - key press 59
< - key release 59
> - key press 60
> - key release 60
vtolstov commented 6 years ago

i think that you can experiment with qemu keyboard lang for vnc...

shibumi commented 6 years ago

@vtolstov Well on VNC it works pretty well. When I press ">" I will get ">" (same for "<"). The problem is packer.. packer seems to send the wrong keycode. I would need a way to override the keycodes for packer. But I guess thats not possible without changing the go code directly. (If everything fails I think I will just patch the code.. do you mind to show me the mapping in your? Then I will just apply the patch for all packer images in arch linux. I maintain packer on arch linux.)

vtolstov commented 6 years ago

@shibumi sorry for my question, but does you use qemu builder directly or use vagrant/virtualbox? Can you try this packer template:

{
    "variables": {
        "name": "archlinux-current-x86_64"
    },
    "builders": [
        {
            "accelerator": "kvm",
            "boot_command": [
                "<enter><wait120s>",
                "<enter><wait10s>",
                "echo <<< >>><wait60m>"
            ],
            "boot_wait": "14s",
            "disk_interface": "virtio-scsi",
            "disk_size": 5000,
            "disk_cache": "unsafe",
            "disk_discard": "unmap",
            "disk_compression": true,
            "iso_skip_cache": true,
            "format": "qcow2",
            "headless": true,
            "http_directory": "http",
            "iso_urls": [ "http://mirror.yandex.ru/archlinux/iso/latest/archlinux-2018.01.01-x86_64.iso" ],
            "net_device": "virtio-net",
            "output_directory": "output/{{user `name`}}-qemu/",
            "machine_type": "q35",
            "qemuargs": [
                [
                    "-m",
                    "768"
                ]
            ],
            "shutdown_command": "systemctl poweroff",
            "ssh_password": "packer",
            "ssh_username": "root",
            "ssh_wait_timeout": "1h",
            "type": "qemu",
            "vm_name": "{{user `name`}}.qcow2"
        }
    ]
}
vtolstov commented 6 years ago

I'm interesting of part of echo in boot_command ...

vtolstov commented 6 years ago

This is part of my config when i'm build arch image for our vps hosting

vtolstov commented 6 years ago

also, please send full qemu cmdline from ps command when you running packer build with you config

shibumi commented 6 years ago

@vtolstov Same result as my vagrant.json:

You can see the output in the packer log looks ok.. but in the vncviewer you can clearly see again that the result is just: echo >>> >>>

vtolstov commented 6 years ago

You use packer binary from release page or build by hand? If by hand - what go version you have?

vtolstov commented 6 years ago

does it possible to unset x11 layout when running packer? Also what vnc client you are using? My question is - does it sends KeyEvent or it Sends somethink like QemuExtendedKeyEvent or other specific stuff...

shibumi commented 6 years ago

@vtolstov I use the official arch linux package of packer: https://git.archlinux.org/svntogit/community.git/tree/trunk/PKGBUILD?h=packages/packer-io This is version 1.1.3 build with go 1.9.3. The build process is running on one of our arch linux buildservers. (We build official arch linux images with it). There is no X11 layout set.

As VNC client I use gvncviewer, but this really doesn't matter. Because I attach the gvncviewer AFTER i saw the debug lines in the PACKER_LOG output. So it's impossible that any key has been sent to the process.

What you see on the screenshot is exactly what packer is producing. As I said.. it seems like the keycode for "<". (When I type "<" normally via VNC in the machine it works btw...)

I am pretty sure that the keycode has changed due to some new version of software. (Arch Linux is running new stable releases of every software). Therefore I am pretty sure that you will run in this behaviour with every other distribution in the future. It's just a matter of time..

vtolstov commented 6 years ago

I'm try to understand why exactly same packer version sends exactly same keycode that produced on you host different key inside vnc.. If that possible - can you try alpine qemu binary ?

Question about viewer - because i need to know what message sends you client when you see right symbol.

shibumi commented 6 years ago

@vtolstov Sure I can test the qemu binary on alpine linux. Give me some time. I need to install alpine on a machine, install qemu and packer and need to try it again.

I would also like to test some other things (thanks to @bastelfreak for this):

  1. Test your json file with another guest os (maybe debian?)
  2. Download your packer binary and try it with your official binary (maybe there is something wrong in the official arch linux package(?))
shibumi commented 6 years ago

@vtolstov What I can say at the moment is that on Arch Linux the keycode for "<" is definitly not 60. Because on Arch Linux keycode 60 is ">"

vtolstov commented 6 years ago

@shibumi yes, and this is strange too, because i have 60 for < and 62 for >

vtolstov commented 6 years ago

@shibumi you can use docker alpine image, i'm build my images from privileged docker container.

vtolstov commented 6 years ago

any news?

shibumi commented 6 years ago

sorry, I haven't time yet. I will probably test it this weekend and can say more.

shibumi commented 6 years ago

@vtolstov I have some issues with trying packer on alpine linux. Any idea?

/ # PACKER_LOG=1 ./packer build test.json
2018/02/11 02:42:14 [INFO] Packer version: 1.2.0
2018/02/11 02:42:14 Packer Target OS/Arch: linux amd64
2018/02/11 02:42:14 Built with Go Version: go1.9.4
2018/02/11 02:42:14 Detected home directory from env var: /root
2018/02/11 02:42:14 Using internal plugin for cloudstack
2018/02/11 02:42:14 Using internal plugin for docker
2018/02/11 02:42:14 Using internal plugin for file
2018/02/11 02:42:14 Using internal plugin for lxc
2018/02/11 02:42:14 Using internal plugin for lxd
2018/02/11 02:42:14 Using internal plugin for openstack
2018/02/11 02:42:14 Using internal plugin for qemu
2018/02/11 02:42:14 Using internal plugin for amazon-ebssurrogate
2018/02/11 02:42:14 Using internal plugin for oracle-oci
2018/02/11 02:42:14 Using internal plugin for parallels-iso
2018/02/11 02:42:14 Using internal plugin for triton
2018/02/11 02:42:14 Using internal plugin for vmware-vmx
2018/02/11 02:42:14 Using internal plugin for alicloud-ecs
2018/02/11 02:42:14 Using internal plugin for parallels-pvm
2018/02/11 02:42:14 Using internal plugin for amazon-ebsvolume
2018/02/11 02:42:14 Using internal plugin for azure-arm
2018/02/11 02:42:14 Using internal plugin for vmware-iso
2018/02/11 02:42:14 Using internal plugin for hyperv-vmcx
2018/02/11 02:42:14 Using internal plugin for null
2018/02/11 02:42:14 Using internal plugin for oracle-classic
2018/02/11 02:42:14 Using internal plugin for amazon-ebs
2018/02/11 02:42:14 Using internal plugin for amazon-chroot
2018/02/11 02:42:14 Using internal plugin for amazon-instance
2018/02/11 02:42:14 Using internal plugin for digitalocean
2018/02/11 02:42:14 Using internal plugin for googlecompute
2018/02/11 02:42:14 Using internal plugin for hyperv-iso
2018/02/11 02:42:14 Using internal plugin for ncloud
2018/02/11 02:42:14 Using internal plugin for oneandone
2018/02/11 02:42:14 Using internal plugin for scaleway
2018/02/11 02:42:14 Using internal plugin for virtualbox-ovf
2018/02/11 02:42:14 Using internal plugin for profitbricks
2018/02/11 02:42:14 Using internal plugin for virtualbox-iso
2018/02/11 02:42:14 Using internal plugin for puppet-server
2018/02/11 02:42:14 Using internal plugin for shell
2018/02/11 02:42:14 Using internal plugin for shell-local
2018/02/11 02:42:14 Using internal plugin for windows-restart
2018/02/11 02:42:14 Using internal plugin for windows-shell
2018/02/11 02:42:14 Using internal plugin for chef-client
2018/02/11 02:42:14 Using internal plugin for chef-solo
2018/02/11 02:42:14 Using internal plugin for powershell
2018/02/11 02:42:14 Using internal plugin for ansible-local
2018/02/11 02:42:14 Using internal plugin for converge
2018/02/11 02:42:14 Using internal plugin for salt-masterless
2018/02/11 02:42:14 Using internal plugin for ansible
2018/02/11 02:42:14 Using internal plugin for file
2018/02/11 02:42:14 Using internal plugin for puppet-masterless
2018/02/11 02:42:14 Using internal plugin for amazon-import
2018/02/11 02:42:14 Using internal plugin for docker-push
2018/02/11 02:42:14 Using internal plugin for manifest
2018/02/11 02:42:14 Using internal plugin for shell-local
2018/02/11 02:42:14 Using internal plugin for vagrant
2018/02/11 02:42:14 Using internal plugin for vsphere
2018/02/11 02:42:14 Using internal plugin for alicloud-import
2018/02/11 02:42:14 Using internal plugin for artifice
2018/02/11 02:42:14 Using internal plugin for docker-import
2018/02/11 02:42:14 Using internal plugin for docker-save
2018/02/11 02:42:14 Using internal plugin for atlas
2018/02/11 02:42:14 Using internal plugin for checksum
2018/02/11 02:42:14 Using internal plugin for googlecompute-export
2018/02/11 02:42:14 Using internal plugin for compress
2018/02/11 02:42:14 Using internal plugin for docker-tag
2018/02/11 02:42:14 Using internal plugin for vagrant-cloud
2018/02/11 02:42:14 Using internal plugin for vsphere-template
2018/02/11 02:42:14 Detected home directory from env var: /root
2018/02/11 02:42:14 Attempting to open config file: /root/.packerconfig
2018/02/11 02:42:14 [WARN] Config file doesn't exist: /root/.packerconfig
2018/02/11 02:42:14 Packer config: &{DisableCheckpoint:false DisableCheckpointSignature:false PluginMinPort:10000 PluginMaxPort:25000 Builders:map[lxc:/packer-PACKERSPACE-plugin-PACKERSPACE-packer-builder-lxc qemu:/packer-PACKERSPACE-plugin-PACKERSPACE-packer-builder-qemu null:/packer-PACKERSPACE-plugin-PACKERSPACE-packer-builder-null oracle-classic:/packer-PACKERSPACE-plugin-PACKERSPACE-packer-builder-oracle-classic lxd:/packer-PACKERSPACE-plugin-PACKERSPACE-packer-builder-lxd oracle-oci:/packer-PACKERSPACE-plugin-PACKERSPACE-packer-builder-oracle-oci alicloud-ecs:/packer-PACKERSPACE-plugin-PACKERSPACE-packer-builder-alicloud-ecs parallels-pvm:/packer-PACKERSPACE-plugin-PACKERSPACE-packer-builder-parallels-pvm oneandone:/packer-PACKERSPACE-plugin-PACKERSPACE-packer-builder-oneandone scaleway:/packer-PACKERSPACE-plugin-PACKERSPACE-packer-builder-scaleway virtualbox-ovf:/packer-PACKERSPACE-plugin-PACKERSPACE-packer-builder-virtualbox-ovf virtualbox-iso:/packer-PACKERSPACE-plugin-PACKERSPACE-packer-builder-virtualbox-iso file:/packer-PACKERSPACE-plugin-PACKERSPACE-packer-builder-file parallels-iso:/packer-PACKERSPACE-plugin-PACKERSPACE-packer-builder-parallels-iso vmware-vmx:/packer-PACKERSPACE-plugin-PACKERSPACE-packer-builder-vmware-vmx amazon-instance:/packer-PACKERSPACE-plugin-PACKERSPACE-packer-builder-amazon-instance amazon-chroot:/packer-PACKERSPACE-plugin-PACKERSPACE-packer-builder-amazon-chroot hyperv-iso:/packer-PACKERSPACE-plugin-PACKERSPACE-packer-builder-hyperv-iso docker:/packer-PACKERSPACE-plugin-PACKERSPACE-packer-builder-docker amazon-ebsvolume:/packer-PACKERSPACE-plugin-PACKERSPACE-packer-builder-amazon-ebsvolume azure-arm:/packer-PACKERSPACE-plugin-PACKERSPACE-packer-builder-azure-arm vmware-iso:/packer-PACKERSPACE-plugin-PACKERSPACE-packer-builder-vmware-iso amazon-ebs:/packer-PACKERSPACE-plugin-PACKERSPACE-packer-builder-amazon-ebs digitalocean:/packer-PACKERSPACE-plugin-PACKERSPACE-packer-builder-digitalocean googlecompute:/packer-PACKERSPACE-plugin-PACKERSPACE-packer-builder-googlecompute cloudstack:/packer-PACKERSPACE-plugin-PACKERSPACE-packer-builder-cloudstack openstack:/packer-PACKERSPACE-plugin-PACKERSPACE-packer-builder-openstack amazon-ebssurrogate:/packer-PACKERSPACE-plugin-PACKERSPACE-packer-builder-amazon-ebssurrogate triton:/packer-PACKERSPACE-plugin-PACKERSPACE-packer-builder-triton hyperv-vmcx:/packer-PACKERSPACE-plugin-PACKERSPACE-packer-builder-hyperv-vmcx ncloud:/packer-PACKERSPACE-plugin-PACKERSPACE-packer-builder-ncloud profitbricks:/packer-PACKERSPACE-plugin-PACKERSPACE-packer-builder-profitbricks] PostProcessors:map[googlecompute-export:/packer-PACKERSPACE-plugin-PACKERSPACE-packer-post-processor-googlecompute-export amazon-import:/packer-PACKERSPACE-plugin-PACKERSPACE-packer-post-processor-amazon-import manifest:/packer-PACKERSPACE-plugin-PACKERSPACE-packer-post-processor-manifest alicloud-import:/packer-PACKERSPACE-plugin-PACKERSPACE-packer-post-processor-alicloud-import artifice:/packer-PACKERSPACE-plugin-PACKERSPACE-packer-post-processor-artifice checksum:/packer-PACKERSPACE-plugin-PACKERSPACE-packer-post-processor-checksum docker-save:/packer-PACKERSPACE-plugin-PACKERSPACE-packer-post-processor-docker-save vagrant-cloud:/packer-PACKERSPACE-plugin-PACKERSPACE-packer-post-processor-vagrant-cloud docker-push:/packer-PACKERSPACE-plugin-PACKERSPACE-packer-post-processor-docker-push shell-local:/packer-PACKERSPACE-plugin-PACKERSPACE-packer-post-processor-shell-local compress:/packer-PACKERSPACE-plugin-PACKERSPACE-packer-post-processor-compress vsphere-template:/packer-PACKERSPACE-plugin-PACKERSPACE-packer-post-processor-vsphere-template vagrant:/packer-PACKERSPACE-plugin-PACKERSPACE-packer-post-processor-vagrant vsphere:/packer-PACKERSPACE-plugin-PACKERSPACE-packer-post-processor-vsphere docker-import:/packer-PACKERSPACE-plugin-PACKERSPACE-packer-post-processor-docker-import atlas:/packer-PACKERSPACE-plugin-PACKERSPACE-packer-post-processor-atlas docker-tag:/packer-PACKERSPACE-plugin-PACKERSPACE-packer-post-processor-docker-tag] Provisioners:map[puppet-server:/packer-PACKERSPACE-plugin-PACKERSPACE-packer-provisioner-puppet-server salt-masterless:/packer-PACKERSPACE-plugin-PACKERSPACE-packer-provisioner-salt-masterless ansible:/packer-PACKERSPACE-plugin-PACKERSPACE-packer-provisioner-ansible file:/packer-PACKERSPACE-plugin-PACKERSPACE-packer-provisioner-file puppet-masterless:/packer-PACKERSPACE-plugin-PACKERSPACE-packer-provisioner-puppet-masterless chef-solo:/packer-PACKERSPACE-plugin-PACKERSPACE-packer-provisioner-chef-solo powershell:/packer-PACKERSPACE-plugin-PACKERSPACE-packer-provisioner-powershell converge:/packer-PACKERSPACE-plugin-PACKERSPACE-packer-provisioner-converge shell-local:/packer-PACKERSPACE-plugin-PACKERSPACE-packer-provisioner-shell-local windows-shell:/packer-PACKERSPACE-plugin-PACKERSPACE-packer-provisioner-windows-shell ansible-local:/packer-PACKERSPACE-plugin-PACKERSPACE-packer-provisioner-ansible-local shell:/packer-PACKERSPACE-plugin-PACKERSPACE-packer-provisioner-shell windows-restart:/packer-PACKERSPACE-plugin-PACKERSPACE-packer-provisioner-windows-restart chef-client:/packer-PACKERSPACE-plugin-PACKERSPACE-packer-provisioner-chef-client]}
2018/02/11 02:42:14 Detected home directory from env var: /root
2018/02/11 02:42:14 Setting cache directory: /packer_cache
2018/02/11 02:42:14 Detected home directory from env var: /root
2018/02/11 02:42:14 Loading builder: qemu
2018/02/11 02:42:14 Plugin could not be found. Checking same directory as executable.
2018/02/11 02:42:14 Current exe path: /packer
2018/02/11 02:42:14 Creating plugin client for path: /packer
2018/02/11 02:42:14 Starting plugin: /packer []string{"/packer", "plugin", "packer-builder-qemu"}
2018/02/11 02:42:14 Waiting for RPC address for: /packer
2018/02/11 02:42:14 packer: 2018/02/11 02:42:14 [INFO] Packer version: 1.2.0
2018/02/11 02:42:14 packer: 2018/02/11 02:42:14 Packer Target OS/Arch: linux amd64
2018/02/11 02:42:14 packer: 2018/02/11 02:42:14 Built with Go Version: go1.9.4
2018/02/11 02:42:14 packer: 2018/02/11 02:42:14 Detected home directory from env var: /root
2018/02/11 02:42:14 packer: 2018/02/11 02:42:14 Attempting to open config file: /root/.packerconfig
2018/02/11 02:42:14 packer: 2018/02/11 02:42:14 [WARN] Config file doesn't exist: /root/.packerconfig
2018/02/11 02:42:14 packer: 2018/02/11 02:42:14 Packer config: &{DisableCheckpoint:false DisableCheckpointSignature:false PluginMinPort:10000 PluginMaxPort:25000 Builders:map[] PostProcessors:map[] Provisioners:map[]}
2018/02/11 02:42:14 packer: 2018/02/11 02:42:14 Detected home directory from env var: /root
2018/02/11 02:42:14 packer: 2018/02/11 02:42:14 Setting cache directory: /packer_cache
2018/02/11 02:42:14 packer: 2018/02/11 02:42:14 args: []string{"packer-builder-qemu"}
2018/02/11 02:42:14 packer: 2018/02/11 02:42:14 Plugin minimum port: 10000
2018/02/11 02:42:14 packer: 2018/02/11 02:42:14 Plugin maximum port: 25000
2018/02/11 02:42:14 packer: 2018/02/11 02:42:14 Detected home directory from env var: /root
2018/02/11 02:42:14 packer: 2018/02/11 02:42:14 Plugin address: unix /tmp/packer-plugin568161178
2018/02/11 02:42:14 packer: 2018/02/11 02:42:14 Waiting for connection...
2018/02/11 02:42:14 packer: 2018/02/11 02:42:14 Serving a plugin connection...
2018/02/11 02:42:14 ui: qemu output will be in this color.
2018/02/11 02:42:14 ui: 
2018/02/11 02:42:14 Build debug mode: false
2018/02/11 02:42:14 Force build: false
2018/02/11 02:42:14 On error: 
2018/02/11 02:42:14 Preparing build: qemu
qemu output will be in this color.

2018/02/11 02:42:14 packer: 2018/02/11 02:42:14 use specified accelerator: kvm
2018/02/11 02:42:14 ui: Warnings for build 'qemu':

2018/02/11 02:42:14 ui: * A checksum type of 'none' was specified. Since ISO files are so big,
a checksum is highly recommended.
2018/02/11 02:42:14 ui: 
2018/02/11 02:42:14 Waiting on builds to complete...
2018/02/11 02:42:14 Starting build run: qemu
2018/02/11 02:42:14 Running builder: qemu
2018/02/11 02:42:14 [INFO] (telemetry) Starting builder qemu
Warnings for build 'qemu':

* A checksum type of 'none' was specified. Since ISO files are so big,
a checksum is highly recommended.
2018/02/11 02:42:14 packer: 2018/02/11 02:42:14 Qemu path: /usr/bin/qemu-system-x86_64, Qemu Image page: /usr/bin/qemu-img

2018/02/11 02:42:14 ui error: ==> qemu: No byte serving support. The HTTP server must support Accept-Ranges=bytes
==> qemu: No byte serving support. The HTTP server must support Accept-Ranges=bytes
2018/02/11 02:42:14 [INFO] (telemetry) ending qemu
2018/02/11 02:42:14 [INFO] (telemetry) found error: No byte serving support. The HTTP server must support Accept-Ranges=bytes
2018/02/11 02:42:14 ui error: Build 'qemu' errored: No byte serving support. The HTTP server must support Accept-Ranges=bytes
2018/02/11 02:42:14 Builds completed. Waiting on interrupt barrier...
2018/02/11 02:42:14 machine readable: error-count []string{"1"}
2018/02/11 02:42:14 ui error: 
==> Some builds didn't complete successfully and had errors:
2018/02/11 02:42:14 machine readable: qemu,error []string{"No byte serving support. The HTTP server must support Accept-Ranges=bytes"}
2018/02/11 02:42:14 ui error: --> qemu: No byte serving support. The HTTP server must support Accept-Ranges=bytes
2018/02/11 02:42:14 ui: 
==> Builds finished but no artifacts were created.
2018/02/11 02:42:14 [INFO] (telemetry) Finalizing.
Build 'qemu' errored: No byte serving support. The HTTP server must support Accept-Ranges=bytes

==> Some builds didn't complete successfully and had errors:
--> qemu: No byte serving support. The HTTP server must support Accept-Ranges=bytes

==> Builds finished but no artifacts were created.
2018/02/11 02:42:15 waiting for all plugin processes to complete...
2018/02/11 02:42:15 /packer: plugin process exited
aikchar commented 6 years ago

I am running into the same symptoms on macOS 10.12.6. Cannot repro on Ubuntu 17.10.

I have qemu from MacPorts on macOS.

$ port installed | grep qemu
  qemu @2.11.0_0+cocoa+target_i386+target_x86_64+usb+vnc (active)

Here's snippet of my config:

{
    "builders": [
        {
            "boot_command": [
                "S<enter>",
                "cat <<EOF >>install.conf<enter>",
                "Choose your keyboard layout = default<enter>",
================== SNIP ==================
                "EOF<enter>",
                "install -af install.conf && reboot<enter>"
            ],
            "boot_wait": "30s",
            "disk_interface": "virtio",
            "disk_size": 80000,
            "format": "qcow2",
            "headless": true,
            "iso_checksum": "b7994d29c7db3087db65158901d700fb7d10500b9b7496c1d86b285cabce0a2b",
            "iso_checksum_type": "sha256",
            "iso_checksum_url": "{{user `iso_mirror`}}/pub/OpenBSD/6.2/amd64/SHA256",
            "iso_url": "{{user `iso_mirror`}}/pub/OpenBSD/6.2/amd64/install62.iso",
            "net_device": "e1000",
            "output_directory": "openbsd62",
            "shutdown_command": "/sbin/halt -p",
            "type": "qemu",
            "ssh_host_port_min": 2222,
            "ssh_host_port_max": 2229,
            "ssh_password": "root",
            "ssh_port": 22,
            "ssh_username": "root",
            "ssh_wait_timeout": "1800s",
            "vm_name": "openbsd62.qcow2"
        }
    ],
    "post-processors": [],
    "provisioners": [],
    "variables": {
        "iso_mirror": "http://ftp.openbsd.org"
    }
}

As can be seen in the screenshot, << does not get printed.

screen

==> qemu: Typing the boot command over VNC...
2018/02/27 13:47:12 packer: 2018/02/27 13:47:12 Sending char 'S', code 83, shift true
2018/02/27 13:47:12 packer: 2018/02/27 13:47:12 Special code '<enter>' found, replacing with: 65293
2018/02/27 13:47:13 packer: 2018/02/27 13:47:13 Sending char 'c', code 99, shift false
2018/02/27 13:47:13 packer: 2018/02/27 13:47:13 Sending char 'a', code 97, shift false
2018/02/27 13:47:13 packer: 2018/02/27 13:47:13 Sending char 't', code 116, shift false
2018/02/27 13:47:13 packer: 2018/02/27 13:47:13 Sending char ' ', code 32, shift false
2018/02/27 13:47:14 packer: 2018/02/27 13:47:14 Sending char '<', code 60, shift true
2018/02/27 13:47:14 packer: 2018/02/27 13:47:14 Sending char '<', code 60, shift true
2018/02/27 13:47:14 packer: 2018/02/27 13:47:14 Sending char 'E', code 69, shift true
2018/02/27 13:47:15 packer: 2018/02/27 13:47:15 Sending char 'O', code 79, shift true
2018/02/27 13:47:15 packer: 2018/02/27 13:47:15 Sending char 'F', code 70, shift true
2018/02/27 13:47:15 packer: 2018/02/27 13:47:15 Sending char ' ', code 32, shift false
2018/02/27 13:47:16 packer: 2018/02/27 13:47:16 Sending char '>', code 62, shift true
2018/02/27 13:47:16 packer: 2018/02/27 13:47:16 Sending char '>', code 62, shift true
2018/02/27 13:47:16 packer: 2018/02/27 13:47:16 Sending char 'i', code 105, shift false
2018/02/27 13:47:16 packer: 2018/02/27 13:47:16 Sending char 'n', code 110, shift false
2018/02/27 13:47:17 packer: 2018/02/27 13:47:17 Sending char 's', code 115, shift false
2018/02/27 13:47:17 packer: 2018/02/27 13:47:17 Sending char 't', code 116, shift false
2018/02/27 13:47:17 packer: 2018/02/27 13:47:17 Sending char 'a', code 97, shift false
2018/02/27 13:47:18 packer: 2018/02/27 13:47:18 Sending char 'l', code 108, shift false
2018/02/27 13:47:18 packer: 2018/02/27 13:47:18 Sending char 'l', code 108, shift false
2018/02/27 13:47:18 packer: 2018/02/27 13:47:18 Sending char '.', code 46, shift false
$ env PACKER_LOG=1 ~/bin/packer build openbsd-6.2-x86_64.json 2018/02/27 13:46:39 [INFO] Packer version: 1.2.1 2018/02/27 13:46:39 Packer Target OS/Arch: darwin amd64 2018/02/27 13:46:39 Built with Go Version: go1.10 2018/02/27 13:46:39 Detected home directory from env var: /Users/REDACTED 2018/02/27 13:46:39 Using internal plugin for digitalocean 2018/02/27 13:46:39 Using internal plugin for hyperv-iso 2018/02/27 13:46:39 Using internal plugin for vmware-vmx 2018/02/27 13:46:39 Using internal plugin for amazon-instance 2018/02/27 13:46:39 Using internal plugin for virtualbox-ovf 2018/02/27 13:46:39 Using internal plugin for vmware-iso 2018/02/27 13:46:39 Using internal plugin for azure-arm 2018/02/27 13:46:39 Using internal plugin for cloudstack 2018/02/27 13:46:39 Using internal plugin for virtualbox-iso 2018/02/27 13:46:39 Using internal plugin for parallels-pvm 2018/02/27 13:46:39 Using internal plugin for amazon-ebsvolume 2018/02/27 13:46:39 Using internal plugin for googlecompute 2018/02/27 13:46:39 Using internal plugin for oracle-classic 2018/02/27 13:46:39 Using internal plugin for triton 2018/02/27 13:46:39 Using internal plugin for docker 2018/02/27 13:46:39 Using internal plugin for lxd 2018/02/27 13:46:39 Using internal plugin for ncloud 2018/02/27 13:46:39 Using internal plugin for profitbricks 2018/02/27 13:46:39 Using internal plugin for qemu 2018/02/27 13:46:39 Using internal plugin for amazon-chroot 2018/02/27 13:46:39 Using internal plugin for amazon-ebssurrogate 2018/02/27 13:46:39 Using internal plugin for oracle-oci 2018/02/27 13:46:39 Using internal plugin for oneandone 2018/02/27 13:46:39 Using internal plugin for openstack 2018/02/27 13:46:39 Using internal plugin for parallels-iso 2018/02/27 13:46:39 Using internal plugin for scaleway 2018/02/27 13:46:39 Using internal plugin for amazon-ebs 2018/02/27 13:46:39 Using internal plugin for hyperv-vmcx 2018/02/27 13:46:39 Using internal plugin for lxc 2018/02/27 13:46:39 Using internal plugin for alicloud-ecs 2018/02/27 13:46:39 Using internal plugin for file 2018/02/27 13:46:39 Using internal plugin for null 2018/02/27 13:46:39 Using internal plugin for converge 2018/02/27 13:46:39 Using internal plugin for file 2018/02/27 13:46:39 Using internal plugin for powershell 2018/02/27 13:46:39 Using internal plugin for shell 2018/02/27 13:46:39 Using internal plugin for windows-restart 2018/02/27 13:46:39 Using internal plugin for ansible-local 2018/02/27 13:46:39 Using internal plugin for chef-client 2018/02/27 13:46:39 Using internal plugin for puppet-server 2018/02/27 13:46:39 Using internal plugin for windows-shell 2018/02/27 13:46:39 Using internal plugin for ansible 2018/02/27 13:46:39 Using internal plugin for chef-solo 2018/02/27 13:46:39 Using internal plugin for puppet-masterless 2018/02/27 13:46:39 Using internal plugin for salt-masterless 2018/02/27 13:46:39 Using internal plugin for shell-local 2018/02/27 13:46:39 Using internal plugin for artifice 2018/02/27 13:46:39 Using internal plugin for docker-save 2018/02/27 13:46:39 Using internal plugin for docker-push 2018/02/27 13:46:39 Using internal plugin for manifest 2018/02/27 13:46:39 Using internal plugin for shell-local 2018/02/27 13:46:39 Using internal plugin for amazon-import 2018/02/27 13:46:39 Using internal plugin for checksum 2018/02/27 13:46:39 Using internal plugin for compress 2018/02/27 13:46:39 Using internal plugin for docker-tag 2018/02/27 13:46:39 Using internal plugin for vagrant 2018/02/27 13:46:39 Using internal plugin for vagrant-cloud 2018/02/27 13:46:39 Using internal plugin for vsphere-template 2018/02/27 13:46:39 Using internal plugin for alicloud-import 2018/02/27 13:46:39 Using internal plugin for atlas 2018/02/27 13:46:39 Using internal plugin for docker-import 2018/02/27 13:46:39 Using internal plugin for googlecompute-export 2018/02/27 13:46:39 Using internal plugin for vsphere 2018/02/27 13:46:39 Detected home directory from env var: /Users/REDACTED 2018/02/27 13:46:39 Attempting to open config file: /Users/REDACTED/.packerconfig 2018/02/27 13:46:39 [WARN] Config file doesn't exist: /Users/REDACTED/.packerconfig 2018/02/27 13:46:39 Packer config: &{DisableCheckpoint:false DisableCheckpointSignature:false PluginMinPort:10000 PluginMaxPort:25000 Builders:map[hyperv-iso:/Users/REDACTED/bin/packer-PACKERSPACE-plugin-PACKERSPACE-packer-builder-hyperv-iso triton:/Users/REDACTED/bin/packer-PACKERSPACE-plugin-PACKERSPACE-packer-builder-triton docker:/Users/REDACTED/bin/packer-PACKERSPACE-plugin-PACKERSPACE-packer-builder-docker alicloud-ecs:/Users/REDACTED/bin/packer-PACKERSPACE-plugin-PACKERSPACE-packer-builder-alicloud-ecs vmware-iso:/Users/REDACTED/bin/packer-PACKERSPACE-plugin-PACKERSPACE-packer-builder-vmware-iso hyperv-vmcx:/Users/REDACTED/bin/packer-PACKERSPACE-plugin-PACKERSPACE-packer-builder-hyperv-vmcx virtualbox-iso:/Users/REDACTED/bin/packer-PACKERSPACE-plugin-PACKERSPACE-packer-builder-virtualbox-iso amazon-ebssurrogate:/Users/REDACTED/bin/packer-PACKERSPACE-plugin-PACKERSPACE-packer-builder-amazon-ebssurrogate lxc:/Users/REDACTED/bin/packer-PACKERSPACE-plugin-PACKERSPACE-packer-builder-lxc parallels-pvm:/Users/REDACTED/bin/packer-PACKERSPACE-plugin-PACKERSPACE-packer-builder-parallels-pvm oracle-classic:/Users/REDACTED/bin/packer-PACKERSPACE-plugin-PACKERSPACE-packer-builder-oracle-classic openstack:/Users/REDACTED/bin/packer-PACKERSPACE-plugin-PACKERSPACE-packer-builder-openstack amazon-ebs:/Users/REDACTED/bin/packer-PACKERSPACE-plugin-PACKERSPACE-packer-builder-amazon-ebs ncloud:/Users/REDACTED/bin/packer-PACKERSPACE-plugin-PACKERSPACE-packer-builder-ncloud amazon-chroot:/Users/REDACTED/bin/packer-PACKERSPACE-plugin-PACKERSPACE-packer-builder-amazon-chroot scaleway:/Users/REDACTED/bin/packer-PACKERSPACE-plugin-PACKERSPACE-packer-builder-scaleway vmware-vmx:/Users/REDACTED/bin/packer-PACKERSPACE-plugin-PACKERSPACE-packer-builder-vmware-vmx amazon-instance:/Users/REDACTED/bin/packer-PACKERSPACE-plugin-PACKERSPACE-packer-builder-amazon-instance virtualbox-ovf:/Users/REDACTED/bin/packer-PACKERSPACE-plugin-PACKERSPACE-packer-builder-virtualbox-ovf cloudstack:/Users/REDACTED/bin/packer-PACKERSPACE-plugin-PACKERSPACE-packer-builder-cloudstack parallels-iso:/Users/REDACTED/bin/packer-PACKERSPACE-plugin-PACKERSPACE-packer-builder-parallels-iso null:/Users/REDACTED/bin/packer-PACKERSPACE-plugin-PACKERSPACE-packer-builder-null azure-arm:/Users/REDACTED/bin/packer-PACKERSPACE-plugin-PACKERSPACE-packer-builder-azure-arm googlecompute:/Users/REDACTED/bin/packer-PACKERSPACE-plugin-PACKERSPACE-packer-builder-googlecompute lxd:/Users/REDACTED/bin/packer-PACKERSPACE-plugin-PACKERSPACE-packer-builder-lxd oneandone:/Users/REDACTED/bin/packer-PACKERSPACE-plugin-PACKERSPACE-packer-builder-oneandone amazon-ebsvolume:/Users/REDACTED/bin/packer-PACKERSPACE-plugin-PACKERSPACE-packer-builder-amazon-ebsvolume profitbricks:/Users/REDACTED/bin/packer-PACKERSPACE-plugin-PACKERSPACE-packer-builder-profitbricks oracle-oci:/Users/REDACTED/bin/packer-PACKERSPACE-plugin-PACKERSPACE-packer-builder-oracle-oci digitalocean:/Users/REDACTED/bin/packer-PACKERSPACE-plugin-PACKERSPACE-packer-builder-digitalocean qemu:/Users/REDACTED/bin/packer-PACKERSPACE-plugin-PACKERSPACE-packer-builder-qemu file:/Users/REDACTED/bin/packer-PACKERSPACE-plugin-PACKERSPACE-packer-builder-file] PostProcessors:map[vagrant:/Users/REDACTED/bin/packer-PACKERSPACE-plugin-PACKERSPACE-packer-post-processor-vagrant shell-local:/Users/REDACTED/bin/packer-PACKERSPACE-plugin-PACKERSPACE-packer-post-processor-shell-local docker-tag:/Users/REDACTED/bin/packer-PACKERSPACE-plugin-PACKERSPACE-packer-post-processor-docker-tag googlecompute-export:/Users/REDACTED/bin/packer-PACKERSPACE-plugin-PACKERSPACE-packer-post-processor-googlecompute-export checksum:/Users/REDACTED/bin/packer-PACKERSPACE-plugin-PACKERSPACE-packer-post-processor-checksum docker-push:/Users/REDACTED/bin/packer-PACKERSPACE-plugin-PACKERSPACE-packer-post-processor-docker-push manifest:/Users/REDACTED/bin/packer-PACKERSPACE-plugin-PACKERSPACE-packer-post-processor-manifest compress:/Users/REDACTED/bin/packer-PACKERSPACE-plugin-PACKERSPACE-packer-post-processor-compress alicloud-import:/Users/REDACTED/bin/packer-PACKERSPACE-plugin-PACKERSPACE-packer-post-processor-alicloud-import atlas:/Users/REDACTED/bin/packer-PACKERSPACE-plugin-PACKERSPACE-packer-post-processor-atlas docker-import:/Users/REDACTED/bin/packer-PACKERSPACE-plugin-PACKERSPACE-packer-post-processor-docker-import docker-save:/Users/REDACTED/bin/packer-PACKERSPACE-plugin-PACKERSPACE-packer-post-processor-docker-save amazon-import:/Users/REDACTED/bin/packer-PACKERSPACE-plugin-PACKERSPACE-packer-post-processor-amazon-import vagrant-cloud:/Users/REDACTED/bin/packer-PACKERSPACE-plugin-PACKERSPACE-packer-post-processor-vagrant-cloud vsphere-template:/Users/REDACTED/bin/packer-PACKERSPACE-plugin-PACKERSPACE-packer-post-processor-vsphere-template vsphere:/Users/REDACTED/bin/packer-PACKERSPACE-plugin-PACKERSPACE-packer-post-processor-vsphere artifice:/Users/REDACTED/bin/packer-PACKERSPACE-plugin-PACKERSPACE-packer-post-processor-artifice] Provisioners:map[ansible:/Users/REDACTED/bin/packer-PACKERSPACE-plugin-PACKERSPACE-packer-provisioner-ansible puppet-masterless:/Users/REDACTED/bin/packer-PACKERSPACE-plugin-PACKERSPACE-packer-provisioner-puppet-masterless salt-masterless:/Users/REDACTED/bin/packer-PACKERSPACE-plugin-PACKERSPACE-packer-provisioner-salt-masterless chef-client:/Users/REDACTED/bin/packer-PACKERSPACE-plugin-PACKERSPACE-packer-provisioner-chef-client windows-shell:/Users/REDACTED/bin/packer-PACKERSPACE-plugin-PACKERSPACE-packer-provisioner-windows-shell chef-solo:/Users/REDACTED/bin/packer-PACKERSPACE-plugin-PACKERSPACE-packer-provisioner-chef-solo shell:/Users/REDACTED/bin/packer-PACKERSPACE-plugin-PACKERSPACE-packer-provisioner-shell puppet-server:/Users/REDACTED/bin/packer-PACKERSPACE-plugin-PACKERSPACE-packer-provisioner-puppet-server converge:/Users/REDACTED/bin/packer-PACKERSPACE-plugin-PACKERSPACE-packer-provisioner-converge file:/Users/REDACTED/bin/packer-PACKERSPACE-plugin-PACKERSPACE-packer-provisioner-file powershell:/Users/REDACTED/bin/packer-PACKERSPACE-plugin-PACKERSPACE-packer-provisioner-powershell windows-restart:/Users/REDACTED/bin/packer-PACKERSPACE-plugin-PACKERSPACE-packer-provisioner-windows-restart ansible-local:/Users/REDACTED/bin/packer-PACKERSPACE-plugin-PACKERSPACE-packer-provisioner-ansible-local shell-local:/Users/REDACTED/bin/packer-PACKERSPACE-plugin-PACKERSPACE-packer-provisioner-shell-local]} 2018/02/27 13:46:39 Detected home directory from env var: /Users/REDACTED 2018/02/27 13:46:39 Setting cache directory: /Users/REDACTED/repos/packer-configs/packer_cache 2018/02/27 13:46:39 Detected home directory from env var: /Users/REDACTED 2018/02/27 13:46:39 Loading builder: qemu 2018/02/27 13:46:39 Plugin could not be found. Checking same directory as executable. 2018/02/27 13:46:39 Current exe path: /Users/REDACTED/bin/packer 2018/02/27 13:46:39 Creating plugin client for path: /Users/REDACTED/bin/packer 2018/02/27 13:46:39 Starting plugin: /Users/REDACTED/bin/packer []string{"/Users/REDACTED/bin/packer", "plugin", "packer-builder-qemu"} 2018/02/27 13:46:39 Waiting for RPC address for: /Users/REDACTED/bin/packer 2018/02/27 13:46:39 packer: 2018/02/27 13:46:39 [INFO] Packer version: 1.2.1 2018/02/27 13:46:39 packer: 2018/02/27 13:46:39 Packer Target OS/Arch: darwin amd64 2018/02/27 13:46:39 packer: 2018/02/27 13:46:39 Built with Go Version: go1.10 2018/02/27 13:46:39 packer: 2018/02/27 13:46:39 Detected home directory from env var: /Users/REDACTED 2018/02/27 13:46:39 packer: 2018/02/27 13:46:39 Attempting to open config file: /Users/REDACTED/.packerconfig 2018/02/27 13:46:39 packer: 2018/02/27 13:46:39 [WARN] Config file doesn't exist: /Users/REDACTED/.packerconfig 2018/02/27 13:46:39 packer: 2018/02/27 13:46:39 Packer config: &{DisableCheckpoint:false DisableCheckpointSignature:false PluginMinPort:10000 PluginMaxPort:25000 Builders:map[] PostProcessors:map[] Provisioners:map[]} 2018/02/27 13:46:39 packer: 2018/02/27 13:46:39 Detected home directory from env var: /Users/REDACTED 2018/02/27 13:46:39 packer: 2018/02/27 13:46:39 Setting cache directory: /Users/REDACTED/repos/packer-configs/packer_cache 2018/02/27 13:46:39 packer: 2018/02/27 13:46:39 args: []string{"packer-builder-qemu"} 2018/02/27 13:46:39 packer: 2018/02/27 13:46:39 Detected home directory from env var: /Users/REDACTED 2018/02/27 13:46:39 packer: 2018/02/27 13:46:39 Plugin minimum port: 10000 2018/02/27 13:46:39 packer: 2018/02/27 13:46:39 Plugin maximum port: 25000 2018/02/27 13:46:39 packer: 2018/02/27 13:46:39 Plugin address: unix /var/folders/cd/59vmvhd93_g042_b779256jw00bdld/T/packer-plugin090374948 2018/02/27 13:46:39 packer: 2018/02/27 13:46:39 Waiting for connection... 2018/02/27 13:46:39 packer: 2018/02/27 13:46:39 Serving a plugin connection... 2018/02/27 13:46:39 Loading provisioner: shell 2018/02/27 13:46:39 Plugin could not be found. Checking same directory as executable. 2018/02/27 13:46:39 Current exe path: /Users/REDACTED/bin/packer 2018/02/27 13:46:39 Creating plugin client for path: /Users/REDACTED/bin/packer 2018/02/27 13:46:39 Starting plugin: /Users/REDACTED/bin/packer []string{"/Users/REDACTED/bin/packer", "plugin", "packer-provisioner-shell"} 2018/02/27 13:46:39 Waiting for RPC address for: /Users/REDACTED/bin/packer 2018/02/27 13:46:39 packer: 2018/02/27 13:46:39 [INFO] Packer version: 1.2.1 2018/02/27 13:46:39 packer: 2018/02/27 13:46:39 Packer Target OS/Arch: darwin amd64 2018/02/27 13:46:39 packer: 2018/02/27 13:46:39 Built with Go Version: go1.10 2018/02/27 13:46:39 packer: 2018/02/27 13:46:39 Detected home directory from env var: /Users/REDACTED 2018/02/27 13:46:39 packer: 2018/02/27 13:46:39 Attempting to open config file: /Users/REDACTED/.packerconfig 2018/02/27 13:46:39 packer: 2018/02/27 13:46:39 [WARN] Config file doesn't exist: /Users/REDACTED/.packerconfig 2018/02/27 13:46:39 packer: 2018/02/27 13:46:39 Packer config: &{DisableCheckpoint:false DisableCheckpointSignature:false PluginMinPort:10000 PluginMaxPort:25000 Builders:map[] PostProcessors:map[] Provisioners:map[]} 2018/02/27 13:46:39 packer: 2018/02/27 13:46:39 Detected home directory from env var: /Users/REDACTED 2018/02/27 13:46:39 packer: 2018/02/27 13:46:39 Setting cache directory: /Users/REDACTED/repos/packer-configs/packer_cache 2018/02/27 13:46:39 packer: 2018/02/27 13:46:39 Detected home directory from env var: /Users/REDACTED 2018/02/27 13:46:39 packer: 2018/02/27 13:46:39 args: []string{"packer-provisioner-shell"} 2018/02/27 13:46:39 packer: 2018/02/27 13:46:39 Plugin minimum port: 10000 2018/02/27 13:46:39 packer: 2018/02/27 13:46:39 Plugin maximum port: 25000 2018/02/27 13:46:39 packer: 2018/02/27 13:46:39 Plugin address: unix /var/folders/cd/59vmvhd93_g042_b779256jw00bdld/T/packer-plugin087824806 2018/02/27 13:46:39 packer: 2018/02/27 13:46:39 Waiting for connection... 2018/02/27 13:46:39 packer: 2018/02/27 13:46:39 Serving a plugin connection... 2018/02/27 13:46:39 ui: qemu output will be in this color. 2018/02/27 13:46:39 ui: 2018/02/27 13:46:39 Build debug mode: false 2018/02/27 13:46:39 Force build: false 2018/02/27 13:46:39 On error: 2018/02/27 13:46:39 Preparing build: qemu qemu output will be in this color. 2018/02/27 13:46:39 packer: 2018/02/27 13:46:39 use detected accelerator: tcg 2018/02/27 13:46:39 Waiting on builds to complete... 2018/02/27 13:46:39 Starting build run: qemu 2018/02/27 13:46:39 Running builder: qemu 2018/02/27 13:46:39 [INFO] (telemetry) Starting builder qemu 2018/02/27 13:46:39 packer: 2018/02/27 13:46:39 Qemu path: /opt/local/bin/qemu-system-x86_64, Qemu Image page: /opt/local/bin/qemu-img 2018/02/27 13:46:39 ui: ==> qemu: Downloading or copying ISO ==> qemu: Downloading or copying ISO 2018/02/27 13:46:39 packer: 2018/02/27 13:46:39 Acquiring lock to download: http://ftp.openbsd.org/pub/OpenBSD/6.2/amd64/install62.iso 2018/02/27 13:46:39 packer: 2018/02/27 13:46:39 Verifying checksum of /Users/REDACTED/repos/packer-configs/packer_cache/d56b4f393beacc5c8d3707a93a0226d79854f3380a0352dae1de713f1d02fd3d.iso 2018/02/27 13:46:40 ui: qemu: Found already downloaded, initial checksum matched, no download needed: http://ftp.openbsd.org/pub/OpenBSD/6.2/amd64/install62.iso qemu: Found already downloaded, initial checksum matched, no download needed: http://ftp.openbsd.org/pub/OpenBSD/6.2/amd64/install62.iso 2018/02/27 13:46:40 packer: 2018/02/27 13:46:40 No floppy files specified. Floppy disk will not be made. 2018/02/27 13:46:40 ui: ==> qemu: Creating hard drive... ==> qemu: Creating hard drive... 2018/02/27 13:46:40 packer: 2018/02/27 13:46:40 Executing qemu-img: []string{"create", "-f", "qcow2", "openbsd62/openbsd62.qcow2", "80000M"} 2018/02/27 13:46:40 packer: 2018/02/27 13:46:40 stdout: Formatting 'openbsd62/openbsd62.qcow2', fmt=qcow2 size=83886080000 cluster_size=65536 lazy_refcounts=off refcount_bits=16 2018/02/27 13:46:40 packer: 2018/02/27 13:46:40 stderr: 2018/02/27 13:46:40 packer: 2018/02/27 13:46:40 Looking for available communicator (SSH, WinRM, etc) port between 2222 and 2229 2018/02/27 13:46:40 packer: 2018/02/27 13:46:40 Trying port: 2229 2018/02/27 13:46:40 ui: ==> qemu: Found port for communicator (SSH, WinRM, etc): 2229. ==> qemu: Found port for communicator (SSH, WinRM, etc): 2229. 2018/02/27 13:46:40 ui: ==> qemu: Looking for available port between 5900 and 6000 on 127.0.0.1 2018/02/27 13:46:40 packer: 2018/02/27 13:46:40 Looking for available port between 5900 and 6000 on 127.0.0.1 2018/02/27 13:46:40 packer: 2018/02/27 13:46:40 Trying port: 5965 ==> qemu: Looking for available port between 5900 and 6000 on 127.0.0.1 2018/02/27 13:46:40 packer: 2018/02/27 13:46:40 Found available VNC port: 5965 on IP: 127.0.0.1 2018/02/27 13:46:40 ui: ==> qemu: Starting VM, booting from CD-ROM ==> qemu: Starting VM, booting from CD-ROM 2018/02/27 13:46:40 packer: 2018/02/27 13:46:40 Qemu --version output: QEMU emulator version 2.11.0 2018/02/27 13:46:40 packer: Copyright (c) 2003-2017 Fabrice Bellard and the QEMU Project developers 2018/02/27 13:46:40 packer: 2018/02/27 13:46:40 Qemu version: 2.11.0 2018/02/27 13:46:40 ui: qemu: The VM will be run headless, without a GUI. If you want to qemu: view the screen of the VM, connect via VNC without a password to qemu: vnc://127.0.0.1:5965 qemu: The VM will be run headless, without a GUI. If you want to 2018/02/27 13:46:40 packer: 2018/02/27 13:46:40 Qemu Builder has no floppy files, not attaching a floppy. qemu: view the screen of the VM, connect via VNC without a password to qemu: vnc://127.0.0.1:5965 2018/02/27 13:46:40 packer: 2018/02/27 13:46:40 Executing /opt/local/bin/qemu-system-x86_64: []string{"-m", "512M", "-name", "openbsd62.qcow2", "-machine", "type=pc,accel=tcg", "-netdev", "user,id=user.0,hostfwd=tcp::2229-:22", "-device", "e1000,netdev=user.0", "-cdrom", "/Users/REDACTED/repos/packer-configs/packer_cache/d56b4f393beacc5c8d3707a93a0226d79854f3380a0352dae1de713f1d02fd3d.iso", "-boot", "once=d", "-vnc", "127.0.0.1:65", "-drive", "file=openbsd62/openbsd62.qcow2,if=virtio,cache=writeback,discard=ignore,format=qcow2"} 2018/02/27 13:46:40 packer: 2018/02/27 13:46:40 Started Qemu. Pid: 68847 2018/02/27 13:46:42 ui: ==> qemu: Waiting 30s for boot... ==> qemu: Waiting 30s for boot... 2018/02/27 13:47:12 ui: ==> qemu: Connecting to VM via VNC ==> qemu: Connecting to VM via VNC 2018/02/27 13:47:12 packer: 2018/02/27 13:47:12 Connected to VNC desktop: QEMU (openbsd62.qcow2) 2018/02/27 13:47:12 ui: ==> qemu: Typing the boot command over VNC... ==> qemu: Typing the boot command over VNC... 2018/02/27 13:47:12 packer: 2018/02/27 13:47:12 Sending char 'S', code 83, shift true 2018/02/27 13:47:12 packer: 2018/02/27 13:47:12 Special code '' found, replacing with: 65293 2018/02/27 13:47:13 packer: 2018/02/27 13:47:13 Sending char 'c', code 99, shift false 2018/02/27 13:47:13 packer: 2018/02/27 13:47:13 Sending char 'a', code 97, shift false 2018/02/27 13:47:13 packer: 2018/02/27 13:47:13 Sending char 't', code 116, shift false 2018/02/27 13:47:13 packer: 2018/02/27 13:47:13 Sending char ' ', code 32, shift false 2018/02/27 13:47:14 packer: 2018/02/27 13:47:14 Sending char '<', code 60, shift true 2018/02/27 13:47:14 packer: 2018/02/27 13:47:14 Sending char '<', code 60, shift true 2018/02/27 13:47:14 packer: 2018/02/27 13:47:14 Sending char 'E', code 69, shift true 2018/02/27 13:47:15 packer: 2018/02/27 13:47:15 Sending char 'O', code 79, shift true 2018/02/27 13:47:15 packer: 2018/02/27 13:47:15 Sending char 'F', code 70, shift true 2018/02/27 13:47:15 packer: 2018/02/27 13:47:15 Sending char ' ', code 32, shift false 2018/02/27 13:47:16 packer: 2018/02/27 13:47:16 Sending char '>', code 62, shift true 2018/02/27 13:47:16 packer: 2018/02/27 13:47:16 Sending char '>', code 62, shift true 2018/02/27 13:47:16 packer: 2018/02/27 13:47:16 Sending char 'i', code 105, shift false 2018/02/27 13:47:16 packer: 2018/02/27 13:47:16 Sending char 'n', code 110, shift false 2018/02/27 13:47:17 packer: 2018/02/27 13:47:17 Sending char 's', code 115, shift false 2018/02/27 13:47:17 packer: 2018/02/27 13:47:17 Sending char 't', code 116, shift false 2018/02/27 13:47:17 packer: 2018/02/27 13:47:17 Sending char 'a', code 97, shift false 2018/02/27 13:47:18 packer: 2018/02/27 13:47:18 Sending char 'l', code 108, shift false 2018/02/27 13:47:18 packer: 2018/02/27 13:47:18 Sending char 'l', code 108, shift false 2018/02/27 13:47:18 packer: 2018/02/27 13:47:18 Sending char '.', code 46, shift false 2018/02/27 13:47:19 packer: 2018/02/27 13:47:19 Sending char 'c', code 99, shift false 2018/02/27 13:47:19 packer: 2018/02/27 13:47:19 Sending char 'o', code 111, shift false 2018/02/27 13:47:19 packer: 2018/02/27 13:47:19 Sending char 'n', code 110, shift false 2018/02/27 13:47:20 packer: 2018/02/27 13:47:20 Sending char 'f', code 102, shift false 2018/02/27 13:47:20 packer: 2018/02/27 13:47:20 Special code '' found, replacing with: 65293 2018/02/27 13:47:20 packer: 2018/02/27 13:47:20 Sending char 'C', code 67, shift true
vtolstov commented 6 years ago

@aikchar as i see in you case not << and nor >> passed to vnc

vtolstov commented 6 years ago

@shibumi you need to recheck you iso url

2018/02/11 02:42:14 [INFO] (telemetry) found error: No byte serving support. The HTTP server must support Accept-Ranges=bytes
2018/02/11 02:42:14 ui error: Build 'qemu' errored: No byte serving support. The HTTP server must support Accept-Ranges=bytes
2018/02/11 02:42:14 Builds completed. Waiting on interrupt barrier...

means that web server on other side returns witout Accept-Range=bytes or not status code 200

shibumi commented 6 years ago

@vtolstov Now I get the following error:

2018/02/28 15:17:16 packer: 2018/02/28 15:17:16 Qemu stderr: Could not access KVM kernel module: No such file or directory
2018/02/28 15:17:16 packer: 2018/02/28 15:17:16 Qemu stderr: qemu-system-x86_64: failed to initialize KVM: No such file or directory
2018/02/28 15:17:16 ui error: ==> qemu: Error launching VM: Qemu failed to start. Please run with PACKER_LOG=1 to get more info.
==> qemu: Error launching VM: Qemu failed to start. Please run with PACKER_LOG=1 to get more info.
2018/02/28 15:17:16 ui: ==> qemu: Deleting output directory...
==> qemu: Deleting output directory...
2018/02/28 15:17:16 [INFO] (telemetry) ending qemu
2018/02/28 15:17:16 [INFO] (telemetry) found error: Build was halted.
2018/02/28 15:17:16 ui error: Build 'qemu' errored: Build was halted.
2018/02/28 15:17:16 Builds completed. Waiting on interrupt barrier...
2018/02/28 15:17:16 machine readable: error-count []string{"1"}
2018/02/28 15:17:16 ui error: 
==> Some builds didn't complete successfully and had errors:
2018/02/28 15:17:16 machine readable: qemu,error []string{"Build was halted."}
2018/02/28 15:17:16 ui error: --> qemu: Build was halted.
2018/02/28 15:17:16 ui: 
==> Builds finished but no artifacts were created.
2018/02/28 15:17:16 [INFO] (telemetry) Finalizing.
Build 'qemu' errored: Build was halted.

Sorry I am really not a docker guy :S. I guess I have to run the container with all privileges to get kernel KVM_Intel support.. although lsmod says it's loaded.

foutrelis commented 6 years ago

This seems to be caused by https://github.com/qemu/qemu/commit/a7815faffb2bd594b92aa3542d7b799cc89c5414 and thus reproducible only with QEMU 2.11.

Whereas the old en-us keymap would contain (among others):

comma 0x33
less 0x33 shift
period 0x34
greater 0x34 shift

The new one contains:

period 0x34
greater 0x34 shift
...
less 0x56
greater 0x56 shift
bar 0x56 altgr
brokenbar 0x56 shift altgr

Those less 0x56 and greater 0x56 shift lines seem wrong. They are also not included in the en-gb keymap.

I filed a bug against QEMU; hopefully they can figure out what went wrong during the keymap updates:

https://bugs.launchpad.net/qemu/+bug/1754295

shibumi commented 6 years ago

Thanks @foutrelis but it's still weird because @vtolstov said he has tested it on fedora with Qemu 2.11

foutrelis commented 6 years ago

Looks like my QEMU bug is a duplicate and Fedora patches the en-us keymap for this issue.

So not a packer issue, and we can steal Fedora's patch and add it to Arch!

Edit: qemu 2.11.1-2 on Arch includes the Fedora patch and seems to behave correctly (no more >s).

bastelfreak commented 6 years ago

@foutrelis thank you so so much for debugging this!

shibumi commented 6 years ago

@foutrelis thanks again! :) I should have searched earlier for this bug.

mwhooker commented 6 years ago

Thanks for the work, all. Going to close this and add a note to the qemu docs

vtolstov commented 5 years ago

for feature reference https://lists.gnu.org/archive/html/qemu-devel/2018-12/msg04631.html

ghost commented 4 years ago

I'm going to lock this issue because it has been closed for 30 days ⏳. This helps our maintainers find and focus on the active issues.

If you have found a problem that seems similar to this, please open a new issue and complete the issue template so we can capture all the details necessary to investigate further.