yusefnapora / pixelbook-linux

257 stars 50 forks source link

ubuntu 20.04 update #50

Open austinkloske22 opened 4 years ago

austinkloske22 commented 4 years ago

Has anyone tried to update to 20.04?

When I updated to 19.04, it created a new kernel available on the boot load menu. That kernel did not take on the post-installation adjustments after re-running the ansible python script in the new kernel. All pixelbook-linux changes remain within the "4.4.178chromium-g4245c5e1" kernel.

How, complex is it to re-apply the ansible script adjustments to an updated kernel? (I'm using this as my primary work laptop while abroad so it's a little scary to guinea pig this request myself)

flantel commented 4 years ago

It really won't work with a mainstream kernel (at least not yet). The sound, touchpad and other drivers are only available in the CrOS kernels. What you need to do, before you upgrade, is to ensure you remove any ubuntu kernel packages, that way they will not get upgraded. After the upgrade you may want to re-run the ansible script to re-apply any changes that were over-written in the upgrade.

exbotanical commented 4 years ago

@flantel What about 19.10? Will updating from 19.04 to 19.10 require any extra configuration, or will I need to run the ansible script again?

flantel commented 4 years ago

@MatthewZito I upgraded to 19.10, just ran the ansible script again, and make sure no Ubuntu kernels get installed, or remove them before your reboot

exbotanical commented 4 years ago

@flantel Thanks for the information. Is this going to wipe my storage or otherwise reset everything? Also, how do I ensure no Ubuntu kernels get installed? Just a bit new to this and don't want to screw up what I already have.

I suppose I could update my repos to the 19.04 archives, worst case scenario. Thanks again.

flantel commented 4 years ago

@MatthewZito before you upgrade, do apt remove linux-image* then apt autoremove and that will remove any Ubuntu kernels so they will not be installed in the upgrade. Run the same commands after the upgrade just to be sure, before your reboot. After reboot run the ansible scripts again

flantel commented 4 years ago

@MatthewZito Forgot to mention - no, it won't overwrite your settings or home directory

mcdowellmountains commented 4 years ago

@flantel I am trying to install the yuselfnapora script to install linux on the Pixelbook utilizing Fedora 31, and it seems to run with some problems. Most notably it will not install any of the CRAS audio components at all, although the screen brightness/keyboard brightness controls and trackpad tweaks seem to work well, it will not run any of the CRAS audio components. Can you help me please, as you have been so gracious to do so in the past. I cannot figure out why this is happening, as it has compiled and is running the 4.4.205 chromium kernel, but not sure the ansible files are optimized to run fedora although there are arrangements for a Fedora install in the ansible documentation. It all seems to work quite well with Ubuntu 19.1 but will not work properly with Fedora which I strongly prefer.

thank you in advance for any help you can provide to allow me to get the sound working in Fedora 31. Thanks

@mcdowellmountains in Github

On Sat, Apr 18, 2020 at 2:00 PM Barry Flanagan notifications@github.com wrote:

@MatthewZito https://github.com/MatthewZito I upgraded to 19.10, just ran the ansible script again, and make sure no Ubuntu kernels get installed, or remove them before your reboot

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/yusefnapora/pixelbook-linux/issues/50#issuecomment-615914101, or unsubscribe https://github.com/notifications/unsubscribe-auth/ANDBAIVPL3UE4V5GE3LFTCDRNHTE3ANCNFSM4MDIWD2A .

TPL-81 commented 4 years ago

I update 19.10 to 20.04. Boot the right kernel, ubuntu spalshscreen for 2 seconds, and then black screen. If i push the power button ubuntu splashscreen appear for 2 seconds e then pixelbook shuts down correctly. Any hint?

rothgar commented 4 years ago

I tried @flantel's fork of this repo with a fresh install of 20.04 (I'm typing on it now). I also get a black screen when booting the 4.4 kernel though. I've tried running the scripts a few times and ever re-installed Ubuntu. I also go the same result with Fedora 31 and compiling the kernel with the src option for the playbook. I tried disabling quite and splash in grub to see what errors I get but all it does is loads initramfs and then goes blank.

