Author Topic: How to run Magic Lantern into QEMU?!...  (Read 121974 times)

t3r4n

  • New to the forum
  • *
  • Posts: 48
Re: How to run Magic Lantern into QEMU?!...
« Reply #300 on: May 04, 2018, 06:41:27 PM »
hmm ...
Code: [Select]
9:1eb5]
   return 0 to 0x1EB5                                                                               at [init:80000d23:fe
0ce235]
  return 48000e to 0xFE0CE235                                                                                at [init:1e
81:80001735]
  call 0xFE3CDF44(fe0ce600 "TaskMain", 1d, 0, fe0cd4a9)
looks different

a1ex

  • Administrator
  • Hero Member
  • *****
  • Posts: 11721
  • 5D Mark Free
Re: How to run Magic Lantern into QEMU?!...
« Reply #301 on: May 04, 2018, 06:51:20 PM »
Terminal window too small? Was grep -C5 used?

t3r4n

  • New to the forum
  • *
  • Posts: 48
Re: How to run Magic Lantern into QEMU?!...
« Reply #302 on: May 04, 2018, 07:16:38 PM »
Terminal full screen width.
And I've now even used ggrep and declared export TERM=ansi
Code: [Select]
      call 0xFE3CDE84(c0003, 60000053, 1, 5)
         at [SFRead:fe32bd4f:fe32a717]
       -> 0x186F                                                                           at [SFRead:fe3cde84:fe32bd53]

        call 0xFE3CDF94(90007, 0, 73, 0)
   at [TaskMain:fe1c1c7f:fe2eb9fb]
         -> 0x800020B3                                                                         at [TaskMain:fe3cdf94:fe1
c1c83]
         call 0x800056DC(2ee300, 0, 73,  0)
    at [TaskMain:800020bb:fe1c1c83]
          -> 0xFE172B85                                                                        at [TaskMain:800056dc:800

I thought I had left such problems back in 1998 ...  :(

a1ex

  • Administrator
  • Hero Member
  • *****
  • Posts: 11721
  • 5D Mark Free
Re: How to run Magic Lantern into QEMU?!...
« Reply #303 on: May 04, 2018, 07:42:47 PM »
Tried smaller font? Or writing to a log file and copying the output from a text editor?

The second snippet can't be the first occurrence of TaskMain, btw.

t3r4n

  • New to the forum
  • *
  • Posts: 48
Re: How to run Magic Lantern into QEMU?!...
« Reply #304 on: May 04, 2018, 07:54:00 PM »
font :
nope ..
here is the output of the find  stub script
Code: [Select]
b *0xFE172BB2
task_create_log

# from 750D/debugmsg.gdb
b *0xFE52F980
assert_log

# from 750D/debugmsg.gdb
b *0x1774
register_interrupt_log

# from 750D/debugmsg.gdb
b *0xFE445CB8
register_func_log

# from 750D/debugmsg.gdb
b *0x...
mpu_send_log

# from 750D/debugmsg.gdb
b *0x...
mpu_recv_log

b *0xFE3CDFE4
create_semaphore_log

b *0x1C18
create_msg_queue_log

b *0x211A
CreateStateObject_log
for today I'm done ... I'll grab a beer and the camera and enjoy the nice weather and sunset out at the lake ;)

dfort

  • Developer
  • Hero Member
  • *****
  • Posts: 3146
Re: How to run Magic Lantern into QEMU?!...
« Reply #305 on: May 05, 2018, 09:05:44 AM »
I was re-reading some of the posts and got excited when I realized that most of the lua API tests can run in QEMU as posted on Reply #254. So I applied the patch to api_test.lua and tried out the 1100D.106 lua_fix build.

It got through almost everything on the first try:

Code: [Select]
===============================================================================
ML/SCRIPTS/API_TEST.LUA - 2017-9-30 12:15:00
===============================================================================

Strict mode tests...
Strict mode tests passed.

Generic tests...
arg = table:
  [0] = "API_TEST.LUA"
camera = table:
  shutter = table:
    raw = 104
    apex = 6.
    ms = 16
    value = 0.015625
  aperture = table:
    raw = 75
    apex = 8.375
    value = 18.2
    min = table:
      raw = 45
      apex = 4.625
      value = 4.9
    max = table:
      raw = 88
      apex = 10.
      value = 32
  iso = table:
    raw = 72
    apex = 5.
    value = 100
  ec = table:
    raw = 0
    value = 0
  flash = true
  flash_ec = table:
    raw = 0
    value = 0
  kelvin = 5200
  mode = 3
  metering_mode = 3
  drive_mode = 4
  model = "Canon EOS 1100D"
  model_short = "1100D"
  firmware = "1.0.6"
  temperature = 146
  gui = table:
    menu = false
    play = false
    play_photo = false
    play_movie = false
    qr = false
    idle = true
  shoot = function: p
  bulb = function: p
  reboot = function: p
  wait = function: p
  burst = function: p
event = table:
  pre_shoot = nil
  post_shoot = nil
  shoot_task = nil
  seconds_clock = nil
  keypress = nil
  custom_picture_taking = nil
  intervalometer = nil
  config_save = nil
console = table:
  hide = function: p
  write = function: p
  show = function: p
  clear = function: p
lv = table:
  enabled = false
  paused = false
  running = false
  zoom = 1
  overlays = false
  pause = function: p
  resume = function: p
  start = function: p
  wait = function: p
  info = function: p
  stop = function: p
lens = table:
  name = "EF-S18-55mm f/3.5-5.6 IS"
  focal_length = 0
  focus_distance = 14080
  hyperfocal = 0
  dof_near = 0
  dof_far = 0
  af = false
  af_mode = 3
  focus = function: p
  autofocus = function: p
display = table:
  idle = nil
  height = 480
  width = 720
  off = function: p
  print = function: p
  notify_box = function: p
  pixel = function: p
  screenshot = function: p
  draw = function: p
  load = function: p
  rect = function: p
  circle = function: p
  clear = function: p
  on = function: p
  line = function: p
key = table:
  last = 10
  wait = function: p
  press = function: p
menu = table:
  visible = false
  close = function: p
  block = function: p
  open = function: p
  get = function: p
  new = function: p
  select = function: p
  set = function: p
movie = table:
  recording = false
  start = function: p
  stop = function: p
dryos = table:
  clock = 5
  ms_clock = 5081
  image_prefix = "IMG_"
  dcim_dir = table:
    exists = true
    create = function: p
    children = function: p
    files = function: p
    parent = table:
      exists = true
      create = function: p
      children = function: p
      files = function: p
      parent = table:
        exists = true
        create = function: p
        children = function: p
        files = function: p
        parent = nil
        path = "B:/"
      path = "B:/DCIM/"
    path = "B:/DCIM/100CANON/"
  config_dir = table:
    exists = true
    create = function: p
    children = function: p
    files = function: p
    parent = table:
      exists = true
      create = function: p
      children = function: p
      files = function: p
      parent = table:
        exists = true
        create = function: p
        children = function: p
        files = function: p
        parent = nil
        path = "B:/"
      path = "ML/"
    path = "ML/SETTINGS/"
  ml_card = table:
    cluster_size = 16384
    drive_letter = "B"
    file_number = 9321
    folder_number = 100
    free_space = 215520
    type = "SD"
    _card_ptr = userdata
    path = "B:/"
  shooting_card = table:
    cluster_size = 16384
    drive_letter = "B"
    file_number = 9321
    folder_number = 100
    free_space = 215520
    type = "SD"
    _card_ptr = userdata
    path = "B:/"
  date = table:
    hour = 12
    yday = 1
    month = 9
    isdst = false
    sec = 0
    day = 30
    min = 15
    year = 2017
    wday = 2
  rename = function: p
  remove = function: p
  call = function: p
  directory = function: p
interval = table:
  time = 10
  count = 0
  running = false
  stop = function: p
battery = table:
function not available on this camera
stack traceback:
[C]: in ?
[C]: in for iterator 'for iterator'
ML/SCRIPTS/LIB/logger.lua:125: in function 'logger.serialize'
ML/SCRIPTS/API_TEST.LUA:36: in function <ML/SCRIPTS/API_TEST.LUA:35>
[C]: in function 'xpcall'
ML/SCRIPTS/API_TEST.LUA:35: in function 'print_table'
ML/SCRIPTS/API_TEST.LUA:81: in function 'generic_tests'
ML/SCRIPTS/API_TEST.LUA:1307: in function 'api_tests'
ML/SCRIPTS/API_TEST.LUA:1328: in main chunktask = table:
  yield = function: p
  create = function: p
property = table:
Generic tests completed.

Module tests...
Testing file I/O...
Copy test: autoexec.bin -> tmp.bin
Copy test OK
Append test: tmp.txt
Append test OK
Rename test: apple.txt -> banana.txt
Rename test OK
Rename test: apple.txt -> ML/banana.txt
Rename test OK
File I/O tests completed.

Testing Canon GUI functions...
Enter MENU mode...
Enter PLAY mode...
Exit PLAY mode...
Enter MENU mode...
Enter PLAY mode...
Enter MENU mode...
Enter PLAY mode...
Exit PLAY mode...
Enter PLAY mode...
Exit PLAY mode...
Enter PLAY mode...
Enter PLAY mode...
Enter MENU mode...
Enter PLAY mode...
Enter PLAY mode...
Enter PLAY mode...
Exit PLAY mode...
Enter MENU mode...
Enter MENU mode...
Exit MENU mode...
Enter PLAY mode...
Enter PLAY mode...
Exit PLAY mode...
Enter MENU mode...
Enter MENU mode...
Exit MENU mode...
Enter PLAY mode...
Enter MENU mode...
Enter PLAY mode...
Enter MENU mode...
Exit MENU mode...
Enter PLAY mode...
Enter PLAY mode...
Exit PLAY mode...
Enter PLAY mode...
Enter MENU mode...
Enter MENU mode...
Exit MENU mode...
Enter PLAY mode...
Exit PLAY mode...
Enter MENU mode...
Enter PLAY mode...
Enter PLAY mode...
Enter MENU mode...
Exit MENU mode...
Enter PLAY mode...
Exit PLAY mode...
Enter MENU mode...
Enter PLAY mode...
Enter MENU mode...
Enter MENU mode...
Enter MENU mode...
Enter MENU mode...
Exit MENU mode...
Enter PLAY mode...
Enter MENU mode...
Enter MENU mode...
Enter MENU mode...
Exit MENU mode...
Enter MENU mode...
Enter PLAY mode...
Enter MENU mode...
Enter MENU mode...
Enter MENU mode...
Enter PLAY mode...
Enter MENU mode...
Exit MENU mode...
Canon GUI tests completed.

Testing ML menu API...
Menu tests completed.

Testing multitasking...
Only one task allowed to interrupt...
Main task yielding.
Task C started.
Task C finished.
Main task back.
Main task yielding.
Task C started.
Task C finished.
Main task back.
Main task yielding.
Task C started.
Task C finished.
Main task back.
Main task yielding.
Task C started.
Task C finished.
Main task back.
Main task yielding.
Task C started.
Task C finished.
Main task back.
Main task yielding.
Task C started.
Task C finished.
Main task back.
Main task yielding.
Task C started.
Task C finished.
Main task back.
Main task yielding.
Task C started.
Task C finished.
Main task back.
Main task yielding.
Task C started.
Task C finished.
Main task back.
Main task yielding.
Task C started.
Task C finished.
Main task back.
Multitasking tests completed.

Testing exposure settings...
Camera    : Canon EOS 1100D (1100D) 1.0.6
Lens      : EF-S18-55mm f/3.5-5.6 IS
Shoot mode: 3
Shutter   : Ç60 (raw 104, 0.015625s, 16ms, apex 6.)
Aperture  : Å18 (raw 75, f/18.2, apex 8.375)
Av range  : Å4.9..Å32 (raw 45..88, f/4.9..f/32, apex 4.625..10.)
ISO       : Ä1600 (raw 104, 1600, apex 9.)
EC        : 0.0 (raw 0, 0 EV)
Flash EC  : 0.0 (raw 0, 0 EV)
Setting shutter to random values...


It was pretty cool watching it go through the tests in QEMU but it ended up like this--stuck on the exposure test:



Hum--is that a memory issue? This camera has very little memory.

So I tried running just the exposure test and got a bit further:

Code: [Select]
===============================================================================
ML/SCRIPTS/API_TEST.LUA - 2017-9-30 12:15:00
===============================================================================

Module tests...
Testing exposure settings...
Camera    : Canon EOS 1100D (1100D) 1.0.6
Lens      : EF-S18-55mm f/3.5-5.6 IS
Shoot mode: 3
Shutter   : Ç60 (raw 104, 0.015625s, 16ms, apex 6.)
Aperture  : Å18 (raw 75, f/18.2, apex 8.375)
Av range  : Å4.9..Å32 (raw 45..88, f/4.9..f/32, apex 4.625..10.)
ISO       : Ä100 (raw 72, 100, apex 5.)
EC        : 0.0 (raw 0, 0 EV)
Flash EC  : 0.0 (raw 0, 0 EV)
Setting shutter to random values...
Setting ISO to random values...
Setting aperture to random values...
Please switch to Av mode.

Now the problem is--how do you switch this camera to Av mode? It is done by the mode dial on the camera so ???
5D3.* 7D.206 700D.115 EOSM.203

t3r4n

  • New to the forum
  • *
  • Posts: 48
Re: How to run Magic Lantern into QEMU?!...
« Reply #306 on: May 05, 2018, 10:13:12 AM »
Hey a1ex,
I got it working.
- As written before export TERM=ansi
- font to 11 and fullscreen does only work up to a point and the output will wrap on the middle of screen.
- I had to eliminate the monitor and nodisplay options and run qemu into a file (this way I discovered it would crash, but it was enough to get the task and other calls except mpu).
- put something like :
Code: [Select]
test_run=$(cat test_run.txt) in the script.

The weekend is full now but maybe I can post some progress on the 750D now on sunday night.

a1ex

  • Administrator
  • Hero Member
  • *****
  • Posts: 11721
  • 5D Mark Free
Re: How to run Magic Lantern into QEMU?!...
« Reply #307 on: May 05, 2018, 10:48:20 AM »
Also got it working some minutes ago (ran the script in a Mac VM). Turns out:

- the output is broken if QEMU (run_canon_fw.sh) and ansi2txt are executed both in the same command => bad result
- the output is correctly formatted if the QEMU output is stored in a variable and then passed through ansi2txt => correct result

The same happens with bash 3.2 (that comes with Mac) and 4.4 (brew install bash).

The issue is present if piping to any other command (such as tr).

Now the problem is--how do you switch this camera to Av mode? It is done by the mode dial on the camera so ???

Press F1:

Code: [Select]
[MPU] Available keys:
...
- 0/9          : Mode dial (press only)
- V            : Movie mode (press only)
...

Wait a minute, does the Mac have numeric keys? They seem to work in the VM, but the same is true for buttons in Canon firmware present on other models :D

dfort

  • Developer
  • Hero Member
  • *****
  • Posts: 3146
Re: How to run Magic Lantern into QEMU?!...
« Reply #308 on: May 05, 2018, 04:05:01 PM »
Doh! Note to self--don't ask questions after midnight.

Wait a minute, does the Mac have numeric keys?

Yes, and the 0 and 9 keys do indeed go through the mode dial options. V switches to movie mode.

Been trying to follow the find_stubs.sh changes to get it working on Mac but still no luck over here.
5D3.* 7D.206 700D.115 EOSM.203

a1ex

  • Administrator
  • Hero Member
  • *****
  • Posts: 11721
  • 5D Mark Free
Re: How to run Magic Lantern into QEMU?!...
« Reply #309 on: May 05, 2018, 05:52:02 PM »
Updated the script to address the above issue; this time it should work on Mac.

t3r4n

  • New to the forum
  • *
  • Posts: 48
Re: How to run Magic Lantern into QEMU?!...
« Reply #310 on: May 05, 2018, 07:55:25 PM »
Hi a1ex,
it's a bit confusing for newbies like me that you are updating the original posts. I was looking in hg for the script and thought man what did I miss ... but found it on page 12 ;)
The alias for Mac doesn't work ... may I suggest the following
Code: [Select]
...
GREP=grep
if [ $(uname) == "Darwin" ]; then
    if [[ -n $(which ggrep) ]]; then
        export GREP=ggrep
    else
        echo
        echo "Error: you need GNU grep to run this script"
        echo "brew install grep"
        exit 1
    fi
...

and then a s/grep/\$GREP/g

dfort

  • Developer
  • Hero Member
  • *****
  • Posts: 3146
Re: How to run Magic Lantern into QEMU?!...
« Reply #311 on: May 05, 2018, 08:34:10 PM »
Hum--The script on Reply #273 is not working out of the box yet.

I was trying to figure out what is up with the alias command on the Mac when t3r4n posted his suggestion. Got past that hump but it is still not working. Thought I'd take a look at what is in the test_run variable like this:

Code: [Select]
    test_run=$( echo "$test_run" | ansi2txt )

    echo $test_run
    exit 1

else # not Mac

This can't be right:

Code: [Select]
./find_stubs.sh 6D
Test run...
CHK version_gen.h ./run_canon_fw.sh 6D,firmware=;boot=0 -d calls,tail -display none -monitor stdio -serial file:uart.log DebugMsg=0x6824 (from GDB script) QEMU 2.5.0 monitor - type 'help' for more information (qemu) Lockdown read 0 Lockdown read 0 Lockdown read 1 Lockdown read 1 Lockdown read 2 Lockdown read 2 Lockdown read 3 Lockdown read 3 Lockdown read 4 Lockdown read 4 00000000 - 00000FFF: eos.tcm_code 40000000 - 40000FFF: eos.tcm_data 00001000 - 1FFFFFFF: eos.ram 40001000 - 5FFFFFFF: eos.ram_uncached F0000000 - F0FFFFFF: eos.rom0 F1000000 - F1FFFFFF: eos.rom0_mirror F2000000 - F2FFFFFF: eos.rom0_mirror F3000000 - F3FFFFFF: eos.rom0_mirror F4000000 - F4FFFFFF: eos.rom0_mirror F5000000 - F5FFFFFF: eos.rom0_mirror F6000000 - F6FFFFFF: eos.rom0_mirror F7000000 - F7FFFFFF: eos.rom0_mirror F8000000 - F8FFFFFF: eos.rom1 F9000000 - F9FFFFFF: eos.rom1_mirror FA000000 - FAFFFFFF: eos.rom1_mirror FB000000 - FBFFFFFF: eos.rom1_mirror FC000000 - FCFFFFFF: eos.rom1_mirror FD000000 - FDFFFFFF: eos.rom1_mirror FE000000 - FEFFFFFF: eos.rom1_mirror FF000000 - FFFFFFFF: eos.rom1_mirror C0000000 - DFFFFFFF: eos.mmio [EOS] enabling code execution logging. [EOS] enabling memory access logging (R). [EOS] enabling singlestep. [EOS] loading './6D/ROM0.BIN' to 0xF0000000-0xF0FFFFFF [EOS] mirrored data; unique 0x800000 bytes repeated 0x2 times [EOS] loading './6D/ROM1.BIN' to 0xF8000000-0xF8FFFFFF [EOS] loading './6D/SFDATA.BIN' as serial flash, size=0x800000 [MPU] warning: non-empty spell #2 (Complete WaitID = 0x80000001 Mode group) has duplicate(s): #6 [MPU] warning: non-empty spell #52 (PROP_VIDEO_MODE) has duplicate(s): #53 [MPU] Available keys: - Arrow keys : Navigation - PgUp, PgDn : Sub dial (rear scrollwheel) - [ and ] : Main dial (top scrollwheel) - SPACE : SET - DELETE : guess (press only) - M : MENU (press only) - P : PLAY (press only) - I : INFO/DISP (press only) - Q : guess (press only) - L : LiveView (press only) - Z : Zoom in - Shift : Half-shutter - 0/9 : Mode dial (press only) - V : Movie mode (press only) - B : Open battery door - C : Open card door - F10 : Power down switch - F1 : show this help Setting BOOTDISK flag to 0 quit [MPU] WARNING: forced shutdown. For clean shutdown, please use 'Machine -> Power Down' (or 'system_powerdown' in QEMU monitor.)

It is all on one line so how can grep with with it? Also note that it didn't get very far before it shutdown.
5D3.* 7D.206 700D.115 EOSM.203

a1ex

  • Administrator
  • Hero Member
  • *****
  • Posts: 11721
  • 5D Mark Free
Re: How to run Magic Lantern into QEMU?!...
« Reply #312 on: May 05, 2018, 10:17:39 PM »
Heh, I must have installed ggrep to override the default grep, so that's why the script worked for me. Updated again.

That line looks OK, maybe you need to increase the delay. It's not just one line btw - the quotes are important.

dfort

  • Developer
  • Hero Member
  • *****
  • Posts: 3146
Re: How to run Magic Lantern into QEMU?!...
« Reply #313 on: May 06, 2018, 02:49:57 AM »
Part of the problem I'm having is probably that I'm trying to get the codes for 6D.118 and I might not have the correct CURRENT_TASK and CURRENT_ISR (oh what I'd give for the addresses you're using.) However, on the 1100D.106 it didn't work with the default 5 seconds but check out what happens when I increase the DELAY to 20 seconds:

Code: [Select]
./find_stubs.sh 1100D
Test run...
K288 ICU Firmware Version 1.0.6 ( 3.7.4 )

                                                                               
1100D/debugmsg.gdb
====================

# ./run_canon_fw.sh 1100D -d debugmsg
# ./run_canon_fw.sh 1100D -d debugmsg -s -S & arm-none-eabi-gdb -x 1100D/debugmsg.gdb

source -v debug-logging.gdb

# To get debugging symbols from Magic Lantern, uncomment one of these:
#symbol-file ../magic-lantern/platform/1100D.106/magiclantern
#symbol-file ../magic-lantern/platform/1100D.106/autoexec
#symbol-file ../magic-lantern/platform/1100D.106/stubs.o

macro define CURRENT_TASK 0x1a2c
macro define CURRENT_ISR  (MEM(0x670) ? MEM(0x674) >> 2 : 0)

# GDB hook is very slow; -d debugmsg is much faster
# ./run_canon_fw.sh will use this address, don't delete it
# b *0xFF06C91C
# DebugMsg_log

b *0xFF06FAFC
task_create_log

# not found
# b *0x...
# assert_log

b *0xFF1E8638
register_interrupt_log

b *0xFF06D708
register_func_log

# not found
# b *0x...
# mpu_send_log

# not found
# b *0x...
# mpu_recv_log

b *0xFF06F414
create_semaphore_log

b *0xFF1E8754
create_msg_queue_log

b *0xFF1EE188
CreateStateObject_log

# 0xFF1CAD94 SIO3_ISR
# 0xFF1CAD04 MREQ_ISR

cont

Interesting that increasing DELAY to 60 sec and it doesn't find any of the stubs.

Now don't kill the messenger but ansi2txt isn't available on the Mac or in Homebrew so I had build it from source. Wouldn't "cat" work as well for striping out the ascii control codes?

Code: [Select]
    test_run=$( echo "$test_run" | cat )

@t3r4n - don't know how you're doing it because I'm getting nothing on the 750D.
5D3.* 7D.206 700D.115 EOSM.203

t3r4n

  • New to the forum
  • *
  • Posts: 48
Re: How to run Magic Lantern into QEMU?!...
« Reply #314 on: May 06, 2018, 08:25:08 AM »
@dfort:
well lets do a "watch check":
Code: [Select]
$ ansi2txt -v
ansi2txt - version 0.2.2, compiled on May  1 2018 at 13:15:18.

$ bash --version
bash --version
GNU bash, version 4.4.19(1)-release (x86_64-apple-darwin16.7.0)

$ ggrep -V
ggrep -V
ggrep (GNU grep) 3.1
Packaged by Homebrew

I noticed that I already have an alias grep=... in my bash_profile so that might be a reason.
If I run the script I need to have a delay greater 30 seconds to get the stubs.


a1ex

  • Administrator
  • Hero Member
  • *****
  • Posts: 11721
  • 5D Mark Free
Re: How to run Magic Lantern into QEMU?!...
« Reply #315 on: May 06, 2018, 09:48:23 AM »
Part of the problem I'm having is probably that I'm trying to get the codes for 6D.118 and I might not have the correct CURRENT_TASK and CURRENT_ISR (oh what I'd give for the addresses you're using.)

I didn't try to find them, only noted the old ones won't work. The script does not use them; the logging backend does. I still have the ones for 1.1.6, so the context info (right column) in the test run is not correct, but the script doesn't look at it.

Code: [Select]
./find_stubs.sh 6D 118
Test run...
K302 ICU Firmware Version 1.1.8 ( 5.8.8 )
...
b *0x9798
task_create_log
...

These two were covered in the M2 topic, btw.

Quote
Interesting that increasing DELAY to 60 sec and it doesn't find any of the stubs.

Works here on the Mac VM, just very slow. Does it at least print the firmware version?

a1ex

  • Administrator
  • Hero Member
  • *****
  • Posts: 11721
  • 5D Mark Free
Re: How to run Magic Lantern into QEMU?!...
« Reply #316 on: May 06, 2018, 01:18:47 PM »
Started to rework the script in Python.

After a painful struggle with pexpect (TLDR: broken output, 1998 problems), I've managed to get some clean output from QEMU with subprocess.

Does this work on Mac, or it's back to square one?

Code: [Select]
#!/usr/bin/env python2
from __future__ import print_function
import os, sys
import subprocess
import time
import re

string_stubs = {
    "DebugMsg"              : [ "startupEntry", "startupEventDispatch", "DisablePowerSave" ],
    "task_create"           : [ "TaskMain", 'Task"', "systemtask", "CmdShell", "EvShel", "HotPlug", "PowerMgr", "PowerMan" ],
    "register_interrupt"    : [ "ICAPCHx", "OC4_14", "SIO3_ISR" ],
    "CreateStateObject"     : [ "DMState", "EMState", "PropState", "SRMState" ],
    "create_semaphore"      : [ "PropSem", "mallocLock", "stdioLock", "dm_lock" ],
    "create_msg_queue"      : [ "MainMessQueue", "QueueForDeviceIn", "SystemTaskMSGQueue" ],
}

string_stubs_followed_by = {
    "register_func"         : ([ "flashwrite", "gpiowrite" ], ["NameService"])
}

def eprint(*args, **kwargs):
    print(*args, file=sys.stderr, **kwargs)

cam = sys.argv[1]
fw = sys.argv[2] if 2 in sys.argv else ""

eprint("Test run...")

cmd = ('./run_canon_fw.sh %s,firmware="%s;boot=0" -d calls,tail '
            '-display none -monitor stdio -serial file:uart.log' % (cam, fw))
eprint(cmd)
qemu = subprocess.Popen(cmd, shell=True, stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE)

# tried pexpect, but ran into lots of problems
# including broken terminal, missing newlines, broken pipe messages
# todo: find a minimal example and file a bug report?
qemu.output = ""

def qexpect(strings, timeout):
    t0 = time.time()
    while time.time() - t0 < timeout:
        output = qemu.stderr.readline()
        qemu.output += output
        if output == '' and qemu.poll() is not None:
            eprint("QEMU not running!")
            break
        if any([str in output for str in strings]):
            eprint(output)
            break
    rc = qemu.poll()
    return any([str in output for str in strings])

if qexpect(string_stubs["task_create"], 60):
    eprint("Task found")
else:
    eprint("Task not found")

# let it run for 5 seconds
qexpect([], 5)

try: print("quit", file=qemu.stdin)
except: pass

q_stdout, q_stderr = qemu.communicate()
qemu.wait()
qemu.output += q_stderr
qemu.lines = qemu.output.split("\n")

with open("find_stubs.log", "w") as log:
    print(qemu.output, file=log)

# extract the called function from a line that looks like this:
# call 0x1234(...)
# call 0x1234 DebugMsg(...)
#   -> 0x5678                  # optional (direct jump)
#    -> 0xFFABCD               # also optional
def extract_call(lines):
    assert len(lines) == 3
    if " -> " in lines[1]:
        jump_line = lines[2] if " -> " in lines[2] else lines[1]
        m = re.search('(?<=-> )(.*?)(?= +at )', jump_line)
        if m:
            return int(m.groups()[0], 16)
    else:
        m = re.search('(?<=call )(.*?)(?=\()', lines[0])
        if m:
            return int(m.groups()[0].split(" ")[0], 16)

# strings       : list of strings to be found
#                 first string has the highest priority
# next_strings  : one of these should be on the next line (optional)
def find_stub_from_strings(strings, next_strings):
    lines = qemu.lines
    for s in strings:
        for i,l in enumerate(lines[:-3]):
            if s in l and "call " in l:
                if next_strings is None or any([ns in lines[i+1] for ns in next_strings]):
                    return extract_call(lines[i:i+3])

eprint("")

stubs_found = {}
for name, strings in string_stubs.iteritems():
    stub = find_stub_from_strings(strings, None)
    if stub:
        stubs_found[name] = stub
        eprint("%8X %s" % (stub, name))
    else:
        eprint("     ???", name)

for name, (strings, next_strings) in string_stubs_followed_by.iteritems():
    stub = find_stub_from_strings(strings, next_strings)
    if stub:
        stubs_found[name] = stub
        eprint("%8X %s" % (stub, name))
    else:
        eprint("     ???", name)

Good luck making this work in Python 3...

t3r4n

  • New to the forum
  • *
  • Posts: 48
Re: How to run Magic Lantern into QEMU?!...
« Reply #317 on: May 06, 2018, 04:39:00 PM »
Quote
Does this work on Mac, or it's back to square one?
Well no error and if this output is expected yes
Code: [Select]
./findstub.py 750D
Test run...
./run_canon_fw.sh 750D,firmware=";boot=0" -d calls,tail -display none -monitor stdio -serial file:uart.log
    call 0xFE3CDF44(fe1f845c "PowerMgr", 20, 400, fe1f82e9)                      at [init:fe1f837d:fe506533]

Task found

    211B CreateStateObject
    1775 register_interrupt
80001FC5 create_semaphore
    1E45 task_create
     ??? DebugMsg
     ??? create_msg_queue
FE445CB9 register_func

dfort

  • Developer
  • Hero Member
  • *****
  • Posts: 3146
Re: How to run Magic Lantern into QEMU?!...
« Reply #318 on: May 06, 2018, 06:09:38 PM »
Here's what I'm getting:

Code: [Select]
$ python find_stubs.py 1100D
Test run...
./run_canon_fw.sh 1100D,firmware=";boot=0" -d calls,tail -display none -monitor stdio -serial file:uart.log
    call 0xFF06FAFC(ff1eaa10 "PowerMgr", 20, 400, ff1ea7dc)                      at [init:ff1ea910:ff072fe0]

Task found

FF1EE188 CreateStateObject
FF1E8638 register_interrupt
FF017630 create_semaphore
FF06FAFC task_create
FF06C91C DebugMsg
     ??? create_msg_queue
FF06D708 register_func

Noticed that create_semaphore is different (FF06F414 on the bash script) but the rest matches the values in Reply #313.

well lets do a "watch check":

Code: [Select]
$ ansi2txt -v
ansi2txt - version 0.2.2, compiled on May  6 2018 at 08:22:16.

$ bash --version
GNU bash, version 3.2.57(1)-release (x86_64-apple-darwin17)

$ ggrep -V
ggrep (GNU grep) 3.1
Packaged by Homebrew

The difference might be that you're running bash 4. I had that running for a while but one of the software updates reset it to Apple's default which is version 3. The find_stubs.sh script uses "#!/bin/bash" so it should be using Apple's bash instead of the environmental preference used in the other QEMU scripts -- "#!/usr/bin/env bash"

To test options for ansi2txt I removed it so I had to re-compile it to do our "watch check" -- ansi2txt isn't available for Mac unless you build it from source, right? ansi2txt is used in other ML scripts but not having it installed doesn't seem to be a problem.

Turned out that the reason I wasn't having any success with the 750D was because I don't have a SFDATA.BIN for it. Substituted one from the 700D and got the same results you got. (bash script working too.)

Code: [Select]
$ python find_stubs.py 750D
Test run...
./run_canon_fw.sh 750D,firmware=";boot=0" -d calls,tail -display none -monitor stdio -serial file:uart.log
    call 0xFE3CDF44(fe1f845c "PowerMgr", 20, 400, fe1f82e9)                      at [init:fe1f837d:fe506533]

Task found

    211B CreateStateObject
    1775 register_interrupt
80001FC5 create_semaphore
    1E45 task_create
     ??? DebugMsg
     ??? create_msg_queue
FE445CB9 register_func

RE: DELAY=60

Does it at least print the firmware version?

Just tried it again and yes, it prints the firmware version. It is very slow and you're re-coding this in python but thought I'd re-check it anyway and the 60 sec. delay worked this time. Go figure.

RE: CURRENT_TASK and CURRENT_ISR

These two were covered in the M2 topic, btw.

Yes, I know. I've been going over that part over and over trying to understand it and as far as I can see the values haven't changed but I'm obviously not looking hard enough.

BTW--been going back to that EOSM2 topic many times for reference. Someday maybe I'll be able to get that port working properly.
5D3.* 7D.206 700D.115 EOSM.203

dfort

  • Developer
  • Hero Member
  • *****
  • Posts: 3146
Re: How to run Magic Lantern into QEMU?!...
« Reply #319 on: May 07, 2018, 09:30:35 PM »
Running the lua tests in QEMU is helping with the firmware updates I've been doing so I thought I'd try the lua tests on the EOSM2 but before going there I did a run with the EOSM. Besides some of the issues I posted about the lua test on a "real" EOSM, I've been getting this in QEMU:



But I am in M mode! Note that it doesn't matter if I try to switch to M while running the tests or switch to M before running the tests, I get the same message.
5D3.* 7D.206 700D.115 EOSM.203

reddeercity

  • Hero Member
  • *****
  • Posts: 1758
Re: How to run Magic Lantern into QEMU?!...
« Reply #320 on: June 11, 2018, 02:38:14 AM »
I Got problems again
Currently experimenting with an updated toolchain, in the qemu branch. I'm following this guide (actually I'm testing it on a fresh Ubuntu VM):

