Jump to content

Linux Setup


Luke

Recommended Posts

PhAzE

The Unraid plugin is ready but just waiting for a version that works with mono-service and the package so it can auto download. ;)

Link to comment
Share on other sites

thefirstofthe300

Hi guys,

 

I have a question related to Path substitution... i can't get it to work... I've got the server running on Linux (Arch Linux) and i'm trying to access the path from a windows 8 machine.

I've tried watching content trough browser but it's lagging, dunno if it's something browser related or if my cpu can't handle it.

Do i need any extra configuration for the folder (path) to be accessible from windows? Do i also need to setup a samba share to the same path i've configured in MB3 server?

 

Thanks a lot in advance and sorry for my bad english :)

Keep up the good work.

When you say you are trying to access the path, are you trying to stream media using the MB3 server on your Arch machine from a Windows 8 computer? Or are you trying to setup another server on the Windows 8 machine? If you are trying to have direct access to the media files on the Arch box from the Windows machine or vice versa, the answer is yes, you will need to set up Samba. However, doing so kind of defeats the purpose of having MB3 installed.

 

As far as the lag goes, that would be more of Luke's department. :)

 

Sent from my Nexus 7 using Tapatalk

Link to comment
Share on other sites

Beardyname

When you say you are trying to access the path, are you trying to stream media using the MB3 server on your Arch machine from a Windows 8 computer? Or are you trying to setup another server on the Windows 8 machine? If you are trying to have direct access to the media files on the Arch box from the Windows machine or vice versa, the answer is yes, you will need to set up Samba. However, doing so kind of defeats the purpose of having MB3 installed.

 

As far as the lag goes, that would be more of Luke's department. :)

 

Sent from my Nexus 7 using Tapatalk

 

 

For clients on windows that want to use Direct play (No transcoding) samba is required, and I don't think that would defeat the purpose of MBS. How else are the Windows players supposed to access the files (directly) :)

 

Basically as i understand it typing \\servername\share in Windows explorer should open up the file share. If not then the server will have to trans-code and that could very well be what is causing the lag, depending on cpu-power etc.

Link to comment
Share on other sites

reguila

Ok, i got it. Thank you.

If i run the MB Theater on the windows machine (i5 laptop) the server does any type of transcoding? I guess not because i'm unable to see ffmpeg running on mb3 server this way, and still have a lot of lag when handling MKV's so maybe the problem it's network related (wireless). I have to make some more tests to identify the problem.

The server is running on a Core I3 4130 CPU, with 8GB RAM and a NVIDIA GeForce 610M. I'm pretty sure this machine is able to transcode MKV's (720p and 1080p), at least i used to run a xmbc box with a weaker machine without problem.

Link to comment
Share on other sites

smitopher

So, as I understand the Linux way of doing stuff as documented at http://en.wikipedia.org/wiki/Filesystem_Hierarchy_Standard

 

install (unzip) MB3 to the folder  /opt/MediaBrowserServer

Start the server to use the folder /var/MediaBrowserServer instead of ProgramData-Server

A text file, /etc/opt/MediaBrowserServer, that has the startup config 

a systemd configuration file to enable MB3 to run as a service

 

All of the above should be "packaged" in a rpm file (Fedora/Red Hat based distros) and/or a deb file (Debian/Ubuntu based distros)

This "package" can then be hosted in a repository, initially by the MB3 team but then the MB3 team should be able to get it hosted in the official repositories of the major Linux distributions.

 

Then MB3 is a full member of the Linux ecosystem, installed and updated just like regular Linux software.

 

I've been poking around at "How To"s to create Fedora RPM's...  :o geeze... it's a mouthful.  It's rather like reading IRS docs  :wacko:

 

Do we have any Linux types here that can help with this stuff?

 

Is there a better term to use rather than MediaBrowserServer?

Edited by smitopher
Link to comment
Share on other sites

smitopher

yea i'll new build up soon that should resolve it

Do you use Visual Studio or Mono Develop?  My C# is... well... it's "gee, that looks like Java" but I'd like to take a shot at messing with MB3

Link to comment
Share on other sites

mono develop is fine, but i use visual studio. then i use our build scripts to build it for mono. 

 

mono develop makes small changes to the project and solution files so that's why i try to avoid opening it. they are most likely harmless though.

Link to comment
Share on other sites

PhAzE

As long as the package has a text file with the version number I'll be able to have Unraid plugin check and perform updates as required. Once it's hosted somewhere I'll be able to complete and release it into the wild.

 

Currently using sed to modify the config file before launch so anytime the XML tags are changed for path locations I'll need to update the plugin accordingly.

Edited by PhAzE
Link to comment
Share on other sites

smitopher

mono develop is fine, but i use visual studio. then i use our build scripts to build it for mono. 

 

mono develop makes small changes to the project and solution files so that's why i try to avoid opening it. they are most likely harmless though.

Is Visual Studio Express Edition sufficient for MB3 development?

 

I'm leaning to Mono Develop because I want to do this in Linux.  (and everything is free :P )

Link to comment
Share on other sites

Is Visual Studio Express Edition sufficient for MB3 development?

 

I'm leaning to Mono Develop because I want to do this in Linux.  (and everything is free :P )

 

unfortunately express cannot build the server, but i think mono develop is a fine idea. as mentioned, once i clear off a couple projects this will be my top priority too, so i'll be there with you

Link to comment
Share on other sites

smitopher

unfortunately express cannot build the server, but i think mono develop is a fine idea. as mentioned, once i clear off a couple projects this will be my top priority too, so i'll be there with you

 

kool, I'll try to not annoy you... too much.

 

Pity you can't use VS Express Edition.

Link to comment
Share on other sites

well that was with express 2012. it's possible it's different with 2013 now that MS is trying to show they're becoming more flexible. haven't tested it yet though

Link to comment
Share on other sites

express doesn't support portable class libraries. so the model.portable project won't build. you can workaround it by removing that from the solution, although it would have to be restored in the event you end up with any changes to submit to us

Link to comment
Share on other sites

PhAzE

Thank phaze, my first go is going to be for Fedora so I'm looking to build rpm's rather than deb's

Unraid will need deb files. If I get some time I'll see about making a script to automate it.

Link to comment
Share on other sites

thefirstofthe300

Just so that those to whom this applies know, I updated my AUR package for Arch.

 

@@Luke

 

Just so I know this is the most recent build, I seem to have build 3.0.5212.547.  Is that the most recent?  The only way I have really figured out how to get the version number is by downloading and running the entire build.

Link to comment
Share on other sites

That's the most recent public build. I am not currently supplying dev and beta to linux and osx until we have a better distribution mechanism setup.

 

This will soon be my top priority as soon as I finish existing projects but we are definitely looking for additional help from people who have experience releasing linux and osx software packages.

Link to comment
Share on other sites

thefirstofthe300

That's the most recent public build. I am not currently supplying dev and beta to linux and osx until we have a better distribution mechanism setup.

 

This will soon be my top priority as soon as I finish existing projects but we are definitely looking for additional help from people who have experience releasing linux and osx software packages.

 

 

Thanks, @@Luke.  That was all I really needed to know.

Link to comment
Share on other sites

thefirstofthe300

So I am back to attempting to build a 32-bit package for Arch and am still running into the problem I have already posted about earlier.

 

My specs are Arch Linux 32-bit running the latest everything, Mono 3.2.8 and libgdiplus.

 

I am getting the following stack trace:

