Unity crash with 28.2

I’ve installed 28.2, and had to re-compile the kernel to get Firewire support. I’m seeing the following errors (crashes in libnvidia-glcore.so.28.2.0):

[13596.761443] Library at 0x7f8b580950: 0x7f8a60d000 /usr/lib/aarch64-linux-gnu/tegra/libnvidia-glcore.so.28.2.0
[13596.771367] Library at 0x7f8b581090: 0x7f8a60d000 /usr/lib/aarch64-linux-gnu/tegra/libnvidia-glcore.so.28.2.0
[13596.781286] vdso base = 0x7f9caab000
[13597.234149] unity_support_t[20512]: unhandled level 2 translation fault (11) at 0x00000afc, esr 0x92000046
[13597.243814] pgd = ffffffc068ca9000
[13597.247237] [00000afc] *pgd=00000000e8c90003, *pud=00000000e8c90003, *pmd=0000000000000000

[13597.257046] CPU: 3 PID: 20512 Comm: unity_support_t Tainted: G W 4.4.38-huskybot-v0.1 #1
[13597.266271] Hardware name: quill (DT)
[13597.269946] task: ffffffc074dd5780 ti: ffffffc005abc000 task.ti: ffffffc005abc000
[13597.277439] PC is at 0x7f9089d950
[13597.280767] LR is at 0x7f9089e090
[13597.284095] pc : [<0000007f9089d950>] lr : [<0000007f9089e090>] pstate: 60000000
[13597.291495] sp : 0000007fe7dad4a0
[13597.294823] x29: 0000007fe7dad8f0 x28: 0000000000000001
[13597.300162] x27: 0000007fe7dad5f0 x26: 0000007fe7dad5b0
[13597.305506] x25: 0000007f91312000 x24: 0000007f91312b08
[13597.310865] x23: 00000000caf10000 x22: 0000007f91312b0c
[13597.316205] x21: 0000000000000000 x20: 00000000004d9870
[13597.321556] x19: 000000000048f870 x18: 0000007fe7dad880
[13597.326897] x17: 0000007f917e74c0 x16: 0000007f8f861b80
[13597.332232] x15: 0000007f91b4b000 x14: 0000000000000000
[13597.337584] x13: ffffffffffffffff x12: 0000000000000005
[13597.342923] x11: 0000000000000028 x10: df7854cf5f77ef56
[13597.348258] x9 : f561b7854eed6aae x8 : 11af0b836ee1aede
[13597.353606] x7 : 00000000ffffffff x6 : 0000000000000001
[13597.358948] x5 : 0000007fe7dad5f0 x4 : 00000000000030f1
[13597.364282] x3 : 00000000beef30f3 x2 : 00000000004d8870
[13597.369633] x1 : 0000000000001804 x0 : 0000000000000768

I’m happy to re-compile the kernel, but unfortunately I need FireWire modules available.

Do you see any invalid files listed from:

sha1sum -c /etc/nv_tegra_release

Everything says “OK” as far as checksums go. I’ve pasted the output, as well as the contents of /etc/nv_tegra/release, below.

One note: the library “/usr/lib/aarch64-linux-gnu/tegra/libnvidia-glcore.so.28.2.0” is NOT listed in this file! I’m not sure where it comes from. Possibly I need to re-install the video drivers?

sha1sum -c /etc/nv_tegra_release