Code: [Select]
sudo apt install mercurial
hg clone https://bitbucket.org/hudson/magic-lantern
cd magic-lantern
hg update qemu -C
cd contrib/qemu
./install.sh
following this , i get 2 error . after the "Install.sh" and stops and doesn't install the emulator
Code: [Select]
W: Failed to fetch http://ppa.launchpad.net/accessibility-dev/ppa/ubuntu/dists/trusty/main/binary-amd64/Packages  403  Forbidden

W: Failed to fetch http://ppa.launchpad.net/accessibility-dev/ppa/ubuntu/dists/trusty/main/binary-i386/Packages  403  Forbidden
i can't even get it manually and install it , still say    403  Forbidden :(
using 64bit VM "Ubuntu Mate 14.04 LTS"  on Win7pro i5 dell laptop though VirtualBox
from here Quick Guide and Solutions for VirtualBox so is not fully supported ? Do i have to install a new updated version of Ubuntu ?

reddeercity

  • Hero Member
  • *****
  • Posts: 1758
Re: How to run Magic Lantern into QEMU?!...
« Reply #321 on: June 13, 2018, 06:22:36 AM »
Success :D !



A word to the wise , make sure your Linux OS is up to date  ::)
That was the problem all a long , I started with the per-configured VM Ubuntu Mate 14.04 LTS(see previous post) and had nothing but trouble with trying to get Qemu up and running.
After a short period of confusion i notice a window to upgrade to the latest version of Ubuntu Mate  :o  16.xx something , took about 2 hours to upgrade then ran the
Code: [Select]
./install.shafter that everything when smoothly just like what a1ex posted here now i hope i can get
the missing parts to 5d2/D4 Lossless compression  8)

