Gentoo a mpd

Jelikož na gentoo-wiki.com není žádný článek o instalaci mpd, tak jsem se rozhodl si napsat článek,, který bude pokrývat moje potřeby :

  • budu přehrávat mp3 a “do zálohy” si pořídím i podporu ogg
  • líbí se mi možnost z ostatních počítačů v síti přijímat stream skrz PulseAudio
  • jak bonus si nastavím streamování po internetu pomocí Icecast-umpd má vlastní HTTP output, který, když se nastaví na lame encoder funguje kvalitně

Nejdříve si nastavíme požadované USE-flagy pro mpd a emergnem ho :

(Před instalací mám nastavené globální USE flagy alsa a mp3
# echo "media-sound/mpd flac mp3 ogg pulseaudio vorbis lame" >> /etc/portage/package.use # emerge -av mpd
Jako závislost bude instalováno pulseaudio, které je závislé na udev a jeho USE flagu extras, takže si nyní správně nastavíme udev… Dále je potřeba nastavit balíku flac USE flag ogg, oboje provedeme a znovu emergujem :
# echo "media-libs/flac ogg" >> /etc/portage/package.use # echo "sys-fs/udev extras" >> /etc/portage/package.use # emerge -av mpd

Nastavení mpd

Nyní k samotnému nastavení mpd. Upravíme soubor /etc/mpd.conf:
music_directory "/mnt/data/music/mp3" playlist_directory "/var/lib/mpd/playlists" db_file "/var/lib/mpd/mpd.db" log_file "/var/log/mpd/mpd.log" pid_file "/var/run/mpd/mpd.pid" state_file "/var/lib/mpd/state" user "mpd" group "audio" bind_to_address "localhost" #bind_to_address "/var/lib/mpd/socket" log_level "default" input { plugin "curl" } audio_output { type "alsa" type "alsa" name "My ALSA Device" device "hw:0,0" # nepovinne mixer_type "hardware" # nepovinne mixer_control "Master" # nepovinne } audio_output { type "httpd" name "mpd http stream" encoder "lame" # optional, vorbis or lame port "8000" bitrate "128" # do not define if quality is defined format "44100:24:1" } audio_output { type "pulse" name "My Pulse Output" } audio_output_format "44100:24:2" filesystem_charset "UTF-8"
POZOR : Zásadní je, aby group bylo nastaveno na audio, jinak nebudeme moci přistupovat na ALSA karty.

Nyní máme nastaveny tři výstupy :

  • ALSA – přímý výstup do zvukové karty
  • HTTP stream na portu 8000 – pro “vnější” přehrávání
  • Pulse – pro pozdější využití(buď další článek, nebo rozšíření tohoto – podle náročnosti)

Dále vytvoříme potřebné složky a soubory pro mpd a změníme jejich vlastnictí pro naše potřeby:
# mkdir -p /var/lib/mpd/playlists /var/run/mpd /var/log/mpd # touch /var/lib/mpd/{mpd.db,mpdstate} && touch /var/run/mpd/mpd.pid && touch /var/log/mpd/mpd.log # chown -R mpd:users /var/lib/mpd /var/run/mpd /var/log/mpd
Přidáme uživatele mpd do skupiny audio, aby mohl přistupovat ke kartě :
# gpasswd -a mpd audio

Nastavení ALSA

Následující kroky jsou nutné, pouze pokud na počítači ještě nebyla nastavena ALSA :

Spustíme daemona alsasound a přidáme ho do boot rc levelu :
# /etc/init.d/alsasound start # rc-update add alsasound boot
Nyní potřebujem zrušit mute, spustíme tedy alsamixer – zvýšíme hlasitost a stisknem M(Mute) pro panely, které dole mají MM(změní se na 00) a které potřebujeme(Master,PCM,Center) :
# alsamixer
Nyní, pokud vše funguje správně uslyšíme po spuštění tohoto příkazu sympatickým hlasem “Front Right” :
# aplay /usr/share/sounds/alsa/Front_Right.wav
Nyní už jen zapnout daemona a přidat ho do RC levelu :
# /etc/init.d/mpd start # rc-update add mpd default

Gentoo, Python a utržené sluchátko

Dnes mi Gentoo doporučilo, že bych měl spustit
# emerge --depclean
Ale bohužel portage moc chytrá nebyla, tak si odinstalovala i Python, ve kterém je sama napsaná. Takže mi pak příkazy jako
# emerge --sync
vůbec “nic nevracely”.

Musel jsem tedy ručně zkompilovat python :
# cd /tmp # tar xjf /usr/portage/distfiles/Python-2.6.6.tar.bz2 # cd Python-2.6.6 # ./configure --with-fpectl --infodir=/usr/share/info/ --mandir=/usr/share/man # make # make install prefix=/usr
No a když nám portage už funguje, tak si python ještě jednou “pěkně čistě” emergnem, aby jsme zohlednily use flagy a aby systém věděl, že python máme:
# emerge python
Portage očividně instaluje verzi 3.1.3, po instalaci tedy spustíme:
# eselect python 2
Třetí možnost je v mém případě python 2.7, protože Python3 ještě není doporučovaný. Dále necháme python si opravit “svoje” balíky :
# python-updater
A na závěr necháme ještě portage zkontrolovat, jestli se něc nepolámalo:
# revdep-rebuild

OpenVPN klient na Gentoo

Tak tu máme první návod pro klienta na OpenVPN, první bude pro můj nejoblíbenější OS – Gentoo Linux…

Nejdříve si mergnem balíček s OpenVPN:

emerge -av openvpn
Poté si vyžádáme od správce OpenVPN sítě certifikát a klíč pro připojení a zkopírujem do složky /etc/openvpn/server

Dále navštívíme složku /etc/openvpn a vytvoříme config pro připojení k serveru “server”:

cd /etc/openvpn/
nano server.conf

Obsah configu :

# server ke kteremu se pripojujeme
remote server

# tls jako klient
tls-client

# port, 1194 = default
port 1194

# protokol, tcp/udp
proto tcp-client

# nastaveni zarizeni
dev tap0

# povoluje stazeni konfigurace ze severu
pull

# certifikat certifikacni autority
ca server/ca.crt

# certifikat klienta - upravit podle nazvu vaseho certifikatu
cert server/client.crt

# certifikat klienta - upravit podle nazvu vaseho certifikatu
key server/client.key

# uzivatel pod kterym bezi klient
user nobody

# skupina pod kterou bezi klient
group nogroup

# opakovani radku v logu
mute 10

# logy klienta
log-append /var/log/openvpn.log

# status klienta
status /var/run/vpn.status 10

# komprese prenasenych dat
comp-lzo

# ukecanost klienta
verb 3

#cache kvuli restartu
persist-tun
persist-key

Upravíme hodnoty remote,ca,cert,key podle hodnot, které jsme obdrželi od správce OpenVPN sítě a uděláme link server.conf na openvpn.conf:
ln -s /etc/openvpn/server.conf /etc/openvpn/openvpn.conf
Dále vytvoříme link v initscriptech…
ln -s /etc/init.d/openvpn /etc/init.d/openvpn.server
A pokud jsme obdrželi správné hodnoty, tak by mělo stačit:
/etc/init.d/openvpn start
Mno a pokud se podařilo a chcete se připojovat třeba při každém bootu, tak zadejte:
rc-update add openvpn boot