Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Chrome OS w/ Android + Vulkan works on regular PC #153

Open
XaeroVincent opened this issue Mar 3, 2018 · 151 comments

Comments

@XaeroVincent
Copy link

@XaeroVincent XaeroVincent commented Mar 3, 2018

Has anyone here tried to run the official Chrome OS images work, rather than Chromium OS, which lacks Android, Google Assistant, and Flash support?

It appears with some fiddling around, it's possible to get the genuine Chrome OS images to work on an ordinary Windows laptop. Mine is a Dell Inspiron 15 5000 series with a touch screen. At first, audio and wireless didn't work but after copying over the firmware directory from Arnoldthebat's Special Build and removing a kernel module blacklist, everything started working. 3D acceleration, sound, touch screen, web cam, touch pad, Android, etc. all work and installed to the hard drive.

It's not perfect, however. For some odd reason it takes like 3 minutes or so to login with my user account at the login screen, whereas on Chromium OS, I log in instantly. Once booted, everything is fine, though. Furthermore, laptop suspend/sleep (S3 power state) doesn't function properly (probably due to the older 4.4 kernel with newer ones having better laptop ACPI support), so I made sure to turn that off in the ChromeOS power settings. Lastly, automatic updates won't work. It sees the Omaha update server but the logs are showing that it refuses to connect because the update tool doesn't detect valid Chromebook BIOS firmware and/or hardware security module.

Out of curiosity, I replaced the 4.4.86 kernel with Arnoldthebat's Special Build 4.14 kernel and March 2nd 4.4.118 daily build kernel with the ChromeOS image and it booted fine and showed up in uname, however, the Android container wouldn't start but some of the ARC++ container mount points were still be made via df. ARC++ error messages in /var/log showed permission denied and file not found messages when using the other kernels. So it appears there is some special code compiled into with the official ChromeOS kernels that aren't included with the FOSS Chromium kernel sources?

Anyway, here is a screenshot:

@oscarbg

This comment has been minimized.

Copy link

@oscarbg oscarbg commented Mar 12, 2018

Hi @XaeroVincent,
interesting experiments!!
can you confirm if you have Vulkan inside this "Android on ChromeOS" by downloading VulkanCapsViewer similar to how I asked in your Oreo efforts..
if Play Store works OK then ok if not download from:
https://vulkan.gpuinfo.org/download.php
https://vulkan.gpuinfo.org/downloads/vulkancapsviewer_1_4_x86.apk
maybe noob question but have you tested your modified ChromeOS via Qemu GVT Dma-buf to see if it works?
thanks..

@XaeroVincent

This comment has been minimized.

Copy link
Author

@XaeroVincent XaeroVincent commented Mar 15, 2018

Hi @oscarbg,

Yes! Vulkan works on ChromeOS's Android container on my Dell Inspiron 5559. It was broken in the previous ChromeOS build but appears to be working in v10176.76.0 / 64.0.3282.190.

I tested the GPU with 3DMark, VulkanCapsViewer and OpenGL ES CapsViewer. It appears ChromeOS 64 is using Mesa 17.3 RC5, which on the Intel i915 driver exposes Vulkan 1.0.57 and OpenGL ES 3.1 in the Android 7.1.1 container. As of now, the Intel OpenGL ES driver seems to be more optimized than their Vulkan driver.

I would love to be able to get it working in VMware on my gaming laptop with a GTX 1070. I'm able to recompile the Linux 4.4 kernel with the VMware SVGA3D graphics driver (VMWGX), however the VMware just reboots at the splash screen. With the newer 4.14 ChromeOS kernel, VMware will boot into ChromiumOS desktop but Android support breaks whenever not using the official 4.4 kernel, which defeats the point of wanting to use it. I've also tried making kernel headers from the 4.4.96 kernel and manually compiling the driver in a chroot but for whatever reason the symbols still don't match and I'm not able to modprobe nor insmod 'vmwgfx.ko'. It's seems pretty clear that the magic bits to make Android / ARC++ work on ChromeOS is secretive.

