Mainline Kernel on Tegra K1 (Acer Chromebook 13 CB5-311)

This forum is for supported devices using an ARMv7 nVidia SoC.

Re: Mainline Kernel on Tegra K1 (Acer Chromebook 13 CB5-311)

Postby haagch » Mon Apr 11, 2016 9:42 pm

So I wondered - what about wayland?

So I looked around and saw https://github.com/Gnurou/weston/commits/gk20a. Unfortunately the commits that implement it are from 2014 and merging to master was a bitch, so I did it manually: Take the weston-git package and replace the source with
git+https://github.com/ChristophHaag/weston.git.

And there you have it, weston with 3d acceleration - if you create an opengl context with egl, it will be on the gpu. And - what I wouldn't have thought - 3d acceleration in xwayland!

Image

Unfortunately gnome and plasma on wayland still use llvmpipe. Any ideas how to make them use the gpu too?
haagch
 
Posts: 60
Joined: Thu Apr 02, 2015 5:36 pm

Re: Mainline Kernel on Tegra K1 (Acer Chromebook 13 CB5-311)

Postby tincman » Wed Apr 13, 2016 8:54 pm

That is awesome!! Which kernel are you using? Do you still have LPAE enabled? Lastly, how is the extended usage, and any EMC errors?

There was a post-4.5-rc7 commit that added a 34-bit dma mask to the DMA controller (the 34-bit addressing mode in the smmu was the closest thing I could come up with as a possible reason why LPAE+SMMU was not working)... I wonder if this had fixed those errors.

$this->bbcode_second_pass_quote('', 'U')nfortunately gnome and plasma on wayland still use llvmpipe. Any ideas how to make them use the gpu too?


I haven't tried my hand at wayland backed anything yet (only dabbled a bit in weston...). Can you confirm they are running with the Wayland backed? My guess may be a missing extension or missed configuration or something is causing it to fallback to Xorg...

Edit: Ugh, so forgot that wayland is basically a library, and weston is a WM/compositor built on it. In the same way that weston needed to be patched to initialize the GPU/Host1X bridge, so too would the wayland backend code used in gnome/plasma...

Somewhat related: I updated the non-rc kernel in my tree to 4.5. For this one, I actually disabled LPAE. The good news is that indeed without LPAE, I can use USB again and have not seen any EMC errors at all! (and 2GB of memory has been enough for now...). The bad news is, while I got farther along in the initialization process, I still couldn't get xf86-video-noveau to work with patching (seems it always tries to initialize a screen, which fails for gk20a).

I haven't yet tried a 4.6-rc2 or rc3 kernel to see if the keyboard was fixed. I also have not tried the released 4.5 kernel (which included the dma mask commit) with LPAE to see if that fixed it...
tincman
 
Posts: 25
Joined: Sat Feb 23, 2013 5:27 pm

Re: Mainline Kernel on Tegra K1 (Acer Chromebook 13 CB5-311)

Postby haagch » Wed Apr 13, 2016 10:19 pm

I'm still using an earlier 4.5 rc, but I am dual booting from internal flash and don't have much problems with the emem errors. I guess these errors are more common with booting from an sd card?

Hm, right, mutter and kwin_wayland are *replacing* weston, not building on top of it. My mistake. Yea, there ought to be a generic solution, maybe someone should bringt hat up to the wayland developers. I think there already is PRIME support in wayland, so it should not be too hard to hook it up.

For xf86-video-nouveau you should really contact the nouveau developers, they are super friendly. :)
haagch
 
Posts: 60
Joined: Thu Apr 02, 2015 5:36 pm

Re: Mainline Kernel on Tegra K1 (Acer Chromebook 13 CB5-311)

Postby tincman » Mon Apr 18, 2016 10:05 pm

So! I tried my hand at Gnurou's patched xorg-server and GPU acceleration is working! :D I was able to stay in cinnamon with acceleration for a while with no crashing and no EMEM errors. I'll next be trying this with LPAE to see if that is fixed as well or not.

I noticed Gnurou has been keeping his xserver patches in-sync with upstream. Perhaps send a pull request for your weston ones? I'm sure he'd be interested.

