Sambafreigaben unter Fedora 20 managen

Fedora kommt standardmäßig mit einem Medienfreigabecenter daher. Leider handelt es sich dabei nicht um Freigaben wie man Sie von Windows kennt, sondern um DLNA Zugänge für mobile und nicht ganz so mobile Endgeräte bereitzustellen. Es ist nicht leicht zu erkennen, was man da eigentlich freigibt und nutzen tut es oft auch nichts, wenn man mit Windowsrechnern Daten austauschen möchte.

Zum Glück gibt es eine einfach Lösung dafür : Samba.

Folgende Paket müssen dazu installiert sein:

samba-common-4.1.6-1.fc20.i686
samba-client-4.1.6-1.fc20.i686
samba-4.1.6-1.fc20.i686
samba-vfs-glusterfs-4.1.6-1.fc20.i686

und

system-config-samba-1.2.100-2.fc20.noarch

Letzteres Paket gibt uns den im Fedora 20 verloren gegangenen Sambakonfigurator für die Oberfläche zurück:

 

Samba-Config

Damit kann man wirklich problemlos alle Freigaben managen. Aktivieren wir zunächst Samba. Dazu als Root eingeben:

systemctl enable smb
systemctl start  smb

Hat man das gemacht, wird man leider feststellen, daß die Freigaben nicht funktionieren 🙁 Die Ursache ist SELINUX, daß den Zugriff von Samba auf die Verzeichnisse verhindert.

Der schnellste Weg: als Root „setenforce 0“ eingeben. Damit ist SELINUX erstmal im Überredungsmodus, d.h. es meckert zwar, aber es klappt. Die Freigabe kann man nun von außen aufrufen. Das muß man auch tun, damit nun die nötigen Meldungen im SELinux produziert werden. Danach muß nur noch den Fehlermeldungen vom SEL-Control folgen, und die nötigen Änderungen an der SEL-Configuration vornehmen.

setsebool -P samba_share_fusefs 1
setsebool -P samba_export_all_ro 1
setsebool -P samba_export_all_rw 1
grep smbd /var/log/audit/audit.log | audit2allow -M mypol
semodule -i mypol.pp

Jetzt wieder SEL aktivieren : „setenforce 1“ . Das wars. Samba kann jetzt die Freigaben benutzen und das einem regen Datenaustausch steht nichts mehr im Weg.

Kleiner Tip für Android: Mit dem ES Datei Explorer und MX-Player, kann man alle Videos von der heimischen Platte ohne Probleme auf dem Handy oder Tablet als Stream sehen, dank Samba.

… und plötzlich ist der Sound weg.

Die Advanced Linux Sound Architecture (ALSA) ist ein mächtiges Werkzeug, was Audiowiedergabe unter Linux betrifft. Leider kann es vorkommen, daß mittendrin einfach mal der Ton ausfällt. Dies geschieht z.b. des öfteren mit Skype, praktischerweise noch vor dem eigentlichen Anruf, so daß man sich nicht ganz blamiert.

Will man dieses Problem schnell wieder in den Griff bekommen hat man meistens verloren, da sich dies nur mit Tools machen läßt, die per Default gar nicht installiert werden. PAMAN z.b. der PulseAudioManager. Mit diesem graphischen Tool kann man alles wissenswerte über seinen PulseAudio SoundServer erfahren. (Fedora: yum install paman) .  Ein guter Start um Probleme zu diagnostizieren:

 

PulseAudioManager

 

PulseAudioManager2

Wichtig sind hier die Sinks, das sind nämlich die eingebauten Soundkarten. Wenn die nicht passend zu dem was man in Rechner  hat auftauchen, dann hat meistens der Treiber das Device nicht gefunden oder der Devicetreiberteil ist grade gestorben. Ein Reboot könnte im letzteren Fall schon helfen. Wenn der Treiber gar nicht erst das Device findet, wird es Zeit einen neuen zu installieren. Wie das geht, steht an anderer Stelle und soll hier heute nicht behandelt werden.

Ist mit den Sinks auf den ersten Blick alles ok, wenden wir uns dem echten PulseAudio Mixer zu, nicht dem der im Gnome verbaut ist, der kann nämlich nix. PAVUcontrol heißt das Tool und muß auch installiert werden  ( Fedora :  yum install pavucontrol )

pavucontrol1

Dieser Systemmixer klärt dann auch mal schnell auf, ob der Sound überhaupt bei PulseAudio ankommt oder nicht.