I have been unsuccessful at getting the Play Store / Android to work with anything except the official bundled ChromeOS 4.4.96 kernel, even when testing bare-metal on my Dell laptop. :( [cries a long time] I've tried compiling several different ChromeOS kernels, making sure the Android kernel features were enabled in base.conf and even extracting the base.conf from the binary, official ChromeOS kernel, but still no dice. When I click the Play Store icon when running on other kernels, it just spins--no window ever pops up and the ARC container doesn't mount properly in '/run'. It should mount the Android root to something like "/run/containers/android_5oNjIR/".

ChromeOS in QEMU w/ GVT + DMA-BUF may work, but as I've mentioned on the Intel forum, I was only able to get DMA-BUF working with SeaBIOS. ChromeOS at best would only support TianoCore UEFI, as Chrome OS will not work with SeaBIOS or any legacy BIOS / CSM from what I can tell. Chrome OS appears to require an EFI system with some special ChromeOS EFI extensions and a GPT partition table. Your best bet is to just run an Android x86 Oreo build directly on-top of QEMU w/ SeaBIOS as we already know that DMA-BUF works that way. The filesystem layout (comprising of several different partitions) is very strange compared to normal Linux distros.

Here's a screenshot. Enjoy!

@XaeroVincent XaeroVincent changed the title Chrome OS w/ Android works on regular PC Chrome OS w/ Android + Vulkan works on regular PC Mar 15, 2018
@mploetne

This comment has been minimized.

Copy link

@mploetne mploetne commented Mar 16, 2018

Hi @XaeroVincent , can you give me a hint on what you mean with

"It appears with some fiddling around, it's possible to get the genuine Chrome OS images to work on an ordinary Windows laptop."

I searched, but didn't found somthing.

@XaeroVincent

This comment has been minimized.

Copy link
Author

@XaeroVincent XaeroVincent commented Mar 18, 2018

Hi there @mploetne,

There are no official guides. The gist of it is you first need to install a Chromium OS build then download an official recovery image listed in recovery.conf, copy it to a flash drive then use gparted to resize the resulting the sda1 and sda3 partitions. Afterwards, boot into Chromium OS and use 'dd' to overwrite the data in the sda1 and sda3 partitions from the respective partitions on the flash drive. I recommend using an x86-64 branch that uses the Linux 4.4 kernel, such as 'eve' or 'coral'

https://www.chromium.org/chromium-os/developer-information-for-chrome-os-devices

After this, you should be able to boot into official chrome OS (if you have integrated Intel graphics). Almost no chance of it working with Radeon or GeForce GPUs because the driver modules for those aren't included with the official builds. However there will still be problems. You'll very likely need to download the Linux binary firmware files for and place them in /lib for Intel / Realtek WiFi + Bluetooth to work then remove the blacklisted module in /etc/modprobe for audio to work.

It's quite an involved process and you definitely need to be comfortable with a Linux environment and have 'close-enough' laptop hardware. Now of course it's possible to recompile the kernel with more features and driver modules for broader hardware support (I've done just that multiple times) but for whatever reason, it breaks Android support, which is the only reason anyone would want to try an official image in the first place.

What might be another interesting scenario is if it's possible to get an Android OS image to run on-top of the KVM-based Crosvm virtual machine. I know Google is working to port QEMU's Virtio GPU drivers to Crossvm to provide accelerated graphics output on Chrome OS's built-in Wayland compositor.

I'll have to check and see if the Crossvm bits have landed in vanilla Chromium OS 67 developer builds that Arnold The Bat hosts. I have managed to get QEMU w/ an Android guest to appear on Chrome OS's Wayland compistor with GTK and SDL QEMU windows (when I recompiled the kernel with KVM and VirtIO support enabled), by using Crouton chroot but only with software rendering enabled. The QEMU window freezes on the Chrome OS's Ash desktop when '-vga virtio' + 'gl=on' is enabled but works fine with software rendering but that sucks for playing Android games.

Anyway, it's a lot of fun to play with but honestly the best Android support I've seen outside of Official Chrome OS is running Android as a VM guest on-top of QEMU on Archlinux or Ubuntu w/ DMA-BUF enabled (Intel GVT-g shared GPU pass-through technology). Virtio GPU may work on bleeding-edge Android x86 builds as well but I haven't tried that yet.

@Thisuu

This comment has been minimized.

Copy link

@Thisuu Thisuu commented Mar 24, 2018

@XaeroVincent, Just out of curiosity, Chrome OS uses some kernel modules(namely ashmem and binder,which should be added as either out-of-tree or in-kernel) to be able to run Android apps.
does AndroidTheBat kernel include these? or could that be the case may be?

@XaeroVincent

This comment has been minimized.

Copy link
Author

@XaeroVincent XaeroVincent commented Mar 29, 2018

@Thisuu, Yeah the kernel base.conf has some modules that are compiled in and I made sure those were enabled my kernel config:

CONFIG_ANDROID=y
CONFIG_ANDROID_BINDER_DEVICES="binder,hwbinder,vndbinder"
CONFIG_ANDROID_BINDER_IPC=y
CONFIG_ANDROID_TIMED_GPIO=y
CONFIG_ANDROID_TIMED_OUTPUT=y
CONFIG_ASHMEM=y

However, even if I compile the same exact release kernel

https://chromium.googlesource.com/chromiumos/third_party/kernel/+/release-R64-10176.B-chromeos-4.4

...with the exact base.conf extracted from the backup kernel via: cat /proc/config.gz | gunzip > base.config, Android apps still won't run with the freshly compiled kernel.

However, I did notice something interesting, which might explain it? I've been using the latest GCC 7.x toolchain in my chroot or VM to compile the kernel.

It appears Google is using the GCC 4.9 Android compiler toolchain to build the official ChromeOS kernels.

@Thisuu

This comment has been minimized.

Copy link

@Thisuu Thisuu commented Mar 29, 2018

@XaeroVincent Not sure if that's causing the issue.. may be try with GCC 4.9? Also make sure support for cgroups and user namespace etc are enabled, see https://www.funtoo.org/Linux_Containers#Kernel_configuration

And please ping me if you find a workaround/reason causing that delayed login :)
I did some digging through but couldn't find anything yet.

@Thisuu

This comment has been minimized.

Copy link

@Thisuu Thisuu commented Mar 30, 2018

@XaeroVincent So it seems like some dbus services are causing the login process hang, Try removing
/etc/dbus-1/system.d/org.chromium.TpmManager.conf &
/etc/dbus-1/system.d/org.chromium.Trunks.conf to see if it makes any difference.

@XaeroVincent

This comment has been minimized.

Copy link
Author

@XaeroVincent XaeroVincent commented Apr 2, 2018

@Thisuu Thanks for the suggestion! 'org.chromium.Trunks.conf' does indeed contain a 4 minute timeout to halt the login process relating to the TPM and taking ownership of it. Because this Dell laptop isn't a chromebook it doesn't recognize it's TPM chip, which just causes the various TPM related processes to fail and spawn error messages in dmesg, which is probably the reason for the long delay--before Chrome's login manager finally gives up trying to query info from the unrecognized TPM. Lowering the value or deleting these or other files does have an impact, however not the one I was expecting. Instead of the long pause before logging in, it just quickly just rejects the login authentication and just loops back to the login screen and I'm never able to login. Deleting other files like tpm_manager, cryptohome, trunks, attestation, etc will just break the login manager and never log the user in. The log files shown it was cryptohome daemon rejecting the credentials when timeout is set really low. Trusted Platform Module chip authentications and SELinux enforced policies are very heavily ingrained in the the official ChromeOS images. Google isn't joking when they say they focus on security with Chrome OS. That said, I managed to get another Chrome OS image to work without the login lag (after a fair bit of fiddling) and is based on the new Meltdown/Spectre-patched Chrome 65. This image came with kernel 3.18, which works with Android too. I swapped that kernel out from the image for another image's 4.4.111 kernel and that is working just fine too with Android's Google Play. The images are missing a lot of proprietary firmware blobs, so I just merged my Archlinux VM's /lib/firmware directory with that on Chrome OS and suddenly WiFi and Bluetooth started working.

@Thisuu Have you tried making an official Chrome OS w/ Android support working on a standard PC too? You should try it...it's plenty of fun and Chrome OS is quite a nice operating system w/ an added Linux chroot and far more interesting with container-based Android support because most Chrome Web Apps and games are laughable garbage compared to the Play Store and the Chrome App platform has been deprecated by Google in favor of WebAssembly and other web technologies. I won't try redistributing my PC-fixed official Chrome OS images as I'm sure Google's lawyers would unleash their wrath on me but I doubt Google cares if you you're geeky enough to make them work on your whitebox PCs for the purpose of personal use. :)

I will see if I can get the Android 4.9.x GCC stack and build 4.14 with Android support enabled and see if that makes it work. That said, simply recompiling the kernel with RadeonSI/AMDGPU and Nouveau modules enabled aren't enough (I tried) because the ChromeOS's Mesa stack is missing the OpenGL drivers for AMD and Nvidia cards too, which means Mesa will need to be recompiled with those drivers. This would probably require a full ChromeOS rebuild?

@Thisuu

This comment has been minimized.

Copy link

@Thisuu Thisuu commented Apr 2, 2018

@XaeroVincent Yeah,I already have :D Did a dd from Chromium OS img to two partitions to be used as ROOT-A & STATE then mounted an official ChromeOS image and sudo rsync -zavhEAX /directory/to-ChromeOS/ROOT-A/ /directory/to-ChromiumOS/ROOT-A/ed. It's later that i realized Google assistant is only included in Pixelbook images :) so maybe next time i'll go with the Pixelbook one. And yeah,it's lot of fun to play with. Other than that logging delay and few issues like S3 state which i can live with,it's working perfectly fine. Really looking forward for Crostini,to see if i can make it my primary OS with all the linux apps in place and the added advantage of Play Store.It's still linux after all. That logging lag is the one i really need to be fixed,Cuz i hate it booting within 4-5 seconds then having to wait 2 minutes just to logging in :D

I had a 4-5 minutes login lag before and it was reduced to 2mins after removing /etc/dbus-1/system.d/org.chromium.TpmManager.conf & /etc/dbus-1/system.d/org.chromium.Trunks.conf.Then attestationd had few respawns in dmesg but removing /etc/dbus-1/system.d/org.chromium.Attestation.conf breaks login,causing cryptohome to continuesly respawn. And yeah,removing files from /etc/init seems to make it unable to login. sudo initctl stop tpm_managerd will work,but you will need to run it at every login since it isn't persistent. I'm not much familiar with Upstart and it seems that chkconfig is the one to disable Upstart jobs,which doesn't exist in ChromeOS. Which image did work for u exactly? I'll first try with a Pixelbook img and see if it works fine.

Welll i have no idea tbh. I really needed to give it a try building an img and see how it goes,my my HD is full of personal stuff right now. So may be i'll have to do a clean up first :)

Also what's ur Arch's kernel version? I'm using Solus as primary OS,so I'll see if copying over firmware from that works.

@brudarko

This comment has been minimized.

Copy link

@brudarko brudarko commented Apr 2, 2018

Well, I'm gonna try do this too, TRY!

@allanin

This comment has been minimized.

Copy link

@allanin allanin commented Apr 3, 2018

Hi everone,
very interesting thread.

I also installed Chromium OS (Special build from Arnold) and replaced the content of the sd*3 partition with the asuka recovery build.

I did not replace the /boot and the /lib folder. Furthermore I also commented the entry in alsa-sld.conf for audio support.

Everything works fine except Google Playstore. Accepting the licenses results in an error.

@allanin

This comment has been minimized.

Copy link

@allanin allanin commented Apr 3, 2018

Okay, found it.

I had to change the settings in the file selinux.conf to permissive.

The apps are working really fast, multiple apps at the same time are no problems at all:

screenshot 2018-04-03 at 13 31 51

@ggy7

This comment has been minimized.

Copy link

@ggy7 ggy7 commented Apr 7, 2018

Can anybody publish step by step instructions on how to get chrome os on desktop pc, with working playstore for extra dummy?

@allanin

This comment has been minimized.

Copy link

@allanin allanin commented Apr 7, 2018

Do you have a working Chromium OS installation from https://arnoldthebat.co.uk/wordpress/2018/02/11/chromiumos-enhanced-special-build-r64-10176-b/ on your PC?

@ggy7

This comment has been minimized.

Copy link

@ggy7 ggy7 commented Apr 7, 2018

Yes, i do. Latest Arnold's chromium os 64 special

@allanin

This comment has been minimized.

Copy link

@allanin allanin commented Apr 7, 2018

fine. then you need to download a recovery image, which is is fitting for your architecture/platform

you have here a list for all supported devices
https://www.chromium.org/chromium-os/developer-information-for-chrome-os-devices

here you can find your chosen image: https://dl.google.com/dl/edgedl/chromeos/recovery/recovery.conf
e.g. chromeos_10323.62.0_asuka_recovery_stable-channel_mp.bin

after downloading please use following commands to open the third partition of the image (be sure to be root)

losetup -fP {path_to}/chromeos_10323.62.0_asuka_recovery_stable-channel_mp.bin
mkdir /home/chronos/image
mkdir /home/chronos/local

mkfs.ext4 /dev/sda5

mount /dev/sda5 /home/chronos/local

type losetup to get a list, search for loop{number}p3

mount /dev/loop{number}p3 /home/chronos/image -o loop,ro

cp -av /home/chronos/image/* /home/chronos/local

rm -rf /home/chronos/local/lib/firmware
rm -rf /home/chronos/local/lib/modules/ (name of folder depends on kernel)

cp -av /lib/firmware /home/chronos/local/lib/modules/
cp -av /lib/modules/4.14.3 /home/chronos/local/lib/modules/

rm -rf /home/chronos/local/etc/modprobe/alsa-skl.conf

change in /home/chronos/local/etc/selinux/config the word enforcing to permissive

type in the command sync to ensure everything is stored and then reboot.

after that you need to change the bootloader to set root=/dev/sda5 to see if everything has worked out fine.

just type e on the black bootloader screen, change the root entry as described above and press F10.

you should now see the Chrome OS image instead of Chromium OS.

i am not sure if you will lose any data, so be sure to backup everything needed.

@ggy7

This comment has been minimized.

Copy link

@ggy7 ggy7 commented Apr 7, 2018

localhost / # mount /dev/loop1p3 /home/chronos/image -o loop,ro
mount: /dev/loop1p3: failed to setup loop device: No such file or directory

In /dev are:

ashmem cpu hidraw1 i2c-11 i2c-8 loop0 loop2p4 loop6 null rfkill sda3 sdb2 uhid vhci binder cpu_dma_latency hidraw2 i2c-12 i2c-9 loop1 loop2p5 loop7 nvram rtc sda4 sdb3 uinput vhost-vsock block disk hidraw3 i2c-13 input loop2 loop2p6 loop-control port rtc0 sda5 sdb4 urandom vndbinder bsg dm-0 hpet i2c-2 ion loop2p1 loop2p7 mapper ppp sda sda6 shm usb watchdog bus dri hwbinder i2c-3 jail-control loop2p10 loop2p8 mem pstore sda1 sda7 snd usbmon0 watchdog0 char fd hwrng i2c-4 jail-request loop2p11 loop2p9 memory_bandwidth ptmx sda10 sda8 stderr usbmon1 xt_qtaguid chromeos-low-mem full i2c-0 i2c-5 kmsg loop2p12 loop3 net ptp0 sda11 sda9 stdin usbmon2 zero console fuse i2c-1 i2c-6 kvm loop2p2 loop4 network_latency pts sda12 sdb stdout usbmon3 zram0 core hidraw0 i2c-10 i2c-7 log loop2p3 loop5 network_throughput random sda2 sdb1 tty usbmon4

Then

localhost / # cp -av /lib/modules/firmware /home/chronos/image/lib/modules/ cp: cannot stat '/lib/modules/firmware': No such file or directory

ls gives

localhost / # ls /lib/modules/
4.14.3

Then:

localhost / # cp -av /lib/modules/4.14.3 /home/chronos/image/lib/modules/
cp: cannot create directory '/home/chronos/image/lib/modules/4.14.3': Read-only file system

@allanin

This comment has been minimized.

Copy link

@allanin allanin commented Apr 8, 2018

I updated my description / mistakes.

Thank you for your feedback.

In your case the required partition seems to be loop2p3. Try that for the losetup command.

@ggy7

This comment has been minimized.

Copy link

@ggy7 ggy7 commented Apr 8, 2018

losetup show's:

localhost Downloads # losetup
NAME       SIZELIMIT OFFSET AUTOCLEAR RO BACK-FILE                                                                    DIO
/dev/loop1         0      0         0  0 /home/user/91999e3615d25d1c90fe6ec2a4cb51a0d0d2c7e5/Downloads/chromeos_10176.76.0_caroline_recovery_stable-channel_mp.bin
  0
/dev/loop0         0      0         0  0 /mnt/stateful_partition/encrypted.block                                        0

But ls /dev, show's loop1p3, so i used it:

localhost Downloads # ls /dev
ashmem            dri       i2c-10  ion           loop1p3  loop-control        ptp0    sda4    tty          watchdog
binder            fd        i2c-11  jail-control  loop1p4  mapper              pts     sda5    uhid         watchdog0
block             full      i2c-12  jail-request  loop1p5  mem                 random  sda6    uinput       xt_qtaguid
bsg               fuse      i2c-13  kmsg          loop1p6  memory_bandwidth    rfkill  sda7    urandom      zero
bus               hidraw0   i2c-2   kvm           loop1p7  net                 rtc     sda8    usb          zram0
char              hidraw1   i2c-3   log           loop1p8  network_latency     rtc0    sda9    usbmon0
chromeos-low-mem  hidraw2   i2c-4   loop0         loop1p9  network_throughput  sda     sdb     usbmon1
console           hidraw3   i2c-5   loop1         loop2    null                sda1    sdb1    usbmon2
core              hpet      i2c-6   loop1p1       loop3    nvram               sda10   shm     usbmon3
cpu               hwbinder  i2c-7   loop1p10      loop4    port                sda11   snd     usbmon4
cpu_dma_latency   hwrng     i2c-8   loop1p11      loop5    ppp                 sda12   stderr  vhci
disk              i2c-0     i2c-9   loop1p12      loop6    pstore              sda2    stdin   vhost-vsock
dm-0              i2c-1     input   loop1p2       loop7    ptmx                sda3    stdout  vndbinder

Command's seem's to be worked fine. After reboot i pressed e, and added to boot string root=/dev/sda5 and i got chrome logo, but it goest to reboot, probably downloaded incompatible image or probably due to using nvidia gpu as main. I'm gonna try asuka too.

@msprengholz

This comment has been minimized.

Copy link

@msprengholz msprengholz commented Apr 8, 2018

Thanks for the guidance!
I've noticed that only the 'asuka' recovery image worked. The others I tried simply didn't have files on the third partition. Maybe this has to do something with the version number (10323 compared to 10176 of the three other images I tested)?
Though when I boot up I have only a few seconds at the login screen before my system crashes without any warning. It doesn't matter what input I make. I had the same problem when I tried updating ChromiumOS to official ChromeOS via the script mentioned here. Anyone else has this problem?

@ggy7 I simply chose local image B to boot into chrome OS, as in the boot entries there is no 'root=/dev/sdX' text but instead UUIDs for the different partitions.

@XaeroVincent Can you tell me how you resized the sda1 and sda3 partitions? With GParted I get the error that e2fsck needs to be updated. (I'm using a version from 22-Mar-2018, so that shouldn't be the case)

@ggy7

This comment has been minimized.

Copy link

@ggy7 ggy7 commented Apr 8, 2018

@ggy7 I simply chose local image B to boot into chrome OS, as in the boot entries there is no 'root=/dev/sdX' text but instead UUIDs for the different partitions.

Local image B doesn't work for me, i just changed UUID to root=/dev/sda5 in Local image A boot string

@ggy7

This comment has been minimized.

Copy link

@ggy7 ggy7 commented Apr 10, 2018

Ok, system boot's. Can you tell me, how can i permanently save boot entry root=/dev/sda5 in Grub? How can i find and mount boot partition to edit grub.cfg, if i understand properly. Thnx. And look like i don't have sound.

@msprengholz

This comment has been minimized.

Copy link

@msprengholz msprengholz commented Apr 10, 2018

@ggy7 On the 12th partition (/dev/sda12) is the boot loader (efi and syslinux). You can find the files to change there.

@ggy7

This comment has been minimized.

Copy link

@ggy7 ggy7 commented Apr 10, 2018

Thanks, done with it. But i've noticed that i don't have a sound. Sound control show's only one output UVC cam, USB... Alsamixer show's only this variant too. Any ideas?

@allanin

This comment has been minimized.

Copy link

@allanin allanin commented Apr 10, 2018

@ggy7 did you remove this file: /home/chronos/local/etc/modprobe/alsa-skl.conf

it prevents loading the kernel module for sound

@ggy7

This comment has been minimized.

Copy link

@ggy7 ggy7 commented Apr 10, 2018

look like i skipped this command. I tried this command again and it say's done, it doesn't helped. When i checked where is alsa-skl.conf, using find / -name alsa-skl.conf it say's /etc/modprobe.d/alsa-skl.conf and it's in read-only mode, i can't remove it.

@XaeroVincent

This comment has been minimized.

Copy link
Author

@XaeroVincent XaeroVincent commented Apr 10, 2018

I used Gparted Live CD to resize them. @ggy7 ChromeOS by default boots with the root partition in read only mode. Do "sudo mount -o remount, rw /" to fix that.

@ggy7

This comment has been minimized.

Copy link

@ggy7 ggy7 commented Apr 10, 2018

Thanks. Fixed!

@dnim0ecaep

This comment has been minimized.

Copy link

@dnim0ecaep dnim0ecaep commented Aug 12, 2018

Any idea how to get Qualcomm Atheros QCA61X4a working?

@DiogoSilva48

This comment has been minimized.

Copy link

@DiogoSilva48 DiogoSilva48 commented Aug 17, 2018

I have an Ivy Bridge processor, so basically my only chance is an image that will not receive any more updates ?

@volram

This comment has been minimized.

Copy link

@volram volram commented Aug 17, 2018

@DiogoSilva48, you can try the chromebook pixel (2015) or FydeOS (https://fydeos.com/download/).

@DiogoSilva48

This comment has been minimized.

Copy link

@DiogoSilva48 DiogoSilva48 commented Aug 17, 2018

FydeOS works really well except that my laptop is optimus and overheats with this and sometimes it just turns off.
But isn't Chromebook Pixel (2015) Broadwell, will still work on my Ivy Bridge ?

@DiogoSilva48

This comment has been minimized.

Copy link

@DiogoSilva48 DiogoSilva48 commented Aug 18, 2018

@volram I tried the FydeOS image and then used this tutorial and his script ( http://zzsethzz.blogspot.com/2015/09/install-chromium-upgrade-it-to-chrome.html ) to install the Chromebook Pixel (2015) image and it booted fine but the problem is that trackpad, external mouse and even WIFI don't work, so I can't make the initial setup. I can use the tab to navigate so I know it's not frozen. The trackpad is recognized because when the screen dims when moving trackpad it lights up again, so maybe something mouse related.

EDIT: The other mouse I used had a problem, external mouse working fine, just not trackpad.

@volram

This comment has been minimized.

Copy link

@volram volram commented Aug 18, 2018

You have to copy the folder /lib/firmware to the new upgraded system. This folder contains the drivers. You can try even change the folder of the kernel (lib/modules) and the folder in sda12.

@DiogoSilva48

This comment has been minimized.

Copy link

@DiogoSilva48 DiogoSilva48 commented Aug 18, 2018

@volram I replaced the whole lib folder from the Chromium special edition and still got the same problem, you think it didn't install correctly??

@volram

This comment has been minimized.

Copy link

@volram volram commented Aug 18, 2018

I am almost certain that is the kernel folder. In other words, you have to change the sda 12 partition with the content with sda12 of the special edition or from FydeOs.

@DiogoSilva48

This comment has been minimized.

Copy link

@DiogoSilva48 DiogoSilva48 commented Aug 18, 2018

@volram I really don't understand that well but I will try to figure it out, thanks. I changed that on the sda5 partition, I think sda12 doesn't show up on ubuntu live cd. btw, I made the installation of chromeos on top of FydeOS.

@volram

This comment has been minimized.

Copy link

@volram volram commented Aug 18, 2018

@DiogoSilva48, I have Linux Mint and mount the partitions with "disk" app. I think is the same proc. in Ubuntu.

@DiogoSilva48

This comment has been minimized.

Copy link

@DiogoSilva48 DiogoSilva48 commented Aug 20, 2018

@volram I tried again with this guide http://www.rojter.tech/?p=39 and the special image, using pixelbook (2015) image, worked really well the only problem is that Google play store gives error, you try again takes a long time and then the same error.

@volram

This comment has been minimized.

Copy link

@volram volram commented Aug 20, 2018

Try with the kernel of FydeOS (lib/modules) and sda12.

@dnim0ecaep

This comment has been minimized.

Copy link

@dnim0ecaep dnim0ecaep commented Aug 20, 2018

i was able to get this working.

  1. installed fydeos
  2. manually applied each line of the script above, referencing the local drives
  3. doing a "cp -rf /lib/firmware /home/chronos/local/lib"--this last line fixed the wifi for me.

I am still concerned from a security perspective of fydeos.
I haven't been able to get this to work with flintos. App store doesn't work.

@dnim0ecaep

This comment has been minimized.

Copy link

@dnim0ecaep dnim0ecaep commented Aug 21, 2018

I got the Arnold the bat chromium version working with the play store. It is awesome. I now need to get the drivers from flintos in Arnold the bat.

@dnim0ecaep

This comment has been minimized.

Copy link

@dnim0ecaep dnim0ecaep commented Aug 21, 2018

"cp -rf /lib/firmware /home/chronos/local/lib" worked on Fydeos, but copying the flintos "lib/firmware" doesn't fix the wifi for arnoldthebat. Any ideas.

@DiogoSilva48

This comment has been minimized.

Copy link

@DiogoSilva48 DiogoSilva48 commented Aug 21, 2018

@volram if I open the fydeos image with 7zip which one of the IMG inside corresponds to the sda12 partition ?

@DiogoSilva48

This comment has been minimized.

Copy link

@DiogoSilva48 DiogoSilva48 commented Aug 21, 2018

@volram like this
image

@volram

This comment has been minimized.

Copy link

@volram volram commented Aug 21, 2018

EFI-SYSTEM.img.

@DiogoSilva48

This comment has been minimized.

Copy link

@DiogoSilva48 DiogoSilva48 commented Aug 22, 2018

@volram when using FydeOS never boots, just using special build, even with Asuka build my device boots, works no problem but I still have the same play store problem and I can't figure out why.

Anyway I created a telegram group, it's probably easier for us to talk about this http://t.me/chromeosforpc/

@volram

This comment has been minimized.

Copy link

@volram volram commented Aug 22, 2018

Try with this commands in Grub: iommu=soft (or iommu=off); acpi=force; acpi_osi=.
That works fine to me; no boot in FydeOS without this commands.

@vincenzo697

This comment has been minimized.

Copy link

@vincenzo697 vincenzo697 commented Sep 28, 2018

@dnim0ecaep how did you manage to make the google play store work with Arnold the bat chromium version?

@dnim0ecaep

This comment has been minimized.

Copy link

@dnim0ecaep dnim0ecaep commented Sep 28, 2018

@vincenzo697 I did. Though I had to use a usb network card.

@vincenzo697

This comment has been minimized.

Copy link

@vincenzo697 vincenzo697 commented Sep 28, 2018

@dnim0ecaep how? Because Arnold's special build works for me but I don't have the play store/ android apps. Can you help me with a guide what you did?

@senghonghour

This comment has been minimized.

Copy link

@senghonghour senghonghour commented Oct 6, 2018

@allanin Hi

Thanks for the tutorial. I'm currently on Arnold's latest 69 special build, and I managed to boot Chrome OS up but the only issue i'm having is wifi, and since my ethernet port is broken I have no choice. I have a dell inspiron 5520 with ivy bridge i5 3210m. Is there a workaround?

@alesimula

This comment has been minimized.

Copy link
Contributor

@alesimula alesimula commented Oct 11, 2018

@allanin

I tried your tutorial, it seems to work in most builds, but not the chrome OS 69 builds where crostini support is present.

I'm able to boot them, but it hangs at login/signup until it fails

@jlau99999

This comment has been minimized.

Copy link

@jlau99999 jlau99999 commented Oct 16, 2018

Does anyone have a 32 bit working image with the play store? I've been trying to use the Arnold special build and following the commands with different recovery builds but none of them are working on a 32 bit Dell Mini 9. Using the regular Arnold special build, I can still use the Dell Mini to watch HD videos on youtube so it would be great if someone could help me to get the play store with some light gaming for this old reliable laptop.

@kishorv06

This comment has been minimized.

Copy link

@kishorv06 kishorv06 commented Nov 10, 2018

@allanin Thank you for your tutorial. I followed it and booted my pc with the pixelbook (2015) image. But i cant find a way to enable developer mode. I would like to enable crostini support on my device. Any idea what to do ? Also my chrome://flags page is empty

@alesimula

This comment has been minimized.

Copy link
Contributor

@alesimula alesimula commented Nov 12, 2018

For everyone following this issue, there is a GitHub page with an updated process (and a shell script);
Here it is: https://github.com/incod3x/chromefy
XDA thread: https://forum.xda-developers.com/hardware-hacking/chromebooks/guide-installing-official-chrome-os-pc-t3865697

BTW most of the code is from @allanin

@DarkAH

This comment has been minimized.

Copy link

@DarkAH DarkAH commented Dec 27, 2018

I am new in this area(Experiment with OSs').
So, it will be helpful to give all instructions.
Please help to fullfill of my dream of running Android apps in PC with full comparability! I used Remix, Pheonis(both are bases upon Android), Anbox program on ubuntu but none of them are fully functional.
Remix os used their own Window manager which was wrost , it just zoom the UI elements- which is not turely multitasking. Pheonix's window manager is good but not same as freeform window feedbacked.
Anbox was great but it never got well support.
So, this maybe give me full experience!!!
looking forward....

@TheNextGenStudios

This comment has been minimized.

Copy link

@TheNextGenStudios TheNextGenStudios commented Jan 23, 2019

Could this work for the raspberry pi
I noticed the google chrome tab 10 had an arm processor but had android and crostini support.
Could this get ported to the raspberry pi 3B?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
You can’t perform that action at this time.