Is there an open source linux OS for VIM3 board?

Hi all,

I’ve cloned fenix from it’s git repository, and I can configure it and I can generate different systems with it. Fine, no problem.
My problem is how it creates the image. It downloads prebuilt binaries from the net and it merges them to the image. Just like that. I’m not talking about the propriertary binary driver blobs for NPU because you get it in that form from Vivante. But other open-source libraries like mesa, gstreamer, and many other things I won’t list all. There is no remarks, no documentation what was rebuilt what was modified in their source how and why. Most probably this is violation of different open source licences. The usual GNU licenses want you to publish the modified source, this is the price of that you got the source for free. You can’t make it closed. Do you make your system closed source intentionally or what am I missing ?
I have a Khadas VIM3 board. Similar boards often named SBC and Arm Development Boards too. Such boards always have open source systems thats the nature of Linux. If I got a closed source system then I can’t develop any serious marketable SW on it, because its SW support would depend on Khadas (the manufacturer). I can use it like a toy for funny youtube bragging videos, but nothing else, if I can’t support it because of the closed system. This community here can’t support a closed system, no one can support a closed system, only the manufacturer could. But they will not do that, when my customer would complain about something doesn’t work with the product I’ve sold him including a VIM3 board.
Regards,
A sad and surprised VIM3 customer

@telelaci

  1. You found all the source code from our github repository, whether it is the kernel or uboot.
  2. We use debian tools to build the ubuntu system, so you can find the packages related to ubuntu build in the official repositories of debian or ubuntu
  3. Packages like mesa are compiled and generated on the board using the official source code, so that we can better fit our board.We have not modified the source code. Here is an example,
$ git clone https://gitlab.freedesktop.org/mesa/mesa
$ git clone https://github.com/numbqq/mali_mesa_deb_rules
$ sudo apt-get install ninja-build
$ wget http://ftp.cn.debian.org/debian/pool/main/m/meson/meson_0.54.0-1_all.deb
$ sudo dpkg -i meson_0.54.0-1_all.deb
sudo apt-get install devscripts build-essential lintian
$ de mesa
$ sudo apt build-dep mesa
$ debuild -i -us -uc -b

We use the official source code, and the modified debian rules are open on github.

Hi Frank,
Thanks for the answer.
If you use the official source, whats the point of the rebuilding and redistributing your debian package ? It could be added by “apt install” just like any other ubuntu package. Same goes to libdrm or gstreamer or many of them what you download as tarball instead of installing with “apt install”. It makes no sense. Also if you download and add your mesa debian package manually, it will be overwritten maybe today maybe in a week maybe in a month, when Canonical upgrades the package to the next version. It happens much mre often as you’d think. When you do apt update/upgrade on your system to make it up to date (just generally). A linux distribution is a living system, not a static build, an ubuntu system gets upgraded 3…4 times every week. What is the purpose of YOUR custom mesa package, if its not modified and its not even persistent ? This is confusing. Do you backport packages from the newer ubuntu systems or what ?

Regards,
Laci

@telelaci If you use the official source package to update, such as mesa, there will be many bugs that will cause the screen to flicker and freeze. In order to avoid these problems, we compile the package ourselves and change the version number to ensure that it will not be updated by upstream Cover, we will regularly pull the latest code and confirm whether there will be serious bugs. We do this so that similar packages can run stably on our board. If you want to use the latest source package, you can uninstall it completely, then add the source and install the latest version.

Hi Frank,

You have just said that you don’t change tha source you don’t patch it you don’t fix it. You rebuild it as is. If it was bugget it remains bugged. Maybe is it a backport ? It’s from the future ? Where do you get the new mesa source from ? Which is not bugged you think so.(it is just maybe somewhere else) You can get it from latter Ubuntu sources Groovy, Hirsute, Impish, or Debian Bullseye or you can get it from mesa3d.org. If you download from mesa3d.org that comes without debian folder, so building and/or repackaging could be bugged. The file debian/rules is crucial when you create debian package. And I could ask the same questions about dozens of other packages in Fenix. And what about the dependencies. You simply can’t rebuild the far future packages on Focal, because or the prerequisites (dependencies) won’t be fulfilled. And why it’s not documented at all ? You do answer now few questions, this won’t make it clear. Still I have the feeling that you want keep it in the mist. (or not you personally but Khadas) I understand that the teens don’t care about development, they just want a toy to play with, but basically this should be a developer board. It should be well documented, especially the OS what it runs.
Regards,
Laci

@telelaci I hope you can learn about the rules of cmake. The same source code is compiled on vim3 and the pre-compiled is different. You can test it. Specifically on vim3, cmake will query the installed libraries. And automatically generate makefile.

