L4T Ubuntu - A fully featured linux on your switch

switchroot.png

L4T Ubuntu 3.4.0
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.

Beware, using high clocks in handheld mode will degrade your batteries capacity a lot faster than at stock clocks

If you can't install an application check this thread, and ask all questions there
https://gbatemp.net/threads/l4t-ubuntu-applcation-install-guides.537579/

https://discord.gg/N9PPYXjWMY

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

3.4.0 update file listed below With the 3.0+ updates. If doing fresh install, install 3.4.0 image.


Big Thanks to CTCaer for 3.4.0, for fixing the final issues in Ubuntu/Linux kernel and all the testers that helped him.

Features

  • Full USB PD/OTG/OTG Docks
  • Bluetooth (both controllers and audio)
  • Full Joycon Support(Excluding NFC, and IRcamera)
  • Nvidia GPU drivers - Vulkan and OpenGL
  • Audio - Headphones, speakers and over HDMI when docked.
  • Touchscreen(more fixes)
  • Display
  • WiFi(sleep fixes/stability fixes)
  • CPU frequency scaling - The CPU scales from 200mhz to 1.7ghz (what switch is binned for) depending on the load its under. Fans are adjusted to account for this
  • Full sdcard speed
  • Hardware video acceleration when using the built in videos app (means you can watch videos without battery draining massively)
  • Overclocking
  • LP0 Sleep mode
  • IMU/Ambiant Light sensor support
  • reboot2payload
  • Minerva Memory Training
  • Support for Moonlight-QT
  • Initramfs updates(fix partition resize, add boot logo, and error screens)
Prerequisites
  • Minimum of 8 GB.
Downloads
Torrent Links can be found here:
https://torrents.switchroot.org/ubuntu/

Updates for previous 3.0+ installs. 3.4.0 link below.

https://download.switchroot.org/ubuntu/switchroot-ubuntu-3.4.0-update_only-2021-07-23.7z
1. Remove l4t-ubuntu folder and bootloader\ini\01-ubuntu.ini from fat32 partition on sdcard.
2. Extract zip to fat32 partition on sdcard.(if you have no space, try removing all ubuntu related files from fat32 partition on sdcard, and try again.)
3. Dump joycon pairing info in hekate.(Only needs to be done if you havnt already done this)
4. Boot.

How to install:
  1. Download the image (standard non cuda is probably what you want) you want from the downloads section.
  2. Partition with hekate, make sure to leave enough room on fat32 to extract chosen image.
  3. Extract 7z to fat32 partition, now labeled SWITCHSD
  4. Flash image in partition manager in hekate to linux partition.
  5. Go to NYX tools, and dump joycon pairing data, with joycons connected to console, after being paired in hos.
  6. Launch ubuntu through hekate.
  7. Wait for around 2-4 minutes while it initially loads.
  8. Enjoy, you now have fully featured Ubuntu on your switch!
Notes:
  • Pair procons by opening the bluetooth menu in settings and pressing the + button in the bottom left corner. Then press the sync button on the controller and select its name in the pairing window.
  • To update the system run "sudo apt update", "sudo apt upgrade". This will apply all switch and ubuntu updates aside from kernel updates, they will be posted here if ever needed.
  • CPU/GPU/Fan profiles and Overclocking are now handles in NVPmodel.
  • Disabled sandboxing in Chromium in order to enable GPU acceleration
    Night and day difference. Existing users can add --no-sandbox to their desktop shortcut.
Ubuntu Bionic 3.4.0 Short Changelog:
- Better performances in many scenarios (As always that should affect apps/games/emus/etc)
- Significant better deep sleep. (Measured at 582 hours. 440% better).
- Faster wake up from sleep.
- Saved 240MB ram (fb and active file page pool, aka always used pool)
- Memory remapping 800%-2000% speed up. Mostly used by emulators and VMs (and lot in android).
- Some other memory optimizations, plus enabled huge ram pages
- Faster kernel and OS boot.
- Fixed tearing issues for NVDEC/NVENC. (video hw accel)
- Lower latency for frame end calcs for builtin display
- Fixed Hori pads for joycond
- Fixed an issue where it would make railed jc to disconnect on rumble
- Joycon/Procon rumble was improved and intensity tuned for better user experience
- Kernel now uses the proper display panel init/deinit by checking panel id
- Improved dock/undock script
- Touch stays enabled now in dock mode. Users that use docks that do not cover the screen can use it as alternative input.
- Added low ram protection. Now instead of hanging for minutes it will only stutter for seconds until oom occurs and recovers ram
- Better seamless display on boot
- uenv.txt changed, read uenv_readme.txt. It's simple to transfer over custom settings.
- Reboot action can now be defined in new uenv.txt. Reboot back into Linux by changing `reboot_action=` from `bootloader` to `via-payload`.

Apps Changes:
- Full video HW decoding via new SMPV Player app (also supports youtube links)
- Full video HW encoding via ffmpeg-l4t
- Added L4T-Megascript app
You can get or build various essential stuff, apps or emulators with a single click. All configured and optimized for Switch.
- Nvpmodel was updated to include Battery charging protection limits options
Useful when you are constantly docked and want to protect battery's life.
Limit gets saved and applied on boot.
Reminder that discharging can't happen when plugged in. Even when charging is off, usb power is used to supplement system.
So you need to discharge first if you want the battery % to go inside the limit.
That also disables charging in sleep in order for the feature to work.
If you reboot/shutdown, it gets disabled and re-enabled at the next L4T boot.
As always the source is public and all L4T based projects for Switch will benefit (L4T linux distros/Lakka/Android)



Sources
They can all be found at https://gitlab.com/switchroot with the other kernel repos on http://nv-tegra.nvidia.com

Use these scripts if you want to build your own kernel: https://gitlab.com/switchroot/kernel/l4t-kernel-build-scripts/tree/test


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,

pcwizard7

Well-Known Member
Member
Joined
Aug 2, 2013
Messages
1,409
Trophies
0
XP
1,678
Country
Australia
I just got a switch with trinket m0 in it off of ebay. It was bricked as in OFW would not ever boot up due to the seller's choi downgrade from 7.0.1 to 5.1
I did testing and stuff. I took my sd card from my other switch and guess what... It did booted up ubuntu nicely.....
actually, It is great tool to rule out any hardware issues.

I reflashed the mod chip then setup autoboot to just boot ubuntu :)


could you use hekate to bypass the fuse count check then upgrade the fw to match the fuse count? or rebuild the nand?

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

Hey, heads up... I have an official nintendo 128gb MicroSD and if you try flashing the image it apparently doesn't seem to work. I had to use my old 3DS' 16gb and it worked just fine. If anyone knows why the 128gb doesn't work, please tell me. (The SD is real, not fake)

Nintendo has switch branded sd cards there really re badge scandisk sd card. make sure its fat32 use guiformat32 to format it and try again
 

mattyxarope

Well-Known Member
Member
Joined
Jan 15, 2019
Messages
544
Trophies
0
XP
1,916
Country
United States
Bylaws could you explain how the controllers work once they're both connected - what the device name for them collectively is, for example? I've got this working but can't quite get the controllers to register and I don't have a keyboard to test either.

AV5nQTZ.png
 

Vigg

Member
Newcomer
Joined
Jul 5, 2018
Messages
22
Trophies
0
Age
23
XP
295
Country
Netherlands
If you have 2 SD cards, and an official Nintendo dock, install L4T to two SD cards. Boot Linux on your Switch, and insert your 2nd SD into a USB SD card reader, and plug that into your dock's USB port. Now install/use gparted on your Switch, to resize/move the ext4 and fat32 partions on your 2nd SD card. This resized SD card will be your full, permanent, L4T + Lakka card (this is how I got Lakka and L4T on the same SD card).
Hey I shrinked the ext4 partition and added a fat32 partition, however hekate will still boot from the 500mb fat partition. When I remove this partition hekate will boot from the fat32 partition so I can select Lakka, but Lakka doesnt boot. Also I can't boot ubuntu when I add it to the bootloader. Just like lakka a black screen. But when I recreate the 500mb Fat partition ubuntu works but lakka wont. Does anyone know how to dualboot ubuntu and lakka?? Because your explenation doesn't work for me or I missed something.
 
Last edited by Vigg,

Mouser X

Well-Known Member
Member
Joined
Aug 26, 2009
Messages
101
Trophies
0
XP
546
Country
United States
Hey I shrinked the ext4 partition and added a fat32 partition, however hekate will still boot from the 500mb fat partition. When I remove this partition hekate will boot from the fat32 partition so I can select Lakka, but Lakka doesnt boot. Also I can't boot ubuntu when I add it to the bootloader. Just like lakka a black screen. But when I recreate the 500mb Fat partition ubuntu works but lakka wont. Does anyone know how to dualboot ubuntu and lakka?? Because your explenation doesn't work for me or I missed something.
Added? You don't need to add a partition. It's already there. Move and resize the ext4 partition to the end of the SD card, and then resize the existing fat32 parition (both Lakka and L4T/Ububtu boot from this fat32 partition, so it must be first) to fill whatever is left after the ext4 partition has been resized and moved. Also, you must be running L4T v1.2 or higher, because bylaws updated L4T to be dual-bootable with Lakka in that version.
 

Guivas73

Well-Known Member
Member
Joined
Aug 8, 2016
Messages
235
Trophies
0
XP
878
Country
United States
So I'm completely new to linux still figuring out the process and for retroarch once it installs how do you open it? Is it a file I'm looking for or something?
 

halcyonknight

Member
Newcomer
Joined
Jun 14, 2018
Messages
14
Trophies
0
Age
27
XP
128
Country
United States
Tried searching to no avail. Got everything running without too much trouble, but for some reason I get some pretty bad screen glitching/flickering while it's in the dock, but switching to 720p fixes it. Any idea why it's happening?
 

Attachments

  • IMG_20190609_213816.jpg
    IMG_20190609_213816.jpg
    1.1 MB · Views: 169
  • IMG_20190609_213837.jpg
    IMG_20190609_213837.jpg
    796.9 KB · Views: 186

ZeroFX

why?
Member
Joined
Jun 18, 2018
Messages
940
Trophies
0
Location
napaJ
XP
2,418
Country
Japan
Tried searching to no avail. Got everything running without too much trouble, but for some reason I get some pretty bad screen glitching/flickering while it's in the dock, but switching to 720p fixes it. Any idea why it's happening?
i rarely get this in my monitor, i fix by undocking and re docking, but thats only my case, pretty rare.
 

ZeroFX

why?
Member
Joined
Jun 18, 2018
Messages
940
Trophies
0
Location
napaJ
XP
2,418
Country
Japan
Just Successfully booted L4T Gentoo for the first time. A few simple fixes, and making sure audio and dock configs are in place, and you guys can have fun with it. That being said, I have not tested vulkan, or openmax yet, but it seems I have the basic nvidia driver working.
Great, is it another build that you're working or is the one that you released? I've just finished downloading, gonna take a look.
 
General chit-chat
Help Users
    A @ abraarukuk: :rofl2: