Magazine Gadget

Cturt rilascia la procedura per avviare linux su PS4

Da Gamesonic @gamesonic_

Lo sviluppatore CTurt ha annunciato l’ultimo aggiornamento e la fine del lavoro della scena PlayStation 4 attraverso la sua pagina Github. Nella pagina viene spiegato come avviare il sistema operativo utilizzando il PS4-kexec pubblicato dal team Fail0verflow utilizzando il firmware 1.76 PS4.

Ho voluto dare una breve panoramica di come configurare e avviare Linux sulla vostra PS4, grazie al duro lavoro del team fail0verflow.Per creare la tua distribuzione Linux, è necessario compilare il fork dei fail0verflow del kernel di Linux , e quindi creare i propri initramfs .Il modo più semplice per ottenere questi file nella RAM è quello di copiarli su un flash drive USB formattata in FAT32, che possono poi essere letti una volta che hai rotto la sandbox come spiegato in precedenza ( / mnt / usb0 / ). Potresti anche scaricarli attraverso la rete, se si preferisce.

Avrete anche bisogno di compilare l’implementazione PS4-kexec della chiamata di sistema come un binario rilocabile e includerlo nel kernel exploit.

Per il vostro payload del kernel è necessario copiare la chiamata di sistema da qualche parte nello spazio di indirizzamento del kernel (come DT_HASH_SEGMENT ), ed eseguire kexec_init (che è garantito per essere all’offset 0 dal binario):

void *DT_HASH_SEGMENT = (void *)0xffffffff82200160;
memcpy(DT_HASH_SEGMENT, kexec, kexecSize);

void (*kexec_init)(void *, void *) = DT_HASH_SEGMENT;
kexec_init(NULL, NULL);
Once you return to userland, you can load the kernel and initramfs from USB, pass them to kexec, and finally reboot!

FILE *fkernel = fopen(“/mnt/usb0/bzImage”, “r”);

FILE *finitramfs = fopen(“/mnt/usb0/initramfs.cpio.gz”, “r”);

char *cmdLine = “panic=0 clocksource=tsc radeon.dpm=0 console=tty0 console=ttyS0,115200n8 ”
“console=uart8250,mmio32,0xd0340000 video=HDMI-A-1:1920×1080-24@60 ”
“consoleblank=0 net.ifnames=0 drm.debug=0”;

syscall(153, kernel, kernelSize, initramfs, initramfsSize, cmdLine);

free(kernel);
free(initramfs);

// Reboot
int evf = syscall(540, “SceSysCoreReboot”);
syscall(546, evf, 0x4000, 0);
syscall(541, evf);
syscall(37, 1, 30);

Ci sono ancora un paio di questioni che devono essere affrontate, come ad esempio i 1080p di visualizzazione supportata ma il team fail0verflow continua a fare progressi costanti sul progetto per tutto il tempo.

Ulteriori informazioni potete leggere alla pagina ufficiale Cturt


Ritornare alla prima pagina di Logo Paperblog