Fix überXMHF v6.0.0 documentation and add support for 1st Generation Intel Core CPUs

Ok can you pull changes from my branch and build and try to boot again with 12.04 LTS? I relocated the load address to 64MB. Let us see if that helps…

Crashed, see logs below:

C:\Users\Superymk\Desktop\amtterm>amtterm.exe -p pas0@Greave 192.168.1.18
amtterm: NONE -> CONNECT (connection to host)
ipv4 192.168.1.18:16994 [192.168.1.18] 16994 open
amtterm: CONNECT -> INIT (redirection initialization)
amtterm: INIT -> AUTH (session authentication)
amtterm: AUTH -> INIT_SOL (serial-over-lan initialization)
amtterm: INIT_SOL -> RUN_SOL (serial-over-lan active)
serial-over-lan redirection ok
connected now, use ^] to escape

eXtensible Modular Hypervisor Framework (XMHF) 6.0.0
Build revision: you-gotta-have-faith-not-in-who-you-are-but-who-you-can-be
XMHF boot-loader: initializing, total modules=2
XMHF boot-loader: mod_0: start=0x1a200000, end=0x1a200200
XMHF boot-loader: mod_1: start=0x1a201000, end=0x1a209bc0
INIT(early): detected an Intel CPU
Checking whether MBI module 1 is SINIT…
YES! SINIT found @ 0x1a201000, 35776 bytes

Finding SMP info. via ACPI…
ACPI RSDP at 0x000fc600
ACPI RSDT at 0xbb3fe0ac
len=0x0000005c, headerlen=0x00000024, numentries=14
ACPI MADT at 0xbb3fa000
len=0x000000bc, record-length=144 bytes
rec type=0x00, length=8 bytes, flags=0x00000001, id=0x00
rec type=0x00, length=8 bytes, flags=0x00000001, id=0x01
rec type=0x00, length=8 bytes, flags=0x00000001, id=0x04
rec type=0x00, length=8 bytes, flags=0x00000001, id=0x05
rec type=0x00, length=8 bytes, flags=0x00000000, id=0x00
rec type=0x00, length=8 bytes, flags=0x00000000, id=0x00
rec type=0x00, length=8 bytes, flags=0x00000000, id=0x00
rec type=0x00, length=8 bytes, flags=0x00000000, id=0x00
rec type=0x01, length=12 bytes, flags=0xfec00000, id=0x00
rec type=0x02, length=10 bytes, flags=0x00000002, id=0x00
rec type=0x02, length=10 bytes, flags=0x00000009, id=0x09
rec type=0x04, length=6 bytes, flags=0x06040100, id=0x05
rec type=0x04, length=6 bytes, flags=0x06040100, id=0x05
rec type=0x04, length=6 bytes, flags=0x06040100, id=0x05
rec type=0x04, length=6 bytes, flags=0x06040100, id=0x05
rec type=0x04, length=6 bytes, flags=0x06040100, id=0x05
rec type=0x04, length=6 bytes, flags=0x06040100, id=0x05
rec type=0x04, length=6 bytes, flags=0x06040100, id=0x05
rec type=0x04, length=6 bytes, flags=0xffb80100, id=0x05xmhf-bootloader: cstartup:963

original system E820 map follows:

0x0000000000000000, size=0x000000000009fc00 (1)
0x000000000009fc00, size=0x0000000000000400 (2)
0x00000000000e0000, size=0x0000000000020000 (2)
0x0000000000100000, size=0x00000000baac2000 (1)
0x00000000babc2000, size=0x0000000000700000 (2)
0x00000000bb2c2000, size=0x0000000000100000 (4)
0x00000000bb3c2000, size=0x000000000003d000 (3)
0x00000000bb3ff000, size=0x0000000000001000 (1)
0x00000000bb400000, size=0x0000000000400000 (2)
0x00000000bb800000, size=0x0000000000800000 (2)
0x00000000e0000000, size=0x0000000010000000 (2)
0x00000000fec00000, size=0x0000000000001000 (2)
0x00000000fed10000, size=0x0000000000004000 (2)
0x00000000fed19000, size=0x0000000000001000 (2)
0x00000000fed1b000, size=0x0000000000001000 (2)
0x00000000fed1c000, size=0x0000000000004000 (2)
0x00000000fee00000, size=0x0000000000001000 (2)
0x00000000ffd00000, size=0x0000000000300000 (2)
0x0000000100000000, size=0x000000007c000000 (1)
0x000000017c000000, size=0x0000000004000000 (2)
0x0000000180000000, size=0x000000003c000000 (1)
proceeding to revise E820…
E820 revision complete.
revised system E820 map follows:

