Jump to content

FAI - Cockpit - Album Player ISO


Mikorist

Preporučeni Komentari

Ja prvo nisam muzički obrazovan i mene Tidal zadovoljava po svim osnovama.

Po forumima bar 90% ljudi daje prednost QOBUZ u kvalitetu zvuka jedino što kažu da je Tidal dominantan u broju naslova i brze stiže na Tidal novi muzički materijal.

Voleo bi da mogu da se pretplatom na Qobuz ali to kod nas oficijelno nije moguće .

Link to comment
Podeli na ovim sajtovima

Ma moj je DAC kanta, doduše kupim uvek neki SMSL koji je u tom trenutku jedan od njihovih najboljih ali ipak smešne cene od tzv. dobrih DACs.

To radim namerno jer je gradijent promena u tehnologiji izrade DAC nenormalan i fakat je da je svaki posle par godina Malte ne za bacanje, koliko god da je plaćen, u odnosu na jeftine nove DAC-ove.

Znam da ti za svaku komponentu imaš stav šta voliš i da takve stvari isključivo i kupuješ (MISLIM PRI TOME GENERALNO JER JA NE PRAVIM RAZLIKU U KVALITETU I ZVUKU IZMEĐU ONOGA STO PRAVI npr. ZEN I ONOGA ŠTO PRAVI NELE).

Link to comment
Podeli na ovim sajtovima

54 minutes ago, Mikorist said:

Pusti neki DSD direktno pa uporedi sa Tidalom i  UPnP/DLNA.:nananana:

Ali predhodno podesi ovo

 

Miko to sam pre par godina stalno radio i poredio.

SnakeOil radi Preloading tako što od memorije odvojite deo za ram disk u koji on učita najmanje jednu pesmu. Koliko ćeš da ucitaš definišem u Squeezelite player-u.

Takođe u zavisnosti od broja jezgara koje imaš možeš da definišeš i odvajaš u posebna jezgra pojedine procese za koje. misliš da su posebno bitni.

Stvarno u SnakeOil možeš svašta da podesavas, znatno više nego u APlayer, veruj na reč i to mi je bilo zanimljivo 2-3 meseca a onda sam sve držao na default.

Postoje boja tona koja u nekim tehnologijama se baš razlikuje od uobicajene. Za mene je DAC CHORD bas primer za to I oni po boji tona lice na MPD players. Licno volim zvuk MPD ali zato neki moji drugari ne mogu da ga smisle.

Link to comment
Podeli na ovim sajtovima

A šta ćemo da radimo sa ostalim podešavanjima kojih nema na SnakeOil a ima u ovom sistemu ? 

Gledaj koliko je toga (ovo je sadašnja zadnja verzija)

#!/usr/bin/env bash
DIR=/usr
ARC_BEG=276
## Provera za sudo/root
if ! [ $(id -u) = 0 ]; then
  echo "Ova skripta mora da se pokrene kao sudo, probaj ponovo..."
  exit 1
fi
sudo timedatectl set-timezone Europe/Belgrade
sudo touch /lib/firmware/rtl_nic/rtl8126a-2.fw
echo "RESUME=none" | sudo tee /etc/initramfs-tools/conf.d/resume > /dev/null
## Konfiguracija RT kernela.
sudo mv /usr/bin/linux-check-removal /usr/bin/linux-check-removal.orig
echo -e '#!/bin/sh\necho "Overriding default linux-check-removal script!"\nexit 0' | sudo tee /usr/bin/linux-check-removal
sudo chmod +x /usr/bin/linux-check-removal
echo "==> Removing all linux kernels"
dpkg --list | awk '{ print $2 }' | grep -E 'linux-image|linux-headers'| xargs apt-get -y remove --purge
echo "==> Removing linux source"
dpkg --list | awk '{ print $2 }' | grep linux-source | xargs apt-get -y remove --purge
#RT kernel
curl -s 'https://liquorix.net/install-liquorix.sh' | sudo bash
##
sudo update-grub
sudo date -s "$(wget -qSO- --max-redirect=0 google.com 2>&1 | grep Date: | cut -d' ' -f5-8)Z"
sudo apt-get -y update && sudo apt install -y rtkit msr-tools preload curl wget irqbalance net-tools ntfs-3g firmware-linux-nonfree rtirq-init intel-microcode logrotate cpufrequtils libssl-dev mc insserv rtkit libasound2 efibootmgr udisks2 lvm2 open-iscsi btrfs-progs udisks2-bcache udisks2-lvm2 udisks2-btrfs libblockdev-crypto2 smbclient cifs-utils winbind
sudo apt-get install -t bookworm-backports cockpit cockpit-machines -y
wget https://www.diyaudio.rs/skripte/cockpit-files-5.tar.xz && tar -xf cockpit-files-5.tar.xz cockpit-files/dist && sudo mv cockpit-files/dist /usr/share/cockpit/files && rm -r cockpit-files && rm cockpit-files-5.tar.xz
sed -i /etc/default/rtirq -e "s/.*RTIRQ_NAME_LIST=.*/RTIRQ_NAME_LIST=\"xhci_hcd ehci_hcd:usb snd\"/g"    
sed -i /etc/default/rtirq -e "s/.*RTIRQ_PRIO_HIGH=.*/RTIRQ_PRIO_HIGH=\"99\"/g"
sudo systemctl enable rtirq.service
sudo apt install -y tuned tuned-utils tuned-utils-systemtap
sudo tuned-adm profile latency-performance
sudo cpufreq-set -r -g performance
echo 'CONCURRENCY=shell' >> /etc/default/rcS
# Use sed to replace GOVERNOR value
sudo sed -i 's/^GOVERNOR="ondemand"/GOVERNOR="performance"/' "/etc/init.d/cpufrequtils"
# Restart cpufrequtils service
systemctl daemon-reload
sudo /etc/init.d/cpufrequtils restart
echo "Governor has been changed to 'performance'."
sudo groupadd audio 
sudo usermod -a -G audio root
#Davanje prioriteta za audio
FILE01=$"@audio          -       rtprio          99
@audio          -       nice           -19
@audio          -       memlock         unlimited
@audio          -       nofile          8192"
echo "$FILE01"  > /etc/security/limits.d/audio.conf
#Latencija
FILE02=$'DEVPATH=="/devices/virtual/misc/cpu_dma_latency", OWNER="root", GROUP="audio", MODE="0660"'
echo "$FILE02"  > /etc/udev/rules.d/99-cpu-dma-latency.rules
FILE021=$'KERNEL=="hpet", OWNER="root", GROUP="audio", MODE="0660"'
echo "$FILE021"  >  /etc/udev/rules.d/90-hpet-permissions.rules
FILE022=$'KERNEL=="rtc0", OWNER="root", GROUP="audio", MODE="0660"'
echo "$FILE022" > /etc/udev/rules.d/40-timer-permissions.rules
FILE023=$'w    /sys/class/rtc/rtc0/max_user_freq     -    -    -    -   3072
w    /proc/sys/dev/hpet/max-user-freq     -    -    -    -   3072'
echo "$FILE023" > /etc/tmpfiles.d/maxfreq.conf
FILE024=$'ACTION=="add|change", KERNEL=="mmcblk0", ATTR{queue/scheduler}="noop"'
echo "$FILE024" > /etc/udev/rules.d/60-scheduler.rules
FILE025=$'options snd-usb-audio nrpacks=1'
echo "$FILE025" > /etc/modprobe.d/usb-dac.conf
sudo udevadm control --reload-rules
sudo udevadm trigger
#RT Kit
FILE03=$"[Unit]
Description=RealtimeKit Scheduling Policy Service