/usr/lib/xorg/modules/extensions/libglx.so: OK
/usr/lib/xorg/modules/drivers/nvidia_drv.so: OK
/usr/lib/aarch64-linux-gnu/tegra/libtegrav4l2.so: OK
/usr/lib/aarch64-linux-gnu/tegra/libnvrm.so: OK
/usr/lib/aarch64-linux-gnu/tegra/libargus_socketserver.so: OK
/usr/lib/aarch64-linux-gnu/tegra/libnvjpeg.so: OK
/usr/lib/aarch64-linux-gnu/tegra/libnvomxilclient.so: OK
/usr/lib/aarch64-linux-gnu/tegra/libnvidia-egl-wayland.so: OK
/usr/lib/aarch64-linux-gnu/tegra/libnvcamerautils.so: OK
/usr/lib/aarch64-linux-gnu/tegra/libnvrm_graphics.so: OK
/usr/lib/aarch64-linux-gnu/tegra/libnvosd.so: OK
/usr/lib/aarch64-linux-gnu/tegra/libnvddk_2d_v2.so: OK
/usr/lib/aarch64-linux-gnu/tegra/libargus_socketclient.so: OK
/usr/lib/aarch64-linux-gnu/tegra/libargus.so: OK
/usr/lib/aarch64-linux-gnu/tegra/libnvtestresults.so: OK
/usr/lib/aarch64-linux-gnu/tegra/libnvddk_vic.so: OK
/usr/lib/aarch64-linux-gnu/tegra/libnvcamlog.so: OK
/usr/lib/aarch64-linux-gnu/tegra/libnvparser.so: OK
/usr/lib/aarch64-linux-gnu/tegra/libnvmmlite_image.so: OK
/usr/lib/aarch64-linux-gnu/tegra/libnvrm_gpu.so: OK
/usr/lib/aarch64-linux-gnu/tegra/libnvmm_parser.so: OK
/usr/lib/aarch64-linux-gnu/tegra/libnvmmlite_utils.so: OK
/usr/lib/aarch64-linux-gnu/tegra/libnvmmlite.so: OK
/usr/lib/aarch64-linux-gnu/tegra/libnvcameratools.so: OK
/usr/lib/aarch64-linux-gnu/tegra/libnvimp.so: OK
/usr/lib/aarch64-linux-gnu/tegra/libnvfnet.so: OK
/usr/lib/aarch64-linux-gnu/tegra/libscf.so: OK
/usr/lib/aarch64-linux-gnu/tegra/libglx.so: OK
/usr/lib/aarch64-linux-gnu/tegra/libnvomx.so: OK
/usr/lib/aarch64-linux-gnu/tegra/libnvmm_contentpipe.so: OK
/usr/lib/aarch64-linux-gnu/tegra/libnvtnr.so: OK
/usr/lib/aarch64-linux-gnu/tegra/libnvfnetstorehdfx.so: OK
/usr/lib/aarch64-linux-gnu/tegra/libnvtvmr.so: OK
/usr/lib/aarch64-linux-gnu/tegra/libnveglstream_camconsumer.so: OK
/usr/lib/aarch64-linux-gnu/tegra/libnvfnetstoredefog.so: OK
/usr/lib/aarch64-linux-gnu/tegra/libnvmmlite_video.so: OK
/usr/lib/aarch64-linux-gnu/tegra/libnvavp.so: OK
/usr/lib/aarch64-linux-gnu/tegra/libnvll.so: OK
/usr/lib/aarch64-linux-gnu/tegra/libnvdc.so: OK
/usr/lib/aarch64-linux-gnu/tegra/libnvcolorutil.so: OK
/usr/lib/aarch64-linux-gnu/tegra/libnvapputil.so: OK
/usr/lib/aarch64-linux-gnu/tegra/libnvmm.so: OK
/usr/lib/aarch64-linux-gnu/tegra/libnvos.so: OK
/usr/lib/aarch64-linux-gnu/tegra/libnvmedia.so: OK
/usr/lib/aarch64-linux-gnu/tegra/libnvodm_imager.so: OK
/usr/lib/aarch64-linux-gnu/tegra/libnvcam_imageencoder.so: OK
/usr/lib/aarch64-linux-gnu/tegra/libnvwinsys.so: OK
/usr/lib/aarch64-linux-gnu/tegra/libnveglstreamproducer.so: OK
/usr/lib/aarch64-linux-gnu/tegra/libnvexif.so: OK
/usr/lib/aarch64-linux-gnu/tegra/libnvmm_utils.so: OK
/usr/lib/aarch64-linux-gnu/tegra/libnvtx_helper.so: OK
/usr/lib/aarch64-linux-gnu/libv4l/plugins/libv4l2_nvvideocodec.so: OK
/usr/lib/aarch64-linux-gnu/libv4l/plugins/libv4l2_nvvidconv.so: OK

/etc/nv_tegra/release

# R28 (release), REVISION: 2.0, GCID: 10567845, BOARD: t186ref, EABI: aarch64, DATE: Fri Mar  2 04:57:01 UTC 2018
28dac9361b6fca4c80b4d33450c07d6567fda1e2 */usr/lib/xorg/modules/extensions/libglx.so
3202e46f7fb5a81bd58408a26881c653ef347e83 */usr/lib/xorg/modules/drivers/nvidia_drv.so
6112d187838cf5cb65aa4a58ad5531a6adbc330b */usr/lib/aarch64-linux-gnu/tegra/libtegrav4l2.so
4f11b4b055d3f48698071d739a99978bbbcb7f02 */usr/lib/aarch64-linux-gnu/tegra/libnvrm.so
de247b961707f7a61d83ab712b7da347fae6ca6e */usr/lib/aarch64-linux-gnu/tegra/libargus_socketserver.so
89c35677298da37cb9d4285c795646f28febe05f */usr/lib/aarch64-linux-gnu/tegra/libnvjpeg.so
7220a361260117a39d3e0de93a7fa7102c5973b3 */usr/lib/aarch64-linux-gnu/tegra/libnvomxilclient.so
cb725c103def5f9c8f0e25205b3b39eab4642721 */usr/lib/aarch64-linux-gnu/tegra/libnvidia-egl-wayland.so
df18e4c9c92699e292d1f497426df61ccacad58c */usr/lib/aarch64-linux-gnu/tegra/libnvcamerautils.so
331481e2895586a29de020f40a1a288e2fc8d58b */usr/lib/aarch64-linux-gnu/tegra/libnvrm_graphics.so
906df7fc550179fbce83765d1d1efc0de22f87ca */usr/lib/aarch64-linux-gnu/tegra/libnvosd.so
719a0debac1f25848100512d375b6c2618c270d9 */usr/lib/aarch64-linux-gnu/tegra/libnvddk_2d_v2.so
b205a2519abd648ce534b9f6586383f0b918e814 */usr/lib/aarch64-linux-gnu/tegra/libargus_socketclient.so
b6c677c3ba7be305f80bfc713195df1da2baf204 */usr/lib/aarch64-linux-gnu/tegra/libargus.so
429e26afbfaf88b8ace2e0fa35207a2499cec9e1 */usr/lib/aarch64-linux-gnu/tegra/libnvtestresults.so
de2f8e70a65061d1d3ab6535bb498fbc239a0b40 */usr/lib/aarch64-linux-gnu/tegra/libnvddk_vic.so
b75fb02b45008e421bf1076058f056119042b9e4 */usr/lib/aarch64-linux-gnu/tegra/libnvcamlog.so
e81dc8da523b3ec832e5cfa61b44128805c25035 */usr/lib/aarch64-linux-gnu/tegra/libnvparser.so
4847ac78e8361d4a4056381e38398a0495268879 */usr/lib/aarch64-linux-gnu/tegra/libnvmmlite_image.so
a194c123d27e1b9c85f0c090c2d51d9858e503e2 */usr/lib/aarch64-linux-gnu/tegra/libnvrm_gpu.so
99585b256e0fc1660821344bb4a496dcb68cd709 */usr/lib/aarch64-linux-gnu/tegra/libnvmm_parser.so
a54283f9ed83ef15d6bd433d97e6a53e73176219 */usr/lib/aarch64-linux-gnu/tegra/libnvmmlite_utils.so
b6dd8194edb967d2e77c38c865fd63b4affad27f */usr/lib/aarch64-linux-gnu/tegra/libnvmmlite.so
ddc4f2a90d4c0a031da8c46e5c75323642220799 */usr/lib/aarch64-linux-gnu/tegra/libnvcameratools.so
cde93d596b8976787dc3f5f5bff1a3ec49dc8a13 */usr/lib/aarch64-linux-gnu/tegra/libnvimp.so
ba26a771c2fb02419c01e400e15c20b86db04c77 */usr/lib/aarch64-linux-gnu/tegra/libnvfnet.so
718472ca1114f5072468cbb0da93ee70a372e72e */usr/lib/aarch64-linux-gnu/tegra/libscf.so
28dac9361b6fca4c80b4d33450c07d6567fda1e2 */usr/lib/aarch64-linux-gnu/tegra/libglx.so
1d46c7cb8d58753e87e28d4579d397e5d1b90e36 */usr/lib/aarch64-linux-gnu/tegra/libnvomx.so
e8a0341d4b85e6bdedb72a9cc2203fe573c2dd2a */usr/lib/aarch64-linux-gnu/tegra/libnvmm_contentpipe.so
ae214a66a4fe6ef66c15ea40a0a03dadb8055f72 */usr/lib/aarch64-linux-gnu/tegra/libnvtnr.so
34b21184e90bff5580d6896e47ce932057fd060d */usr/lib/aarch64-linux-gnu/tegra/libnvfnetstorehdfx.so
b5365dc951e955976310c01985b75210b62804e8 */usr/lib/aarch64-linux-gnu/tegra/libnvtvmr.so
8f47a0da6cc1e75b4ebd2ae33f83503249b6d5ee */usr/lib/aarch64-linux-gnu/tegra/libnveglstream_camconsumer.so
7a880dc6419dc8d5f28c63732dde20950b60dfa2 */usr/lib/aarch64-linux-gnu/tegra/libnvfnetstoredefog.so
e173e4825a0175b22766fb510fa4ec48c73e35f3 */usr/lib/aarch64-linux-gnu/tegra/libnvmmlite_video.so
3cfcf8707c18f4b2356be243ff7114a384803234 */usr/lib/aarch64-linux-gnu/tegra/libnvavp.so
1f1969af639eb8ac2f09e4fbeb7e76667cb59fd1 */usr/lib/aarch64-linux-gnu/tegra/libnvll.so
8334d9dc532a016b11624b026df6ea320d9180a3 */usr/lib/aarch64-linux-gnu/tegra/libnvdc.so
532626aba510a1b8d586c04b23011ad7f48ff351 */usr/lib/aarch64-linux-gnu/tegra/libnvcolorutil.so
d5c04359d52a3d594fa091a18653426262a7197a */usr/lib/aarch64-linux-gnu/tegra/libnvapputil.so
1a599b8a1f7e5abbbc8b3e51d3f48bcc5124f51a */usr/lib/aarch64-linux-gnu/tegra/libnvmm.so
340c90216c7662a2ae6df0d9f5db961c9c7b3752 */usr/lib/aarch64-linux-gnu/tegra/libnvos.so
cff74941214470fe164422c6e4e1dbae1f059937 */usr/lib/aarch64-linux-gnu/tegra/libnvmedia.so
5b8ddf3aa6dbab99f55bb22d1ec35318ecac77ef */usr/lib/aarch64-linux-gnu/tegra/libnvodm_imager.so
78341f6d30c9c8e700d85d5e0615c4681ef25b86 */usr/lib/aarch64-linux-gnu/tegra/libnvcam_imageencoder.so
d0cda03c9c8d38a6713f0d37a6608d8d65ec1466 */usr/lib/aarch64-linux-gnu/tegra/libnvwinsys.so
46e3f9ba88faa7ed6fffcf06fbcd1f50be9b35a3 */usr/lib/aarch64-linux-gnu/tegra/libnveglstreamproducer.so
3c48f3b81b1b7b333df5b261dc920736194e1f95 */usr/lib/aarch64-linux-gnu/tegra/libnvexif.so
a2f1e1439435d128b5f3596d6c3ab2333590f05a */usr/lib/aarch64-linux-gnu/tegra/libnvmm_utils.so
1653e5d266b7b030dc882d226b03f0c0157b4f3a */usr/lib/aarch64-linux-gnu/tegra/libnvtx_helper.so
7f8fb47183cbd3d4cacc5eb50fc7869aacdefe40 */usr/lib/aarch64-linux-gnu/libv4l/plugins/libv4l2_nvvideocodec.so
f7d960d08cca90fb7a24458d41fdcc43ce298cf2 */usr/lib/aarch64-linux-gnu/libv4l/plugins/libv4l2_nvvidconv.so

