Jetson Nano compatibility issues with Ubuntu 20.04

Jetson Module
Jetson Nano

Jetson Software
JetPack 4.6.1

SDK Manager Version
1.9.3

Problem Description
I used sdkmanager to flash Ubuntu 18.04 onto a Jetson Nano (P3448-0002) 16GB eMMC module. After manually updating it to Ubuntu 20.04, a kernel error occurred. How can I resolve this?

Error Log

[12.243425]Unable to handle kernel paging request at virtual address dead000000000160
[12.251539]Mem abort info:
[12.254393]ESR = 0x96000004
[12.257674]Exception class =DABT(current EL),IL =32 bits
[12.263853]SET =0,FnV =0
[12.267038]EA=0,S1PT =0
[12.270296]Data abort info:
[12.273385]ISV=0,ISS =0x00000004
[12.277333]CM =0,WnR =0
[12.280343] [dead000000000160] address between user and kernel address ranges
[12.287531] Internal error:0ops:96000004【#1]PREEMPT SMP
[12.293125]Modules linked in : userspace_alert binfmt_misc nvgpu ip_tables x_tables
[12.300874]CPU: 3 PID:1734 Com:kworker/3:2 Not tainted 4.9.253-tegra #1
[12.307861]Hardware name:NVIDIA Jetson Nano Deveioper Kit(DT)
[12.313897]Workgueue: events reed ta handlen
[12.318277]task: ffffffcof789f000 task.stack: ffffffc0f4c14000
[12.324220]PC is at__ll_sc__atomic_sub+0x4/0x18
[12.328855]LR is at sauashfs bh to actor+0x1d8/0x200
[12.333922]pc:[ffffff800845684c>]	lr:[<ffffff8008367790>] pstate: 20400045
[12.341342]sp :ffffffc0f4c17c60
[12.344665]x29:ffffffc0f4c17c60 		x28:0000000000000000
[12.350013]x27:00000000000001ba 	x26:0000000000000000
[12.355360]x25:0000000000000000 	x24:0000000000000000
[12.360706]x23:ffffffc0e3494400 		x22:ffffffc0f293f900
[12.366051]x21:0000000000000074 	x20:0000000000000000
[12.371398]x19:0000000000000074 	x18:0000000000000000
[12.376746]x17:0000000009ea2947 	x16:0000000000000000
[12.382092]x15:0000000000000196 	x14:0000000000013bd0
[12.387438]x13:000000000001a306 	x12:0000000000000400
[12.398133]x11:0000000000000400 	x10:0000000000000a10
[12.398133]x9:ffffffc0f4c17d10 		x8:ffffffc0f789fa70
[12.403481]x7:0000000000000400 	x6:0000000000000400
[12.408327]x5:0000000000000400 	x4:0000000000000004
[12.414175]x3:0000000000000002 	x2:0000000000000100
[12.419521]x1:dead000000000160 	x0:0000000000000001
[12.429855]
[12.426383]Process kworker/3:2(pid: 1446,stack limit = 0xffffffc0f4c14000)
[12.433521]Call trace:
[12.435976][<ffffff800845684c>]	__ll_sc_atomic_sub+0x4/0x18
[12.443220][<ffffff8008362708>]	squashfs_process_blocks+0x2c8/0x388
[12.451183][<ffffff80083627e8>]	read_wq_handler+0x20/0x30
[12.458293][<ffffff80080d40ac>]	process_one_work+0x1e4/0x4b0
[12.465680][<ffffff80080d43c8>]	worker_thread+0x50/0x4c8
[12.472738][<ffffff80080db09c>]	kthread+oxec/0xf0
[12.479170][<ffffff80080838a0>]	ret_from_fork+0x10/0x30
[12.486110]	---[ end trace 49e39e104c341bc6 ]---
[12.499395]Unable to handle kernel paging request at virtual address ffffffffffffffd8
[12.508977]Mem abort info:
[12.513398]ESR = 0x96000005
[12.518070]Exception class =DABT (current EL),IL =32 bits
[12.525617]	SET =0,FnV =0
[12.530289]	EA=0,S1PT =0
[12.535024]Data abort info:
[12.539493]	ISV=0,ISS =0x00000005
[12.544907]	CM =0,WnR =0
[12.549439]swapper pgtable:4k pages,39-bit WAs,pgd =ffffff800a200000
[12.557818] [ffffffffffffffd8] *pgd=0000000000000000,*pud=0000000000000000
[12.566400] Internal error:0ops:96000005【#1]PREEMPT SMP
[12.573573]Modules linked in : userspace_alert binfmt_misc nvgpu ip_tables x_tables
[12.582917]CPU: 3 PID:1446 Comm:kworker/3:2 Tainted: G	D		 	4.9.253-tegra #1
[12.592728]Hardware name:NVIDIA Jetson Nano Deveioper Kit(DT)
[12.600388]task: ffffffcof789f000 task.stack: ffffffc0f4c14000
[12.607961]PC is at_kthread_data+0x24/0x30
[12.613783]LR is at wq_worker_sleeping+0x20/0xd0
[12.620117]pc:[ffffff800845684c>]	lr:[<ffffff8008367790>] pstate: 804000c5
[12.629156]sp :ffffffc0f4c17890
[12.634122]x29:ffffffc0f4c17890 		x28:ffffffc0f789f000
[12.641092]x27:ffffffc0fa6f0000 		x26:0000000000000000
[12.648038]x25:ffffff80080eaf14 		x24:ffffffc0feffed80
[12.654988]x23:ffffffc0e3494400 		x22:ffffff8009836000
[12.661929]x21:ffffff8009e88000		x20:ffffff8009842000
[12.668856]x19:ffffffc0f789f000		x18:00000000fffffff6
[12.675791]x17:0000000009ea2947 	x16:0000000000000000
[12.682728]x15:0000000000000007  	x14:0000000000000001
[12.689655]x13:0000000000000019  	x12:0000000000000033
[12.696579]x11:000000000000004c 	x10:000000000000019
[12.703473]x9:0000000000000000 	x8:0000000002d8226b
[12.710348]x7:0000000000000000 	x6:0000000000000400
[12.717193]x5:0000000000006400 	x4:0000000002d8226b
[12.724012]x3:0000000000000002 	x2:000000073a2400a0
[12.730809]x1:ffffffc0feffed80 		x0:0000000000000000
[12.737590]
[12.740520]Process kworker/3:2(pid: 1446,stack limit = 0xffffffc0f4c14000)
[12.749111]Call trace:
[12.753021][<ffffff80080dbc94>] 	kthread_data+0x24/0x30
[12.759700][<ffffff8008f68220>] 	__schedule+0x3e0/0x7d0
[12.766374][<ffffff80080eaf14>] 	do_task_dead+0x74/0x78
[12.773044][<ffffff80080b8838>] 	do_exit+0x710/0xa88
[12.779453][<ffffff800808c1a4>] 	die+0x194/0x198
[12.785526][<ffffff80080a206c>] 	__do_kernel_fault+0x144/0x218
[12.792814][<ffffff80080a2184>]	do_bad _area+0x44/0x90
[12.799410][<ffffff80080a26ec>]	do_translation_fault+0x54/0x80
[12.806802][<ffffff8008080954>]	do_mem_abort+0x54/0xb0
[12.813507][<ffffff8008082904>]	el1 _da+0x24/0xbc
[12.819696][<ffffff8008362708>]	squashfs_process_blocks+0x2c8/0x388
[12.827552][<ffffff80083627e8>]	read_wq_handler+0x20/0x30
[12.834548][<ffffff80080d40ac>]	process_one_work+0x1e4/0x4b0
[12.841807][<ffffff80080d43c8>]	worker_thread+0x50/0x4c8
[12.848714][<ffffff80080db09c>]	kthread+oxec/0xf0
[12.855018][<ffffff80080838a0>]	ret_from_fork+0x10/0x30
[12.861857]	---[ end trace 49e39e104c341bc7 ]---
[12.875209]	note: kworkde/3:2[1446]	exited with preempt_count 2
[12.882680]	Fixing recursive fault but reboot is needed!

The original Nano was never updated to work with Ubuntu 20.04. Manual update will break parts of it. I am sad to say that there is no support for 20.04, although there have been a number of people who have had some success doing this with effort. I think the biggest problem for those people is that they can no longer use the GPU. Most Linux systems use a discrete GPU (dGPU) on the PCI bus, but Jetsons use an integrated GPU (iGPU) which is directly wired to the memory controller; a side-effect is that the regular GPU drivers won’t work on a Jetson. The driver itself is basically a dynamically loadable module going into the X server and won’t load on the updated servers since it was never ported. Newer hardware has more recently switched to the mainline Linux kernel and some drivers which are more portable, but that did not exist in the old TX1 days (the original Nano is a TX1 small form factor).

Okay, thank you for your reply.