How to compile vdr + vnsiserver from source

  Thread Rating:
  • 1 Vote(s) - 5 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Post Reply
FernetMenta Offline
Team-Kodi Developer
Posts: 6,247
Joined: Jul 2010
Reputation: 146
Location: Munich
Post: #46
not necessarily but you are save if you do so
find quote
FernetMenta Offline
Team-Kodi Developer
Posts: 6,247
Joined: Jul 2010
Reputation: 146
Location: Munich
Post: #47
don't forget to enable the systemd service after having copied the files: sudo systemctl enable vdr.path
find quote
gurabli Offline
Fan
Posts: 465
Joined: Sep 2012
Reputation: 1
Post: #48
I'm not sure about this: we already discussed why compiling is better then to use PPA (init.d script).
If I compile VDR and VNSI-Server as described, can I add the plugins from a ppa, like Live, Streamdev, RestfulAPI, etc? Is it safe to do this, or better to install all the dependencies of the plugins and compile the plugins too?

If I install VDR from ppa, can I just delete the ancient init.d script and use the ones you posted or it doesn't work like that?

HTPC 1: ASRock N3150DC-ITX, 8GB DDR3L, 64GB SSD, Ubuntu Server 16.04 LTS + Kodi v17 EGL
HTPC 2: RPi2 + HiFiBerry DIGI+, LibreElec
(This post was last modified: 2015-09-21 08:15 by gurabli.)
find quote
FernetMenta Offline
Team-Kodi Developer
Posts: 6,247
Joined: Jul 2010
Reputation: 146
Location: Munich
Post: #49
(2015-09-21 08:14)gurabli Wrote:  Is it safe to do this?

No. VDR and plugins should be compiled with identical options.

(2015-09-21 08:14)gurabli Wrote:  If I install VDR from ppa, can I just delete the ancient init.d script and use the ones you posted or it doesn't work like that?

yes
find quote
gurabli Offline
Fan
Posts: 465
Joined: Sep 2012
Reputation: 1
Post: #50
Thanks FernetMenta to clearing things up (again).

HTPC 1: ASRock N3150DC-ITX, 8GB DDR3L, 64GB SSD, Ubuntu Server 16.04 LTS + Kodi v17 EGL
HTPC 2: RPi2 + HiFiBerry DIGI+, LibreElec
find quote
gurabli Offline
Fan
Posts: 465
Joined: Sep 2012
Reputation: 1
Post: #51
Hi @FernetMenta,

I'm installing VDR and VNSI-Server on a fresh Ubuntu Server Vivid install, following your guide.

VDR compiles and installs fine, but I get an error with vnsi-server:

Code:
*** Plugin vnsiserver:
g++ -g -O3 -Wall -Werror=overloaded-virtual -Wno-parentheses -fPIC -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -c -D_GNU_SOURCE -DPLUGIN_NAME_I18N='"vnsiserver"' -DVNSI_SERVER_VERSION='"1.3.1"' -I/home/server/progs/src/vdr/include -o vnsi.o vnsi.c
g++ -g -O3 -Wall -Werror=overloaded-virtual -Wno-parentheses -fPIC -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -c -D_GNU_SOURCE -DPLUGIN_NAME_I18N='"vnsiserver"' -DVNSI_SERVER_VERSION='"1.3.1"' -I/home/server/progs/src/vdr/include -o bitstream.o bitstream.c
g++ -g -O3 -Wall -Werror=overloaded-virtual -Wno-parentheses -fPIC -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -c -D_GNU_SOURCE -DPLUGIN_NAME_I18N='"vnsiserver"' -DVNSI_SERVER_VERSION='"1.3.1"' -I/home/server/progs/src/vdr/include -o vnsiclient.o vnsiclient.c
vnsiclient.c: In member function ‘void cVNSIClient::EpgChange()’:
vnsiclient.c:255:33: error: ‘Schedules’ is not a member of ‘cSchedules’
   const cSchedules *schedules = cSchedules::Schedules(MutexLock);
                                 ^
vnsiclient.c:262:51: error: invalid conversion from ‘const cEvent*’ to ‘cEvent*’ [-fpermissive]
     cEvent *lastEvent =  schedule->Events()->Last();
                                                   ^
vnsiclient.c:266:5: error: ‘Channels’ was not declared in this scope
     Channels.Lock(false);
     ^
