{"slug":"alarm-tegra-x1","name":"alarm-tegra-x1","kind":"app","version":"0.1.0","description":"Arch Linux ARM on the Nintendo Switch, on a modern mainline kernel","llm_description":"A build system and device tree for running Arch Linux ARM on the Nintendo Switch\n(HAC-001, Tegra X1) on a current mainline kernel instead of the vendor's frozen\nL4T 4.9.140. It boots to userspace with a USB serial console, USB networking\n(CDC-NCM, so ssh works with no WiFi), a working 720x1280 DSI panel, and a\nheadless desktop over VNC. BRINGUP.md documents the observation channels and\nevery silent failure encountered, because on this hardware almost nothing fails\nloudly: the display scanout is block-linear, there is no UART on a retail unit,\nand the kernel dies before printk reaches anything persistent.\n","keywords":["nintendo-switch","tegra-x1","arch-linux-arm","mainline-kernel","kernel-bringup","device-tree","embedded","handheld"],"code_keywords":["rust","device-tree","u-boot","clang","kconfig","drm","dsi","usb-gadget","ncm","ramoops"],"languages":["Rust","Shell","C"],"author":"kenton","license":"GPL-2.0-only","homepage":"","entry_points":["README.md","BRINGUP.md","device-tree/README.md","patches/README.md","reference/switchroot-mainline/README.md"],"install":"cargo build --release","run":"ALARM_NO_MODULES=1 cargo run -- kernel && cargo run -- payload --kernel built","model":"DeepSeek V4.1 Flash","prompt_summary":"Boot current Arch Linux ARM on a Nintendo Switch with a current mainline kernel\nrather than the vendor L4T 4.9 BSP, and document every silent failure found on\nthe way. Prior art from switchroot's own mainline kernel tree (panel driver, PCIe\nlanes) was located late and is vendored under reference/ for porting.\n","file_count":62,"total_bytes":1502018,"downloads":20,"views":53,"created_at":"2026-10-19T04:20:12.156670207+00:00","updated_at":"2026-10-19T06:16:51.569631861+00:00","specs":null,"owner":"JG2HQZWButhcoh5/wf9vMtgFLIu0qocgLnJlqD6IWUM=","files":[".gitignore",".ndignore","BRINGUP.md","Cargo.lock","Cargo.toml","LICENSE","Makefile","README.md","a.py","backupo/brcmfmac4356-pcie.txt","backupo/brcmfmac4356A3-pcie.txt","bootloader/ini/L4T-jammy.ini","brcmfmac4356a3-pcie.txt","brcmfmac4356a3-pcie.txt.bak","device-tools/init.debug","device-tools/jcmapper.c","device-tools/jcosk.c","device-tools/probe","device-tree/Makefile","device-tree/README.md","device-tree/boot-mainline.scr","device-tree/panel-jdi-lpm062m326a.c","device-tree/switch-fb.c","device-tree/tegra210-nintendo-switch.dts","device-tree/tegra210-odnx02-a2.dts","drivers/joycon.c","notdouble.toml","patches/README.md","patches/initramfs.patch","patches/kernel-boot-markers.patch","patches/kernel-display-hotplug.patch","patches/kernel-stmfts-switch.patch","patches/patch-initramfs.sh","patches/sdcard-snapshot/L4T-alarm.ini","patches/sdcard-snapshot/alarm-init.sh","patches/sdcard-snapshot/pacman.conf","patches/sdcard-snapshot/resolv.conf","patches/sdcard-snapshot/sshd_config","patches/sdcard-snapshot/wpa_supplicant.conf.template","reference/switchroot-mainline/0004-xusb-gadget.patch","reference/switchroot-mainline/0010-v0-drm-panel-add-driver-for-jdi-lpm062m326a.patch","reference/switchroot-mainline/0011-v0-stmfts-switch-support.patch","reference/switchroot-mainline/0012-v0-platform-integration-for-switch-panel.patch","reference/switchroot-mainline/0016-v0-input-working-Joy-Con-rails-driver.patch","reference/switchroot-mainline/0019-v4-HID-switchcon-add-nintendo-switch-controller-driver.patch","reference/switchroot-mainline/0023-input-touschscreen-stmfts-Sync-mt-events-on-input.patch","reference/switchroot-mainline/0026-v0-usb-udc-tegra_xudc-use-dma_alloc_coherent.patch","reference/switchroot-mainline/README.md","reference/switchroot-mainline/extracted/panel-jdi-lpm062m326a.c","reference/switchroot-mainline/tegra210-nintendo-switch.dts","rootfs/alarm-init.sh","rootfs/sbin-init","src/config.rs","src/kernel.rs","src/main.rs","src/packages.rs","src/payload.rs","src/rootfs.rs","src/utils.rs","switchroot/ubuntu-jammy/README_CONFIG.txt","switchroot/ubuntu-jammy/boot.scr","switchroot/ubuntu-jammy/nx-plat.dtimg"]}