You are not logged in.

#1 2015-03-18 18:16:28

TheCraiggers
Member
Registered: 2014-04-29
Posts: 14

Google Chromebook Pixel 2

Just wondering if anybody else besides me is tinkering with the Pixel 2 in Arch. Before this, I used a C720 Chromebook from Acer and had a lot of fun with it.

So far, I've actually had a fair bit of luck with the Pixel 2 as well. Wifi, suspend, backlight are all working out-of-the-box somewhat surprisingly. However, neither the trackpad nor the touchscreen are working. I don't really care about touchscreens (usually the last thing I want anybody to do is touch my damn monitors) but the trackpad is a bigger issue. I seem to remember the Pixel 1 having similar problems when it was first released, but it looks like all the patches needed to make it work have been pushed into the mainline kernel so those posts aren't of much use to me.

Synaptics fails to load, and xinput doesn't seem to find any pointer devices other than "Virtual core XTEST pointer" which I presume is not detected hardware. I presume I'll need to load the proper kernel module, but I'm at a loss for how to figure out what module that is. So far, I've tried blacklisting the driver that is supposedly used for the touchscreen in case they're conflicting (no effect), and using 3.19 in testing (again, no effect).

If anybody has any ideas, or has any questions for me about running arch on this device, feel free to respond.

# xinput 
 Virtual core pointer                    	id=2	[master pointer  (3)]
    Virtual core XTEST pointer              	id=4	[slave  pointer  (2)]
 Virtual core keyboard                   	id=3	[master keyboard (2)]
     Virtual core XTEST keyboard             	id=5	[slave  keyboard (3)]
     Power Button                            	id=6	[slave  keyboard (3)]
     Power Button                            	id=7	[slave  keyboard (3)]
     NCM-G102                                	id=9	[slave  keyboard (3)]
     AT Translated Set 2 keyboard            	id=10	[slave  keyboard (3)]

Last edited by TheCraiggers (2015-03-18 19:02:18)

Offline

#2 2015-03-18 18:23:34

karol
Archivist
Registered: 2009-05-06
Posts: 25,440

Re: Google Chromebook Pixel 2

Welcome to the Arch Linux  forums.

Please add any important info to the wiki: https://wiki.archlinux.org/index.php/Chromebook and similar articles.

Thank you :-)

Offline

#3 2015-03-18 18:28:30

TheCraiggers
Member
Registered: 2014-04-29
Posts: 14

Re: Google Chromebook Pixel 2

