Byla vydána beta verze openSUSE Leap 16. Ve výchozím nastavení s novým instalátorem Agama.
Devadesátková hra Brány Skeldalu prošla portací a je dostupná na platformě Steam. Vyšel i parádní blog autora o portaci na moderní systémy a platformy včetně Linuxu.
Lidi dělají divné věci. Například spouští Linux v Excelu. Využít je emulátor RISC-V mini-rv32ima sestavený jako knihovna DLL, která je volaná z makra VBA (Visual Basic for Applications).
Revolut nabídne neomezený mobilní tarif za 12,50 eur (312 Kč). Aktuálně startuje ve Velké Británii a Německu.
Společnost Amazon miliardáře Jeffa Bezose vypustila na oběžnou dráhu první várku družic svého projektu Kuiper, který má z vesmíru poskytovat vysokorychlostní internetové připojení po celém světě a snažit se konkurovat nyní dominantnímu Starlinku nejbohatšího muže planety Elona Muska.
Poslední aktualizací začal model GPT-4o uživatelům příliš podlézat. OpenAI jej tak vrátila k předchozí verzi.
Google Chrome 136 byl prohlášen za stabilní. Nejnovější stabilní verze 136.0.7103.59 přináší řadu novinek z hlediska uživatelů i vývojářů. Podrobný přehled v poznámkách k vydání. Opraveno bylo 8 bezpečnostních chyb. Vylepšeny byly také nástroje pro vývojáře.
Homebrew (Wikipedie), správce balíčků pro macOS a od verze 2.0.0 také pro Linux, byl vydán ve verzi 4.5.0. Na stránce Homebrew Formulae lze procházet seznamem balíčků. K dispozici jsou také různé statistiky.
Byl vydán Mozilla Firefox 138.0. Přehled novinek v poznámkách k vydání a poznámkách k vydání pro vývojáře. Řešeny jsou rovněž bezpečnostní chyby. Nový Firefox 138 je již k dispozici také na Flathubu a Snapcraftu.
Šestnáctý ročník ne-konference jOpenSpace se koná 3. – 5. října 2025 v Hotelu Antoň v Telči. Pro účast je potřeba vyplnit registrační formulář. Ne-konference neznamená, že se organizátorům nechce připravovat program, ale naopak dává prostor všem pozvaným, aby si program sami složili z toho nejzajímavějšího, čím se v poslední době zabývají nebo co je oslovilo. Obsah, který vytvářejí všichni účastníci, se skládá z desetiminutových
… více »Došlo k tomu, čemu jsem dlouho odolávala: předplatila jsem si Spotify. A vzápětí jsem začala řešit, jak zvuk dostat v rozumné kvalitě do velkých reproduktorů připojených k mé audiověži. Dočasným řešením byla malá bluetooth zvuková kartička, ale jaksi to nebylo ono; i přes kvality kodeku LDAC a přes to, že nejsem netopýr, mi další ztrátové kódování po cestě přijde z principu nadbytečné. Navíc dávám přednost D/A převodníkům integrovaným ve věži.
Edit 23.11.2024:
Z nějakého důvodu mi začal blbnout spotify-connect a na ostatních klientech není instance, spuštěná níže uvedeným způsobem, vidět. Pátrala jsem po řešení a nakonec jsem zakotvila u klienta spotifyd, který funguje celkem bez problémů a s menší námahou. Sice má od léta 2024 drobný problém s přihlášením kvůli změnám u Spotify, ale to je řešitelné. Zbytek blogpostu je tedy už asi bezpředmětný a nechávám ho tu jen pro archivaci...
Jen ještě přidám systemd unitu pro spuštění pod uživatelem pro případ, že by v domácnosti bylo uživatelů více:
[Unit] Description=A spotify playing daemon Documentation=https://github.com/Spotifyd/spotifyd Wants=sound.target After=sound.target Wants=network-online.target After=network-online.target [Service] ExecStart=/usr/local/bin/spotifyd --no-daemon Restart=always RestartSec=12 User=%i Group=%i PermissionsStartOnly=true PrivateTmp=false [Install] WantedBy=default.target
Až doposud nové nahrávky standardně putovaly do adresáře s hudbou na mém domácím serveru, kde v LXC kontejneru běží MPD. To přehrávané skladby posílá na optický výstup starší levné zvukovky Xonar DSX a z ní už signál bliká optikou do receiveru Onkyo R-1045 na druhé straně pokoje. Celkem přímočaré řešení, které se nechá ovládat z kteréhokoli počítače s MPDčkovým klientem. Jak něco podobného udělat se Spotify?
Chvilku jsem koketovala s UPnP, než jsem zjistila, že mi gentoovské pulseaudio-dlna na mém notebooku proti debianímu minidlna na serveru běží buď celkem stabilně přes výchozí MP3 kodek, ovšem ztrátově s menším bitrate, nebo přes bezeztrátový FLAC s permanentními drop-outy, kterých se mi podařilo zbavit jen brutálním navýšením bufferů. Ani jedna varianta pro mě nebyla zajímavá.
Zkoušela jsem i Kodi; televizí sice nedisponuji, takže většina funkcí je pro mě nadbytečná, ale bylo mi řečeno, že pro něj existuje plugin pro podporu Spotify a jde to ovládat i přes webové rozhraní. Plugin existoval, ale tři roky na něj nikdo nesáhl, standardní cestou už nešel nainstalovat a když už se mi ho podařilo do instalace dotlačit násilím, ovládání bylo značně nepraktické a webové rozhraní se kousalo.
No a nakonec mi došla věc, kterou jsem měla před očima od začátku - pokud mám spuštěno více klientů Spotify nad jedním účtem, vidí na sebe a jdou mezi sebou ovládat, takže si ze svého počítače můžu pustit playlist klidně třeba na mobilu položeném ve vedlejší místnosti. A nebo na headless instalaci v debianovém LXC kontejneru na serveru se zvukovkou.
Cílem tedy je nainstalovat aplikaci Spotify do LXC kontejneru s přístupem ke zvukové kartě a bez přístupu ke grafice, v této aplikaci se trvale přihlásit na účet služby Spotify a zajistit její automatické spouštění po startu kontejneru. Nakonec jsem se dobrala k následujícímu postupu, který by se snad mohl hodit i někomu dalšímu:
V prvním kroku je potřeba zprovoznit LXC kontejner s přístupem na zvukovku. Přípravu LXC kontejneru popisovat nebudu, prostě předpokládám, že máte připravený neprivilegovaný kontejner s Debianem Buster, v mém případě v adresáři /mnt/lxc/spotify-test
. V tomto adresáři si vytvoříme podadresář s názvem snd-100000
, do něj nakopírujeme z hostitelského systému obsah /dev/snd
bez podadresářů a přepíšeme v něm vlastnictví tak, aby uid a gid odpovídaly vlastníkovi root:audio
v kontejneru. Já mám uid/gid v kontejneru posunuté o sto tisíc, gid skupiny audio
v kontejneru je 29
, obsah adresáře tedy následně vypadá takhle:
hostitel ~# ls -lh /mnt/lxc/spotify-test/snd-100000/ celkem 0 crw-rw---- 1 100000 100029 116, 6 30. kvě 10.54 controlC0 crw-rw---- 1 100000 100029 116, 3 30. kvě 10.54 pcmC0D0c crw-rw---- 1 100000 100029 116, 2 30. kvě 10.54 pcmC0D0p crw-rw---- 1 100000 100029 116, 5 30. kvě 10.54 pcmC0D1c crw-rw---- 1 100000 100029 116, 4 30. kvě 10.54 pcmC0D1p crw-rw---- 1 100000 100029 116, 1 30. kvě 10.54 seq crw-rw---- 1 100000 100029 116, 33 30. kvě 10.54 timer
Major device number, jak vidno výše, je 116, do konfiguračního souboru kontejneru tedy přidáme tyto dva řádky:
lxc.mount.entry = /mnt/lxc/spotify-test/snd-100000 dev/snd none bind,optional,create=dir lxc.cgroup.devices.allow = c 116:* rwm
Po spuštění kontejneru bychom měli uvnitř v adresáři /dev/snd
vidět něco takového:
hostitel ~ # lxc-attach -n spotify-test spotify-test ~ # ls -lh /dev/snd/ celkem 0 crw-rw---- 1 root audio 116, 6 kvě 30 16:37 controlC0 crw-rw---- 1 root audio 116, 3 kvě 30 16:37 pcmC0D0c crw-rw---- 1 root audio 116, 2 kvě 30 16:37 pcmC0D0p crw-rw---- 1 root audio 116, 5 kvě 30 16:37 pcmC0D1c crw-rw---- 1 root audio 116, 4 kvě 30 16:37 pcmC0D1p crw-rw---- 1 root audio 116, 1 kvě 30 18:19 seq crw-rw---- 1 root audio 116, 33 kvě 30 18:19 timer
Drobná odbočka: osobně moc nestojím o sklony Debianu instalovat i věci, které nejsou nutné, takže normálně vypínám instalaci doporučovaných a navrhovaných balíčků. Ve své standardní šabloně to mám přednastavené, vy si to kdyžtak nastavte:
cat << EOF > /etc/apt/apt.conf.d/99-suggested-packages APT::Install-Recommends "false"; APT::Install-Suggests "false"; EOF
Zkusíme, jestli z LXCčka skutečně vidíme na zvukovku:
apt install alsa-utils aplay /nejakyzvukovysoubor.wav alsamixer
Doinstalujeme si remote display server xpra a věci potřebné k připojení k němu:
apt install openssh-server xpra python-pil xauth
Podle návodu na stránkách Debianu doinstalujeme Spotify plus komponenty, bez kterých odmítá startovat (včetně mnohými nenáviděného Pulseaudia, protože klient Spotify by sice teoreticky měl běhat i s čistou Alsou, ale v praxi mi pak aktuální verze končila segfaultem; po nainstalování PA sice klient nesegfaultoval i když PA nebylo spuštěné, ale často pro změnu začal po ukončení přehrávání vytěžovat procesor na 100%).
apt install gnupg python-dbus dbus dbus-x11 pulseaudio apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 4773BD5E130D1D45 echo deb http://repository.spotify.com stable non-free | tee /etc/apt/sources.list.d/spotify.list apt update apt install spotify-client
Vzhledem k tomu, že počítáme s možností spouštět více instancí aplikace Spotify (případně i MPD), je lepší mít Pulseaudio spuštěné v samostatném procesu pod samostatným účtem.
V /etc/pulse/default.pa
tedy odkomentujeme řádek load-module module-alsa-sink
a společně s řádkem load-module module-native-protocol-unix
je upravíme do následující podoby:
load-module module-alsa-sink device=hw:0,0 load-module module-native-protocol-unix auth-group-enable=true auth-group=pulse-access socket=/tmp/pulse-server
Vytvoříme soubor /etc/pulse/client.conf.d/socket.conf
.
cat << EOF > /etc/pulse/client.conf.d/socket.conf autospawn = no default-server = unix:/tmp/pulse-server EOF
Nastavíme práva uživatele, pod kterým poběží služba Pulseaudia.
gpasswd -a pulse pulse-access gpasswd -a pulse audio
No a nakonec vytvoříme unitu /etc/systemd/system/pulseaudio.service
s tímto obsahem:
[Unit] Description=PulseAudio system server [Service] PermissionsStartOnly=true ExecStartPre=/bin/rm -f /tmp/pulse-server ExecStartPre=/bin/mkdir -p /var/run/pulse/ ExecStartPre=/bin/chown -R pulse /var/run/pulse ExecStart=pulseaudio --disallow-exit=yes User=pulse Group=pulse-access [Install] WantedBy=multi-user.target
Ještě nastavit automatické spouštění a můžeme se vrhnout na samotné Spotify.
systemctl daemon-reload systemctl enable pulseaudio.service reboot
Přidáme uživatele, pod kterým se bude Spotify spouštět:
useradd -m -s /bin/bash spotify gpasswd -a spotify pulse-access
Doplníme svůj klíč pro SSH do konfiguračního souboru uživatele spotify; SSH používáme pro úvodní konfiguraci klienta, v běžném provozu může být shozené:
cd /home/spotify mkdir .ssh touch .ssh/authorized_keys chown -R spotify:spotify .ssh chmod 0500 .ssh chmod 0400 .ssh/authorized_keys echo nejakymujklic >> .ssh/authorized_keys
Je vhodné si připojení přes SSH ze svého počítače na kontejner se Spotify vyzkoušet.
Nyní si vytvoříme soubor /etc/systemd/system/spotify@.service
s následujícím obsahem:
[Unit] Description=Spotify Wants=pulseaudio.service [Service] ExecStartPre=/bin/bash -c "/bin/mkdir -p /run/user/$(/usr/bin/id -u %i)" ExecStartPre=/bin/bash -c "/bin/chown %i /run/user/$(/usr/bin/id -u %i)" ExecStart=/usr/bin/xpra start --start-child=/usr/bin/spotify --daemon=no --systemd-run=no --exit-with-children=yes User=%i Group=%i PermissionsStartOnly=true [Install] WantedBy=multi-user.target
No a teď si to spustíme:
systemctl daemon-reload systemctl start spotify@spotify.service
To spotify
za zavináčem je jméno uživatele, pod kterým klienta Spotify spouštíme. Můžeme klidně spustit víc instancí pod více uživateli, třeba extra pro každého člena rodiny, pokud jsou schopni akceptovat, že přehrávat by měl vždy jen jeden z nich.
Pokud na svém počítači nemáme xpra
, doinstalujeme ho*) a pak se připojíme k aplikaci Spotify ve vzdáleném kontejneru a nastavíme přístupové údaje ke službě Spotify, kvalitu streamu, případně zrušíme normalizaci atd.
mujpocitac ~ # xpra attach ssh://spotify@123.45.6.78/
Pozor, pokud po nastavení klasicky zavřete okno Spotify, aplikace na vzdáleném serveru se ukončí. Místo zavření okna je nutné se jen pomocí ikony v trayi odpojit, jinak budete muset restartovat spotify.service
v LXC kontejneru.
Nyní stačí nastavit automatické spouštění spotify@.service
pro uživatele spotify
při startu kontejneru:
systemctl enable spotify@spotify.service
Případně je možné v konfigurácích upravit kvalitu resamplování pulseaudia nebo výchozí vzorkovací frekvenci. V mém případě to vypadá takto:
spotify-test ~ # egrep -v '^\s*(;|#|$)' /etc/pulse/daemon.conf resample-method = speex-float-10 avoid-resampling = yes enable-remixing = no flat-volumes = no default-sample-format = s32le default-sample-channels = 2 default-channel-map = front-left,front-right
Pro jistotu vyzkoušíme reboot kontejneru, služba Spotify by měla nastartovat.
spotify-test ~ # reboot ... hostitel ~# lxc-attach -n spotify-test spotify-test ~ # pstree systemd─┬─5*[agetty] ├─2*[dbus-daemon] ├─pulseaudio───{pulseaudio} ├─rsyslogd───2*[{rsyslogd}] ├─sshd ├─systemd-journal ├─systemd-logind ├─systemd-udevd └─xpra─┬─Xorg───9*[{Xorg}] └─spotify─┬─spotify───spotify───16*[{spotify}] ├─spotify───13*[{spotify}] └─38*[{spotify}]
Start Xorg může na pomalejších procesorech chvilku trvat, na mém Avotonu C2750 naběhne v řádu sekund.
Nyní bychom u sebe měli vidět LXC kontejner spotify-test
v seznamu zařízení připojených k účtu a můžeme případně přehodit přehrávání na tento vzdálený počítač.
No a to je vše. Hudba hraje a my můžeme zase pro změnu jít dělat něco užitečného...
*) Variantou je připojit se pro nastavení přímo přes SSHčkový X11 forwarding, já mám xpra nainstalovaný, takže se raději připojuji přímo k běžící unitě.
Tiskni
Sdílej:
127.0.0.1 adclick.g.doublecklick.net 127.0.0.1 *.doublecklick.net 127.0.0.1 adeventtracker.spotify.com 127.0.0.1 ads-fa.spotify.com 127.0.0.1 analytics.spotify.com 127.0.0.1 audio2.spotify.com 127.0.0.1 b.scorecardresearch.com 127.0.0.1 bounceexchange.com 127.0.0.1 bs.serving-sys.com 127.0.0.1 content.bitsontherun.com 127.0.0.1 core.insightexpressai.com 127.0.0.1 crashdump.spotify.com 127.0.0.1 d2gi7ultltnc2u.cloudfront.net 127.0.0.1 d3rt1990lpmkn.cloudfront.net 127.0.0.1 desktop.spotify.com 127.0.0.1 doubleclick.net 127.0.0.1 ds.serving-sys.com 127.0.0.1 googleadservices.com 127.0.0.1 googleads.g.doubleclick.net 127.0.0.1 gtssl2-ocsp.geotrust.com 127.0.0.1 js.moatads.com 127.0.0.1 log.spotify.com 127.0.0.1 media-match.com 127.0.0.1 omaze.com 127.0.0.1 open.spotify.com 127.0.0.1 pagead46.l.doubleclick.net 127.0.0.1 pagead2.googlesyndication.com 127.0.0.1 partner.googleadservices.com 127.0.0.1 pubads.g.doubleclick.net 127.0.0.1 redirector.gvt1.com 127.0.0.1 s0.2mdn.net 127.0.0.1 securepubads.g.doubleclick.net 127.0.0.1 spclient.wg.spotify.com 127.0.0.1 tpc.googlesyndication.com 127.0.0.1 v.jwpcdn.com 127.0.0.1 video-ad-stats.googlesyndication.com 127.0.0.1 weblb-wg.gslb.spotify.com 127.0.0.1 www.googleadservices.com 127.0.0.1 www.googletagservices.com 127.0.0.1 www.omaze.com--- Dete s tim guuglem dopice!
si ji ripni a jeto jako ;D
V tomto adresáři si vytvoříme podadresář s názvem snd-100000, do něj nakopírujeme z hostitelského systému obsah /dev/snd bez podadresářů a přepíšeme v něm vlastnictví tak, aby uid a gid odpovídaly vlastníkovi root:audio v kontejneruJá udělal bind-mount celého
/dev/snd
(a /dev/dri
), R/W přístup pro uživatele uvnitř LXC stačilo přidat pomocí setfacl
Já udělal bind-mount celého /dev/snd (a /dev/dri), R/W přístup pro uživatele uvnitř LXC stačilo přidat pomocí setfaclPřežije to restart? U mě tenhle adresář, pokud se nepletu, vytváří za běhu udev, ale můžu se mýlit, teď to nemám kde vyzkoušet. Mně to takhle na hulváta nakopírované drží už pár let, takže to používám.
/etc/fstab
.
root:audio
tam měl přístup i uživatel 100000
a skupina 100029
z neprivilegovaného kontejneru.
se tam připiše gid uid a takový tydlety hele třeba jako :O ;D
udělat novou skupinu proně provšecky a pro ti to tam ve fstab nastavit jinak jako nevim :O :O
mount -o bind
do jiného adresáře, ale tam právě parametry uid
a gid
nefungují, mount je sice neodmítne, ale na výsledku se nijak neprojeví.
Každopádně já to nepotřebuju řešit. Moje řešení funguje se statickou kopií, trekkerovo řešení s hookem při spouštění kontejneru funguje, patrně by fungovalo i to uvažované pravidlo do udevu. Jen mi prostě nebylo jasné, jak má fungovat to připojování přes fstab. A není mi to jasné stále.
samozřejmě na hostitelském systému jde vytvořit skupinu s GID 100029, jen to považuji za nežádoucíPro ten Steam je to nutné, protože
xhost
nebere UID. Jestli to vytvoří nějakou skulinu, to nevím, taky mě žádná nenapadla. Ale dávám proprietární aplikaci přístup k /dev/dri
, tudíž mě malinké skulinky vlastně nemusí zajímat noa jozef kufner co stim fstab přišel tady vod tý doby několikrát byl a nic sem nenapsal takže asi taky jako neví :O ;D
toje přeci přemenovaná johanka už si si s ní jako povidal v tom svým blogísku vo muzice :O :D :D ;D
nóóó jestli sem jako famózně poetická nevim ale anička se jako určitě nemenuju :D ;D
amigu znám jenom z emulátoru :O ;D
ale jako nedivila bych se amigoj kdyby tendelten chaos trošičku přiživoval a tys mu to jakoby žral i s navyjákem :O :D ;D ;D
jackd
napojený na ovladač dummy
. Nic to nezpracovávalo, nebylo to napojené na žádný HW, stačilo to jen spustit a okamžitě se mi zvedla spotřeba a začalo to topit.
Jinak stable je momentálně 5.4.38.