Following in the footsteps of competitor Ubuntu 24.04 LTS, Red Hat has released its latest operating system, Red Hat Enterprise Linux 9.4. And the patch steps for TBS driver installation have undergone some minor changes.
Red Hat Enterprise Linux (RHEL) is the original edition of CentOS, one of the world's most popular Linux distribution operating system. Currently CentOS has been replaced by AlmaLinux and Rocky Linux. Again, we would like to write a tutorial for beginners to guarantee successful driver installations on RHEL, AlmaLinux and Rocky Linux 9.4.
We have summarized some general considerations when using TBS drivers on a Linux PC:
1. UEFI secure boot must be turned off. This is because when UEFI secure boot is on, the Linux kernel verifies driver signatures that are absolutely not present in the TBS drivers source code.
2. You are not supposed to change your Linux kernel version once your driver installation begins. The drivers only apply to the Linux kernel version at the time of installation. Therefore, once you have successfully installed the drivers, please do not upgrade the kernel/OS. Additionally, you should always attempt to use packages from the ISO file as the repository for TBS driver installation.
3. You may want to keep everything available offline for future OS and driver installations. (i.e. RHEL 9.4 ISO, the perl-Proc-ProcessTable RPM package, and the TBS offline drivers archive.)
4. SELinux may have unpredictable effects on TBS applications, and it is recommended that you turn it off.
To install the drivers, do the following steps as the root user.
Step 1, install the tools and packages required to compile the TBS drivers.
dnf install bzip2 curl gcc kernel-devel kernel-headers patch patchutils perl perl-devel perl-ExtUtils-CBuilder perl-ExtUtils-MakeMaker tar zip
rpm -i https://dl.fedoraproject.org/pub/epel/9/Everything/x86_64/Packages/p/perl-Proc-ProcessTable-0.634-1.el9.x86_64.rpm
Step 2, download the latest version of the driver package from the TBS official website. Do not attempt to use other driver versions, please use version V20230829.
curl -O https://www.tbsiptv.com/download/common/tbs-open-linux-drivers_v20230829.zip
unzip tbs-open-linux-drivers_v20230829.zip
tar jxvf media_build-2023-08-29.tar.bz2
Step 3, make some patch modifications. The thing is, Red Hat autonomously maintains its own Linux kernel. It brings many newer kernel features into its older kernel version. This will lead to many kernel features such as those in 6.x appearing in Red Hat's 5.14 kernel. This is precisely why the compilation will fail if you attempt to directly use the automated scripts.
sed -i 's/ dvb_math\.o//g' ./media_build/linux/drivers/media/dvb-core/Makefile
rm ./media_build/backports/v6.3_class_create.patch
rm ./media_build/backports/v6.2_class.patch
rm ./media_build/backports/v6.1_class.patch
rm ./media_build/backports/v5.18_rc.patch
rm ./media_build/backports/v5.17_iosys.patch
rm ./media_build/backports/v5.14_bus_void_return.patch
Step 4, compile the drivers with the given commands. Do not attempt to use "install.sh", it doesn't work properly.
cd media_build
./patch-kernel.sh
make -j8
make install
During the "make install" process, you will see many filenames with ".ko" extension taking up the screen/shell. If not, your compilation is failed and you need to start from scratch. Unexpected failure at any stage will require deletion of all files and to start the installation process over. (You need to delete the entire "media_build" folder and re-decompress the driver package from Step 2 and proceed downward.)
Finally, you will find your device in the "/dev/dvb" directory after restarting the PC.
Cheers!
Note 1: Command to disable SELinux:
sed -i "s/SELINUX=enforcing/SELINUX=disabled/" /etc/selinux/config
Note 2: Command to uninstall/remove TBS drivers:
rm -rf /lib/modules/$(uname -r)/updates/extra