Thanks for the welcome karol (although I've been lurking for far longer than even my join date would suggest).

I've definitely been using & updating the wiki, although my updates have thusfar been small. This trackpad issue is actually the only deviation from the normal Chromebook / Arch install guides that I've noticed. Should I find a solution, be assured it will be shared.

Last edited by TheCraiggers (2015-03-18 18:28:54)

Offline

#4 2015-03-18 20:43:44

TheCraiggers
Member
Registered: 2014-04-29
Posts: 14

Re: Google Chromebook Pixel 2

So, I've tried a few things this afternoon. Still no resolution, but wanted to share anyway in case somebody else with this laptop comes by. Maybe it'll save somebody some time.

Pouring through dmesg, I noticed a message complaining about PS/2 and saying that I should boot with "i8042.nopnp". I added that to my boot params, and again, I've noticed no difference other than the message going away. I still get the "mousedev: PS/2 mouse device common for all mice" message, however. I'm guessing this isn't much of a big deal either way, presuming nothing actually uses PS/2 on something this new?

I've read that devices with touchscreens / touchpads have had issues in the past, and one way of getting around that issue is by blacklisting i2c_hid. I've also read that that issue is largely fixed these days and blacklisting that module may actually make it worse. Well, I tried it anyway, and nothing happened. I removed this since.

While I had i2c_hid blacklisted, I forced synaptics_i2c to load, just in case. It did seem to load, although again, synaptic itself couldn't seem to find the driver and nothing changed. Question for somebody in the know: Is the synaptics "driver" and "module" one and the same? I'm wondering if I'm looking in the wrong spot.

[root@monolith thecraiggers]# lsmod | grep -i "i2c"
synaptics_i2c          12913  0 
i2c_algo_bit           12744  1 i915
i2c_designware_platform    12645  0 
i2c_designware_core    12813  1 i2c_designware_platform
i2c_core               50240  8 drm,i915,i2c_designware_platform,drm_kms_helper,i2c_algo_bit,v4l2_common,synaptics_i2c,videodev
[root@monolith thecraiggers]# synclient 
Couldn't find synaptics properties. No synaptics driver loaded?

I'm starting to run out of ideas. This weekend, I might wipe Arch and restore ChomeOS if only to poke through the dmesg and lspci trying to at least find what stinking manufacurer made this trackpad. Sigh.

Last edited by TheCraiggers (2015-03-18 20:53:40)

Offline

#5 2015-03-19 09:10:54

dhead
Member
Registered: 2012-09-26
Posts: 190

Re: Google Chromebook Pixel 2

Don't blacklist i2x_hid.

Try "# journalctl -b0 | grep i2c " to see if the kernel recognize an i2c touchpad on boot, for example on my C720

kernel: input: Cypress APA Trackpad (cyapa) as /devices/pci0000:00/0000:00:15.1/i2c-0/0-0067/input/input11

If the kernel doesn't recognize the touchpad then I believe you should have a look at the Chromium OS kernel sources and look for the i2c module changes.
If I'm right then by looking at the linux sources for the latest Chrome OS release (42) I believe that the kernel modules haven't changes so the touchpad should be recognized by Linux 3.19 package of Arch.

It's possible that xf86-input-synaptic also needs changes so you better try the xf86-input-cmt from AUR, notice that it won't work with startx so you need to use a display manager like GDM, and I also believe that Hugh updated his xf86-input-cmt Github rep with the Pixel 2 configs but I'm not sure if the AUR package is updated.

Offline

#6 2015-03-19 09:24:40

dhead
Member
Registered: 2012-09-26
Posts: 190

Re: Google Chromebook Pixel 2

p.s.

I added some hints on how to find the related changes in Chromium OS kernel sources to the wiki.
https://wiki.archlinux.org/index.php/Ch … el_modules

Offline

#7 2015-03-19 16:26:45

TheCraiggers
Member
Registered: 2014-04-29
Posts: 14

Re: Google Chromebook Pixel 2

Hey dhead. I was secretly hoping you'd see this thread; your work on the Chromebook wiki has been very useful to me over the last year or so. Thanks for taking the time to respond!

I did look in the journal, and sadly nothing turned up with that grep. If you think of any other searches to try, let me know. From what I can tell though, it's not recognizing anything close to a trackpad/mouse. I've attempted to use a few different hardware detection tools like lshw and the HDT that syslinux creates an auto-boot entry for, and none of them are showing anything that looks like a touchpad to me. Then again, if the kernel isn't recognizing it at all, I suppose that's no surprise.

I also tried linux-git last night, which is currently at 4.0rc3 if I remember right. Sadly, it didn't magically fix my issue, although it was one of the faster kernel compiles I've ever had. Which is good, since it looks like that's the next path I'll be walking down.

Scrolling through the commit messages on the chromium kernel code you sent me, I didn't see anything that jumped out at me. I did see this change though, which was the newest change in platform/x86. I'm not sure what an Elan Wolf is, but it does mention touchpads, so maybe that's a hint? (I thought it might be the Dell chromebook, code-named Wolf, but that laptop was released like 5 months before the patch, so I'm thinking it's referring to something else.) The diff is pretty simple though, so I have a hunch that isn't going to be the entirety of the fix, but it would be easy enough to try.

I'm definitely reaching the end of my comfort zone however. I've been too deep in C# for work for the last 5 years to suddenly dive into kernel hacking.

EDIT: Actually, I'm not sure where to begin. I was going to just do a quick patch to the 4.0 kernel code I'd already downloaded, but I don't see a anything in the src/linux/drivers/platform/x86 directory that looks anything like "google" or "chrome" to patch.

Last edited by TheCraiggers (2015-03-19 17:24:21)

Offline

#8 2015-03-19 17:47:21

dhead
Member
Registered: 2012-09-26
Posts: 190

Re: Google Chromebook Pixel 2

@TheCraiggers

I'm glad that the Chromebook page is useful for users but I can't take credit on it as allot of the content was originally moved from the C720 page.

To the point of the discussion, I'm not sure if I can help much as I'm not a kernel expert but with a little bit of googling and looking a bit more at the Chromium OS kernel sources (without actually having the Pixel 2) I got to these conclusions:
* I believe Google didn't pushed yet the changes, at least not to the site I linked before.
* Google did added the support to the Pixel 2 in the past but revert the commit, you might be able to use the diff to patch the kernel, notice that the touchpad is the Atmel 224s device, the diff
and the revert commit
* Edit: I was wrong about 'platform 2', just google for bugs on Google Code with the term "Samus" to find more interesting details.

Last edited by dhead (2015-03-19 19:26:21)

Offline

#9 2015-03-19 17:50:14

dhead
Member
Registered: 2012-09-26
Posts: 190

Re: Google Chromebook Pixel 2

p.s. It always recommend to confirm the hardware details by actually running Chrome OS, get boot log, list devices, look in the usual suspects (/sys/devices, /proc/bus/input/devices and so on).

Offline

#10 2015-03-19 18:03:59

dhead
Member
Registered: 2012-09-26
Posts: 190

Re: Google Chromebook Pixel 2

p.s. Google probably had a good reason for reverting (and Iif 'm correct for not releasing yet the recent sources), so if it was me I would think twice before using the patch (not really, but I do have a soldering station powered on right now so I'm not sure if I'm qualify to judge on this).

I also shared this at the "Coreboot on Chromebooks" G+ community so maybe someone else will give it a shot soon.

Offline

#11 2015-03-19 18:12:46

dhead
Member
Registered: 2012-09-26
Posts: 190

Re: Google Chromebook Pixel 2

p.s.3

I forgot to add this is where you should look in mainline
https://github.com/torvalds/linux/blob/ … s_laptop.c

Offline

#12 2015-03-19 19:55:16

dhead
Member
Registered: 2012-09-26
Posts: 190

Re: Google Chromebook Pixel 2

Oh, I think I got it.

Regarding the commit message about probing the i2c in ACPI I think they mean this:
https://chromium.googlesource.com/chrom … nboard.asl

It's coreboot which you already have.
What you missing is the input driver for Atmel ATML0000, look at the git log for atmel_mxt_ts.c at https://chromium.googlesource.com/chrom … uchscreen/

Offline

#13 2015-03-19 20:39:55

TheCraiggers
Member
Registered: 2014-04-29
Posts: 14

Re: Google Chromebook Pixel 2

That's pretty much my findings as well, but the link you provided may be invaluable. Based on your previous posts, I was playing around with modprobing the atmel_mxt_ts driver (to little effect) but with the code you've found, I compared it to what is in the 4.0 kernel source. It was so different I had a hard time viewing it with diff. Rather than attempt to find a better solution to allow me to view the differences in a better way, I decided to just overwrite what came from git with what came from chromium and recompile.

I expect failure and possibly hilarity.

EDIT: Just failure.

EDIT2: By failure, I mean the touchpad & touchscreen still don't work. The new code compiled fine, and the module was loaded upon boot like I asked. Nothing new in xinput though, and I didn't see anything new/interesting in dmesg or journalctl -b0. I might next try looking at the i2c module, which the atmel seems to require. Either that, or there are some funny module parameters that I'm missing and wouldn't know to add.

Last edited by TheCraiggers (2015-03-20 00:48:34)

Offline

#14 2015-03-20 17:57:39

Hideaki
Member
From: Seattle, WA
Registered: 2009-01-19
Posts: 37

Re: Google Chromebook Pixel 2

I've been trying to get the Pixel 2 running on Arch as well. The new information on the wiki regarding porting drivers from ChromeOS to Linux is very helpful.

Offline

#15 2015-03-20 19:00:42

TheCraiggers
Member
Registered: 2014-04-29
Posts: 14

Re: Google Chromebook Pixel 2

Let us know if you manage to make any progress. I can't go too crazy for a variety of reasons (one of which being I'm still debating if I want to keep this glorious slab of aluminum).

Also, if you have issues, let us know. I may have already solved your problem.

Last edited by TheCraiggers (2015-03-20 19:01:26)

Offline

#16 2015-03-20 22:49:08

dhead
Member
Registered: 2012-09-26
Posts: 190

Re: Google Chromebook Pixel 2

If you'll get the touchpad working then you might want to look later at the link, apparently there's a bug that causing the Pixel 2 to wake from suspend without any reason. https://code.google.com/p/chromium/issu … ?id=467719

Offline

#17 2015-03-21 21:01:20

hobn
Member
Registered: 2014-06-24
Posts: 30

Re: Google Chromebook Pixel 2

Are the touchpad/touchscreen and suspend the only issues right now? I'm thinking about picking up the LS once it comes back in stock and running a LVM+LUKS installation of Arch. If the need for an external mouse is the only problem then I'll be getting one for sure; most of my software is very keyboard-driven anyways.

By the way, did you guys have to open up the laptop and fiddle with the BIOS to install Arch?

Offline

#18 2015-03-21 22:00:06

dhead
Member
Registered: 2012-09-26
Posts: 190

Re: Google Chromebook Pixel 2

@hobn

Someone posted on reddit's /r/chromeos (with over confidence if you ask me) that the issue causing system corruption on depleted battery when legacy mode (and dev mode) enabled and the gcc flags were set is fixed.
In other words it's possible that one can get away without needing to open the device in order ti remove the write protection screw (which needed for setting the gcc flags).

Confirmation is needed of course, which is the reason why I didn't added this detail to the wiki.

If the above isn't clear and confusion you should read the Chromebook wiki page.

Offline

#19 2015-03-23 05:43:23

hobn
Member
Registered: 2014-06-24
Posts: 30

Re: Google Chromebook Pixel 2

Thanks for the heads up. In any case, both models are now out of stock and I suspect it'll be a long while before they restock. Oh well.

Offline

#20 2015-03-23 14:57:05

TheCraiggers
Member
Registered: 2014-04-29
Posts: 14

Re: Google Chromebook Pixel 2

hobn, to answer your question, I believe everything else worked. I can't speak for every single one of the innards that control things that aren't readily apparent.

I did not open the laptop to fiddle with any write protect screws, I just left the Scary White Screen there and hit Ctrl+L, mostly because I wasn't 100% sure that I was going to be keeping the laptop- I didn't want to do anything that may void my ability to return it. So I can't really answer your question on that one.

To be honest, I'm very much considering returning my Pixel and getting a XPS 13 sputnik edition when it comes out. The Pixel has the XPS beat in RAM, CPU, and (likely) build quality, but the XPS has a better screen, a larger (replaceable) SSD, and a normal freakin' keyboard. I really wish they both came out the same week so I could compare the two on my desk.

Offline

#21 2015-03-23 18:15:33

Hideaki
Member
From: Seattle, WA
Registered: 2009-01-19
Posts: 37

Re: Google Chromebook Pixel 2

Someone on reddit has had luck using the ChromiumOS Kernel on Ubuntu to get the touchpad and touchscreen working: https://www.reddit.com/r/chrubuntu/comm … en/cpn5t8c

Obviously, this is a less than ideal solution, and it still leaves Audio non-functional, but perhaps its a step in the right direction.

Offline

#22 2015-03-24 08:12:36

Hideaki
Member
From: Seattle, WA
Registered: 2009-01-19
Posts: 37

Re: Google Chromebook Pixel 2

Here's what I've got so far.
I managed to get the touchpad and touchscreen working via a horrible hack. I downloaded a pre-built ChromiumOS image from: http://chromium.arnoldthebat.co.uk/daily/, mounted partition 3 using kpartx to create a loop device and add the partition to /dev/mapper, copied the vmlinuz-3.14 image into my arch /boot, copied /lib/modules/3.14 into my arch /lib/modules folder, ran grub-mkconfig, set the newly found Linux image as my default, then rebooted. Synaptics works, but I think cmt is better so I installed and configured it, now I have a fairly flawless touchscreen and touchpad experience.
This is obviously a horrible hack, and a better solution would certainly be welcome. One major downside seems to be Wifi performance, I'm getting significantly worse 5Ghz reception on this kernel over the stock Arch 3.19 kernel.

Audio is still a mystery. I got pulseaudio to see something called bdw-rt5677 which includes Headphone and Speaker ports, but no sound comes out. Doing a quick google search for bdw-rt5677 only brings up some configuration files for the Chromebook Pixel 2(samus) in Google's git. I imagine that it's just a matter of passing alsa the right model at this point, but I can't seem to find what that might be.

Offline

#23 2015-03-24 09:47:01

tsowell
Member
From: Anchorage, AK
Registered: 2013-11-19
Posts: 4

Re: Google Chromebook Pixel 2

I've ripped the touchpad/touchscreen and backlight drivers out of Chromium OS and integrated them (loosely, as quickly as I could) into the current Arch kernel.  It can be built from the package here: https://github.com/tsowell/arch-linux-samus

This is also a horrible hack, and things may not work as expected.  At a glance, it seems to be working better than the Chromium OS kernel for me though and will hopefully tide me over until we get mainline support.

I'll take a look at audio next.

Offline

#24 2015-03-24 19:53:48

Hideaki
Member
From: Seattle, WA
Registered: 2009-01-19
Posts: 37

Re: Google Chromebook Pixel 2

Thanks for sharing that package, tsowell. That is way less of a hack than loading the entire Chrome OS kernel. =P It's running very well on my Pixel, and WiFi reception is back to what it used to be. The bdw-rt5677 audio device is no longer being detected by ALSA, so there's certainly a kernel component to it that also needs to added.

On a different note, closing the lid does not put the laptop to sleep, even on the ChromeOS kernel, so there's some configuration we are missing on that regard as well. Manual and time-out suspend appear to be working, however.

Offline

#25 2015-03-24 23:00:33

tsowell
Member
From: Anchorage, AK
Registered: 2013-11-19
Posts: 4

Re: Google Chromebook Pixel 2

Thanks for trying it out and testing suspend.  I'll take a look at suspend-on-lid-close.

I'm guessing bdw-rt5677 is a Broadwell SoC device, and the only config differences, sound-wise, between the Chromium OS kernel and Arch's kernel are CONFIG_SND_SOC (which includes Broadwell support) and CONFIG_SND_SOC_I2C_AND_SPI.  I'll try enabling those this evening and will see where that gets me.

Offline

Board footer

Powered by FluxBB