reddeercity

  • Hero Member
  • *****
  • Posts: 1758
Re: How to run Magic Lantern into QEMU?!...
« Reply #322 on: June 15, 2018, 06:57:29 AM »
I'm getting just a grey screen on the 5d2 & 5d3 with this
Code: [Select]
/run_canon_fw.sh 5D3,firmware="boot=0" -s -S & arm-none-eabi-gdb -x 5D3/patches.gdbfor the 5d2 i just drop
Code: [Select]
-x 5D3/patches.gdband of course i changed 5d3 to 5d2
I can get the bootloader display test to come up like in the my previous post ,
with
Code: [Select]
./run_canon_fw.sh 5D3is there some switches i need to add ?
or is it a 64bit Linux (Ubuntu 16.04) i though i read something about it or maybe it's dependencies  .

i ran this for the 5d3.113
Code: [Select]
make -C ../magic-lantern/platform/5D3.113 install_qemu
./run_canon_fw.sh 5D3,firmware="boot=1" -s -S & arm-none-eabi-gdb -x 5D3/patches.gdb

and got this , seem to hang after "mvrChangeAckCBR:Video ..... " see bottom screen shot
 



what i'm i missing here ?

a1ex

  • Administrator
  • Hero Member
  • *****
  • Posts: 11721
  • 5D Mark Free
