X86_64, no video output

Hi!
I'm trying to build a custom x86 image.
The image provided from the OpenWRT site, shows the grub menu, kernel is booting, then there is no video output anymore.

When I try to boot my own custom image, it doesn't even show the grub menu. (Intel System)
On my Desktop machine the image boots fine. (AMD System)

The images are written onto an USB stick.

Someone has a hint for me?

My normal chore for flashing OpenWRT in x86-64 (From Windows) are :

  • Dump Ubuntu 21.10 iso into a USB drive by using RUFUS on windows
  • Extract for example openwrt-x86-64-generic-ext4-combined-efi.img.gz archive into only openwrt-x86-64-generic-ext4-combined-efi.img with WINRAR
  • Copy openwrt-x86-64-generic-ext4-combined-efi.img into another USB drive
  • Boot into Ubuntu 21.10 live usb, and choose "Try Ubuntu"
  • Open the GPARTED from the ubuntu live USB, & delete all of the partition on the target disk (mine is /dev/nvme0n1)
  • Plug-in another USB drive that has openwrt-x86-64-generic-ext4-combined-efi.img on it, open the corresponding partition which has it with the file explorer in the Ubuntu live USB, on the file manager right click and choose "Open Terminal"
  • Type in for example "sudo dd if=openwrt-x86-64-generic-ext4-combined-efi.img of=/dev/nvme0n1" , wait for around 3-5 minutes until dd is done.
  • Remove all of the usb drive and reboot.

So probably you dd/flashed the .gz (compressed gzip archive file) without being extracted/gunzip first

Optional :

  • You can also use the gparted from the Ubuntu Live USB to resize the partition size to use biggest possible value.

Thanks for your suggestion but when I do this, I will end up with the same image on the disk as on the usb stick?

I think I missed something in the config ?

No, the usb sticks are only for one for live ubuntu 21.10 and another one to store the openwrt-x86-64-generic-ext4-combined-efi.img file which containing the OpenWRT image itself.

Be aware to understand carefully the partition when using dd, don't flash/gparted the wrong drive/partitions.

I mean, the image that I use to write to the USB Stick will be same when booting from Ubuntu and writinig it to the HDD.

So why would it boot from the HDD then when the same image doesn't boot form usb?

You need two iso/image file, one is for example https://releases.ubuntu.com/21.10/ubuntu-21.10-desktop-amd64.iso , flash it to a usb stick and make it bootable ( I am using RUFUS on Windows).

And for example https://downloads.openwrt.org/releases/21.02.2/targets/x86/64/openwrt-21.02.2-x86-64-generic-ext4-combined-efi.img.gz , extract the openwrt-21.02.2-x86-64-generic-ext4-combined-efi.img.gz for example using WINRAR or if it's on linux, "gunzip openwrt-21.02.2-x86-64-generic-ext4-combined-efi.img.gz" from the linux bash/sh.

It will end up a openwrt-21.02.2-x86-64-generic-ext4-combined-efi.img file, copy this file into second usb stick.

The idea of using Ubuntu live USB is to use the gparted/dd tools, much easier for me if it's in GUI, feel free to use debian/distro cli/console anyway.

I got it booting from USB.
But it has the same problem as the official image.
There is some console output, then reboot after a short time.
I guess some kind of kernel panic?

No idea, I am using OpenWRT in x86-64 right now, working flawlessly in here, probably there are some kmod or kernel modules not available.

My knowledges on how to debug kernel crashes is fairly limited right now, especially on linux or OpenWRT

I tried different boot options to stop the automatic reboot but I can't get this working.
So I used my phone cam to capture the log.
Text is quite fuzzy and lines are overlapping because they are scrolling so fast.
It is something about:
comm: swapper Not tainted (which is a generic error message when something is screwed?)

Something similar to this:

Is this a system with multiple CPU chips not just multiple cores in a single chip? That is what the IBM note is about. Also the chips would have to be not identical stepping revision versions.

If it has a standard bus-attached serial port (not a USB adapter) it should send out the whole boot log on the serial port.

Hi!
It only has one single CPU.
I searched for comm: swapper Not tainted online and the IBM article popped up.
But it seems like the "not tainted" message is related to many things.

Unfortunately I don't have a serial console on this device.

PFsense, OPNsense, etc all boot fine.

The image also boots fine on my AMD system.
So it must be something INTEL related that it doesn't boot?

what intel cpu, motherboard etc is it ?

I know you said you tried to film the failing boot sequence, but the text's to fast for the phone.
Did you try filming in slow motion mode ? It'll get you more frames/sec but at lower res.

Hi!
CPU: Pentium G6405
Board with H510 Chipset.

The Last messages in the boot log are:
Call Trace:
intel detect
i915 driver
i915 probe
some more probs and inits

last message is:
fb0: switching to inteldrmdb from simple

Already tried to include i915 driver/settings in the kernel config but no luck.

try passing the kernel param nomodeset in grub.
you might also want to check what kernel params are passed to the kernel, by the working OSes.

fb0, it probably framebuffer, so something video related.

snapshot might be something to try as well, since they use a newer kernel

Both stable and snapshot and my own build have the same problem.

I will try the nomodeset param in sec.
Currently trying what echelon suggested, I doubt it will make any difference but let's see..

I don't see how it would, but hey, fingers X:ed.

Yes, didn't made a difference.
nomodeset also didn't work.
But it slowed the output.

So the problem is:
Invalid OP Code .... in ld-linux-x86-64.so
glibc problem?

//edit
Seems like it is.
Official snapshot image with nomodeset boots fine.
Without nomodeset is also works but there is no output.

I will do a custom build with musl.
Now i need to get the intel igpu working with proper power down support.

great!

I changed the topic, hope you don't mind.

Thank you.

But how to fix the glibc problem?

And is it possible to use sysupgrade on x86 without resetting the partition table now? (because of resized partitions)

//edit
indeed, musl custom image boots fine.

might want to create a separate thread in the developer forum

but the answer might be to use musl, but I haven't been down that road, trying to avoid self made images :wink:

if you're using the official image, it'll resize the partition back to the original size, but if you're
creating your own images, you might put in a different size - MyBook Live Duo 21.02.2 / rootfs size - #10 by takimata

using two parallel openwrt installs/versions works too - Sysupgrade help for x86_64 - #14 by frollic

or just boot gparted from a flash drive after writing the image, and resize the rootfs partition,
or any other capable Linux dist.