snorre Posted July 9, 2019 Share Posted July 9, 2019 (edited) DVBWiewer Recording Service Linux / Wine Hardware: Ubuntu 18.04 server 1GB RAM 1 Core FSTAB: mount NFS recordings from NAS to /mnt/recordings Name: dvbsrv Software: We need wine (32bit version), Xvfb (short for X virtual framebuffer) for running the recording service without screen, cabextract for extracting the needed DirectX file (ksproxy.ax) and nfs-common for mounting the recording share. dpkg --add-architecture i386 && apt update apt install wine32 xvfb cabextract nfs-common Software Wine: We create a user which is running the Recording Service. In the users home we store the needed Windows software parts in the subdirectory "sw". SSH to the Ubuntu server as root or become root with "sudo su -". # create user w/o passwd adduser dvb su - dvb mkdir sw && cd sw wget http://download.microsoft.com/download/E/E/1/EE17FF74-6C45-4575-9CF4-7FC2597ACD18/directx_feb2010_redist.exe cabextract directx_feb2010_redist.exe -F dxnt.cab cabextract dxnt.cab -F ksproxy.ax Files to be stored in /home/dvb/sw: Total Commander 32bit: tcmd922ax32.exe DVBViewer: DVBViewer_setup_6.1.4.exe Recording SVC: Recording_Service_setup_1.33.02.01.exe FFMPEG 32bit: ffmpeg-20190707-98b122c-win32-static.zip DVB Lic: xxxx.dvbvkey Config from Windows DVBWiewer: This step is optional. You can configure the Recording Service without these. I copied the file from the Windows installation to keep my settings. Channel Logos: "c:\Program Files\DVBViewer\Images\Logos" Plugins: "c:\Program Files\DVBViewer\Plugins" Channels: "c:\Documents and Settings\All Users\Application Data\CMUV\DVBViewer\channels.dat" Allowed Networks: "c:\Documents and Settings\All Users\Application Data\CMUV\DVBViewer\Config\svcuserdata.xml" Rec-Server Config: "c:\Documents and Settings\All Users\Application Data\CMUV\DVBViewer\Config\service.xml" Tuner Config: "c:\Documents and Settings\All Users\Application Data\CMUV\DVBViewer\Config\svchardware.xml" SAT>IP Config: "c:\Documents and Settings\All Users\Application Data\CMUV\DVBViewer\Config\svcnetwork.xml" Setup: Start Xming on Windows client. On Linux Desktop you usually already have a X server running. If using Putty, configure it to have X forwarding enabled. Putty (or ssh -X) to dvbsrv as root. cp .Xauthority /home/dvb/ chown dvb:dvb /home/dvb/.Xauthority su - dvb cd sw Initial Wine start wine cmd exit Install Total Commander wine tcmd922ax32.exe - no shortcuts Install DVBViewer wine DVBViewer_setup_6.1.4.exe - no shortcuts, no FW - OK on "Unable to execute file: powercfg.exe" - 10 times - Add Key File, Username and Passsword - Key file in Z:\home\dvb\sw - Cancel additional components install - do not wiew changelog_en.html and do not Launch DVBViewer Install Recording Service wine Recording_Service_setup_1.33.02.01.exe - no shortcuts, no FW, no Download FFmpeg - OK on "Unable to execute file: powercfg.exe" - 10 times - do not wiew changelog_en_rs.html and do not Launch Configuration - Right click Recording Service System Tray Icon -> Disable Auto-Start Tray Control Program -> Exit Start Total Commander - These steps can also be done manually on Linux or Wine comandline "wine cmd" wine c:\\totalcmd\\totalcmd.exe & - Configure - Copy z:\home\dvb\sw\ksproxy.ax -> c:\windows\system32 - Open z:\home\dvb\sw\ffmpeg-20190707-98b122c-win32-static.zip + Copy z:\home\dvb\sw\ffmpeg-20190707-98b122c-win32-static.zip\ffmpeg-20190707-98b122c-win32-static\bin\ffmpeg.exe -> "c:\Program Files\DVBViewer" - Copy Plugins -> "c:\Program Files\DVBViewer\Plugins" - Copy Logos -> "c:\Program Files\DVBViewer\Images\Logos" - Copy z:\home\dvb\sw\channels.dat -> c:\ProgramData\CMUV\DVBViewer - Copy XML config files -> c:\ProgramData\CMUV\DVBViewer\Config Configure Recording Service wine "c:\Program Files\DVBViewer\svcoptions.exe" - Recorder: Directories: Z:\mnt\recordings + Recordings: Disable Create NTFS filestorage data - Web/UPnP: Port 8080 Disable: Prevent PC sleep Run As systemd service: /etc/systemd/system/DVBViewer.service [Unit] Description=Run DVBViewer Recording Service in Wine [Service] User=dvb ExecStart=/usr/bin/xvfb-run /usr/bin/wine "c:\Program Files\DVBViewer\DVBVservice.exe" [Install] WantedBy=multi-user.target /etc/systemd/system/DVBViewer-port.service [Unit] Description=Redirect port 80 to 8080 for DVBViewer Recording Service [Service] Type=oneshot ExecStart=/sbin/iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-ports 8080 [Install] WantedBy=multi-user.target systemctl enable DVBViewer-port.service systemctl enable DVBViewer.service systemctl start DVBViewer-port.service systemctl start DVBViewer.service Start Wine programs as root: Totalcmd: cp /root/.Xauthority /home/dvb/ && su - dvb -c 'wine "c:\totalcmd\totalcmd.exe"' & DVBViewer Opts: systemctl stop DVBViewer && \ cp /root/.Xauthority /home/dvb/ && \ su - dvb -c 'wine "c:\Program Files\DVBViewer\svcoptions.exe"' && \ systemctl start DVBViewer Edited July 9, 2019 by snorre Add X forwarding to ssh command 1 Link to comment
snorre Posted July 10, 2019 Author Share Posted July 10, 2019 I found a better way to start the DVBViewer Recording Service with systemd: as user dvb wine cmd sc create DVBVRecorder binpath= "c:\Program Files\DVBViewer\DVBVservice.exe" start= auto DisplayName= "DVBViewer Recording Service" exit as root create the service file - /etc/systemd/system/DVBViewer.service [Unit] Description=Run DVBViewer Recording Service in Wine [Service] User=dvb #ExecStart=/usr/bin/xvfb-run /usr/bin/wine "c:\Program Files\DVBViewer\DVBVservice.exe" ExecStart=/usr/bin/wine explorer KillMode=process [Install] WantedBy=multi-user.target With this change, the service is registered in Wine (sc create). Every time Wine is started, the service gets started too. The KillMode=process kills only the "explorer" process and lets Wine stop the Recording Service. Link to comment
Griga Posted July 11, 2019 Share Posted July 11, 2019 I have no experience with Linux, but it looks like a nice piece of work How can DVB devices be used? Is it possible to install BDA drivers in Wine? Link to comment
Goggo16 Posted July 11, 2019 Share Posted July 11, 2019 vor 41 Minuten schrieb Griga: I have no experience with Linux, but it looks like a nice piece of work Yep vor 42 Minuten schrieb Griga: How can DVB devices be used? Is it possible to install BDA drivers in Wine? Would also be of interest to me. Want to abandon my Windows Server (with DMS and Sat-Card) and replace it with a Linux system. Regards, Goggo Link to comment
snorre Posted July 23, 2019 Author Share Posted July 23, 2019 @Griga and @Goggo16 Sorry, I do not have experience in running a DVB Device within wine. I did this experiment to get rid of my Windows installation running Recording Service with a hardware SAT>IP server. Some Google results showed me, that it is not possible to install native Windows DVB (or BDA) drivers in Wine. An approach could be to setup a native Linux DVB server like Tvheadend (more: https://linuxtv.org/wiki/index.php/TV_Related_Software) and record and decrypt with Recording Service. CU Snorre Link to comment
Recommended Posts