Thankfully the 5.4 kernel works enough to let the screen/keyboard/wifi work. The trackpad doesn't work but the touch screen works using Wayland. In X the touch inputs are upside down and reversed.

I'm happy to help troubleshoot if anyone has ideas on how to get 4.4 booting.

rothgar commented 4 years ago

Oh, also wanted to add the build cras step in eve-audio failed for me

tal: [localhost]: FAILED! => {"changed": true, "cmd": ["make"], "delta": "0:00:00.716157", "end": "2020-04-26 01:27:06.507193", "msg": "non-zero return code", "rc": 2, "start": "2020-04-26 01:27:05.791036", "stderr": "server/cras_rclient.c: In function ‘cras_rclient_message_from_client’:\nserver/cras_rclient.c:628:6: error: taking address of packed member of ‘struct cras_config_global_remix’ may result in an unaligned pointer value [-Werror=address-of-packed-member]\n  628 |     m->coefficient);\n      |     ~^~~~~~~~~~~~~\ncc1: all warnings being treated as errors\nmake[1]: *** [Makefile:5031: server/libcrasserver_la-cras_rclient.lo] Error 1\nmake: *** [Makefile:459: all-recursive] Error 1", "stderr_lines": ["server/cras_rclient.c: In function ‘cras_rclient_message_from_client’:", "server/cras_rclient.c:628:6: error: taking address of packed member of ‘struct cras_config_global_remix’ may result in an unaligned pointer value [-Werror=address-of-packed-member]", "  628 |     m->coefficient);", "      |     ~^~~~~~~~~~~~~", "cc1: all warnings being treated as errors", "make[1]: *** [Makefile:5031: server/libcrasserver_la-cras_rclient.lo] Error 1", "make: *** [Makefile:459: all-recursive] Error 1"], "stdout": "Making all in src\nmake[1]: Entering directory '/opt/eve-linux-setup/adhd/cras/src'\n/bin/bash ../libtool  --tag=CC   --mode=compile gcc -DPACKAGE_NAME=\\\"cras\\\" -DPACK
...

I trimmed the output but can probably get the rest if it'll be helpful.

flantel commented 4 years ago

cras seems to need gcc-8 to compile properly.

rothgar commented 4 years ago

Any ideas about the blank screen issues? The 4.4 kernel installs ok (I've used deb installer on Ubuntu 20.04 and src install in fedora 31) but I have yet to successfully boot it or even switch it to text mode to troubleshoot.

flantel commented 4 years ago

No, I have not attempted an upgrade. Due to working from home I can't afford to have my pixelbook out of action.

mcdowellmountains commented 4 years ago

@flantel

Trying to install the pixelbook script with Linux MInt 19.3, which is based on ubuntu 18.04. Everything seems to work fine except when it gets to Cras, and then it issues the following error message:

TASK [eve-audio : configure cras] ** fatal: [localhost]: FAILED! => {"changed": true, "cmd": ["env", "CFLAGS=-I/usr/include/iniparser", "./configure", "--disable-dbus", "--disable-webrtc-apm", "--with-socketdir=/var/run/cras"], "delta": "0:00:00.001829", "end": "2020-04-26 08:10:51.684326", "msg": "non-zero return code", "rc": 127, "start": "2020-04-26 08:10:51.682497", "stderr": "env: ‘./configure’: No such file or directory", "stderr_lines": ["env: ‘./configure’: No such file or directory"], "stdout": "", "stdout_lines": []} to retry, use: --limit @/home/john/pixelbook-linux/ansible/playbook.retry

can you provide some insight on how I can fix this?All Other features on the pixelbook seem to work ok, just need cras to function so I have sound. Not sure why this feature will not install

Thanks for any help in resolving this.

mcdowellmountains commented 4 years ago

@ flantel,

Trying to install the pixelbook script with Linux MInt 19.3, which is based on ubuntu 18.04. Everything seems to work fine except when it gets to Cras, and then it issues the following error message:

TASK [eve-audio : configure cras]


fatal: [localhost]: FAILED! => {"changed": true, "cmd": ["env", "CFLAGS=-I/usr/include/iniparser", "./configure", "--disable-dbus", "--disable-webrtc-apm", "--with-socketdir=/var/run/cras"], "delta": "0:00:00.001829", "end": "2020-04-26 08:10:51.684326", "msg": "non-zero return code", "rc": 127, "start": "2020-04-26 08:10:51.682497", "stderr": "env: ‘./configure’: No such file or directory", "stderr_lines": ["env: ‘./configure’: No such file or directory"], "stdout": "", "stdout_lines": []} to retry, use: --limit @/home/john/pixelbook-linux/ansible/playbook.retry

can you provide some insight on how I can fix this? Other features on the pixelbook all seem to work ok, just need cras to function so I have sound.

Thanks for any help in resolving this.

Regards,

[image: Picture]

John Longobardo 480-748-9530 (m)

On Mon, Apr 27, 2020 at 5:06 AM Barry Flanagan notifications@github.com wrote:

No, I have not attempted an upgrade. Due to working from home I can't afford to have my pixelbook out of action.

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/yusefnapora/pixelbook-linux/issues/50#issuecomment-619841358, or unsubscribe https://github.com/notifications/unsubscribe-auth/ANDBAITT3Q3FKUZ5M2BPRETROVDJJANCNFSM4MDIWD2A .

flantel commented 4 years ago

@mcdowellmountains It is hard to sayh. Do you have a directory /opt/eve-linux-setup/adhd ? This is where the cras source should be downloaded to. Are you sure you did not get any errors elsewhere?

mcdowellmountains commented 4 years ago

@flantel, no errors anywhere else. And yes, I did get a directory with directory /opt/eve-linux-setup/adhd setup, and it looks like the cras souce files are in there. It worked fine with Ubuntu 19.1 but now that I am using mint on 18.04 it keeps throwing this error. Any other suggestions to try?

As usual, thanks much.

johnson5005 commented 4 years ago

I just did a fresh install of Ubuntu 20.04 and had the same experience as @rothgar. WIFI, screen, keyboard and trackpad worked. The mouse was upside-down until I did apt remove iio-sensor-proxy, which fixed it. Though sound and other niceties didn't work it was otherwise usable. Also, same experience when running the ansible script with 20.04. CRAS failed to configure while running the script and upon reboot I got the same black screen after a few seconds

brandonroberts commented 4 years ago

I started with 19.10 instead of 20.04 and had some success.

Of course this isn't ideal, but at least gets you to a working state. This may work starting from 20.04 also, but I haven't tried that yet. Hope this helps.

Elara6331 commented 4 years ago

Black screen happens on Ubuntu 20.04, Debian Sid, Arch Linux, and Manjaro, and Bedrock Linux after hijacking Ubuntu 19.04. It also happens when trying to use the chromium 4.12 kernel with the same config on Ubuntu 19.04. The workaround above does not work, the external display detects no signal, although the computer does go to sleep when closed. Has anyone had any success fixing it? My theory is that the kernel config needs to be modified.

htonl commented 4 years ago

If anyone is still trying to get this script to work on 20.04, I have a workaround to get the needed drivers working, on 20.04 with 5.4.47-chromium kernel. Here is how I got there:

Start with fresh install of 19.10. Clone the source of chromium kernel tree, checkout your desired tag (5.4.47 was the latest release when I did this); copy the config file from this repo's ansible stuff, and use it as the config for your kernel build; modify the config to enable iwlwifi driver too, otherwise your wifi won't work after booting to the new kernel; install the new kernel, and boot to it. Once in, then run this ansible script (remove the kernel part since you have a newer chromium kernel already). Everything should work, except audio (so I moved it to the bottom of the playbook, and just let it fail). After the ansible script runs, reboot again, and should have the touchpad working properly. Then perform the distribution upgrade to 20.04. Make sure your 5.4.47-chromium is still the kernel you will boot to. Then reboot one final time after the ubuntu upgrade, and you should be 20.04 with working touchpad. I just need to figure out how to hack the audio part now.

Elara6331 commented 4 years ago

@htonl The problem GalliumOS has been having with audio on other platforms is the alsa ucm files, that is why the 4.4 kernel is used. Here is Mr. Chromebox's comment

Elara6331 commented 4 years ago

I have found not using systemd fixes it.

Ikbosh commented 3 years ago

For those interested (I'm not good at git, if I was I would have made a pull request), you can find all the changes I had to make in order to get MX Linux 19.2 (Based on Buster) working with Audio on Kernel 4.4 on my fork, I would have loved to commit all the changes individually with comments as to why, but I'm eager to continue working on my device and I have to wipe it to do some additional troubleshooting on Power Delivery via USB C docks. I needed to quickly push all my changes to a repo so I could pull them again later if required.

To try and summarise what I did here, 1) Tried booting on Kernel 5.4, 4.19 and 4.4. 4.19 and 5.4 worked, so I compared all three kernel configs based on what was in /boot and ported across anything that was identical in 5.4 and 4.19 but different in 4.4 (Link to sheet of comparisons here Oh and I had to disable the Chromebook EC stuff to get it to compile for some reason? This was some dependency issue that I had a couple of suggestions on how to fix, but figured I didn't care for Gyroscope or Accelerator functionality anyway. Figured maybe I'll save some battery if nothing every calls upon them.

2) After doing that, I found that after I decrypted the luks partition it wouldn't leave the splash screen, but I could see that it was loading something as screen brightness would change, suggesting it loaded some sort of driver. Tried running Nomodeset which would then still get stuck on splash, but I could change to like TTY2 or whatever with Ctrl+Alt+2

3) From here I figured it was a video driver issue, booting between 5.4 and 4.19 and whatnot using inxi -G I attempted to force the 4.4 Kernel to not use the Modeset drivers. This seemed to work.

4) To get audio working, I did need to enable systemd on MX Linux (it does not use Systemd by default) as the default script seems to create startup scripts for cras via systemd. I also had to copy the kbl_r54.. file/folders into a Google-Eve-1.0-Eve folder for the UCM Config.

