Guix on Debian 8.3 'guix system vm ...' -> "ERROR: qemu failed "qemu-system-x86_64"

DoneSubmitted by myglc2.
Details
3 participants
  • Leo Famulari
  • Ludovic Courtès
  • myglc2
Owner
unassigned
Severity
normal
M
M
myglc2 wrote on 24 Jun 2016 15:53
(address . bug-guix@gnu.org)
86lh1ur8vr.fsf@gmail.com
Apologies in advance if I missed a required step & this is operatorerror as it is my first attempt to use QEMU/Debian.

Running Guix on Debian 8.3, I set up qemu like this ...
suapt-get updateapt-get upgradeapt-get install qemuapt-get install qemu-kvmapt-get install libvirt-binadduser g1 kvmadduser g1 libvirt

... then, as user g1, I checked that virsh commands work ...
g1@e3b:~/dev/vms$ virsh list --all Id Name State----------------------------------------------------
g1@e3b:~/dev/vms$ virsh --connect qemu:///system list --all Id Name State----------------------------------------------------
g1@e3b:~/dev/vms$ virsh version --daemonCompiled against library: libvirt 1.2.9Using library: libvirt 1.2.9Using API: QEMU 1.2.9Running hypervisor: QEMU 2.1.2Running against daemon: 1.2.9

... then, using this version of guix ...
git branch -av | grep '* master'* master bae0636 bournish: Add 'wc' command.g1@e3b:~/dev/guix$ stat /home/g1/.config/guix/latest | grep File: File: ‘/home/g1/.config/guix/latest’ -> ‘../../dev/guix’