vnsiclient.c: In member function ‘bool cVNSIClient::processChannelStream_Open()’:
vnsiclient.c:796:3: error: ‘Channels’ was not declared in this scope
   Channels.Lock(false);
   ^
vnsiclient.c: In member function ‘bool cVNSIClient::processCHANNELS_ChannelsCount()’:
vnsiclient.c:1026:3: error: ‘Channels’ was not declared in this scope
   Channels.Lock(false);
   ^
vnsiclient.c: In member function ‘bool cVNSIClient::processCHANNELS_GetChannels()’:
vnsiclient.c:1044:3: error: ‘Channels’ was not declared in this scope
   Channels.Lock(false);
   ^
vnsiclient.c: In member function ‘bool cVNSIClient::processCHANNELS_GroupsCount()’:
vnsiclient.c:1103:3: error: ‘Channels’ was not declared in this scope
   Channels.Lock(false);
   ^
vnsiclient.c: In member function ‘bool cVNSIClient::processCHANNELS_GetGroupMembers()’:
vnsiclient.c:1166:3: error: ‘Channels’ was not declared in this scope
   Channels.Lock(false);
   ^
vnsiclient.c: In member function ‘bool cVNSIClient::processCHANNELS_GetCaids()’:
vnsiclient.c:1211:3: error: ‘Channels’ was not declared in this scope
   Channels.Lock(false);
   ^
vnsiclient.c: In member function ‘void cVNSIClient::CreateChannelGroups(bool)’:
vnsiclient.c:1340:28: error: ‘Channels’ was not declared in this scope
   for (cChannel *channel = Channels.First(); channel; channel = Channels.Next(channel))
                            ^
vnsiclient.c: In member function ‘bool cVNSIClient::processTIMER_GetCount()’:
vnsiclient.c:1369:15: error: ‘Timers’ was not declared in this scope
   int count = Timers.Count();
               ^
vnsiclient.c: In member function ‘bool cVNSIClient::processTIMER_Get()’:
vnsiclient.c:1384:19: error: ‘Timers’ was not declared in this scope
   int numTimers = Timers.Count();
                   ^
vnsiclient.c: In member function ‘bool cVNSIClient::processTIMER_GetList()’:
vnsiclient.c:1422:19: error: ‘Timers’ was not declared in this scope
   int numTimers = Timers.Count();
                   ^
vnsiclient.c: In member function ‘bool cVNSIClient::processTIMER_Add()’:
vnsiclient.c:1494:17: error: ‘Timers’ was not declared in this scope
     cTimer *t = Timers.GetTimer(timer);
                 ^
vnsiclient.c: In member function ‘bool cVNSIClient::processTIMER_Delete()’:
vnsiclient.c:1531:41: error: ‘Timers’ was not declared in this scope
   if (number <= 0 || number > (uint32_t)Timers.Count())
                                         ^
vnsiclient.c:1548:48: error: no matching function for call to ‘cRecordControls::Process(time_t)’
             cRecordControls::Process(time(NULL));
                                                ^
vnsiclient.c:1548:48: note: candidate is:
In file included from vnsiclient.c:35:0:
/home/server/progs/src/vdr/include/vdr/menu.h:271:15: note: static bool cRecordControls::Process(cTimers*, time_t)
   static bool Process(cTimers *Timers, time_t t);
               ^
/home/server/progs/src/vdr/include/vdr/menu.h:271:15: note:   candidate expects 2 arguments, 1 provided
vnsiclient.c: In member function ‘bool cVNSIClient::processTIMER_Update()’:
vnsiclient.c:1589:19: error: ‘Timers’ was not declared in this scope
   cTimer *timer = Timers.Get(index - 1);
                   ^
vnsiclient.c: In member function ‘bool cVNSIClient::processRECORDINGS_GetCount()’:
vnsiclient.c:1683:19: error: ‘Recordings’ was not declared in this scope
   m_resp->add_U32(Recordings.Count());
                   ^
vnsiclient.c: In member function ‘bool cVNSIClient::processRECORDINGS_GetList()’:
vnsiclient.c:1693:31: error: ‘Recordings’ was not declared in this scope
   cThreadLock RecordingsLock(&Recordings);
                               ^
vnsiclient.c: In member function ‘bool cVNSIClient::processRECORDINGS_Rename()’:
vnsiclient.c:1833:5: error: ‘Recordings’ was not declared in this scope
     Recordings.Update();
     ^