5) I also had to update a few packages for MX Linux in order to get the whole thing working

Hit me up if any questions, hope I'm doing this right! If I've done anything wrong with this approach, please let me know! I'd be happy to learn proper git etiquette if there is any :)

ackstorm23 commented 3 years ago

For those interested (I'm not good at git, if I was I would have made a pull request), you can find all the changes I had to make in order to get MX Linux 19.2 (Based on Buster) working with Audio on Kernel 4.4 on my fork, I would have loved to commit all the changes individually with comments as to why, but I'm eager to continue working on my device and I have to wipe it to do some additional troubleshooting on Power Delivery via USB C docks. I needed to quickly push all my changes to a repo so I could pull them again later if required.

To try and summarise what I did here, 1) Tried booting on Kernel 5.4, 4.19 and 4.4. 4.19 and 5.4 worked, so I compared all three kernel configs based on what was in /boot and ported across anything that was identical in 5.4 and 4.19 but different in 4.4 (Link to sheet of comparisons here Oh and I had to disable the Chromebook EC stuff to get it to compile for some reason? This was some dependency issue that I had a couple of suggestions on how to fix, but figured I didn't care for Gyroscope or Accelerator functionality anyway. Figured maybe I'll save some battery if nothing every calls upon them.

2) After doing that, I found that after I decrypted the luks partition it wouldn't leave the splash screen, but I could see that it was loading something as screen brightness would change, suggesting it loaded some sort of driver. Tried running Nomodeset which would then still get stuck on splash, but I could change to like TTY2 or whatever with Ctrl+Alt+2