OK, thank you, now I know the rebuild environment of mesa.
Where can I find the same for:
gstreamer,
libdrm,
tengine-libs
wiringpi,
xserver,
libcec,
kodi
…so on
These packages come with debian packages as well. How were they built ? Which source which debian/rules ? Where can I find these info ?
Regards,
Laci

@telelaci You can found wiringpi in our github. tengine-libs is not a open source package. Other pacakge you can found with google.

Hi Frank,

This was the expected answer, this is why I started this topic. When I asked that why libdrm and other packages were distributed in binary form (violating the GNU licences), why were they rebuilt, where are the sources, then the answer was: use google. You lost your patience ?
You are either not a programmer and you have no idea what are you talking about, or you intentionally want to make it closed source and want to keep details in secret. By violating licenses. When you redistribute a GNU package there is no such and option that the sources might be discoverable by google or any other way, but instead of that: you should provide the source and you must provide the explanation the desctiptions. You should explain the reason of rebuild. And your modifications. Without any questions. This is not an option or obligement but main rule when you develop on linux and you use open source GNU packages. Without this, your system is not documented not reproducible, closed source product. And it’s really not recommended for development. Frank if you are not programmer, and you don’t develop the OS for VIM3 please don’t answer, because it seems you don’t understand the question. Or you act so. Everybody knows where are the original sources. (for example libdrm: mesa/drm - Direct Rendering Manager headers and kernel modules (mirrored from https://gitlab.freedesktop.org/mesa/drm))
I asked about your rebuilt and redistributed libdrm’s source.
Btw tengine-libs are open source, the developer is OPEN AI LAB http://www.openailab.com/
This is their github: https://github.com/OAID
This is tengineilib source: https://github.com/OAID/Tengine
It comes with Apache License v2.0 Licenses
The Apache License 2.0 does not require source code to be disclosed. However, open-source licenses like the Apache license are intended for, well, open source software. For proprietary (non-open) software, it would likely be better to get a lawyer to write custom licensing terms. So you can make it closed source if that is your intention. Is that your intention ? Do you want your developer board to be a closed source product ? Unlike Apache license other above mentioned GNU Public licenses do NOT give you the possibility to make them closed source. Violating licenses make your product legally unusable in any serious project, it can be used at home only (unlawfully but who cares). Closed source SW makes your product unusable not only legally but technically also because it makes it unsupportable. The customers can’t get the answer from the reseller, because nobody knows the answer to the question about the closed source black boxes only Khadas, who made it closed. And Khadas will not support the customers. They don’t want to do that. You are the best example when you said to me “…you can found with google…”

Regards,
Laci

Why we made some packages as prebuild packages is that we want to make the build process simple, many users don’t need to care about this, anyway you can find the source code below.

  • gstreamer

Gstreamer plugin for Amlogic SoCs source is from Amlogic Buildroot, and there is no public source code.

Gstreamer plugin for Rockchip SoCs is from here:

https://github.com/rockchip-linux/gstreamer-rockchip

  • libdrm

Libdrm is from here:

https://github.com/rockchip-linux/libdrm-rockchip

  • tengine-libs

The preinstalled Tengine lib is a special business cooperation version so it is closed but this version is almost the same as the public open source version here:

The function should be the same now.

  • wiringpi

Wiringpi check here:

  • xserver

Check here:

https://github.com/rockchip-linux/xserver

  • libcec

Check chere:

  • kodi

Check here:

Dear Numbqq,

“Why we made some packages as prebuild packages is that we want to make the build process simple, many users don’t need to care about this, anyway you can find the source code below.”
Hahahaha:))) Yes maybe so, but you “forgot” to tell where are the sources, and you are not willing to tell it even the 10th mail even. You are not giving the info even now. And you will not, because you obviously don’t want. You think it can be your secret.
I just said that I’ve bought a VIM3 board.
It will go to the trashcan because it’s totally unusable with closed source SW system.

“Gstreamer plugin for Amlogic SoCs source is from Amlogic Buildroot, and there is no public source code.”
Where is that, THAT WAS THE QUESTION !! Is it too hard to put a link in the mail or you just don’t want to do it ??? Where is the source of that binary package ? If I google “amlogic buildroot” I get this: http://openlinux2.amlogic.com/ http://openlinux.amlogic.com/ and this: Buildroot - Amlogic openlinux The pas was last modified in 2019, Focal is 2020.04 and what can you build in that page or what info you can get at all ?
Buildroot is a system which one rebuilds the configured packages from source. It can rebuild it for many kind of HW not only Amlogic. They always provide the sources, because they build every components from source, this is how Buildroot works. They don’t provide debian packages as you did. You have improperly packaged debians by the way, but there is no way to fix them because there are no sources.