... I tried making a guix vm ...
g1@e3b:~/dev/vms$ guix system vm ../configs/c01system.scm --expose=$HOME --share=$HOME/tmp=/exchange --verbosity=1;;; note: source file /home/g1/.config/guix/latest/gnu/packages/screen.scm;;; newer than compiled /home/g1/.config/guix/latest/gnu/packages/screen.go;;; compiling /home/g1/.config/guix/latest/gnu/packages/screen.scm;;; compiled /home/g1/.cache/guile/ccache/2.0-LE-8-2.0/home/g1/dev/guix/gnu/packages/screen.scm.gosubstitute: warning: failed to install locale: Invalid argumentsubstitute: updating list of substitutes from 'http://hydra.gnu.org'... 100.0%The following derivations will be built: /gnu/store/jz6mlhlz7f5sp4g93spac69bxfjpjbqg-run-vm.sh.drv /gnu/store/5f6zfsx0fa0bzkl4ynqb1lf5pk3m4rfs-qemu-image.drvwarning: failed to install locale: Invalid argumentbuilding path(s) `/gnu/store/nbppjjb2kkb17nr8jqas7hchkg669nv9-qemu-image'Formatting 'image.qcow2', fmt=qcow2 size=31457280 encryption=off cluster_size=65536 lazy_refcounts=off refcount_bits=16Could not access KVM kernel module: Permission deniedfailed to initialize KVM: Permission deniedBacktrace:In ice-9/boot-9.scm: 157: 10 [catch #t #<catch-closure 8c9720> ...]In unknown file: ?: 9 [apply-smob/1 #<catch-closure 8c9720>]In ice-9/boot-9.scm: 63: 8 [call-with-prompt prompt0 ...]In ice-9/eval.scm: 432: 7 [eval # #]In ice-9/boot-9.scm:2401: 6 [save-module-excursion #<procedure 8e6800 at ice-9/boot-9.scm:4045:3 ()>]4050: 5 [#<procedure 8e6800 at ice-9/boot-9.scm:4045:3 ()>]1724: 4 [%start-stack load-stack #<procedure 8f97c0 at ice-9/boot-9.scm:4041:10 ()>]1729: 3 [#<procedure 8fb9c0 ()>]In unknown file: ?: 2 [primitive-load "/gnu/store/kfakhvdns3vjpivw6pk0bkdqafywr9s9-qemu-image-builder"]In ./gnu/build/vm.scm: 127: 1 [load-in-linux-vm "/gnu/store/9yprr0vmwnpvlkr2a0jgylpf9py6cf83-linux-vm-loader" ...]In unknown file: ?: 0 [scm-error misc-error #f "~A ~S" ("qemu failed" "qemu-system-x86_64") #f]
ERROR: In procedure scm-error:ERROR: qemu failed "qemu-system-x86_64"environment variable `PATH' set to `/gnu/store/nk0z0qs8g3i03jfyi6hr2rwnd9pg2qnv-qemu-minimal-2.6.0/bin:/gnu/store/34j2zmi69mqwrslpyizbi9mcxmn2hzgb-coreutils-8.24/bin'builder for `/gnu/store/5f6zfsx0fa0bzkl4ynqb1lf5pk3m4rfs-qemu-image.drv' failed with exit code 1cannot build derivation `/gnu/store/jz6mlhlz7f5sp4g93spac69bxfjpjbqg-run-vm.sh.drv': 1 dependencies couldn't be builtguix system: error: build failed: build of `/gnu/store/jz6mlhlz7f5sp4g93spac69bxfjpjbqg-run-vm.sh.drv' failedg1@e3b:~/dev/vms$
tia, - George
Attachment: c01glc.scm
L
L
Leo Famulari wrote on 24 Jun 2016 16:47
(name . myglc2)(address . myglc2@gmail.com)(address . 23838@debbugs.gnu.org)
20160624144746.GA1545@jasmine
On Fri, Jun 24, 2016 at 09:53:12AM -0400, myglc2 wrote:
Toggle quote (2 lines)> g1@e3b:~/dev/vms$ guix system vm ../configs/c01system.scm --expose=$HOME --share=$HOME/tmp=/exchange --verbosity=1
[...]
Toggle quote (3 lines)> Could not access KVM kernel module: Permission denied> failed to initialize KVM: Permission denied
On Debian, /dev/kvm is by default not accessible to unprivileged users.I manually do `chmod 666 /dev/kvm` when I need to use QEMU with KVM,after each reboot.
L
L
Ludovic Courtès wrote on 24 Jun 2016 17:52
(name . myglc2)(address . myglc2@gmail.com)(address . 23838@debbugs.gnu.org)
87k2he37pa.fsf@gnu.org
Hi!
myglc2 <myglc2@gmail.com> skribis:
Toggle quote (9 lines)> The following derivations will be built:> /gnu/store/jz6mlhlz7f5sp4g93spac69bxfjpjbqg-run-vm.sh.drv> /gnu/store/5f6zfsx0fa0bzkl4ynqb1lf5pk3m4rfs-qemu-image.drv> warning: failed to install locale: Invalid argument> building path(s) `/gnu/store/nbppjjb2kkb17nr8jqas7hchkg669nv9-qemu-image'> Formatting 'image.qcow2', fmt=qcow2 size=31457280 encryption=off cluster_size=65536 lazy_refcounts=off refcount_bits=16> Could not access KVM kernel module: Permission denied> failed to initialize KVM: Permission denied
Please make sure the guixbuild* user accounts have write permission for/dev/kvm.
Usually, /dev/kvm is has “kvm” as its group and is group-writable. Soall you need is to add the guixbuild* users to the “kvm” group.
The manual mentions this pitfall (info "(guix) Invoking guix system")but I guess it’s easily missed.
Thanks,Ludo’.
M
M
myglc2 wrote on 24 Jun 2016 21:34
(address . bug-guix@gnu.org)
86ziqanzxz.fsf@gmail.com
ludo@gnu.org (Ludovic Courtès) writes:
Toggle quote (4 lines)>> Usually, /dev/kvm is has “kvm” as its group and is group-writable. So> all you need is to add the guixbuild* users to the “kvm” group.
Thank you, it does.
Toggle quote (3 lines)> The manual mentions this pitfall (info "(guix) Invoking guix system")> but I guess it’s easily missed.
Thank you, so I did this ...
adduser guixbuilder1 kvmadduser guixbuilder2 kvmadduser guixbuilder3 kvmadduser guixbuilder4 kvmadduser guixbuilder5 kvmadduser guixbuilder6 kvmadduser guixbuilder7 kvmadduser guixbuilder8 kvm
... but maybe the manual should say this ...
# 2.4.1 Build Environment Setup# -----------------------------# [...] # On a GNU/Linux system, a build user pool may be created like this# (using Bash syntax and the ‘shadow’ commands):## # groupadd --system guixbuild# # for i in `seq -w 1 10`;# do# useradd -g guixbuild -G guixbuild,kvm \# -d /var/empty -s `which nologin` \# -c "Guix build user $i" --system \# guixbuilder$i;# done
... anyway, now I get ...
g1@e3b:~/dev/vms$ guix system vm ../configs/c01system.scm --expose=$HOME --share=$HOME/tmp=/exchange --verbosity=1substitute: warning: failed to install locale: Invalid argument/gnu/store/7rv558c43bwnmmkc85izv1b69ards5qy-run-vm.shg1@e3b:~/dev/vms$ /gnu/store/7rv558c43bwnmmkc85izv1b69ards5qy-run-vm.shqemu-system-x86_64: -virtfs local,path=/home/g1/tmp,security_model=none,mount_tag=TAG_home_g1_tmp: 9pfs Failed to initialize fs-driver with id:TAG_home_g1_tmp and export path:/home/g1/tmpg1@e3b:~/dev/vms$
TIA, George
M
M
myglc2 wrote on 25 Jun 2016 00:15
(address . bug-guix@gnu.org)
86vb0ynshh.fsf@gmail.com
myglc2 <myglc2@gmail.com> writes:
Toggle quote (8 lines)> ludo@gnu.org (Ludovic Courtès) writes:>>>> Usually, /dev/kvm is has “kvm” as its group and is group-writable. So>> all you need is to add the guixbuild* users to the “kvm” group.>> Thank you, so I did this ...>> adduser guixbuilder1 kvm
...
Toggle quote (10 lines)>> ... anyway, now I get ...>> g1@e3b:~/dev/vms$ guix system vm ../configs/c01system.scm --expose=$HOME --share=$HOME/tmp=/exchange --verbosity=1> substitute: warning: failed to install locale: Invalid argument> /gnu/store/7rv558c43bwnmmkc85izv1b69ards5qy-run-vm.sh> g1@e3b:~/dev/vms$ /gnu/store/7rv558c43bwnmmkc85izv1b69ards5qy-run-vm.sh> qemu-system-x86_64: -virtfs local,path=/home/g1/tmp,security_model=none,mount_tag=TAG_home_g1_tmp: 9pfs Failed to initialize fs-driver with id:TAG_home_g1_tmp and export path:/home/g1/tmp> g1@e3b:~/dev/vms$
OOH! DUH! Nevermind ...
mkdir /home/g1/tmp
... fixes this.
L
L
Ludovic Courtès wrote on 26 Jun 2016 12:20
(name . myglc2)(address . myglc2@gmail.com)(address . 23838@debbugs.gnu.org)
87mvm8meu0.fsf@gnu.org
myglc2 <myglc2@gmail.com> skribis:
Toggle quote (17 lines)> ... but maybe the manual should say this ...>> # 2.4.1 Build Environment Setup> # -----------------------------> # [...] > # On a GNU/Linux system, a build user pool may be created like this> # (using Bash syntax and the ‘shadow’ commands):> #> # # groupadd --system guixbuild> # # for i in `seq -w 1 10`;> # do> # useradd -g guixbuild -G guixbuild,kvm \> # -d /var/empty -s `which nologin` \> # -c "Guix build user $i" --system \> # guixbuilder$i;> # done
I’ve added something along these lines, thank you!
Ludo’.
L
L
Ludovic Courtès wrote on 26 Jun 2016 12:20
control message for bug #23838
(address . control@debbugs.gnu.org)
87lh1smeth.fsf@gnu.org
tags 23838 notabugclose 23838
?
Your comment

This issue is archived.

To comment on this conversation send email to 23838@debbugs.gnu.org