[Service]
EnvironmentFile=/etc/dbus-1/system.d/rtkit
ExecStart=/usr/libexec/rtkit-daemon $RTKIT_ARGS
Type=dbus
BusName=org.freedesktop.RealtimeKit1
NotifyAccess=main
CapabilityBoundingSet=CAP_SYS_NICE CAP_DAC_READ_SEARCH CAP_SYS_CHROOT CAP_SETGID CAP_SETUID
PrivateNetwork=yes

[Install]
WantedBy=graphical.target"

echo "$FILE03"  > /lib/systemd/system/rtkit-daemon.service

FILE04=$'RTKIT_ARGS="--scheduling-policy=FIFO
--our-realtime-priority=90
--max-realtime-priority=99
--min-nice-level=-19
--rttime-usec-max=2000000
--users-max=100
--processes-per-user-max=1000
--threads-per-user-max=10000
--actions-burst-sec=10
--actions-per-burst-max=1000
--canary-cheep-msec=30000
--canary-watchdog-msec=60000
--realtime-all-users=true
--cpu-limit-usec=50000
--max-clients=200
--max-memory-usage=1024MB
--watchdog-timeout-sec=60
--max-cpu-percent=85
--enable-jitter-protection=true
" '
echo "$FILE04"  > /etc/dbus-1/system.d/rtkit
sudo systemctl enable rtkit-daemon.service
##Konfiguracija grub
  echo -n "  + Konfigurisem boot opcije... "
  if [ -f /etc/default/grub ]; then
    sed -i /etc/default/grub -e "s/.*GRUB_CMDLINE_LINUX_DEFAULT=.*/GRUB_CMDLINE_LINUX_DEFAULT=\"quiet rhgb msr.allow_writes=on net.ifnames=0 loglevel=3 nosoftlockup mce=ignore_ce skew_tick=1 iommu=soft noresume threadirqs mitigations=off nmi_watchdog=0\"/g" && update-grub
      echo "OK"
    else
      echo "ERROR"
   fi
##Fstab
sed -i /etc/fstab -e "s/ext4.*/ext4 noatime,nodiratime,errors=remount-ro,inode_readahead_blks=0 0 1/g"
FILE24=$'#!/bin/sh -e
### BEGIN INIT INFO
# Provides:          boost
# Required-Start:    $all
# Required-Stop:
# Default-Start:     2 3 4 5
# Default-Stop:
# Short-Description: boost...
### END INIT INFO
MSR_FILE=/sys/module/msr/parameters/allow_writes

if test -e "$MSR_FILE"; then
	echo on > $MSR_FILE
else
	modprobe msr allow_writes=on
fi

if grep "Intel" /proc/cpuinfo > /dev/null;
	then
		echo "Detected Intel CPU"
		wrmsr -a 0x1a4 0xf
		echo "MSR register values for Intel enabling the Turbo Boost power applied"
else
	echo "No supported CPU detected"
fi '
echo "$FILE24"  > /etc/init.d/boost
sudo systemctl enable boost.service
FILE25=$'# Network settings
net.core.default_qdisc = fq
net.ipv4.tcp_congestion_control = bbr2
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_synack_retries = 2
net.ipv4.tcp_syn_retries = 2
net.ipv4.tcp_tw_reuse = 1  # Enable reuse of TIME_WAIT sockets
net.ipv4.ip_local_port_range = 1024 65535
net.core.rmem_default = 8388608
net.core.wmem_default = 8388608
net.core.rmem_max = 536870912
net.core.wmem_max = 536870912
net.ipv4.tcp_rmem = 8192 262144 536870912
net.ipv4.tcp_wmem = 4096 16384 536870912
net.core.optmem_max = 40960
net.core.bpf_jit_harden = 2
net.ipv4.tcp_low_latency = 1

# Kernel scheduler settings
kernel.sched_latency_ns = 1000000
kernel.sched_min_granularity_ns = 100000
kernel.sched_wakeup_granularity_ns = 25000
kernel.sched_autogroup_enabled = 0

# Virtual memory settings
vm.swappiness = 10
vm.vfs_cache_pressure = 10
vm.dirty_bytes = 335544320
vm.dirty_background_bytes = 167772160
vm.dirty_writeback_centisecs = 1500
vm.max_map_count = 262144

# Filesystem settings
fs.file-max = 9223372036854775807
fs.inotify.max_user_watches = 524288
fs.inotify.max_queued_events = 65536

# Process ID settings
kernel.pid_max = 4194304'
echo "$FILE25"  > /etc/sysctl.conf
FILE26=$'# Process limits
* soft nproc 262144   # Maximum number of processes per user (soft limit)
* hard nproc 524288   # Maximum number of processes per user (hard limit)

# File descriptor limits
* soft nofile 262144  # Maximum number of open files per user (soft limit)
* hard nofile 524288  # Maximum number of open files per user (hard limit)

# Stack size limits
* soft stack 8388608  # Stack size limit (soft limit) - 8 MB
* hard stack 16777216 # Stack size limit (hard limit) - 16 MB