3) From here I figured it was a video driver issue, booting between 5.4 and 4.19 and whatnot using inxi -G I attempted to force the 4.4 Kernel to not use the Modeset drivers. This seemed to work.

4) To get audio working, I did need to enable systemd on MX Linux (it does not use Systemd by default) as the default script seems to create startup scripts for cras via systemd. I also had to copy the kbl_r54.. file/folders into a Google-Eve-1.0-Eve folder for the UCM Config.

5) I also had to update a few packages for MX Linux in order to get the whole thing working

Hit me up if any questions, hope I'm doing this right! If I've done anything wrong with this approach, please let me know! I'd be happy to learn proper git etiquette if there is any :)

Can you give us more details on this?

I can boot without video issues on generic 5.4 but no sound, no touchpad.

Ikbosh commented 3 years ago

Can you give us more details on this?

I can boot without video issues on generic 5.4 but no sound, no touchpad.

Yeah so you'll need to get the 4.4 Chromium Kernel if you want sound. The drivers are not available in the 4.19 or 5.4 Chromium kernel. What have you tried and done so far?

ackstorm23 commented 3 years ago

I found the source locations and grabbed both kernels. Loading your configs now.

If I get these working I'll see if I can't get it working in ansible too

Ikbosh commented 3 years ago

I've build kernels before but not in a long time. I don't think that will be that challenging, but I don't know where to get the CK source to build.

