# Issue with Serial Output and Boot Failure

**URL:** <https://genode.discourse.group/t/issue-with-serial-output-and-boot-failure/263>\
**Category:** General\
**Created:** [January 28, 2026, 9:36am UTC](https://genode.discourse.group/t/issue-with-serial-output-and-boot-failure/263 "2026-01-28T09:36:40Z")\
**Posts on this page:** 8\
**Page:** 1

<div class="post-metadata">

**Author:** ![hamed](https://avatars.discourse-cdn.com/v4/letter/h/d6d6ee/32.png) [@hamed](https://genode.discourse.group/u/hamed)\
**Post date:** [January 28, 2026, 9:36am UTC](https://genode.discourse.group/t/issue-with-serial-output-and-boot-failure/263/1 "2026-01-28T09:36:40Z")

</div>

I recently acquired an **HP ProDesk 600 G1 (i7)**. While the official **Sculpt 25.10** image runs perfectly on this hardware, I am encountering issues with my own custom builds.

Specifically, any example I build myself using version **25.05** fails to run; the system freezes at the logo screen. Additionally, I am not receiving any serial output, even though the serial port is correctly assigned to the COM (9 pin) port and works fine when tested in qemu.

What could be causing this discrepancy between the official release and my custom build, and why is the serial output missing on physical hardware?

---

<div class="post-metadata">

**Author:** ![skalk](https://dub1.discourse-cdn.com/flex006/user_avatar/genode.discourse.group/skalk/32/23_2.png) [@skalk](https://genode.discourse.group/u/skalk)\
**Post date:** [January 28, 2026, 10:51am UTC](https://genode.discourse.group/t/issue-with-serial-output-and-boot-failure/263/2 "2026-01-28T10:51:44Z")

</div>

Hi hamed,

> [@hamed](#):
>
> Specifically, any example I build myself using version **25.05** fails to run; the system freezes at the logo screen. Additionally, I am not receiving any serial output, even though the serial port is correctly assigned to the COM (9 pin) port and works fine when tested in qemu.

If you want to see serial log output, when building Sculpt OS, you need to state `LOG=core` in the environment of your `make` command, e.g.:  
` make run/sculpt KERNEL=nova BOARD=pc LOG=core`

Maybe you should start with a more simple run-script to test your debug setup, like:  
` make run/log KERNEL=nova BOARD=pc`

> [@hamed](#):
>
> What could be causing this discrepancy between the official release and my custom build, and why is the serial output missing on physical hardware?

Well, there are plenty of potential reasons, if you compare official **Sculpt OS release 25.10** , with self-built Sculpt OS using **Genode release 25.05**. Five month development time in between 😉. But seriously, Genode releases are **not** necessarily tested with respect to the Sculpt OS scenario. We do test a lot of things (look at the `tool/autopilot.list` file in genode’s repository for reference) automated on a nightly base, but we cannot afford to do the time-heavy testing of Sculpt OS on all available platforms (multiple PC, Pinephone, MNT Reform) when releasing the Genode framework every 3 month. This is part of the semi-annual Sculpt OS release!

Anyway, it might be that it is not a problem of the code-base, but more an issue regarding your concrete build. What about if you build Sculpt yourself using the sculpt\_25.10.1 revision of Genode’s git repository? Do you experience the same problems?

---

<div class="post-metadata">

**Author:** ![hamed](https://avatars.discourse-cdn.com/v4/letter/h/d6d6ee/32.png) [@hamed](https://genode.discourse.group/u/hamed)\
**Post date:** [January 28, 2026, 11:49am UTC](https://genode.discourse.group/t/issue-with-serial-output-and-boot-failure/263/3 "2026-01-28T11:49:06Z")

</div>

I used the following command for my build:

`make -C build/x86_64/ BOARD=pc KERNEL=nova LOG=core run/sculpt`

`make -C build/x86_64/ BOARD=pc KERNEL=nova LOG=core run/sculpt_test`

As I mentioned, I do get serial output in QEMU, but not on the target hardware.

I even considered the possibility that a high-priority module might be causing a conflict before the serial output initializes. To investigate this, I tested the demo run-script and several other basic scenarios, ensuring serial output was enabled for all of them.

However, the results are identical across all tests: everything works and provides serial logs in QEMU, but on the actual hardware, there is no video output (it hangs at the Genode splash screen) and no serial output whatsoever.

> [@skalk](#):
>
> Well, there are plenty of potential reasons, if you compare official **Sculpt OS release 25.10** , with self-built Sculpt OS using **Genode release 25.05**. Five month development time in between 😉.

In the meantime, I have obtained versions 25.10 and 25.11 and am currently building and testing them. Hopefully, those “five months of development” have some magic in them to fix my serial port! 😀

---

<div class="post-metadata">

**Author:** ![hamed](https://avatars.discourse-cdn.com/v4/letter/h/d6d6ee/32.png) [@hamed](https://genode.discourse.group/u/hamed)\
**Post date:** [February 2, 2026, 11:14am UTC](https://genode.discourse.group/t/issue-with-serial-output-and-boot-failure/263/4 "2026-02-02T11:14:07Z")

</div>

I have also downloaded versions 25.11 and 25.10. I built both of them using the following command:

make -C build/x86\_64/ BOARD=pc KERNEL=nova LOG=core run/sculpt

Then, using `dd`, I wrote the generated .img file to a USB drive. However, during boot, the system gets stuck at the Genode boot splash screen, and there is no serial output.

Meanwhile, when I run Sculpt 25.10 that I downloaded from the official repository using the same setup, it works without any issues. However, it still does not provide serial output, which I actually need.

It is worth mentioning that the image built with the command above works correctly in QEMU and does provide serial output.

---

<div class="post-metadata">

**Author:** ![jws](https://dub1.discourse-cdn.com/flex006/user_avatar/genode.discourse.group/jws/32/104_2.png) [@jws](https://genode.discourse.group/u/jws)\
**Post date:** [February 2, 2026, 12:01pm UTC](https://genode.discourse.group/t/issue-with-serial-output-and-boot-failure/263/5 "2026-02-02T12:01:31Z")

</div>

> [@hamed](#):
>
> Additionally, I am not receiving any serial output, even though the serial port is correctly assigned to the COM (9 pin) port and works fine when tested in qemu.

Just to be on the same page - you already verified by other means that the COM port is working properly in general?

As `bender` will pick any serial device it finds, if multiple are available, e.g. AMT is enabled and there is also an onboard or external (PCIe) COM device, it could select one you might not expect.

As a test you could mount the USB drive containing the original Sculpt 25.10 image that boots on your machine and add _serial_ as argument for bender in the _grub.cfg_:

`multiboot2 /boot/bender serial …`

That should give you the initial log messages from `bender`, `nova` and `core` on the serial connection.

---

<div class="post-metadata">

**Author:** ![hamed](https://avatars.discourse-cdn.com/v4/letter/h/d6d6ee/32.png) [@hamed](https://genode.discourse.group/u/hamed)\
**Post date:** [February 2, 2026, 2:03pm UTC](https://genode.discourse.group/t/issue-with-serial-output-and-boot-failure/263/6 "2026-02-02T14:03:50Z")

</div>

Yes, I tested the COM port using a Linux-to-Linux serial connection, and it worked without any issues.

On the other hand, I checked the configuration of the image that does not boot, and it is as follows:

```auto
loadfont /boot/font.pf2
set timeout=0
set gfxpayload=auto
menuentry 'Genode on NOVA' {
  insmod multiboot2
  insmod gzio
  multiboot2 /boot/bender serial intel_hwp_performance
  module2 /boot/hypervisor hypervisor iommu_intel iommu_amd serial logmem
  module2 /boot/image.elf.gz image.elf
}

```

This matches your instructions (and it is actually set automatically). Even though there is only a single serial port and I am confident about that, I still tested the following case as well:

serial iobase=0x2f8

In the BIOS, I also verified that the serial port base address is set to `0x3f8`.

Additionally, I modified the working version (Sculpt 25.10) in the same way, but I still do not get any serial output.

Note: For testing, I also booted a Linux system and modified its GRUB configuration as follows. The serial output is displayed correctly, and the connection works on both sides:

```auto
GRUB_TERMINAL="console serial"
GRUB_SERIAL_COMMAND="serial --unit=0 --speed=115200 --word=8 --parity=no --stop=1"
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash console=tty0 console=ttyS0,115200n8"

```

---

<div class="post-metadata">

**Author:** ![jws](https://dub1.discourse-cdn.com/flex006/user_avatar/genode.discourse.group/jws/32/104_2.png) [@jws](https://genode.discourse.group/u/jws)\
**Post date:** [February 2, 2026, 3:58pm UTC](https://genode.discourse.group/t/issue-with-serial-output-and-boot-failure/263/7 "2026-02-02T15:58:12Z")

</div>

Thank you for taking the time to describe your testing efforts (I assumed you already took care in that regard but it’s better to have that in writing).

> [@hamed](#):
>
> Additionally, I modified the working version (Sculpt 25.10) in the same way, but I still do not get any serial output.

I am afraid I have no idea why that should not work - perhaps one of my colleagues has any inspiration.

That being said, one thing you could try would be to hard-code the serial port in `core` directly by changing `serial_port()` to return `0x3f8` (or whatever port is configured) in _repos/base/include/spec/x86/bios\_data\_area.h_ (the driver implementation is in _repos/base/include/drivers/uart/x86\_pc.h_). This will give you log message from `core` and the other components running on top and just check with `run/log`.

---

<div class="post-metadata">

**Author:** ![hamed](https://avatars.discourse-cdn.com/v4/letter/h/d6d6ee/32.png) [@hamed](https://genode.discourse.group/u/hamed)\
**Post date:** [February 3, 2026, 8:32am UTC](https://genode.discourse.group/t/issue-with-serial-output-and-boot-failure/263/8 "2026-02-03T08:32:36Z")

</div>

Thanks for the tip! Hard-coding the serial port worked perfectly. After changing the `serial_port()` return value to `0x3f8` in `bios_data_area.h`, I finally got the serial output.

Regarding the boot issue with my self-built image, it turned out to be a hardware-related bottleneck rather than a software or module error. I discovered that the two USB drives I was using for testing were extremely slow, which caused the boot process to hang or fail. After switching to a higher-quality USB drive, everything is working flawlessly, both the system boot and the serial logs.

Thank you again for your guidance!
