You are not logged in.
Pages: 1
Thanks for the quick reply, fsmithred.
I think the confusion (at least for me) comes from the Live Install Guide not drawing a clear line between two different things:
Standard UEFI install -- the installer already auto-detects a UEFI environment, finds the ESP, and installs GRUB to the vendor-specific path (/EFI/devuan/). This "just works" on well-behaved firmware and needs no user intervention.
Workaround for buggy firmware -- the media_opt="--force-extra-removable" option installs an additional copy of GRUB to the fallback path (/EFI/BOOT/BOOTX64.EFI) for motherboards whose firmware doesn't properly read NVRAM boot variables or only looks at the removable-media path.
I agree the opt-in design is correct -- always forcing it would cause multiple OS installers to fight over \EFI\BOOT\BOOTX64.EFI and destroy proper boot-order control. That's well documented on the Debian wiki ("Force grub-efi installation to the removable media path" section - UEFI article).
However, in that same citation, Debian Trixie has now added a middle ground that I think would work well for Devuan's Refracta Installer (I'm not sure if the other ISOs' installers do something similar).
The background: UEFI firmware looks for a bootloader in two places, in order:
NVRAM boot variables -- the firmware's internal boot menu. Each OS registers itself here under its own name (e.g., "Devuan"). This is the correct, standard path.
The fallback path -- \EFI\BOOT\BOOTX64.EFI on the ESP. A single, generic file that firmware checks only if NVRAM is empty or unreadable.
The problem with the fallback path: it's a single file. Only one OS can own it at a time. If two OSes both install there, the second overwrites the first. That's why Debian doesn't install there by default.
But some motherboards are buggy and only look at the fallback path -- they never read NVRAM. On those systems, a standard install produces "Boot device not found" after reboot.
Trixie's solution is a conditional check at install time:
1. Mount the ESP.
2. Check whether \EFI\BOOT\BOOTX64.EFI already exists.
3. If it does NOT exist:
→ Install GRUB to the vendor path (\EFI\debian\grubx64.efi) [always done]
→ ALSO install GRUB to the fallback path (\EFI\BOOT\BOOTX64.EFI)
4. If it DOES exist:
→ Install GRUB to the vendor path only.
→ Leave the fallback path alone.Why this is safe:
Fresh install, no other OS -> fallback is empty -> gets populated -> even buggy firmware can find the bootloader.
Dual-boot, Windows or another Linux already installed -> fallback is occupied -> gets left alone -> the other OS keeps working.
For Refracta, the logic would be something like:
# During the UEFI bootloader install step:
if [ ! -f "$ESP_MOUNT/EFI/BOOT/BOOTX64.EFI" ]; then
grub_install_params="$grub_install_params --force-extra-removable"
fiThis is a small, safe change -- it only kicks in when the fallback path is empty, so it can't clobber an existing bootloader. It would mean that on the majority of UEFI systems (fresh install, no other OS), the user just works out of the box without being forced to manually edit the refractainstaller.conf configuration file at all.
As for the Live Install Guide, I think it would still be worth adding a short troubleshooting paragraph like:
If your system boots in UEFI mode, the installer will handle the bootloader automatically. If, after installation, the system does not boot and drops to a UEFI shell or "Boot device not found", your firmware may have a non-standard UEFI implementation. In that case, edit /etc/refractainstaller.conf to uncomment the media_opt line:
# UEFI Removable Media Path # Uncomment to force installation to the removable media path also. # This option is only available on EFI. # Default is commented out. #media_opt="--force-extra-removable"
This covers the remaining edge cases (e.g., the fallback path was occupied by something non-bootable, or the firmware is broken in a way that even the fallback path doesn't help).
Happy to put together a commit (especially for admonition on Excalibur's Live Install Guide on the website), and/or wiki edit (if that's a thing yet) if that's the right place for it. I just need permissions/the direction as to how to actually do that.
IMPORTANT: This guide has helped countless users recover from boot failures. Remember: the --removable flag is your friend when EFI variables are inaccessible!
If you have attempted to install Devuan following the Live Install Guide for the desktop-live ISO using the refractainstaller, you've probably encountered this issue. The installation process appears to finish successfully, but when you remove the USB drive and reboot, you've likely encountered a warning similar to:
grub-install: warning: EFI variables cannot be set on this system.
You will have to complete the GRUB setup manually.This guide explains exactly why this happens, why it is not an issue with your physical system, and how the --removable flag provides a universal fix.
To understand the error, you must understand the two ways computers boot:
Legacy BIOS (Old Way): The computer looks at the very first sector of your hard drive (MBR) to find the bootloader. It's simple and doesn't require a special partition.
UEFI (New Way): Modern computers (almost all made since 2012) use UEFI. Instead of looking at the first sector, the motherboard has a small internal database (NVRAM) that stores a Boot List. This list tells the computer exactly which file on which partition to load (e.g., \EFI\devuan\grubx64.efi).
The Catch: To add an entry to this internal Boot List, the operating system installer must have special access to the motherboard's firmware settings via something called EFI Variables.
When you run the Devuan installer (refractainstaller) or the grub-install command from a Live USB, one of two things usually happens to block access to these EFI Variables:
### Scenario A: Devuan booted the Live USB install in "Legacy/CSM" Mode
Even if your laptop supports UEFI, many ISO creators default to "Legacy" compatibility mode.
What happens: The Linux kernel sees it is running in Legacy mode. It disables all UEFI features because it thinks they aren't available.
The Result: When grub-install tries to talk to the UEFI firmware to add your new Devuan entry to the boot list, the firmware says, "I can't hear you," or the kernel says, "I don't have the tools to talk to it."
The Error: EFI variables cannot be set on this system.
### Scenario B: The efivarfs Filesystem is Missing
Even if you booted the USB in UEFI mode, the Live environment might not have automatically mounted the special virtual filesystem (efivarfs) that allows software to talk to the UEFI chip.
The Result: The installer copies the bootloader files to your hard drive successfully, but fails at the very last step: registering the boot entry in the motherboard's memory.
The installer copies the necessary files (like grubx64.efi) to your hard drive's EFI partition, but it fails to tell your motherboard that these files exist. When you reboot, the motherboard looks at its empty Boot List, finds no instruction to load Devuan, and gives up with "No Bootable Device."
You don't need to re-partition or fix the Live USB boot mode. You can force the bootloader to install in a way that bypasses the need for EFI Variables entirely.
UEFI standards mandate a fallback path. If the motherboard's Boot List is empty or broken, it is required to look for a specific file at a specific location:
/efi/boot/bootx64.efiBy using the --removable flag, you tell grub-install:
"Don't try to write to the motherboard's internal database (which is failing). Instead, copy the bootloader to the fallback location that every UEFI computer checks automatically."
Since you already have Devuan installed and just need to repair GRUB, follow these steps to chroot correctly and reinstall the bootloader. The "no directory" error you saw earlier usually happens because the virtual filesystems (/dev, /proc, /sys) were not bound before entering the chroot.
Boot from your Live USB/CD.
Login as superuser:
su -Mount Partitions and Bind Filesystems
Use lsblk to identify the root / partition (TYPE... part) that you set with refractainstaller for your permanent (non-live) install on your device's drive. It should be the one that IS NOT the mountpoint for the /run/live* directories.
In the example output below, this is what typical user's setup might look like:
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
loop0 7:0 0 1.5G 1 loop /run/live/rootfs/filesystem.squashfs
sda 8:0 0 1.8T 0 disk
└─sda1 8:1 1 1.7G 0 part /run/live/medium
└─sda2 8:2 1 1.4M 0 part
sdb
└─sdb1 9:1 1 476M 0 part /boot/efi
└─sdb2 9:2 1 69.4G 0 part /In this example case, the partition identified within /dev/sdb2 would be root /, and the EFI partition for UEFI setups would be /dev/sdb1.
`
|---
| NOTE: The commands in below will use this example scenario, your input/commands will vary.
|---
- Mount root partition:
mount /dev/sdb2 /mnt- (UEFI use only) Mount EFI partition:
mount /dev/sdb1 /mnt/boot/efi- Bind virtual filesystems (CRITICAL STEP):
mount --rbind /dev /mnt/dev
mount --rbind /proc /mnt/proc
mount --rbind /sys /mnt/sys
mount --rbind /run /mnt/run- Copy DNS settings to allow network access inside chroot:
cp /etc/resolv.conf /mnt/etc/Enter the Chroot
Now enter the environment:
chroot /mnt /bin/bashReinstall and Update GRUB
Once inside the chroot, determine your boot mode. Run this command to check:
ls /sys/firmware/efi/efivars
If the directory is missing or empty, you are in BIOS/Legacy mode.
If the directory exists and contains files, you are in UEFI mode.
- For BIOS/Legacy Systems:
apt update
apt install --reinstall grub-pc
grub-install /dev/sdX
update-grub|---
| NOTE: Replace /dev/sdX with your disk, e.g., /dev/sda, NOT a partition like /dev/sda1)
|---
`
- For UEFI Systems:
apt update
apt install --reinstall grub-efi-amd64
grub-install --target=x86_64-efi --efi-directory=/boot/efi --removable
update-grub
|---
| NOTE: We removed --bootloader-id=Devuan long option in the grub-install command
| because it is ignored when using --removable).
|---
|---
| NOTE: If update-grub fails to detect other operating systems, ensure os-prober is installed and uncomment
| GRUB_DISABLE_OS_PROBER=false in /etc/default/grub.
|---
`
Exit and Reboot
umount -R /mnt
rebootSomehow this morning, randomly by happenstance, cobbled together a set of commands that enables the user to share the screen in Vesktop on Hyprland in Devaun on top of the existing configurations elaborated on in the original post. Sharing this solution with the community in case it's helpful for others:
Setting these variables ensure that Hyprland and Wayland-based applications are properly identified and can function correctly on your Devuan system.
export XDG_CURRENT_DESKTOP=Hyprland
export XDG_SESSION_TYPE=wayland
export MOZ_ENABLE_WAYLAND=1The dbus-run-session command is used to start a new D-Bus session, which is necessary for Hyprland to communicate with other system services. The -- separates the dbus-run-session command from the hyprland command, ensuring that Hyprland is executed as the main process:
⚠️IMPORTANT
Ensure you have xdg-desktop-portal-hyprland installed with:apt install xdg-desktop-portal-hyprland
Launch Hyprland with:
dbus-run-session start-hyprlandBy including these commands in your startup or session configuration, you should be able to run Hyprland on your Devuan system and share the screen as desired.
Launch Vesktop (I have the .deb version of the package installed), enter a voice chat, then click Share Your Screen. When the screensharing popup window appears, check Allow a restore token, then click the desired source to stream from.
Can't seem to locate where the information found was sourced from; currently the commentary posted probably isn't the most correct regarding commands or programs do what. Please feel free to correct comment corrections or point newer users to the right direction for any mistakes made causatively in this post.
There's also the official Screen sharing - Hyprland documentation on this topic.
Happy to help!
Really...why did they leave?
@camtaf greenjeans is probably saying that the best Debian devs where the ones that left Debian because of systemd and they moved on to create Devuan instead. :smile:
There is probably some truth to it, no experienced and self respecting dev with Unix background would put up with such an abomination that systemd is.
I'd also mention that Devuan isn't filled with degenerate virtue-signalling commies that make it a significant side quest (at best) to hate on, police, and disparage (I'd imagine previously) significant portions of their userbase (White people, men, sexually normal/vanilla, non-commie, or any mixture of those in between).
If "anti-facist" registered child sex offenders like Jeremy Bicha (because, at least he's not a gasp n-n-natzeee am I right guys??) are still allowed to be a publically active, contributing member of Debian -- well then it makes perfect sense as to why people would no longer try to assist keep the trains chugging over there.
Eclipse Adoptium provides prebuilt OpenJDK binaries from a fully open source set of build scripts and infrastructure. This is useful for the development and usage of certain Java applications. The Adoptium DEB installer package allows you to do this on Devuan and derivative distributions, with slight modification.
ℹ️ IMPORTANT
The following name schemas are being used for this example:temurin-<version>-jdk e.g.: temurin-8-jdkhttps://packages.adoptium.net/artifactory/deb <distribution-release> main e.g.: https://packages.adoptium.net/artifactory/deb trixie main
Login as superuser—initializing a full login environment:
su -Ensure the necessary packages are present:
apt install -y wget apt-transport-https gpgDownload the Eclipse Adoptium GPG key:
wget -qO - https://packages.adoptium.net/artifactory/api/gpg/key/public | gpg --dearmor | tee /etc/apt/trusted.gpg.d/adoptium.gpg > /dev/null
⚠️ WARNING
In the case of Devuan's distribution releases, the user has to replace <distribution-release> with the Debian release equivalent. Check Adoptium's full list of supported distribution releases for comparison.An interesting example might include someone on Devuan Ceres (indev, unstable), which doesn't have an equivalent release in Adoptium's repository. The example below defaults the most up-to-date stable release on Debian that Adoptium supports (Trixie):
echo "deb https://packages.adoptium.net/artifactory/deb trixie main" > /etc/apt/sources.list.d/adoptium.list
Create the adoptium.list file, with the proper repository information for the package manager (apt) to source from:
echo "deb https://packages.adoptium.net/artifactory/deb <distribution-release> main" > /etc/apt/sources.list.d/adoptium.listUpdate apt's repositories:
apt update
Install the Temurin version required:
apt install temurin-<version>-jdkHi all,
I've been trying to, on-and-off, get Hyprland to be able to screenshare sound and windows/screens. The primary way that I have historically done this on systemd based Linux distributions (OpenMandriva Lx) is via Vesktop.. This has also been an issue with things like attempting to stream or record video on things like OBS.
In Vesktop, when I click the screenshare button in `i3` on XLibre, it simply works now that I am able to launch `pipewire` properly on boot. However, when I switch to Hyprland, when I click the screenshare button on Vesktop, the program simply refuses to open/display the window to display the possible sources for sharing at all. Peculiar.
In an earlier post, I shared that I was able to get Pipewire to work on Hyprland, which from my understanding is what is relied upon for the sound portion of the share for compositors:
Hi all,
Wanted to record how I got Pipewire sound working in Hyprland on Devuan 6 Excalibur.
Within /home/$USER/.config/hypr/hyprland.conf:
... ################# ### AUTOSTART ### ################# # Autostart necessary processes (like notifications daemons, status bars, etc.) # Or execute your favorite apps at launch like this: # pipewire on devuan openrc (after installing pipewire-audio) exec-once = wireplumber & exec-once = pipewire & exec-once = pipewire-pulse & ...Obviously, this is based on OP's initial post/script. Thanks OP.
---
NOTE: For whatever reason, screensharing isn't working. I've been trying to look at the pipewire article on the Gentoo wiki (I'm using OpenRC), and the screensharing article on the Hyprland wiki to see what I can experiment with. Previously on OpenMandriva Lx (systemd distro) where Pipewire was working OOTB. Now that I have Pipewire launching, I'm curious what exactly is missing here where I can't screenshare.
Pipewire article - Gentoo wiki wrote:Note:
Wayland systems use PipeWire to provide desktop portal functionality such as screen sharing and remote desktop.I think it might have to do with this "xdg-desktop-portals" thing.
Curious when Xlibre is working on my system again if that will still be the case.
I've been trying to further experiment, but I'm stuck.
In short, here are some relevant notes that could indicate the source of what the solution may be:
1. Created the scripts that the pipewire article on the Gentoo wiki suggests
2. Attempted to follow the GitHub Gist the Hyprland wiki (linked above) suggested
3. One output I do get whenever I stop Hyprland and get booted back into the TTY is the following:
dconf-WARNING **: 12:34:41:884: failed to commit changes to dconf: Cannot autolaunch without X11 $DISPLAYOne thing I've seen suggested on the net a lot is to do something like the following:
export DISPLAY=:0I do not see a change as a result of this, at least from my understanding.
Hi all,
Wanted to record how I got Pipewire sound working in Hyprland on Devuan 6 Excalibur.
Within /home/$USER/.config/hypr/hyprland.conf:
...
#################
### AUTOSTART ###
#################
# Autostart necessary processes (like notifications daemons, status bars, etc.)
# Or execute your favorite apps at launch like this:
# pipewire on devuan openrc (after installing pipewire-audio)
exec-once = wireplumber &
exec-once = pipewire &
exec-once = pipewire-pulse &
...Obviously, this is based on OP's initial post/script. Thanks OP.
---
NOTE: For whatever reason, screensharing isn't working. I've been trying to look at the pipewire article on the Gentoo wiki (I'm using OpenRC), and the screensharing article on the Hyprland wiki to see what I can experiment with. Previously on OpenMandriva Lx (systemd distro) where Pipewire was working OOTB. Now that I have Pipewire launching, I'm curious what exactly is missing here where I can't screenshare.
Note:
Wayland systems use PipeWire to provide desktop portal functionality such as screen sharing and remote desktop.
I think it might have to do with this "xdg-desktop-portals" thing.
Curious when Xlibre is working on my system again if that will still be the case.
Pages: 1