Im obigen Bild hat QMMP ( WinAmp Kopie für Linux ) via Alsa-Plugin erfolgreich einen Datenstrom zum PulseAudioserver aufgebaut, mit anderen Worten, es müßte was zu hören sein. Wenn man nichts hört, könnte das am Audioausgabedevice liegen und das dies on-the-fly von irgendeinem Programm oder Audioevent auf ein anderes Ausgabemedium umgeleitet/stellt wurde. Besonders beliebt ist hierbei das HDMI Ausgabedevice, daß den Ton an einen mit Lautsprechern ausgestatteten Monitor (aka. Fernseher ) umleitet.

pavucontrol3

In der obigen Ansicht kann man nun ganz leicht über den grünen Knopf festlegen, daß eben nicht mehr HDMI Default ist, sondern die interne Audiohardware. Mit dem kleinen Lautsprechersymbol daneben ( mit dem kleinen X ) kann man das Audiodevice gleich abschalten, was zukünftig hoffentlich solche Fehler verhinder.t.

Kleiner Tipp: Den Fehler kann man leicht daran erkennen, daß man mit „aplay“ und dem „alsamixer“ so absolut gar nichts an seiner Situation verändern kann.

Für alle die mal wissen wollten, was Alsa so auf dem Kasten hat :

 

Alsa1

Ich habe nicht mal geahnt, daß ich ein REAR und ein FRONT Micro habe 🙂  Die einzige Stelle wo man das lästige Auto-Mute abstellen kann, ist übrigens hier. Dazu mit dem Cursor und den Cursorsteuertasten nach rechts auf Auto-Mute gehen und mit Cursor-Rauf abschalten. Alsamixer läuft nur im Terminal, da könnte man auch mal eine GUI zu machen.

Wenn Ihr noch Fragen habt, einfach anmailen.

 

Systemd und die Limits

„Jedes System kommt irgendwann an seine Grenzen.“ Einer meiner Server hatte die Grenze heute überschritten. Die Folge, der Apache stieg mit dieser Meldung aus :

„apache (24)Too many open files: couldn’t spawn child process:“

Jetzt können Sie soviel googlen wie Sie wollen, alles was zu dem Fehler kommt ist nicht hilfreich. Alle Hinweise  von RedHat zu limitfiles auf  /etc/security/limits.conf  oder /proc/sys/fs/file-max können Sie getrost vergessen, die greifen in dem Fall gar nicht.

Wenn Sie jetzt ein System V haben, ist /etc/init.d/httpd für Sie da. Tragen Sie dort einfach ulimit -n 100000 ein und starten Sie den Apache neu. Fall erledigt.

Für den Systemd, wie ihn Fedora seit FC 16 einsetzt, sieht die Sache ähnlich einfach aus, wenn man weiß wo man suchen muß. Aber mal ehrlich, würden SIe als Linuxer darauf kommen, daß „man systemd.exec“ die Hilfeseite zum Systemd öffnet? Ich nicht, .exe oder ähnliche Erweiterungen sind Windows Extentions.

Die Manpage liefert eine Übersicht zu den Variblen  die man im Unitfile benutzen kann und eine davon ( immerhin 5 Bildschirmseiten voll davon gibt es ) ist Ihr Freund: „LimitNOFILE

Suchen Sie mit „locate httpd.service“ ihr Unitfile, das ist üblicherweise unter /usr/lib/systemd/system/httpd.service zu finden. Tragen Sie dort im Servicebereich die Variable ein :

[Service]
Type=forking
PIDFile=/var/run/httpd/httpd.pid
LimitNOFILE=1000000
EnvironmentFile=/etc/sysconfig/httpd

Führen Sie noch die zwei Zeilen aus :

systemctl –system daemon-reload
systemctl restart httpd

und Ihr Apache rennt wieder 🙂

Ursachenanalyse:

Jedes Apache Child öffnet alle Domainlogs auf dem Server. Wenn Sie nun einen Multidomainwebserver haben, so wie meine Kunden, dann kommen dort schnell 1000 Vhosts zusammen. Das macht 1000 Files pro httpd-Child und damit viel mehr offene Files als Fedora defaultmäßig bereitstellt.

Hier wäre natürlich ein Logfilebroker für Apache die richtige Lösung, aber da brauchen wir wohl seitens Apache nicht drauf hoffen.