|
SageTV Github Development Discussion related to SageTV Open Source Development. Use this forum for development topics about the Open Source versions of SageTV, hosted on Github. |
|
Thread Tools | Search this Thread | Display Modes |
#1
|
||||
|
||||
Build SageTV (Linux Specific) + GitHub primer
GIT
Some GIT CheatSheets
Fork It! If you are going to make contributions to SageTV you will need a github account (free) and you will need to FORK the SageTV repo. IF you are NOT going to make contributions, and you just want to play with the code, then you don't need to fork it, you can simply clone the google repo, locally. Step 1: Goto https://github.com/google/sagetv Step 2: Click the "Fork" at the top/right of the screen. Basically, you cannot actually commit directly to SageTV, instead, you would make changes in your own repo (or be a member of someone else's) and then commit the changes there, and then submit a Pull Request to have those changes merged into the main SageTV repo. This is a standard Open Source practice. Get the Code On Ubuntu, you can install the git command line tools Code:
sudo apt-get install git Code:
git clone git@github.com:GITUSER/sagetv.git For example the sagetv github url is https://github.com/google/sagetv.git HINT: The GitHub project url is on the right hand side of the GitHub page labelled as "HTTPS Clone URL" Configure Linux (Ubuntu) This section assumes that you configuring this manually on your machine, but you can alternatively check out coppit's Docker image or my Vagrant image for ways to automatically provision environments that can be used for development. First, you need to set the JDK_HOME environment variable to be where your currently installed Java is located. If you are running a 32bit machine, then you NEED the 32bit java. If you are running a 64bit machine then you need the 64bit java. SageTV requires Java 1.5+. (I'm currently using Java 8) You can install java 8 in Ubuntu using the following commands. Code:
sudo add-apt-repository ppa:webupd8team/java sudo apt-get update sudo apt-get install -y oracle-java8-installer Code:
export JDK_HOME=/usr/lib/jvm/java-8-oracle/ Code:
export JAVA_ARCH=i386 Code:
export JAVA_ARCH=amd64 Code:
sudo apt-get install libx11-dev libxt-dev libraw1394-dev libavc1394-dev libiec61883-dev libfreetype6-dev yasm autoconf libtool build-essential Code:
sudo apt-get install libaudio-dev libpulse-dev libasound-dev Building SageTV Building the entire SageTV project is a easy as navigating to the build directory and running the buildall.sh script. Code:
cd build ./buildall.sh Code:
sudo apt-get install gcc-4.7 cd <build dir> CC=gcc-4.7 ./buildall.sh While you could actually test/run sage by running it from the serverrelease directory, it is not recommeded to do so. A better approach would be to install it using the tar balls and run it from that location. 64 BitKeeping Your Forked REPO Up To Date Make sure you have have Google upstream repo in your remotes Code:
seans@seans-desktop:~/git/sagetv$ git remote -v origin git@github.com:stuckless/sagetv.git (fetch) origin git@github.com:stuckless/sagetv.git (push) upstream https://github.com/google/sagetv.git (fetch) upstream https://github.com/google/sagetv.git (push) Code:
git remote add upstream https://github.com/google/sagetv.git Code:
git fetch upstream git rebase upstream/master Code:
git push origin master https://help.github.com/articles/con...te-for-a-fork/ https://help.github.com/articles/syncing-a-fork/ https://help.github.com/articles/pushing-to-a-remote/ Building using Docker If you don't fiddle with setting up dependencies, you an also build sagetv using Docker. See this thread for building using a Docker container.
__________________
Batch Metadata Tools (User Guides) - SageTV App (Android) - SageTV Plex Channel - My Other Android Apps - sagex-api wrappers - Google+ - Phoenix Renamer Downloads SageTV V9 | Android MiniClient Last edited by stuckless; 05-18-2016 at 05:34 AM. Reason: Updated with how to build when mplayer fails |
#2
|
||||
|
||||
I'd recommend changing the part about cd'ing into the serverrelease directory and running SageTV directly from there. I didn't intend for that to work that way (although it may)...it's better to install it somewhere else using the tarballs and then run from there.
And I noticed you said it crashed on 64 bit Linux...if you can provide more details on why (on another thread), I'd be more than happy to look into it...I'd like to get it working on 64 bit.
__________________
Jeffrey Kardatzke Founder of SageTV |
#3
|
||||
|
||||
Quote:
__________________
Batch Metadata Tools (User Guides) - SageTV App (Android) - SageTV Plex Channel - My Other Android Apps - sagex-api wrappers - Google+ - Phoenix Renamer Downloads SageTV V9 | Android MiniClient |
#4
|
|||
|
|||
Quote:
Miniclient.log Code:
Starting MiniClient Tue 8/11 18:57:53.834 Detecting cryptography support... Tue 8/11 18:57:54.080 Starting SageTVPlaceshifter Client Tue 8/11 18:57:54.095 Attempting to connect to server at localhost:31099 Tue 8/11 18:57:54.115 Connection accepted by server Tue 8/11 18:57:54.115 Connected to media server Tue 8/11 18:57:54.118 Connection accepted by server Tue 8/11 18:57:54.118 Connected to gfx server Tue 8/11 18:57:54.230 Loaded Type size error: sizeof(jint) < sizeof(size_t) Type size error: sizeof(jint) < sizeof(ssize_t) Type size error: sizeof(jint) < sizeof(ino_t) Type size error: sizeof(jint) < sizeof(nlink_t) Type size error: sizeof(jint) < sizeof(blksize_t) Type size error: sizeof(jint) < sizeof(nfds_t) Type size error: sizeof(jint) < sizeof(msgqnum_t) Type size error: sizeof(jint) < sizeof(msglen_t) Type size error: sizeof(int) < sizeof(ino_t) Jtux error: Java native types don't match POSIX/SUS types. Tue 8/11 18:57:54.243 Creating opengl renderer Tue 8/11 18:57:54.243 Native order: LITTLE_ENDIAN Tue 8/11 18:57:54.245 Testing to see if server can do a pull mode streaming connection... Tue 8/11 18:57:54.245 Server can do a pull-mode streaming connection. Code:
Tue 8/11 18:57:54.098 [MiniUIServer@3d481e9f] MiniUI got connection from java.nio.channels.SocketChannel[connected local=/127.0.0.1:31099 remote=/127.0.0.1:56587] Tue 8/11 18:57:54.114 [MiniUIServerConnection@10f5cab9] MiniPlayer is adding to its map:000c291eb35d Tue 8/11 18:57:54.115 [MiniUIServer@3d481e9f] MiniUI got connection from java.nio.channels.SocketChannel[connected local=/127.0.0.1:31099 remote=/127.0.0.1:56588] Tue 8/11 18:57:54.115 [MiniUIServerConnection@10f5cab9] MiniUI is adding to its map:000c291eb35d Tue 8/11 18:57:54.115 [MiniUIServerConnection@10f5cab9] Creating new UI for client:000c291eb35d Tue 8/11 18:57:54.116 [MiniUIServerConnection@10f5cab9] Creating-2 new UI for client:000c291eb35d UIManager:localhost@@000c291eb35d-2f346c71 Tue 8/11 18:57:54.244 [MediaServerConnection@51aad373] Error in MediaServerConnection of :java.io.EOFException Tue 8/11 18:57:54.245 [MediaServerConnection@51aad373] java.io.EOFException Tue 8/11 18:57:54.245 [MediaServerConnection@51aad373] at sage.MediaServer$Connection.readLineBytes(MediaServer.java:239) Tue 8/11 18:57:54.245 [MediaServerConnection@51aad373] at sage.MediaServer$Connection.run(MediaServer.java:956) Tue 8/11 18:57:54.245 [MediaServerConnection@51aad373] at sage.Pooler$PooledThread.run(Pooler.java:252) Tue 8/11 18:57:54.597 [MiniUIClientReceiver@5f017911] Exception in the MiniUIClientReceiver of: java.io.IOException: Connection reset by peer Tue 8/11 18:57:54.597 [MiniUIClientReceiver@5f017911] java.io.IOException: Connection reset by peer Tue 8/11 18:57:54.597 [MiniUIClientReceiver@5f017911] at sun.nio.ch.FileDispatcherImpl.read0(Native Method) Tue 8/11 18:57:54.597 [MiniUIClientReceiver@5f017911] at sun.nio.ch.SocketDispatcher.read(SocketDispatcher.java:39) Tue 8/11 18:57:54.597 [MiniUIClientReceiver@5f017911] at sun.nio.ch.IOUtil.readIntoNativeBuffer(IOUtil.java:223) Tue 8/11 18:57:54.597 [MiniUIClientReceiver@5f017911] at sun.nio.ch.IOUtil.read(IOUtil.java:197) Tue 8/11 18:57:54.597 [MiniUIClientReceiver@5f017911] at sun.nio.ch.SocketChannelImpl.read(SocketChannelImpl.java:380) Tue 8/11 18:57:54.597 [MiniUIClientReceiver@5f017911] at sage.MiniClientSageRenderer$MiniUIClientReceiver.run(MiniClientSageRenderer.java:8167) Tue 8/11 18:57:54.598 [KillUIMgr@51aad373] Killing UIMgr UIManager:localhost@@000c291eb35d-2f346c71 Tue 8/11 18:57:54.598 [KillUIMgr@51aad373] Error calling finishWatch from VF goodbye:java.lang.NullPointerException Tue 8/11 18:57:54.598 [KillUIMgr@51aad373] Killed VideoFrame Tue 8/11 18:57:54.598 [KillUIMgr@51aad373] Saving properties file to clients/000c291eb35d.properties Tue 8/11 18:57:54.599 [KillUIMgr@51aad373] Done writing out the data to the properties file Tue 8/11 18:57:54.600 [KillUIMgr@51aad373] Disposed Window Tue 8/11 18:57:59.134 [MiniUIServerConnection@10f5cab9] MiniUI established for 000c291eb35d status=false Tue 8/11 18:57:59.136 [MiniUIServerConnection@10f5cab9] Splash: Rendering Engine is initializing... Tue 8/11 18:57:59.136 [MiniUIServerConnection@10f5cab9] UIMgr was asynchronously killed during construction, re-destroy it now that init is done Tue 8/11 18:57:59.136 [MiniUIServerConnection@10f5cab9] Killing UIMgr UIManager:localhost@@000c291eb35d-2f346c71 Tue 8/11 18:57:59.137 [MiniUIServerConnection@10f5cab9] Error calling finishWatch from VF goodbye:java.lang.NullPointerException Tue 8/11 18:57:59.137 [MiniUIServerConnection@10f5cab9] Killed VideoFrame Tue 8/11 18:57:59.638 [FinalRender-000c291eb35d@1daad27e] Terminating the BGResourceLoader for the rendering engine Tue 8/11 18:57:59.640 [FinalRender-000c291eb35d@1daad27e] deinitMini() Tue 8/11 18:57:59.640 [PluginEventQueue@1495f45d] Core is about to process the event ClientDisconnected vars={MACAddress=000c291eb35d, IPAddress=127.0.0.1} Tue 8/11 18:58:01.139 [MiniUIServerConnection@10f5cab9] Killed RootPanel Tue 8/11 18:58:01.139 [MiniUIServerConnection@10f5cab9] Saving properties file to clients/000c291eb35d.properties Tue 8/11 18:58:01.142 [MiniUIServerConnection@10f5cab9] Done writing out the data to the properties file Tue 8/11 18:58:01.142 [MiniUIServerConnection@10f5cab9] Disposed Window Tue 8/11 18:58:24.137 [MiniUIServer@3d481e9f] Dropping old MiniPlayer connection because it's old from:000c291eb35d NB: I have never used the linux place-shifter and I do not currently have access to any windows clients or extenders.
__________________
[size=1]-MrD ============= Linux Server 7.1.9 (1)HD300 (1) HD200 (1) HD100 (2) PC Clients Intel Xeon L? 32Gb CetonTV cable card /FIOS |
#5
|
||||
|
||||
The Placeshifter crash I know about. That's because there's .so files for jogl that it's using and it has the 32 bit ones there. Ideally this would be updated to use a different type of JOGL JAR package which contains all the proper native libraries...and I think that's actually available...I just didn't get around to fixing that part....
Anyhoo...to fix your problem, you should just need to download the 64 bit JOGL libraries and replace the ones in the placeshifter folder; then it should work. (I have not verified this myself)
__________________
Jeffrey Kardatzke Founder of SageTV |
#6
|
|||
|
|||
What are the general memory requirements for the Linux version? Currently running on Windows. Planning on creating a VM on my ESXi server for testing.
__________________
Server: i5 8400, ASUS Prime H370M-Plus/CSM, 16GB RAM, 15TB drive array + 500GB cache, 2 HDHR's, SageTV 9, unRAID 6.6.3 Client 1: HD300 (latest FW), HDMI to an Insignia 65" 1080p LCD and optical SPDIF to a Sony Receiver Client 2: HD200 (latest FW), HDMI to an Insignia NS-LCD42HD-09 1080p LCD |
#7
|
|||
|
|||
It looks like all of the discussion is currently about Linux. Should those of us that want to start trying Sage be thinking about a Linux install as it looks like that is the favored platform going forward?
If so, what is Linux support like for devices like the 1212 HD-PVR, and USB-UIRT?
__________________
New Server - Sage9 on unRAID 2xHD-PVR, HDHR for OTA Old Server - Sage7 on Win7Pro-i660CPU with 4.6TB, HD-PVR, HDHR OTA, HVR-1850 OTA Clients - 2xHD-300, 8xHD-200 Extenders, Client+2xPlaceshifter and a WHS which acts as a backup Sage server |
#8
|
||||
|
||||
Quote:
Quote:
__________________
Batch Metadata Tools (User Guides) - SageTV App (Android) - SageTV Plex Channel - My Other Android Apps - sagex-api wrappers - Google+ - Phoenix Renamer Downloads SageTV V9 | Android MiniClient |
#9
|
|||
|
|||
That also appears to be the case for Narflex as well. So if most of the developers are on Linux then that seems to be the platform that is the most supported.
__________________
New Server - Sage9 on unRAID 2xHD-PVR, HDHR for OTA Old Server - Sage7 on Win7Pro-i660CPU with 4.6TB, HD-PVR, HDHR OTA, HVR-1850 OTA Clients - 2xHD-300, 8xHD-200 Extenders, Client+2xPlaceshifter and a WHS which acts as a backup Sage server |
#10
|
||||
|
||||
But, the Linux version doesn't have a regular built-in client, correct?
You can run the server, but then need to use an extender or a placeshifter client for playback right?
__________________
Server: Ryzen 2400G with integrated graphics, ASRock X470 Taichi Motherboard, HDMI output to Vizio 1080p LCD, Win10-64Bit (Professional), 16GB RAM Capture Devices (7 tuners): Colossus (x1), HDHR Prime (x2),USBUIRT (multi-zone) Source: Comcast/Xfinity X1 Cable Primary Client: Server Other Clients: (1) HD200, (1) HD300 Retired Equipment: MediaMVP, PVR150 (x2), PVR150MCE, HDHR, HVR-2250, HD-PVR |
#11
|
|||
|
|||
I'm trying to use Place shifter on my Ubuntu box, so far without success. I followed the build instructions and can start the server and connect to it from my HD300 but when I try to connect Place shifter to my windows server, the connection dialogue pops up and when I choose my windows sever nothing happens, no GUI, nothing. I'm running 64 bit Ubuntu 14.04 with java 8, could this be the problem?
|
#12
|
|||
|
|||
Trying to install the server via the deb. It fails to complete the configuration due to a dependency failure for sun-java6-jre.
__________________
Server: i5 8400, ASUS Prime H370M-Plus/CSM, 16GB RAM, 15TB drive array + 500GB cache, 2 HDHR's, SageTV 9, unRAID 6.6.3 Client 1: HD300 (latest FW), HDMI to an Insignia 65" 1080p LCD and optical SPDIF to a Sony Receiver Client 2: HD200 (latest FW), HDMI to an Insignia NS-LCD42HD-09 1080p LCD |
#13
|
||||
|
||||
Quote:
Quote:
__________________
Batch Metadata Tools (User Guides) - SageTV App (Android) - SageTV Plex Channel - My Other Android Apps - sagex-api wrappers - Google+ - Phoenix Renamer Downloads SageTV V9 | Android MiniClient |
#14
|
||||
|
||||
Quote:
Yeah, we'll have to fix that.
__________________
Batch Metadata Tools (User Guides) - SageTV App (Android) - SageTV Plex Channel - My Other Android Apps - sagex-api wrappers - Google+ - Phoenix Renamer Downloads SageTV V9 | Android MiniClient |
#15
|
|||
|
|||
I got a core dump scanning my HDHR for channels.
__________________
Server: i5 8400, ASUS Prime H370M-Plus/CSM, 16GB RAM, 15TB drive array + 500GB cache, 2 HDHR's, SageTV 9, unRAID 6.6.3 Client 1: HD300 (latest FW), HDMI to an Insignia 65" 1080p LCD and optical SPDIF to a Sony Receiver Client 2: HD200 (latest FW), HDMI to an Insignia NS-LCD42HD-09 1080p LCD |
#16
|
||||
|
||||
Quote:
|
#17
|
||||
|
||||
V9 placeshifter should work fine with V7 server....we made lots of efforts to ensure compatability with extenders over various versions (and the placeshifter uses the same protocol, so I'd expect it to be just as compatible).
__________________
Jeffrey Kardatzke Founder of SageTV |
#18
|
||||
|
||||
I got an error trying to do a build. It built the Sage.jar file then failed building the miniclient. It looks like it is missing jni.h which is a #include in sage_Sage.c.
I'm building on 64 bit ubuntu. I do have JDK_HOME pointing to a 32 bit version of Java.
__________________
Sage Server: 8th gen Intel based system w/32GB RAM running Ubuntu Linux, HDHomeRun Prime with cable card for recording. Runs headless. Accessed via RD when necessary. Four HD-300 Extenders. |
#19
|
||||
|
||||
I have the same issue, says it's missing jni.h
__________________
Buy Fuzzy a beer! (Fuzzy likes beer) unRAID Server: i7-6700, 32GB RAM, Dual 128GB SSD cache and 13TB pool, with SageTVv9, openDCT, Logitech Media Server and Plex Media Server each in Dockers. Sources: HRHR Prime with Charter CableCard. HDHR-US for OTA. Primary Client: HD-300 through XBoxOne in Living Room, Samsung HLT-6189S Other Clients: Mi Box in Master Bedroom, HD-200 in kids room |
#20
|
||||
|
||||
Quote:
Code:
ls $JDK_HOME/include/ Code:
echo $JDK_HOME
__________________
Batch Metadata Tools (User Guides) - SageTV App (Android) - SageTV Plex Channel - My Other Android Apps - sagex-api wrappers - Google+ - Phoenix Renamer Downloads SageTV V9 | Android MiniClient |
Currently Active Users Viewing This Thread: 1 (0 members and 1 guests) | |
|
|
Similar Threads | ||||
Thread | Thread Starter | Forum | Replies | Last Post |
I need a YouTube primer | Skiier__Dude | SageTV Customizations | 0 | 05-30-2012 10:51 AM |
Close to building a Linux SageTV Computer, which Linux distribution is best? | davephan | SageTV Linux | 8 | 02-24-2011 06:57 PM |
Can I set SageTV to use a specific Tuner for certain channels? | 2FAST4U | SageTV Software | 1 | 05-12-2010 06:55 PM |
Cable STB primer help requests | cavalli | Hardware Support | 1 | 12-12-2008 09:27 AM |
SageTV Linux specific features | ntisdale | SageTV Linux | 0 | 04-11-2007 05:12 AM |