vnsiclient.c: In member function ‘bool cVNSIClient::processRECORDINGS_Delete()’:
vnsiclient.c:1864:9: error: ‘Recordings’ was not declared in this scope
         Recordings.DelByName(recording->FileName());
         ^
vnsiclient.c: In member function ‘bool cVNSIClient::processEPG_GetForChannel()’:
vnsiclient.c:1935:3: error: ‘Channels’ was not declared in this scope
   Channels.Lock(false);
   ^
vnsiclient.c:1957:33: error: ‘Schedules’ is not a member of ‘cSchedules’
   const cSchedules *Schedules = cSchedules::Schedules(MutexLock);
                                 ^
vnsiclient.c:2049:49: error: invalid conversion from ‘const cEvent*’ to ‘cEvent*’ [-fpermissive]
   cEvent *lastEvent =  Schedule->Events()->Last();
                                                 ^
vnsiclient.c: In member function ‘bool cVNSIClient::processRECORDINGS_DELETED_GetCount()’:
vnsiclient.c:2343:3: error: ‘DeletedRecordings’ was not declared in this scope
   DeletedRecordings.Load();
   ^
vnsiclient.c: In member function ‘bool cVNSIClient::processRECORDINGS_DELETED_GetList()’:
vnsiclient.c:2353:31: error: ‘Recordings’ was not declared in this scope
   cThreadLock RecordingsLock(&Recordings);
                               ^
vnsiclient.c:2355:32: error: ‘DeletedRecordings’ was not declared in this scope
   for (cRecording *recording = DeletedRecordings.First(); recording; recording = DeletedRecordings.Next(recording))
                                ^
vnsiclient.c: In member function ‘bool cVNSIClient::processRECORDINGS_DELETED_Delete()’:
vnsiclient.c:2479:40: error: ‘DeletedRecordings’ was not declared in this scope
     cThreadLock DeletedRecordingsLock(&DeletedRecordings);
                                        ^
vnsiclient.c: In member function ‘bool cVNSIClient::Undelete(cRecording*)’:
vnsiclient.c:2572:9: error: ‘DeletedRecordings’ was not declared in this scope
         DeletedRecordings.Del(recording);
         ^
vnsiclient.c:2573:9: error: ‘Recordings’ was not declared in this scope
         Recordings.Update();
         ^
vnsiclient.c: In member function ‘bool cVNSIClient::processRECORDINGS_DELETED_Undelete()’:
vnsiclient.c:2600:40: error: ‘DeletedRecordings’ was not declared in this scope
     cThreadLock DeletedRecordingsLock(&DeletedRecordings);
                                        ^
vnsiclient.c: In member function ‘bool cVNSIClient::processRECORDINGS_DELETED_DeleteAll()’:
vnsiclient.c:2636:40: error: ‘DeletedRecordings’ was not declared in this scope
     cThreadLock DeletedRecordingsLock(&DeletedRecordings);
                                        ^
Makefile:107: recipe for target 'vnsiclient.o' failed
make[1]: *** [vnsiclient.o] Error 1

*** failed plugins: vnsiserver

Makefile:210: recipe for target 'plugins' failed
make: *** [plugins] Error 1

Any ideas?

HTPC 1: ASRock N3150DC-ITX, 8GB DDR3L, 64GB SSD, Ubuntu Server 16.04 LTS + Kodi v17 EGL
HTPC 2: RPi2 + HiFiBerry DIGI+, LibreElec
find quote
FernetMenta Offline
Team-Kodi Developer
Posts: 6,247
Joined: Jul 2010
Reputation: 146
Location: Munich
Post: #52
hard to tell because you provided zero information on what exactly you did.
find quote
gurabli Offline
Fan
Posts: 465
Joined: Sep 2012
Reputation: 1
Post: #53
(2015-09-23 09:31)FernetMenta Wrote:  hard to tell because you provided zero information on what exactly you did.

Followed your guide in post one, step by step.
This happens when I start 'make', VDR compiles fine, put vnsi-server and live plugins don't, I get the result posted above.

I'm on Ubuntu Server Vivid with kernel 4.2. Please let me know what information you need more, I will provide it immediately!

