ophub / amlogic-s9xxx-armbian

Support for Armbian in Amlogic, Rockchip and Allwinner boxes. Support a311d, s922x, s905x3, s905x2, s912, s905d, s905x, s905w, s905, s905l, rk3588, rk3568, rk3399, rk3328, h6, etc.
GNU General Public License v2.0
5.92k stars 1.9k forks source link

Enable S2 and T2 DVB for Mecool KI Pro #1001

Closed intropedro closed 1 year ago

intropedro commented 1 year ago

Standard chat template, no routine, no chat. 标准聊天模板,无套路不聊天。

Device Information | 设备信息

Armbian Version | 系统版本

Describe the bug | 问题描述

I have download your image "Armbian_23.02.0_amlogic_s905d-ki_jammy_5.15.91_server_2023.02.02" for a tv box Mecool Ki Pro. The system boot ok but the tunners are not detected (/dev/dvb does not exist).

It would be possible to add support to the tuners of the device s2 and t2 dvb?

Thank you

详细描述问题,并在必要时附上屏幕截图。

photo_5971838810759216295_y

ophub commented 1 year ago

armbian-update -k 5.10.166

Only 5.4/5.10 in the kernel repo supports

The 5.10/6.1 kernel in releases supports dvb, you manually download and update. Or update the 5.4/5.10 kernel online.

https://github.com/ophub/amlogic-s9xxx-armbian/releases/tag/kernel_5.15.91_6.1.9

The 5.15/6.1 in the https://github.com/ophub/kernel repo is the kernel compiled by unifreq that I dumped, and dvb support is not enabled in its configuration.

In the compilation template, https://github.com/ophub/amlogic-s9xxx-armbian/tree/main/compile-kernel/tools/config has enabled dvb support, and you can also compile and install it yourself.

intropedro commented 1 year ago

Thank you very much for the information.

I have tried version 5.10.166 but the dvb still does not appear.

When I had the dvb running on a SO CoreElec I had these modules:

>> lsmod 
Module                  Size  Used by
wifi_dummy               894  0
sha1_generic            2492  0
cfg80211              417431  0
meson_remote           51277  0
r848a                  37150  1
avl6862               268013  1
8021q                  21855  0
fuse                   92368  3
aml_fe                  7513  0
aml                    87685  2 aml_fe
dvb_core              105934  2 aml,aml_fe
wireguard             127359  0
mali                  226023  5
amlvideodri            13210  0
videobuf_res            5690  1 amlvideodri
videobuf_core          18248  2 amlvideodri,videobuf_res
videodev              144588  1 amlvideodri
dwc_otg               261556  0
fbcon                  40863  0
bitblit                 4820  1 fbcon
softcursor              1344  1 bitblit
font                    7399  1 fbcon

I understand that until I manage to load the avl6862 and r848a module it will not work for me. Right now if I try to load them it tells me that it can't find them:

>> sudo modprobe avl6862
modprobe: FATAL: Module avl6862 not found in directory /lib/modules/5.10.166-ophub
>> sudo modprobe r848a
modprobe: FATAL: Module r848a not found in directory /lib/modules/5.10.166-ophub

I've been looking for information on the internet and it seems that these drivers may be in a package called "media_build", so I'm going to try to compile and install it.

ophub commented 1 year ago

https://github.com/ophub/amlogic-s9xxx-armbian/issues/341

https://github.com/ophub/amlogic-s9xxx-armbian/pull/930

Reference

intropedro commented 1 year ago

I've been reading everything and testing, but I haven't been able to get it to work. I put what I have tried so you can tell me if I have done something wrong.

I started from image "Armbian_23.02.0_amlogic_s905d-ki_bullseye_5.15.91_server_2023.02.05.img". This has the kernel version 5.15.91-flippy-81+o and from what I understand it shouldn't work and it doesn't work (Which is correct)

I have updated to version 5.10.166 (this has the kernel 5.10.166-ophub) which is supposed to work:

>> sudo armbian-update -k 5.10.166

But there is no dvb:

>>  ls -l /dev/dvb
>>  sudo dmesg | grep dvb

Then I tried with it 5.4.230 (this has the kernel 5.4.230-ophub)

>> sudo armbian-update -k 5.4.230

Same result without dvb

Putting your compiled kernel 6.1.9:

>>  wget https://github.com/ophub/amlogic-s9xxx-armbian/releases/download/kernel_5.15.91_6.1.9/6.1.9.tar.gz
>>  tar -zxvf 6.1.9.tar.gz
>>  cd 6.1.9/
>>  sudo armbian-update

Same result without dvb

Putting your compiled kernel 5.15.91

>>  wget https://github.com/ophub/amlogic-s9xxx-armbian/releases/download/kernel_5.15.91_6.1.9/5.15.91.tar.gz
>>  tar -zxvf 5.15.91.tar.gz 5.15.91/
>>  cd 5.15.91/
>>  sudo armbian-update

Same result without dvb

I understand that these last two kernels are compiled with the ".config" file in which the dvbs were added, so if my card doesn't work, it may be because it isn't among what was added. Then I would have to add something to that file indicating my card and compile the kernel. But I don't know what I should add, or if that would be supported.

Another option is that if the kernel doesn't integrate the drivers for my card, I compile the driver and install it. I have also been trying to do that without success. The driver is supposed to be in "media_build", but it seems that this is very outdated and trying in various ways (For example from https://github.com/tbsdtv/media_build) I have not been able to compile them, the same for newer versions of gcc or for things I don't know (I control a lot about compiling kernels and tools)

I'm right? Can you think of any other way I can try?

Many thanks for everything

intropedro commented 1 year ago

My tv box has an R848 Rev 1.3 board that I think has these two:

ophub commented 1 year ago

The update method of the kernel is correct. It is already supported at the kernel level.

I have never been in touch with the driver and usage, you can ask how other users in those few questions use it.

These kernels are all compiled using clang, and they used to support them with this kernel. If your device prompts that it needs a gcc environment when compiling the driver, you can compile a gcc version of the armbian kernel by yourself. See the instructions in the warehouse for the method: ./recompile -t gcc -k 5.15.91

https://github.com/ophub/amlogic-s9xxx-armbian/tree/main/compile-kernel

intropedro commented 1 year ago

I am trying compile media_build with this commands:

 >> mkdir /tmp/tbs
 >> cd /tmp/tbs
 >> git clone https://github.com/tbsdtv/media_build.git
 >> git clone --depth=1 https://github.com/tbsdtv/linux_media.git -b latest ./media
 >> cd media_build
 >> make dir DIR=../media
 >> make allyesconfig
 >> make -j4

But I have see this warning:

  ./scripts/make_kconfig.pl /lib/modules/5.4.230-ophub/build /lib/modules/5.4.230-ophub/build 1
  Preparing to compile for kernel version 5.4.230

  ***WARNING:*** You do not have the full kernel sources installed.
  This does not prevent you from building the v4l-dvb tree if you have the
  kernel headers, but the full kernel source may be required in order to use
  make menuconfig / xconfig / qconfig.

I installed headers with armbian-config, but I think thath they don't well installed. It is corrects this way?

ophub commented 1 year ago

/usr/src/linux-headers-$(uname -r)