Re: How to run Magic Lantern into QEMU?!...
« Reply #323 on: June 15, 2018, 07:42:41 AM »
The GUI should be in the VGA tab; is the serial0 displayed by default?

There's no more patches.gdb for 5D3; this is enough (same for 5D2):
Code: [Select]
./run_canon_fw.sh 5D3,firmware="boot=0"

If the above doesn't bring the GUI, I'd like to see the full log (with -d debugmsg).

For older Ubuntu, see reply #292.

reddeercity

  • Hero Member
  • *****
  • Posts: 1758
Re: How to run Magic Lantern into QEMU?!...
« Reply #324 on: June 16, 2018, 06:57:08 AM »
The GUI should be in the VGA tab; is the serial0 displayed by default?
No it defaults to VGA,  i just had it in serial0 to see what happening
There's no more patches.gdb for 5D3; this is enough (same for 5D2):
Code: [Select]
./run_canon_fw.sh 5D3,firmware="boot=0"
still has a grey screen
OK , i ran
Code: [Select]
./run_canon_fw.sh 5D3,firmware="boot=0" -d debugmsg
i did see any log being saved , it did print out a lot of data like a log in terminal
Code: [Select]
[    Fstorage:ff1ae44c ] (9e:03) fssRegister (0, 0)
[         Mrk:ff4386bc ] (25:03) CreateObject : Handle = 0xa0082006
[         Mrk:ff13b8a8 ] (00:01) [PM] DisablePowerSave (Counter = 1)
[         Mrk:ff11a758 ] (27:01) FC_IsThereHandle
[         Mrk:ff298c98 ] (27:01) _FC_LockCatalog (2)
[         Mrk:ff2a934c ] (27:01) _FC_IsThereHandle (2, 2, 512, 6)
[         Mrk:ff2a934c ] (27:01) _FC_IsThereHandle (2, 2, 512, 6)
[         Mrk:ff298cf4 ] (27:01) _FC_UnlockCatalog (2)
[         Mrk:ff4386e4 ] (25:03) CreateObject : File not exist
[         Mrk:ff2d9a54 ] (25:03) PrepareCallback : Success(Handle = 0xa0082006)
[         Mrk:ff2d9a54 ] (25:03) PrepareCallback : Success(Handle = 0xa0082006)
[         Mrk:ff2acae0 ] (27:01) FC_RegisterHandleCallback
[         Mrk:ff13b918 ] (00:01) [PM] EnablePowerSave (Counter = 0)
[         Mrk:ff4386bc ] (25:03) CreateObject : Handle = 0xa0090006
[         Mrk:ff13b8a8 ] (00:01) [PM] DisablePowerSave (Counter = 1)
[         Mrk:ff11a758 ] (27:01) FC_IsThereHandle
[         Mrk:ff298c98 ] (27:01) _FC_LockCatalog (2)
[         Mrk:ff2a934c ] (27:01) _FC_IsThereHandle (2, 2, 4096, 6)
[         Mrk:ff298cf4 ] (27:01) _FC_UnlockCatalog (2)
[         Mrk:ff4386e4 ] (25:03) CreateObject : File not exist
[         Mrk:ff2d9a54 ] (25:03) PrepareCallback : Success(Handle = 0xa0090006)
[         Mrk:ff2acae0 ] (27:01) FC_RegisterHandleCallback
[         Mrk:ff13b918 ] (00:01) [PM] EnablePowerSave (Counter = 0)
[     MetaCtg:ff42b108 ] (27:03) fcmcOpenMetaCtg Start
[     MetaCtg:ff58a074 ] (27:03) FcmcMusicOpenMetaCtg
[     MetaCtg:ff58ae7c ] (27:03) Noting MUSIC Dir. (B:/DCIM/MUSIC)
[     MetaCtg:ff58ae7c ] (27:03) Noting MUSIC Dir. (B:/DCIM/MUSIC)
[     MetaCtg:ff58a138 ] (27:03) FcmcMusicOpenMetaCtg : Nothing music dir!
[     MetaCtg:ff58a138 ] (27:03) FcmcMusicOpenMetaCtg : Nothing music dir!
[     MetaCtg:ff6b16e0 ] (23:01) sdReadBlk: st=352, num=32, buf=0x402f6000
[     MetaCtg:ff6b16e0 ] (23:01) sdReadBlk: st=352, num=32, buf=0x402f6000
[     MetaCtg:ff6b0258 ] (23:01) sdDMAReadBlk: st=352, num=32
[    MainCtrl:ff0cea60 ] (9c:01) ID:8(19)
[MPU] Sending : 06 05 04 0e 01 00  (PROP 8002000D)
[    MainCtrl:ff13b8a8 ] (00:01) [PM] DisablePowerSave (Counter = 1)
[    MainCtrl:ff13b918 ] (00:01) [PM] EnablePowerSave (Counter = 0)
[    MainCtrl:ff0cea60 ] (9c:01) ID:8(19)
[    MainCtrl:ff105150 ] (33:01) PD_NotifyOlcInfoChanged[1][4][1]
[    MainCtrl:ff104798 ] (33:01) SendPipeEvent [0][0][10]
[    MainCtrl:ff104798 ] (33:01) SendPipeEvent [0][0][10]
[MPU] Sending : 08 06 01 04 03 00 00 00  (PROP_AF_MODE)
[    MainCtrl:ff13b8a8 ] (00:01) [PM] DisablePowerSave (Counter = 1)
[    MainCtrl:ff13b918 ] (00:01) [PM] EnablePowerSave (Counter = 0)
[    MainCtrl:ff104798 ] (33:01) SendPipeEvent [0][0][10]
[    MainCtrl:ff104798 ] (33:01) SendPipeEvent [0][0][10]
[    MainCtrl:ff105150 ] (33:01) PD_NotifyOlcInfoChanged[4][4][0]
[    MainCtrl:ff105150 ] (33:01) PD_NotifyOlcInfoChanged[4][4][0]
[    MainCtrl:ff105150 ] (33:01) PD_NotifyOlcInfoChanged[4][4][0]
[    MainCtrl:ff104798 ] (33:01) SendPipeEvent [0][0][10]
[    MainCtrl:ff1bbc34 ] (9f:01)     tv 58
[MPU] Sending : 06 05 03 37 00 00  (PROP_MIRROR_DOWN_IN_MOVIE_MODE)
[    MainCtrl:ff13b8a8 ] (00:01) [PM] DisablePowerSave (Counter = 1)
[    MainCtrl:ff13b918 ] (00:01) [PM] EnablePowerSave (Counter = 0)
[    MainCtrl:ff1bbc34 ] (9f:01)     tv 58
[    MainCtrl:ff1bbc50 ] (9f:01)     range tv a0,10
[    MainCtrl:ff1bbc50 ] (9f:01)     range tv a0,10
[    MainCtrl:ff1bbd90 ] (9f:01)     av 38
[    MainCtrl:ff1bbd90 ] (9f:01)     av 38
[    MainCtrl:ff1bbdac ] (9f:01)     range av 50,20
[MPU] Sending : 06 05 03 35 01 00  (PROP_BATTERY_REPORT_COUNTER)
[    MainCtrl:ff13b8a8 ] (00:01) [PM] DisablePowerSave (Counter = 1)
[    MainCtrl:ff13b918 ] (00:01) [PM] EnablePowerSave (Counter = 0)
[    MainCtrl:ff1bbdf8 ] (9f:01)     iso 70
[    MainCtrl:ff105150 ] (33:01) PD_NotifyOlcInfoChanged[5][4][0]
[    MainCtrl:ff105150 ] (33:01) PD_NotifyOlcInfoChanged[5][4][0]
[    MainCtrl:ff104798 ] (33:01) SendPipeEvent [0][0][10]
[    MainCtrl:ff104798 ] (33:01) SendPipeEvent [0][0][10]
[    MainCtrl:ff1bbb18 ] (9f:01)     aeb_count 0
[MPU] Sending : 1c 1b 03 1d 3f 00 00 00 00 72 00 4c 50 2d 45 36 00 00 00 00 00 01 00 ae 7e 3b 61 00  (PROP_BATTERY_REPORT)
[    MainCtrl:ff13b8a8 ] (00:01) [PM] DisablePowerSave (Counter = 1)
[    MainCtrl:ff13b918 ] (00:01) [PM] EnablePowerSave (Counter = 0)
[    MainCtrl:ff1bbb18 ] (9f:01)     aeb_count 0
[    MainCtrl:ff105150 ] (33:01) PD_NotifyOlcInfoChanged[2][4][0]
[    MainCtrl:ff104798 ] (33:01) SendPipeEvent [0][0][10]
[    MainCtrl:ff104798 ] (33:01) SendPipeEvent [0][0][10]
[    MainCtrl:ff1bbf04 ] (9f:01)     mirror_up 0
[    MainCtrl:ff105150 ] (33:01) PD_NotifyOlcInfoChanged[0][8][0]
[    MainCtrl:ff104798 ] (33:01) SendPipeEvent [0][0][10]
[    MainCtrl:ff1bbf90 ] (9f:01) rmt_olc_com_gr8:0,0,0
[    MainCtrl:ff1bbf90 ] (9f:01) rmt_olc_com_gr8:0,0,0
[    MainCtrl:ff105150 ] (33:01) PD_NotifyOlcInfoChanged[3][4][0]
[    MainCtrl:ff104798 ] (33:01) SendPipeEvent [0][0][10]
[    MainCtrl:ff1bbfbc ] (9f:01)     focusstatus 0,1
[    MainCtrl:ff105150 ] (33:01) PD_NotifyOlcInfoChanged[0][8][0]
[    MainCtrl:ff105150 ] (33:01) PD_NotifyOlcInfoChanged[0][8][0]
[    MainCtrl:ff104798 ] (33:01) SendPipeEvent [0][0][10]
[    MainCtrl:ff104798 ] (33:01) SendPipeEvent [0][0][10]
[    MainCtrl:ff1bc13c ] (9f:01)     focusinfo 0,0,1
[    MainCtrl:ff0cc028 ] (89:03) bindReceiveNewTFTOLC
[    MainCtrl:ff0decb0 ] (85:03) GUI_Control:103 0x96fee0
[     PropMgr:ff104bac ] (33:01) ptpPropChangeEvCBR[80000004][2][3]
[     PropMgr:ff104bac ] (33:01) ptpPropChangeEvCBR[80000004][2][3]
[     PropMgr:ff104798 ] (33:01) SendPipeEvent [0][0][9]
[     PropMgr:ff104798 ] (33:01) SendPipeEvent [0][0][49]
[     PropMgr:ff1a4cec ] (83:01) changeCBR PropID(0x80000004)Parameter(3)Size(2)
[    MainCtrl:ff0cea60 ] (9c:01) ID:8000002C(20)
[     PropMgr:ff104798 ] (33:01) SendPipeEvent [0][0][49]
[     PropMgr:ff104798 ] (33:01) SendPipeEvent [0][0][49]
[     PropMgr:ff104798 ] (33:01) SendPipeEvent [0][0][49]
[     PropMgr:ff104798 ] (33:01) SendPipeEvent [0][0][49]
[     PropMgr:ff1a4cec ] (83:01) changeCBR PropID(0x80030034)Parameter(0)Size(4)
[         Gmt:ff170c8c ] (9a:02) gmtProperty ID=0x80000004(0x3)
[         Gmt:ff177a34 ] (9a:03) [WAKU] gmtChangeLensMFFace (state:0)
[         Gmt:ff177ab0 ] (9a:00) [WAKU] Center : gmtChangeLensMFFace (746 481)
[         Gmt:ff175770 ] (9a:03) [WAKU] gmtUpdateFrameWithModeChange (state:0 mani:22)
[         Gmt:ff175544 ] (9a:00) [WAKU] UpdateImageMagnify M:0 Z:65536 S:0 A:0
[         Gmt:ff1755dc ] (9a:00) [WAKU] Center : UpdateImageMagnify (746 481)
[         Gmt:ff175370 ] (9a:02) [WAKU] ZoomRatio:00010000 LvMode:0
[         Gmt:ff175394 ] (9a:02) [WAKU] Avail ImgW:H(5760:3840)->(5760:3840)
[         Gmt:ff1753b8 ] (9a:02) [WAKU] Avail WinW:H(1152:768)->(1152:768)
[         Gmt:ff1753dc ] (9a:02) [WAKU] Avail X:Y(0:0)->(0:0)
[         Gmt:ff173018 ] (9a:03) gmtChangeAvailableArea state:1
[         Gmt:ff0ddbec ] (9a:01) Event 23 Result State 1->1
[         Gmt:ff174f80 ] (9a:01) [WAKU] Event 8 Result State 0->6
[         Gmt:ff0ddbec ] (9a:01) Event 19 Result State 1->1 ID 0x80000004(3)
[     PropMgr:ff0f78bc ] (8f:02) dcsChangeAckCBR (0x80050007, 0x1680)
[     PropMgr:ff270ea0 ] (33:01) PropCBR camctrl:0x80050007,0x1680
[     PropMgr:ff1a4cec ] (83:01) changeCBR PropID(0x80050007)Parameter(5760)Size(124)
[ GuiMainTask:ff0df028 ] (84:01) GUI_CONTROL:103
[ GuiMainTask:ff347730 ] (84:03) copyOlcDataToStorage Length(66)group1(0xff)group2(0x1f)
[ GuiMainTask:ff347758 ] (84:01) copyOlcDataToStorage data02[0x01]
[ GuiMainTask:ff347758 ] (84:01) copyOlcDataToStorage data03[0x00]
[ GuiMainTask:ff347758 ] (84:01) copyOlcDataToStorage data04[0x01]
[ GuiMainTask:ff347758 ] (84:01) copyOlcDataToStorage data05[0x01]
[ GuiMainTask:ff347758 ] (84:01) copyOlcDataToStorage data06[0xa0]
[ GuiMainTask:ff347758 ] (84:01) copyOlcDataToStorage data07[0x10]
[ GuiMainTask:ff347758 ] (84:01) copyOlcDataToStorage data08[0x00]
[ GuiMainTask:ff347758 ] (84:01) copyOlcDataToStorage data09[0x58]
[ GuiMainTask:ff347758 ] (84:01) copyOlcDataToStorage data10[0x01]
[ GuiMainTask:ff347758 ] (84:01) copyOlcDataToStorage data11[0x01]
[ GuiMainTask:ff347758 ] (84:01) copyOlcDataToStorage data12[0x50]
[ GuiMainTask:ff347758 ] (84:01) copyOlcDataToStorage data13[0x20]
[ GuiMainTask:ff347758 ] (84:01) copyOlcDataToStorage data14[0x38]
[ GuiMainTask:ff347758 ] (84:01) copyOlcDataToStorage data15[0x01]
[ GuiMainTask:ff347758 ] (84:01) copyOlcDataToStorage data16[0x01]
[ GuiMainTask:ff347758 ] (84:01) copyOlcDataToStorage data17[0x00]
[ GuiMainTask:ff347758 ] (84:01) copyOlcDataToStorage data18[0x70]
[ GuiMainTask:ff347758 ] (84:01) copyOlcDataToStorage data19[0x04]
[ GuiMainTask:ff347758 ] (84:01) copyOlcDataToStorage data20[0x01]
[ GuiMainTask:ff347758 ] (84:01) copyOlcDataToStorage data21[0x00]
[ GuiMainTask:ff347758 ] (84:01) copyOlcDataToStorage data22[0xe3]
[ GuiMainTask:ff347758 ] (84:01) copyOlcDataToStorage data23[0x00]
[ GuiMainTask:ff347758 ] (84:01) copyOlcDataToStorage data24[0x00]
[ GuiMainTask:ff347758 ] (84:01) copyOlcDataToStorage data25[0x00]
[ GuiMainTask:ff347758 ] (84:01) copyOlcDataToStorage data26[0x00]
[ GuiMainTask:ff347758 ] (84:01) copyOlcDataToStorage data27[0x00]
[ GuiMainTask:ff347758 ] (84:01) copyOlcDataToStorage data28[0x00]
[ GuiMainTask:ff347758 ] (84:01) copyOlcDataToStorage data29[0x01]
[ GuiMainTask:ff347758 ] (84:01) copyOlcDataToStorage data30[0x00]
[ GuiMainTask:ff347758 ] (84:01) copyOlcDataToStorage data31[0x00]
[ GuiMainTask:ff347758 ] (84:01) copyOlcDataToStorage data32[0x00]
[ GuiMainTask:ff347758 ] (84:01) copyOlcDataToStorage data33[0x00]
[ GuiMainTask:ff347758 ] (84:01) copyOlcDataToStorage data34[0x00]
[ GuiMainTask:ff347758 ] (84:01) copyOlcDataToStorage data35[0x00]
[ GuiMainTask:ff347758 ] (84:01) copyOlcDataToStorage data36[0x00]
[ GuiMainTask:ff347758 ] (84:01) copyOlcDataToStorage data37[0x00]
[ GuiMainTask:ff347758 ] (84:01) copyOlcDataToStorage data38[0x00]
[ GuiMainTask:ff347758 ] (84:01) copyOlcDataToStorage data39[0x00]
[ GuiMainTask:ff347758 ] (84:01) copyOlcDataToStorage data40[0x00]
[ GuiMainTask:ff347758 ] (84:01) copyOlcDataToStorage data41[0x00]
[ GuiMainTask:ff347758 ] (84:01) copyOlcDataToStorage data42[0x00]
[ GuiMainTask:ff347758 ] (84:01) copyOlcDataToStorage data43[0x00]
[ GuiMainTask:ff347758 ] (84:01) copyOlcDataToStorage data44[0x00]
[ GuiMainTask:ff347758 ] (84:01) copyOlcDataToStorage data45[0x00]
[ GuiMainTask:ff347758 ] (84:01) copyOlcDataToStorage data46[0x00]
[ GuiMainTask:ff347758 ] (84:01) copyOlcDataToStorage data47[0x00]
[ GuiMainTask:ff347758 ] (84:01) copyOlcDataToStorage data48[0x00]
[ GuiMainTask:ff347758 ] (84:01) copyOlcDataToStorage data49[0x00]
[ GuiMainTask:ff347758 ] (84:01) copyOlcDataToStorage data50[0x00]
[ GuiMainTask:ff347758 ] (84:01) copyOlcDataToStorage data51[0x00]
[ GuiMainTask:ff347758 ] (84:01) copyOlcDataToStorage data52[0x00]
[ GuiMainTask:ff347758 ] (84:01) copyOlcDataToStorage data53[0x00]
[ GuiMainTask:ff347758 ] (84:01) copyOlcDataToStorage data54[0x00]
[ GuiMainTask:ff347758 ] (84:01) copyOlcDataToStorage data55[0x00]
[ GuiMainTask:ff347758 ] (84:01) copyOlcDataToStorage data56[0x00]
[ GuiMainTask:ff347758 ] (84:01) copyOlcDataToStorage data57[0x00]
[ GuiMainTask:ff347758 ] (84:01) copyOlcDataToStorage data58[0x00]
[ GuiMainTask:ff347758 ] (84:01) copyOlcDataToStorage data59[0x00]
[ GuiMainTask:ff347758 ] (84:01) copyOlcDataToStorage data60[0x00]
[ GuiMainTask:ff347758 ] (84:01) copyOlcDataToStorage data61[0x00]
[ GuiMainTask:ff347758 ] (84:01) copyOlcDataToStorage data62[0x00]
[ GuiMainTask:ff347758 ] (84:01) copyOlcDataToStorage data63[0x00]
[ GuiMainTask:ff347758 ] (84:01) copyOlcDataToStorage data64[0x00]
[ GuiMainTask:ff347758 ] (84:01) copyOlcDataToStorage data65[0x00]
[ GuiMainTask:ff1a46dc ] (83:03) GUI_SetLvMirrorDownStatus status=0 prestatus=0
[ GuiMainTask:ff1a7100 ] (84:01) gui control end
[ GuiMainTask:ff1a7124 ] (84:01) 0msec = 660 - 660
[ GuiMainTask:ff1a7140 ] (84:01) 0msec = 826624 - 826624
[     CtrlSrv:ff189d20 ] (84:01) copyDataToStorage eventID(0x80000004)Data(3)size(0)
[     CtrlSrv:ff354fec ] (83:03) MainEventHndler PROP_MIRROR_DOWN_IN_MOVIE_MODE(0)fUI_OK(1)
[     CtrlSrv:ff189d20 ] (84:01) copyDataToStorage eventID(0x80030034)Data(0)size(0)
[     CtrlSrv:ff18d594 ] (83:03) PROP_MIRROR_DOWN_IN_MOVIE_MODE [0]
[     CtrlSrv:ff189d20 ] (84:01) copyDataToStorage eventID(0x80050007)Data(9897288)size(124)
[     CtrlSrv:ff189d20 ] (84:01) copyDataToStorage eventID(0x80050007)Data(9897288)size(124)
[     CtrlSrv:ff189d20 ] (84:01) copyDataToStorage eventID(0x80050007)Data(9897288)size(124)
[      PtpDps:ff1044e0 ] (33:01) Dispatch : Cur = 0, Event = 10, Param = 0
[      PtpDps:ff261158 ] (33:01) ptpPropertyOlcInfoChangeEvent[1][4][1]
[      PtpDps:ff2519d8 ] (32:01) GetConnectSessionFirst end[0][3]
[MPU] Sending : 06 04 03 36 00 00  (PROP_BATTERY_REPORT_FINISHED)
[      PtpDps:ff13b8a8 ] (00:01) [PM] DisablePowerSave (Counter = 1)
[      PtpDps:ff13b918 ] (00:01) [PM] EnablePowerSave (Counter = 0)
[      PtpDps:ff26c678 ] (33:01) ptpNotifyOlcInfoChanged:1,4,1
[      PtpDps:ff1044e0 ] (33:01) Dispatch : Cur = 0, Event = 10, Param = 0
[      PtpDps:ff261158 ] (33:01) ptpPropertyOlcInfoChangeEvent[4][4][0]
[      PtpDps:ff2519d8 ] (32:01) GetConnectSessionFirst end[0][3]
[      PtpDps:ff26c678 ] (33:01) ptpNotifyOlcInfoChanged:0,4,1
[      PtpDps:ff2519d8 ] (32:01) GetConnectSessionFirst end[0][3]
[      PtpDps:ff251bcc ] (32:01) GetConnectSessionHandle 1 err[0][0]
[      PtpDps:ff2519d8 ] (32:01) GetConnectSessionFirst end[0][3]
[      PtpDps:ff251bcc ] (32:01) GetConnectSessionHandle 1 err[0][0]
[      PtpDps:ff26b684 ] (33:01) ptpGetPropEvent FAILED! [d1c3][0]
[      PtpDps:ff1044e0 ] (33:01) Dispatch : Cur = 0, Event = 10, Param = 0
[      PtpDps:ff261158 ] (33:01) ptpPropertyOlcInfoChangeEvent[5][4][0]
[      PtpDps:ff2519d8 ] (32:01) GetConnectSessionFirst end[0][3]
[      PtpDps:ff26c678 ] (33:01) ptpNotifyOlcInfoChanged:0,4,1
[      PtpDps:ff2519d8 ] (32:01) GetConnectSessionFirst end[0][3]
[      PtpDps:ff251bcc ] (32:01) GetConnectSessionHandle 1 err[0][0]
[      PtpDps:ff2519d8 ] (32:01) GetConnectSessionFirst end[0][3]
[      PtpDps:ff251bcc ] (32:01) GetConnectSessionHandle 1 err[0][0]
[      PtpDps:ff26b684 ] (33:01) ptpGetPropEvent FAILED! [d1c7][0]
[      PtpDps:ff1044e0 ] (33:01) Dispatch : Cur = 0, Event = 10, Param = 0
[      PtpDps:ff261158 ] (33:01) ptpPropertyOlcInfoChangeEvent[2][4][0]
[      PtpDps:ff2519d8 ] (32:01) GetConnectSessionFirst end[0][3]
[      PtpDps:ff26c678 ] (33:01) ptpNotifyOlcInfoChanged:0,4,1
[      PtpDps:ff2519d8 ] (32:01) GetConnectSessionFirst end[0][3]
[      PtpDps:ff251bcc ] (32:01) GetConnectSessionHandle 1 err[0][0]
[      PtpDps:ff2519d8 ] (32:01) GetConnectSessionFirst end[0][3]
[      PtpDps:ff251bcc ] (32:01) GetConnectSessionHandle 1 err[0][0]
[      PtpDps:ff26b684 ] (33:01) ptpGetPropEvent FAILED! [d1bf][0]
[      PtpDps:ff1044e0 ] (33:01) Dispatch : Cur = 0, Event = 10, Param = 0
[      PtpDps:ff261158 ] (33:01) ptpPropertyOlcInfoChangeEvent[0][8][0]
[      PtpDps:ff2519d8 ] (32:01) GetConnectSessionFirst end[0][3]
[      PtpDps:ff26c678 ] (33:01) ptpNotifyOlcInfoChanged:0,8,1
[      PtpDps:ff2519d8 ] (32:01) GetConnectSessionFirst end[0][3]
[      PtpDps:ff251bcc ] (32:01) GetConnectSessionHandle 1 err[0][0]
[      PtpDps:ff2519d8 ] (32:01) GetConnectSessionFirst end[0][3]
[      PtpDps:ff251bcc ] (32:01) GetConnectSessionHandle 1 err[0][0]
[      PtpDps:ff26b684 ] (33:01) ptpGetPropEvent FAILED! [d1d3][0]
[      PtpDps:ff1044e0 ] (33:01) Dispatch : Cur = 0, Event = 10, Param = 0
[      PtpDps:ff261158 ] (33:01) ptpPropertyOlcInfoChangeEvent[3][4][0]
[      PtpDps:ff2519d8 ] (32:01) GetConnectSessionFirst end[0][3]
[      PtpDps:ff26c678 ] (33:01) ptpNotifyOlcInfoChanged:0,4,1
[      PtpDps:ff2519d8 ] (32:01) GetConnectSessionFirst end[0][3]
[      PtpDps:ff251bcc ] (32:01) GetConnectSessionHandle 1 err[0][0]
[      PtpDps:ff2519d8 ] (32:01) GetConnectSessionFirst end[0][3]
[      PtpDps:ff251bcc ] (32:01) GetConnectSessionHandle 1 err[0][0]
[      PtpDps:ff26b684 ] (33:01) ptpGetPropEvent FAILED! [d1c0][0]
[      PtpDps:ff1044e0 ] (33:01) Dispatch : Cur = 0, Event = 10, Param = 0
[      PtpDps:ff261158 ] (33:01) ptpPropertyOlcInfoChangeEvent[0][8][0]
[      PtpDps:ff2519d8 ] (32:01) GetConnectSessionFirst end[0][3]
[      PtpDps:ff26c678 ] (33:01) ptpNotifyOlcInfoChanged:0,8,1
[      PtpDps:ff2519d8 ] (32:01) GetConnectSessionFirst end[0][3]
[      PtpDps:ff251bcc ] (32:01) GetConnectSessionHandle 1 err[0][0]
[      PtpDps:ff2519d8 ] (32:01) GetConnectSessionFirst end[0][3]
[      PtpDps:ff251bcc ] (32:01) GetConnectSessionHandle 1 err[0][0]
[      PtpDps:ff26b684 ] (33:01) ptpGetPropEvent FAILED! [d1d3][0]
[      PtpDps:ff1044e0 ] (33:01) Dispatch : Cur = 0, Event = 9, Param = 0
[      PtpDps:ff260f40 ] (33:01) ptpPropertyChangeEvent[80000004][2][3][0]
[      PtpDps:ff2519d8 ] (32:01) GetConnectSessionFirst end[0][3]
[      PtpDps:ff26c88c ] (33:01) PROP:0x80000004,3
[      PtpDps:ff2519d8 ] (32:01) GetConnectSessionFirst end[0][3]
[      PtpDps:ff251bcc ] (32:01) GetConnectSessionHandle 1 err[0][0]
[      PtpDps:ff2519d8 ] (32:01) GetConnectSessionFirst end[0][3]
[      PtpDps:ff251bcc ] (32:01) GetConnectSessionHandle 1 err[0][0]
[      PtpDps:ff26b684 ] (33:01) ptpGetPropEvent FAILED! [d1d3][0]
[      PtpDps:ff2519d8 ] (32:01) GetConnectSessionFirst end[0][3]
[      PtpDps:ff251bcc ] (32:01) GetConnectSessionHandle 1 err[0][0]
[      PtpDps:ff2519d8 ] (32:01) GetConnectSessionFirst end[0][3]
[      PtpDps:ff251bcc ] (32:01) GetConnectSessionHandle 1 err[0][0]
[      PtpDps:ff26b684 ] (33:01) ptpGetPropEvent FAILED! [d108][0]
[      PtpDps:ff1044e0 ] (33:01) Dispatch : Cur = 0, Event = 49, Param = 0
[      PtpDps:ff1ba75c ] (9f:03) rmtChangePtpParam [80000004][516df4][2]
[      PtpDps:ff1044e0 ] (33:01) Dispatch : Cur = 0, Event = 49, Param = 0
[      PtpDps:ff1ba75c ] (9f:03) rmtChangePtpParam [8000002c][65ef64][4]
[      PtpDps:ff1044e0 ] (33:01) Dispatch : Cur = 0, Event = 49, Param = 0
[      PtpDps:ff1ba75c ] (9f:03) rmtChangePtpParam [80000035][749db0][4]
[      PtpDps:ff1044e0 ] (33:01) Dispatch : Cur = 0, Event = 49, Param = 0
[      PtpDps:ff1ba75c ] (9f:03) rmtChangePtpParam [8000002d][749cb0][4]
[      PtpDps:ff1044e0 ] (33:01) Dispatch : Cur = 0, Event = 49, Param = 0
[      PtpDps:ff1ba75c ] (9f:03) rmtChangePtpParam [80000036][749e30][4]
[     MetaCtg:ff6b0258 ] (23:01) sdDMAReadBlk: st=352, num=32
   124:   583.168 [IMPP] H264E InitializeH264EncodeFor1080pDZoom
   125:   583.424 [IMPP] H264E InitializeH264EncodeFor1080p25fpsDZoom
   129:   613.376 [GUI] MainEventHandler PROP_QR_DIDNOT_EXECUTE(0)(0)
   132:   644.096 [MR_MOV] (Empty Func) MVW_RegisterXmpDataCallback
   133:   648.192 [HDMI] HDMI CEC Initialize
   134:   652.544 [MR] mvrChangeAckCBR : Video - Mode=0, Type=0, Rate=24, GOP=1
   135:   656.128 [HDMI] HPD OFF
   136:   656.384 [HDMI] [EDID] dwVideoCode = 0
   137:   656.384 [HDMI] [EDID] dwHsize = 0
   138:   656.640 [HDMI] [EDID] dwVsize = 0
   139:   657.408 [HDMI] [EDID] ScaningMode = EDID_NON_INTERLACE(p)
   140:   657.664 [HDMI] [EDID] VerticalFreq = EDID_FREQ_60Hz
   141:   657.920 [HDMI] [EDID] AspectRatio = EDID_ASPECT_4x3
   142:   657.920 [HDMI] [EDID] AudioMode = 0
   143:   658.176 [HDMI] [EDID] ColorMode = EDID_COLOR_RGB
   144:   660.480 [MR] mvrChangeAckCBR : Video - Mode=0, Type=0, Rate=24, GOP=1
   145:   663.296 [DISP] BrightnessControl from GUI 0
   146:   665.600 [HDMI] WARN [DISCON]HDMI is Already FALSE!!
   148:   668.928 [STARTUP] startupInitializeComplete
   149:   668.928 [MC] cam event guimode comp. 0
   150:   669.440 [MC] cam event guimode comp. 0