HTPC 1: ASRock N3150DC-ITX, 8GB DDR3L, 64GB SSD, Ubuntu Server 16.04 LTS + Kodi v17 EGL
HTPC 2: RPi2 + HiFiBerry DIGI+, LibreElec
(This post was last modified: 2015-09-23 09:36 by gurabli.)
find quote
FernetMenta Offline
Team-Kodi Developer
Posts: 6,247
Joined: Jul 2010
Reputation: 146
Location: Munich
Post: #54
please pastebin the entire build output.
find quote
FernetMenta Offline
Team-Kodi Developer
Posts: 6,247
Joined: Jul 2010
Reputation: 146
Location: Munich
Post: #55
ahh, vdr 2.3.1 was released and requires changes to plugins. checkout version 2.2.0 from git.
find quote
gurabli Offline
Fan
Posts: 465
Joined: Sep 2012
Reputation: 1
Post: #56
Unbelievable, thanks, I never thought about this. As it happens to be most of the time, it was again a user error. Will try again with 2.2.0 git

Btw, some interesting changes in the new VDR version. Will try once the plugins, especially vnsi-server Smile are updated to support it.

HTPC 1: ASRock N3150DC-ITX, 8GB DDR3L, 64GB SSD, Ubuntu Server 16.04 LTS + Kodi v17 EGL
HTPC 2: RPi2 + HiFiBerry DIGI+, LibreElec
find quote
gurabli Offline
Fan
Posts: 465
Joined: Sep 2012
Reputation: 1
Post: #57
Now with using version 2.2.0 everything works fine, managed to compile without any errors.

Btw, what is the default location for plugins, as some plugins seams to be are not using /var/lib/plugins but other (Live, restfulapi).

EDIT: @FernetMenta I have this in my log, not sure why is it, and I don't see anything wrong, but wonder why?

vdr: [1465] VNSI-Error: cParser::AddPESPacket - max buffer size reached, pid: 451


I see you have updated vnsi-server for VDR 2.3.1. Can we upgrade to new VDR?
Are there any benefits at the moment? (Apart from the still not compatible plugins, like Live, and the EPG update patch that prevents rotor/motor usage when updating EPG)?

HTPC 1: ASRock N3150DC-ITX, 8GB DDR3L, 64GB SSD, Ubuntu Server 16.04 LTS + Kodi v17 EGL
HTPC 2: RPi2 + HiFiBerry DIGI+, LibreElec
(This post was last modified: 2015-09-25 15:12 by gurabli.)
find quote
charlie0440 Offline
Fan
Posts: 423
Joined: Dec 2011
Reputation: 8
Post: #58
Did a fresh install of ubuntu server 15.10 last night, and now I can't get VDR up and runningHuh

Pretty much followed the instructions in post #1, steps 1-9 (assume I do not need to do the 10.1 the udev step?). It compiled fine. Then used the systemd script found in this thread:

vdr.path
Code:
[Path]
PathExists=/dev/dvb/adapter0/frontend0
Unit=vdr.service

[Install]
WantedBy=multi-user.target

vdr.service
Code:
[Unit]
Description=VDR backend service startup delay until capture devices exist

[Service]
Type=simple
User=charlie
ExecStart=/usr/local/bin/runvdr

# enable the systemd service
sudo systemctl enable vdr.path

# start service
sudo systemctl start vdr

cat /var/log/syslog | grep vdr _ > http://paste.ubuntu.com/13500892/

Not sure what the problem is think I may of screwed up file permissions and groups.

dmesg | grep DVB
Code:
[   24.012500] DDBridge driver detected: Digital Devices Cine S2 V6 DVB adapter
[   24.021131] Port 0 (TAB 1): DUAL DVB-S2
[   24.036637] DVB: registering new adapter (DDBridge)
[   24.237706] DDBridge 0000:05:00.0: DVB: registering adapter 0 frontend 0 (STV090x Multistandard)...
[   24.237781] DVB: registering new adapter (DDBridge)
[   24.272283] DDBridge 0000:05:00.0: DVB: registering adapter 1 frontend 0 (STV090x Multistandard)...

ls -al /usr/local/bin/
Code:
drwxr-xr-x  2 root root    4096 Nov 25 00:08 .
drwxr-xr-x 10 root root    4096 Nov 24 20:44 ..
-rwxr-xr-x  1 root root    2192 Nov 25 00:08 runvdr
-rwxr-xr-x  1 root root    1169 Nov 24 22:44 svdrpsend
-rwxr-xr-x  1 root root 6396744 Nov 24 22:44 vdr

runvdr -> http://paste.ubuntu.com/13500888/

full syslog here -> http://paste.ubuntu.com/13500893/

