The Ultimate Reference Guide: Running Full Linux on HP Elite Dragonfly Chromebook (Redrix) via Submarine
“How I achieved a fully functional Linux setup with working Sleep, Fast Charging, and complete hardware support.”
Introduction: Why This Method?
Most Chromebook users gravitate towards Coreboot UEFI (MrChromebox firmware). While it is an excellent solution, I faced a persistent and frustrating issue on 11th Gen (Tiger Lake/Volteer) devices: Suspend/Sleep (S0ix) does not work correctly. The device would either freeze or crash immediately upon closing the lid.
The Radical Solution: Reverting to Stock Firmware to leverage the native, factory-tuned ACPI power tables, and using Submarine as the bootloader to chain-load Linux.
Test Device Specifications
-
Device Name: HP Elite Dragonfly Chromebook (Enterprise)
-
Board Name: Redrix (Volteer Family)
-
CPU: Intel® Core™ i5-1145G7 (11th Gen Tiger Lake)
-
GPU: Intel® Iris® Xe Graphics
-
Storage: NVMe SSD 256GB
-
Target OS: Ultramarine Linux (GNOME 43)
Phase 1: Back to Basics (Preparation)
Before starting, it was essential to clean the device of any previous modifications (Coreboot) and return to the factory state.
1. Restore Stock Firmware:
-
From my previous Linux install, I ran the MrChromebox script:
cd; curl -LO mrchromebox.tech/firmware-util.sh && sudo bash firmware-util.sh
-
I selected option: [2] Restore Stock Firmware.
-
After rebooting, I inserted the Chrome OS Recovery USB (created via the Chromebook Recovery Utility) to restore the OS.
2. Enable Developer Mode (Crucial Step):
-
Once Chrome OS was restored, I enabled Developer Mode (
ESC + Refresh + Power, thenCtrl + D). -
The Most Important Step (Linux will not boot without this):
I accessed the Chrome OS terminal (Ctrl + Alt + F2), logged in as chronos, and executed the following command to enable USB booting:
Bash
sudo enable_dev_usb_boot(Without this command, the “Boot from external disk” option in the boot menu will effectively do nothing).
Phase 2: The “Surgical” Installation
Since Submarine does not currently have an automatic installer for this setup, I performed the installation manually using precise steps.
1. Booting Strategy:
I used two USB drives:
-
USB 1: Contained the Ultramarine Linux ISO.
-
USB 2: Contained the
submarine-x86.binfile. -
At the white boot screen, I pressed
Ctrl + Uto boot from USB 2, which then loaded the Submarine menu. I selected Ultramarine from there.
2. The OS Setup:
-
I started the installation via the Anaconda Installer.
-
I selected the internal drive (
nvme0n1) and chose Erase Disk. -
WARNING: When the installation finished, I DID NOT REBOOT! I closed the installer window to stay in the Live Environment.
3. Partitioning (via GNOME Disks):
Goal: Create a small “room” for Submarine.
-
Opened Disks.
-
Selected the main system partition (Partition 3 - Btrfs).
-
Selected Resize Filesystem and reduced the size by 50 MB.
-
In the newly created Free Space, I created a new partition:
-
Size: 16 MB.
-
Name: Submarine.
-
Resulting Device:
/dev/nvme0n1p4(Partition 4).
-
4. Injecting the Bootloader (via Terminal):
I opened the terminal and executed the following commands to download and flash Submarine:
Bash
# 1. Download the Submarine kpart file
cd /tmp
wget https://nightly.link/FyraLabs/submarine/workflows/build/main/submarine-x86_64.zip
unzip submarine-x86_64.zip
# 2. Flash the file into the 4th partition we created
sudo dd if=submarine-x86.kpart of=/dev/nvme0n1p4 status=progress
# 3. Sign/Bless the partition so the Chromebook accepts it
sudo dnf install vboot-utils -y
sudo cgpt add -i 4 -t kernel -P 15 -T 1 -S 1 /dev/nvme0n1
(After this, I rebooted, removed USBs, pressed Ctrl + D, and the system booted successfully!)
Phase 3: Drivers & Fixes
The system booted up immediately, but Audio required a small intervention (standard for Chromebooks).
Audio Fix:
I used the well-known chromebook-linux-audio script:
Bash
git clone https://github.com/WeirdTreeThing/chromebook-linux-audio.git
cd chromebook-linux-audio
./setup-audio
- After a reboot, the system correctly identified the sound card as
sof-rt5682.
Final Report: Hardware Status Matrix
After extensive testing using diagnostic tools (sensors, upower, inxi) and real-world usage, here are the results:
| Component | Status | Notes & Details |
|---|---|---|
| Boot Process | Fast and stable boot via Submarine (Ctrl+D). |
|
| Suspend / Sleep | (Major Achievement) System sleeps and wakes instantly (S0ix) without crashing. | |
| Audio (Speakers) | Loud, clear stereo sound (L/R channels correct). | |
| Headphone Jack | 3.5mm jack works perfectly (Audio Out + Mic In). | |
| Bluetooth Audio | Tested with external earbuds; audio is stable with no stutter. | |
| Internal Mic | Internal microphone captures clear audio. | |
| Webcam | Works in web apps and Cheese. | |
| Touchscreen | Accurate response, supports multi-touch. | |
| Touchpad | Very smooth, supports GNOME gestures (Scrolling, Pinch). | |
| Charging (USB-C) | Fast Charging (PD) Active. Verified 20V input and ~45W rate. | |
| Battery Life | Accurate readings, logical discharge rate. | |
| Keyboard | All keys functional. | |
| Backlight (KBD) | Keyboard backlight works and brightness is adjustable. | |
| Function Keys | Brightness and Volume keys on the F-row work out of the box. | |
| Volume Buttons | Physical side volume buttons are functional. | |
| GPU (Iris Xe) | Full Hardware Acceleration enabled. No software rendering. | |
| Thermals | Perfect temps (40-50°C idle) and silent fans. |
Verdict
Converting the HP Elite Dragonfly to Linux using Submarine is currently the superior choice for this hardware, outperforming Coreboot specifically regarding Power Management and Sleep reliability.
The device has effectively transformed into a productivity beast running open-source software, without sacrificing a single hardware feature.