The files found in the list of nv_tegra_release are the hardware specific files which NVIDIA adds to the top of Ubuntu…everything else is Ubuntu-provided. With checksums in place you know those files provided by NVIDIA are valid/correct.

I do find it odd to see “/usr/lib/aarch64-linux-gnu/tegra/libnvidia-glcore.so.28.2.0” not in that file since this is obviously provided by NVIDIA…this is a bug by omission in the “/etc/nv_tegra_release” file. What do you see for:

sha1sum /usr/lib/aarch64-linux-gnu/tegra/libnvidia-glcore.so.28.2.0

You should see this checksum match:

a99adeba19b1b0b8a54ff3429742b01684374f0f

…if the checksum differs, then you’ll find a replacement in the driver package file “Linux_for_Tegra/nv_tegra/nvidia_drivers.tbz2”. You can always copy that file to “/” of your Jetson (for example use scp), and then run this to put drivers back in place without fear of issues:

cd /
sudo tar xvfj nvidia_drivers.tbz2

Since this file is part of nvidia_drivers.tbz2, and since “/etc/nv_tegra_release” omitted this, you found a bug :) Something for NVIDIA to add to the list of fixes for the next release.

You could patch nv_tegra_release. Try this:

sudo # echo "a99adeba19b1b0b8a54ff3429742b01684374f0f */usr/lib/aarch64-linux-gnu/tegra/libnvidia-glcore.so.28.2.0" >> /etc/nv_tegra_release

Now verify this file is included:

sha1sum -c /etc/nv_tegra_release | egrep libnvidia-glcore.so.28.2.0

You should see this:

/usr/lib/aarch64-linux-gnu/tegra/libnvidia-glcore.so.28.2.0: OK

Side note: The file nvidia_drivers.tbz2 is just a tar file and is added to the sample rootfs from the apply_binaries.sh step when flashing on command line. You can extract individual files from this since it is just an ordinary tar archive. My example of putting the whole file in “/” is overkill, but it is also able to recover any file without caring about what overwrote it…replacing a file with itself is harmless…replacing a mismatched file with the original is mostly mandatory for a correctly running system.

Thanks for your help: I did take your checksum and add it to the file, and verified that the version of glcore I have passes that test. Outputs are below:

administrator@tx2:~$ sha1sum /usr/lib/aarch64-linux-gnu/tegra/libnvidia-glcore.so.28.2.0
a99adeba19b1b0b8a54ff3429742b01684374f0f /usr/lib/aarch64-linux-gnu/tegra/libnvidia-glcore.so.28.2.0

administrator@tx2:/etc$ sha1sum -c /etc/nv_tegra_release | egrep glcore
/usr/lib/aarch64-linux-gnu/tegra/libnvidia-glcore.so.28.2.0: OK

I’ll try to somehow catch this in GDB or find a core dump, I guess…

Just some thoughts on something to check whenever you have issues after a new kernel build…

One thing to check is if your “uname -r” has changed…modules are searched for at “/lib/modules/$(uname -r)/”. If there was a module required which is in the old module directory, but missing in the new directory, then this may be part of the issue.

