Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Uhyve installation instruction fails #163

Closed
Harry-R opened this issue Oct 8, 2021 · 0 comments · Fixed by #164
Closed

Uhyve installation instruction fails #163

Harry-R opened this issue Oct 8, 2021 · 0 comments · Fixed by #164

Comments

@Harry-R
Copy link
Contributor

Harry-R commented Oct 8, 2021

When installing uhyve via cargo install uhyve as described in the readme, it fails with the error output listed below. However, installing it via $ cargo +nightly install uhyve --locked as described in the uhyve readme works without an error.

Error output:
[harryr@coruscant hello_world]$ cargo install uhyve
    Updating crates.io index
  Installing uhyve v0.0.28
   Compiling libc v0.2.103
   Compiling bitflags v1.3.2
   Compiling proc-macro2 v1.0.29
   Compiling unicode-xid v0.2.2
   Compiling cfg-if v1.0.0
   Compiling syn v1.0.80
   Compiling memchr v2.4.1
   Compiling autocfg v1.0.1
   Compiling winapi-build v0.1.1
   Compiling log v0.4.14
   Compiling cc v1.0.71
   Compiling winapi v0.2.8
   Compiling x86 v0.37.0
   Compiling unicode-width v0.1.9
   Compiling unicode-segmentation v1.8.0
   Compiling regex-syntax v0.6.25
   Compiling strsim v0.8.0
   Compiling bit_field v0.10.1
   Compiling plain v0.2.3
   Compiling termcolor v1.1.2
   Compiling ansi_term v0.11.0
   Compiling humantime v2.1.0
   Compiling vec_map v0.8.2
   Compiling lazy_static v1.4.0
   Compiling rustc-serialize v0.3.24
   Compiling strum v0.20.0
   Compiling virtio-bindings v0.1.0
   Compiling burst v0.0.2
   Compiling byteorder v1.4.3
   Compiling kvm-bindings v0.4.0
   Compiling raw-cpuid v9.1.1
   Compiling kernel32-sys v0.2.2
   Compiling memoffset v0.6.4
   Compiling textwrap v0.11.0
   Compiling heck v0.3.3
   Compiling tun-tap v0.1.2
   Compiling aho-corasick v0.7.18
   Compiling gdb-protocol v0.1.0
   Compiling quote v1.0.10
   Compiling regex v1.5.4
   Compiling atty v0.2.14
   Compiling vmm-sys-util v0.9.0
   Compiling nix v0.22.0
   Compiling num_cpus v1.13.0
   Compiling memchr v1.0.2
   Compiling nix v0.20.0
   Compiling vmm-sys-util v0.8.0
   Compiling aligned_alloc v0.1.3
   Compiling clap v2.33.3
   Compiling env_logger v0.8.4
   Compiling kvm-bindings v0.5.0
   Compiling core_affinity v0.5.10
   Compiling nom v3.2.1
   Compiling kvm-ioctls v0.8.0
   Compiling mac_address v1.1.2
   Compiling scroll_derive v0.10.5
   Compiling strum_macros v0.20.1
   Compiling scroll v0.10.2
   Compiling goblin v0.4.3
   Compiling uhyve v0.0.28
error[E0433]: failed to resolve: use of undeclared type `Msrs`
   --> /home/harryr/.cargo/registry/src/github.com-1ecc6299db9ec823/uhyve-0.0.28/src/linux/vcpu.rs:154:14
    |
154 |         let msrs = Msrs::from_entries(&msr_entries)
    |                    ^^^^ use of undeclared type `Msrs`

error[E0425]: cannot find value `KVM_MAX_CPUID_ENTRIES` in this scope
  --> /home/harryr/.cargo/registry/src/github.com-1ecc6299db9ec823/uhyve-0.0.28/src/linux/vcpu.rs:59:25
   |
