Prosba USB Soundcard & MPD daemon návod na nastavení

Dorazila mi z aliexpresu USB zvukovka viz. obrázek rád bych rozchodil mpd demona bohužel návod v oficiální dokumentaci je zřejmě již hodně starý obsahuje některé nesmyslné, nepravdivé či neúplné informace např. příkaz mpd –no-daemon nefunguje a správně je mpd --stdout --no-daemon --verbose
a o nutnosti povolení a nastavení alsa knihovny úplně mlčí.

Pdle návodu zde Sound card in OpenWrt | Hardware solutions for OpenWrt se mi povedlo po zadání cat /proc/asound/cards kartu najít a také přehrát mp3 příkazem madplay song.mp3 tedy je v systému nakonfigurována a funkční.

Dále jsem postupoval podle návodu zde Silenci.cz.
správně jsem nastavil složky pro music, playlist, db dle oficiálního návodu a z android aplikace se mohu k mpd připojit ale nevím proč nezvučí když dám přehrávat mpc add http://icecast7.play.cz:8000/cro1-128.mp3 stream to sice najde ale žádný zvuk nevychází a nepodařilo se mi najít v čem je chyba zda v alsa driverech konfiguraci či někde jinde.

Nejspíš bude nějaká chyba v logu mpd. Takže zapnout logování v mpd a kouknout se na co si stěžuje:

log_file "syslog"

Mě třeba na USB zvukovce nefungoval mixer, takže jsem musel zapnout softwarový v MPD:

audio_output {
       type            "alsa"
       name            "My ALSA Device"
       mixer_type      "software"
}

Můj mpd.conf , kterej jede i s touto čínskou zvukovkou.

port                    "6600"
bind_to_address         "1.1.1.1"
bind_to_address         "127.0.0.1"
music_directory "/disk/Hudba"
playlist_directory "/disk/Mpd/Playlisty"
db_file "/disk/Mpd/mpddb"
state_file "/disk/Mpd/state"




audio_output {
    type                    "oss"
    name                    "Usb-Repro"
    device                  "/dev/dsp"
    format                  "44100:16:2"
  }

mixer_type "software"
audio_buffer_size               "2048"
buffer_before_play              "50%"

Super, díky moc ! Tohle jsem přesně potřeboval. Vyzkouším a dám vědět.

Ještě chce upravit tu zvukovku pravděpodobně. Když tak mam u sebe návod jak to zprovoznit. http://www.digiman.cz/turris-jako-internetove-radio/

Na to jsem také koukal, na Tvém webu jsou zajímavé články k turrisu jako OWFS.

Tak ty budu muset doplnit o aktuální změny související s omnií, hlavně HW kontroler (s více kanály) umožňuje mnohonásobně zlepšit odezvu. Budu upravovat 1-wire síť abych měl do každého místa měl 2 samostatné linky. Jednu pro čidla která mají delší odezvu a druhou pro ty jež se vyčítají rychle, např. “spínače”. To je velice důležité pokud chceš řešit real-time aplikace.

Ahoj,
mám Turrsis 1.1 a MPD mi jakž takž (viz níže) funguje. Postupoval jsem, či spíše se inspiroval, zhruba podle www.turris.cz/doc/cs/howto/sound
a můj /etc/mpd.conf vypadá takto:

music_directory		"/mnt/usb/slu/mpd/music"
playlist_directory		"/mnt/usb/slu/mpd/playlists"
db_file			"/mnt/usb/slu/mpd/database"
log_file			"/mnt/usb/slu/mpd/log"
pid_file			"/mnt/usb/slu/mpd/pid"
state_file			"/mnt/usb/slu/mpd/state"
sticker_file			"/mnt/usb/slu/mpd/sticker.sql"
input {
        plugin "curl"
}

audio_output {
	type		"alsa"
	name		"My ALSA Device"
}

Mám s tím ale jeden vážný problém:
Používám to výhradně jako přehrávač internetových rádií, jejichž seznam je (zjistil jsem experimentálně) uložen v souboru state (vytváří si ho mpc ale lze jej ručně upravit). Problém spočívá v tom, že můj mpd začne blbnout, pokud tam jsou víc než 2 rádia (blbnout = některá rádia přehraje, jiná ne, nepřišel jsem na to které a kdy, ale vždy max. 2).

