ChromeOS on Framework 13 11th DIY?

I have the 11th Gen DIY I7 Framework laptop. Will I be able to install ChromeOS on it or will I need to upgrade to the Framework ChromeOS mainboard? If so, what other hardware will I need and will it just be better to buy the Chromebook version instead of upgrading myself?
Thanks,
Nathan

You can install ChromeOS Flex on the board. Otherwise you could swap out parts if you wanted.

1 Like

Better to just install ChromeOS Flex so that you have the option of going back to Windows/Linux should you choose instead of being tied down to ChromeOS.

unless you need any of the features that you would get from the titan security chip, which is only available on the chromeos mainboard.

When I looked a few months ago, you don’t get Android app compatibility with ChromeOS Flex either.

Brunch works well: GitHub - sebanc/brunch: Boot ChromeOS on x86_64 PC - supports Intel CPU/GPU from 4th Gen (Haswell) or AMD Ryzen

1 Like

Thanks all.
Yeah, I noticed that the Andriod apps are not available on ChromeOS Flex, which I think makes ChromeOS worth looking at, since a lot of programs are going to web apps (PWA) nowadays. Anyways, Knowing this, I think I am going to try ChromeOS Flex and see what I can and can not do with ChromeOS without the Andriod Apps. And from there, either go back to Windows or Linux or upgrade to the ChromeOS mainboard so I can use the Android apps.

You can run android apps if you install chromeos via Brunch.

2 Likes

Hello to everybody,

I can confirm that ChromeOS runs very well on my new Framework Laptop 13 with AMD 7840U. For those who also want to play with ChromeOS, I am happy to provide my installation script. It runs just well on Fedora 39 as it does on Ubuntu.

script create-chromeos-image

#!/bin/sh -e
#
# creates a ChromeOS image for Framework Laptop 13 AMD 7840U
# tested under Fedora 39 (Workstation Edition) and Ubuntu 22.04 LTS
#
# written by Andreas J. Bathe <ajbathe@g****.com> 2024-02-07
#
# see https://github.com/sebanc/brunch/blob/main/install-with-linux.md#dualboot-installations

PATH2CHROMEOS=/opt/google/chromeOS
CHROMEOSIMG=${PATH2CHROMEOS}/chromeos.img
# define image size in GB
SIZE=128


##### see https://github.com/sebanc/brunch

# create brunch directory if it's not existing
BRUNCHDIR=${PATH2CHROMEOS}/brunch
mkdir -p ${BRUNCHDIR}

TGZ=brunch_r120_stable_20240107.tar.gz
URL=https://github.com/sebanc/brunch/releases/download/r120-stable-20240107/${TGZ}

[ ! -f ${BRUNCHDIR}/${TGZ} ] && wget -N -nd ${URL} -P ${BRUNCHDIR}

##### see https://github.com/sebanc/brunch/blob/main/install-with-linux.md#amd-1
##### and https://cros.tech/device/gumboz/
##### to get a working recovery image for the Framework Laptop 13 AMD

# create recovery directory if it's not existing
RECOVERYDIR=${PATH2CHROMEOS}/recovery
mkdir -p ${RECOVERYDIR}

ZIP=chromeos_15662.88.0_zork_recovery_stable-channel_mp-v9.bin.zip
URL=https://dl.google.com/dl/edgedl/chromeos/recovery/${ZIP}

[ ! -f ${RECOVERYDIR}/${ZIP} ] && wget -N -nd ${URL} -P ${RECOVERYDIR}

##### build ChromeOS image

CHROMEOSBIN=$( basename ${ZIP} .zip )
WORKDIR=/opt/google/chromeOS/tmp
mkdir -p ${WORKDIR}
cd ${WORKDIR}
tar xvf ${BRUNCHDIR}/${TGZ}
unzip ${RECOVERYDIR}/${ZIP}

./chromeos-install.sh -src ${CHROMEOSBIN} -dst ${CHROMEOSIMG} -s ${SIZE}
rm -fr ${WORKDIR}

echo
echo ":)"
echo
echo "Don't forget to put '10-chromeos' into /etc/grub.d"
echo "and to update your grub.cfg for your linux distribution."

exit 0

# end of script.

grub-script 10_chromeos

#!/usr/bin/sh
exec tail -n +3 $0
# This file provides an easy way to add custom menu entries.  Simply type the
# menu entries you want to add after this comment.  Be careful not to change
# the 'exec tail' line above.

menuentry 'ChromeOS' --class chromeos {
    rmmod tpm
    img_path=/opt/google/chromeOS/chromeos.img
    img_uuid=8cecbb71-7c5d-4fbe-aba7-b5f2fdb1f6bb
    search --no-floppy --set=root --file $img_path
    loopback loop $img_path
    source (loop,12)/efi/boot/settings.cfg
    if [ -z $verbose ] -o [ $verbose -eq 0 ]; then
        linux (loop,7)/$kernel boot=local noresume noswap loglevel=7 options=$options \
            chromeos_bootsplash=$chromeos_bootsplash $cmdline_params \
            cros_secure cros_debug img_uuid=$img_uuid img_path=$img_path \
            console= vt.global_cursor_default=0 brunch_bootsplash=$brunch_bootsplash quiet
    else
        linux (loop,7)/$kernel boot=local noresume noswap loglevel=7 options=$options \
            chromeos_bootsplash=$chromeos_bootsplash $cmdline_params \
            cros_secure cros_debug img_uuid=$img_uuid img_path=$img_path
    fi
    initrd (loop,7)/lib/firmware/amd-ucode.img (loop,7)/lib/firmware/intel-ucode.img (loop,7)/initramfs.img
}

menuentry 'ChromeOS settings' --class chromeos {
    rmmod tpm
    img_path=/opt/google/chromeOS/chromeos.img
    img_uuid=8cecbb71-7c5d-4fbe-aba7-b5f2fdb1f6bb
    search --no-floppy --set=root --file $img_path
    loopback loop $img_path
    source (loop,12)/efi/boot/settings.cfg
    linux (loop,7)/kernel boot=local noresume noswap loglevel=7 options= \
        chromeos_bootsplash= edit_brunch_config=1 \
        cros_secure cros_debug img_uuid=$img_uuid img_path=$img_path
    initrd (loop,7)/lib/firmware/amd-ucode.img (loop,7)/lib/firmware/intel-ucode.img (loop,7)/initramfs.img
}

Have fun :slight_smile:

2 Likes