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,
OSX should beable to read fat32. Ive done it plenty of times.

I'm not sure why but it doesn't in this case. Windows does though so I used that. I also put the SX loader into the FAT32 along with Hekate so I can chain-load with my normal dongle (SX>Hekate>L4T), works fine.
 
Last edited by stewacide,
It's on by default
With this config?
Code:
#    $OpenBSD: sshd_config,v 1.101 2017/03/14 07:19:07 djm Exp $

# This is the sshd server system-wide configuration file.  See
# sshd_config(5) for more information.

# This sshd was compiled with PATH=/usr/bin:/bin:/usr/sbin:/sbin

# The strategy used for options in the default sshd_config shipped with
# OpenSSH is to specify options with their default value where
# possible, but leave them commented.  Uncommented options override the
# default value.

#Port 22
#AddressFamily any
#ListenAddress 0.0.0.0
#ListenAddress ::

#HostKey /etc/ssh/ssh_host_rsa_key
#HostKey /etc/ssh/ssh_host_ecdsa_key
#HostKey /etc/ssh/ssh_host_ed25519_key

# Ciphers and keying
#RekeyLimit default none

# Logging
#SyslogFacility AUTH
#LogLevel INFO

# Authentication:

#LoginGraceTime 2m
#PermitRootLogin prohibit-password
#StrictModes yes
#MaxAuthTries 6
#MaxSessions 10

#PubkeyAuthentication yes

# Expect .ssh/authorized_keys2 to be disregarded by default in future.
#AuthorizedKeysFile    .ssh/authorized_keys .ssh/authorized_keys2

#AuthorizedPrincipalsFile none

#AuthorizedKeysCommand none
#AuthorizedKeysCommandUser nobody

# For this to work you will also need host keys in /etc/ssh/ssh_known_hosts
#HostbasedAuthentication no
# Change to yes if you don't trust ~/.ssh/known_hosts for
# HostbasedAuthentication
#IgnoreUserKnownHosts no
# Don't read the user's ~/.rhosts and ~/.shosts files
#IgnoreRhosts yes

# To disable tunneled clear text passwords, change to no here!
#PasswordAuthentication yes
#PermitEmptyPasswords no

# Change to yes to enable challenge-response passwords (beware issues with
# some PAM modules and threads)
ChallengeResponseAuthentication no

# Kerberos options
#KerberosAuthentication no
#KerberosOrLocalPasswd yes
#KerberosTicketCleanup yes
#KerberosGetAFSToken no

# GSSAPI options
#GSSAPIAuthentication no
#GSSAPICleanupCredentials yes
#GSSAPIStrictAcceptorCheck yes
#GSSAPIKeyExchange no

# Set this to 'yes' to enable PAM authentication, account processing,
# and session processing. If this is enabled, PAM authentication will
# be allowed through the ChallengeResponseAuthentication and
# PasswordAuthentication.  Depending on your PAM configuration,
# PAM authentication via ChallengeResponseAuthentication may bypass
# the setting of "PermitRootLogin without-password".
# If you just want the PAM account and session checks to run without
# PAM authentication, then enable this but set PasswordAuthentication
# and ChallengeResponseAuthentication to 'no'.
UsePAM yes

#AllowAgentForwarding yes
#AllowTcpForwarding yes
#GatewayPorts no
X11Forwarding yes
#X11DisplayOffset 10
#X11UseLocalhost yes
#PermitTTY yes
PrintMotd no
#PrintLastLog yes
#TCPKeepAlive yes
#UseLogin no
#PermitUserEnvironment no
#Compression delayed
#ClientAliveInterval 0
#ClientAliveCountMax 3
#UseDNS no
#PidFile /var/run/sshd.pid
#MaxStartups 10:30:100
#PermitTunnel no
#ChrootDirectory none
#VersionAddendum none

# no default banner path
#Banner none

# Allow client to pass locale environment variables
AcceptEnv LANG LC_*

# override default of no subsystems
Subsystem    sftp    /usr/lib/openssh/sftp-server

# Example of overriding settings on a per-user basis
#Match User anoncvs
#    X11Forwarding no
#    AllowTcpForwarding no
#    PermitTTY no
#    ForceCommand cvs server
Sorry but ssh server is installed, becasu deactivated.
 
Bylaws, I notice the config generated by defconfig in your Linux 4.9 repo is different than the shipped config in your image (/proc/config.gz). Are you doing any tweaks other than building from the repos? Is all the code pushed? Can you confirm you're building on all of the default branches in your gitlab repos? Feel free to pm me with a discord if it's easier to chat there. thanks
 
I'm pretty sure I havent seen this question asked as I've kept up with this thread.

