(DEPRECATED) ChromeOS compositor Replaced by chromiumos/platform/sudbury.

Clone this repo:
  1. 5846298 Typo correction in readme by Lucas Berthou · 1 year, 9 months ago factory-brya-15231.B factory-corsola-15196.B factory-corsola-15197.B factory-nissa-15199.B factory-skyrim-15384.B factory-trogdor-15210.B firmware-corsola-15194.B firmware-duplo-15151.B firmware-nissa-15217.126.B firmware-nissa-15217.253.B firmware-nissa-15217.45.B firmware-nissa-15217.B firmware-skyrim-15369.B firmware-skyrim-15390.B firmware-ti50-mp-15224.B firmware-ti50-prepvt-15086.B main release-R106-15054.B release-R107-15117.B release-R108-15183.B release-R109-15236.B release-R110-15278.B release-R111-15329.B release-R112-15359.B release-R113-15393.B stabilize-15032.B stabilize-15033.B stabilize-15054.115.B stabilize-15054.26.B stabilize-15054.98.B stabilize-15072.B stabilize-15083.B stabilize-15086.B stabilize-15117.111.B stabilize-15117.48.B stabilize-15117.86.B stabilize-15120.B stabilize-15122.B stabilize-15129.B stabilize-15167.B stabilize-15174.B stabilize-15183.14.B stabilize-15183.69.B stabilize-15183.82.B stabilize-15185.7.B stabilize-15185.B stabilize-15207.B stabilize-15208.B stabilize-15236.66.B stabilize-15245.B stabilize-15251.B stabilize-15278.64.B stabilize-15300.B stabilize-15301.B stabilize-15317.B stabilize-15329.44.B stabilize-15329.59.B stabilize-15335.B stabilize-15359.45.B stabilize-15359.50.B stabilize-15359.58.B stabilize-15361.B stabilize-15364.B stabilize-15381.B stabilize-15393.48.B stabilize-15393.58.B stabilize-15395.B stabilize-quickfix-15183.78.B stabilize-quickfix-15278.72.B stabilize-testbranch-15185.10.B
  2. ca08f49 Updating readme with bad ninja state and adding Ben to OWNERS by Lucas Berthou · 1 year, 9 months ago
  3. 2dfc3cb Fixing memory leak after running test to make it so asan doesn't complain by Lucas Berthou · 1 year, 9 months ago
  4. 8927c18 Race condition between resource being released and client flush by Lucas Berthou · 1 year, 10 months ago
  5. 8dd692d Modify tokio feature requirement to support bytes empty crate. by Lucas Berthou · 1 year, 10 months ago factory-foobar-15000.B release-R105-14989.B stabilize-14989.107.B stabilize-14989.85.B stabilize-14998.B

croscomp

Compositor for ChromeOS

Building

Build using portage

$ mkdir ~/trunk/src/third_party/chromiumos-overlay/chromeos-base/croscomp

$ ln -s  ../../../../platform/croscomp/croscomp-9999.ebuild \
	~/trunk/src/third_party/chromiumos-overlay/chromeos-base/croscomp

$ emerge-$BOARD croscomp

Building in the CrOS SDK

$ export BOARD=strongbad

$ setup_board --board=$BOARD

C deps:

$ emerge-$BOARD libxkbcommon wayland pixman libdrm mtdev wayland-protocols cairo mesa-freedreno minigbm lcms pango opengles-headers

Rust deps:

$ emerge-$BOARD bitflags bindgen libloading nix smallvec xml-rs downcast-rs parking_lot_core lock_api owning_ref parking_lot scoped-tls pkg-config

$ ./do-build.sh

$ cros deploy $DUT mtdev

Troubleshooting

You may need to specify which mtdev to deploy

$ cros deploy $DUT sys-libs/mtdev

If croscomp doesn't run smoothly you can get more logs with: $ export WAYLAND_DEBUG=1 RUST_BACKTRACE=1 RUST_LOG=debug

Croscomp may be missing libinput that may require libevdev

$ cros deploy $DUT dev-libs/libevdev
$ cros deploy $DUT libinput

When running the ./do-build.sh script if you get the following error

$ ninja: error: loading 'build.ninja': No such file or directory`

It means meson generation failed to generate the build.ninja file, the easiest work around is to delete weston out folder and retry the script

$ rm /mnt/host/source/src/platform/croscomp/target/x86_64-cros-linux-gnu/debug/weston
$ ./do-build.sh

Running chrome under croscomp

Using the CLs from

https://chromium-review.googlesource.com/c/chromium/src/+/3272706,

build and deploy chrome to the device. You need

target_os = ["chromeos"]
ozone_platform_wayland = "true"
ozone_platform = "wayland"
use_wayland_egl = "false"
use_wayland_gbm = "true"

in the gn args and then

$ ninja -C out_$BOARD/Relase chrome

followed by

$ deploy_chrome --build-dir=out_$BOARD/Release --device=$DUT --nostartui

Make sure both ui and frecon are not running, then start croscomp remotely on the device and use scripts/start-chrome.sh to start the chrome login screen on croscomp.