D411
- Diagnosis of the image+0x2708 wall in
klog.elf: kernel_copyout, setsockopt, and high-half
kpipe_addr
measured - 2026-08-31
Disassembly of klog.elf around the
image+0x2708 trap site identified the exact sequence
causing the abort:
__crt_startcallskernel_dynlib_dlsym(-1, 0x2001, "sceKernelDlsym")(and fallbackkernel_dynlib_dlsym(-1, 2, "exit")).kernel_dynlib_dlsymcallskernel_dynlib_resolve, which callskernel_dynlib_obj(-1, ...).kernel_dynlib_objcallskernel_get_proc(-1)andkernel_copyoutto walkproc->p_dynlibat offset+0x3e8in kernel memory.kernel_copyoutvalidateskpipe_addr >> 48 != 0(requiring a canonical high-half kernel address, e.g.0xffff86615c607840), usessetsockopt(Syscall 105) on therwpairsockets withIPPROTO_IPV6(0x29) andIPV6_PKTINFO(0x2e), and performsreadonrwpipe[0]to read kernel structures into userland.- Because
kpipe_addrhad been a low-half pointer (FIRMWARE_BASE + offset),kernel_copyoutbailed withEFAULT(14) before attempting any syscall, causingkernel_dynlib_dlsymto return NULL and__crt_startto jump toud2at0x2708.
measured_handoff_fields in
crates/orbistoun-worker/src/lib.rs was updated to pass the
measured canonical high-half addresses 0xffff86615c607840
(kpipe_addr) and 0xffffffff8c290000
(kdata_base_addr) as confirmed in D408.