Can a pro controller be used in the same way as the joycons? I have it synced under settings, but I can't seem to do anything with it. I can't use my joycons because my "r" button doesn't work on my joycons.

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

Where is the Ubuntu installation point at swtich
It's on its own partition or sd card.
 
Seems like the back USB port doesn't work, at least the Gigabit adapter I connected doesn't seem to be recognized there. Only on the "front" USB ports.

It works fine. The kernel just doesn't have the driver for Ethernet. The kernel is very slim and bundles in specified modules. That's why USB mass storage was in the recent update. If you post what model your adapter is, the developer can add that to a list to compile into the next update. This won't be an issue once we can run mainline.
 
We need to figure out how to put the Ubuntu installation on an SSD and use it that way.

What do you mean? via USB? That would be interesting. The problem comes from hekate/coreboot possibly only booting from internal MMC.

I wonder if we could boot to mmc for long enough to mount the USB drive and then load rootfs from there.
 
Maybe a dumb question but how do you guys turn off switch using Linux? I tried clicking the gear in the upper right corner of the screen several times but it is unresponsive. So far, I just hold power button for a few seconds and then the switch turns off. Am I doing something bad? Is there a command line that turns off the system?

Thanks!
 
Maybe a dumb question but how do you guys turn off switch using Linux? I tried clicking the gear in the upper right corner of the screen several times but it is unresponsive. So far, I just hold power button for a few seconds and then the switch turns off. Am I doing something bad? Is there a command line that turns off the system?

Thanks!

You just have to be precise. The button works fine. You can also run `Shutdown` from the application launcher.
 
  • Like
Reactions: achoissoumsaco
You just have to be precise. The button works fine. You can also run `Shutdown` from the application launcher.

Thanks. I accidentally closed the button near the power button and now I don't have access to the on-screen keyboard. Is there something I can do to have the keyboard back?
 
You just have to be precise. The button works fine. You can also run `Shutdown` from the application launcher.
Correct me if I am wrong, but shut down does not power off the switch. Further details, shut down will "power off" the operating system & power off the screen, but the switch itself is still powered on and requires the power button to be held for a few seconds. At least this has been my personal experience. Maybe I am not allowing enough time for the switch to completely power off?
 
  • Like
Reactions: achoissoumsaco
Thank you, amazing work to all involved creating this and helping those afterwards! Sticky this thread! While I doubt this amazing work will die down anytime soon, get this officially in people’s faces as best as possible!
 
Correct me if I am wrong, but shut down does not power off the switch. Further details, shut down will "power off" the operating system & power off the screen, but the switch itself is still powered on and requires the power button to be held for a few seconds. At least this has been my personal experience. Maybe I am not allowing enough time for the switch to completely power off?
When I shut down I leave my Switch in the dock and it reboots back into Horizon after a few minutes. So it must be shutting down eventually.
 
I noticed that when you leave Ubuntu running for a while WiFi will become super sluggish and slow over time. I'm not even able to make a SSH connection to it anymore after ~4 hours of uptime.
 
I noticed that when you leave Ubuntu running for a while WiFi will become super sluggish and slow over time. I'm not even able to make a SSH connection to it anymore after ~4 hours of uptime.
Does the wifi chip get hot? Sadly it is underneath the storage board so won't be that easy to tell by touching the outside. Might still get something though.
Does a reboot sort it?
 
Does the wifi chip get hot? Sadly it is underneath the storage board so won't be that easy to tell by touching the outside. Might still get something though.
Does a reboot sort it?
For some reason once I was browsing around and doing stuff on the Switch it went back to normal again... Probably goes to sleep when it sees nothing is going on and won't wake up with "outside calls"?

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

I'm also currently trying to get a AX88179 chipset based USB LAN adapter to run but for some reason it won't detect it. Everything I looked up suggests that the driver should already be in the kernel, has this by any chance been remove?
 
For some reason once I was browsing around and doing stuff on the Switch it went back to normal again... Probably goes to sleep when it sees nothing is going on and won't wake up with "outside calls"?

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

I'm also currently trying to get a AX88179 chipset based USB LAN adapter to run but for some reason it won't detect it. Everything I looked up suggests that the driver should already be in the kernel, has this by any chance been remove?

I have the same adapter. Messaged the dev on Reddit. Every single module has to be compiled into the kernel for the current build. There is no dynamic module loading. So he has to specify everything to build in. That's why mass storage didn't work initially but was added in the 1.1 update. He said for the next update, he'll get that driver added in.
 
Last edited by parkerlreed,
  • Like
Reactions: lordelan

Site & Scene News

Popular threads in this forum