59 |             .get_supported_cpuid(KVM_MAX_CPUID_ENTRIES)
   |                                  ^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error[E0308]: mismatched types
   --> /home/harryr/.cargo/registry/src/github.com-1ecc6299db9ec823/uhyve-0.0.28/src/linux/uhyve.rs:185:38
    |
185 |         unsafe { vm.set_user_memory_region(kvm_mem) }.or_else(to_error)?;
    |                                            ^^^^^^^ expected struct `kvm_bindings::x86::bindings::kvm_userspace_memory_region`, found struct `kvm_bindings::kvm_userspace_memory_region`

error[E0308]: mismatched types
   --> /home/harryr/.cargo/registry/src/github.com-1ecc6299db9ec823/uhyve-0.0.28/src/linux/uhyve.rs:198:39
    |
198 |             unsafe { vm.set_user_memory_region(kvm_mem) }.or_else(to_error)?;
    |                                                ^^^^^^^ expected struct `kvm_bindings::x86::bindings::kvm_userspace_memory_region`, found struct `kvm_bindings::kvm_userspace_memory_region`

error[E0308]: mismatched types
   --> /home/harryr/.cargo/registry/src/github.com-1ecc6299db9ec823/uhyve-0.0.28/src/linux/uhyve.rs:214:17
    |
214 |         vm.enable_cap(&cap)
    |                       ^^^^ expected struct `kvm_bindings::x86::bindings::kvm_enable_cap`, found struct `kvm_bindings::kvm_enable_cap`
    |
    = note: expected reference `&kvm_bindings::x86::bindings::kvm_enable_cap`
               found reference `&kvm_bindings::kvm_enable_cap`

error[E0308]: mismatched types
   --> /home/harryr/.cargo/registry/src/github.com-1ecc6299db9ec823/uhyve-0.0.28/src/linux/uhyve.rs:224:20
    |
224 |         if vm.enable_cap(&cap).is_ok() {
    |                          ^^^^ expected struct `kvm_bindings::x86::bindings::kvm_enable_cap`, found struct `kvm_bindings::kvm_enable_cap`
    |
    = note: expected reference `&kvm_bindings::x86::bindings::kvm_enable_cap`
               found reference `&kvm_bindings::kvm_enable_cap`

error[E0308]: mismatched types
   --> /home/harryr/.cargo/registry/src/github.com-1ecc6299db9ec823/uhyve-0.0.28/src/linux/uhyve.rs:232:20
    |
232 |         if vm.enable_cap(&cap).is_ok() {
    |                          ^^^^ expected struct `kvm_bindings::x86::bindings::kvm_enable_cap`, found struct `kvm_bindings::kvm_enable_cap`
    |
    = note: expected reference `&kvm_bindings::x86::bindings::kvm_enable_cap`
               found reference `&kvm_bindings::kvm_enable_cap`

error[E0308]: mismatched types
   --> /home/harryr/.cargo/registry/src/github.com-1ecc6299db9ec823/uhyve-0.0.28/src/linux/uhyve.rs:244:17
    |
244 |         vm.enable_cap(&cap)
    |                       ^^^^ expected struct `kvm_bindings::x86::bindings::kvm_enable_cap`, found struct `kvm_bindings::kvm_enable_cap`
    |
    = note: expected reference `&kvm_bindings::x86::bindings::kvm_enable_cap`
               found reference `&kvm_bindings::kvm_enable_cap`

error[E0308]: mismatched types
   --> /home/harryr/.cargo/registry/src/github.com-1ecc6299db9ec823/uhyve-0.0.28/src/linux/uhyve.rs:248:21
    |
248 |         vm.register_irqfd(&evtfd, UHYVE_IRQ_NET).or_else(to_error)?;
    |                           ^^^^^^ expected struct `vmm_sys_util::linux::eventfd::EventFd`, found struct `EventFd`
    |
    = note: expected reference `&vmm_sys_util::linux::eventfd::EventFd`
               found reference `&EventFd`
    = note: perhaps two different versions of crate `vmm_sys_util` are being used?

error[E0308]: mismatched types
   --> /home/harryr/.cargo/registry/src/github.com-1ecc6299db9ec823/uhyve-0.0.28/src/linux/vcpu.rs:192:14
    |
192 |         sregs.cs = seg;
    |                    ^^^ expected struct `kvm_bindings::x86::bindings::kvm_segment`, found struct `kvm_bindings::kvm_segment`

error[E0308]: mismatched types
   --> /home/harryr/.cargo/registry/src/github.com-1ecc6299db9ec823/uhyve-0.0.28/src/linux/vcpu.rs:197:14
    |
197 |         sregs.ds = seg;
    |                    ^^^ expected struct `kvm_bindings::x86::bindings::kvm_segment`, found struct `kvm_bindings::kvm_segment`

error[E0308]: mismatched types
   --> /home/harryr/.cargo/registry/src/github.com-1ecc6299db9ec823/uhyve-0.0.28/src/linux/vcpu.rs:198:14
    |
198 |         sregs.es = seg;
    |                    ^^^ expected struct `kvm_bindings::x86::bindings::kvm_segment`, found struct `kvm_bindings::kvm_segment`

error[E0308]: mismatched types
   --> /home/harryr/.cargo/registry/src/github.com-1ecc6299db9ec823/uhyve-0.0.28/src/linux/vcpu.rs:199:14
    |
199 |         sregs.ss = seg;
    |                    ^^^ expected struct `kvm_bindings::x86::bindings::kvm_segment`, found struct `kvm_bindings::kvm_segment`

error[E0308]: mismatched types
   --> /home/harryr/.cargo/registry/src/github.com-1ecc6299db9ec823/uhyve-0.0.28/src/linux/vcpu.rs:495:33
    |
495 |         UhyveCPU::show_segment("cs ", &sregs.cs);
    |                                       ^^^^^^^^^ expected struct `kvm_bindings::kvm_segment`, found struct `kvm_bindings::x86::bindings::kvm_segment`
    |
    = note: expected reference `&kvm_bindings::kvm_segment`
               found reference `&kvm_bindings::x86::bindings::kvm_segment`

error[E0308]: mismatched types
   --> /home/harryr/.cargo/registry/src/github.com-1ecc6299db9ec823/uhyve-0.0.28/src/linux/vcpu.rs:496:33
    |
496 |         UhyveCPU::show_segment("ss ", &sregs.ss);
    |                                       ^^^^^^^^^ expected struct `kvm_bindings::kvm_segment`, found struct `kvm_bindings::x86::bindings::kvm_segment`
    |
    = note: expected reference `&kvm_bindings::kvm_segment`
               found reference `&kvm_bindings::x86::bindings::kvm_segment`

error[E0308]: mismatched types
   --> /home/harryr/.cargo/registry/src/github.com-1ecc6299db9ec823/uhyve-0.0.28/src/linux/vcpu.rs:497:33
    |
497 |         UhyveCPU::show_segment("ds ", &sregs.ds);
    |                                       ^^^^^^^^^ expected struct `kvm_bindings::kvm_segment`, found struct `kvm_bindings::x86::bindings::kvm_segment`
    |
    = note: expected reference `&kvm_bindings::kvm_segment`
               found reference `&kvm_bindings::x86::bindings::kvm_segment`

error[E0308]: mismatched types
   --> /home/harryr/.cargo/registry/src/github.com-1ecc6299db9ec823/uhyve-0.0.28/src/linux/vcpu.rs:498:33
    |
498 |         UhyveCPU::show_segment("es ", &sregs.es);
    |                                       ^^^^^^^^^ expected struct `kvm_bindings::kvm_segment`, found struct `kvm_bindings::x86::bindings::kvm_segment`
    |
    = note: expected reference `&kvm_bindings::kvm_segment`
               found reference `&kvm_bindings::x86::bindings::kvm_segment`

error[E0308]: mismatched types
   --> /home/harryr/.cargo/registry/src/github.com-1ecc6299db9ec823/uhyve-0.0.28/src/linux/vcpu.rs:499:33
    |
499 |         UhyveCPU::show_segment("fs ", &sregs.fs);
    |                                       ^^^^^^^^^ expected struct `kvm_bindings::kvm_segment`, found struct `kvm_bindings::x86::bindings::kvm_segment`
    |
    = note: expected reference `&kvm_bindings::kvm_segment`
               found reference `&kvm_bindings::x86::bindings::kvm_segment`

error[E0308]: mismatched types
   --> /home/harryr/.cargo/registry/src/github.com-1ecc6299db9ec823/uhyve-0.0.28/src/linux/vcpu.rs:500:33
    |
500 |         UhyveCPU::show_segment("gs ", &sregs.gs);
    |                                       ^^^^^^^^^ expected struct `kvm_bindings::kvm_segment`, found struct `kvm_bindings::x86::bindings::kvm_segment`
    |
    = note: expected reference `&kvm_bindings::kvm_segment`
               found reference `&kvm_bindings::x86::bindings::kvm_segment`

error[E0308]: mismatched types
   --> /home/harryr/.cargo/registry/src/github.com-1ecc6299db9ec823/uhyve-0.0.28/src/linux/vcpu.rs:501:33
    |
501 |         UhyveCPU::show_segment("tr ", &sregs.tr);
    |                                       ^^^^^^^^^ expected struct `kvm_bindings::kvm_segment`, found struct `kvm_bindings::x86::bindings::kvm_segment`
    |
    = note: expected reference `&kvm_bindings::kvm_segment`
               found reference `&kvm_bindings::x86::bindings::kvm_segment`

error[E0308]: mismatched types
   --> /home/harryr/.cargo/registry/src/github.com-1ecc6299db9ec823/uhyve-0.0.28/src/linux/vcpu.rs:502:33
    |
502 |         UhyveCPU::show_segment("ldt", &sregs.ldt);
    |                                       ^^^^^^^^^^ expected struct `kvm_bindings::kvm_segment`, found struct `kvm_bindings::x86::bindings::kvm_segment`
    |
    = note: expected reference `&kvm_bindings::kvm_segment`
               found reference `&kvm_bindings::x86::bindings::kvm_segment`

error[E0308]: mismatched types
   --> /home/harryr/.cargo/registry/src/github.com-1ecc6299db9ec823/uhyve-0.0.28/src/linux/vcpu.rs:503:32
    |
503 |         UhyveCPU::show_dtable("gdt", &sregs.gdt);
    |                                      ^^^^^^^^^^ expected struct `kvm_bindings::kvm_dtable`, found struct `kvm_bindings::x86::bindings::kvm_dtable`
    |
    = note: expected reference `&kvm_bindings::kvm_dtable`
               found reference `&kvm_bindings::x86::bindings::kvm_dtable`

error[E0308]: mismatched types
   --> /home/harryr/.cargo/registry/src/github.com-1ecc6299db9ec823/uhyve-0.0.28/src/linux/vcpu.rs:504:32
    |
504 |         UhyveCPU::show_dtable("idt", &sregs.idt);
    |                                      ^^^^^^^^^^ expected struct `kvm_bindings::kvm_dtable`, found struct `kvm_bindings::x86::bindings::kvm_dtable`
    |
    = note: expected reference `&kvm_bindings::kvm_dtable`
               found reference `&kvm_bindings::x86::bindings::kvm_dtable`

Some errors have detailed explanations: E0308, E0425, E0433.
For more information about an error, try `rustc --explain E0308`.
error: could not compile `uhyve` due to 23 previous errors
warning: build failed, waiting for other jobs to finish...
error: failed to compile `uhyve v0.0.28`, intermediate artifacts can be found at `/tmp/cargo-installC4LKl0`

Caused by:
  build failed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant