I'm having trouble with TWRP on my CM4 -- the recovery process repeatedly segfaults:
This is freshly flashed with lineage-21.0-20240816-UNOFFICIAL-KonstaKANG-rpi4.zip, on a CM4104032 (CM4, wifi, 4GB / 32GB) on the CM4IO board.
On my Pi 4 8GB, TWRP works fine.
I was able to attach GDB to the recovery process:
Let me know if there's any other information I can gather to help debug this.
Code:
console:/ # [ 10.127111] init: starting service 'recovery'...[ 10.132585] init: Created socket '/dev/socket/recovery', mode 422, user 1000, group 1000[ 10.144452] init: starting service 'adbd'...[ 10.149438] init: Created socket '/dev/socket/adbd', mode 660, user 1000, group 1000[ 10.187352] read descriptors[ 10.190309] read strings[ 10.193686] init: processing action (sys.usb.config=adb && sys.usb.configfs=1 && sys.usb.ffs.ready=1) from (/system/etc/init/hw/init.rc:208)[ 10.199764] init: Unable to set property 'ro.twrp.boot' from uid:0 gid:0 pid:133: Read-only property was already set[ 10.207541] dwc2 fe980000.usb: bound driver configfs-gadget.g1[ 10.217916] init: Unable to set property 'ro.twrp.version' from uid:0 gid:0 pid:133: Read-only property was already set[ 10.340578] dwc2 fe980000.usb: new device is high-speed[ 10.710725] dwc2 fe980000.usb: new device is high-speed[ 10.836578] dwc2 fe980000.usb: new device is high-speed[ 11.045014] android_work: sent uevent USB_STATE=CONNECTED[ 11.099726] dwc2 fe980000.usb: new device is high-speed[ 11.159855] dwc2 fe980000.usb: new address 35[ 11.179037] android_work: sent uevent USB_STATE=CONFIGURED[ 12.151378] init: Service 'recovery' (pid 133) received signal 11[ 12.157654] init: Sending signal 9 to service 'recovery' (pid 133) process group...[ 12.165686] libprocessgroup: Successfully killed process cgroup uid 0 pid 133 in 0ms[ 15.145546] init: starting service 'recovery'...[ 15.151132] init: Created socket '/dev/socket/recovery', mode 422, user 1000, group 1000[ 15.219896] init: Unable to set property 'ro.twrp.boot' from uid:0 gid:0 pid:143: Read-only property was already set[ 15.230821] init: Unable to set property 'ro.twrp.version' from uid:0 gid:0 pid:143: Read-only property was already set[ 17.158513] init: Service 'recovery' (pid 143) received signal 11
On my Pi 4 8GB, TWRP works fine.
I was able to attach GDB to the recovery process:
Code:
Program received signal SIGSEGV, Segmentation fault.0x00000075034b9acc in gr_fb_width() () from target:/system/lib64/libminuitwrp.so(gdb) bt#0 0x00000075034b9acc in gr_fb_width() () from target:/system/lib64/libminuitwrp.so#1 0x00000059dbb37948 in PageSet::LoadDetails(LoadingContext&, rapidxml::xml_node<char>*) ()#2 0x00000059dbb36ed4 in PageSet::Load(LoadingContext&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) ()#3 0x00000059dbb3a7e0 in PageManager::LoadPackage(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >) ()#4 0x00000059dbb2dd9c in gui_init ()#5 0x00000059dba97840 in main ()(gdb) info registersx0 0x0 0x1 0x0 0x2 0xa 10x3 0xffffffffffffffff -1x4 0xffffffffffffffff -1x5 0x0 0x6 0x740285f060 498258538592x7 0x740285b670 498258523760x8 0x0 0x9 0x0 0x10 0x1 1x11 0xa 10x12 0x8000000000000000 -9223372036854775808x13 0x74028603b0 498258543536x14 0x10 16x15 0x0 0x16 0x59dbb73240 385938305600x17 0x75034b9aa8 502566460072x18 0x7505464000 502599663616x19 0x4b0 1200x20 0x780 1920x21 0x75037dcf20 502569750304x22 0xb400007504564210 -5476376644298587632x23 0xb4000074028603c0 -5476376648623979584x24 0x0 0x25 0x0 0x26 0x59dbb74750 385938310992x27 0x7504583000 502584061952x28 0x59dbb74b8c 385938312076x29 0x7fcdd61ce0 548914207968x30 0x59dbb37948 385938061640sp 0x7fcdd61cd0 0x7fcdd61cd0pc 0x75034b9acc 0x75034b9acc <gr_fb_width()+36>cpsr 0x60000000 [ EL=0 C Z ]fpsr 0x0 0fpcr 0x0 0(gdb) disasDump of assembler code for function _Z11gr_fb_widthv: 0x00000075034b9aa8 <+0>:adrpx8, 0x75034eb000 <_ZTVN7android19ArmToArm64AssemblerE+216> 0x00000075034b9aac <+4>:ldrx8, [x8, #2256] 0x00000075034b9ab0 <+8>:ldrw9, [x8] 0x00000075034b9ab4 <+12>:adrpx8, 0x75034eb000 <_ZTVN7android19ArmToArm64AssemblerE+216> 0x00000075034b9ab8 <+16>:ldrx8, [x8, #2248] 0x00000075034b9abc <+20>:cmpw9, #0xb4 0x00000075034b9ac0 <+24>:ccmpw9, #0x0, #0x4, ne // ne = any 0x00000075034b9ac4 <+28>:ldrx8, [x8] 0x00000075034b9ac8 <+32>:b.ne0x75034b9ad4 <_Z11gr_fb_widthv+44> // b.any=> 0x00000075034b9acc <+36>:ldrw0, [x8] 0x00000075034b9ad0 <+40>:ret 0x00000075034b9ad4 <+44>:addx8, x8, #0x4 0x00000075034b9ad8 <+48>:ldrw0, [x8] 0x00000075034b9adc <+52>:retEnd of assembler dump.(gdb)
Statistics: Posted by evankrall — Sat Oct 26, 2024 5:38 am