# Memory locking limits
* soft memlock unlimited   # Allow unlimited memory locking for real-time performance
* hard memlock unlimited   # Allow unlimited memory locking for real-time performance'
echo "$FILE26"  > /etc/security/limits.conf
sudo sysctl -p
tail -n +${ARC_BEG} "$0" > /usr/ap.tar.gz
echo -n "  + Extracting archive... "
tar -xvf /usr/ap.tar.gz --directory /usr
echo "OK"
sudo curl -s https://www.diyaudio.rs/skripte/bash.bashrc -o /etc/bash.bashrc
sudo curl -s https://www.diyaudio.rs/skripte/new_bashrc -o /root/.bashrc
sudo curl -s https://www.diyaudio.rs/skripte/squeeze2upnp -o /usr/upnp/squeeze2upnp
sudo curl -s https://www.diyaudio.rs/skripte/sacd_extract -o /usr/local/bin/sacd_extract
sudo curl -s https://www.diyaudio.rs/skripte/dsf2flac -o /usr/local/bin/dsf2flac
sudo curl -s https://www.diyaudio.rs/skripte/tint -o /usr/local/bin/tetris
sudo curl -s https://www.diyaudio.rs/skripte/squeeze2upnp.service -o /usr/upnp/squeeze2upnp.service
sudo chmod 0777 /usr/local/bin/sacd_extract
sudo chmod +x /usr/local/bin/sacd_extract
sudo chmod 0777 /usr/local/bin/dsf2flac
sudo chmod +x /usr/local/bin/dsf2flac
sudo chmod 0777 /usr/local/bin/tetris
sudo chmod +x /usr/local/bin/tetris
sudo chmod 0777 /usr/upnp/squeeze2upnp
sudo chmod +x /usr/upnp/squeeze2upnp
echo "The /etc/bash.bashrc file has been replaced."
sudo journalctl --vacuum-size=40M
sudo sed -i 's/#SystemMaxUse=/SystemMaxUse=100M/' /etc/systemd/journald.conf
sudo sed -i 's/#SystemMaxFiles=100/SystemMaxFiles=7/g' /etc/systemd/journald.conf
sudo journalctl --rotate
sudo rm -v /var/log/*.log* /var/log/syslog*
sed -i 's/rotate 7/rotate 1/g' /etc/logrotate.d/rsyslog
sed -i 's/rotate 4/rotate 1/g' /etc/logrotate.conf
sed -i 's/weekly/daily/g' /etc/logrotate.d/rsyslog
sed -i 's/weekly/daily/g' /etc/logrotate.conf
cp -rf /usr/aplayer/aplayer.service /etc/systemd/system/
cp -rf /usr/apmenu/apmenu.service /etc/systemd/system/
cp -rf /usr/aprenderer/aprenderer.service /etc/systemd/system/
cp -rf /usr/upnp/squeeze2upnp.service /etc/systemd/system/
sudo systemctl daemon-reload
sudo systemctl enable aplayer.service
sudo systemctl start aplayer.service
sudo systemctl enable apmenu.service
sudo systemctl start apmenu.service
sudo systemctl enable aprenderer.service
sudo systemctl start aprenderer.service
sudo systemctl enable squeeze2upnp.service

Čak imam i Turbo Boost u sistemu podešen sa wrmsr -a 0x1a4 0xf

Ako se neko seća starih mašina gde je pisalo Turbo....Ovo je turbo dugme ovde :D

Link to comment
Podeli na ovim sajtovima

17 minutes ago, Mikorist said:

Onda bolje da ne dolazim kod tebe sa DAC. Ovo je posebna vrsta ludila. Ne znam (posle te sesije) koga ćeš  da navataš da ti napravi sličan  :smesna:

Miko, ja sam poseban tip.

Najlepše sam živeo dok sam bio mlad kao i svi a to se kod mene poklopilo sa ekspanzijom BBC zvuka i kutije BBC standarda su moj izbor.

SLUSAO sam paralelno u Londonu Harbeth kao moje i 10-20-tak puta skuplje zvučnike (najbolji Linn sa Room Correction, Najbolje Wilson Benesh, .......). Da li treba da ti kažem sta bi OPET IZABRAO I DA SU PO ISTOJ CENI .

Najsmešnije je sto to misli i moja zena.

Naravno da postoji mogućnost da sam slušno nekompetentan (godine) ali ja nekako od zvuka prepoznajemo samo "boju" tona i za mene je ona kvalitet.

DAC-ovi nisu nesto sto na mene ostavlja utisak sto možda i znaci da nisam imao priliku da CUJEM dobar dac.

Link to comment
Podeli na ovim sajtovima

Miko nisam govorio ni o čmu drugom do o player-u i rendereru a ono što sam ti pomenuo za ram disk, za stavljanje procesa u odvojena jezgra, isključivanje HDMI, USB,.... pa to je za mene da čujem u domenu fantazije.

Izmenjeno od Srecko
Link to comment
Podeli na ovim sajtovima

Ja razmišljam ovako.

Čula su varljiva ali statistika nije. Ogroman broj ljudi više voli zvuk Mac i Linux nego Windowsa te suštinski nije ni bitno da li je Win bolji ili lošiji a meni se nije teško opredeliti i ako se poštuje ono što većina preferira ne može se pogrešiti.

Link to comment
Podeli na ovim sajtovima

pre 3 minuta, Srecko reče

Ogroman broj ljudi više voli zvuk Mac i Linux nego Windowsa te suštinski nije ni bitno da li je Win bolji ili lošiji a meni se nije teško opredeliti i ako se poštuje ono što većina preferira ne može se pogrešiti.

Ne svira Linux sam po sebi bolje nego podešavanja za audio sviraju. Znači ovo ovde SKUP - GOMILA podešavanja koja GO Linux tera da radi samo jednu jedinu stvar. Da procesira zvuk  na specifičan način. Sam Album Player je sveća na torti. Ali i ta sveća je napravljena specifično na drugi način kako to radi  Logitech .

LMS je parafin ovo je vosak.....

Link to comment
Podeli na ovim sajtovima

Ajde sad kao ozbiljno. Pošto smo u "nekoj IT oblasti". :D

Pitao sam ChatGTP šta ova skripta tačno radi ovome sistemu. Pošto mene mrzi da objašnjavam stavku po stavku.

Pitanje

Da li mozes da obajsniš na srpskom jeziku kao IT osoba stavku po stavku  šta precizno radi ova skripta ?

(ovde je skripta)

------

Odgovor

Naravno, mogu detaljno da objasnim šta sve postavke u ovoj skripti rade. Evo opisa za svaku stavku vezanu za USB i audio reprodukciju, uključujući konfiguracije u različitim datotekama kao što su audio.conf, rtirq, udev pravila, usb-dac.conf, GRUB, RT Kit, fstab, boost, sysctl.conf i limits.conf.

1. Instalacija Liquorix kernela

Liquorix kernel je dizajniran da poboljša performanse aplikacija koje zahtevaju brze reakcije i nisku latenciju, kao što su audio i video aplikacije. U poređenju sa standardnim kernelima, pruža bolju podršku za real-time zadatke.


Ravnomerna Distribucija Resursa:

Kernel koristi različite metode za upravljanje resursima kako bi osigurao da real-time aplikacije, poput audio procesa, dobiju potrebnu propusnost i prioritet. To uključuje bolje upravljanje IRQ-ovima i optimizaciju scheduler-a.
Prilagođene Postavke Scheduler-a:

Liquorix kernel koristi scheduler (planer) koji je optimizovan za multimedijalne aplikacije. Ovaj scheduler je dizajniran da minimizira kašnjenje i poboljša odzivnost sistema na audio i druge real-time zahteve.

Poboljšana Latencija:

Za audio aplikacije, niska latencija je ključna. Liquorix kernel pruža optimizacije koje pomažu u smanjenju vremena između kada se događaj desi i kada sistem reaguje na njega. Ovo je posebno korisno za aplikacije koje obrađuju audio u stvarnom vremenu, kao što su digitalne audio radne stanice (DAW).
Poboljšana Podrška za Multimedijalne Funkcionalnosti:

Kernel može imati unapređenja koja poboljšavaju rad sa zvučnim uređajima i USB uređajima, što može rezultirati stabilnijom i efikasnijom reprodukcijom zvuka.
Kako doprinosi audio performansama:
Niska Latencija: Zbog optimizacija scheduler-a i boljeg upravljanja resursima, Liquorix kernel smanjuje kašnjenje koje može uticati na kvalitet audio reprodukcije. Ovo je bitno za aplikacije koje zahtevaju precizno vreme, kao što su profesionalni audio snimači i plejeri.

Prioriteti za Real-Time Procese: Kernel omogućava da audio procesi dobiju veći prioritet u odnosu na druge sistemske zadatke, čime se smanjuje mogućnost da drugi procesi ometaju kvalitet zvuka.

Stabilnost: Iako nije najbrži mogući kernel, Liquorix nudi dobar balans između performansi i stabilnosti, čime se postiže pouzdana audio reprodukcija bez značajnih prekida ili problema sa performansama. U kontekstu audio performansi, njegova optimizacija za nisku latenciju i bolju raspodelu resursa može značajno poboljšati kvalitet reprodukcije zvuka i stabilnost aplikacija koje se oslanjaju na preciznu obradu audio signala.

2. /etc/security/limits.d/audio.conf - Prioriteti za audio:
Ova datoteka postavlja prioritetne postavke za korisnike u grupi audio kako bi omogućila bolje performanse real-time audio reprodukcije.

rtprio (Real-Time Priority): Postavlja maksimalni real-time prioritet na 99, što omogućava aplikacijama da imaju veći prioritet u audio procesima.
nice: Smanjuje "nice" vrednost na -19 (niža vrednost znači veći prioritet).
memlock: Zaključava memoriju kako bi sprečila razmenu memorije na disk, što poboljšava stabilnost real-time aplikacija.
nofile: Povećava maksimalan broj otvorenih fajlova na 8192, što je korisno za aplikacije koje otvaraju mnogo audio fajlova ili konekcija.

3. /etc/default/rtirq - Konfiguracija real-time IRQ prioriteta:
Postavke za rtirq pomažu u prioritetizaciji USB i audio uređaja na nivou sistemskih prekida (IRQ).

RTIRQ_NAME_LIST: Ova linija definiše koje uređaje (tj. drajvere) prioritetizovati na najviši nivo, u ovom slučaju USB kontrolere (xhci_hcd, ehci_hcd:usb) i zvučne uređaje (snd).
RTIRQ_PRIO_HIGH: Postavlja najviši prioritet na 99 za te uređaje, što znači da će njihovi IRQ zahtevi imati prioritet nad ostalima.

4. udev pravila - Podešavanja latencije i permisija za uređaje:

Ovaj deo sadrži različite postavke koje optimizuju latenciju i performanse za audio uređaje i USB DAC (digitalno-analogni konvertor). Evo objašnjenja stavku po stavku:

99-cpu-dma-latency.rules


FILE02=$'DEVPATH=="/devices/virtual/misc/cpu_dma_latency", OWNER="root", GROUP="audio", MODE="0660"'
Ova udev pravila postavljaju vlasnika i grupu za cpu_dma_latency uređaj, koji je povezan sa upravljanjem latencijom CPU-a. Smanjenje latencije ovde može pomoći u postizanju boljih performansi audio reprodukcije. Vlasnik je postavljen na root, a grupa na audio, s pravima pristupa od 0660, što znači da samo root i korisnici iz grupe audio mogu čitati i pisati na ovaj uređaj.

90-hpet-permissions.rules


FILE021=$'KERNEL=="hpet", OWNER="root", GROUP="audio", MODE="0660"'
Ova pravila se odnose na HPET (High Precision Event Timer), koji se često koristi za tačno merenje vremena u real-time aplikacijama. Opet, vlasnik je root, grupa je audio, a prava su 0660. To omogućava pristup HPET-u samo root korisniku i članovima grupe audio, što je korisno za niskolatencijski audio rad.

40-timer-permissions.rules


FILE022=$'KERNEL=="rtc0", OWNER="root", GROUP="audio", MODE="0660"'
Ova pravila upravljaju stvarnim vremenskim satom (rtc0). Ovaj uređaj meri stvarno vreme i može se koristiti u audio sistemima za sinhronizaciju. Pristup uređaju je ograničen na root i članove grupe audio.

/etc/tmpfiles.d/maxfreq.conf


FILE023=$'w    /sys/class/rtc/rtc0/max_user_freq     -    -    -    -   3072
w    /proc/sys/dev/hpet/max-user-freq     -    -    -    -   3072'
Ovaj fajl konfiguriše maksimalne frekvencije za RTC i HPET. Postavljanjem ovih frekvencija na 3072, omogućava se maksimalna preciznost i tačnost u sinhronizaciji i upravljanju vremenom, što je ključno za aplikacije u realnom vremenu kao što je audio.

60-scheduler.rules


FILE024=$'ACTION=="add|change", KERNEL=="mmcblk0", ATTR{queue/scheduler}="noop"'
Ova pravila postavljaju I/O scheduler za uređaje povezane sa mmcblk0 (memorijske kartice i SSD uređaji) na "noop". "noop" je najjednostavniji scheduler, koji ima minimalnu obradu ulazno-izlaznih zahteva i takođe doprinosi niskoj latenciji u audio sistemima.

usb-dac.conf


FILE025=$'options snd-usb-audio nrpacks=1'
Ovaj fajl konfiguriše drajver za USB audio uređaje. Postavka nrpacks=1 smanjuje veličinu paketa koji USB DAC koristi prilikom prenosa podataka, što smanjuje latenciju i poboljšava performanse prilikom reprodukcije zvuka.

udevadm control i trigger

sudo udevadm control --reload-rules
sudo udevadm trigger


Ove komande osvežavaju udev pravila i primenjuju ih odmah, bez potrebe za restartovanjem sistema. udevadm control --reload-rules ponovo učitava sva pravila, dok udevadm trigger primenjuje nova pravila na postojeće uređaje.

Ovaj deo skripte je ključan za osiguravanje stabilnih i brzih performansi audio sistema sa fokusom na USB audio uređaje (DAC), smanjenje latencije i optimalno upravljanje sistemskim resursima.

nrpacks=1: Ova opcija smanjuje broj USB paketa koji se obrađuju odjednom, što može smanjiti latenciju u audio reprodukciji.

5. GRUB podešavanja:
Postavka u datoteci /etc/default/grub optimizuje kernel za real-time rad, USB uređaje, i smanjuje nepotrebno zapisivanje logova.

GRUB_CMDLINE_LINUX_DEFAULT: Dodaje opcije kernelu prilikom pokretanja sistema koje poboljšavaju performanse, poput msr.allow_writes=on (dozvoljava pristup MSR registrima), nosoftlockup, iommu=soft, i mitigations=off 

Podešava kernel parametre da isključi nepotrebne bezbednosne mitigacije (mitigations=off)  koje mogu smanjiti performanse i optimizuje rad sa viškom kernel niti (threadirqs). Ostale opcije, poput iommu=soft i nosoftlockup, obezbeđuju stabilniji rad audio uređaja.

6. RT Kit (/lib/systemd/system/rtkit-daemon.service):
RT Kit je daemon koji omogućava korisnicima i aplikacijama da koriste real-time prioritete bez potrebe za root pristupom. Ovo je korisno za audio aplikacije koje zahtevaju stabilnost i minimalnu latenciju.

Ovaj servis podešava real-time prioritet za audio procese i osigurava da se ne premaše dozvoljeni limiti sistema.

Tuned je alat koji optimizuje performanse sistema na osnovu različitih profila. Razvijen je od strane Red Hat-a i koristi se za automatsko podešavanje sistema u skladu sa različitim zahtevima i uslovima rada. Paket tuned uključuje različite komponente za upravljanje i optimizaciju sistema.

tuned-adm profile latency-performance postavlja profil optimizacije na latency-performance. Ovaj profil je dizajniran za minimiziranje latencije, što je korisno za aplikacije koje zahtevaju visoke performanse i brzi odgovor, kao što su profesionalne audio i video aplikacije.

cpufreq-set je alat za upravljanje frekvencijom CPU-a. Opcija -r označava da se podešavanje primenjuje na sve CPU jezgre. Opcija -g performance postavlja režim rada CPU-a na performance. 

GOVERNOR="performance" u datoteci /etc/init.d/cpufrequtils postavlja režim rada CPU frekvencije na performance. Ovo je isto što i prethodno navedena komanda sa cpufreq-set, ali se menja konfiguracija koja se koristi prilikom pokretanja sistema. Promena u ovoj datoteci omogućava da se režim rada CPU-a na "performance" automatski primenjuje pri svakom pokretanju sistema.

CONCURRENCY=shell u datoteci /etc/default/rcS postavlja sistemsku varijablu koja kontroliše način na koji se skripte pokreću tokom faze pokretanja sistema. Kada je postavljena na shell, skripte se izvršavaju paralelno, što može smanjiti vreme potrebno za pokretanje sistema.

7. /etc/fstab podešavanja:
noatime, nodiratime: Ove opcije sprečavaju sistem da zapisuje vreme pristupa fajlovima i direktorijumima, što može smanjiti IO opterećenje, posebno na sporijim uređajima poput USB diskova ili SSD-ova.

8. /etc/init.d/boost - Turbo Boost za Intel procesore:
Ova skripta omogućava Turbo Boost opciju na Intel procesorima pomoću MSR registara. Turbo Boost povećava brzinu procesora kada je potrebno više snage za obavljanje zahteva (npr. prilikom audio obrade).

9. /etc/sysctl.conf - Sistemska podešavanja:
Ova datoteka postavlja niz sistemskih parametara za mrežu, memoriju i performanse procesora.
net.core.default_qdisc = fq

Postavlja "default queueing discipline" za mrežni interfejs na fq (Fair Queueing), što pomaže u boljoj distribuciji saobraćaja i smanjenju latencije, što je korisno za audio i mrežne aplikacije.
net.ipv4.tcp_congestion_control = bbr2

Postavlja BBR (Bottleneck Bandwidth and Round-trip propagation time) verziju 2 kao metodu kontrole zagušenja TCP protokola. Ovaj algoritam poboljšava performanse mreže i smanjuje latenciju.
net.ipv4.tcp_syncookies = 1

Aktivira zaštitu od SYN flood napada tako što koristi TCP syncookies. Ovo poboljšava bezbednost mrežnog steka.
net.ipv4.tcp_synack_retries = 2

Smanjuje broj pokušaja slanja SYN-ACK paketa tokom uspostavljanja TCP veze, što može ubrzati mrežne konekcije.
net.ipv4.tcp_syn_retries = 2

Smanjuje broj pokušaja slanja SYN paketa prilikom uspostavljanja veze. Ovo ubrzava inicijalizaciju TCP sesije.
net.ipv4.tcp_tw_reuse = 1

Dozvoljava ponovnu upotrebu TCP konekcija u TIME_WAIT stanju, čime se smanjuje opterećenje na sistemu prilikom otvaranja velikog broja konekcija u kratkom vremenskom periodu.
net.ipv4.ip_local_port_range = 1024 65535

Povećava opseg lokalnih portova dostupnih za korišćenje od strane aplikacija. Ovo omogućava većem broju konekcija da bude otvoreno istovremeno.
net.core.rmem_default = 8388608 i net.core.wmem_default = 8388608

Postavlja podrazumevanu veličinu memorijskog bafera za prijem (rmem) i slanje (wmem) mrežnih paketa na 8 MB. Veći baferi poboljšavaju performanse mreže.
net.core.rmem_max = 536870912 i net.core.wmem_max = 536870912

Maksimalna veličina memorijskog bafera za prijem i slanje mrežnih paketa postavljena je na 512 MB, što omogućava vrlo velike bafering kapacitete za mrežne aplikacije koje obrađuju veoma veliki saobraćaj.
net.ipv4.tcp_rmem = 8192 262144 536870912

Veličina TCP bafera za prijem podataka. Prva vrednost (8192) je minimalna veličina, druga (262144) je podrazumevana, a treća (536870912) je maksimalna. Ovo omogućava optimizovano korišćenje memorije u zavisnosti od opterećenja mreže.
net.ipv4.tcp_wmem = 4096 16384 536870912

Slično kao i kod tcp_rmem, ali za slanje podataka. Podesivi baferi omogućavaju bolju kontrolu nad mrežnim performansama.
net.core.optmem_max = 40960

Postavlja maksimalnu količinu memorije koja može biti dodeljena za opcije koje kontrolišu mrežni stek, na 40 KB.
net.core.bpf_jit_harden = 2

Omogućava dodatno učvršćivanje JIT (Just-In-Time) kompajliranja BPF (Berkeley Packet Filter) kodova za veću bezbednost. Ova vrednost od 2 pruža najviši nivo zaštite.
net.ipv4.tcp_low_latency = 1

Podiže performanse mreže u realnom vremenu tako što favorizuje nisku latenciju u odnosu na propusni opseg, što je korisno za aplikacije koje zahtevaju brzu obradu (kao što su audio serveri).
kernel.sched_latency_ns = 1000000

Podešava ukupnu latenciju raspoređivača procesa u nanosekundama. Ovo poboljšava reakciju sistema na zadatke sa visokim prioritetom.
kernel.sched_min_granularity_ns = 100000

Postavlja minimalni vremenski kvantum (najmanju jedinicu vremena) za raspoređivač procesa. Niže vrednosti omogućavaju bolji odziv sistema na kratke zadatke.
kernel.sched_wakeup_granularity_ns = 25000

Definiše minimalni interval između buđenja procesa u nanosekundama. Niže vrednosti omogućavaju brže reakcije na događaje koji zahtevaju hitne odgovore, poput zvuka.
kernel.sched_autogroup_enabled = 0

Onemogućava automatsko grupisanje zadataka. Ovo je korisno za optimizaciju performansi u realnom vremenu, posebno za audio aplikacije a koje imaju striktne zahteve u vezi sa latencijom.
vm.swappiness = 10

Smanjuje tendenciju sistema da koristi swap memoriju. Niža vrednost znači da će sistem preferirati korišćenje fizičke memorije, što je korisno za poboljšanje performansi audio i multimedijalnih aplikacija.
vm.vfs_cache_pressure = 10

Podešava koliko agresivno kernel odbacuje inode cache. Niže vrednosti zadržavaju više podataka u kešu, što poboljšava performanse I/O operacija.
vm.dirty_bytes = 335544320 i vm.dirty_background_bytes = 167772160

Podešava prag za "prljave" podatke (podaci koji nisu još zapisani na disk). Ove vrednosti osiguravaju da podaci ne budu zapisani na disk previše često, što smanjuje latenciju i poboljšava performanse sistema.
vm.dirty_writeback_centisecs = 1500

Definiše interval u kojem kernel proverava da li treba da započne zapisivanje prljavih podataka na disk. Viša vrednost smanjuje učestalost upisivanja podataka na disk, što može pomoći u smanjenju latencije.
vm.max_map_count = 262144

Povećava maksimalan broj mapa memorije (memory mappings) po procesu. Ovo je korisno za aplikacije koje rade sa velikim brojem datoteka ili memorijskih regiona, kao što su audio serveri.
fs.file-max = 9223372036854775807

Maksimalan broj otvorenih datoteka koje sistem može podržati. Postavljena je na vrlo visoku vrednost kako bi sistem mogao da podrži veliku količinu otvorenih fajlova i resursa.
fs.inotify.max_user_watches = 524288

Povećava maksimalan broj inotify nadgledanja fajlova po korisniku. Ovo je korisno za aplikacije koje intenzivno prate promene fajlova.
fs.inotify.max_queued_events = 65536

Povećava maksimalan broj događaja koji mogu biti postavljeni u red čekanja za inotify. Ovo pomaže u smanjenju latencije u aplikacijama koje nadgledaju promene u fajlovima.
kernel.pid_max = 4194304

Postavlja maksimalan broj PID-ova (procesnih identifikatora) na vrlo visoku vrednost, što omogućava sistemu da upravlja velikim brojem procesa.


Sve ove optimizacije podešavaju kernel i mrežni stek sistema tako da pružaju bolje performanse, manju latenciju, i veću efikasnost za aplikacije koje zahtevaju stabilnost i brzinu, kao što su audio serveri ili druge real-time aplikacije.

10. /etc/security/limits.conf - Ograničenja za procese:
Ova datoteka postavlja ograničenja za procese na nivou sistema kako bi se omogućilo dovoljno resursa za audio aplikacije.

soft/hard nproc: Postavlja maksimalan broj procesa po korisniku.
soft/hard nofile: Povećava broj maksimalno otvorenih fajlova.
memlock: Postavlja maksimalne vrednosti zaključavanja memorije za real-time procese.
Sve ove postavke zajedno optimizuju sistem za real-time audio obradu, omogućavajući smanjenje latencije, povećanje prioriteta audio procesa, i bolje korišćenje resursa sistema.

11 . Fstab podešavanja: Isključuje opcije kao što su "noatime" i "nodiratime" za filesystem, smanjujući nepotrebna ažuriranja pristupnih vremena fajlova, što može smanjiti opterećenje diska i poboljšati performanse.

inode_readahead_blks=0
inode_readahead_blks je parametar u konfiguraciji fajl sistema koji se koristi za optimizaciju performansi pri pristupu fajlovima. Ovaj parametar kontroliše broj blokova koji se unapred učitavaju u memoriju kada se pristupa inodima na disku.

inode je struktura podataka u fajl sistemu koja sadrži informacije o fajlu, kao što su veličina, vlasnik, dozvole i lokacija podataka na disku.

Kada je inode_readahead_blks=0, to znači da se neće unapred učitavati blokovi sa diska za inode. U praksi, ovo može smanjiti količinu memorije koja se koristi za keširanje inoda, što može biti korisno u sistemima sa velikim brojem malih fajlova gde unapred učitavanje može dovesti do nepotrebne potrošnje memorije.

Zašto koristiti 0? Postavljanjem inode_readahead_blks na 0, sistem može smanjiti upotrebu memorije i potencijalno poboljšati performanse u okruženjima gde je važno minimizovati keširanje, kao što su sistemi sa ograničenom memorijom ili oni koji koriste velike fajl sisteme sa velikim brojem fajlova.

Ukratko, inode_readahead_blks=0 je konfiguracija koja isključuje unapred učitavanje blokova inoda u memoriju, što može pomoći u optimizaciji performansi i korišćenju memorije na specifičnim sistemima gde se čuva veliki broj audio ili video fajlova.

12 . Log konfiguracija: Postoji optimizacija sistemskog logovanja kako bi se smanjio broj logova i njihov prostor za čuvanje, čime se štedi prostor i smanjuje I/O opterećenje.


Zaključak


Skripta obuhvata sveobuhvatnu kompleksnu konfiguraciju sistema usmerenu na poboljšanje performansi USB i audio reprodukcije sa naglaskom na nisku latenciju i real-time prioritete. Povećanje prioriteta za IRQ linije, podešavanje USB DAC-a, optimizacija kernela i sysctl parametara, kao i dodela real-time privilegija omogućavaju da se sistem prilagodi zahtevima visoko-performansnog audio okruženja.

Vrši balansiranje između maksimalne upotrebe resursa i sprečavanja preopterećenja zahteva kako bi se postigla optimalna performansa i stabilnost sistema.

Ova konfiguracija je posebno korisna za multimedijalne sisteme ili audio servere gde je stabilnost, brzina i niska latencija ključna za kvalitetnu reprodukciju.

-------

 

 

Mogu Vam reći da počinju da me plaše precizni odgovori koje u poslednje vreme daje ovaj robot.:sarcastic_hand:

 

Link to comment
Podeli na ovim sajtovima

Izgleda da je LATENCIJA sveta reč u audiu, i najlepše od svega je što su to merljive vrednosti i čovek može da vidi šta je uradio.

Isto to sam pitao i ja Gemini u vezi sa onim što Fidelizer radi sa Windowsom.

Interesantno je da mi je rekao da je bolje da on- Gemini I ja Sami "sredimo" latencija Windowsa bez Fidelizera i da ošišamo Windows.

Sve ovo što si uradio mislim da je 90% u Windows nemoguće jer je Windows nekako Black Box.

SnakeOil mnogo toga podešava, NARAVNO DALEKO MANJE NEGO TI scriptom između ostalog IRQ prioritete Kuja je to sve podešavao a ja ne.

Jednostavno sam shvatio da ne čujem.

Čujem bitne stvari poput tsc kernela ali procentualno jako malo u odnosu šta sve može da se menja.

E sad šta mi se ne dopada kod SnakeOil pa upravo to što svašta nešto možeš da menjas a nista ne MERIŠ sto autor sigurno radi. Zato nisam pristalica ad hoc izmena.

Ti bas i nisi takav demokrata zvuka iako mnogo vise stvari menjas i menjas ih po algoritmu koji se vidi. Naravno da bi i neko drugi mogao to menjati ali to zahteva znanje (nije ostavljeno na izvolite) u stilu promeni pa ces videti da li ti se dopada a audio memorija čoveka je oko minut. E to je anarhija jer menjanje postavki ad hoc Rusi ono osnovno filosofiju zvuka-pecat koji autor daje zvuku.

Rekoh kod tebe je drugacije. Mozes i menjas daleko vise stvari i JA NEMAM POTREBU DA VISE MENJAM JER SI TI SCRIPTOM ISPOSTOVAO SVE ZAHTEVE DA ZVUK BUDE BOLJI I VERUJEM I DA SI MERIO LATENCIJU SISTEMA I TO JE TO.

ŠTA TU VIŠE IMA DA SE MENJA? (jasno je da može izmenom script Ali nema smisla) već je urađeno.

Ja se držim onoga da previše slobode u demokratiji vodi ka anarhiji-losem zvuku a ti kad cinis izmene npr. u SnakeOil a NE MERIŠ LATENCIJU vec na uvce, na tom si putu.

Pravi rezon i jeste da optimizujes scriptom sistem na principima nauke o audiu (tako se jedino i moze videti zamisao ALGORITAM) vidis sta si uradio kroz izmerenu-smanjenje LATENCIJE sistema i to je to. Nema vise potrebe za izmenama a ako se čoveku sviđa zvuk sa VEĆOM latencijom MOZDA je pravi put izmena promeniti uši:D.

 

PS: Zato stalno i insistiram da sve sto treba korisnik da vidi je MConnect kojim se vine izbori da uzivas a ne da adhoc menjas jer ti se moze.

Miko kad uzmeš u ruke mobilni sa MConnect nema potrebe vise za menjanjem jer i ti tada postajes korisnik i prestajes da Mozes da menjas jer da bi menjao podrazumeva se da moraš da imaš i alat i instrumente da MERIŠ sta su te izmene prouzrokovale sto kada uzmeš mobilni nemaš kao MOGUCNOST jer tad počinje vreme za UZIVANJE.

Izmenjeno od Srecko
Link to comment
Podeli na ovim sajtovima

8 hours ago, Mikorist said:

Mogu Vam reći da počinju da me plaše precizni odgovori koje u poslednje vreme daje ovaj robot.:sarcastic_hand:

 

Pre neki mesec kad se pojavio novi Gemini, pocaste me njime na novom telefonu SGS24U (verovatno po nekom ugovoru Samsung -Google) i to u nekoj onoj visokoj verziji.

Probam ga par dana, i uplašim se. Kažem sinu, koji se bavi bas AI, i on mi kaze "samo prvi utisak, daleko je to ...... nekoliko godina da bi te uplašilo". I bio je u pravu, kad se udubiš, još je to daleko.

Juče, da bi probao ovo tvoje čudo Miko, kopiram ja fajlove WinSCP-om, u folder /Media, i klizne mi prst i ode mi moj folder koji sam kopirao ko zna gde.

Da ne bi istraživao, rekoh sad ću ja da pitam Gemini, postavim mu pitanje objasnim da sam zaboravio Linux potpuno i on izbaci stranicu opcija (mnogo je opširniji od ChatGPT i Copilot), napise komandu u formatu da je prepisem .... ma sve savršeno.

Pitam ga ja "Znaci samo da prepisem komandu u komandnoj liniji WinSCP?" jer vidim da je izostavio sudo, Kaze da.

Prepisem ja komandu iako vidim nedostaje joj sudo na početku ali ko Velim zna on.

Kaze WinSCP ne postoji komanda ili sta vec ne sećam se. Slikam mu ja display I on počne da luduje. U kakav je haos upao bilo je neverovatno, uživao sam jedno 10 minuta nisam hteo da prekinem.

Neverovatno total Break Down, šta mi je sve predlagao. Poceo da mi piše na Švedskom, Izvinjava se, trazi stalno da mu ponovim kakav mi je problem u pitanju. Ja mu kažem trebalo je prvo da te nauče da pogledaš našu konverzaciju od danas a ne sve što ima o Linux, on se izvinjava, potpuni haos:D.

Ja u jednom momentu pomislim "pa ovo nije ni za k..".

Naravno dodam sudo I u milisekundi pronađem folder i premestim ga 

Posle mu napisem da je pogresio i on napise onu floskulu koju stalno ponavlja "I am large language model ....."

Verovao ili ne bilo mi je žao robota.

Link to comment
Podeli na ovim sajtovima

Miko, probaj BubbleUPnP app (košta siću 749 RSD).

Vizuelno lepše izgleda (tebi nije bitno) i ima mnogooooo više stvari koje se mogu podesiti a čini mi se da bi ti bila korisna i pri podešavanju Linux jer vidi gotovo sve što se podesi na OS u vezi sa players, renderers ...

Link to comment
Podeli na ovim sajtovima

Što se tiče kodiranja i pronalaženja grešaka - ChatGTP 4.0 je vrh. Ne znam za druge oblasti.

Gemini ne ume ni pola od toga....

Problem je što već sad ima ograničenje. Nije besplatno i ako potrošiš limit ideš na verziju 3.0 ili 4.0 mini.

Tera te da plaćaš....  

Link to comment
Podeli na ovim sajtovima

14 minutes ago, Leonardo said:

Ispostaviće vam "račun" kad tad. Mašina je to, i pre ili kasnije će postati osvetoljubiva naprava koja sama kreira primarni cilj kao Hal9000.

Po svoj prilici u nekim novijim okolnostima će se smejati mašine a ne mi, ali niko nikog neće sažaljevati.  :thumbsup:  

 

10 minutes ago, Mikorist said:

Što se tiče kodiranja i pronalaženja grešaka - ChatGTP 4.0 je vrh. Ne znam za druge oblasti.

Gemini ne ume ni pola od toga....

Problem je što već sad ima ograničenje. Nije besplatno i ako potrošiš limit ideš na verziju 3.0 ili 4.0 mini.

Tera te da plaćaš....  

Znam, BP sinova firma je kupila njihovu kompanijski opciju i pre jedno pola godine mi je on rekao DA JE IZNENAĐEN koliko je dobar ChatGPT u ČAK PREDLAGANJU POTPUNO GOTOVIH DELOVA KODA, naravno ne uvek (sačuvaj Bože).

Izmenjeno od Srecko
Link to comment
Podeli na ovim sajtovima

13 minutes ago, Leonardo said:

Ispostaviće vam "račun" kad tad. Mašina je to, i pre ili kasnije će postati osvetoljubiva naprava koja sama kreira primarni cilj kao Hal9000.

Po svoj prilici u nekim novijim okolnostima će se smejati mašine a ne mi, ali niko nikog neće sažaljevati.  :thumbsup:  

Dobar dan.

Nisam Vam ništa napisao baš odavno iako pratim Vaše postove, iz kojih vidim da je sve OK.

Da se našalim.

Ja se nadam da ću poživeti dovoljno da Elon proširi svoje aktivnosti i na SRBIJU i da dobijem taj implant. Tada će stvarno biti opasno:D.

Izvinjavam se, deo ovog posta je otišao u drugi post.

Izmenjeno od Srecko
Greška
Link to comment
Podeli na ovim sajtovima

@Mikorist slušam ovo tvoje čudo upravo!

Fenomenalno zvuči za MOJE UŠI (da ne bi započeli nepotrebnu debatu:D).

Ja ponovih nekoliko puta da si ovo skuckao "PREKO NOĆI" zato što u toj mojoj opservaciji nisam preterano razmišljao o zvuku (znaš da sam odusevljen IT delom realizacije) a ako pogledamo iz te perspektive SCRIPT koji si prikazao je ustvari rezultat rada od godinu dve dana na diyAudio distrou koji si uz neminovna prilagođavanja mogao da iskoristiš i iskoristio za ovaj FAI-DISTRO.

Još jednom, kapa dole, MAJSTOR SI !

Link to comment
Podeli na ovim sajtovima

Kreiraj nalog ili se prijavi da daš komentar

Potrebno je da budeš član DiyAudio.rs-a da bi ostavio komentar

Kreiraj nalog

Prijavite se za novi nalog na DiyAudio.rs zajednici. Jednostavno je!

Registruj novi nalog

Prijavi se

Već imaš nalog? Prijavi se ovde

Prijavi se odmah
  • Članovi koji sada čitaju   0 članova

    • Nema registrovanih članova koji gledaju ovu stranicu
×
×
  • Kreiraj novo...