===== PS4 Linux kernels ===== * https://github.com/ps4boot/ps4-linux.git - I can build that kernel, and it runs. It has ca. 1mb patches ontop of the vanilla 5.3.18 kernel. * upstream 5.3.18 - I can build it, but it does not boot (I have no UART to see more) * upstream 5.4.182 - I can build it, but it does not boot ===== Compile kernel on itmania Fedora 32 ===== === preparations === sudo dnf -y install git-core flex bison elfutils-libelf-devel === working for my PS4 pro model === This is a 5.3.18-gcf76ce01e, works for me. git clone https://github.com/ps4boot/ps4-linux.git cd ps4-linux cp config .config make -j 12 bzImage # then copy arch/x86/boot/bzImage to partition /dev/sda1 === nonworking tree === git clone https://github.com/ps4gentoo/ps4-linux-5.3.7 cd ps4-linux-5.3.7 make clean make oldconfig make -j 12 bzImage [..] CALL scripts/checksyscalls.sh CALL scripts/atomic/check-atomics.sh DESCEND objtool CHK include/generated/compile.h AS drivers/base/firmware_loader/builtin/mrvl/sd8897_uapsta.bin.gen.o AS drivers/base/firmware_loader/builtin/mrvl/sd8797_uapsta.bin.gen.o make[4]: *** No rule to make target '/lib/firmware/amdgpu/gladius_ce.bin', needed by 'drivers/base/firmware_loader/builtin/amdgpu/gladius_ce.bin.gen.o'. Stop. make[3]: *** [scripts/Makefile.build:497: drivers/base/firmware_loader/builtin] Error 2 make[2]: *** [scripts/Makefile.build:497: drivers/base/firmware_loader] Error 2 make[1]: *** [scripts/Makefile.build:497: drivers/base] Error 2 make: *** [Makefile:1085: drivers] Error 2 [ITmania@ps4 ps4-linux-5.3.7]$ Hm.. the firmware seems nowhere around. 2 ideas: * What if it's just distributed in Sonys update packages? Can not open these. * Or on the PS4 disk. * Or they should be part of the kernels already compiled by others. How to extract from compiled kernels? extract-vmlinux can extract vmlinux from bzImage files, but how to get the single firmware pieces.. ===== Early console ===== Without anything further, the kernel only outputs to screen, if that fails you can not debug. The PS4 offers UART contacts on the board, you can solder cables, and use a UART/USB module to read. By default, the output is scrambled or encrypted, you need a jailbreak and the right payload to get clear text output from the UART. Other idea: console over USB.