0x0000000000000000, size=0x000000000009fc00 (1)
0x000000000009fc00, size=0x0000000000000400 (2)
0x00000000000e0000, size=0x0000000000020000 (2)
0x0000000000100000, size=0x0000000003f00000 (1)
0x0000000004000000, size=0x000000001d200000 (2)
0x0000000021200000, size=0x00000000999c2000 (1)
0x00000000babc2000, size=0x0000000000700000 (2)
0x00000000bb2c2000, size=0x0000000000100000 (4)
0x00000000bb3c2000, size=0x000000000003d000 (3)
0x00000000bb3ff000, size=0x0000000000001000 (1)
0x00000000bb400000, size=0x0000000000400000 (2)
0x00000000bb800000, size=0x0000000000800000 (2)
0x00000000e0000000, size=0x0000000010000000 (2)
0x00000000fec00000, size=0x0000000000001000 (2)
0x00000000fed10000, size=0x0000000000004000 (2)
0x00000000fed19000, size=0x0000000000001000 (2)
0x00000000fed1b000, size=0x0000000000001000 (2)
0x00000000fed1c000, size=0x0000000000004000 (2)
0x00000000fee00000, size=0x0000000000001000 (2)
0x00000000ffd00000, size=0x0000000000300000 (2)
0x0000000100000000, size=0x000000007c000000 (1)
0x000000017c000000, size=0x0000000004000000 (2)
0x0000000180000000, size=0x000000003c000000 (1)xmhf-bootloader: XMHF binary base=04000000, reserved size=1d200000 bytes
xmhf-bootloader: xslbootinfo=05400000, magic=90909090

Fatal: Halting! Condition ‘xslbootinfo->magic == RUNTIME_PARAMETER_BLOCK_MAGIC’ failed, line 1072, file /home/opam/opam-repository/run/uberxmhf/uxmhf/xmhf-bootloader/init.c

Ok. I reset the load address back to default and pushed my changes. Please pull, do a configure followed by make and test with Ubuntu 16.04 and Grub 0.97-29 (the default version that comes with ubuntu 16.04).

Will try. And please see if you may want to remove Ubuntu 12.04 from supported OS.

Indeed. It is quite dated anyways and is no longer supported by canonical, so it does make sense to remove it from the list of supported OS for uberXMHF. Hopefully, 16.04 works for you with this changeset…

I installed Ubuntu 16.04.6 x86 (kernel: Linux 4.4.0.201-generic) on the HP2540p and build the latest fix. It still crashes.

I installed the 4.4 kernel with the command: sudo apt-get install linux-generic-lts-xenial
(1) uXMHF can go back to grub, no error there
(2) Then I start Ubuntu, and it hangs. I can only see “Booting from (hd0, 4) …” on screen

Grub entry:

title uberXMHF
rootnoverify (hd0,4) # should point to /boot
kernel /boot/xmhf-x86-vmx-x86pc.bin.gz serial=115200,8n1,0x5080
modulenounzip (hd0)+1 # should point to where grub is installed
modulenounzip /boot/i5_i7_DUAL_SINIT_51.BIN

Logs: uxmhf-logs_0212_1349.txt (49.9 KB)

You have to build the kernel with CONFIG_X86_PAE unset. See: https://docs.uberxmhf.org/pc-intel-x86_32/supported-os.html

A prebuilt working version is available here: https://github.com/uberspark/uberxmhf-linux-kernels.git

On further thinking, we should add this to the docs :slight_smile:

Thanks! I used this kernel now and the kernel hangs at a later step, see the log: uxmhf-logs_0212_1508.txt (54.7 KB)

This happens when I start Ubuntu from grub (uxmhf is loaded now).
I guess it is because of the old hardware…

Does the kernel boot successfully without the micro-hypervisor?

Also make sure you have:

  1. blacklisted certain kernel modules: https://docs.uberxmhf.org/pc-intel-x86_32/supported-os.html

  2. disabled NMI watchdog: https://docs.uberxmhf.org/pc-intel-x86_32/installing.html

Problem solved, will come up with a summary

Great!. I need to plug back support for other generation CPUs and come up with a unified VMCS control setting, so stay tuned for another changeset :slight_smile:

Thanks! Feel free to let me know when to try the new changes

Ok, I just pushed in a changeset that boots Linux successfully on my 4th gen Intel core CPU/platform. Let me know if this still works for you. You have to do configure followed by make as before after pulling in the changes.

Thanks!

The commit is good on my machine. Thanks!

Ok great. I am going to make some of the documentation changes as indicated on this thread and we should be good to go with a hotfix release.

Agree, thanks for your help!

Ok branch in OP merged and incorporated in release v6.1.0. See here: überXMHF v6.1.0 released

Closing task/topic thread. Thanks @superymk!