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.
![Smile :)](./images/smilies/icon_smile.gif)
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.