If you changed the configuration of the kernel, and the configuration change is to the base kernel (an integrated feature…not a module), then you might invalidate all modules and need to rebuild all modules. When changing modules you mostly don’t care creating a new “uname -r”…when changing integrated features which modules might depend on, then you do want a new “uname -r”. The CONFIG_LOCALVERSION is the way to customize this.

Not starting with the existing “/proc/config.gz” makes it extremely likely your “uname -r” needs to change and that the kernel won’t work.

If you are interested in adding debug packages in order to see symbols from inside of gdb or various crash report tools, then see:
https://wiki.ubuntu.com/Debug%20Symbol%20Packages

I did create a new kernel name “-huskybot-v0.1” following the instructions here: https://github.com/jetsonhacks/buildJetsonTX2Kernel and here: https://www.youtube.com/watch?v=fxWObd1nK4s

So the uname -r did change between versions. All that I did was add FireWire support, and I believe this menuconfig does use the existing .config as the base configuration when I re-compile, so nothing should be different.

Do you know where I can find the original L4T kernel image? I might just flash that one back on and see if the problem goes away. I’m pretty sure it will, but just want to check.

Looks like from the script the only thing to do to get a new kernel booting is to copy /usr/src/kernel/kernel-4.4/arch/arm64/boot/Image to /boot/Image.

EDIT: Found it in jetpack_downloads/Tegra186_Linux_R28.2.0_aarch64.tbz2. Will give it a try.

OK…now shown to be crashing with regular old kernel image!

I very much do not want to re-install the rootfs and destroy my configuration work. Any other ideas?

administrator@tx2:~$ uname -r
4.4.38-tegra

Apr 4 13:57:47 tx2 kernel: [ 77.516280] CPU: 1 PID: 3147 Comm: compiz Not tainted 4.4.38-tegra #1
Apr 4 13:57:47 tx2 kernel: [ 77.522743] Hardware name: quill (DT)
Apr 4 13:57:47 tx2 kernel: [ 77.526403] task: ffffffc06cb38000 ti: ffffffc1c02cc000 task.ti: ffffffc1c02cc000
Apr 4 13:57:47 tx2 kernel: [ 77.533907] PC is at 0x7f8b30a950
Apr 4 13:57:47 tx2 kernel: [ 77.537248] LR is at 0x7f8b30b090
Apr 4 13:57:47 tx2 kernel: [ 77.540586] pc : [<0000007f8b30a950>] lr : [<0000007f8b30b090>] pstate: 60000000
Apr 4 13:57:47 tx2 kernel: [ 77.547992] sp : 0000007ffe8a6e30
Apr 4 13:57:47 tx2 kernel: [ 77.551334] x29: 0000007ffe8a7280 x28: 0000000000000001
Apr 4 13:57:47 tx2 kernel: [ 77.556682] x27: 0000007ffe8a6f80 x26: 0000007ffe8a6f40
Apr 4 13:57:47 tx2 kernel: [ 77.562031] x25: 0000007f8bd7f000 x24: 0000007f8bd7fb08
Apr 4 13:57:47 tx2 kernel: [ 77.567394] x23: 00000000caf10000 x22: 0000007f8bd7fb0c
Apr 4 13:57:47 tx2 kernel: [ 77.572741] x21: 0000000000000000 x20: 0000000000586090
Apr 4 13:57:47 tx2 kernel: [ 77.578090] x19: 000000000053c090 x18: 0000007ffe8a7210
Apr 4 13:57:47 tx2 kernel: [ 77.583453] x17: 0000007f9c28d4c0 x16: 0000007f98042b80
Apr 4 13:57:47 tx2 kernel: [ 77.588799] x15: 0000007f9c62e000 x14: 0000000000000000
Apr 4 13:57:47 tx2 kernel: [ 77.594150] x13: ffffffffffffffff x12: 0000000000000005
Apr 4 13:57:47 tx2 kernel: [ 77.599512] x11: 0000000000000028 x10: df7854cf5f77ef56
Apr 4 13:57:47 tx2 kernel: [ 77.604860] x9 : f561b7854eed6aae x8 : 11af0b836ee1aede
Apr 4 13:57:47 tx2 kernel: [ 77.610215] x7 : 00000000ffffffff x6 : 0000000000000001
Apr 4 13:57:47 tx2 kernel: [ 77.615578] x5 : 0000007ffe8a6f80 x4 : 00000000000030f1
Apr 4 13:57:47 tx2 kernel: [ 77.620926] x3 : 00000000beef30f3 x2 : 0000000000585090
Apr 4 13:57:47 tx2 kernel: [ 77.626275] x1 : 0000000000001804 x0 : 0000000000000768
Apr 4 13:57:47 tx2 kernel: [ 77.631642]
Apr 4 13:57:47 tx2 kernel: [ 77.633135] Library at 0x7f8b30a950: 0x7f8a397000 /usr/lib/aarch64-linux-gnu/tegra/libnvidia-glcore.so.28.2.0
Apr 4 13:57:47 tx2 kernel: [ 77.643056] Library at 0x7f8b30b090: 0x7f8a397000 /usr/lib/aarch64-linux-gnu/tegra/libnvidia-glcore.so.28.2.0
Apr 4 13:57:47 tx2 kernel: [ 77.652983] vdso base = 0x7f9c62d000
Apr 4 13:57:47 tx2 kernel: [ 78.158105] unity_support_t[3157]: unhandled level 2 translation fault (11) at 0x00000afc, esr 0x92000046
Apr 4 13:57:47 tx2 kernel: [ 78.167684] pgd = ffffffc0732fe000
Apr 4 13:57:47 tx2 kernel: [ 78.171098] [00000afc] *pgd=00000000f32d8003, *pud=00000000f32d8003, *pmd=0000000000000000
Apr 4 13:57:47 tx2 kernel: [ 78.179473]

It sure doesn’t like libnvidia-glcore.so.28.2.0…but that could be something trying to access a different version, and not the lib file itself. This is direct hardware access, and so the kernel and libs must be in sync so far as how arguments are passed between the two of them. Any mismatch, regardless of which one is incorrect, will cause this.

FYI, using menuconfig with the existing .config only applies if you put the correct starting config in place prior to this and never changed anything. The moment anything at all changes the assumption of preexisting config being valid loses merit.

Do you have the original “Linux_for_Tegra/rootfs/” content from the most recent flash? You could manually run the “sudo ./apply_binaries.sh” from the “Linux_for_Tegra/” directory and be certain all of the modules and binaries are in place within that rootfs. Then recursively copy the content of the “rootfs/lib/modules/4.4.38-tegra/*” to the TX2’s “/lib/modules/4.4.38-tegra/” and you’d be sure they are correct. Do beware though that if there are symbolic links in “rootfs/lib/modules/4.4.38-tegra/” that you will want to avoid copying those.

From that same prevous R28.2 “Linux_for_Tegra/” you can also copy the “Linux_for_Tegra/nv_tegra/nvidia_drivers.tbz2” to the Jetson’s “/” and unpack it as root to be certain those are all correct even if “/etc/nv_tegra_release” is missing content. After copy to the Jetson:

cd /
sudo tar xvfj nvidia_drivers.tbz2

The problem with this is that the Jetson must survive to at least command line text prompt. Since you are experimenting with kernels is it safe to assume you have a serial console? If so, then you might be able to run on a rescue SD card to do this. SSH can easily handle this without a GUI as well if networking survives.

Not sure it helps, but I’ve seen similar compiz/nv-gl faults when user was not belonging to video group:

groups $USER
nvidia : nvidia adm dialout cdrom floppy sudo audio dip <b>video</b>

It doesn’t seems to be your case as previous kernel seems working fine, but you may also try to clear compiz cache. Logging as another user, or from ssh, you may try:

sudo rm -r /home/<your_user>/.cache/compizconfig-1

.

I know this is a few months old, but the answer from Honey_Patouceoul was correct! You have to be a member of the “video” group, else you can’t log in.