[SWITCH]Rilasciato Switch-Linux

Il pinguino approda sulla console Nintendo Switch grazie allo sviluppatore shinyquagsire23 con la prima versione di Switch-Linux.Vi consiglio di leggere l’intero articolo per l’installazione perchè richiede la compilazione del repository.Una versione già compilata non tarderà a venire.

Requisiti

  • u-boot in esecuzione da takeover TrustZone o bootrom hax. Al momento non è disponibile, tuttavia è possibile trovare u-boot compatibile con Switch qui
  • Una scheda SD correttamente formattata. Le istruzioni sono disponibili in Compilazione, installazione e configurazione

Note su PSCI

  • Il componente TrustZone di Horizon OS di Nintendo può fornire chiamate PSCI che funzionano per Linux (le patch sono nel repository). Per impostazione predefinita, la struttura del dispositivo è configurata per Linux in esecuzione da u-boot pacchettizzato nel pacchetto 2 di Nintendo, con tutte le chiamate PSCI inviate a SMC # 1 anziché SMC # 0.
  • L’utilizzo di altri firmware fidati con PSCI su SMC # 0 dovrebbe essere in grado di rimuovere la necessità di queste patch, tuttavia non è attualmente testato.

Note sul debug

  • Per impostazione predefinita, la guida Joy-Con destra viene utilizzata per l’uscita di registrazione UART, con il pin 5 come TX della console e il pin 8 come RX della console. Vedi qui per i dettagli.

Compilazione, installazione e configurazione

L’installazione di u-boot dipenderà dai metodi di caricamento utilizzati. Tuttavia, una volta installato u-boot, è possibile utilizzare le seguenti istruzioni:

  • Assicurati che la tua scheda SD sia formattata con partizionamento MBR, con la prima partizione FAT32 / exFAT e una seconda per ext3 / ext4. Se ext4 ha problemi di avvio, prova ext3.
  • Scarica qui l’ immagine ALLARM generica e segui le istruzioni fornite per installare il filesystem sul filesystem ext3 / ext4 sulla tua scheda SD. Potrebbe essere necessario un box Linux per fare questi passaggi.
  • Clona linux-next usando git clone git://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git
  • cd linux-next && git checkout v4.15
  • Applicare le patch fornite nel repository usando git am -3 -k <patch file>
  • NVIDIA richiede microcodice per i loro sottosistemi host1x / DRM. Questo dovrebbe essere compilato nel kernel o in initramfs per la schermata iniziale init.
    • Scarica il pacchetto linux-firmware da qui
    • mkdir extra_firmware
    • Copiare nvidia/tegra210/vic04_ucode.binnvidia/tegra210/xusb.bin dal pacchetto a linux-next/extra_firmware/nvidia/tegra210/vic04_ucode.bin e linux-next/extra_firmware/nvidia/tegra210/xusb.bin
    • Va notato che sebbene ciò possa essere utile per un facile debug, le immagini del kernel generate saranno sporche e non strettamente conformi al GPL. Si consiglia, per le versioni basate su immagini, che questi file vengano installati su initramfs.
    • TODO: Potrebbe essere meglio non avere un initramfs e averli estratti dalla partizione root effettiva, con Linux-firmware installato su di esso.
  • Assicurarsi di avere un cross-compiler AArch64 installato.
  • export ARCH=arm64
  • export CROSS_COMPILE=aarch64-linux-gnu-
  • mkdir -p build/hac-001/
  • make O=build/hac-001/ hac_defconfig
  • make O=build/hac-001/ -j4 Image
  • Copiare il file immagine da build/hac-001/arch/arm64/boot/Image alla cartella boot/ sulla partizione FAT della scheda SD.
  • In questo repository, mkimage -A arm -T script -O linux -d u-boot/boot.txt u-boot/boot.scr copiare boot.scr nella directory boot/ sulla partizione FAT della scheda SD.
  • ALARM ha un initramfs predefinito che deve essere avvolto per u-boot. mkimage -T ramdisk -C gzip -d /path/to/initramfs-linux.img /path/to/FAT/boot/initramfs.uImage
  • Nel repository, cd device-tree && sh build.sh && cp tegra210-hac-001.dtb /path/to/FAT/boot/
  • La directory FAT boot/ dovrebbe avere Imageinitramfs.uImage e tegra210-hac-001.dtb
  • Avviare da u-boot. Se si è verificato un errore, verrà aperto un dispositivo di archiviazione di massa USB per la scheda SD.

Prossimamente

  • Utilizzare la USB
  • Ottenere nuove funzioni
  • Ottenere l’audio funzionante
  • Ottenere il touchscreen funzionante
  • DVFS funziona?
  • DisplayPort? Cambiare i driver del dock?
  • Probabilmente molte più cose.
Fonte
Github

nome-foto

Ti è piaciuta la notizia? Supporta theheroGAC su Patreon!

theheroGAC

Nato negli anni 80 con la passione dei videogiochi e delle console.Il mio primo home computer è l'Amiga 600 regalato a 10 anni.Amo aiutare le persone in difficoltà e scrivere notizie sulle console.Studio all'università e il sito Games And Consoles è la mia passione.Per gli amici mi potete chiamare Ciccio

Ti potrebbe anche interessare

Rispondi