In my opinion, ripping from a USB drive connected to a TV box to another USB hard drive, flash drive or maybe a NAS is not exactly optimal.
I think a PC with a native SATA drive is much more suitable for this.
I'm going to try it. How did you build the dependencies like "libmakemkv.so.1" and so forth? Did you copy the entire build chain to the device or use a VM or ...? I'm guessing I need to cross compile for armhf on my 64-bit Ubuntu machine, but I'm not sure how to do that at this moment.
Code: Select all
CoreELEC:~ # uname -a
Linux CoreELEC 4.9.269 #1 SMP PREEMPT Sun Jan 19 10:25:02 CET 2025 aarch64 GNU/Linux
Code: Select all
./configure --build x86_64-pc-linux-gnu --host arm-linux-gnu
make # There is not an arm specific target
Code: Select all
test@test:~/test$ file libmakemkv.so.1
libmakemkv.so.1: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, BuildID[sha1]=5ae537bcd341714777d57fe675171771c117fe75, stripped
Code: Select all
git clone https://github.com/CoreELEC/CoreELEC.git -b coreelec-21
wget https://github.com/dtechsrv/dtech-packages/archive/refs/heads/master.tar.gz
tar xzvf master.tar.gz
cp -r dtech-packages-master/* CoreELEC/
cd CoreELEC/
PROJECT=Amlogic-ce DEVICE=Amlogic-ng ARCH=arm scripts/create_addon makemkv
Code: Select all
CoreELEC:~/test # ls
libmakemkv.so.1
libdriveio.so.0
libmmbd.so.0
patchelf
makemkvcon
CoreELEC:~/test # ./patchelf --set-rpath /storage/test makemkvcon
CoreELEC:~/test # ./makemkvcon info
MakeMKV v1.17.9 linux(armhf-release) started
Profile parsing error: default profile missing, using builtin default
Bus error (core dumped)
Code: Select all
CoreELEC:~/.kodi # ./addons/service.makemkv/bin/makemkvcon info
MakeMKV v1.17.9 linux(armhf-release) started
Downloading latest SDF to /storage/.MakeMKV ...
Profile parsing error: default profile missing, using builtin default
Bus error (core dumped)
CoreELEC:~/.kodi # nohup ./addons/service.makemkv/bin/makemkvcon info
nohup: appending output to nohup.out
Bus error (core dumped)
Code: Select all
[61/61] [DONE] build makemkv:target
Total Build Time: 01:08:57.339 (wall clock)
Accum Build Time: 04:35:36.487 (4 slots)
Breakdown by status (all slots):
Status Usage ( Pct ) Count State
ACTIVE 01:22:45.239 (30.0%) 123 busy
FAILED : :00.000 (00.0%) 0
GETPKG :02:28.583 (00.9%) 51 busy
IDLE 03:10:02.830 (69.0%) 61
LOCKED : :06.039 (00.0%) 131
MUTEX : :08.185 (00.0%) 2 busy
MUTEX/W : :00.000 (00.0%) 0 stall
STALLED : :00.000 (00.0%) 0 stall
UNLOCK : :05.612 (00.0%) 131
-------------------------------------
TOTAL 04:35:36.487 ( 100%) 499
Peak concurrency: 4 out of 4 slots
0 job slots were held in a "stall" state for 00:00:00.000
Slot usage (time in a "busy" state): | Concurrency breakdown ("busy"):
|
#Rank Slot Usage ( Pct ) | # of Slots Usage ( Pct )
#01 01 :32:04.433 (11.6%) | 01 01:08:43.437 (24.9%)
#02 04 :22:38.151 (08.2%) | 02 :08:40.526 (03.1%)
#03 02 :19:35.792 (07.1%) | 03 :04:59.383 (01.8%)
#04 03 :11:03.631 (04.0%) | 04 :02:58.660 (01.1%)
-----------------------------------------+---------------------------------
TOTALS 01:25:22.006 (31.0%) 01:25:22.006 (31.0%)
ALL ADDONS BUILT SUCCESSFULLY
Running patchelf is completely unnecessary for glibc-2.34 and above:
Code: Select all
CoreELEC:~ # ldd --version
ldd (GNU libc) 2.38
Copyright (C) 2023 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.
Written by Roland McGrath and Ulrich Drepper.
To eliminate the possible alignment error, I tried adding "-mstrict-align" to the CXXFLAGS arguments, but I get this error from configure script:
Code: Select all
checking whether /home/dtech/CoreELEC/build.CoreELEC-Amlogic-ng.arm-21/toolchain/bin/armv8a-libreelec-linux-gnueabihf-g++ supports C++11 features with -std=c++11... no
checking whether /home/dtech/CoreELEC/build.CoreELEC-Amlogic-ng.arm-21/toolchain/bin/armv8a-libreelec-linux-gnueabihf-g++ supports C++11 features with +std=c++11... no
checking whether /home/dtech/CoreELEC/build.CoreELEC-Amlogic-ng.arm-21/toolchain/bin/armv8a-libreelec-linux-gnueabihf-g++ supports C++11 features with -h std=c++11... no
checking whether /home/dtech/CoreELEC/build.CoreELEC-Amlogic-ng.arm-21/toolchain/bin/armv8a-libreelec-linux-gnueabihf-g++ supports C++11 features with -std=c++0x... no
checking whether /home/dtech/CoreELEC/build.CoreELEC-Amlogic-ng.arm-21/toolchain/bin/armv8a-libreelec-linux-gnueabihf-g++ supports C++11 features with +std=c++0x... no
checking whether /home/dtech/CoreELEC/build.CoreELEC-Amlogic-ng.arm-21/toolchain/bin/armv8a-libreelec-linux-gnueabihf-g++ supports C++11 features with -h std=c++0x... no
configure: error: *** A compiler with support for C++11 language features is required.
If there is no disk in the drive, it works, but if there is a disk in it, it returns an error:
Code: Select all
eject: /dev/sr0: Input/output error
Code: Select all
CoreELEC:~ # dmesg -c
[ 113.134313@3]d scsi_io_completion: 118 callbacks suppressed
[ 113.134327@3]d sr 0:0:0:0: [sr0] tag#0 FAILED Result: hostbyte=DID_OK driverbyte=DRIVER_SENSE
[ 113.134337@3]d sr 0:0:0:0: [sr0] tag#0 Sense Key : Unit Attention [current]
[ 113.134343@3]d sr 0:0:0:0: [sr0] tag#0 Add. Sense: Not ready to ready change, medium may have changed
[ 113.134351@3]d sr 0:0:0:0: [sr0] tag#0 CDB: Read(10) 28 00 02 d1 9e 7c 00 00 02 00
[ 113.134354@3]d blk_update_request: 118 callbacks suppressed
[ 113.134357@3]d blk_update_request: I/O error, dev sr0, sector 189168112
[ 113.134426@3]- blk_update_request: I/O error, dev sr0, sector 189168112
[ 113.134431@3]d buffer_io_error: 115 callbacks suppressed
[ 113.134434@3]- Buffer I/O error on dev sr0, logical block 23646014, async page read
[ 113.134560@3]- blk_update_request: I/O error, dev sr0, sector 0
[ 113.134573@3]- blk_update_request: I/O error, dev sr0, sector 0
[ 113.134576@3]- Buffer I/O error on dev sr0, logical block 0, async page read
[ 113.134601@3]- blk_update_request: I/O error, dev sr0, sector 8
[ 113.134610@3]- blk_update_request: I/O error, dev sr0, sector 8
[ 113.134612@3]- Buffer I/O error on dev sr0, logical block 1, async page read
[ 113.134625@3]- blk_update_request: I/O error, dev sr0, sector 8
[ 113.134628@3]- Buffer I/O error on dev sr0, logical block 1, async page read
[ 113.134641@3]- blk_update_request: I/O error, dev sr0, sector 0
[ 113.134644@3]- Buffer I/O error on dev sr0, logical block 0, async page read
[ 113.134657@3]- blk_update_request: I/O error, dev sr0, sector 0
[ 113.134659@3]- Buffer I/O error on dev sr0, logical block 0, async page read
[ 113.134671@3]- blk_update_request: I/O error, dev sr0, sector 0
[ 113.134674@3]- Buffer I/O error on dev sr0, logical block 0, async page read
[ 113.134687@3]- Buffer I/O error on dev sr0, logical block 0, async page read
[ 113.134699@3]- Buffer I/O error on dev sr0, logical block 0, async page read
[ 113.134711@3]- Buffer I/O error on dev sr0, logical block 0, async page read
[ 124.114790@3]- UDF-fs: INFO Mounting volume 'TOP_GUN_MAVERICK', timestamp 2022/08/18 17:22 (1000)
CoreELEC:~ # eject /dev/sr0
eject: /dev/sr0: Input/output error
Code: Select all
CoreELEC:~ # systemctl stop kodi
-sh: /usr/bin/systemctl: Input/output error
CoreELEC:~ # eject /dev/sr0
eject: /dev/sr0: Input/output error
This simple disc eject problem has a bit hijacked the original topic. Try this way:flojo wrote: ↑Sat Feb 08, 2025 7:34 pmSo it appears these errors only happen when a disc is in the drive, or it seems that way so far. I wonder if this is possibly a SCSI bug with the supplied driver in CoreELEC. sg3_utils bug maybe..? Race condition for access? The fact that Kodi can still eject and detect the type of disc while I have the errors makes me believe that this isn't a MakeMKV bug.
Code: Select all
eject -s /dev/sr0
That worked. I'm done with this but good luck getting the proxy to work, that could be handy for some.