Where do I get the source files for CK? Ae any other source files needed to complete this kernel build or would it all be from one source?

I am honestly interested in both 5.4 and 4.4 so I'll try them both.

I'm a bit confused, the repo we're talking about is literally an ansible cookbook to do it all for you? The sources and everything are in there? Is there something you don't follow when it comes to this repo and it's instructions / readme? Do you need assistance deciphering the cookbook? :) No hard feelings I just want to make sure I'm on the right page and point you in the right direction.

ackstorm23 commented 3 years ago

I'm a bit confused, the repo we're talking about is literally an ansible cookbook to do it all for you? The sources and everything are in there? Is there something you don't follow when it comes to this repo and it's instructions / readme? Do you need assistance deciphering the cookbook? :) No hard feelings I just want to make sure I'm on the right page and point you in the right direction.

It's ansible I'm not familiar with.

eve_kernel_name: "4.4.178chromium-g4245c5e1"

where is he getting this? or is this arbitrary naming? is eve_kernel_compiled_name the same?

Which config did you use for 5.4? The tab in your spreadsheet doesn't even have modules enabled.

UPDATE:

I got a 5.4 chromium kernel compiled and installed, but i have stability issue after boot that have locked the machine up.

I will be comparing the config of the stock ubuntu 5.4 kernel with your config to see what's different.

Ikbosh commented 3 years ago

It's ansible I'm not familiar with.

eve_kernel_name: "4.4.178chromium-g4245c5e1" where is he getting this? or is this arbitrary naming? is eve_kernel_compiled_name the same? Which config did you use for 5.4? The tab in your spreadsheet doesn't even have modules enabled.

UPDATE:

I got a 5.4 chromium kernel compiled and installed, but i have stability issue after boot that have locked the machine up. I will be comparing the config of the stock ubuntu 5.4 kernel with your config to see what's different.

Ah I see, okay, so I'm no ansible expert either, but the way I approached it was by working backwards, starting in the main task script and going backwards to see how it figured it out in there. Inside the main task it references the Kernel-Src yml file. Inside that file I found it had a "Git" task, and that's where you can find the Repo: https://chromium.googlesource.com/chromiumos/third_party/kernel

You'll also find the src.yml task script that the branch name is the important part.

What isn't explained clearly anywhere (except a location that says what Kernel each chromebook runs), is that the only kernel branches that have Eve kernel drivers in them, are 4.4 Based branches. So you can use any release-RXX-XXXXX.B-chromeos-4.4 , but it MUST have 4.4 in order to get Audio working. The audio drivers are not in the other source branches. Hope that helps!

So you need to compile and get working a 4.4 kernel in order to succeed.

bootlessxfly commented 3 years ago

@Ikbosh @ackstorm23 Not sure if you guys are still interested: For the 5.4 kernel, have you tried retrieving the config from the most recent recovery image and applying it against the equivalent 5.4 tree? EVE now has a 5.4 specific config and you can checkout the branch it is based on and build directly from that.

ackstorm23 commented 3 years ago

@Ikbosh @ackstorm23 Not sure if you guys are still interested: For the 5.4 kernel, have you tried retrieving the config from the most recent recovery image and applying it against the equivalent 5.4 tree? EVE now has a 5.4 specific config and you can checkout the branch it is based on and build directly from that.

I switched over to Arch a year ago and I have everything except for sound working.

Sound seems to be a lost cause.