Hello Haiku Community,
I’m running Haiku (and antiX Linux) on a rather peculiar netbook, an Asus EEE PC 1015PN, and have encountered a hardware-specific issue related to its hybrid graphics system.
Hardware Background:
- Model: Asus EEE PC 1015PN
- CPU / iGPU: Intel Atom N550 with Intel GMA 3150 Graphics
- dGPU: Nvidia ION 2
- Graphics Switching: This model has a very early Optimus implementation of hybrid graphics. There is no BIOS option to select the GPU. Switching must be done via software (specifically, via
acpi_call
methods in Linux). The BIOS default GPU is the Nvidia dGPU. - CMOS battery dead (BIOS settings reset on power-loss)
Haiku Details:
- Haiku version: haiku-master-hrev58969-x86_gcc2h-anyboot (nightly)
- Bootloader: BIOS mode
The Issue:
When I use Linux, I can switch to the power-saving Intel iGPU via acpi_call. This selection correctly persists across warm reboots (e.g., running the reboot
command). The same is true for Windows (7/8.1/10/11 via vendor utility).
However, when I perform a warm reboot from Haiku, the GPU selection is lost, and the system reverts to the default Nvidia dGPU, exactly as it would after a cold boot or a complete power loss. I found this behavior only in Haiku’s reboot process.
Steps to Reproduce:
- Start with a cold boot of the netbook. By default, the Nvidia dGPU is active.
- Boot into my antiX Linux installation.
- Use an
acpi_call
script to switch the active GPU to the integrated Intel GMA 3150. I can verify the switch was successful. - From Linux, perform a warm reboot (
sudo reboot
). - Boot back into Linux. Result: The system correctly retains the Intel iGPU as the active graphics card.
- Now, from Linux (while the Intel iGPU is still active), perform another warm reboot, but this time boot into Haiku.
- From the Haiku Deskbar, select “Restart system”.
- At the bootloader, select my antiX Linux installation to boot into it.
- Expected Result: The system should still be using the Intel iGPU, as it was a warm reboot.
- Actual Result: The system has reverted to the BIOS default Nvidia dGPU. The ACPI state set by Linux was cleared by the reboot initiated from Haiku.
My Hypothesis:
It seems that Haiku’s ACPI shutdown/reboot sequence is sending a different command or triggering a more complete hardware reset signal than Linux or Windows do. This “deeper” reboot clears the register that holds the GPU selection.
Could the developers shed some light on how Haiku handles ACPI on reboot? Is there a known difference in its implementation that might cause this? More importantly, is there any way to modify this behavior, perhaps through a kernel setting or a configuration file, to perform a “softer” reboot that preserves this ACPI state? Or could this be a missing ACPI method in Haiku’s power manager?
Thank you for your time and for this wonderful OS. Tho my time and knowledge is somewhat limited, I’m happy to provide any logs or perform any tests that might help diagnose this further.