[     PropMgr:ff2519d8 ] (32:01) GetConnectSessionFirst end[0][3]
[     PropMgr:ff251bcc ] (32:01) GetConnectSessionHandle 1 err[0][0]
[     PropMgr:ff27c5c8 ] (36:01) ceresPropertyChangeCBR[80030019]
[     PropMgr:ff27c5e4 ] (00:01)  ceresPropertyChangeCBR ID[0x8003001d] Size[0x60]
[     PropMgr:ff27c664 ] (36:01) PROP_BATTERY_REPORT:1
[     PropMgr:ff27cdb4 ] (36:01) 1,0,3f,0
[     PropMgr:ff1a4cec ] (83:01) changeCBR PropID(0x8003001d)Parameter(1)Size(96)
[     CtrlSrv:ff3544fc ] (83:03) GuiMainEventHandler.c PROP_BATTERY_REPORT size<96>
[     CtrlSrv:ff19dab4 ] (83:03) GUI_GetNumOfBatteriesHistory: num<0>
[     CtrlSrv:ff189d20 ] (84:01) copyDataToStorage eventID(0x8003001d)Data(9895648)size(96)
[     CtrlSrv:ff18cf0c ] (83:03) PROP_BATTERY_REPORT copysize (96)<-(96)
[MPU] Sending : 06 05 03 16 00 00  (PROP_BATTERY_CHECK)
[    PowerMgr:ff13b8a8 ] (00:01) [PM] DisablePowerSave (Counter = 1)
[    PowerMgr:ff13b918 ] (00:01) [PM] EnablePowerSave (Counter = 0)
[MPU] Sending : 06 05 08 06 00 00  (COM_FA_CHECK_FROM)
[     PropMgr:ff13b8a8 ] (00:01) [PM] DisablePowerSave (Counter = 1)
[     PropMgr:ff13b918 ] (00:01) [PM] EnablePowerSave (Counter = 0)
[     PropMgr:ff104bac ] (33:01) ptpPropChangeEvCBR[80030013][4][0]
[     PropMgr:ff104bac ] (33:01) ptpPropChangeEvCBR[80030013][4][0]
[     PropMgr:ff104798 ] (33:01) SendPipeEvent [0][0][9]
[     PropMgr:ff1bd644 ] (90:05) MpuMonSpecificFromPartner : COM_FA_CHECK_FROM 0
[     PropMgr:ff1a4cec ] (83:01) changeCBR PropID(0x80030013)Parameter(0)Size(4)
[     PropMgr:ff1a4cec ] (83:01) changeCBR PropID(0x80030013)Parameter(0)Size(4)
[     CtrlSrv:ff4a44d0 ] (83:03) DlgActiveSweepExcute.c PROP_BATTERY_CHECK = OK
[     CtrlSrv:ff195548 ] (83:03) GUI_SetActiveSweepStatus (1)
[     PropMgr:ff13b8a8 ] (00:01) [PM] DisablePowerSave (Counter = 1)
[     PropMgr:ff13b918 ] (00:01) [PM] EnablePowerSave (Counter = 0)
[     PropMgr:ff13b8a8 ] (00:01) [PM] DisablePowerSave (Counter = 1)
[     PropMgr:ff13b918 ] (00:01) [PM] EnablePowerSave (Counter = 0)
[     CtrlSrv:ff189d20 ] (84:01) copyDataToStorage eventID(0x80030013)Data(0)size(0)
[      PtpDps:ff1044e0 ] (33:01) Dispatch : Cur = 0, Event = 9, Param = 0
[      PtpDps:ff260f40 ] (33:01) ptpPropertyChangeEvent[80030013][4][0][0]
[      PtpDps:ff2519d8 ] (32:01) GetConnectSessionFirst end[0][3]
[      PtpDps:ff26c88c ] (33:01) PROP:0x80030013,0
[MPU] Received: 06 05 04 0d 01 00  (unknown - PROP_ACTIVE_SWEEP_STATUS)
[     MetaCtg:ff58a388 ] (27:03) FcmcMusicOpenMetaCtg : (ClusterSize:16384, Used:0)
[     MetaCtg:ff116904 ] (27:01) FC_GetRootObject
[     MetaCtg:ff298c98 ] (27:01) _FC_LockCatalog (2)
[     MetaCtg:ff2af724 ] (27:03) _FC_GetRootObject (2, 0, 0, 0)
[     MetaCtg:ff298cf4 ] (27:01) _FC_UnlockCatalog (2)
[     MetaCtg:ff116dec ] (27:01) FC_GetFirstDirHandle
[     MetaCtg:ff298c98 ] (27:01) _FC_LockCatalog (2)
[     MetaCtg:ff29671c ] (27:03) _FC_GetFirstDirHandle (2, 0, 0, 0)
[     MetaCtg:ff298cf4 ] (27:01) _FC_UnlockCatalog (2)
[     MetaCtg:ff42b490 ] (27:01) fcmcOpenMetaCtg : RemoveCtgFile start
[     MetaCtg:ff42b4f0 ] (27:01) fcmcOpenMetaCtg : RemoveCtgFile end
[     MetaCtg:ff42b52c ] (27:03) fcmcOpenMetaCtg : Dir(100)
[     MetaCtg:ff42b57c ] (27:03) fcmcOpenMetaCtg : Dir(100) is Empty
[     MetaCtg:ff116ea8 ] (27:01) FC_GetNextDirHandle
[     MetaCtg:ff298c98 ] (27:01) _FC_LockCatalog (2)
[     MetaCtg:ff296880 ] (27:03) _FC_GetNextDirHandle (2, 100, 0, 0)
[     MetaCtg:ff298cf4 ] (27:01) _FC_UnlockCatalog (2)
[     MetaCtg:ff42b664 ] (27:03) ##### Init Check Finish [OK](2)
[     MetaCtg:ff42b6d8 ] (27:03) fcmcOpenMetaCtg : (ClusterSize:16384, UsedCluster:0)
[     MetaCtg:ff42ba18 ] (27:03) fcmcOpenCompleteMetaCtg
[     MetaCtg:ff104abc ] (33:03) ptpDpsCtginfoCheckCompleteCBR[42][0][2]
[     MetaCtg:ff104798 ] (33:01) SendPipeEvent [0][0][67]
[      PtpDps:ff1044e0 ] (33:01) Dispatch : Cur = 0, Event = 67, Param = 0
[      PtpDps:ff26f8e8 ] (33:01) PtpPropGetStorageID 2 0x20001
[      PtpDps:ff263564 ] (33:03) ptpEventCtginfoCheckComplete
[      PtpDps:ff257dc4 ] (33:03) DSEvent:0xc1a4,0x20001
[      PtpDps:ff2519d8 ] (32:01) GetConnectSessionFirst end[0][3]
[      PtpDps:ff251bcc ] (32:01) GetConnectSessionHandle 1 err[0][0]
[      PtpDps:ff2519d8 ] (32:01) GetConnectSessionFirst end[0][3]
[      PtpDps:ff251bcc ] (32:01) GetConnectSessionHandle 1 err[0][0]
[     MetaCtg:ff352cac ] (85:03) GuiMainEventhandler.c pNotifyCatalogCreateCBR err = 0, DriveNo = 2
[     CtrlSrv:ff35b404 ] (83:03) IDLEHandler LOCAL_COMP_CATALOG_CREATE(2)
[     CtrlSrv:ff188648 ] (83:03) guiSetCatalogCreateBusy(0)
[ GuiMainTask:ff0df23c ] (84:01) GUI_OTHEREVENT:11
[     MetaCtg:ff42ba90 ] (27:01) FreeUncacheableMemory(TempCache)
[     MetaCtg:ff42bab8 ] (27:01) DeleteMemorySuite(TempParse)
[     MetaCtg:ff42bae0 ] (27:01) FreeUncacheableMemory(TempParse)
[     MetaCtg:ff42bb08 ] (27:01) FreeUncacheableMemory(OldVerCache)
[    PowerMgr:ff144dd4 ] (9c:03) (delayed) 1
[    MainCtrl:ff0cea60 ] (9c:01) ID:FFFFFFFF(21)
Key event: 44 -> 1100
Key event: c4 -> 0e0e003f
[MPU] Sending : 06 05 06 11 00 00  (GUI_SWITCH)
[    PowerMgr:ff13b8a8 ] (00:01) [PM] DisablePowerSave (Counter = 1)
[    PowerMgr:ff13b918 ] (00:01) [PM] EnablePowerSave (Counter = 0)
[    MainCtrl:ff0cea60 ] (9c:01) ID:11(22)
[    MainCtrl:ff144efc ] (9c:16) REQ : MultiShotTerminate !!!
[MPU] Sending : 06 05 02 0b 00 00  (PROP_TERMINATE_SHUT_REQ)
[    MainCtrl:ff13b8a8 ] (00:01) [PM] DisablePowerSave (Counter = 1)
[    MainCtrl:ff13b918 ] (00:01) [PM] EnablePowerSave (Counter = 0)
[    MainCtrl:ff144efc ] (9c:16) REQ : MultiShotTerminate !!!
[    MainCtrl:ff1451f8 ] (9c:03) notice Lock 0
[    MainCtrl:ff0cc1cc ] (89:03) bindReceiveSwitch (17, 0)
[    MainCtrl:ff0cc608 ] (89:03) LOCK (0)
[    MainCtrl:ff0cc608 ] (89:03) LOCK (0)
[    MainCtrl:ff0cc638 ] (89:03) LOCK (JOB = 0, GUI = 0)
[    MainCtrl:ff0decb0 ] (85:03) GUI_Control:95 0x2
[    MainCtrl:ff0decb0 ] (85:03) GUI_Control:89 0x0
[     PropMgr:ff218af4 ] (81:01) CustomSlaveCBR 0x80010001(0 0 1) 0x0
[     PropMgr:ff128694 ] (02:03) Compare FROMAddress (0) 0x40510e00 0xff060000 Size 2424
[     PropMgr:ff0cdbd4 ] (8c:03) terminateChangeCBR : SHUTDOWN (0)
[     PropMgr:ff0cdda0 ] (8c:16) SHUTDOWN_REQUEST
[     PropMgr:ff13b8a8 ] (00:01) [PM] DisablePowerSave (Counter = 1)
[     PropMgr:ff0f93c8 ] (00:03) [SEQ] CreateSequencer (Terminate, Num = 3)
[     PropMgr:ff0dec38 ] (85:03) GUI_Suspend(1)
[    MainCtrl:ff0cea60 ] (9c:01) ID:80010001(23)
[    MainCtrl:ff0dfd30 ] (00:04) < GUI Lock > GUILock_ProhibitLock (PUB)
[    MainCtrl:ff130d98 ] (82:02) DispConEmergencyStart
[    MainCtrl:ff0dece0 ] (85:03) QueueClearFlg Clear
[    MainCtrl:ff2ee89c ] (05:03) CtrlSrvCancelAllEvent NumOfCancelQueueRequest=1
[    MainCtrl:ff216830 ] (19:03) [ImgPlyDr] LockImagePlayDiriver
[    MainCtrl:ff216834 ] (19:03) [ImgPlyDr]  CancelCountUp 0x10001
[    MainCtrl:ff2166ec ] (19:03) [ImgPlyDr] CancelImagePlay PathState : 0
[    MainCtrl:ff2166f8 ] (19:03) [ImgPlyDr]  CancelCountUp 0x10002
[    MainCtrl:ff0cea60 ] (9c:01) ID:0(24)
[  ImgPlayDrv:ff215f18 ] (19:01) [ImgPlyDr]    ID_CANCEL
[  ImgPlayDrv:ff215f1c ] (19:03) [ImgPlyDr]  CancelCountDown 0x10001
[     PropMgr:ff0cd08c ] (89:16) ShutDownReq
[    MainCtrl:ff0cea60 ] (9c:01) ID:80050021(25)
[    MainCtrl:ff146dc8 ] (9c:03) PROP_LV_LOCK : LVLOCK_PROHIBIT
[         Gmt:ff170c8c ] (9a:02) gmtProperty ID=0x80050021(0)
[         Gmt:ff1707f4 ] (9a:03) gmtIgnore (state:1)
[         Gmt:ff0ddbec ] (9a:01) Event 4 Result State 1->1
[         Gmt:ff0ddbec ] (9a:01) Event 19 Result State 1->1 ID 0x80050021(0)
[ GuiMainTask:ff0df028 ] (84:01) GUI_CONTROL:95
[ GuiMainTask:ff1a64bc ] (84:03) GUICMD_START_AS_CHECK
[ GuiMainTask:ff1a7100 ] (84:01) gui control end
[ GuiMainTask:ff1a7124 ] (84:01) 0msec = 58960 - 58960
[ GuiMainTask:ff1a7140 ] (84:01) 0msec = 930560 - 930560
[ GuiMainTask:ff0df028 ] (84:01) GUI_CONTROL:89
[ GuiMainTask:ff1a64bc ] (84:03) GUICMD_LOCK_OFF
[ GuiMainTask:ff1a7100 ] (84:01) gui control end
[ GuiMainTask:ff1a7124 ] (84:01) 0msec = 58960 - 58960
[ GuiMainTask:ff1a7140 ] (84:01) 512msec = 930816 - 931328
[ GuiMainTask:ff0df23c ] (84:01) GUI_OTHEREVENT:21
[ GuiMainTask:ff0df1e4 ] (84:01) GUIOTHER_CANCEL_ALL_EVENT
[ GuiLockTask:ff0df854 ] (00:03) < GUI Lock > GUILockTask 0
[ GuiLockTask:ff133310 ] (82:03) [ME] GuiLockTask (0) [TurnOffDisplay] (OFF)
[  DisplayMgr:ff12f824 ] (82:02) ignore >>> TURNOFF
[  DisplayMgr:ff133358 ] (82:02) GUILockWaitCBR pParam=0
[     PropMgr:ff13b8a8 ] (00:01) [PM] DisablePowerSave (Counter = 2)
[     PropMgr:ff13b918 ] (00:01) [PM] EnablePowerSave (Counter = 1)
[     PropMgr:ff13b8a8 ] (00:01) [PM] DisablePowerSave (Counter = 2)
[     PropMgr:ff13b918 ] (00:01) [PM] EnablePowerSave (Counter = 1)
[     PropMgr:ff1a4cec ] (83:01) changeCBR PropID(0x80030015)Parameter(1)Size(4)
[     CtrlSrv:ff2ee268 ] (05:03) Queue Clear (2054) NumOfCancelQueueRequest=0
[     CtrlSrv:ff358090 ] (83:03) IDLEHandler START_AS_CHECK[2]
[     CtrlSrv:ff357c70 ] (83:03) IDLEHandler GUI_LOCK_OFF
[     CtrlSrv:ff35b748 ] (83:03) IDLEHandler OTHER_SUSPEND bLockOff(1)
[     CtrlSrv:ff0e0288 ] (00:04) < GUI Lock > GUILock_ShutDownSyncTurnOffDisplay (PUB)
[ GuiLockTask:ff0df854 ] (00:03) < GUI Lock > GUILockTask 3
[ GuiLockTask:ff133310 ] (82:03) [ME] GuiLockTask (0) [TurnOffDisplay] (OFF)
[  DisplayMgr:ff12f824 ] (82:02) ignore >>> TURNOFF
[  DisplayMgr:ff133358 ] (82:02) GUILockWaitCBR pParam=0
[     CtrlSrv:ff35b768 ] (83:03) IDLEHandler OTHER_SUSPEND RecordingState(0)
[     CtrlSrv:ff0f961c ] (00:02) [SEQ] NotifyComplete (Terminate, Flag = 0x200000)
[     CtrlSrv:ff0f9680 ] (00:03) [SEQ] NotifyComplete (Cur = 0, 0x200000, Flag = 0x200000)
[   Terminate:ff0f92dc ] (00:05) [SEQ] seqEventDispatch (Terminate, 0)
[   Terminate:ff0ce1c0 ] (8c:03) terminateShutReq (0x200000)
[   Terminate:ff10a298 ] (36:03)  ShutdownRequestAdapterControl
[   Terminate:ff0f961c ] (00:02) [SEQ] NotifyComplete (Terminate, Flag = 0x100)
[   Terminate:ff0f9680 ] (00:03) [SEQ] NotifyComplete (Cur = 1, 0x100, Flag = 0x100)
[   Terminate:ff0f92dc ] (00:05) [SEQ] seqEventDispatch (Terminate, 1)
[   Terminate:ff0ce1c0 ] (8c:03) terminateShutReq (0x100)
[   Terminate:ff2da6b0 ] (25:05) MRK_Terminate
[     CtrlSrv:ff189d20 ] (84:01) copyDataToStorage eventID(0x80030015)Data(1)size(0)
[     CtrlSrv:ff18e5e4 ] (83:01) PropertyData PROP_TFT_STATUS[0x1]
[         Mrk:ff0f961c ] (00:02) [SEQ] NotifyComplete (Terminate, Flag = 0x200)
[         Mrk:ff0f961c ] (00:02) [SEQ] NotifyComplete (Terminate, Flag = 0x200)
[MPU] Received: 06 05 03 19 01 00  (PROP_TFT_STATUS - spell #52)
[         Mrk:ff0f961c ] (00:02) [SEQ] NotifyComplete (Terminate, Flag = 0x200)
[         Mrk:ff0f9680 ] (00:03) [SEQ] NotifyComplete (Cur = 2, 0x200, Flag = 0x200)
[   Terminate:ff0f92dc ] (00:05) [SEQ] seqEventDispatch (Terminate, 2)
[   Terminate:ff0ce1c0 ] (8c:03) terminateShutReq (0x200)
[     PropMgr:ff13b8a8 ] (00:01) [PM] DisablePowerSave (Counter = 2)
[     PropMgr:ff13b918 ] (00:01) [PM] EnablePowerSave (Counter = 1)
[     PropMgr:ff13b8a8 ] (00:01) [PM] DisablePowerSave (Counter = 2)
[     PropMgr:ff13b918 ] (00:01) [PM] EnablePowerSave (Counter = 1)
[   Terminate:ff0f9384 ] (00:05) [SEQ] seqEventDispatch (Terminate) : End
[         Mrk:ff43a458 ] (25:03) Terminate : Success
[       TOMgr:ff13b8a8 ] (00:01) [PM] DisablePowerSave (Counter = 2)
[       TOMgr:ff408cf4 ] (43:03)  tomCancelOrder (2, Dir = 0, File = 0, Type = 0x3e)
[       TOMgr:ff406020 ] (3b:01)  tomGetTOFEntryList (ID = 2)
[       TOMgr:ff406070 ] (3b:01)  tomGetTOFEntryList : Cache Not Hit (ID = 2)
[       TOMgr:ff4057cc ] (3b:01)  tomRefillCache (ID = 2)
[       TOMgr:ff541e0c ] (3c:01)  tomGetTOFInfo (ID = 2)
[MPU] Received: 06 05 02 0b 02 00  (PROP_TERMINATE_SHUT_REQ - spell #122)
[MPU] Shutdown requested.

For older Ubuntu, see reply #292.
So what is the latest version i should using ?(i'm on 16.04) Or should i use a different version of Linux (Not Ubuntu i mean) ?