시스템 문제(셧다운시 unmount로 인한 에러)가 있어서 업데이트. 기존의 빌드와는 큰 기능적인 차이는 없는 듯. adsp가 호환성 문제 등으로 빠져서 용량이 작아졌다. 스크립트 동작 시간 제약을 고친 것으로 동작은 하는데 완벽하게 문제를 해결한 것은 아님. 지금의 빌드들이 문제점이 그나마 적은 DVD 플레이도 지원되는 현재의 테스트 빌드. 수정되지 않은 오피셜 테스트 빌드를 사용해도 문제가 없을거라고 생각.
lirc문제는 새로운 파일을 생성하면 문제가 해결된다고. 아마 버전업이 된 후 생겨난 문제인 듯.
새로운 0719 테스트빌드 패치. 무시하도록 했던 부분을 60초 제한으로 되돌림. 보다 더 안전한 방법이라고 생각. 이 테스트 빌드에서는 1080i에서의 영상 플레이 문제가 고쳐짐. RPi2에서만 제대로 테스트.
접기
RPi1
|||`==< 0x005d3b70 f3ffff0a beq 0x5d3b44 --> 0000a0e1 ; nop ; mov r0, r0 ||| | 0x005d3b74 999911eb bl sym.XbmcThreads::SystemClockMillis ||| | ;-- hit0_3: ||| | 0x005d3b78 000066e0 rsb r0, r6, r0 ||| | 0x005d3b7c 0b0050e1 cmp r0, fp ||| `=< 0x005d3b80 efffff9a bls 0x5d3b44 |``---> 0x005d3b84 0700a0e1 mov r0, r7 | 0x005d3b88 be39ffeb bl sym.std::atomic_bool_::operatorbool | 0x005d3b8c 000050e3 cmp r0, 0 | ,=< 0x005d3b90 0600000a beq 0x5d3bb0 | | 0x005d3b94 010074e3 cmn r4, 1 ; "ELF..." | ,==< 0x005d3b98 0400000a beq 0x5d3bb0 | || 0x005d3b9c 882c01eb bl sym.CScriptInvocationManager::GetInstance | || 0x005d3ba0 0410a0e1 mov r1, r4 | || 0x005d3ba4 fb2b01eb bl sym.CScriptInvocationManager::IsRunning | || 0x005d3ba8 000050e3 cmp r0, 0 | ,===< 0x005d3bac 1100001a bne 0x5d3bf8 |.-``-> 0x005d3bb0 0700a0e1 mov r0, r7 ||| 0x005d3bb4 b339ffeb bl sym.std::atomic_bool_::operatorbool ||| 0x005d3bb8 000050e3 cmp r0, 0 ||| 0x005d3bbc 0000a013 movne r0, 0 ||| 0x005d3bc0 b100d505 ldrbeq r0, [r5, 0xb1] ||| 0x005d3bc4 79df8de2 add sp, sp, 0x1e4 ||| 0x005d3bc8 f08fbde8 pop {r4, r5, r6, r7, r8, sb, sl, fp, pc} ||| 0x005d3bcc 0600a0e1 mov r0, r6 ||| 0x005d3bd0 b30b00eb bl 0x5d6aa4 ||| 0x005d3bd4 d9f4f5eb bl sym.imp.__cxa_end_cleanup ||| 0x005d3bd8 809911eb bl sym.XbmcThreads::SystemClockMillis ||| 0x005d3bdc 54309fe5 ldr r3, [pc, 0x54] ; [0x5d3c38:4]=0xffffcf0c ||| 0x005d3be0 0060a0e1 mov r6, r0 ||| 0x005d3be4 033098e7 ldr r3, [r8, r3] ||| 0x005d3be8 4cb09fe5 ldr fp, [pc, 0x4c] ; [0x5d3c3c:4]=0x752f ; "/u" 0x005d3c3c ||| 0x005d3bec 4c809fe5 ldr r8, [pc, 0x4c] ; [0x5d3c40:4]=0x7530 ; "0u" 0x005d3c40 ||| 0x005d3bf0 00a093e5 ldr sl, [r3] `=====< 0x005d3bf4 dcffffea b 0x5d3b6c |`---> 0x005d3bf8 44209fe5 ldr r2, [pc, 0x44] ; [0x5d3c44:4]=0xa2e7ba | 0x005d3bfc 44109fe5 ldr r1, [pc, 0x44] ; [0x5d3c48:4]=0x80e813 | 0x005d3c00 003099e5 ldr r3, [sb] | 0x005d3c04 02208fe0 add r2, pc, r2 ; [0x5d3c50:4]=0xe59f50a8 | 0x005d3c08 01108fe0 add r1, pc, r1 ; [0x5d3c53:4]=0x9f30a8e5 | 0x005d3c0c 00408de5 str r4, [sp] | 0x005d3c10 0000a0e3 mov r0, 0 | 0x005d3c14 78f9f7eb bl sym.CLog::Log | 0x005d3c18 692c01eb bl sym.CScriptInvocationManager::GetInstance | 0x005d3c1c 0020a0e3 mov r2, 0 | 0x005d3c20 0410a0e1 mov r1, r4 | 0x005d3c24 a72b01eb bl sym.CScriptInvocationManager::Stop `====< 0x005d3c28 e0ffffea b 0x5d3bb0 0x005d3c2c bce0eb00 strhteq lr, [fp], 0xc 0x005d3c30 08c4ffff invalid 0x005d3c34 08040000 andeq r0, r0, r8, lsl 8 0x005d3c38 0ccfffff invalid 0x005d3c3c 2f750000 andeq r7, r0, pc, lsr 10 -> 5fea0000 0x005d3c40 30750000 andeq r7, r0, r0, lsr r5
RPi2
.-----> 0x005d1578 0a0058e1 cmp r8, sl |||`==< 0x005d157c f3ffff0a beq 0x5d1550 --> 0000a0e1 ; nop ||| | 0x005d1580 3a8411eb bl sym.XbmcThreads::SystemClockMillis ||| | ;-- hit0_2: ||| | 0x005d1584 000066e0 rsb r0, r6, r0 ||| | 0x005d1588 0b0050e1 cmp r0, fp ||| `=< 0x005d158c efffff9a bls 0x5d1550 |``---> 0x005d1590 0700a0e1 mov r0, r7 | 0x005d1594 3b3affeb bl sym.std::atomic_bool_::operatorbool | 0x005d1598 000050e3 cmp r0, 0 | ,=< 0x005d159c 0600000a beq 0x5d15bc | | 0x005d15a0 010074e3 cmn r4, 1 ; "ELF..." | ,==< 0x005d15a4 0400000a beq 0x5d15bc | || 0x005d15a8 0c2b01eb bl sym.CScriptInvocationManager::GetInstance | || 0x005d15ac 0410a0e1 mov r1, r4 | || 0x005d15b0 852a01eb bl sym.CScriptInvocationManager::IsRunning | || 0x005d15b4 000050e3 cmp r0, 0 | ,===< 0x005d15b8 1100001a bne 0x5d1604 |.-``-> 0x005d15bc 0700a0e1 mov r0, r7 ||| 0x005d15c0 303affeb bl sym.std::atomic_bool_::operatorbool ||| 0x005d15c4 000050e3 cmp r0, 0 ||| 0x005d15c8 0000a013 movne r0, 0 ||| 0x005d15cc b100d505 ldrbeq r0, [r5, 0xb1] ||| 0x005d15d0 79df8de2 add sp, sp, 0x1e4 ||| 0x005d15d4 f08fbde8 pop {r4, r5, r6, r7, r8, sb, sl, fp, pc} ||| 0x005d15d8 0600a0e1 mov r0, r6 ||| 0x005d15dc a00b00eb bl 0x5d4464 ||| 0x005d15e0 08fef5eb bl sym.imp.__cxa_end_cleanup ||| 0x005d15e4 30a507e3 movw sl, 0x7530 ||| 0x005d15e8 208411eb bl sym.XbmcThreads::SystemClockMillis ||| 0x005d15ec 4c309fe5 ldr r3, [pc, 0x4c] ; [0x5d1640:4]=0xffffcf0c ||| 0x005d15f0 0060a0e1 mov r6, r0 ||| 0x005d15f4 2fb507e3 movw fp, 0x752f --> 5fba0ee3 ; movw fp, #59999" ||| 0x005d15f8 033098e7 ldr r3, [r8, r3]
접기 새롭게 어떻게든 스크립트 실행시간의 제한을 놔두려던 방법은 좋지 않다는 것을 발견. 자체적으로도 그런지는 모르겠지만, 그냥 30초 제한을 날려버리는게 더 안정적인 것을 깨달았다. 오피셜에서도 그런지는 모르겠지만, 마우스로 스크린 키보드를 두들기다가 무한루프에 빠져들 수 있는 문제가 있는 듯. tty로 접근을 해야 비로소 리부트를 시킬 수 있었다. 그래서 0720 빌드를 다시 수정. 기본으로 달려있는 아날로그 출력에 문제가 있는 것을 빼고 (config.txt에 dtparam=audio=on을 하면 해결이 되는 듯?) 그 외에 별다른 문제는 없는 것 같다.