L4T Ubuntu - A fully featured linux on your switch

switchroot.png

L4T Ubuntu
Intro
L4T Ubuntu is a version of Linux based on nvidia's linux for tegra project. It uses a different kernel compared to previous releases which allows it to use features not yet in mainline. Such as audio, docking support and vulkan.

Join our discord: https://discord.gg/53mtKYt

We have a wiki !
To facilitate our work we will only update our wiki from now on in order to avoid multiple outdated references, please refer to the following link instead of this page

https://wiki.switchroot.org/en/Linux/Ubuntu-Install-Guide

Credits

Bylaws,
Langerhans,
Ave,
Natinusala,
CTCaer(most of the hard stuff),
Gavin_Darkglider,
DanielOgorchock(Joycon drivers/joycond),
stary2001 (reboot2payload),
NVIDIA,
Azkali
Everyone else in switchroot - more info on that in the future.
 
Last edited by azkali,
Does anyone have a complete guide on how to check out the complete kernel source and build it? I used the script on the Switchroot gitlab but it was still missing some files and would not build. For some reason my USB Ethernet adapter doesn't get detected and I'd also like to try some other things with custom kernel builds.
 
Does anyone have a complete guide on how to check out the complete kernel source and build it? I used the script on the Switchroot gitlab but it was still missing some files and would not build. For some reason my USB Ethernet adapter doesn't get detected and I'd also like to try some other things with custom kernel builds.

That is my script, and it works fine, you are talking about the dts files being missing, use make tegra-dtstree="../hardware/nvidia/" and it should work. for some reason it doesnt see the files, so you have to define where they are. I explained this in the issue on gitlab.
 
When I put it in the dock, nothing happens. It still shows the image on the Switch screen.
Any ideas?
I would login from a remote system with SSH, and execute 'xrandr' as the user once undocked, and later when docked. The new screen should appear in the output. You could also activate the HDMI output with xrandr manually, but scripts are supposed to do that automatically.

Most likely reason for the HDMI output not getting up might be no power supply connected to the dock.
 
  • Like
Reactions: lordelan
Alright guys. Does anybody know a good method to resize the whole top menu bar to make it bigger?
The side menu bar with the launch icons can be adjusted a bit in settings -> Display but since the top menu bar is far more important for using it in handheld mode with touch only we should try to get that a bit bigger.
I found this thread but it seems a bit messy:
https://ubuntuforums.org/showthread.php?t=2349212
 
That is my script, and it works fine, you are talking about the dts files being missing, use make tegra-dtstree="../hardware/nvidia/" and it should work. for some reason it doesnt see the files, so you have to define where they are. I explained this in the issue on gitlab.

I re-ran the script and built as you said. I got this error during my build:

Code:
  MK_FW   firmware/tegra21x_xusb_firmware.gen.S
make[1]: *** No rule to make target '/lib/firmware/brcm/BCM4356A3.hcd', needed by 'firmware/brcm/BCM4356A3.hcd.gen.o'.  Stop.
make[1]: *** Waiting for unfinished jobs....
  MK_FW   firmware/brcm/BCM4356A3.hcd.gen.S
Makefile:1025: recipe for target 'firmware' failed
make: *** [firmware] Error 2
make: *** Waiting for unfinished jobs....
 
I re-ran the script and built as you said. I got this error during my build:

Code:
  MK_FW   firmware/tegra21x_xusb_firmware.gen.S
make[1]: *** No rule to make target '/lib/firmware/brcm/BCM4356A3.hcd', needed by 'firmware/brcm/BCM4356A3.hcd.gen.o'.  Stop.
make[1]: *** Waiting for unfinished jobs....
  MK_FW   firmware/brcm/BCM4356A3.hcd.gen.S
Makefile:1025: recipe for target 'firmware' failed
make: *** [firmware] Error 2
make: *** Waiting for unfinished jobs....

Those are required firmware files, they arent included with the kernel sources, which is what the script downloads, and constructs into a buildable kernel tree.

the BCM4356A3.hcd is from the switch firmware, but you can get it from lakka github.
the tegra21x_xusb_firmware is in the bsp download for the jetson nano.You can also get it from the lakka github.
 
I think I found the correct link:

https://github.com/lakka-switch/Lak...evices/Switch-L4T/filesystem/usr/lib/firmware

Edit: Where do I put the files in the build tree?

I put the Broadcom firmware in the system /lib/firmware/brcm folder and it looks like it's working. I also had to make a copy of it named BCM.hcd and find a text file online. Is this correct?

https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=908724

Got an Image to build, but it doesn't appear to boot. Been at a blank screen for 5 minutes now.
 
Last edited by CalcProgrammer1,
Use a download manager such as aria2c or JDownloader.
Using chrome I right clicked the download and slected resume after it failed (a couple of times) but it downloaded eventually.

--------------------- MERGED ---------------------------

Okay I'm getting there, OTG doesn't seem to work in handheld mode, at least my crappy C to USB 3.1 Anker cable is not working.

In docked mode I got my iPazzPort controller working, but the right side of the screen is corrupted:

Anyone else noticed this or know how to fix?

Thanks.
 

Attachments

  • l4t-switch-corrupt.jpg
    l4t-switch-corrupt.jpg
    196.1 KB · Views: 181
Using chrome I right clicked the download and slected resume after it failed (a couple of times) but it downloaded eventually.

--------------------- MERGED ---------------------------

Okay I'm getting there, OTG doesn't seem to work in handheld mode, at least my crappy C to USB 3.1 Anker cable is not working.

In docked mode I got my iPazzPort controller working, but the right side of the screen is corrupted:

Anyone else noticed this or know how to fix?

Thanks.
Try using a different monitor.
 
I think I found the correct link:

https://github.com/lakka-switch/Lak...evices/Switch-L4T/filesystem/usr/lib/firmware

Edit: Where do I put the files in the build tree?

I put the Broadcom firmware in the system /lib/firmware/brcm folder and it looks like it's working. I also had to make a copy of it named BCM.hcd and find a text file online. Is this correct?

https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=908724

Got an Image to build, but it doesn't appear to boot. Been at a blank screen for 5 minutes now.

try using the dtb from l4t update 1.3. I couldnt get the dtb to work, until i rebuilt the bootchain with the latest sources. something changed in the dtb source for android I think that wasnt supported in coreboot before.
 
Is there anyway to use the headphone jack on the switch while docked for audio output?

yes, you need to edit the dock-handler script, and remove the pactl commands, so it doesnt disable internal audio when docked. Or you could just install pavucontrol, and change output device configuration.
 
yes, you need to edit the dock-handler script, and remove the pactl commands, so it doesnt disable internal audio when docked. Or you could just install pavucontrol, and change output device configuration.
Thank you, very useful comment, though where is the dock-handler script located?
 

Site & Scene News

Popular threads in this forum