I've added a PKGBUILD for the patched server to my nyan-emc-timing tree (https://github.com/sctincman/PKGBUILDs/ ... org-server).

I haven't played around with much else (like p-states and really hammering the GPU), but I'm optimistic.

I had chatted a bit with the nouveau guys on IRC, where apparently the difficulty with patching xf86-video-nouveau is that it should already work as-is out of the box... if you're using pure DRI3. However, the need for DRI2 is where the driver starts initializing screens. The patched modesetting driver I can see now pulls in nouveau when trying to load the rendernode for the GPU.

As far a not-hacked solutions, this was pointed out to be the latest push for a general solution to these heterogeneous systems (https://lists.freedesktop.org/archives/ ... 09119.html). In-progress, but not quite here... The "fused-KMS" device solution sounds really interesting.

$this->bbcode_second_pass_quote('', 'I')'m still using an earlier 4.5 rc, but I am dual booting from internal flash and don't have much problems with the emem errors. I guess these errors are more common with booting from an sd card?


Hmmm, I don't see why that would be. But, if you have a stable GPU accelerated Weston running with a 4.5-rc and LPAE, there certainly is something interesting going on...
tincman
 
Posts: 25
Joined: Sat Feb 23, 2013 5:27 pm

Re: Mainline Kernel on Tegra K1 (Acer Chromebook 13 CB5-311)

Postby haagch » Mon Apr 18, 2016 11:37 pm

Eh, I've completely rewritten the patches. I might send a pull request, but first I'll rebase the original commits instead.
Edit: And just as I wrote it I knew how to do it the quickest. "git format-patch -1" on the three patches, then check out the old gk20a branch, rebase it on freedesktop/master and for each of the three commits, "git reset --hard" and "git apply foo.patch": https://github.com/Gnurou/weston/pull/1

Yes, with X.org and DRI3 we would not even need xf86-video-nouveau, because this implementation directly uses render nodes. Just setting DRI_PRIME=1 (or mor explicitely, DRI_PRIME=platform-57000000_gpu, the output of udevadm info /dev/dri/card1| grep ID_PATH_TAG) should do everything automatically. See the original message (I don't think there is succinct real documentation about it): https://lists.freedesktop.org/archives/ ... 60131.html. I think I already mentioned it, but the modesetting driver on the tegradrm display driver doesn't use DRI3 - not sure how complicated it would be to get it to use DRI3.

I'm not sure if the simple DRI_PRIME solution would even work with DRI2 on modesetting. On my laptop with intel graphics modesetting doesn't support offload source (I think that's the one that is needed). On the other hand there's this: https://lists.x.org/archives/xorg-devel ... 49339.html "and implement double buffered PRIME sink and source support in the modesetting driver." so maybe... edit: Oh they are talking about outputsource sink and source I think, not offloading.

I'm a bit confused about the general solution you linked: "This API is really easy to use from an application POV (the patch to
convert the QT5.6 eglfs_kms backend to use this is less than 100LOC)." This is for running qt directly on the framebuffer or what? I mean, if this is added to a x.org ddx, applications/toolkits won't need to do their own support of it?
haagch
 
Posts: 60
Joined: Thu Apr 02, 2015 5:36 pm

Re: Mainline Kernel on Tegra K1 (Acer Chromebook 13 CB5-311)

Postby haagch » Thu Apr 21, 2016 10:13 am

So I happened to see this: https://github.com/NVIDIA/tegra-nouveau ... -211770903
libdrm still needs to be compiled due to an extra option that is not enabled on Arch Linux. Stock Mesa is fine though.
and https://github.com/NVIDIA/tegra-nouveau ... a94e6f5cd3
libdrm is actually needed due to tiling ioctl
So... That sounds like something that could be relevant?
I guess it's the --enable-tegra-experimental-api option:
https://github.com/NVIDIA/tegra-rootfs- ... ld-drm#L12

It also looks like it can only be compiled with libdrm-git and not stable libdrm..

edit: by the way, the xorg patch doesn't apply with git apply. No idea why. No error message, nothing. I had to use patch -p1 < ../hack.. for it to actually apply.

But it looks like with 4.6-rc4, libdrm git with experimental nouveau apis and xorg from your repo with the patch applied - plasma with opengl compositing does seem to work fine now without any freezes. It's a bit slow and tears a bit, but it does work.

Now there are a few problems in dmesg

First
[ 7.173315] WARNING: CPU: 2 PID: 19 at net/wireless/core.c:363 wiphy_new_nm+0x670/0x6c4 [cfg80211]
but it seems to be harmless. wifi still works.

Then after resume from suspend
[ 2290.630033] cros-ec-spi spi32766.0: packet too long (249 bytes, expected 4)
[ 2290.630106] cros-ec-i2c-tunnel 7000d400.spi:cros-ec@0:i2c-tunnel: Error transferring EC i2c message -28
Might be harmless too.

There's also the problem with the mouse pointer. It flickers and vanishes in some circumstances and intellij and friends don't even start (it looks like it is super slow too, might be because of openjdk on arm):

$this->bbcode_second_pass_code('', 'java.lang.RuntimeException: cannot load system cursor: CopyDrop.32x32
at sun.awt.X11.XToolkit.lazilyLoadDesktopProperty(XToolkit.java:1541)
at java.awt.Toolkit.getDesktopProperty(Toolkit.java:1803)
at java.awt.dnd.DragSource.load(DragSource.java:131)
at java.awt.dnd.DragSource.<clinit>(DragSource.java:148)
at com.intellij.ide.dnd.DnDManagerImpl.registerSource(DnDManagerImpl.java:98)
at com.intellij.ide.dnd.DnDSupport.<init>(DnDSupport.java:70)
at com.intellij.ide.dnd.DnDSupport.<init>(DnDSupport.java:32)
at com.intellij.ide.dnd.DnDSupport$1.install(DnDSupport.java:276)
at com.intellij.openapi.editor.impl.EditorGutterComponentImpl.installDnD(EditorGutterComponentImpl.java:230)
at com.intellij.openapi.editor.impl.EditorGutterComponentImpl.<init>(EditorGutterComponentImpl.java:156)
at com.intellij.openapi.editor.impl.EditorImpl.<init>(EditorImpl.java:560)
at com.intellij.openapi.editor.impl.EditorFactoryImpl.createEditor(EditorFactoryImpl.java:193)
at com.intellij.openapi.editor.impl.EditorFactoryImpl.createViewer(EditorFactoryImpl.java:174)
at com.intellij.ui.EditorTextField.createEditor(EditorTextField.java:448)
at org.jetbrains.plugins.gradle.service.project.wizard.GradleParentProjectForm$TextViewer.createEditor(GradleParentProjectForm.java:176)
at com.intellij.ui.EditorTextField.initEditor(EditorTextField.java:367)
at com.intellij.ui.EditorTextField.addNotify(EditorTextField.java:352)
at java.awt.Container.addNotify(Container.java:2773)
at javax.swing.JComponent.addNotify(JComponent.java:4740)
at java.awt.Container.addNotify(Container.java:2773)
at javax.swing.JComponent.addNotify(JComponent.java:4740)
at java.awt.Container.addNotify(Container.java:2773)
at javax.swing.JComponent.addNotify(JComponent.java:4740)
at java.awt.Container.addNotify(Container.java:2773)
at javax.swing.JComponent.addNotify(JComponent.java:4740)
at java.awt.Container.addNotify(Container.java:2773)
at javax.swing.JComponent.addNotify(JComponent.java:4740)
at java.awt.Container.addNotify(Container.java:2773)
at javax.swing.JComponent.addNotify(JComponent.java:4740)
at java.awt.Container.addNotify(Container.java:2773)
at javax.swing.JComponent.addNotify(JComponent.java:4740)
at java.awt.Container.addNotify(Container.java:2773)
at javax.swing.JComponent.addNotify(JComponent.java:4740)
at java.awt.Container.addNotify(Container.java:2773)
at javax.swing.JComponent.addNotify(JComponent.java:4740)
at javax.swing.JRootPane.addNotify(JRootPane.java:757)
at java.awt.Container.addNotify(Container.java:2773)
at java.awt.Window.addNotify(Window.java:770)
at java.awt.Dialog.addNotify(Dialog.java:760)
at java.awt.Window.pack(Window.java:807)
at com.intellij.openapi.ui.impl.DialogWrapperPeerImpl$MyDialog.show(DialogWrapperPeerImpl.java:677)
at com.intellij.openapi.ui.impl.DialogWrapperPeerImpl.show(DialogWrapperPeerImpl.java:465)
at com.intellij.openapi.ui.DialogWrapper.invokeShow(DialogWrapper.java:1661)
at com.intellij.openapi.ui.DialogWrapper.show(DialogWrapper.java:1610)
at com.intellij.openapi.ui.DialogWrapper.showAndGet(DialogWrapper.java:1625)
at com.intellij.ide.impl.NewProjectUtil.createNewProject(NewProjectUtil.java:70)
at com.intellij.ide.actions.NewProjectAction.actionPerformed(NewProjectAction.java:31)
at com.intellij.ui.components.labels.ActionLink$1.linkSelected(ActionLink.java:64)
at com.intellij.ui.components.labels.LinkLabel.doClick(LinkLabel.java:116)
at com.intellij.ui.components.labels.ActionLink.doClick(ActionLink.java:77)
at com.intellij.ui.components.labels.LinkLabel$MyMouseHandler.mouseReleased(LinkLabel.java:287)
at java.awt.Component.processMouseEvent(Component.java:6535)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3324)
at java.awt.Component.processEvent(Component.java:6300)
at java.awt.Container.processEvent(Container.java:2236)
at java.awt.Component.dispatchEventImpl(Component.java:4891)
at java.awt.Container.dispatchEventImpl(Container.java:2294)
at java.awt.Component.dispatchEvent(Component.java:4713)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4888)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4525)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4466)
at java.awt.Container.dispatchEventImpl(Container.java:2280)
at java.awt.Window.dispatchEventImpl(Window.java:2750)
at java.awt.Component.dispatchEvent(Component.java:4713)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:758)
at java.awt.EventQueue.access$500(EventQueue.java:97)
at java.awt.EventQueue$3.run(EventQueue.java:709)
at java.awt.EventQueue$3.run(EventQueue.java:703)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86)
at java.awt.EventQueue$4.run(EventQueue.java:731)
at java.awt.EventQueue$4.run(EventQueue.java:729)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:728)
at com.intellij.ide.IdeEventQueue.defaultDispatchEvent(IdeEventQueue.java:857)
at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.java:654)
at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:386)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)
Caused by: java.awt.AWTException: Exception: class java.lang.IllegalArgumentException Width (0) and height (0) must be non-zero occurred while creating cursor CopyDrop.32x32
at java.awt.Cursor.getSystemCustomCursor(Cursor.java:363)
at sun.awt.X11.XToolkit.lazilyLoadDesktopProperty(XToolkit.java:1539)
... 84 more
[ 73087] ERROR - llij.ide.plugins.PluginManager - null
java.lang.ExceptionInInitializerError
at com.intellij.ide.dnd.DnDManagerImpl.registerSource(DnDManagerImpl.java:98)
at com.intellij.ide.dnd.DnDSupport.<init>(DnDSupport.java:70)
at com.intellij.ide.dnd.DnDSupport.<init>(DnDSupport.java:32)
at com.intellij.ide.dnd.DnDSupport$1.install(DnDSupport.java:276)
at com.intellij.openapi.editor.impl.EditorGutterComponentImpl.installDnD(EditorGutterComponentImpl.java:230)
at com.intellij.openapi.editor.impl.EditorGutterComponentImpl.<init>(EditorGutterComponentImpl.java:156)
at com.intellij.openapi.editor.impl.EditorImpl.<init>(EditorImpl.java:560)
at com.intellij.openapi.editor.impl.EditorFactoryImpl.createEditor(EditorFactoryImpl.java:193)
at com.intellij.openapi.editor.impl.EditorFactoryImpl.createViewer(EditorFactoryImpl.java:174)
at com.intellij.ui.EditorTextField.createEditor(EditorTextField.java:448)
at org.jetbrains.plugins.gradle.service.project.wizard.GradleParentProjectForm$TextViewer.createEditor(GradleParentProjectForm.java:176)
at com.intellij.ui.EditorTextField.initEditor(EditorTextField.java:367)
at com.intellij.ui.EditorTextField.addNotify(EditorTextField.java:352)
at java.awt.Container.addNotify(Container.java:2773)
at javax.swing.JComponent.addNotify(JComponent.java:4740)
at java.awt.Container.addNotify(Container.java:2773)
at javax.swing.JComponent.addNotify(JComponent.java:4740)
at java.awt.Container.addNotify(Container.java:2773)
at javax.swing.JComponent.addNotify(JComponent.java:4740)
at java.awt.Container.addNotify(Container.java:2773)
at javax.swing.JComponent.addNotify(JComponent.java:4740)
at java.awt.Container.addNotify(Container.java:2773)
at javax.swing.JComponent.addNotify(JComponent.java:4740)
at java.awt.Container.addNotify(Container.java:2773)
at javax.swing.JComponent.addNotify(JComponent.java:4740)
at java.awt.Container.addNotify(Container.java:2773)
at javax.swing.JComponent.addNotify(JComponent.java:4740)
at java.awt.Container.addNotify(Container.java:2773)
at javax.swing.JComponent.addNotify(JComponent.java:4740)
at java.awt.Container.addNotify(Container.java:2773)
at javax.swing.JComponent.addNotify(JComponent.java:4740)
at javax.swing.JRootPane.addNotify(JRootPane.java:757)
at java.awt.Container.addNotify(Container.java:2773)
at java.awt.Window.addNotify(Window.java:770)
at java.awt.Dialog.addNotify(Dialog.java:760)
at java.awt.Window.pack(Window.java:807)
at com.intellij.openapi.ui.impl.DialogWrapperPeerImpl$MyDialog.show(DialogWrapperPeerImpl.java:677)
at com.intellij.openapi.ui.impl.DialogWrapperPeerImpl.show(DialogWrapperPeerImpl.java:465)
at com.intellij.openapi.ui.DialogWrapper.invokeShow(DialogWrapper.java:1661)
at com.intellij.openapi.ui.DialogWrapper.show(DialogWrapper.java:1610)
at com.intellij.openapi.ui.DialogWrapper.showAndGet(DialogWrapper.java:1625)
at com.intellij.ide.impl.NewProjectUtil.createNewProject(NewProjectUtil.java:70)
at com.intellij.ide.actions.NewProjectAction.actionPerformed(NewProjectAction.java:31)
at com.intellij.ui.components.labels.ActionLink$1.linkSelected(ActionLink.java:64)
at com.intellij.ui.components.labels.LinkLabel.doClick(LinkLabel.java:116)
at com.intellij.ui.components.labels.ActionLink.doClick(ActionLink.java:77)
at com.intellij.ui.components.labels.LinkLabel$MyMouseHandler.mouseReleased(LinkLabel.java:287)
at java.awt.Component.processMouseEvent(Component.java:6535)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3324)
at java.awt.Component.processEvent(Component.java:6300)
at java.awt.Container.processEvent(Container.java:2236)
at java.awt.Component.dispatchEventImpl(Component.java:4891)
at java.awt.Container.dispatchEventImpl(Container.java:2294)
at java.awt.Component.dispatchEvent(Component.java:4713)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4888)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4525)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4466)
at java.awt.Container.dispatchEventImpl(Container.java:2280)
at java.awt.Window.dispatchEventImpl(Window.java:2750)
at java.awt.Component.dispatchEvent(Component.java:4713)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:758)
at java.awt.EventQueue.access$500(EventQueue.java:97)
at java.awt.EventQueue$3.run(EventQueue.java:709)
at java.awt.EventQueue$3.run(EventQueue.java:703)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86)
at java.awt.EventQueue$4.run(EventQueue.java:731)
at java.awt.EventQueue$4.run(EventQueue.java:729)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:728)
at com.intellij.ide.IdeEventQueue.defaultDispatchEvent(IdeEventQueue.java:857)
at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.java:654)
at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:386)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)
Caused by: java.lang.RuntimeException: failed to load system cursor: DnD.Cursor.CopyDrop : cannot load system cursor: CopyDrop.32x32
at java.awt.dnd.DragSource.load(DragSource.java:135)
at java.awt.dnd.DragSource.<clinit>(DragSource.java:148)
... 81 more')
It looks like it won't work because there is no hardware cursor it can use.

