[Chromebooks] ycavan:
Part III: ( lol I know this is getting ridiculous )

This time, I installed Crouton, which is a chroot management system for ChromeOS. A chroot is a folder where another linux distribution is installed and "boots up" virtually. ( It pretends to boot up, but works as another linux distribution with some limitations )

Crouton chroots allow you to leverage the hardware in the Chromebook directly. In one sense, Crouton is easy both easy and hard to install.

1. Prepare to delete everything!!!!!! Crouton requires developer mode, which will reformat your Chromebook. <-- the hard thing I pointed out earlier. lol

2. Back up all of your important files. Either use an sd card, usb drive or google drive, but pull off all of your important files

3. Switch your chromebook into developer mode

4. Press CTRL + ALT + T to open a Terminal Window

5. type: shell ( to enter the developer shell )

6. ( Optional ) Purchase an sd card for your chroots, I purchased a 512gig one from Best Buy for $100

6a. ( Every reboot ): Unmount the sd card using the chromebook file explorer

6b. switch the partition type of your sd card from exfat ( normally ) to ext4 using fdisk

6c. format the sd card as ext4 using mkfs.ext4 /dev/mmcblk....

6d. ( Every reboot ): sudo mkdir /media/sdcard

6e. ( Every reboot ): sudo mount /dev/mmcblk.... /media/sdcard

6f: type: sudo mkdir /media/sdcard/chroots

6g: type: sudo ln -s /dev/mmcblk.../chroots /usr/local/chroots

7. Download and install Crouton

At this point, you can use crouton to create your new unix chroot and play around. If things worked out for you, you'll have a fully working unix system with full hardware acceleration.

My dreams were dashed pretty quickly because X wouldn't even start up on my Lenovo C13 Yoga w/ a Ryzen 7 3700C processor. After much research, trial and error I came up with a pretty nice system.

Firstly, I created 2 different chroots:

1. minimal for creating a HW accelerated X server

2. full featured distribution to do the "real work".

The greatest advantage is that the Chromebook's Download folder is linked to each chroot.

Install these 2 packages in both chroots:

1. Sommelier - This will be our X server that spans all of our chroots

2. VirtualGL - This is a package allowing you run enhanced OpenGL across SSH. Basically, 2D elements will be rendered on the local X server and 3D elements will be rendered by X server running with the application.

In chroot 1, compile sommelier and perform all of the EXPORTS listed on the install page. It's also a good idea to add them to your .bashrc file. At this point, you should be able to start up sommelier:

$ sommelier --shm-driver=noop --data-driver=noop --no-exit-with-child --drm-device=/dev/dri/renderD128 --glamor /bin/sh -c '/etc/sommelierrc' &

You can leave chroot 1's terminal window alone now. :)

In chroot 2, you should export DISPLAY=:0 so x11 applications use the sommelier you started from chroot 1.

If you want to run Crostini apps from Linux (Beta) then you need to set a password to your Linux (Beta) Vritual Machine.

$ sudo su

# passwd <your Linux (Beta) username>

( type the password you want )

( repeat the password )

# exit

Install VirtualGL

As ROOT, run: /opt/VirtualGL/bin/vglserver_config

I suggest selecting N for all of the options.

Now, type: ip a to find your Linux (Beta) ip address. It'll look something like:

5: eth0@if6: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000

link/ether 00:16:3e:93:a6:e9 brd ff:ff:ff:ff:ff:ff link-netnsid 0

inet 100.115.92.196/28 brd 100.115.92.207 scope global eth0

valid_lft forever preferred_lft forever

inet6 fe80::216:3eff:fe93:a6e9/64 scope link

valid_lft forever preferred_lft forever

inet 100.115.92.196 is the ip address in this case.

from chroot #2, you can now connect to Crostini ( Linux (Beta) ) using the command:

$ vfglconnect -s <your Linux (Beta) username>@<your Linux (Beta) ip address>

If you want to run a game or some software that has graphical issues normally, you can now run them using:

$ vglrun <software name>

I noticed that glx gaming is about 30-40 fps going this route vs 60 fps using Linux (Beta), but if you read the previous posts, you'll understand that GPU acceleration can really jack up graphics on Linux (Beta).

Now if you want to truly unleash the power of your chromebook, you can try installing your games and stuff in chroot #2.

View attachment 5220881

here's a screenshot of /opt/VirtualGL/bin/glxspheres and you can see the fps in the xlauncher window. The high fps comes from what seems to an enhancement when you use vglrun in chroot #2.

$ vglrun /opt/VirtualGL/bin/glxspheres

vglrun seems to remove the frame limiter, otherwise glxspheres runs around 60fps.

I've also noticed some games running a lot better with vglrun, but some games just crash... give it a whirl and see what works for you :)

Here's an in-game shot of Runes of Magic, a d3d9 game from 2009.

View attachment 5220883