GPU driver does not work when using rootfs on USB drive

I followed this guide to boot a rootfs from a USB drive.
https://www.jetsonhacks.com/2019/09/17/jetson-nano-run-from-usb-drive

How would I get the OS from the USB drive to use the GPU drivers with acceleration?

Ideally I would like to use a completely different distribution like Alpine Linux. I was able to boot with Alpine’s mini rootfs which is really amazing. It only uses 10 MB!

I tried Nvidia’s official sample rootfs and was not able to get acceleration working. How can I fix this? I believe if I get it working on Ubuntu I can use that to get it working on other systems like Arch or Alpine.

I tried copying all the modules from the /lib/modules folder and the firmware folder. I then copied all the drivers from the /usr/lib/aarch64…/dri folder. Copying the dri folder files resolved the message saying it couldn’t find the drm device but when I type startx it closes the server.

Did you customize the kernel Image?
Did you check the kernel name are match the module?

Yes they match. I copied the folder from the stock system over. The /lib/modules folder.

What folders should I copy to get it to work?

So far I’ve been copying /boot, /lib/modules and lib/firmware

Hi,

It sounds an issue that you move the rootfs to usb and some error happened.
I think this is little bit confusing of the term “was not able to get acceleration working”. What hardware acceleration are you trying to do?

Alpine Linux won’t work.Because it uses musl libc which isn’t compatible with nvidia proprietary drivers

I got a debian 10 rootfs working with full 3D. To do it:

Download L4T driver package and extract with tar xf 
 Boot the standard SD card image
 Use Deboostrap on Jetson Nano to get an arm64 rootfs <a target='_blank' rel='noopener noreferrer' href='https://wiki.debian.org/Debootstrap'>https://wiki.debian.org/Debootstrap</a>
 Shutdown and place sdcard in another PC (Linux compatible)
 Use rsync to backup debian rootfs onto PC into Linux_4_tegra/rootfs folder 
CD into Linux_4_tegra folder and run ./apply-binaries.sh. If you get a weird block of text as an error, open .sh file and remove the "exit 1" bellow the text.
Mount root partition of Tegra Ubuntu SD card and cp -a the /boot directory somewhere safe
run rm -rf /* on the mount point at the root of the above directory to clear it out.
 Use rsync from the above step in reverse to copy the new rootfs on the sdcard.
 Copy the backup of the /boot folder to the new rootfs
 Change the /etc/shadow file and remove the first number or character so the first two are "::"
 Use "sync" command to sync all changes to the sdcard
 Unmount and place in Nano.
 login as root and run "apt install xinit openbox" to pull in all that's needed for a simple xserver session
 Enjoy your new Nano that only uses 200 MB of ram! (without xserver)

https://developer.nvidia.com/embedded/dlc/r32-2-1_Release_v1.0/Nano-TX1/Tegra210_Linux_R32.2.1_aarch64.tbz2
https://wiki.archlinux.org/index.php/Rsync#Full_system_backup

Sorry that I cannot guarantee whether the rootfs from other distributors would work or not.
I will let other forum users to share their experience.

It’s ok. It works great with Debian 10 so far. It’s just weird that the default kernel that was applied to the rootfs using the .apply-binares.sh script would not boot. The kernel from the starter kit works fine.