Info, App, Version 3.0.5212.547 initializingInfo, SqliteUserRepository, Opening /home/daniel/Downloads/MediaBrowser3/ProgramData-Server/data/users.db
Error, Main, UnhandledException
	One or more errors occured
	System.AggregateException
	  at System.Threading.Tasks.Task.WaitAll (System.Threading.Tasks.Task[] tasks, Int32 millisecondsTimeout, CancellationToken cancellationToken) [0x00000] in <filename unknown>:0 
	  at System.Threading.Tasks.Task.WaitAll (System.Threading.Tasks.Task[] tasks) [0x00000] in <filename unknown>:0 
	  at MediaBrowser.Server.Mono.MainClass.RunApplication (MediaBrowser.Server.Implementations.ServerApplicationPaths appPaths, ILogManager logManager) [0x00000] in <filename unknown>:0 
	  at MediaBrowser.Server.Mono.MainClass.Main (System.String[] args) [0x00000] in <filename unknown>:0 
	InnerException: System.DllNotFoundException
	./sqlite3/linux/lib64/libsqlite3.so.0.8.6
	  at (wrapper managed-to-native) System.Data.SQLite.UnsafeNativeMethods:sqlite3_config_none (System.Data.SQLite.SQLiteConfigOpsEnum)
	  at System.Data.SQLite.SQLite3.StaticIsInitialized () [0x00000] in <filename unknown>:0 
	  at System.Data.SQLite.SQLiteLog.Initialize () [0x00000] in <filename unknown>:0 
	  at System.Data.SQLite.SQLiteConnection..ctor (System.String connectionString, Boolean parseViaFramework) [0x00000] in <filename unknown>:0 
	  at System.Data.SQLite.SQLiteConnection..ctor (System.String connectionString) [0x00000] in <filename unknown>:0 
	  at (wrapper remoting-invoke-with-check) System.Data.SQLite.SQLiteConnection:.ctor (string)
	  at MediaBrowser.Server.Implementations.Persistence.SqliteExtensions+<ConnectToDb>c__async7B.MoveNext () [0x00000] in <filename unknown>:0 
	--- End of stack trace from previous location where exception was thrown ---
	  at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw () [0x00000] in <filename unknown>:0 
	  at System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1+ConfiguredTaskAwaiter[System.Data.IDbConnection].GetResult () [0x00000] in <filename unknown>:0 
	  at MediaBrowser.Server.Implementations.Persistence.SqliteUserRepository+<Initialize>c__asyncA9.MoveNext () [0x00000] in <filename unknown>:0 
	--- End of stack trace from previous location where exception was thrown ---
	  at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw () [0x00000] in <filename unknown>:0 
	  at System.Runtime.CompilerServices.ConfiguredTaskAwaitable+ConfiguredTaskAwaiter.GetResult () [0x00000] in <filename unknown>:0 
	  at MediaBrowser.ServerApplication.ApplicationHost+<GetUserRepository>c__async3.MoveNext () [0x00000] in <filename unknown>:0 
	--- End of stack trace from previous location where exception was thrown ---
	  at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw () [0x00000] in <filename unknown>:0 
	  at System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1+ConfiguredTaskAwaiter[MediaBrowser.Controller.Persistence.IUserRepository].GetResult () [0x00000] in <filename unknown>:0 
	  at MediaBrowser.ServerApplication.ApplicationHost+<RegisterResources>c__async1.MoveNext () [0x00000] in <filename unknown>:0 
	--- End of stack trace from previous location where exception was thrown ---
	  at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw () [0x00000] in <filename unknown>:0 
	  at System.Runtime.CompilerServices.ConfiguredTaskAwaitable+ConfiguredTaskAwaiter.GetResult () [0x00000] in <filename unknown>:0 
	  at MediaBrowser.Common.Implementations.BaseApplicationHost`1+<Init>c__async0[MediaBrowser.Server.Implementations.ServerApplicationPaths].MoveNext () [0x00000] in <filename unknown>:0 
	
UnhandledException
One or more errors occured
System.AggregateException
  at System.Threading.Tasks.Task.WaitAll (System.Threading.Tasks.Task[] tasks, Int32 millisecondsTimeout, CancellationToken cancellationToken) [0x00000] in <filename unknown>:0 
  at System.Threading.Tasks.Task.WaitAll (System.Threading.Tasks.Task[] tasks) [0x00000] in <filename unknown>:0 
  at MediaBrowser.Server.Mono.MainClass.RunApplication (MediaBrowser.Server.Implementations.ServerApplicationPaths appPaths, ILogManager logManager) [0x00000] in <filename unknown>:0 
  at MediaBrowser.Server.Mono.MainClass.Main (System.String[] args) [0x00000] in <filename unknown>:0 
InnerException: System.DllNotFoundException
./sqlite3/linux/lib64/libsqlite3.so.0.8.6
  at (wrapper managed-to-native) System.Data.SQLite.UnsafeNativeMethods:sqlite3_config_none (System.Data.SQLite.SQLiteConfigOpsEnum)
  at System.Data.SQLite.SQLite3.StaticIsInitialized () [0x00000] in <filename unknown>:0 
  at System.Data.SQLite.SQLiteLog.Initialize () [0x00000] in <filename unknown>:0 
  at System.Data.SQLite.SQLiteConnection..ctor (System.String connectionString, Boolean parseViaFramework) [0x00000] in <filename unknown>:0 
  at System.Data.SQLite.SQLiteConnection..ctor (System.String connectionString) [0x00000] in <filename unknown>:0 
  at (wrapper remoting-invoke-with-check) System.Data.SQLite.SQLiteConnection:.ctor (string)
  at MediaBrowser.Server.Implementations.Persistence.SqliteExtensions+<ConnectToDb>c__async7B.MoveNext () [0x00000] in <filename unknown>:0 
--- End of stack trace from previous location where exception was thrown ---
  at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw () [0x00000] in <filename unknown>:0 
  at System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1+ConfiguredTaskAwaiter[System.Data.IDbConnection].GetResult () [0x00000] in <filename unknown>:0 
  at MediaBrowser.Server.Implementations.Persistence.SqliteUserRepository+<Initialize>c__asyncA9.MoveNext () [0x00000] in <filename unknown>:0 
--- End of stack trace from previous location where exception was thrown ---
  at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw () [0x00000] in <filename unknown>:0 
  at System.Runtime.CompilerServices.ConfiguredTaskAwaitable+ConfiguredTaskAwaiter.GetResult () [0x00000] in <filename unknown>:0 
  at MediaBrowser.ServerApplication.ApplicationHost+<GetUserRepository>c__async3.MoveNext () [0x00000] in <filename unknown>:0 
--- End of stack trace from previous location where exception was thrown ---
  at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw () [0x00000] in <filename unknown>:0 
  at System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1+ConfiguredTaskAwaiter[MediaBrowser.Controller.Persistence.IUserRepository].GetResult () [0x00000] in <filename unknown>:0 
  at MediaBrowser.ServerApplication.ApplicationHost+<RegisterResources>c__async1.MoveNext () [0x00000] in <filename unknown>:0 
--- End of stack trace from previous location where exception was thrown ---
  at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw () [0x00000] in <filename unknown>:0 
  at System.Runtime.CompilerServices.ConfiguredTaskAwaitable+ConfiguredTaskAwaiter.GetResult () [0x00000] in <filename unknown>:0 
  at MediaBrowser.Common.Implementations.BaseApplicationHost`1+<Init>c__async0[MediaBrowser.Server.Implementations.ServerApplicationPaths].MoveNext () [0x00000] in <filename unknown>:0 

@@Luke

 

Do you have any idea what is causing this?

 

Update:

 

I think I figured out what the problem is.  Currently, the binary that is located at sqlite/linux/lib64/libsqlite.so.0.8.6 is causing the 32-bit version to choke.  If I copy the binary located at sqlite3/linux/lib/libsqlite to the lib64 folder, I am able to run the server.

 

@Luke

 

How are you distinguishing 64-bit systems from 32-bit ones?  Is it using uname?

 

For the time, I have implemented a workaround in the Arch PKGBUILD using the above solution so those who are installing on 32-bit Arch systems can at least run MB3 on them.

Edited by DaBungalow
Link to comment
Share on other sites

thefirstofthe300

See above for update.

Edited by DaBungalow
Link to comment
Share on other sites

PhAzE

I had that problem too with 32 bit on Slackware. Is trying to use the 64 bit embedded sqlite3 library. Just confirming that this is still a problem for 32 bit Linux branch.

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...