Set your build args to the following
use_ozone=true
ozone_platform_gbm=true
target_os="chromeos" # Ideally we wouldn't need this, but I think it compiles in a whole bunch of random things that otherwise are included that we need (like the compositor)
On machines with intel graphics cards, add:
use_intel_minigbm=true
On AMD machines, you probably want: use_amdgpu_minigbm
, although I haven't test this.
On Nvidia-only machines, you're more or less fucked because Nvidia refuses to support GBM. If you have a consumer Intel card, you likely have and integrated Intel GPU you can use.
Other nice things for reasonable build times:
use_jumbo_build=true
enable_nacl=false
is_debug=false
Add the following to .gclient in your chrome checkout
target_os = ['chromeos']
(note, you'll need to run gclient sync and maybe futz around with some java SDKs)
Next, compile things and use the following command to run them:
sudo \ # We need sudo because chromium on ChromeOS expects to be able to read a bunch of /dev/input events
EGL_PLATFORM=surfaceless \ # Tells chromium to not try to use GLX or anything else to get an EGL surface
[your chrome binary] \
--ozone-platform=gbm \ # Use GBM to display graphics (versus says X11 or Wayland)
--no-sandbox \ # If we run as root, sandboxing doesn't work
--force-system-compositor-mode # This is needed to chrome actually takes over the display (with KMS) and shows something
Other handy things you can add:
--kiosk # Kills all the chromium UI
--app="http://bennewhouse.com" # Loads the given app