Closed reynhout closed 7 years ago
Working:
Broken:
Tested USB BOOT on REKS (Lenovo N22) with identical results (keyboard and sound broken).
CYAN user on G+ running Ubuntu 16.10 (a2?) reports that the keyboard is fixed with kernel 4.7
same user as above reports CYAN touchscreen works fine w/Ubuntu 4.7 when CONFIG_ELAN_TOUCHSCREEN is added
Confirm: Kernel 4.7 brings the keyboard to life. Installed from Ubuntu, though.
Can anyone point me to the compile flags for Gallium kernel? Then I could build one with the CONFIG_ELAN_TOUCHSCREEN flag and test the screen, too.
@lispykid https://github.com/GalliumOS/linux/blob/master/.config I am a noob, please don't be harsh if it is wrong EDIT: https://github.com/GalliumOS/linux/blob/baytrail/.config for baytrail (GalliumOS 4.4.6)
My tiny script to rotate screen on the Acer R11. Useful for tentmode: /\
#!/bin/bash
STATE=`xrandr | grep eDP | awk '{print $4}'`
if [[ $STATE == *"inverted"* ]]
then
xrandr -o normal
else
xrandr -o inverted
fi
Volume and Brightness Keys are working in Ubuntu mainline kernel 4.7, btw.
@lispykid Thanks, and I'll update the checklist.
Our WIP 4.7.0 kernel config is here: http://paste.ubuntu.com/23078327/
The touchscreen doesn't work yet -- it must require something more than CONFIG_TOUCHSCREEN_ELAN
. I've gone through the diffs between Ubuntu and mainline and GalliumOS looking for something missing, but haven't found it yet.
You tried: modprobe elants_i2c
?
@lispykid No, I don't think so (I don't have the test device)...the driver should load automatically, shouldn't it?
@lispykid there's a dmesg error on boot: elants_i2c: error while waiting for calibration to complete: -110 full dmesg: https://paste.ubuntu.com/23082714
sudo modprobe elants_i2c returns normally.
also, for the keyboard working in 4.7.0-040700-generic (ubuntu) vs not in 4.7.0-galliumos we have:
i8042: PNP: PS/2 Controller [PNP0303:PS2K] at 0x60,0x64 irq 182
i8042: PNP: PS/2 appears to have AUX port disabled, if this is incorrect please boot with i8042.nopnp
i8042: Warning: Keylock active
i8042: probe of i8042 failed with error -22
vs
i8042: PNP: PS/2 Controller [PNP0303:PS2K] at 0x60,0x64 irq 182
i8042: PNP: PS/2 appears to have AUX port disabled, if this is incorrect please boot with i8042.nopnp
i8042: Warning: Keylock active
serio: i8042 KBD port at 0x60,0x64 irq 182
fwiw
Ok, I played with pulseaudio yesterday but had no luck with the headphonejack. Will try wether the HDMI output works, at least the mixer looks like.
I wish I could be more helpful. I reinstalled my R11 yesterday with GalliumOS Testing and Gallium Kernel 4.7 but I don't know what more I could help. It's some years since I last built my own kernel. Maybe I should give it a try again. Can you point me in a good direction for starts?
@lispykid kb/touchpad/touchscreen all work in the Ubuntu 4.7 kernel (recompiled w/CONFIG_ELAN_TOUCHSCREEN=m), so now it's just determining what in the GalliumOS config is breaking things. Audio is a separate issue entirely though
Internal audio log messages (nonworking), extracted from MrChromebox's dmesg output on Ubuntu 4.7.0 mainline kernel:
[ 6.523916] snd_hda_intel 0000:00:1b.0: bound 0000:00:02.0 (ops i915_audio_component_bind_ops [i915])
[ 6.682138] input: HDA Intel PCH HDMI/DP,pcm=3 as /devices/pci0000:00/0000:00:1b.0/sound/card0/input8
[ 6.682313] input: HDA Intel PCH HDMI/DP,pcm=7 as /devices/pci0000:00/0000:00:1b.0/sound/card0/input9
[ 6.682459] input: HDA Intel PCH HDMI/DP,pcm=8 as /devices/pci0000:00/0000:00:1b.0/sound/card0/input10
[ 6.789370] cht-bsw-max98090 cht-bsw-max98090: ASoC: i2c-104C227E:00 not registered
[ 6.789381] cht-bsw-max98090 cht-bsw-max98090: snd_soc_register_card failed -517
4.7.2 kernel parms
SND_SOC_INTEL_BYT_MAX98090_MACH
SND_SOC_INTEL_CHT_BSW_MAX98090_TI_MACH
(which enable the Maxim MAX98090 audio chip for Bay Trail and Cherry Trail/Braswell, respectively) appear to be mutually exclusive in Kconfig.
We might need to build separate kernels for Bay Trail and Braswell models.
GalliumOS kernel 4.7.2-galliumos2 includes the following fixes for Braswell models:
Tested on CYAN (Many thanks to @MattDevo!)
If you are having suspend/resume issues, try setting tpm_tis.interrupts=0
in your GRUB kernel config. This will be already be set if you installed from ISO. Some configs might also (or instead) include tpm_tis.force=1
, which should be equivalent, but it looks like we'll be preferring tpm_tis.interrupts=0
in future images.
This kernel does not include fixes for Braswell audio.
The new kernel package is currently in the galliumos-testing
repodist only. To enable and install:
sudo galliumos-repodist --enable testing
galliumos-update
Successfully tested on EDGAR. galliumos-upgrade command was not found, tried galliumos-update instead and that seemed to work.
@dh34751 Sorry, typo! fixed. Thanks for testing!
@dh34751 How did you manage to install GalliumOS on EDGAR? Using chrx I installed GalliumOS but the keyboard isn't working. So I cannot login and upgrade/update. How did you do this?
@mschmortte I am also using EDGAR (Chromebook 14 CB3-431-C5FM). You need to use an external keyboard to upgrade the kernel
Working:
@mschmortte Good point. An external keyboard is still needed until we get the updated kernel into a nightly image build. Chrx will install the latest nightly build if it's run with -r nightly
. (but again, the "latest" nightly build is still pre-kernel fix. I'll update this when we have a newer build pushed)
EDIT: Nightly images now include the keyboard config and all other patches for Braswell. Audio is still WIP.
@shamkoonyu Awesome. Thanks for the report!
tested chrx install with REKS. Same behaviour as with other devices:
Audio initialization seems to be done in the firmware, see kernel bug #151521:
From the discussion over there it sounds to me that Coreboot itself does no sound initialization, but the 'depthcharge' payload started from Coreboot when booting to ChromeOS does do a codec init.
However SeaBIOS payload doesn't do anything sound initialization related so it'd be wished that the kernel would do that instead if it wasn't done by the Coreboot and its payload.
Wouldn't it be possible to use the same boot mechanism as Chromium OS so we get the same initialized state, and stop booting from SeaBIOS?
I'm running some tests in that direction (packing the fedora kernel + initramfs in the kernel signed partition) but I didn't manage to boot yet.
By the way, I'm running Fedora 24 on CYAN, and everything works well except audio and suspend.
Wouldn't it be possible to use the same boot mechanism as Chromium OS so we get the same initialized state, and stop booting from SeaBIOS?
you're misunderstanding the issue; you're getting the "Same initialized state" now regardless of whether you boot ChromeOS via depthcharge or Linux via SeaBIOS. The BSW/CHT drivers in the mainline Linux kernels (4.5+) likely aren't (fully) resetting the codec/DSP properly as part of init, whereas the drivers in the ChromeOS kernel (3.1x) do. Changing the payload isn't going to help - you either need to cut out the init depthcharge is doing (eg, replace the payload like we do with the BOOT_STUB firmware on Baytrail) or fix the mainline kernel drivers.
@mildred Setting tpm_tis.interrupts=0
in GRUB config has been reported to help with suspend/resume.
Most likely it's unrelated, but I just had a massive hardware failure with my REKS / Lenovo N22. Something badly overheated in laptop bag when using GalliumOS and lid suspend, parts of the plastic actually melted. Battery's the likely candidate. Computer works still, but obviously I cannot continue using this fire hazard :)
I'm returning this one and getting another model (Edgar most likely).
@IlIlIlIlIlIlIl Yikes! Well, EDGAR has less plastic to melt if you get another bad battery :)
running fedora 24 mate edition in live mode ,device samsung 3 celes only sound not working
@aguitel Do suspend/resume work on Fedora 24? AFAIK we have everything working now on the GalliumOS kernel except audio and suspend/resume.
I couldn't get suspend resume working on Fedora 24. Kernel option didn't work. Closing the lid seems to put the computer in a blocked state with the screen turned off, the only solution then is to force halt the machine ly a long press on the power button.
It forces me to close my session, not so bad considering I have the habit of leaving everything open and it adds up.
suspend and resume works in samsung 3 celes with fedora 24 kernel 4.5 series try to install kernel 4.7 series but the device not boot and i remove this 4.7 kernel remains 4.5 only
Suspend / resume test results for EDGAR, Acer Chromebook 14 CB3-431. Works with Mint 18 using Ubuntu 4.7.4 kernel and all updates applied through today. Works with Fedora 24 using 4.7.3 kernel and all updates applied through today.
As expected, only the hdmi sound device is configured. I'm waiting until the 4.8 kernel gets closer to release quality to try it to see if the rumor is true that sound is fixed with that kernel. Maybe two more weeks before this happens.
Most likely it's unrelated, but I just had a massive hardware failure with my REKS / Lenovo N22. Something badly overheated in laptop bag when using GalliumOS and lid suspend, parts of the plastic actually melted. Battery's the likely candidate. Computer works still, but obviously I cannot continue using this fire hazard :)
This happened to me withy my UK REKS / Lenovo N22 too! Luckily it was on my desk and I smelt the burning plastic. Ended up warping the case in two points, on either side of the trackpad, before I switched it off. I had a Kingston USB 3 plugged in the right port and a Toshiba USB 2.0 in the left port. I think it was just on the Legacy Boot menu screen when this happened. Think it took about an hour to get up to the temperature high enough to melt the case. Seems okay now, actually recharged it whilst keeping a close eye on it. I cannot reproduce the issue. I haven't sent mine back yet, but prudence would dictate that it would be wise to do so.
I now wonder if this is related to something we both have done whilst trying to duel boot. One report could be coincidence, but two sounds like something is going on.
@robeastham What is the temperature normally like with GalliumOS on the N22? I have an N22 but haven't tried dual booting it yet. With ChromeOS the laptop is running very cool for me. I can barely feel any warmth under normal usage.
@paldepind When I used GalliumOS I didn't notice any difference on running temperature compared to Chromeos. My n22 was also very cool always.
@robeastham Two failures seems that there's something going on. I didn't have any USB devices plugged in. The plastic melted from bottom left and right corners and also from one spot under the laptop. I'll post pics when I'm home, I still haven't returned it but have returned it to stock condition already. (Edit: pics of the damage http://imgur.com/a/fbWe1)
Did you remove the firmware write protect screw?
@paldepind Has been really cool when running standard ChromeOS. I could not successfully get it to boot GalliumOS so not sure what the temperature would have been. I've not successfully booted any desktop environment and so most times I was in Legacy mode I was just on the boot prompt or at the shell (e.g. for Alpine). I think when it got hot it was just sitting waiting for me to pick a boot device after I'd pressed the key to select it. But this only happened once whilst it was idle.
I've had trouble with other distros on the N22 in legacy mode ( “Error setting up gfxboot” for Manjaro) and struggled with Alpine, but I think Alpine looked promising and the failure was unfamiliarity with Alpine rather than anything else. Going to try Arch vanilla before I send it back. Still keen to see what sort of performance I get on this CPU when booting off bare metal.
@IlIlIlIlIlIlIl I did open it up to see if I could add more memory when I first bought it. But don't recall intentionally removing any firmware screws. Just the ones required to remove the bottom plate on the case.
The warping to the case on my machine is in exactly the same two spots as your pictures but just on the upper side and to a lesser extent. I didn't back up the stock firmware after installing the Mr. Chromebox one and so need to figure out how to get it back to stock before I send it back.
Seems really odd, I mean surely even with a custom firmware this should not happen?
Appreciate all the hard work! Confirmed functional keyboard and touchscreen on CYAN w/ testing 4.7.2 kernel.
I didn't back up the stock firmware after installing the Mr. Chromebox one and so need to figure out how to get it back to stock before I send it back.
there was nothing to back up, the RW_LEGACY firmware region is empty on the stock firmware for all Braswell Chromebooks. If you want to clear it out though, simply use Recovery Mode/recovery media to put everything back to stock.
Is someone working on making the sound work? If so, what should be done? I see the kernel bug hasn't been updated in a while. From the last message, they seem to be waiting on the SeaBIOS to implement things, but I doubt they are going to do anything because there is no hardware initialization on their side of things.
Hey, greetings from cyan! I installed the newest galliumos-baytrail and after kernel upgrade to 4.7.2-galliumos, everything seems to work (besides the sound). Even the suspend works without any issues. Thanks for all the work, and if there's any testing I can help with, happy to do so!
@elquad Interesting, your CYAN is suspending/resuming properly on the 4.7.2-galliumos2 kernel? Have you added any other config that might be related? If we can isolate the differences, that could be a huge help toward resolving the issue.
@mildred It does look like audio is going to require some deeper research and ultimately a kernel patch. We will be watching the upstream traffic as well -- we have no Linux audio experts on the team, though a few of us have spent a lot of time working toward a level of general familiarity. :) If you come across any other references or progress info, please add to this ticket.
On the chromium tree, sound initialization is probably done in src/third_party/kernel/v*/sound/soc/codecs/ts3a227e.c
and src/third_party/kernel/v*/sound/soc/intel/boards/cht_bsw_max98090_ti.c
(it greps 104C227E
, the I2C device that didn't get created). It is registred in ACPI in src/third_party/coreboot/src/mainboard/google/cyan
.
Out of curiosity, I tried putting the 4.8.0-rc7 Ubuntu build kernel on my Edgar Acer CB3-431 Mint 18 install, and disappointingly sound still did not work with only the hdmi interface showing up. This probably means that the final 4.8.0 kernel won't be any different.
@dh34751 perhaps you can try the chromiumos kernel. If I have time, I'll try to see if it fixes the sound problem.
@mildred the audio init in the ChromeOS 3.x kernels is completely different than the mainline 4.x ones, so not particularly useful as a point of comparison. The Chromium 4.4 kernel seems to be the 4.4 mainline kernel with few audio-related changes (outside of the inclusion of the cht-bsw-max98090 driver, which is unchanged from the mainline 4.5+ kernel). While we appreciate the suggestions, this is all stuff we've already looked at.
@reynhout I'm not aware of any extra configuration that might have effect on this... Only enabled prerelease and testing repos, did full update and switched the kernel to 4.7.2. Attaching dmesg output. dmesg.txt
Wondering if anyone is concerned about the two reports of melting Lenovo N22's? See both mine and @IlIlIlIlIlIlIl experiences above.
Can I ask again? Should modifying the bios make this even a remote possibility? I guess in theory it could be possible to do something like this maliciously. I'm not suggesting, even for a second, that anyone in the chrome mod community has done anything malicious. However if this overheating is caused by a bug in the firmware code that people are installing then I think it'd be worth discussing and deciding what to do about it...
Tracking validation tests and bug reports for GalliumOS support for Braswell models.
Initial testing on CYAN, but please add observations for any Braswell model in comments!
Current Braswell status
galliumos-braswell
package createdCONFIG_TOUCHSCREEN_ELAN
(this is already set in GalliumOS 4.4.6 config)tpm_tis.interrupts=0
in GRUB confignskelsey
)Moved to new tickets:
IMPORTANT NOTE REGARDING AUDIO
Braswell Chromebooks come with one of two audio chips: Maxim 98090 or Realtek ALC5650/5654. There are several reports of hardware speaker failures on models with the Realtek chip. There is a lot more discussion in the comments below.