The gstreamer1.0, gstreamer1.0-plugins-base, gstreamer1.0-plugins-good, gstreamer1.0-plugins-bad, gstreamer1.0-plugins-ugly debian packages have LGPL2.0+, MIT, GPL2.0+ and other open source licenses and you CAN NOT distribute only the prebuilt binaries of them, you MUST provide the sources. You must do it automatically, not for question. This is the law in Europe and US. I’m not sure about China, but unfortunately I don’t live in China. THIS IS LINUX for Christ’s sake. You and Frank are allegedly a professional programmers and you don’t understand what I’m saying about licenses ? Or just you don’t care the licenses at all ? You think you can elude the question ?

VIM3 has Amlogic A311D SoC and you show me Rockchip repositories. What can I do with Rockchip info ? You wanted to make your answer big and detailed ?
Sorry to say but Khadas support is pathetic, there is no real programmer there, they keep “mistook” the questions :slight_smile:
Tengine-libs:
“is a special business cooperation version” - hahaha, this is pathetic, tengine-libs is open source to anyone else but Khadas user’s, you make it closed source and, you say that it is because of co-operation. You are funny.
The user has nohing to do with your co-operation. The question is: is it a closed source system or not ? Your answer is YES.
If any customer of mine would have a problem with Khadas’ gstreamer or any other closed source SW like tengine-lib, will Khadas support their question ? The answer is NO of course not.
You don’t support even my questions. Frank recommended me using google.
That makes the Khadas’ boards unusable for firms. It is usable only at home, when amateur hobbyist programmers don’t care if they break the law or not. Or in counrtries where people don’t care about licenses, trademarks, patents they don’t give a damn about them. A US or a EU firm can not do that and will not do that. This is not a superficial and inessential matter believe me.

Regards,
Laci

Interesting, we just use the gstreamer plugin which is provided by SoC vendor, we don’t provide such packages gstreamer1.0, gstreamer1.0-plugins-base, gstreamer1.0-plugins-good, then are all from ubuntu upstreaming. Have you ever checked before you talk about this?

We have products with Amlogic SoCs, e.g. VIM1 VIM2 VIM3 VIM3L and also Rockchip SoCs, e.g. Edge.

Why I list Rockchip repositories here? The packages you list above include repos from Edge, e.g. libdrm, xserver, isn’t it?

Of course there is en open source version, but you know there is also a business version? How can I provide the business version source code to you, we also don’t have the source code. But at this moment, the open source version is also workable.

Hi Numbqq,

Btw I got a VIM3 board I wanna run in on Ubuntu 20.04 and you gave me a rockchip repository for gstreamer 1.14.4 ? That was for Ubuntu 18.04. In Focal we have 1.16.2 in the Hirsute has 1.18.4
You can’t mix the package version in case of Ubuntu/Debian distribution, because it breaks the system.
Every package has a specific dependency, many-many packages depend on the gstreamer systems, especially gstreamer1.0-plugins-base package, that is the root of every plugins.
OK, maybe you don’t know this, you need to learn a lot, but this is not a fixable problem even if other programers know it. Because it’s a closed source system. It’s unsupportable and unfixable.

Regards,
Laci

Hi Numbqq,

These are the source package names in Ubuntu Focal. You should know that. You are going to replace them with the Fenix system. The dependency is the following gstreamer1.0 <= gst1.0-plugins-base <= gst1.0-plugins-good <= gst1.0-plugins-bad. If you change any of them in the chain you have to rebuild the dependee packages as well. You should know that, why you asking me ?

Regards,
Laci

Why I do this? Isn’t you asked above???

Not you? For gstreamer, there are two packages, one is for Amlogic platform and the other one is for Rockchip platform.

I just list the source code of gstreamer for Rockchip platform here. I have told you to use it on amlogic platform?

But we don’t change any of them.

Hi Numbqq,

Yes you can have many products, but I have VIM3 board I mentioned that. It has no Rockchip SoC, neither iMX8 Soc, nor Intel Soc. Those info are all unusable for me. I’m was asking about VIM1, VIM2, VIM3L. Yes you are right those packages like libdrm, and xorg goes for intel, amd, rockchip also, but I don’t care if I have Amlogic A311D Soc. :slight_smile:

*I was not asking about VIM1, VIM2, VIM3L.

And what can I do with that info if I use not Rockchip but Amlogic chip and Ubuntu Focal has 1.16.2 gstreamer and not 1.14.4 ? No you never told me to use that Rockchip repo. Why is there ? Why is it in your mail ?

No I’ve never asked about a Rockchip gstreamer 1.14.4 repository.
I asked about the binary gstreamer debian packages source, what Fenix downloads for Amlogic A311D SoC for Ubuntu Focal.
And you still forget to answer to my license questions/problems. This is not only technical problem you know, but legal problem as well. Both.

OK. Stop here. No need to strug with this question any more.

About gstreamer plugin for VIM3, you can check here: