Package Details: cros-container-guest-tools-git r334.d0714026-1

Git Clone URL: (read-only, click to copy)
Package Base: cros-container-guest-tools-git
Description: Linux guest tools for the Crostini containers on ChromeOS
Upstream URL:
Keywords: chromeos containers crostini lxc
Licenses: custom
Submitter: ava1ar
Maintainer: mshaugh
Last Packager: mshaugh
Votes: 17
Popularity: 1.02
First Submitted: 2018-05-23 06:53 (UTC)
Last Updated: 2022-04-14 12:38 (UTC)

Required by (0)

Sources (9)

Latest Comments

jgreen1tc commented on 2022-05-03 20:30 (UTC)

Out of curiosity, is anyone using this package able to create backups of the container using the Linux Backup and Restore option in the ChromeOS settings? I made a couple recently, but after some updates to ChromeOS and ultimately needing to do an ugly restore of a previous backup, I'm not able to create a backup with the integrated settings. Just checking I guess I could always come up with my own backup solution

EuphoricCatface commented on 2022-04-17 11:11 (UTC) (edited on 2022-04-17 11:26 (UTC) by EuphoricCatface)

Seems like you have to start the container with vmc container, e.g. vmc container termina arch. Starting with lxc console ... makes the container's garcon to fail, and starting with makes vmc to not recognize the container instance.

Well that's a bit anticlimactic :P

Long story short:

  1. Check if your container has eth0 ipv4 network connection after a restart. If it doesn't, apply the LXD workaround.
  2. Once you're set up with your container, make sure that the container is started with vmc container ... command before letting the crostini system take care of it. If you're unsure, you can copy the container with lxc command.

After all this, I'll still have to figure out why my GPU acceleration is broken for me with crostini :'(

EuphoricCatface commented on 2022-04-16 07:10 (UTC) (edited on 2022-04-17 00:19 (UTC) by EuphoricCatface)

I have managed to get Garcon running correctly (fixup: MOMENTARILY!). However, it is more of a "somehow it works now and I can't afford to perform a rigorous test" thing :P

  1. I have noticed crostini reports "Failed to launch vshd for termina:arch: requested container does not exist" on attempting to create a new container with vmc container ..., after some mucking around with Termina VM. I have enabled the #crostini-multi-container flag and it may or may not have contributed to it. I simply deleted those and did not try to go further with the "does not exist" containers.

  2. I noticed that the "multi container" settings interface has all the containers' names even though I deleted most of them in lxc. I deleted them in the UI and then created a new arch container. I cannot tell if this yields a different result than using vmc container .... cros-garcon already did not fail when started manually at this point, and .container_token and ssh_authorized_keys showed up in mount output.

  3. The network problem came back again after a reboot inside the container. The workaround in proved effective this time. (I may have made a typo last time :P)

  4. And then I tried turning termina off and on - .container_token and ssh_authorized_keys do not appear on mount output, and cros-garcon fails to start :'(
    I have tried starting "Terminal" app or the VM manually with vmc, and with the latter, I have tried starting arch first or penguin (debian official) first. None of them seem to make arch to mount the tokens properly

Oh well, at least I have my network working now...

EuphoricCatface commented on 2022-04-16 02:01 (UTC) (edited on 2022-04-16 07:26 (UTC) by EuphoricCatface)

@jgreen1tc: you'll have to give the --user flag on the list command as well when you want to see the user services.

Sommelier units work fine for me. It is cros-garcon that I think is critical in this case. I believe this service is the one that crostini detects and communicates through to the guest system.

EDIT: I tried to figure out what creates /dev/.container_token and /dev/.ssh/ssh_authorized_keys. <s>While I have not found the former, the latter gets listed in mount in the official debian image.</s>
run on /dev/.ssh/ssh_authorized_keys type tmpfs (rw,nosuid,nodev,noexec,relatime,mode=755)
Besides, while digging into the matter, I have also realized that /usr/lib/systemd/user/cros-garcon.service has changed to lose all the Environments= keywords, and /usr/lib/systemd/user/cros-garcon.service.d folder has gone. The environment variables still appear on env command in the official container, but not in the arch container. I am yet to figure where it gets defined. I'll try to look into the debian package's file list.

EDIT2: I see both .container_token and ssh_authorized_keys showing up in mount output.

jgreen1tc commented on 2022-04-15 19:30 (UTC)

Try to start/enable the sommelier units as user units:

systemctl --user start sommelier-x0.service

and so on. At least mine are user units. That's why I was originally trying to install the usr-share-fonts-chromeos.mount unit as a user unit. I thought I did it right (at least it installed fine for me) but ever since I haven't seen the unit when I list the unit files.

icantremember commented on 2022-04-15 13:37 (UTC)

Having similar issues as EuphoricCatface on my Duet 5 running beta 101. After successfully editing PKGBUILD and getting no errors on the aur install, I cannot 'systemctl start' (or enable) the fonts package, nor the sommelier packages from the guide -- they're all not found.

I also get the same "terminal opens and then closes" error after renaming my arch container to penguin, even after a full restart of the machine.

And don't get me wrong, I'm glad Debian works. I've got openconnect and remmina running in it just fine, but I'd really like to get arch working for Signal desktop.

EuphoricCatface commented on 2022-04-15 02:32 (UTC) (edited on 2022-04-16 02:27 (UTC) by EuphoricCatface)

I think I've got everything right with the archwiki guide, but when I put it in the place of penguin, Crostini keeps erasing the arch image

I've been using Arch on Crostini on Asus C101PA until ~10 months ago (stopped because of the small storage of 16GB), so I think I'm not too noob about this. I'm currently trying anew on my new machine Asus Spin 513.

Just in case, one thing I think I'm currently deviating from the guide is that I'm copying the arch image into penguin, not moving. Not that I think it should matter, and earlier attempts with move failed as well.

EDIT: <s>Comparing /opt/google, the official debian image has only cros-containers while the arch image has bin cros-adapta lib lost+found.</s> I'm currently on Beta 101, maybe something's updated on the beta channel?

EDIT2: Some systemd services apparently fails without showing up in $ systemctl --failed and $ systemctl --failed --user. cros-garcon fails for missing /dev/.container_token, and cros-sftp fails for missing /dev/.ssh/ssh_authorized_keys. There could be couple more failed services.

EDIT3: I've noticed I lost the network connection of the container after some reboots... I have tried applying but it still doesn't work. systemctl reports version 250.4-2-arch.

EDIT4: The error message 13 was crostini being unable to reach the lxc image server. It is irrelevant to the problem where crostini deletes the container and the container lacking network
Also, the speculation on EDIT (1) was my mistake. I seem to have mistakenly compared /opt/google and /opt/google/cros-containers when I wrote it. Comparing find output doesn't give obvious differences.

nallekarhu commented on 2022-04-13 17:18 (UTC) (edited on 2022-04-13 17:22 (UTC) by nallekarhu)

I got makepkg working and chromeos fonts installed properly by commenting out all lines in the ### cros-host-fonts section in the PKGBUILD and adding the following line

install -m644 -D ${srcdir}/${_pkgname}/cros-host-fonts/usr-share-fonts-chromeos.mount ${pkgdir}/usr/lib/systemd/system/usr-share-fonts-chromeos.mount

After installing arch then start and enable the unit by running

sudo systemctl enable usr-share-fonts-chromeos.mount --now

Restart linux and chromeos fonts should be installed in /usr/share/fonts

jgreen1tc commented on 2022-04-06 19:56 (UTC) (edited on 2022-04-13 16:05 (UTC) by jgreen1tc)

I finally got makepkg to work by editing the PKGBUILD, commenting all of the lines in the cros-host-fonts section and replacing it with the following:

edit: the code I originally wrote didnt do anything because Im a noob. Commenting out the code in the cros-host-fonts section is enough to get the package installed, but you might not have the fonts mounted as described below. This might affect firefox and some other apps, but you can check out the upstream comments for more info.

icantremember commented on 2022-04-06 17:39 (UTC)

Yes, please. I'd like to nominate jgreen1tc to maintain this package. Is that how this works?

icantremember commented on 2022-04-06 03:03 (UTC)

I understand this part: It basically just mounts /mnt/chromeos/fonts to /usr/share/fonts/chromeos.

But not this part so much: If you change the PKGBUILD to install this file as a systemd unit, then start/enable after install

I'm generally familiar with Linux but new to Arch. Not sure where to even start with trying to make this work. There are parts in the Arch container how-to regarding systemd, but I'm really just following directions there (which I'm very good at :).

duhdugg commented on 2022-04-05 21:53 (UTC)

I'm no longer using this, but I still get notifications here. I would guess this file to be of significant importance:


It basically just mounts /mnt/chromeos/fonts to /usr/share/fonts/chromeos. If you change the PKGBUILD to install this file as a systemd unit, then start/enable after install, fonts might work. There is probably something else I'm missing, but that's where I would start.

icantremember commented on 2022-04-05 20:44 (UTC)

Same issue as zedgoat below. Any ideas? Arch is the only path I know to getting a working Signal desktop client on an arm chromeos device.

zedgoat commented on 2022-03-25 01:10 (UTC)

Hello! I was following the guide at, and when executing makepkg -si within cros-container-guest-tools-git its failing out with some of the font installs:

==> Starting package()...
install: cannot stat '/home/xxxx/Downloads/cros-container-guest-tools-git/src/cros-container-guest-tools/cros-host-fonts/05-cros-fonts.conf': No such file or directory
==> ERROR: A failure occurred in package().

It looks like the structure of the google package has changed since the last PKGBUILD update. Will try and have a dig around later re: fix, noting here in case anyone else has come across it.

afg984 commented on 2021-08-21 04:50 (UTC) (edited on 2021-08-21 04:50 (UTC) by afg984)

Please add makedepends=('git')

This is required by VCS package guidelines [1]. Also makes makechrootpkg happy.


nallekarhu commented on 2021-08-07 18:18 (UTC)

@Xaseron Thank you!

Xaseron commented on 2021-08-07 13:15 (UTC)

They are using main and not master branch anymore but didn't change the default branch. Therefore i had to add #branch=main to the url in the PKGBUILD.

BiteDasher commented on 2021-07-04 22:10 (UTC)

BTW I currently trying to maintain version on my gh

EuphoricCatface commented on 2021-05-11 07:12 (UTC) (edited on 2021-05-11 07:28 (UTC) by EuphoricCatface)


how do you get r291?

I don't have much idea. I actually remember being confused when I bumped to r288, because I thought I would be getting version with the issue resolved and r288 was earlier version than that. I didn't pay much attention, so I don't have enough information to provide.

These are the versions I've had so far according to /var/log/pacman.log:

 - r286.1783768-1 (210320)
 - r288.714b79f-1 (210425)
 - r291.4669dde-1 (210509)
 - r292.216f2f5-1 (210511)

P.S. Much appreciated to whoever structured PKGBUILD in such way :D

EDIT: format
EDIT2: Now that I look into upstream git log, it doesn't seem like much has happened with this package regarding crashes. I guess possibly some combinations of update and crostini reboot did it? Anyways, the point was that you could bump the revision. You can totally disregard my mumbles.

nallekarhu commented on 2021-05-09 20:49 (UTC) (edited on 2021-05-09 20:49 (UTC) by nallekarhu)

@EuphoricCatface Thanks for the heads up! I re-installed the package and I now have it as

cros-container-guest-tools-git r282.ebca6be-1
how do you get r291?

All AUR packages I've had before all pointed to a particular release or version as the source. I think this AUR package points to the latest commit, at least that's how I understand it looking at the PKGBUILD.

EuphoricCatface commented on 2021-05-09 05:24 (UTC)

Just a friendly tip:

Re-install the package from time to time even though AUR version number doesn't bump. Apparently the package can update to latest git revision (sorry if that's obvious. I would love to know if it's natural for all -git packages).

I was suffering from so many random failed to mount /newroot/proc and pipe broken errors, which I assumed OoM. It was present in r286 (retrieved 210320) and r288 (retrieved 210425), and now r291 (retrieved today) seems to have solved it.

duhdugg commented on 2020-11-20 22:42 (UTC)

Package needs a new active maintainer. I'm no longer using ChromeOS devices or supporting their ecosystem after my laptop was bricked by an update.

Good luck.

Xaseron commented on 2020-10-28 10:26 (UTC)

It looks like it sufficient to add export XDG_RUNTIME_DIR=/run/user/$(id -u) to my .zshrc

bneate commented on 2020-10-27 18:44 (UTC)

A fully updated Arch with the latest cros-container-guest-tools-git still works for me on Chrome OS Version 86.0.4240.112 on the HP Chromebook X2

duhdugg commented on 2020-10-27 16:15 (UTC)

Well, this is suboptimal timing. Due to sudden hardware failure, my Pixelbook is out for repair (see: ). I was also having trouble with my Arch container on Chrome OS versions 86-87 before the failure occurred. I don't have the means right now to troubleshoot. I'm open to suggestions on how to proceed.

Xaseron commented on 2020-10-27 09:05 (UTC)

@duhdugg The latest Arch upgrade just broke crostini entirely. I can't figure out why.

xaseron@arch ~ % systemctl --user status Failed to connect to bus: No such file or directory

It maybe related to logind. As the XDG/DBUS environment variables are not set.

duhdugg commented on 2020-10-05 13:51 (UTC)

@Xaseron Manual action requirements for pulseaudio are documented in cros-container-guest-tools.install and this is output to the console when the package is installed.

Xaseron commented on 2020-10-05 10:14 (UTC)

@duhdugg Pulseaudio does not work out of the box. I had to manually create a symlink to and daemon.conf to the skel directory. What would be the best way to fix this for new users?

xalexis commented on 2020-09-11 13:54 (UTC)

@duhdugg Okay, got it, thanks. I thought it wasn't working because telegram desktop doesn't show the option to enable "native notifications" like it used to a few months ago.

duhdugg commented on 2020-09-11 12:06 (UTC)

@xalexis it's an on-demand dbus service, so it gets loaded when an application sends a notification through libnotify.

xalexis commented on 2020-09-11 11:55 (UTC)

@duhdugg not sure I can find any. However I cannot see the notification service listed in systemctl. However the file " /usr/lib/systemd/user/cros-notificationd.service" is in my system.

Let me know if there's any other way for me to share an error message, I'm still a bit noob in all this

duhdugg commented on 2020-09-11 11:33 (UTC)

@xalexis do you have any error messages to share?

xalexis commented on 2020-09-11 09:36 (UTC)

@duhdugg I just updated to the latest version of the package in crostini, but the cros-notificationd.service seems to be broken. Any idea as to why this might be happening?

Thank you so much for being the new maintainer for this package, really appreciate it!

duhdugg commented on 2020-09-11 03:28 (UTC)

@nallekarhu thanks for reporting. I just pushed a version bump for r275.19eab9e-2. I'll get better at this going forward.

nallekarhu commented on 2020-09-10 21:38 (UTC)

Thank you @duhdugg for adopting this pkg! Update r275.19eab9e didn't show up in a regular system update for me (i.e. yay -Syu) and I had to re-install. I only knew about a new version because I subscribe to notifications for this pkg.

ava1ar commented on 2020-09-09 22:15 (UTC)


It was interesting experience! I liked it, but now I am abandoning Google products from my use, I don't like the direction they are going. They are no longer following "Don't be evil", so I am not with them anymore.

duhdugg commented on 2020-09-09 22:13 (UTC)

Thank you, @ava1ar for all you've done with this package!

ava1ar commented on 2020-09-09 22:08 (UTC)


It's all yours. Please adopt and update. Good luck!

duhdugg commented on 2020-09-09 22:06 (UTC)

Yes, I'm up for the task.

ava1ar commented on 2020-09-09 21:54 (UTC)


Are you interested in picking up the package support? I am not using ChromeOS and Chromebooks anymore. Let me know if you are interested.

duhdugg commented on 2020-09-09 18:17 (UTC)

I just did a fresh install and noticed a couple issues.

  1. xorg-xrdb and xorg-xsetroot need installed to get the default sommelier config working as intended (see /etc/sommelierrc)

  2. cros-notificationd.service needs installed to /usr/lib/systemd/user/ to get notifications working:

install -m644 -D ${srcdir}/${_pkgname}/cros-notificationd/cros-notificationd.service ${pkgdir}/usr/lib/systemd/user/cros-notificationd.service

ava1ar commented on 2020-06-07 05:17 (UTC)


Thanks for the notification, package is fixed. Google used dpkg-divert feature to update system configuration files, owned by other package. Unfortunately, Arch doesn't have such functionality, so I have to come up with other approach.

Manual command execution required after the package update to make PulseAudio work. Tested and verified working.

If someone has better ideas for the issue, please drop me a message. Thanks!

thagabe commented on 2020-06-06 23:35 (UTC) (edited on 2020-06-06 23:40 (UTC) by thagabe)

As of 06//06/2020 I am getting this error with a clean build

install: cannot stat '/home/<home directory>/.cache/yay/cros-container-guest-tools-git/src/cros-container-guest-tools/cros-pulse-config/cros-pulse-config.service': No such file or directory
==> ERROR: A failure occurred in package().
Error making: cros-container-guest-tools-git

EDIT: here is some info I dug up, looks like the config file is phased out

ava1ar commented on 2020-04-30 03:21 (UTC)

@cadilhac, interesting that key codes issues were fatal to the Sommelier earlier (about a year ago) and they these warnings were present but never cause issues. Somehow you got old issue back, however my setup works fine, showing same errors on start.

cadilhac commented on 2020-04-30 00:53 (UTC) (edited on 2020-04-30 02:06 (UTC) by cadilhac)

I'm having something similar to @savanyio, where sommelier-x@0 does not start because of xkbcomp.

Apr 30 00:44:56 arch sommelier[27409]: _FontTransOpen: Unable to Parse address  /usr/share/fonts/cyrillic
Apr 30 00:44:56 arch sommelier[27409]: _FontTransOpen: Unable to find transport for
Apr 30 00:44:56 arch sommelier[27409]: _FontTransOpen: Unable to find transport for
Apr 30 00:44:56 arch sommelier[27409]: _FontTransOpen: Unable to Parse address  /usr/share/fonts/Type1
Apr 30 00:44:56 arch sommelier[27409]: _FontTransOpen: Unable to Parse address  /usr/share/fonts/100dpi
Apr 30 00:44:56 arch sommelier[27409]: _FontTransOpen: Unable to Parse address  /usr/share/fonts/75dpi
Apr 30 00:44:56 arch sommelier[27420]: The XKEYBOARD keymap compiler (xkbcomp) reports:
Apr 30 00:44:56 arch sommelier[27420]: > Error:            Illegal keycode 372 for name <I372>
Apr 30 00:44:56 arch sommelier[27420]: >                   Must be in the range 8-255 inclusive
Apr 30 00:44:56 arch sommelier[27420]: > Error:            Illegal keycode 382 for name <I382>
Apr 30 00:44:56 arch sommelier[27420]: >                   Must be in the range 8-255 inclusive
Apr 30 00:44:56 arch sommelier[27420]: > Error:            Illegal keycode 569 for name <I569>
Apr 30 00:44:56 arch sommelier[27420]: >                   Must be in the range 8-255 inclusive
Apr 30 00:44:56 arch sommelier[27420]: > Error:            Illegal keycode 380 for name <I380>
Apr 30 00:44:56 arch sommelier[27420]: >                   Must be in the range 8-255 inclusive
Apr 30 00:44:56 arch sommelier[27420]: Errors from xkbcomp are not fatal to the X server
Apr 30 00:44:56 arch sommelier[27423]: The XKEYBOARD keymap compiler (xkbcomp) reports:
Apr 30 00:44:56 arch sommelier[27423]: > Error:            Illegal keycode 372 for name <I372>
Apr 30 00:44:56 arch sommelier[27423]: >                   Must be in the range 8-255 inclusive
Apr 30 00:44:56 arch sommelier[27423]: > Error:            Illegal keycode 382 for name <I382>
Apr 30 00:44:56 arch sommelier[27423]: >                   Must be in the range 8-255 inclusive
Apr 30 00:44:56 arch sommelier[27423]: > Error:            Illegal keycode 569 for name <I569>
Apr 30 00:44:56 arch sommelier[27423]: >                   Must be in the range 8-255 inclusive
Apr 30 00:44:56 arch sommelier[27423]: > Error:            Illegal keycode 380 for name <I380>
Apr 30 00:44:56 arch sommelier[27423]: >                   Must be in the range 8-255 inclusive
Apr 30 00:44:56 arch sommelier[27423]: Errors from xkbcomp are not fatal to the X server
Apr 30 00:44:56 arch sommelier[27409]: XKB: Failed to compile keymap
Apr 30 00:44:56 arch sommelier[27409]: Keyboard initialization failed. This could be a missing or incorrect setup of xkeyboard-config.
Apr 30 00:44:56 arch sommelier[27409]: (EE)
Apr 30 00:44:56 arch sommelier[27409]: Fatal server error:
Apr 30 00:44:56 arch sommelier[27409]: (EE) Failed to activate virtual core keyboard: 2(EE)

That's on Acer Chromebook Spin 13, following the instructions from the Wiki. Any clue?

EDIT: Removing the offending keycodes in /usr/share/X11/xkb/keycodes/evdev solved the problem.

ava1ar commented on 2020-04-05 18:27 (UTC)

Updated to latest from upstream.

@mmberlin, link was added.

mmberlin commented on 2020-04-05 02:40 (UTC) (edited on 2020-04-05 02:44 (UTC) by mmberlin)

Can you add the below link to the PKG build to allow for .desktop file calls to the sommelier service for rescaling?

ln -sf /opt/google/cros-containers/bin/sommelier /usr/bin

Right now you have to call the entire somelier path in each .desktop file. This would be consistent with the standard Debian methods.

ava1ar commented on 2019-12-27 05:01 (UTC) (edited on 2019-12-27 05:02 (UTC) by ava1ar)


Yes, this is known issue - check out

jmogens commented on 2019-12-27 05:00 (UTC)

Anyone else see the systemd-networkd-wait-online.service failing, and the container integrations break after upgrading to systemd 244.1?

jdl commented on 2019-12-11 05:20 (UTC)

Thank you for maintaining this package! Everything works fine on my PixelBook GO.

ava1ar commented on 2019-11-03 03:58 (UTC) (edited on 2019-11-03 03:58 (UTC) by ava1ar)

Package updated. Changes:

  • Updating systemd-resolved configuration to avoid DNS names resolution delays on container restart
  • Disabling/masking all not working / not required systemd services after package installation

thagabe commented on 2019-10-29 23:57 (UTC)

@ava1ar Thanks for the info! Looks like the latest crostini got the integrations back!

ava1ar commented on 2019-10-26 22:29 (UTC)

@thagabe This is known issue and nothing to do with Arch:

thagabe commented on 2019-10-26 22:09 (UTC) (edited on 2019-10-26 22:10 (UTC) by thagabe)

Issue: Garcon does not connect to "Files" on ChromeOS

Currently on:

- ChromeOS BETA 78.0.3904.70 Pixelbook i5

- Arch container for ChromeOS x86

- Kernel 4.19.69-06666-g6c4f8cbba24e

- systemd 243.78-1

- journalctl -p 3 -xb:

        Oct 26 14:52:49 penguin garcon[122]: [122]: MIME types file does not

                         exist at: /home/<my home user>/.mime.types

        Oct 26 14:52:55 penguin garcon[122]: [122]: MIME types file does not

                         exist at: /home/<my home user>/.mime.types

        Oct 26 14:54:51 penguin garcon[122]: [122]: MIME types file does not

                         exist at: /home/<my home user>/.mime.types

        Oct 26 14:57:47 penguin garcon[122]: [122]: Failed reading in config

                         file: /home/<my home user>/.config/cros-garcon.conf

        Oct 26 14:57:48 penguin garcon[122]: [122]: Failure with

                         RefreshCache of: Failed to obtain authentication.

        Oct 26 14:57:48 penguin garcon[122]: [122]: Failure performing

                         refresh of package cache, code: 2

        Oct 26 15:01:13 penguin garcon[122]: [122]: MIME types file does not 
                         exist at: /home/<my home user>/.mime.types

ava1ar commented on 2019-10-18 22:34 (UTC)

@sovanyio No issue with xkeyboard-config for me. Up-to-date arch in the container (testing is on) and Chrome OS 78.0.3904.50 (Beta channel).

ava1ar commented on 2019-10-18 22:26 (UTC)

@sovanyio If you use sommelier without the full path, you need to add it to the PATH - this is what you need to do you your side and not related to this package itself.

About Eclipse - I was able to google multiple guides about how to configure HiDPI support for it. I personally don't use it, but was able to configure both Netbeans and IntelliJ IDEA to proper render without sommalier "workaround".

Issue with xkeyboard-config looks familiar, but it was addressed long ago. May be this is something new, I will double check. Are your Arch up-to-date? Which ChromeOS channel / version are you running on Pixelbook?

sovanyio commented on 2019-10-18 22:06 (UTC) (edited on 2019-10-18 22:07 (UTC) by sovanyio)

Yeah, so I'm on a pixelbook and I run usually at 80% scaling in ChromeOS. When using the debian container, I typically modify desktop files under /usr/share/applications/ with sommelier -X --scale=.8 --dpi=160 %command and this works very well across apps I use (sublime text, atom, eclipse, intellij).

OOTB adding the sommelier command results in:

$ xdg-open atom.desktop
/usr/sbin/env: 'sommelier': No such file or directory

and the associated desktop file being passed to Chrome is ChOS (which "opens" as a tab).

I ended up appending the cros-tools bin directory to /etc/profile and that appears to be working as expected, though I get another error with that addition, added below.

$ xdg-open atom.desktop 
_XSERVTransSocketUNIXCreateListener: ...SocketCreateListener() failed
_XSERVTransMakeAllCOTSServerListeners: server already running
_XSERVTransSocketUNIXCreateListener: ...SocketCreateListener() failed
_XSERVTransMakeAllCOTSServerListeners: server already running
The XKEYBOARD keymap compiler (xkbcomp) reports:
> Warning:          Unsupported high keycode 382 for name <I382> ignored
>                   X11 cannot support keycodes above 255.
>                   This warning only shows for the first high keycode.
> Internal error:   Could not resolve keysym XF86MonBrightnessCycle
> Internal error:   Could not resolve keysym XF86RotationLockToggle
Errors from xkbcomp are not fatal to the X server
[$USER@penguin applications]$ 
(electron4:565): Gtk-WARNING **: 18:00:07.964: cannot open display: :2

Is this now additional incompatible keys in xkeyboard-config? Perhaps expected but should note anyway that launching through ChromeOS GUI fails for both of these situations.

Without setting scaling explicitly through sommelier, the default settings screw up the dpi and scaling on eclipse making it completely unusable (though text is sharp) UI elements are way larger than expected and its generally not a fun time.

ava1ar commented on 2019-10-18 21:15 (UTC)

@sovanyio can you provide more information? First of all, there is 2x scaling using sommelier available out-of-the-box using right click menu in the task bar (this is achieved using separate sommelier instance with 2x scaling). Also, sommelier scaling is not the best from the point of view of visual quality - proper HiDPI support configuration like gives much better result.

sovanyio commented on 2019-10-18 21:12 (UTC)

Anyone having issues with sommelier prepends in *.desktop files for high-dpi scaling?

Apps don't launch for me then, but do work if I use the command manually. Thinking it could be due to the tools not being on PATH for the services.

ava1ar commented on 2019-10-11 05:42 (UTC)

Dependency added, thanks @drelyn86!

duhdugg commented on 2019-10-10 21:18 (UTC)

Sommelier uses xdpyinfo from xorg-xdpyinfo to detect DPI scaling.

ava1ar commented on 2019-09-30 00:56 (UTC)

Following change added : "Configure Control+Space passthrough for Sommelier"

ava1ar commented on 2019-09-22 05:08 (UTC) (edited on 2019-09-22 05:09 (UTC) by ava1ar)

Following change is included: "container-guest-tools: Allow passwordless pkexec" (

bneate commented on 2019-09-12 22:33 (UTC)

Yes that solved the issue for me. Thank you for making the change.

ava1ar commented on 2019-09-12 04:46 (UTC)


OK, got it. I updated PKGBUILD to include setting up LIBGL_DRIVERS_PATH for sommelier and sommelier-x. I am not patching units, just added new line to override configuration - this is more clean way making it.

On my Pixelbook GPU acceleration works fine out-of-the-box with up-to-date arch and 77 beta ChromeOS version. Updated PKGBUILD works fine too.

Please try and confirm it resolves the issue for you.

bneate commented on 2019-09-11 22:10 (UTC) (edited on 2019-09-11 22:12 (UTC) by bneate)

The errors I was seeing were previously mentioned by rawkode where sommelier would fail to run with MESA-LOADER errors failing to find the dri drivers and well as the ones mentioned by mrln getting gpu acceleration to work.

Both of them fixed the issue by overwriting the dri drivers in /usr/lib/dri with those found in /opt/google/cros-containers/lib to allow sommelier to start and then switch back to the original libs to allow the bundles apps to work correctly.

By updating the sommelier service file to use /opt/google/cros-containers/lib for it's dri divers directly we no longer need to shuffle around these files.

Note: I'm not sure how this was working by default on your pixelbook without any of these changes but this was required to get sommelier and gpu acceleration to work on my HP chromebook X2.

ava1ar commented on 2019-09-11 17:57 (UTC) (edited on 2019-09-11 17:57 (UTC) by ava1ar)


Interesting, thanks for sharing - I will incorporate this to the PKBUILD! Can you provide more information about the errors you are mentioning?

bneate commented on 2019-09-11 17:33 (UTC) (edited on 2019-09-11 17:34 (UTC) by bneate)

In order to get sommelier to run correctly without any MESA-LOADER errors and get GPU support working I added the following lines to /usr/lib/systemd/user/{sommelier@.service,sommelier-x@.service}


ava1ar commented on 2019-08-29 04:01 (UTC) (edited on 2019-08-29 04:01 (UTC) by ava1ar)

Last update implements more ChromeOS keys binding inside Crostini as described here:

ava1ar commented on 2019-08-14 04:59 (UTC)

Looks like I am getting GPU working out-of-the-box on my Pixelbook with latest version of this package and in latest dev version (77.0.3865.18) with gpu flag set to on. Getting virgl as driver now. Finally I can watch H265 video on using mpv with GPU acceleration!

ava1ar commented on 2019-07-14 23:05 (UTC)

Thanks, @mrln! I will check this out on my Pixelbook and will incorporate into this package if it works.

mrln commented on 2019-07-14 21:50 (UTC) (edited on 2019-07-14 21:52 (UTC) by mrln)

I temporarily got gpu running using a hacky trick. I'm using a HP X360 chromebook, Chrome OS 76.0.3809.38 and crostini archlinux container. The way i got it working:

Backup virtio_gpu_dri and symlink the google virtio_gpu_dri
mv /usr/lib/dri/ /usr/lib/dri/
ln -s /opt/google/cros-containers/lib/ /usr/lib/dri/
Enable gpu

Open cros shell using Ctrl+alt+t

vmc stop termina
vmc start --enable-gpu termina

Open linux terminal Run glxinfo -B, it segfaults with unknown architecture error.

Restore backup virtio_gpu_dri overwriting symlink.
mv /usr/lib/dri/ /usr/lib/dri/

Now glxinfo -B show virgil as driver. Steam games work. Oh, and somewhere during testing i had to install libc++ from aur because "LIBGL_DEBUG=verbose glxinfo" was complaining about it missing.

ava1ar commented on 2019-06-23 07:01 (UTC)

rawkode, Do you have GPU acceleration enabled when getting this error?

rawkode commented on 2019-06-20 13:32 (UTC) (edited on 2019-06-20 14:32 (UTC) by rawkode)

sommelier-x unable to start

-- The job identifier is 472.
Jun 20 08:23:12 penguin sommelier[380]: MESA-LOADER: failed to open virtio_gpu (search paths /usr/lib64/dri)
Jun 20 08:23:12 penguin sommelier[380]: failed to load driver: virtio_gpu
Jun 20 08:23:12 penguin sommelier[380]: MESA-LOADER: failed to open kms_swrast (search paths /usr/lib64/dri)
Jun 20 08:23:12 penguin sommelier[380]: failed to load driver: kms_swrast
Jun 20 08:23:12 penguin sommelier[380]: MESA-LOADER: failed to open swrast (search paths /usr/lib64/dri)
Jun 20 08:23:12 penguin sommelier[380]: failed to load swrast driver
Jun 20 08:23:12 penguin sommelier[380]: error: couldn't get display device
Jun 20 08:23:12 penguin systemd[59]: sommelier-x@0.service: Main process exited, code=exited, status=1/FAILURE
-- Subject: Unit process exited
-- Defined-By: systemd
-- Support:

In-order to resolve:

 sudo pacman -S xwayland xorg-server-xwayland
 sudo cp /usr/lib64/dri/ /usr/lib64/dri/
 sudo cp /opt/google/cros-containers/lib/ /usr/lib64/dri/
 systemctl --user restart sommelier-x@0.service

ava1ar commented on 2019-06-08 16:01 (UTC)

Just pushed an update which should fix xxd dependency issue and also "Linux Files" with recent systemd (thanks @kitakar5525 for investigation). Please report any other issues you see.

I am currently looking into making GPU acceleration work with Arch.

kitakar5525 commented on 2019-05-29 00:22 (UTC)

Garcon seems incompatible with systemd 242.19-1

When I tried to mount Linux files on the Files app, I got the following error:

$ tail -f /var/log/messages
2019-05-29T08:29:17.169951+09:00 ERR vm_cicerone[6721]: Failed to set up user: failed to enable linger: Could not enable linger: Read-only file system

It seems that our issue is related to this systemd issue: - loginctl enable/disable-linger error: read-only file system · Issue #12401 · systemd/systemd

As suggested in the above issue, adding ReadWritePaths=/etc /run /var/lib/systemd/linger to /usr/lib/systemd/system/systemd-logind.service worked as a workaround for our issue, too.

(Sorry I removed my previous comment by mistake.)

jmogens commented on 2019-05-03 17:09 (UTC)

Garcon seems incompatible with systemd 242.19-1. Downgrading systemd to 241.93-1 fixes Chrome OS Files integration and launching from the Terminal app.

redsky17 commented on 2019-05-01 00:44 (UTC) (edited on 2019-05-30 02:04 (UTC) by redsky17)

I had to downgrade systemd to version 241.7-2 in order to get garcon to work again.

seongmin commented on 2019-04-30 00:52 (UTC)

Hello. First of all thanks a lot for the package!

I have the same problem with @uncon. I can't seem to run vim after updating to the latest release, because of "unresolvable package conflicts" with xxd-standalone. Anyone know how to work around this?

mrln commented on 2019-04-06 09:21 (UTC)

On chromeos 75.0.3753.0, i had to change pkgver to r134.7dac7e9 and remove xxd-standalone from depends to get it up & running.

ava1ar commented on 2019-03-05 15:42 (UTC)

@nickpelone, I noticed same as well, don't have time to identify the root cause of the issue yet. Another issue with arch container is there is no way to use graphics accelerarion yet, due to old glibc version used for sommelier build by Google - trying to find a solution for this as well. Please share any findings you have related to these issues.

nickpelone commented on 2019-03-04 20:06 (UTC)

On a fresh container install in ChromeOS 74, I can't get garcon - and thus most of the integrations with ChromeOS - working. (X11 / sommelier is still working, should note)

Mar 04 08:09:13 penguin systemd[39]: Started Chromium OS Garcon Bridge. Mar 04 08:09:13 penguin garcon[131]: [131]: Server listening on vsock port 10000 Mar 04 08:09:13 penguin garcon[131]: [131]: Failed to notify host system that container is ready: Cannot find VM for ContainerListener Mar 04 08:09:13 penguin garcon[131]: [131]: Failed to set up host notifier

Garcon cant seem to signal to the host that it's there - so stuff like the Terminal app, Files app (?? may be an intersection between cros-sftp and cros-garcon here), etc don't work. The only way into the container is vmc start termina, followed by lxc start penguin / lxc console penguin.

Thanks for packaging this stuff for Arch!

uncon commented on 2019-02-28 18:02 (UTC)

Would it be possible to allow the installation of vim in parallel to this (or to just depend on vim)? Currently, I cannot install vim because vim and xxd-standalone are in conflict, and this makes me very sad.

ava1ar commented on 2018-09-01 06:37 (UTC)

sommelier launch scrip won't work properly if executed via the symlink from /usr/bin/sommelier. As for now to resolve the issue I am replacing /usr/bin/sommelier path with /opt/google/cros-containers/bin/sommelier at sommelier@.service and sommelier-x@.service

ava1ar commented on 2018-06-29 05:31 (UTC)

xkeyboard-config 2.24 break the sommelier-x service. Workaround is to comment out two lines starting with "<i372>" and "<i374>" in /usr/share/X11/xkb/keycodes/evdev and restart sommelier-x@0 user service.</i374></i372>