MPC 3 first analysis - TheKikGen/MPC-LiveXplore GitHub Wiki
__ __| | | /_) | ___| | |
| __ \ _ \ ' / | | / | _ \ __ \ | _` | __ \ __|
| | | | __/ . \ | < | | __/ | | | ( | | |\__ \
_| _| |_|\___| _|\_\_|_|\_\\____|\___|_| _| _____|\__,_|_.__/ ____/
MPC V3 first level analysis
- Update image format for GEN1 is different( I have developed a new mpcimg2 dedicated to it. Available soon).
- New build system : YOCTO instead of Buildroot previously
- A new specific utily edisksctl developed by InMusic to mount parition instead of previous udisks tool
- libc upgraded to 2.39
- All mounted external devices have noexec flag. You can't run binaries
- New start/stop MPC service command is 'systemctl stop acvs.service'
Linux version 6.6.64-az01-2024-12-09-rt45 (oe-user@oe-host) (arm-poky-linux-gnueabi-gcc (GCC) 13.3.0, GNU ld (GNU Binutils) 2.42.0.20240723) #1 SMP PREEMPT_RT Mon Dec 9 11:45:57 UTC 2024
CPU: ARMv7 Processor [410fc0d1] revision 1 (ARMv7), cr=10c5387d
(...)
GNU C Library (GNU libc) stable release version 2.39.
Copyright (C) 2024 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.
There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A
PARTICULAR PURPOSE.
Compiled by GNU CC version 13.3.0.
libc ABIs: UNIQUE ABSOLUTE
Minimum supported kernel: 5.15.0
For bug reporting instructions, please see:
<https://www.gnu.org/software/libc/bugs.html>.
Mounting partition : All mounted external devices have noexec flag. You can't run binaries. So you need to remount/mount with the exec flag.
edisksctl mount -o rw,exec /dev/sdb1
Remount sdcard to run binaries :
mount -o remount,rw,exec /dev/sda1
About the GEN2 update image (MPC III hardware) . Image is a new format, not compressed anymore . Image embeds 3 linux partitions . The third is the Linux main filesystem With the 3.70 update image, using Binwalk, you will find the offset :
$ binwalk MPC-3.7.0-Gen2-Update
The first column is the offset in decimal you need to mount the image. The offset for this upadate is 56819712 bytes.
$ sudo mount -o loop,offset=56819712 MPC-3.7.0-Gen2-Update ./mpcdev
$ ll mpcdev
total 112
drwxr-xr-x 25 root root 4096 Jan 8 16:40 ./
drwxr-x--- 25 franck franck 4096 Jan 22 18:15 ../
lrwxrwxrwx 1 root root 7 Jan 6 12:26 bin -> usr/bin/
drwxr-xr-x 2 root root 4096 Jan 6 12:26 boot/
drwxr-xr-x 2 root root 4096 Jan 6 12:26 content/
drwxr-xr-x 2 root root 4096 Jan 6 12:26 data/
drwxr-xr-x 2 root root 4096 Jan 6 12:26 dev/
drwxr-xr-x 29 root root 4096 Jan 6 12:26 etc/
drwxr-xr-x 2 root root 4096 Jan 6 12:26 factory/
drwxr-xr-x 2 root root 4096 Jan 6 12:26 home/
lrwxrwxrwx 1 root root 7 Jan 6 12:26 lib -> usr/lib/
drwx------ 2 root root 16384 Jan 8 16:40 lost+found/
drwxr-xr-x 2 root root 4096 Jan 6 12:26 media/
drwxr-xr-x 2 root root 4096 Jan 6 12:26 mnt/
drwxr-xr-x 2 root root 4096 Jan 6 12:26 nvme/
dr-xr-xr-x 2 root root 4096 Jan 6 12:26 proc/
drwx------ 3 root root 4096 Jan 6 12:26 root/
drwxr-xr-x 2 root root 4096 Jan 6 12:26 run/
lrwxrwxrwx 1 root root 8 Jan 6 12:26 sbin -> usr/sbin/
drwxr-xr-x 2 root root 4096 Jan 6 12:26 sdcard/
drwxr-xr-x 2 root root 4096 Jan 6 12:26 secure-media/
drwxr-xr-x 2 root root 4096 Jan 6 12:26 srv/
drwxr-xr-x 2 root root 4096 Jan 6 12:26 storage/
drwxr-xr-x 2 root root 4096 Jan 6 12:26 synths/
dr-xr-xr-x 2 root root 4096 Jan 6 12:26 sys/
drwxrwxrwt 2 root root 4096 Jan 6 12:26 tmp/
drwxr-xr-x 10 root root 4096 Jan 6 12:26 usr/
drwxr-xr-x 8 root root 4096 Jan 6 12:26 var/