I also just lost my wifi and it spammed

[ 3806.714551] mwifiex_sdio mmc1:0001:1: card_to_host_mpa failed: int status=0x1
[ 3806.715087] mwifiex_sdio mmc1:0001:1: host_to_card, write iomem (1) failed: -110
[ 3806.715332] mwifiex_sdio mmc1:0001:1: host_to_card, write iomem (2) failed: -110
[ 3806.715580] mwifiex_sdio mmc1:0001:1: host_to_card, write iomem (3) failed: -110
[ 3806.715659] mwifiex_sdio mmc1:0001:1: DNLD_CMD: host to card failed
[ 3806.715742] mwifiex_sdio mmc1:0001:1: failed to get signal information

to the log.

I tried to unload the module and reload it, but when I then clicked on the plasma network manager, this happened:

[ 4160.929278] nouveau 57000000.gpu: fifo: PBDMA0: 00040000 [PBENTRY] ch 14 [04007a3000 Xorg[16015]] subc 0 mthd 0000 data 00000000
[ 4160.929312] nouveau 57000000.gpu: gr: DATA_ERROR 0000000c [INVALID_BITFIELD] ch 14 [04007a3000 Xorg[16015]] subc 0 class a297 mthd 2410 data 0fac6881

and shortly after the system froze. After a reboot I can't start X at all anymore and I get these things:

