Gebruikershulpmiddelen

Site-hulpmiddelen


installatie_handleidingen:minidlna

Dit is een oude revisie van het document!


MiniDLNA op CentOS 7

Op de sourceforge pagina van het project staat een downloadlink naar een static binary.

Tools

Installeer de tools die tijdens de install nodig hebt. Na de install is het zinnig om ze weer te verwijderen.

yum install wget

installatie

maak een minidlna gebruiker aan:

cd /
wget http://downloads.sourceforge.net/project/minidlna/minidlna/1.1.5/minidlna-1.1.5_static.tar.gz
tar -xvzf ./minidlna-1.1.5_static.tar.gz

de tar file wordt naar /usr/sbin en andere dirs uitgepakt.

Configuratie

edit de file: /etc/minidlna.conf

en pas aan :

# port for HTTP (descriptions, SOAP, media transfer) traffic
port=8200

# network interfaces to serve, comma delimited
network_interface=eth0

media_dir=A,/DATA/muziek
media_dir=V,/DATA/film
media_dir=P,/DATA/fotos

friendly_name=oannes DLNA Server

db_dir=/DATA/cache/minidlna

log_dir=/var/log

serial=1
model_number=2

minissdpdsocket=/var/run/minissdpd.sock


systemd start en stop scripts

UMS Headless DLNA server on CentOS 7

Universal Media Server is oorspronkelijk een fork van PS3 Media Server. Een eenvoudige transcoding DLNA server voor Linux.

Pre-requisites

repositories

de nodige rpm's bevinden zich in de EPEL en de NUX repository. verbind daarmee door:

yum install epel-release
yum install http://li.nux.ro/download/nux/dextop/el7/x86_64/nux-dextop-release-0-1.el7.nux.noarch.rpm

Installeer programa's nodig voor transcoding:

yum install mplayer mencoder ffmpeg mediainfo

Installeer Java.

yum install java-1.8.0-openjdk

Installeer UMS

Download de laatste versie van de UMS website.

wget http://downloads.sourceforge.net/project/unimediaserver/Official%20Releases/Linux/UMS-5.2.2-Java7.tgz

  Extract the tarball, and move it to /opt. Create a symlink from /opt/ums-#.#.# to /opt/ums. This allows you to add new versions and just replace the symlink, preserving the old installs if you want.
  $ tar zxf UMS-4.2.2-Java7.tgz
  $ sudo mv ums-4.2.2 /opt
  $ sudo ln -s /opt/ums-4.2.2 /opt/ums
  1
  2
  3
  	
  $ tar zxf UMS-4.2.2-Java7.tgz
  $ sudo mv ums-4.2.2 /opt
  $ sudo ln -s /opt/ums-4.2.2 /opt/ums
  Copy the config files to /etc/ums. This makes more sense than keeping them with the UMS files.
  $ sudo mkdir /etc/ums
  $ sudo cp UMS.conf WEB.conf /etc/ums
  1
  2
  	
  $ sudo mkdir /etc/ums
  $ sudo cp UMS.conf WEB.conf /etc/ums
  Create a user, ums, to run the UMS application under. This user will need permissions to read the media files, as well as write permissions to the folder for the config files and the application files. Don’t set a password, use /opt/ums for the home directory, and use /sbin/nologin for the shell.
  $ sudo useradd -d /opt/ums -s /sbin/nologin ums
  $ sudo chown -R ums:ums /opt/ums-4.2.2
  $ sudo chown -R ums:ums /etc/ums
  1
  2
  3
  	
  $ sudo useradd -d /opt/ums -s /sbin/nologin ums
  $ sudo chown -R ums:ums /opt/ums-4.2.2
  $ sudo chown -R ums:ums /etc/ums
  Now, open up /etc/ums/UMS.conf in your text editor. Go through and adjust the parameters as necessary for your setup.

Systemd configuration

