Display goes blank while booting Debian 12 standard

Hello!

I’ve installed Debian 12 standard (without any desktop) on my Chromebook. However, about twelve seconds after I select “Debian GNU/Linux” from the GRUB bootloader, the screen goes completely blank (but not off). At this point, the only thing I can do is press the power button to turn off the Chromebook.

The following image shows what happens right before the screen goes blank:

When I was installing Debian, it asked me to load missing firmware files from external media. However, this didn’t make sense because I downloaded the “non-free” installation media! Wouldn’t it already have this Atheros graphics driver?

Here are my Chromebook’s specs:

Model: HP 14-db0044wm
Board name: CAREENA
Architecture: x86_64
CPU: AMD A4-9120C RADEON R4
CPU gen: Stoneyridge

Thanks for any help you can provide!

This is the error I got while installing Debian:

After installing Debian, my Wi-Fi doesn’t work, and I must pass “nomodeset” in GRUB to stop it from going into a black screen (last post).

Any help (even just small tips) you could provide would be great!

By the way, when I said “graphics driver” in my last post, I meant “graphics and Wi-Fi driver”.

(1) Blank screen caused by bug in AMDGpu modesetting driver being unable to create the framebuffer terminal device. This bug has been fixed. I can verify that version 6.6.21 has the fix applied.

(2) The Debian package in firmware-nonfree called firmware-atheros has the WiFi firmware files you need. There should be a way to download the required .deb file from Debian. Debian -- Package Download Selection -- firmware-atheros_20230625-2_all.deb

(3) Since Careena is an AMD StoneyRidge system, you will need a StoneyRidge custom kernel to get sound to work.

djb

2 Likes

Thank you so much for the helpful and detailed answer!

Passing nomodeset to the kernel via GRUB stops the blank screen from happening, but I’d still like to know if there’s any way to update the AMDGPU driver. I know software in Debian is usually old and stable, so will I just have to wait for 6.6.21 to be available in it?

After I installed Debian 12 the first time on this Chromebook (I’m reinstalling it for various reasons), when I tried to run sudo apt install firmware-atheros, it said firmware-atheros is already the newest version (or somthing like that). Still though, it would complain about it every time I started up the Chromebook (see first post for details).

I used the link you provided to download firmware-atheros, and then put it onto a freshly-wiped, FAT32 formatted 32GB USB disk. I plugged it into the Chromebook and selected Yes when the Detect network hardware box popped up. The box disappered for exactly fifteen seconds, and then simply reappeared. Does this mean the firmware was loaded successfully, or does it mean something went wrong?

Thanks for any help you can provide!

Just to pop in here and ask a question to the op, have you tried Debian Testing on here? Do you still see that blank screen? I can get out my BARLA and test as well.

I have not yet tried Debian Testing, but this is no longer really a problem because I can pass the kernel parameter nomodeset and it fixes the blank screen issue. That being said, I can try it for you and tell you what happens if you are curious about it. Just let me know if you’d like me to do that.

My only problem now is the Wi-Fi firmware, which I can’t seem to load onto the Chromebook from Debian’s installer. If you’re interested, you can take a look at the end of my last post for more information about that problem.

Edit: I just realized that, under Supported Devices and Platforms in the Chrultrabook docs, it says Needs kernel compiled with AMDGPU=Y instead of =M. Is there a workaround for this or will I just need to compile the Linux kernel?

Have a great day and feel free to give any suggestions!

1 Like

Hello again!

I’m coming back here with some new information after trying a few more things on my Chromebook.

Firstly, the Wi-Fi firmware problem isn’t at all what we thought it was. The Wi-Fi driver is installed, but for whatever reason, the Wi-Fi only works the first time you use the computer, but after you reboot/shut it down once, it never works again. I had the exact same problem on a 2009 MacBook Pro with a Broadcom wireless card, and (if I’m remembering correctly), solved it by running sudo modprobe wl every time I turned on the computer. Running this command on the Chromebook does nothing, but do I need to replace wl with somthing else?

Secondly, Ethernet isn’t working at all. Mabye my USB to Ethernet adapter died (though it was working just fine on this same Chromebook yesterday), but if this is a problem anyone else is having, any tips on getting it working would be appreciated. Unfortunately, with no Wi-Fi or Ethernet, I will have to be loading packages with dpkg off a USB stick I prepared on my other laptop.

Popping back in again. Ended up getting LMDE installed on my BARLA board with a similar older AMD stoney ridge processor setup, to see if I could get that black screen you were experiencing. Sadly, this system has barely any eMMC so I split the install directories between MicroSD for home and eMMC for boot.

Here’s a little recording of my terminal from that device, as I have no screensharing available, but I haven’t been seeing any black screens, so you may be correct in that it may be unique to CAREENA. untitled - asciinema.org

On the wifi/ethernet note, does CAREENA have USB-C ports? Does USB-C to Eth work?

Hello!

The black screen was only happening in Debian. I also tried LMDE and it didn’t happen. However, my Chromebook is pretty low-end (4GB RAM, 32GB eMMC AMD RADEON R4) and LMDE wasn’t as snappy as Debian.

The blank screen issue I was describing would always happens about twelve seconds into the laptop booting, but never was I’m using the laptop. Besides, I’ve already solved that problem by passing the kernel parameter nomodeset, so it’s not an issue anymore (despite the title of this thread which I really wish I could change)

My only problems now are the ones I wrote in my last post, the Wi-Fi and the Ethernet.
Also, in the compatibility chart, CAREENA says Needs kernel compiled with AMDGPU=Y instead of =M. If I did this, would I not need to use nomodeset?

Thanks for any help!

CAREENA does have two USB-C ports, but plugging in a USB-C to USB 3.0 adapter and then my USB 3.0 to Ethernet adapter didn’t work.

The puzzling thing about this issue is that the Ethernet on this Chromebook was working yesterday! Ever since I reinstalled Debian 12 this morning, it hasn’t worked. To verify it wasn’t broken, I tested my adapter on another computer and it worked. My adapter isn’t broken.

Does anyone have any ideas about getting my Wi-Fi and Ethernet working again? Like I said earlier, running sudo modprobe wl (I think I got that right) every time I turned on the laptop fixed this exact same problem for my 2009 MacBook Pro, so I’m thinking the command for this one might be similar…

There is a kernel available for Stoney based Chromebooks

Use steps in post 1695. You probably won’t have a “kernel install” command in Debian so you will have to manually create an initramfs for the new kernel.

This kernel has all of the StoneyRidge fixes that are known at this time.

I’ve never had WiFi issues with my Careena – I’m using Void Linux though.

djb

Excellent! I do have three questions though:

  1. Will I still need to run WeirdTreeThing’s script after installing this?
  2. What is “post 1695”?
  3. Is this already compiled? If not, do you recommend any resources/tutorials on compiling the Linux kernel?

I also found this, which seems similar.

Thank you for taking your time to find things like this!

This Stoney Kernel is already compiled. It is version 6.6.16.

Yes you will still need WeirdTreeThing’s script to enable sound.

You can use the kernel config file from WierdTreeThing’s Alpine kernel as a starting point to compile a Debian kernel. I have not started compiling my own Stoney kernel yet so I don’t know what else may be needed.

I’m still (kind of) a Linux beginner and haven’t installed a custom kernel before.
Before I start, I’d like to know three things:

  1. What is a kernel config file?
  2. After I unzip latest.tar.xz, where do I start? Is there a script I need to run?
  3. Are custom kernels safe to use? In other words, are they likely to have been tampered with or just not updated nearly as often? I noticed this one hasn’t been updated in over four months. If so, would it just be better to compile the vanilla Linux kernel with the Stoneyridge patches?

Thank you very much for sharing your knowledge with me.

(1) The kernel config file tells the kernel compile recipe what pieces to compile and put in the kernel or leave as loadable modules.

=====

Firmware Stanza of vanilla kernel config:

Firmware loader

CONFIG_FW_LOADER=y
CONFIG_FW_LOADER_DEBUG=y
CONFIG_FW_LOADER_PAGED_BUF=y
CONFIG_FW_LOADER_SYSFS=y
CONFIG_EXTRA_FIRMWARE=“”
CONFIG_FW_LOADER_USER_HELPER=y

CONFIG_FW_LOADER_USER_HELPER_FALLBACK is not set

CONFIG_FW_LOADER_COMPRESS is not set

CONFIG_FW_CACHE=y
CONFIG_FW_UPLOAD=y

end of Firmware loader

======

Firmware Stanza of stoney kernel:

Firmware loader

CONFIG_FW_LOADER=y
CONFIG_FW_LOADER_DEBUG=y
CONFIG_FW_LOADER_PAGED_BUF=y
CONFIG_FW_LOADER_SYSFS=y
CONFIG_EXTRA_FIRMWARE=“amdgpu/stoney_ce.bin amdgpu/stoney_me.bin amdgpu/stoney_mec.bin amdgpu/stoney_pfp.bin amdgpu/stoney_rlc.bin amdgpu/stoney_sdma.bin amdgpu/stoney_uvd.bin amdgpu/stoney_vce.bin”
CONFIG_EXTRA_FIRMWARE_DIR=“…/stoney_firmware”

CONFIG_FW_LOADER_USER_HELPER is not set

CONFIG_FW_LOADER_COMPRESS=y
CONFIG_FW_LOADER_COMPRESS_XZ=y
CONFIG_FW_LOADER_COMPRESS_ZSTD=y
CONFIG_FW_CACHE=y
CONFIG_FW_UPLOAD=y

end of Firmware loader

===
Note that the stoney kernel loads the amd firmware for the various pieces of the StoneyRidge SoC into the kernel.

I don’t know what else is needed as yet…

(2) Just follow the steps for Arch from the above stoney discussion. The only step I’m not sure of is the “kernel-install” step. That script probably produces the initramfs or initrd file for booting and creates the grub entry for the stoney kernel. I don’t remember using “kernel-install” though, must be new.

(3) Online custom binary kernel files are very unsafe and should be used for testing only. You need to be prepared to reload everything if there is a problem.

===

Debian should still have source packages for building your own kernel. I haven’t used Debian in at least a decade…

Thank you very much! I think I can do this, but security is a concern and I’m still a bit afraid from installing a four month old kernel prepared by someone I don’t know, but if that’s the only option, I guess I’ll take it!

I don’t see any instructions for installing this kernel on Arch Linux. Did you mean to link to these or am I missing something?
Also, I’m using Debian, so would the procedure be different?

Thank you for your patience, and I’ll try to start on this as soon as I can!

The steps as posted for Arch Linux:

  1. Download stoney kernel (https://fs.nightcore.monster/chromebook/stoney/kernel/latest.tar.xz )
  2. Copy/move stoney/vmlinuz-6.6.16-stoney to /boot
  3. Copy/move stoney/modules/lib/modules/6.6.16-stoney to /usr/lib/modules
  4. Run kernel-install add 6.6.16-stoney /boot/vmlinuz-6.6.16-stoney
  5. Reboot and select stoney kernel in GRUB menu

=====

Debian would need a different step 4. You would need to use whatever Debian uses to create the self decompressing boot kernel “initramfs” or “initrd”.

Here is what is in my /boot directory:

config-6.6.32_1
config-6.6.32_24165
config-6.6.32_24167
efi
grub
initramfs-6.6.32_1.img
initramfs-6.6.32_24165.img
initramfs-6.6.32_24167.img
vmlinuz-6.6.32_1
vmlinuz-6.6.32_24165
vmlinuz-6.6.32_24167

The entries with _24xxx are custom kernels I build for testing. Each has a corresponding config, initramfs, and vmlinuz file. These files are for Void Linux and are built with the XBPS build system of Void Linux. Debian had something similar.

/usr/lib/modules has a directory for each kernel version that contains the loadable modules (drivers) and other necessary files.

/usr/lib/modules$ ls -1
6.6.32_1
6.6.32_24165
6.6.32_24167

We are getting beyond the scope of this forum. You might want to join a Debian forum for more up to date details for Debian. Or, you might want to try Void Linux instead. Beware Void Linux is not supported by ChultraBook (yet).

Alright! This is very helpful and (I think) I’m at the point where I’ll be able to figure it out from here.
If somthing goes wrong and Googling it doesn’t turn up anything useful, I’ll create a topic on Debian’s fourms and send you a link to it.

I’ll try my best to get back to you with my results within the next day or two.

Hello!

I got to step 4, but running kernel-install add 6.6.16-stoney /boot/vmlinuz-6.6.16-stoney returned this error:

/boot/initrd.img-6.6.16-stoney does not exist, not installing an initrd`

This must be because (like you said) a different method of creating the initramfs is used in Debian. I heard about genkenel, but is that somthing completly different?