[ 6.567615] kernel BUG at mm/slub.c:1508!
[ 6.567649] Internal error: Oops - BUG: 0 [#1] SMP ARM

edit: Have to boot to a tty and then start lightdm a bit later, then it works.
edit: Now plasma freezes on start. This is really inconsistent. But after a while it recovers and restarts X. Now the login worked. Yay.
edit: Ah I was too quick to say it works. Still pageflip failed in Xorg.0.log and freezes.
haagch
 
Posts: 60
Joined: Thu Apr 02, 2015 5:36 pm

Re: Mainline Kernel on Tegra K1 (Acer Chromebook 13 CB5-311)

Postby tincman » Thu Apr 21, 2016 5:36 pm

The Arch Linux libdrm package does add the "--enable-experimental-tegra-api" option, but only for armv7h (so, gnurou must be talking about the armv8 TX1 needing the tweak to enable this option). ...it should be in the libdrm package we have, and that's what I have been using. Otherwise the xorg-server hack wouldn't have access to "tegra.h" it needs in order to set the proper buffer format.

$this->bbcode_second_pass_quote('', 'e')dit: by the way, the xorg patch doesn't apply with git apply. No idea why. No error message, nothing. I had to use patch -p1 < ../hack.. for it to actually apply.

That is really weird... it was working when I pushed it, but can't get it to work either now... just switching to "patch -p1 <..."

I also took this chance to add the other gnurou patch to deal with the flickering mouse pointer, but it hasn't fixed it for me :/ It just flickers lightly in rare situations for me, so I've just been dealing with it. (more info here: https://github.com/Gnurou/xserver/commi ... 9213b3cd70).

$this->bbcode_second_pass_quote('', 'I')t's a bit slow and tears a bit, but it does work.


Don't forget to up the clock speed using "/sys/kernel/debug/dri/128/pstate" I have to go at least a level or two up to get comfortable performance. Interestingly, changing the GPU clock speed also change the tegra-drm clock speed. I'll have to confirm it, but it's possible they use the same clock source...

I still haven't tried the newer 4.6-rc's ... however, last week I did have a similar thing happen to my wifi. The module reloaded fine, but the card still wouldn't work until a reboot. However, this hasn't happened to me again.

I've seen that cros-ec-spi error appear in other situations. I think it is harmless. The i2c tunnel connects the battery/ac-adapter, and could be they spammed messages faster than the module was able to read them coming out of suspend (I usually see these messages early in the boot logs).

Regarding PBDMA errors and freezing and crashing... Are you using LPAE? Are there any EMEM errors? I'm just not sure what else it could be.

Try my LPAE-less 4.5 kernel. This has been working great for me under cinnamon (errr, mostly. I occasionally get a short lockup that I am unsure of the cause, but stability and usability wise it has been working great).

$this->bbcode_second_pass_quote('', '
')I'm a bit confused about the general solution you linked: "This API is really easy to use from an application POV (the patch to
convert the QT5.6 eglfs_kms backend to use this is less than 100LOC)." This is for running qt directly on the framebuffer or what? I mean, if this is added to a x.org ddx, applications/toolkits won't need to do their own support of it?


The buffer management is apparently a hurdle for better application support. Between applications that assume render/scanout are the same device (a single KMS dev point of view), and not having an easy way to automagically negotiate a render/scanout combo (between what devices to select, and what buffer formats can be agreed upon). This was supposed to be an API change to allow application developers to support it more easily.

Doing a device specific DDX would allow Xorg to work, but then each render/scanout combo needs to be added to the DDX, and this could become a headache and would not scale well as more devices are added. These patches would move the buffer negotiation into a single point in a common API (but there was arguments about how to best handle the negotiation...).
tincman
 
Posts: 25
Joined: Sat Feb 23, 2013 5:27 pm
Top

Re: Mainline Kernel on Tegra K1 (Acer Chromebook 13 CB5-311)

Postby haagch » Thu Apr 21, 2016 7:58 pm

Someone just opened this bug and the symptoms sound actually similar: https://bugs.freedesktop.org/show_bug.cgi?id=95054
Perhaps this is just general nouveau brokenness.

I wanted to try gnurou's nouveau staging/work branch but it doesn't compile at the moment with 4.6-rc4.
It should work by going to nouveau/drm and running
LINUXDIR=~/PKGBUILD/core/linux-armv7-rc/src/linux..etc make
but it looks like there is some error that you can circumvent with editing the ~/PKGBUILD/core/linux-armv7-rc/src/linux..../Makefile and changing
KBUILD_CFLAGS += $(call cc-option,-Werror=incompatible-pointer-types)
to Wno-error=incompatible-pointer-types,
but only to run into more errors later.

Sad that it doesn't even do basic automatic reclocking, but I'll try it. Maybe from this direction some help will come even though it's not really targeted at maxwell it seems they're experimenting a bit with it: https://www.phoronix.com/scan.php?page= ... el-Spin-RC

And no, I'm not seeing emem errors.

$this->bbcode_second_pass_code('', 'Doing a device specific DDX would allow Xorg to work, but then each render/scanout combo needs to be added to the DDX,')
Well, unless this situation can be autodetected or easily set via configuration files. Maybe something could be standardized and added to the devicetrees.
haagch
 
Posts: 60
Joined: Thu Apr 02, 2015 5:36 pm

Re: Mainline Kernel on Tegra K1 (Acer Chromebook 13 CB5-311)

Postby haagch » Fri Jun 03, 2016 11:45 am

A bit of an update: Even though I didn't have that specific error message, with 4.6 it was still kinda unstable and buggy so I have been using 4.5.

Now there is 4.7-rc1, So, maybe it'll be better now?
haagch
 
Posts: 60
Joined: Thu Apr 02, 2015 5:36 pm

Re: Mainline Kernel on Tegra K1 (Acer Chromebook 13 CB5-311)

Postby tincman » Fri Jun 03, 2016 2:00 pm

Actually, I started having weird but consistent WiFi problems with 4.6 and have been running 4.5 since as well... It appeared to be sdhci related, but could have been the chip crashing as well and sdhci complaing about not communicating.

I took a quick look through 4.7-rc1 and didn't see anything too specific (aside from an apdma change that was mostly for the TX1, but touched the general source as well)

On 4.5, aside from occasional lockups from disk reads to the SDcard, it's been running fairly well (as 4.6 disabled UHS tuning, I'd been waiting to finally move to the emmc before updating to it again :P)

I'll have to give 4.7-rc1 a try soon as well
tincman
 
Posts: 25
Joined: Sat Feb 23, 2013 5:27 pm

PreviousNext

Return to nVidia

Who is online

Users browsing this forum: No registered users and 5 guests