Systemd is the init system in CentOS 7 and the more recent versions of Fedora. It will be utilized to start UMS on startup, as well as provide easy logging of events.

  Create the file /etc/systemd/system/ums.service. This gives systemd information about how to start UMS. It should have the following contents:
  [Unit]
  Description=Universal Media Server
  [Service]
  Type=simple
  Environment="UMS_PROFILE=/etc/ums/UMS.conf"
  User=ums
  Group=ums
  ExecStart=/opt/ums/UMS.sh
  [Install]
  WantedBy=multi-user.target
  1
  2
  3
  4
  5
  6
  7
  8
  9
  10
  11
  12
  	
  [Unit]
  Description=Universal Media Server
   
  [Service]
  Type=simple
  Environment="UMS_PROFILE=/etc/ums/UMS.conf"
  User=ums
  Group=ums
  ExecStart=/opt/ums/UMS.sh
   
  [Install]
  WantedBy=multi-user.target
  Next, instruct systemctl reload its configuration, then enable, and start the service:
  $ sudo systemctl daemon-reload
  $ sudo systemctl enable ums
  $ sudo systemctl start ums
  1
  2
  3
  	
  $ sudo systemctl daemon-reload
  $ sudo systemctl enable ums
  $ sudo systemctl start ums
  Provided everything started fine, there should be no output from systemctl after starting it. You can utilize systemctl to verify everything started correctly:
  $ sudo systemctl status ums
  ums.service - Universal Media Server
     Loaded: loaded (/etc/systemd/system/ums.service; enabled)
     Active: active (running) since Sun 2014-11-30 19:12:20 MST; 32min ago
   Main PID: 12912 (java)
     CGroup: /system.slice/ums.service
             └─12912 java -Xmx768M -Xss2048k -Dfile.encoding=UTF-8 -Djava.net.p...
  1
  2
  3
  4
  5
  6
  7
  	
  $ sudo systemctl status ums
  ums.service - Universal Media Server
     Loaded: loaded (/etc/systemd/system/ums.service; enabled)
     Active: active (running) since Sun 2014-11-30 19:12:20 MST; 32min ago
   Main PID: 12912 (java)
     CGroup: /system.slice/ums.service
             └─12912 java -Xmx768M -Xss2048k -Dfile.encoding=UTF-8 -Djava.net.p...
  Systemd captures all the output from UMS and stores it in its logs. You can access all that information with journalctl. This is extremely useful if there are problems. To view all messages from UMS, you could use the command: sudo journalctl _SYSTEMD_UNIT=ums.service

Open the firewall

Unless you’ve already mucked with the defaults, the CentOS firewall should be up and running, and likely only allowing port 22/tcp in. You will need to open some holes in the firewall.

Let’s first look at the ports that UMS uses: $ sudo netstat -pln | grep java tcp 0 0 0.0.0.0:9001 0.0.0.0:* LISTEN 12912/java tcp 0 0 10.0.0.204:5001 0.0.0.0:* LISTEN 12912/java udp 0 0 0.0.0.0:1900 0.0.0.0:* 12912/java 1 2 3 4

$ sudo netstat -pln | grep java tcp 0 0 0.0.0.0:9001 0.0.0.0:* LISTEN 12912/java tcp 0 0 10.0.0.204:5001 0.0.0.0:* LISTEN 12912/java udp 0 0 0.0.0.0:1900 0.0.0.0:* 12912/java

Unless you’ve changed anything, by default, those are 5001/tcp, 9001/tcp and 1900/udp. Port 9001/tcp is optional. Enable it if you want to browse your media via a web browser. Let’s utilize the firewall-cmd utility to poke the holes:

  Determine the active zone for your network interface. In the command below, the zone in use is internal. Yours will likely be the default, which is public. Notate it, and use it for the next commands:
  $ sudo firewall-cmd --get-active-zones
  internal
    interfaces: eth0
  1
  2
  3
  	
  $ sudo firewall-cmd --get-active-zones
  internal
    interfaces: eth0
  Open the ports on the zone, and reload the firewall:
  $ sudo firewall-cmd --add-port=5001/tcp --zone=<zone> --permanent
  success
  $ sudo firewall-cmd --add-port=9001/tcp --zone=<zone> --permanent
  success
  $ sudo firewall-cmd --add-port=1900/udp --zone=<zone> --permanent
  success
  $ sudo firewall-cmd --reload
  success
  1
  2
  3
  4
  5
  6
  7
  8
  	
  $ sudo firewall-cmd --add-port=5001/tcp --zone=<zone> --permanent
  success
  $ sudo firewall-cmd --add-port=9001/tcp --zone=<zone> --permanent
  success
  $ sudo firewall-cmd --add-port=1900/udp --zone=<zone> --permanent
  success
  $ sudo firewall-cmd --reload
  success
  Verify the ports are open:
  $ sudo firewall-cmd --list-ports --zone=<zone>
  5001/tcp 9001/tcp 1900/udp
  1
  2
  	
  $ sudo firewall-cmd --list-ports --zone=<zone>
  5001/tcp 9001/tcp 1900/udp

Congrats! You’re done! Launch your DLNA client (or PS3 as it were) and make sure things are working. Utilize journalctl to gather diagnostic information if things aren’t working right.

Update: I’ve made some changes in the systemctl setup and noted that port 9001 is optional. These were at the advice of Vallimar on the UMS forums. Thanks!

installatie_handleidingen/minidlna.1443271043.txt.gz · Laatst gewijzigd: 2015/09/26 14:37 door abel