⚠️ Getting "unknown command"? You're still inside crosh — crosh is not bash. You must type shell first after opening crosh, then all commands work:
Step 1: Ctrl+Alt+T → opens crosh
Step 2: type shell and press Enter → drops into bash
Step 3: now run sudo startxfce4 (or whichever command)
If shell itself says "unknown command" → Developer Mode is not enabled. See the Developer Mode tab.
Full sequence — always do these 3 steps in order:
① Press Ctrl + Alt + T → crosh opens
② Type shell and hit Enter → bash prompt appears
③ Type sudo startxfce4 (or your DE) → Linux launches
Ctrl + Alt + T
Open crosh (ChromeOS shell)
▼
Opens the crosh terminal inside ChromeOS. This is the gateway to everything Linux-related.
Then type:
shell
💚 This drops you into a full bash shell inside ChromeOS. From here you can run sudo commands and launch your Linux chroot.
sudo enter-chroot
Enter Crouton Linux chroot
▼
Drops into your Crouton chroot as a terminal (no GUI). Run from crosh → shell.
Full sequence:
Ctrl+Alt+T → shell → sudo enter-chroot
⚠️ If you have multiple chroots, specify: sudo enter-chroot -n xenial
sudo startxfce4
Launch Crouton XFCE desktop
▼
Launches the XFCE graphical desktop environment in your Crouton chroot. Run from crosh → shell.
Common DE launchers:
sudo startxfce4 # XFCE
sudo startunity # Unity
sudo startkde # KDE
sudo startlxde # LXDE (lightweight)
💚 After launch, switch between ChromeOS and Linux with Ctrl+Alt+Shift+Back / Ctrl+Alt+Shift+Forward
Ctrl+Alt+Shift+←Switch to ChromeOS (Back key)
Ctrl+Alt+Shift+→Switch to Linux desktop (Forward key)
Ctrl+Alt+TOpen crosh (from ChromeOS)
Ctrl+Alt+Shift+F2Switch to second virtual terminal
💡 On the C302CA the Back/Forward keys are the arrow-like icons in the top row (F1/F2 equivalent).
Settings → Developers → Linux
Enable Crostini from ChromeOS Settings
▼
ChromeOS has a built-in Linux (Crostini) that runs in a container — no Developer Mode needed on modern builds. On the C302CA you may need dev mode depending on your ChromeOS version.
Path:
Settings → Advanced → Developers → Linux development environment → Turn On
penguin
Crostini container name
▼
The default Crostini VM is named "termina" and the container is named "penguin". Useful if connecting via vsh.
Connect from crosh:
vsh termina
lxc exec penguin -- bash
sudo crouton -u -n <name>
Update an existing chroot
▼
Updates a Crouton chroot to the latest version. Run from crosh → shell.
sudo crouton -u -n xenial
sudo edit-chroot -a
List all installed chroots
▼
Shows all Crouton chroots on the system with their names and installed targets.
sudo edit-chroot -a
sudo delete-chroot <name>
Delete a chroot
▼
Permanently deletes a Crouton chroot and all its data.
sudo delete-chroot xenial
⚠️ This is irreversible. Back up anything you need first.
sudo sh ~/Downloads/crouton -t list
List available Crouton targets
▼
Shows all available Crouton targets (desktop environments, utilities) you can install.
sudo sh ~/Downloads/crouton -t list
⚠️ Enabling Developer Mode wipes your Chromebook. All local data, apps, and settings are erased. Sign back into your Google account after to restore settings. Keep Google Sync on before starting.
Hard reset into Recovery Mode
Hold Esc + Refresh (F3), then press Power. The screen shows "ChromeOS is missing or damaged." — this is normal, you're in recovery mode.
Enable Developer Mode
At the recovery screen, press Ctrl + D. A new screen asks to confirm — press Enter or the highlighted button to confirm. The device will beep and begin transitioning.
Wait for the transition (~10 minutes)
The Chromebook reboots and shows a screen saying "Transitioning to Developer Mode." Do not interrupt this. It takes 5–10 minutes to wipe and re-initialize the device.
Boot past the OS verification warning
Every boot now shows a screen saying "OS verification is OFF." You must press Ctrl + D within 30 seconds, or it will beep and boot automatically. This is normal.
Ctrl + D → Boot ChromeOS in Developer Mode
(just wait 30s if you want it to boot automatically)
Sign back into ChromeOS
Go through the setup wizard, sign into your Google account, and let it sync. You're now in Developer Mode.
Ctrl+Alt+T → shell
Verify shell access works
▼
If Developer Mode is on, typing shell in crosh opens a full bash shell. In regular mode, shell returns an error.
crosh> shell
chronos@localhost / $
💚 If you see the chronos@localhost prompt, you're in Developer Mode.
crossystem devswitch_boot
Check dev mode status via crossystem
▼
Returns 1 if in Developer Mode, 0 if not. Run from crosh → shell.
crossystem devswitch_boot
# Returns: 1 (Developer Mode ON)
⚠️ Turning off Developer Mode also wipes the device again. Same as turning it on.
At the OS verification warning screen
Press Space instead of Ctrl+D. This re-enables OS verification and wipes the device, returning to normal ChromeOS.
Or from ChromeOS Settings
Settings → About ChromeOS → Additional details → Return to normal mode. Click "Restart" and confirm.
💡 All dual boot methods require Developer Mode to be enabled first. See the Developer Mode tab for setup steps.
Runs a full Linux distro in a chroot alongside ChromeOS. Share files, switch with a keyboard shortcut. No partitioning needed.
- Easy to set up
- Fast switching
- Share clipboard
- No partitioning
- Not true dual boot
- Shares kernel
- Dev mode required
Built-in ChromeOS Linux container. No dev mode needed on modern builds. Runs Debian in a VM. Most secure option.
- Official Google support
- No dev mode needed
- Sandboxed/secure
- apt / Debian
- Limited hardware access
- Slower than Crouton
- No GUI by default
Installs Linux on a separate partition. Real GRUB bootloader. Choose OS at each boot. Uses SeaBIOS/UEFI legacy boot slot.
- True separate install
- Full hardware access
- Real bootloader
- Complex setup
- Less maintained
- C302CA support varies
Download Crouton
In ChromeOS browser, download crouton to your Downloads folder.
https://goo.gl/fd3zc
# Or direct: https://github.com/dnschneid/crouton/raw/master/installer/crouton
Open crosh and enter shell
Ctrl+Alt+T
shell
Install with a desktop environment
Choose your DE — XFCE is lightweight and recommended for the C302CA.
# XFCE (recommended, lightweight)
sudo sh ~/Downloads/crouton -t xfce
# Unity
sudo sh ~/Downloads/crouton -t unity
# KDE
sudo sh ~/Downloads/crouton -t kde
# No GUI (terminal only)
sudo sh ~/Downloads/crouton -t cli-extra
Launch Linux (after install)
sudo startxfce4 # or startunity / startkde
Switch back to ChromeOS: Ctrl+Alt+Shift+← (Back key)
Switch to Linux: Ctrl+Alt+Shift+→ (Forward key)
Enable touchscreen in Crouton (C302CA specific)
Add the touch target for touchscreen support on the C302CA's touchscreen.
sudo sh ~/Downloads/crouton -t xfce,touch,keyboard,extension
Enable from Settings
Settings → Advanced → Developers → Linux development environment → Turn On
ChromeOS downloads and installs a Debian container. Takes a few minutes.
Open the Terminal app
A "Terminal" app appears in your launcher. Click it to open the Debian Linux shell.
Use apt like normal Debian
sudo apt update && sudo apt upgrade
sudo apt install python3 nodejs git vim
Install GUI apps (optional)
Linux GUI apps appear in your ChromeOS launcher automatically.
sudo apt install gedit firefox-esr gimp
💡 chrx installs Linux on a real partition. C302CA uses eMMC storage — you'll be sharing the 64GB between ChromeOS and Linux. Recommend allocating 20–30GB to Linux.
Enable Legacy Boot (RW_LEGACY firmware)
From crosh → shell, run the MrChromebox script to flash the RW_LEGACY slot (not full ROM). This enables SeaBIOS/UEFI without fully replacing firmware.
cd; curl -LO mrchromebox.tech/firmware-util.sh
sudo install -Dt /usr/local/bin -m 755 firmware-util.sh
sudo firmware-util.sh
# Select: Install/Update RW_LEGACY Firmware
Run chrx installer
cd; curl -Os https://chrx.org/go && sh go
Follow prompts. Choose GalliumOS or Ubuntu. Specify partition size. chrx resizes ChromeOS and creates a Linux partition.
Boot selection
At the OS verification screen:
Ctrl+D = boot ChromeOS
Ctrl+L = boot Linux (SeaBIOS)
⚠️ This permanently replaces the ChromeOS firmware. You will not be able to boot ChromeOS after this without re-flashing. The C302CA is fully supported by MrChromebox (codename: Cave) and Linux runs excellently on it. Make sure to save the stock firmware backup to USB.
✅ The C302CA-DH54 has excellent Linux support: Wi-Fi, touchscreen, stylus, audio, webcam, USB-C charging, and the 360° hinge all work well on major distros.
💡 Fedora is generally best for the C302CA — excellent touchscreen support out of the box, modern kernel, and Wayland works great with the 360° hinge. Ubuntu and Pop!_OS are good beginner-friendly choices. Arch/Manjaro for full control.
Enable Developer Mode
Required first. See the Developer Mode tab for the full walkthrough (Esc+Refresh+Power → Ctrl+D).
Get into crosh shell
Ctrl+Alt+T
shell
Disable write-protect (if needed)
The C302CA-DH54 has a firmware write protect that is controlled via software (no screw to remove). The MrChromebox script handles this automatically on Skylake Chromebooks.
# Check WP status first:
crossystem wpsw_cur
# 0 = unlocked, 1 = locked
# The firmware-util.sh script unlocks it automatically
Run the MrChromebox Firmware Utility
This is the key step — it replaces ChromeOS's coreboot firmware with a full UEFI ROM, enabling normal Linux booting.
cd; curl -LO mrchromebox.tech/firmware-util.sh
sudo install -Dt /usr/local/bin -m 755 firmware-util.sh
sudo firmware-util.sh
Select "Install/Update UEFI (Full ROM) Firmware"
In the firmware utility menu, select option for Install/Update UEFI (Full ROM) Firmware. When prompted, insert a USB drive to save your stock firmware backup — do not skip this.
Power off and boot from Linux USB
After firmware flash completes, power off. Plug in your bootable Linux USB. Power on — the device now boots like a standard PC with UEFI. Press Esc or F2 at the MrChromebox splash to enter boot menu.
# To create Linux USB from another machine:
# Windows: Rufus → ISO → GPT → UEFI
# Linux: dd if=linux.iso of=/dev/sdX bs=4M status=progress
# Mac: Etcher or dd
Install Linux normally
The Linux installer works like on any other laptop. For the C302CA with 64GB eMMC, recommended partition layout:
# Suggested partitioning (64GB eMMC):
/boot/efi → 512MB (FAT32, EFI System Partition)
/ → 55GB (ext4 or btrfs, root)
swap → 8GB (or use swapfile instead)
# The eMMC shows as /dev/mmcblk0 in installer
# Not /dev/sda — don't panic if you don't see sda
Post-install: Verify hardware
After first boot, check that key hardware works:
# Check Wi-Fi
ip link show
nmcli device status
# Check touchscreen
xinput list # or libinput list-devices (Wayland)
# Check audio
pactl info
aplay -l
# Check battery / power
upower -i /org/freedesktop/UPower/devices/battery_BAT0
# Check CPU
lscpu | grep "Model name"
Method 1: Restore stock firmware from USB backup
If you saved the stock firmware to USB during MrChromebox setup, you can re-flash it.
# Boot any Linux USB, then:
sudo flashrom -p internal -w stock_firmware_backup.rom
Method 2: ChromeOS Recovery USB
Use Chromebook Recovery Utility on another computer to create a C302CA recovery USB. The recovery process re-flashes both firmware and ChromeOS.
# Install from Chrome Web Store:
"Chromebook Recovery Utility"
# Select: Asus Chromebook C302CA
# Flash to USB, boot from it with Esc at power-on
auto-rotate on tablet mode
Enable 360° hinge auto-rotate
▼
The C302CA's 360° hinge can auto-rotate the screen. On GNOME this works out of the box. On KDE/XFCE:
sudo apt install iio-sensor-proxy # Debian/Ubuntu
# GNOME: works automatically
# KDE: Settings → Display → Auto-rotate
libinput touchscreen tuning
Fix touchscreen calibration
▼
If touchscreen is miscalibrated or palm rejection needs tuning:
sudo apt install libinput-tools
libinput list-devices
libinput debug-events
TLP for battery optimization
Improve battery life on Linux
▼
ChromeOS has aggressive power management that Linux doesn't have by default. TLP helps.
sudo apt install tlp tlp-rdw # Debian/Ubuntu
sudo dnf install tlp # Fedora
sudo systemctl enable --now tlp
tlp-stat -s
eMMC storage performance
Optimize for eMMC (not SSD)
▼
The C302CA uses eMMC storage — it shows as mmcblk0, not sda. Enable discard (TRIM) for longevity:
# Add discard to /etc/fstab mount options:
/dev/mmcblk0p2 / ext4 defaults,noatime,discard 0 1
# Or run fstrim weekly:
sudo systemctl enable fstrim.timer
Esc + Refresh + PowerEnter Recovery Mode (hard reset)
Ctrl + D (at recovery)Enable Developer Mode
Ctrl + D (at OS warning)Boot ChromeOS in dev mode
Ctrl + L (at OS warning)Boot Linux (Legacy/UEFI) if chrx installed
Space (at OS warning)Re-enable OS verification (exits dev mode)
Wait 30s (at OS warning)Auto-boot into ChromeOS
Ctrl + Alt + TOpen crosh terminal
Ctrl + Alt + Shift + ←Switch to ChromeOS (Back key)
Ctrl + Alt + Shift + →Switch to Linux Crouton (Forward key)
Ctrl + Alt + F2Virtual terminal 2 (text console)
Ctrl + Alt + Shift + ReloadRotate screen (tablet mode)
💡 The C302CA uses a Chromebook keyboard — no F-keys by default. The top row is: Back, Forward, Refresh, Fullscreen, Overview, Brightness−, Brightness+, Mute, Vol−, Vol+, Power.
Search (🔍)Caps Lock replacement / launcher
Search + EscOpen Task Manager
Ctrl + Shift + IOpen DevTools
Ctrl + Shift + LLock screen
Alt + [Snap window left
Alt + ]Snap window right
Ctrl + Alt + /Show all keyboard shortcuts
Search + 1–9F1–F9 equivalent
help
List all crosh commands
▼
ping <host>
Ping a host from crosh
▼
crosh> ping 8.8.8.8
crosh> ping google.com
battery_test
Run a battery health test
▼
Discharges the battery for 1 minute and reports wear level and health.
crosh> battery_test 60
storage_test_1
Test eMMC storage health
▼
Runs diagnostic tests on the internal eMMC storage.
crosh> storage_test_1
top
System resource monitor
▼
Shows CPU and memory usage directly in crosh.
crosh> top
💡 Open a terminal (Activities → Terminal or right-click desktop). Do these steps in order — each block is one paste.
gh is in the official Fedora repos — one command:
sudo dnf install gh -y
💚 Takes about 30 seconds. Enter your password when prompted.
gh auth login
When prompted:
→ GitHub.com
→ HTTPS
→ Login with a web browser
→ Copy the one-time code, open Firefox, paste it at github.com/login/device
gh extension install github/gh-copilot
💚 Only need to do this once — persists permanently.
Two main commands — suggest gives you a command to run, explain breaks down what a command does:
gh copilot suggest "..."
Ask Copilot for a command to do something
▼
Examples:
gh copilot suggest "scan my network for open ports"
gh copilot suggest "find all files modified in the last 24 hours"
gh copilot suggest "list all running services"
gh copilot suggest "check what is using port 8080"
gh copilot explain "..."
Ask Copilot to explain what a command does
▼
Examples:
gh copilot explain "nmap -sV -O 192.168.1.0/24"
gh copilot explain "systemctl status NetworkManager"
gh copilot explain "ps aux | grep gnome"
gh copilot suggest -t shell "..."
Force shell command suggestions
▼
Use -t shell to be explicit about shell commands vs git commands.
gh copilot suggest -t shell "update all packages"
gh copilot suggest -t git "undo last commit without losing changes"
gh and Copilot CLI are installed natively — just open a terminal and use it:
gh copilot suggest "..."
💡 No chroot, no setup — works in any terminal window on Fedora.
💡 You need another computer (Windows, Mac, or Linux) to do this. The C302CA has a full-size SD card slot — no USB drive needed.
Go to the Fedora download page
https://fedoraproject.org/workstation/download
Download the correct version
Click "Download Fedora Workstation"
Make sure it says x86_64 — that's the right one for the C302CA's Intel Core m5.
Do NOT download the ARM version — that's for Raspberry Pi and phones.
# What you want:
Fedora-Workstation-Live-x86_64-[version].iso
# Example filename:
Fedora-Workstation-Live-x86_64-40-1.14.iso
💚 The file is about 2GB. Download it to your other computer, not the Chromebook.
Why Fedora for the C302CA?
Fedora includes a very recent kernel which has the best support for the C302CA's hardware out of the box — touchscreen, 360° hinge auto-rotate, stylus, Wi-Fi, audio, and USB-C charging all work without extra setup.
Download Etcher on your other computer
https://etcher.balena.io
Click Download Etcher — it auto-detects your OS (Windows/Mac/Linux). Install it normally.
💚 Etcher is free, safe, and the easiest way to flash an ISO to an SD card. It won't let you accidentally overwrite your main hard drive.
⚠️ Flashing will erase everything on the SD card. Make sure the SD card is blank or has nothing you need on it. You need at least a 4GB SD card (8GB+ recommended).
Insert the SD card into your other computer
Use an SD card adapter if your computer only has a card reader slot, or a USB SD card reader if needed.
Click "Flash from file"
Select the Fedora .iso file you downloaded.
Click "Select target"
Choose your SD card from the list. Double-check it's the SD card and not your hard drive. Etcher shows the size — your SD card size should match.
Click "Flash!"
Takes about 5–10 minutes. Etcher verifies after writing. When it says "Flash Complete" you're done.
Eject the SD card safely
Windows: right-click SD card in Explorer → Eject
Mac: drag to Trash or click eject icon
Linux: right-click → Unmount
💡 You need to flash MrChromebox UEFI firmware first before the Chromebook can boot from SD card. See the Full Linux Install tab for that step — do it before inserting the SD card.
Insert the SD card into the C302CA
The SD card slot is on the right side of the laptop.
Power on and enter boot menu
At the MrChromebox UEFI splash screen, press Esc or F2 to open the boot menu. Select the SD card.
# At boot, press:
Esc → opens boot device menu
# Select: SD card / MMC device
# Or it may auto-detect and boot from SD
Fedora Live boots — try it before installing
Fedora runs as a "Live" session from the SD card first. Try Wi-Fi, touch the screen, flip the hinge — verify everything works before committing to install.
Click "Install to Hard Drive"
When ready, click the Install icon on the desktop. The installer will ask about partitioning — for full Linux only, choose "Erase disk and install Fedora" (the simplest option). The eMMC shows as mmcblk0 — that's your internal storage, which is correct.
If you prefer Rufus on Windows (also free, no install needed):
https://rufus.ie
Open Rufus, select your SD card at the top
Click SELECT and choose the Fedora ISO
Partition scheme: GPT — Target: UEFI (non-CSM)
This is important for MrChromebox UEFI compatibility.
Click START → Write in ISO Image mode
⚠️ If the EFI System option in the UEFI boot menu was blank, your SD card didn't flash correctly. Reflash it with Rufus using the steps below.
Download Rufus
https://rufus.ie
Click the download link — no install needed, it's a single .exe file. Just run it.
Insert the SD card into your Windows PC
Open Rufus — select your SD card at the top
Make sure the correct drive is selected — check the size matches your SD card.
Click SELECT and choose the Fedora ISO file
Set these two options — IMPORTANT
These settings are critical for UEFI booting to work:
Partition scheme: GPT
Target system: UEFI (non CSM)
Click START
If a popup asks which mode to write — choose "Write in ISO Image mode (Recommended)". Click OK.
Wait for it to finish — then eject safely
Takes 5–10 minutes. When done, right-click the SD card in Explorer → Eject before removing.
Insert SD card into the Chromebook (right side slot)
Power on and get to the UEFI menu
At the MrChromebox screen, press Esc to open the boot menu. If that doesn't work, try F2 or just wait — it may drop into the UEFI shell automatically.
If you land in the UEFI shell (black screen with text)
Type exit and press Enter to get to the graphical UEFI menu.
exit
In the UEFI menu → select "Boot Manager"
Or select "Boot from file" if Boot Manager isn't listed.
Select the option that says "EFI System" — that's your SD card
It should now show files inside it. Navigate to:
EFI → fedora → grubx64.efi
Select grubx64.efi and press Enter to boot.
Fedora Live boots 🎉
Try Wi-Fi, touch the screen, flip the hinge. When ready, click "Install to Hard Drive" on the desktop. Choose "Erase disk and install Fedora" — the eMMC shows as mmcblk0, that's correct.
So you don't have to navigate the UEFI menu every time, set boot order in the UEFI menu:
In the UEFI menu → select "Change Boot Order"
Move SD card / EFI System to the top of the list. Save and exit. It will now auto-boot from SD card when inserted.
💚 Once Fedora is installed to the eMMC, it registers itself in the UEFI boot order automatically — you won't need the SD card again after install.