Dále jsem si myslel, že přepínání rádií udělám pomocí infračerveného dálkového ovládání, ale ani to se mi nepodařilo (viz https://forum.test.turris.cz/t/missing-lirc-tsop4838-kernel-module/3080/5 resp. https://forum.test.turris.cz/t/how-to-install-gcc-g/3094).

S tím gcc zkusím poradit protože se mi to povedlo rozchodit. Už umím kompilovat ze zdrojových souborů binárky jak pro Openwrt Turris OS tak pro Debian v LXC kontejneru. Pokud máš k dispozici nejaký počítač na který můžeš nainstalovat x86 debian 32bit (v 64bit se mi nepovedlo vyrobit funkční toolchain) tak si tam vyrob toolchain dle oficiálního návodu na turris.cz nebo můžeš postupovat podle návodu na kompilaci oscamu, který jsem sem dal na Instalace OSCAMu do Turris 1.0/1.1 s Turris OS 3.3 jenž zahrnuje i vytvoření toolchainu pro PowerPC procesor. Nebo můžeš dát do turrisu sdkartu nebo připojit USB či SATA disk na něm rozjet LXC kontejner pro debian a pak instalovat gcc pomocí apt-get install gcc libusb libusb-devel atd… má to však jednu chybu protože výsledný binární kód i když je pro stejné PowerPC nelze spustit v původním OpenWrt TurrisOSu protože používa libc knihovnu a openwrt používá uClibc knihovnu. Zkoušel jsem pomocí přepínačů na rootfs pro include a lib to obejít tak abych na debianu mohl kompilovat i pro OpenWrt TurrisOS ale zatím jsem nebyl úspěšný i když si myslím že by to mělo jít tak že se zakážou default library debianu a podstrčí ty z openwrtu jenže pak musíš dodat veškeré použité knihovny manuálně do makefilu. Vyrobená binárka pro debian má tak jednu vadu a to že ji pustíš pouze v tom běžícím LXC kontejneru což je v postatě virtuální server s vlastní IP adresou zjednodušeně řečeno. Výhodou je že je kompilace ze zdrojáků je poměrně rychlá a funguje spousta apt balíčků pro debian.
LXC debianu si pak nastav aby se ti automaticky spouštěl po rebootu turrisu a tím ti poběží oba “servery” najednou a v tom debianu si pak můžeš pustit co chceš. Samozřejmě to co si přeložíš toolchainem stačí nahrát do TurrisOS a poběží to.

Mě by pomohlo si o tom přečíst nějak obecněji o té dallas sběrnici, OWFS atd. k čemu je to dobré jak to funguje a tak. Jsou to technologie o nichž nic moc nevím a návody na Tvém webu už předpokládájí že o tom člověk právě něco ví. Hledám totiž pro Turris další využití jako ovládání senzorů a inteligentního domova atd. Uplně super by bylo mít oficiální dokumentaci nabídku různých zařízení, které se dají k turisu připojit s návodem na zprovoznění a nějaký popis ale to je spíš sen protože NIC má teď asi plné ruce práce s tím vůbec uřídit releasy a na dokumentaci nezbývá čas. Takže jsme odkázáni na fóra a google.

Tak já to tam přidám, stačí jen vykopírovat z toho co jsem už napsal :slight_smile: mam jen v podobě bakalářky :slight_smile:

To by bylo výborné, jen bych očekával od chlapců z CZ.NIC že to pak vezmou, učešou a dají do oficiální dokumentace ale to je spiš zatím scifi i když možná že je k tomu dokope Patrick.

1 Like

Myslím, že na to má momentálně tým mnohem více práce s primárním posláním Turrise. Ono dělat dokumentaci je poněkud nevděčná práce. Jinak tým stále hledá nové posily :slight_smile:

Playlisty radii (*.m3u) hod do slozky playlists a na ovladani pouzij dalkove ovladani do usb k pocitaci nebo usb numpad. Doinstaluj balik triggerhappy a nastav ovladani pres nej. K ovladani je taky spousta klientu i pro android nebo v php.

triggerhappy vypadá jako skvělý tip, díky!

Oj oj, to je strašně komplikované.
Rozumím správně, že když si na nějaký (třeba virtuální) 32 bitový linux (který může běžet kdekoli, ale nikoli přímo na Turrisu) nainstaluji ten toolchain, budu moci zkompilovat vše co potřebuju a výsledné binárky pak použít na Turrisu? To zní nadějně, ale i tak mi to přijde dost pracné (ve strovnání s prostým spuštěním gcc přímo na routeru).
Anebo musí výsledná binárka běžet ve zmiňovaném LXC kontejneru? To mi přijde strašně složité, a není mi jasné jak si to bude “šahat” na hw (GPIO)?
Díky za odpověď.

Ano, je to lehce komplikovanější ale zase to není atomová věda. Tak překonej lenost a zkus to podle návodu :laughing:

Rozumíš tomu skoro správně v obou případech překladáš zdrojáky v C do binární formy. V případě toolchainu si nejprve nainstaluješ gcc ale pro debian x86 a všechny příslušné knihovny a tooly jako make, automake, svn, git. Pak si přes git nebo svn stáhneš zdrojáky toolchainu pro PowerPC procesor z toho úložiště zdrojáků turris a pustíš překlad čímž si vytvoříš jednak gcc, make atd. a hlavně knihovny pro powerpc procesor v turrisu a pak máš v debianu v zásadě dvě gcc jedno pro x86, který jsi tam nainstaloval s debianem pomocí balíčků debianu x86 a přeložené prostředí s gcc a všema knihovnama pro cílový procesor powerpc v turrisu. Pak už jen potřebuješ stáhnout zdrojáky gitem nebo svn a pustit gcc resp. make z toolchainu powerpc, výsledkem je binární spustitelný exe pro turris. V tom lxc kontejneru je to mnohem jednodušší protože nic nepřekládaš a vše je již přeloženo pro powerpc a jen si nainstaluješ gcc, make a potřebné knihovny z debianu pro powerpc a překládáš přímo na turrisu. Je to jednodušší než ten toolchain protože tam musíš ručně kopírovat potřebné knihovny a header soubory do adresářů include a lib v toolchainu aby to zafungovalo což je trochu opruz a musíš vědět co děláš. Na druhou stranu když si to pŕeložít v lxc tak to zase nejde pustit v prostředí turrisu protože to nenajde ty správné knihovny a exe se nespustí. LXC co jsem pochopil běží nad stejným jádrem jako turris ale všechny služby a virtuální root má vlastní včetně síťové vrstvy takže to má vlastní ip adresu a tváří se to jako separátní server i když běží pod jedním jádrem. Jestli chceš něco přeložit tak pošli odkaz co a můžu to zkusit u sebe až se k tomu dostanu.

OCKO: díky moc ! Tento config s touto zvukovkou funguje ale v životě by mne nepadalo jak na toto nastavení přijít. Očekával bych že podobné návody zahrnou chlapci z CZ.NIC do oficiální dokumentace ale to by asi nejdřív muselo zamrznout peklo.

Nemáte někdo playlisty na internetová rádia co byste sem mohli hodit ať to nemusím vymýšlet znovu ?

Aha, děkuji za vysvětlení, snad už rozumím.
Zdá se tedy, že každá z možností má své, snad by bylo jednodušší to vše udělat v tom virtuálním LXC přímo na Turrisu. V takovém případě ale vidím jeden problém. Nejdříve vysvětlím, proč vůbec to gcc potřebuji:

Rád bych měl funkční LIRC démon, který by obsluhoval infračervené čidlo TSOP4838 připojené na některý z GPIO portů. A ten by pak “buzeroval” mpd (přehrávač zvuku). Mám toto řešení vyzkoušené na RaspberryPi, nedalo to moc práce, LIRC má již nadefinovánu hromadu existujících dálkových ovladačů, takže odpadá zdlouhavá konfigurace.
Celou tu věc bych rád udělal hlavně tak, ať mi to nezabere nějak extra moc času, nijak nelpím na nějakém konkrétní řešení. Takže varianta s usb keypadem + triggerhappy mi taky přijde docela použitelná (ale je to přece jen kabelová věc a navíc ji doma nemám abych to jen cvičně zkusil).

Takže zpět k lirc: Na RasPi (OSMC) jsem nic nekompiloval, jen jsem nainstaloval lirc, nastavil GPIO pin a typ ovladače a rovnou to jelo. Naivně jsem si myslel, že na Turrisu to půjde stejně hladce.

A teď ten problé, kterého se bojím, pokud to zkompiluju ve virtualizaci: LXC kontejner nebude mít přístup k GPIO portu, na kterém bude zapojeno čidlo. Případně mi bude trvat věky, než přijdu na to, jak ho zpřístupnit. Či se pletu?

Stran nabídky na kompilaci: Já vlastně jistě nevím, co všecko bude potřeba. Chtěl jsem zkompilovat http://lirc.org/git.html ale nevím jistě, zda to bude vše :slight_smile:

Díky za konzultaci!