vdr -V
Code:
vdr (2.2.0/2.2.0) - The Video Disk Recorder
markad (0.1.5pre (74e2a8c)) - Mark advertisements
rcu (2.2.0) - Remote Control Unit
skincurses (2.2.0) - A text only skin
status (2.2.0) - Status monitor test
dvbsddevice (2.2.0) - SD Full Featured DVB device
svcsvr (2.2.0) - Service demo server
epgtableid0 (2.2.0) - EPG handler for events with table id 0x00
vdrmanager (0.14) - VDR-Manager plugin
vnsiserver (1.3.1) - VDR-Network-Streaming-Interface (VNSI) Server
svccli (2.2.0) - Service demo client
streamdev-client (0.6.1-git) - VTP Streaming Client
svdrpdemo (2.2.0) - How to add SVDRP support to a plugin
dvbhddevice (2.2.0) - HD Full Featured DVB device
pictures (2.2.0) - A simple picture viewer
osddemo (2.2.0) - Demo of arbitrary OSD setup
streamdev-server (0.6.1-git) - VDR Streaming Server
hello (2.2.0) - A friendly greeting
eepg (0.0.6pre) - Parses Extended EPG data
live (0.3.0) - Live Interactive VDR Environment

ls -al /dev/dvb/adapter*
/dev/dvb/adapter0:
total 0
drwxr-xr-x 2 root root 120 Nov 25 07:05 .
drwxr-xr-x 4 root root 80 Nov 25 07:05 ..
crw-rw---- 1 root video 212, 0 Nov 25 07:05 demux0
crw-rw---- 1 root video 212, 1 Nov 25 07:05 dvr0
crw-rw---- 1 root video 212, 3 Nov 25 07:05 frontend0
crw-rw---- 1 root video 212, 2 Nov 25 07:05 net0

/dev/dvb/adapter1:
total 0
drwxr-xr-x 2 root root 120 Nov 25 07:05 .
drwxr-xr-x 4 root root 80 Nov 25 07:05 ..
crw-rw---- 1 root video 212, 4 Nov 25 07:05 demux0
crw-rw---- 1 root video 212, 5 Nov 25 07:05 dvr0
crw-rw---- 1 root video 212, 7 Nov 25 07:05 frontend0
crw-rw---- 1 root video 212, 6 Nov 25 07:05 net0

Any help appreciated!!

Edit: Changed logging level to 3 and updated my runvdr

Guide to building an all in one Ubuntu Server - TV(vdr),File,Music,Web

Server Fractal Designs Define XL, Asus P5QL/EPU, Dual Core E5200, 4gb, L4M-Twin S2 v6.2, Supermicro AOC-USAS-L8I, 1*SSD & 13*HDD drives (24TB total) - Ubuntu Server
XBMC 1 ASRock Z77E-ITX, G850, 8GB RAM, SSD, BD - Ubuntu / OpenElec frodo
XBMC 2 Revo 3700 - OpenElec frodo
XBMC 3 Raspb Pi
(This post was last modified: 2015-11-25 09:54 by charlie0440.)
find quote
charlie0440 Offline
Fan
Posts: 423
Joined: Dec 2011
Reputation: 8
Post: #59
Got a little further VNSI is connecting but it won't tune and I get a:

VNSI: cxSocket::read: eof, connection closed
Nov 25 17:24:23 Server vdr: [819] VNSI: Client with ID 3 seems to be disconnected, removing from client list
Nov 25 17:24:38 Server vdr: [791] frontend 0/0 timed out while tuning to channel 123 (Challenge), tp 112304

http://paste.ubuntu.com/13504099/

Guide to building an all in one Ubuntu Server - TV(vdr),File,Music,Web

Server Fractal Designs Define XL, Asus P5QL/EPU, Dual Core E5200, 4gb, L4M-Twin S2 v6.2, Supermicro AOC-USAS-L8I, 1*SSD & 13*HDD drives (24TB total) - Ubuntu Server
XBMC 1 ASRock Z77E-ITX, G850, 8GB RAM, SSD, BD - Ubuntu / OpenElec frodo
XBMC 2 Revo 3700 - OpenElec frodo
XBMC 3 Raspb Pi
find quote
FernetMenta Offline
Team-Kodi Developer
Posts: 6,247
Joined: Jul 2010
Reputation: 146
Location: Munich
Post: #60
why do you load this plugin? 'dvbhddevice'
find quote