-
-
Save DennisLfromGA/c14b5ec1e2c2de97cca05fdc4e512c59 to your computer and use it in GitHub Desktop.
########################################################################## | |
### THIS SCRIPT NO LONGER WORKS DUE TO RECENT CHANGES IN CHROMEOS Flex ### | |
########################################################################## | |
### Script to add cros_debug / dev mode option in grub.cfg | |
### ( Each Flex update removes cros_debug / dev mode option | |
### Be sure to run this script AFTER each update and BEFORE rebooting ) | |
ANS= | |
ROOTDEVICE= | |
ROOTDEVICEPREFIX= | |
P12MOUNTPOINT=/var/p12 | |
GRUBCFGPATH=$P12MOUNTPOINT/efi/boot | |
GRUBCFGFILE=grub.cfg | |
# Exits the script with return code $1, spitting out message $@ to stderr | |
error() { | |
local ecode="$1" | |
shift | |
echo "$*" 1>&2 | |
return "$ecode" | |
} | |
# Find the root device | |
# Sets: | |
# - $ROOTDEVICE as the root device (e.g. /dev/sda or /dev/mmcblk0) | |
# - $ROOTDEVICEPREFIX as a prefix for partitions (/dev/sda, /dev/mmcblk0p) | |
findrootdevice() { | |
ROOTDEVICE="`rootdev -d -s`" | |
if [ -z "$ROOTDEVICE" ]; then | |
error 1 "Cannot find root device." | |
fi | |
if [ ! -b "$ROOTDEVICE" ]; then | |
error 1 "$ROOTDEVICE is not a block device." | |
fi | |
# If $ROOTDEVICE ends with a number (e.g. mmcblk0), partitions are named | |
# ${ROOTDEVICE}pX (e.g. mmcblk0p1). If not (e.g. sda), they are named | |
# ${ROOTDEVICE}X (e.g. sda1). | |
ROOTDEVICEPREFIX="$ROOTDEVICE" | |
if [ "${ROOTDEVICE%[0-9]}" != "$ROOTDEVICE" ]; then | |
ROOTDEVICEPREFIX="${ROOTDEVICE}p" | |
fi | |
} | |
findrootdevice | |
if [ ! -d $P12MOUNTPOINT ]; then | |
# Make mountpoint | |
echo "Making directory to mount partition 12" | |
sudo mkdir -p $P12MOUNTPOINT | |
elif [ ! -d $GRUBCFGPATH ]; then | |
# Mount EFI partition | |
echo "Mounting ${ROOTDEVICEPREFIX}12 on $P12MOUNTPOINT" | |
sudo mount ${ROOTDEVICEPREFIX}12 $P12MOUNTPOINT | |
fi | |
# Check for cros_debug option, need 5 | |
DEBUGCOUNT="$(grep 'cros_efi cros_debug' $GRUBCFGPATH/$GRUBCFGFILE | wc -l)" | |
if [ "$DEBUGCOUNT" -eq 5 ]; then | |
echo "cros_debug has been added to $GRUBCFGFILE, no changes needed." | |
exit | |
fi | |
# grub.cfg needs editing | |
echo "Editing $GRUBCFGFILE to add 'cros_debug' option." | |
echo " | |
PLEASE NOTE: | |
I claim no responsibility for any damage or harm that may occur to your | |
device as a result of running this script. PROCEED AT YOR OWN RISK. | |
" | |
echo -n "[ press ENTER to continue - Ctrl-C to abort ] "; read ANS | |
cp $GRUBCFGPATH/$GRUBCFGFILE /tmp | |
# vi /tmp/$GRUBCFGFILE | |
sed -e 's/cros_efi /cros_efi cros_debug /' -e 's/cros_efi root/cros_efi cros_debug root/' /tmp/$GRUBCFGFILE | |
sudo cp $GRUBCFGPATH/$GRUBCFGFILE $GRUBCFGPATH/${GRUBCFGFILE}.bak | |
sudo cp /tmp/$GRUBCFGFILE $GRUBCFGPATH/ | |
echo "Done, you can reboot now." | |
exit |
Even after recent 133 update I still can type "shell" at crosh prompt and get bash prompt. Around 2025-02-28, several 10-15 year old laptops updated to 133 version of chromeos-flex. for example: .
- OS variant: Chrome OS
- OS version: reven-release/R133-16151.53.0
- OS channel: stable-channel
BUT, after updates I did have to re-edit grub.cfg (by choosing to boot to Linux in refind). Sometimes, even after the edit, crosh still would not run the shell command. But I did a second edit, and after 2nd reboot, crosh gave me a shell prompt. So, seems like Google and/or the chromium-os folks have (unofficially) restored ability to get dev-mode (shell at crosh prompt) and this ability is no longer broken, at least for most of 2025 for all my 5 or so ChromeOS-flex laptops. And chromebrew can install and run any of the crew packages, including Firefox/brave, etc, on all of them. It is nice not to have to use chrome on flex (or even non-flex) Chromebooks ;-)
Just tested again for new install of flex on a second laptop, and the "cros_debug" let me get shell at crosh prompt. But then flex updated itself to 236 and after update I no longer got shell at crosh prompt, as apparently the update removed cros_debug. But good news is after I added back cros_debug, I was able to get /bin/bash shell at crosh prompt in newest flex os on my old thinkpad. Also, I think the sed command to use might better be something like this:
I'll update with step-by-step howto and details when I have a chance. But it seems the "BROKEN" warning might be removed for now ;-)