-
-
Notifications
You must be signed in to change notification settings - Fork 82
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
minisatip and James Donkey HD DUO #1107
Comments
Hey @lars18th, IMHO we should not really support such devices.
I honestly feel disappointed by my gigablue (quad 4k) that takes 1s to set a pid filter, which makes tuning to a channel a 10s deal. I understand that the device is cheaper than a regular one (50EUR vs 100-150EUR), but you will pay 10x that difference in time spent to make it work and keep supporting it. |
I agree with @catalinii , some devices are just not worth the trouble. It's already somewhat of a pain tl support AXE devices, and those at least have some unique capabilities (cheap, fast quad tuner with internal switching matrix, custom OS). But an aliexpress dual tuner, meh 🤷 Providing a pre-built binary on the other hand could be done, especially if there are other old Enigma device that would benefit from that. Feel free to make the necessary changes to the GitHub workflow. |
Hi, Thank you for your comments. Regarding this:
OK, and I can do it. If @catalinii updates the container and he put the toolchain (this or anything else similar) in one alternative path (like You agree? |
The issue here is that the toolchain contains an old gcc version (4.8.3). I am trying to use newer C features and not really enjoying keeping old gcc supported. Why not update openatv: http://images.mynonpublic.com/openatv/7.2/index.php?open=jdhdduo |
Because this version has some troubles with this device. I've tested 7.x and 6.x, and the most reliable version (for running minisatip) is the 6.4 (LTS). I do the same with my other Enigma boxes (Edision and ZGemma). So please, continue supporting old compilers. With embedded devices is quite common to it have only ancient toolchains. So, direct question: You agree to include inside a separate subdirectory (i.e. Regards. |
What kind of troubles? |
IMHO if we have to use a older version of glibc that could be ok, but we still need a new compiler. Was wondering how that would work with clang. Which glibc version is openatv running? |
This is true on both ARM (JamesDonkey) and MIPS (Edision). The errors running the current minisatip binaries in ARM are:
The same version in MIPS is not generating any error. Any idea @catalinii ? |
Hi @Jalle19 ,
With OpenATV 7.x in the James Donkey HD DUO the system seems to run very slowly. For this reason I prefer to stay running 6.4, because I run only minisatip and nothing else (enigma2 is off). I the rest of boxes I continue with 6.4 because I don't need nothing more... minisatip just runs ok. |
Hi @catalinii , FYI, the last "binary release" ARM compatible with GLIBC is v1.1.92 (Apr 28, 2022). And the first with errors is v1.2.1 (May 2, 2022). Checking the docker image seems that this is the change that has broked the compatiblity (Apr 29, 2022): catalinii/minisatip-build-image@6314dff It could be that you compile the OpenSSL for ARM with a different toolchain? |
@lars18th does it run so slow that minisatip can't be used? Seems odd. |
The driver does not seem to have been updates in the last 5 years: https://github.com/oe-alliance/oe-alliance-core/blame/4.1/meta-brands/meta-dinobot/recipes-linux/linux-dinobot_4.4.35.bb |
Hi @catalinii , Regarding the Docker Container to generate the binaries:
Therefore, I suggest these changes:
Futhermore, I see that for MIPS platform you are'nt using any Ubuntu package, but a custom "ancient" toolchain. Doing this you can't use new GCC versions, because you're limited to this ancient toolchain. Why not convert this in a "legacy" asset, and use the "mipsel-unknown-linux-musl" stock packages to compile using the Ubuntu toolchain? Regards. |
Hi @Jalle19 ,
The OpenATV firmware is not just the "driver" package and the "enigma2" process. Using the 6.4 firmware (remember LTS, so with all updates and the last driver version) the system seems to be more reliable. And this is true without running any enigma process and only minisatip driving the tuners. Any other daemons are still there. So, I don't know the root cause for the difference in the performance. But if the branch 6.4 is more robust than 7.x with some devices without updated drivers and kernels, then I prefer to continue to use this "legacy branch". Don't you think so? Hi @catalinii ,
In OpenATV the drivers are updated based on the kernel, and not in the firmware version (6.x or 7.x). Therefore, nothing is erroneous if the device uses a 5 years old driver. This driver ( Anyway, at time the "official" minisatip binaries for MIPS are using an ancient toolchain. But this is not true for the ARM platform. And these binaries have sense only on systems without a compiler. Therefore IMHO it's preferable to offer binaries for a large "legacy" level of platforms. Don't you think so? Regards. |
Basically what I am trying to say brings back to @Jalle19's point about supporting axe. The short story is that it becomes a hassle. Maybe now is ok to support openatv 6.4, but I am not sure this is a long term solution. Does the minisatip build with ubuntu:22.04 works ? |
Hi @catalinii , I do more tests related to the container:
To solve this problem, I've done some more tests: The most simple is to edit the So, if you want to upgrade the toolchain, I feel it's possible. And you can use the stock Ubuntu only if you stay in the "20.04" version. But, to support the MIPS platform, we need to reuse the libraries precompiled from another toolchain for mips32r1. Or recompile the same GCC version (9.4.0) as Ubuntu but with What you think? |
FYI @catalinii ,
|
@lars18th was thinking more like this: https://andrewkelley.me/post/zig-cc-powerful-drop-in-replacement-gcc-clang.html If this could be used to generate statically linked binaries against libc it would be really nice. |
Hi @catalinii , Doing some initial testing to compile minisatip for mipsel with zig cc results in some small errors:
You can/want to fix them? |
make EMBEDDED=1 should fix this I've been looking yesterday at this but zig still misses libssl for all platforms (and libdvbcsa). |
@lars18th can u provide remote access? |
@catalinii did you find the CAM performance issue with the remote access? 😄 Good job! |
Hi @catalinii , Regarding the specific case of the James Donkey DUO HD, I've sucess compiling with "zig cc". Here the guide:
This generates a really static binary that can run without errors. And the CPU will run with less than 20% with UHD FTA channels. Great! (I recommend to add However, when compiling for mips (with Regards. |
I think zig cc comes with an old LIBC that’s why it works. I tried adding -static flag and this creates static binaries and wanted to test those even with a new gcc/clang. yeah I hit that problem with zig cc on mips too, but I am testing with gcc/clang 16 too |
Hi @catalinii , Using
And this feels to me that is related to the FILE_OFFSET_64 support added in this version. Now I don't know how to overcome this. Anyway this is only for MIPS, as ARM compiles without troubles (and I imagine that X86_64 and PowerPC will do too). In any case I feel the way of using the Regards. |
can you add -static flag (zig cc -target mipsel-linux-gnueabihf.2.33 -static) and see if that works? |
This is done "automatically". I'm configuring with
I feel this the correct, right? |
Hi @catalinii , This works!
The final binary is fully static, and with a small size. |
And it also works for ARM with:
|
I feel the next step is to make an alternative workflow file to compile binaries with this technique (without disturbing the current "binaries.yml"). |
…1123) Co-authored-by: Catalin Toda <[email protected]>
Can this be closed? |
Hi @Jalle19 , I prefer that you leave it open. This issue contains interesting information (for not buying this type of device). |
The information can just as easily be found even though the issue is closed |
Not really. I suggest to leave it open. Please. |
We can add it to the README, maybe make a unsupported devices section |
Hi @catalinii and others,
I've now one unit of the cheap James Donkey HD DUO. And after a lot of testing over several weeks I can finally run minisatip on this device, albeit with fairly limited capabilities. So first of all I want to share the facts I have discovered:
-1 1
because the stream can only be readed from the/dev/dvb/adapter0/demuxX
and not the common/dev/dvb/adapter0/dvrX
.echo 1 > /proc/stb/parameters/ts_tap
(already set by the script/etc/init.d/dinobot-pvr.sh
).showiframe
process that is consuming a lot of CPU resources../configure --enable-static --host=arm-linux-gnueabihf --disable-dvbca --disable-dvbcsa
andmake EXTRA_CFLAGS="-DNEEDS_SENDMMSG_SHIM"
.dmesg
command you can see a lot of errors. And now I discovered that the driver only supports up to 10 "service" pids plus another 10 "psi" pids. So you have to request the opening of the pids in this order: first you can request up to 10 pids from the range 32-8190, and then continue with another 10 pids from the range 0-31. This is very crazy. But if you request the opening of the pids not using this technique, then you can open only a small number of pids. If you request for example:100,0,101,1,102,16
then you will recive only pids 100 and 0, and nothing else! So the golden strategy is to open (0-10)service_pids, (0-10)psi_pids.Therefore, I request if you can help to improve the support for this device:
EXTRA_CFLAGS="-DNEEDS_SENDMMSG_SHIM"
. I feel several low cost devices with ARM cores will agree. You accept this @catalinii ?Please, comment anything you want, and let me know if you want me to perform any concrete test.
The text was updated successfully, but these errors were encountered: