LINUX.ORG.RU

Что сохраняется при перезагрузке?

 ,


0

1

В общем суть. Получилось сильно улучшить звук. Написал скрипт для init.d, и улучшил его потом. Но проблема в том, что второй не дает со старта тот самый звук, а даже хуже, чем первый. Но если сначала включить первый, а поменять на второй и перезагрузиться - то безотказно работает, я слышу тот самый звук. Я хочу разобраться, дело в привыкании к первому перед вторым, или все же перезагрузка что-то дает. Меняю переменные, которые можно увидеть в sysctl -a, и приоритеты IRQ, ну и пару конфигов. Мне интересно, оставляет ли после себя какой-то след предыдущий запуск, или все равно что холодный пуск?

Ответ на: комментарий от Anoxemian

Ну, я рассматривал эту версию. Но я больше думаю не на цап, а на усилитель. Действительно, когда включаешь первое, оно за 3 минуты становится все лучше и лучше. Но я думаю, дело в привыкании, а не прогреве.

ifajoev_giasid
() автор топика
Ответ на: комментарий от Anoxemian

«не-не, сам посуди, кондеры на холодную и кондеры в предбабахном слстоянии» Да неее… Когда за пускаешь сразу второе, оно лучше не становится (или оооочень медленное). А первое работает как трамплин для второго - сразу слышно. Потом сколько угодно слушай - эффект не пропадает.

ifajoev_giasid
() автор топика
Ответ на: комментарий от Anoxemian

«тогда конфиги в студию» - значения поменяю (это секрет), но сами конфиги оставлю как есть.

Стартовый

#! /bin/sh
### BEGIN INIT INFO
# Provides: reboot_change
# Required-Start:
# Required-Stop:
# Default-Start:2 3 4 5
# Default-Stop:0 1 6
# Short-Description: change audio-files
# Description:
### END INIT INFO

case "$1" in
start)
#sudo cp /home/music/reboot_change/mpd/3.1.conf /etc/mpd.conf
sudo cp /etc/mpd.conf.save38 /etc/mpd.conf
sudo cp /home/music/reboot_change/alsa/alsa.conf.9apr /usr/share/alsa/alsa.conf

sleep 20
sudo sh -c "sudo -s /usr/bin/systemctl restart alsa-restore.service"
sleep 5
sudo sh -c "sudo -s /usr/bin/systemctl restart alsa-state.service"
sleep 5
#sudo sysctl -w dev.hpet.max-user-freq=4135
#sudo sysctl -w vm.overcommit_memory=0

sudo sysctl -w vm.overcommit_memory=2
sudo sysctl -w vm.overcommit_ratio=42
sudo sysctl -w dev.hpet.max-user-freq=2312
sudo sysctl -w vm.admin_reserve_kbytes=1223
sudo sysctl -w vm.vfs_cache_pressure=1234
#sudo sysctl -w vm.dirty_background_ratio=3
#sudo sysctl -w vm.dirty_ratio=26
#sudo sysctl -w vm.extfrag_threshold=677

sleep 10
sudo chrt -f -p 97 $(pgrep -f "rtc0")
sudo chrt -f -p 99 $(pgrep -f "snd_hda")
sudo chrt -f -p 98 $(pgrep -f "i801")
sudo chrt -f -p 99 $(pgrep -f "mei_me")
sudo chrt -f -p 95 $(pgrep -f "ahci")
sudo chrt -f -p 45 $(pgrep -f "xhci")
#sudo chrt -f -p 40 $(pgrep -f "ehci")
sudo chrt -o -p 0 $(pgrep -f "ehci")
sudo renice -n -11 $(pgrep -f "ehci")
sudo chrt -o -p 0 $(pgrep -f ".-ath9k")
sudo renice -n -12 $(pgrep -f ".-ath9k")
sudo chrt -f -p 0 $(pgrep -f ".-acpi")
sudo renice -n 10 $(pgrep -f ".-acpi")

#sudo renice -n 0 $(pgrep -n vfio-irq)
#sudo renice -n 0 `pidof -s acpi_thermal_pm`
#sudo renice -n 0 $(pgrep -n charger_manager)

sleep 5
#sudo sh -c "sudo -s /usr/bin/systemctl --system restart mpd"
sudo -s /usr/bin/systemctl --system restart mpd
;;
stop)
#sudo mpc -p 5555 clear && sudo mpc -p 5555 add "[0000]/1.mp3" && sudo mpc -p 5555 play
sudo cp /home/music/reboot_change/off/mpd.service /usr/lib/systemd/system/mpd.service && sudo cp /home/music/reboot_change/sysctl/sysctl_v17.conf /etc/sysctl.conf
sleep 2
;;
esac

Улучшенный

#! /bin/sh
### BEGIN INIT INFO
# Provides: reboot_change
# Required-Start:
# Required-Stop:
# Default-Start:2 3 4 5
# Default-Stop:0 1 6
# Short-Description: change audio-files
# Description:
### END INIT INFO

case "$1" in
start)
#sudo cp /home/music/reboot_change/mpd/3.1.conf /etc/mpd.conf
sudo cp /etc/mpd.conf.save38 /etc/mpd.conf
sudo cp /home/music/reboot_change/alsa/alsa.conf.9apr /usr/share/alsa/alsa.conf
#sleep 10
#sudo renice -n 0 $(pgrep -n vfio-irq)
#sudo renice -n -7 $(pgrep -n 'rcu_gp')
sleep 20
sudo sh -c "sudo -s /usr/bin/systemctl restart alsa-restore.service"
sleep 5
sudo sh -c "sudo -s /usr/bin/systemctl restart alsa-state.service"
sleep 5
#sudo sysctl -w dev.hpet.max-user-freq=4135
#sudo sysctl -w vm.overcommit_memory=0

sudo sysctl -w vm.overcommit_memory=0
sudo sysctl -w vm.overcommit_ratio=69
sudo sysctl -w dev.hpet.max-user-freq=6346
sudo sysctl -w vm.admin_reserve_kbytes=1664
sudo sysctl -w vm.vfs_cache_pressure=530
#sudo sysctl -w vm.dirty_background_ratio=3
#sudo sysctl -w vm.dirty_ratio=26
#sudo sysctl -w vm.extfrag_threshold=677

sleep 10
sudo chrt -f -p 97 $(pgrep -f "rtc0")
sudo chrt -f -p 99 $(pgrep -f "snd_hda")
sudo chrt -f -p 98 $(pgrep -f "i801")
sudo chrt -f -p 99 $(pgrep -f "mei_me")
sudo chrt -f -p 95 $(pgrep -f "ahci")
sudo chrt -f -p 44 $(pgrep -f "xhci")
sudo chrt -o -p 0 $(pgrep -f "ehci")
sudo renice -n -11 $(pgrep -f "ehci")
sudo chrt -o -p 0 $(pgrep -f ".-ath9k")
sudo renice -n -12 $(pgrep -f ".-ath9k")
sudo chrt -o -p 0 $(pgrep -f ".-acpi")
sudo renice -n 10 $(pgrep -f ".-acpi")
sudo chrt -o -p 0 $(pgrep -n ksoftirq)
sudo renice -n 9 $(pgrep -n ksoftirq)
sudo chrt -f -p 44 $(pgrep -f "ehci")

#sudo renice -n 0 $(pgrep -n vfio-irq)
#sudo renice -n 0 `pidof -s acpi_thermal_pm`
#sudo renice -n 0 $(pgrep -n charger_manager)

sleep 5
#sudo sh -c "sudo -s /usr/bin/systemctl --system restart mpd"
sudo -s /usr/bin/systemctl --system restart mpd
;;
stop)
#sudo mpc -p 5555 clear && sudo mpc -p 5555 add "[0000]/1.mp3" && sudo mpc -p 5555 play
sudo cp /home/music/reboot_change/off/mpd.service /usr/lib/systemd/system/mpd.service && sudo cp /home/music/reboot_change/sysctl/sysctl_v17.conf /etc/sysctl.conf
sleep 2
;;
esac
ifajoev_giasid
() автор топика
Ответ на: комментарий от ifajoev_giasid

Что видно сразу: ты играешься с поведением работы кэша, а это прямо влияет на звук. Дело в том, что с отключением питания, наполнение памяти как количественное, так и качественное не меняется, а пишется поверх старого состояния. Видимо, этот эффект ты и поймал инкрементальным изменением конфигурации.

Anoxemian ★★★★★
()
Ответ на: комментарий от Anoxemian

разница большая! Поэтому и такая команда. просто команда ничего не дает. А так звук лучше!! alsa.conf весь не влезает, но я дальше ничего и не менял. У меня их много разных, я сохраняю. Один на другой менял раньше в конфигах после запуска. Потом стал перебирать и остановился на этом.

#
#  ALSA library configuration file
#

# pre-load the configuration files

#@hooks [
#	{
#		func load
#		files [
#			{
#			@func concat
#				strings [
#				{ @func datadir }
#					"/alsa.conf.d/"
#				]
#			}
#			"/etc/asound.conf"
#			"~/.asoundrc"
#		]
#		errors false
#	}
#]

# load card-specific configuration files (on request)

#cards.@hooks [
#	{
#		func load
#		files [
#			{
#				@func concat
#				strings [
#					{ @func datadir }
#					"/cards/aliases.conf"
#				]
#			}
#		]
#	}
#	{
#		func load_for_all_cards
#		files [
#			{
#				@func concat
#				strings [
#					{ @func datadir }
#					"/cards/"
#					{ @func private_string }
#					".conf"
#				]
#			}
#		]
#		errors false
#	}
#]

#
# defaults
#

# show all name hints also for definitions without hint {} section
defaults.namehint.showall off
# show just basic name hints
defaults.namehint.basic on
# show extended name hints
defaults.namehint.extended off
#
defaults.ctl.card PCH
defaults.pcm.card 0
defaults.pcm.device 0
defaults.pcm.subdevice 1
defaults.pcm.nonblock 1
defaults.pcm.compat 0
#defaults.pcm.minperiodtime 5000		# in us
defaults.pcm.ipc_key 5678293
defaults.pcm.ipc_gid audio
defaults.pcm.ipc_perm 0660
#defaults.pcm.dmix.max_periods 0
#defaults.pcm.dmix.rate 48000
#defaults.pcm.dmix.format "unchanged"
#defaults.pcm.dmix.card defaults.pcm.card
#defaults.pcm.dmix.device defaults.pcm.device
#defaults.pcm.dsnoop.card defaults.pcm.card
#defaults.pcm.dsnoop.device defaults.pcm.device
defaults.pcm.front.card defaults.pcm.card
defaults.pcm.front.device defaults.pcm.device
defaults.pcm.rear.card defaults.pcm.card
defaults.pcm.rear.device defaults.pcm.device
#defaults.pcm.center_lfe.card defaults.pcm.card
#defaults.pcm.center_lfe.device defaults.pcm.device
#defaults.pcm.side.card defaults.pcm.card
#defaults.pcm.side.device defaults.pcm.device
defaults.pcm.surround21.card defaults.pcm.card
defaults.pcm.surround21.device defaults.pcm.device
defaults.pcm.surround40.card defaults.pcm.card
defaults.pcm.surround40.device defaults.pcm.device
defaults.pcm.surround41.card defaults.pcm.card
defaults.pcm.surround41.device defaults.pcm.device
defaults.pcm.surround50.card defaults.pcm.card
defaults.pcm.surround50.device defaults.pcm.device
defaults.pcm.surround51.card defaults.pcm.card
defaults.pcm.surround51.device defaults.pcm.device
defaults.pcm.surround71.card defaults.pcm.card
defaults.pcm.surround71.device defaults.pcm.device
defaults.pcm.iec958.card defaults.pcm.card
defaults.pcm.iec958.device defaults.pcm.device
defaults.pcm.modem.card defaults.pcm.card
defaults.pcm.modem.device defaults.pcm.device
# truncate files via file or tee PCM
defaults.pcm.file_format	"raw"
defaults.pcm.file_truncate	true
defaults.rawmidi.card 0
defaults.rawmidi.device 0
defaults.rawmidi.subdevice -1
defaults.hwdep.card 0
defaults.hwdep.device 0
defaults.timer.class 2
defaults.timer.sclass 0
defaults.timer.card 0
defaults.timer.device 0
defaults.timer.subdevice 0

#
#  PCM interface
#

# redirect to load-on-demand extended pcm definitions
pcm.cards cards.pcm

pcm.default cards.pcm.default
pcm.sysdefault cards.pcm.default
pcm.front cards.pcm.front
#pcm.rear cards.pcm.rear
pcm.center_lfe cards.pcm.center_lfe
#pcm.side cards.pcm.side
pcm.surround21 cards.pcm.surround21
pcm.surround40 cards.pcm.surround40
pcm.surround41 cards.pcm.surround41
pcm.surround50 cards.pcm.surround50
pcm.surround51 cards.pcm.surround51
pcm.surround71 cards.pcm.surround71
pcm.iec958 cards.pcm.iec958
pcm.spdif iec958
pcm.hdmi cards.pcm.hdmi
pcm.dmix cards.pcm.dmix
pcm.dsnoop cards.pcm.dsnoop
#pcm.modem cards.pcm.modem
#pcm.phoneline cards.pcm.phoneline
ifajoev_giasid
() автор топика
Ответ на: комментарий от Anoxemian

«с поведением работы кэша, а это прямо влияет на звук.» - честно говоря, я мало понимаю что происходит, просто на слух долго искал свой звук. Сейчас я его уже нашел, ничего не хочу менять. Но вот именно перезагрузка напрягает слегка. Хотел избавиться, сделал конфиг комбинированный (чтобы от второго брало только то, что меняется, и перезапуск плеера), но… На слух разница если и есть, то звук не тот! А именно с перезагрузкой сказочный!

ifajoev_giasid
() автор топика
Ответ на: комментарий от Anoxemian

А почему оно должно читаться дважды? Просто я один раз ошибся (у меня мышка старая, при вставке 2 раза вставил одно и то же в альса руками, и было лучше). Потом нашел части, которые можно вставлять, и сделал еще лучше, но это именно для конфига, который был на тот момент, а не для этого.

music@music-VM42:~$ strace --trace openat aplay -L 2>&1 | grep alsa.conf
openat(AT_FDCWD, "/usr/share/alsa/alsa.conf", O_RDONLY) = 3
openat(AT_FDCWD, "/usr/share/alsa/alsa.conf.d/", O_RDONLY|O_NONBLOCK|O_CLOEXEC|O                                                                      _DIRECTORY) = 3
openat(AT_FDCWD, "/usr/share/alsa/alsa.conf.d//10-samplerate.conf", O_RDONLY) =                                                                       3
openat(AT_FDCWD, "/usr/share/alsa/alsa.conf.d//10-speexrate.conf", O_RDONLY) = 3
openat(AT_FDCWD, "/usr/share/alsa/alsa.conf.d//50-arcam-av-ctl.conf", O_RDONLY)                                                                       = 3
openat(AT_FDCWD, "/usr/share/alsa/alsa.conf.d//50-jack.conf", O_RDONLY) = 3
openat(AT_FDCWD, "/usr/share/alsa/alsa.conf.d//50-oss.conf", O_RDONLY) = 3
openat(AT_FDCWD, "/usr/share/alsa/alsa.conf.d//50-pulseaudio.conf", O_RDONLY) =                                                                       3
openat(AT_FDCWD, "/usr/share/alsa/alsa.conf.d//60-upmix.conf", O_RDONLY) = 3
openat(AT_FDCWD, "/usr/share/alsa/alsa.conf.d//60-vdownmix.conf", O_RDONLY) = 3
openat(AT_FDCWD, "/usr/share/alsa/alsa.conf.d//98-usb-stream.conf", O_RDONLY) =                                                                       3
openat(AT_FDCWD, "/usr/share/alsa/alsa.conf", O_RDONLY) = 3
openat(AT_FDCWD, "/usr/share/alsa/alsa.conf.d/", O_RDONLY|O_NONBLOCK|O_CLOEXEC|O                                                                      _DIRECTORY) = 3
openat(AT_FDCWD, "/usr/share/alsa/alsa.conf.d//10-samplerate.conf", O_RDONLY) =                                                                       3
openat(AT_FDCWD, "/usr/share/alsa/alsa.conf.d//10-speexrate.conf", O_RDONLY) = 3
openat(AT_FDCWD, "/usr/share/alsa/alsa.conf.d//50-arcam-av-ctl.conf", O_RDONLY)                                                                       = 3
openat(AT_FDCWD, "/usr/share/alsa/alsa.conf.d//50-jack.conf", O_RDONLY) = 3
openat(AT_FDCWD, "/usr/share/alsa/alsa.conf.d//50-oss.conf", O_RDONLY) = 3
openat(AT_FDCWD, "/usr/share/alsa/alsa.conf.d//50-pulseaudio.conf", O_RDONLY) =                                                                       3
openat(AT_FDCWD, "/usr/share/alsa/alsa.conf.d//60-upmix.conf", O_RDONLY) = 3
openat(AT_FDCWD, "/usr/share/alsa/alsa.conf.d//60-vdownmix.conf", O_RDONLY) = 3
openat(AT_FDCWD, "/usr/share/alsa/alsa.conf.d//98-usb-stream.conf", O_RDONLY) =                                                                       3

ifajoev_giasid
() автор топика
Ответ на: комментарий от ifajoev_giasid

Ну вот, сам смотри, с двух загрузок, у тебя конфиги читаются 4 раза. По 2 раза за запуск. Значит надо твои улучшения засунуть в промежуток между первым и вторым чтением, тогда потребность в перезапуске отпадет.

Anoxemian ★★★★★
()
Ответ на: комментарий от Anoxemian

А почему оно читается по 2 раза (даже без перезагрузок)? Потому что я заменяю содержимое альса в скрипте? Так-то оно по сути там не меняется, такое же как и было (просто у меня много разных старых настроек, в которых другое альса, поэтому нужно было раньше ). Но видимо, при этом оно считывается??? Как мне поступить? Переставить замену альса.конф в конец перед запуском плеера?

p.s. кстати, сегодня я не 2 перезагрузки делал, а как раз наверное штуки 4 (экспериментировал). А может и больше.

ifajoev_giasid
() автор топика
Ответ на: комментарий от Anoxemian

Всё же я пока не понимаю, как запуски могут быть связаны. Ну запускалось альса в прошлом сеансе, разве это играет роль? Мне кажется, что всё должно быть как при первом запуске, разве нет?

ifajoev_giasid
() автор топика
Ответ на: комментарий от ifajoev_giasid

А!!! Ну все правильно! Я же делаю перезапуск альсы в скрипте, поэтому и по 2 раза. Первый раз само автоматически (намного раньше). Я пробовал mask для этих служб, чтобы они сами не запускались, но они не слушаются. Решил оставить как есть, просто еще раз перезапустить. В общем, надо пробовать перезапуск альсы переместить перед перезапуском самого плеера, если логика верна?

ifajoev_giasid
() автор топика
Ответ на: комментарий от ifajoev_giasid

Еще раз: при скидывании питания с ОЗУ, его состояние не меняется! Грубо говоря, новый конфиг пишется поверх старого. А наполнение старого остается где-то в ОЗУ. Вот протестируй - прогони между загрузками memtest86, чтобы гарантированно скинуть состояние памяти и послушай звук с первым профилем, повтори и прослушай со вторым. Отдельно, без замены.

Anoxemian ★★★★★
()
Ответ на: комментарий от Anoxemian

Я в восторге! Меня обычно тут высмеивали, я не ожидал, что мне помогут, и был уверен, что дело в привыкании. А вот оно чо, михалыч!!! А почему в итоге звук то лучше сейчас? Потому что первая альса где-то в памяти уже есть? Может быть, тогда третий раз ее надо запустить?

ifajoev_giasid
() автор топика
Ответ на: комментарий от Anoxemian

Я кстати, делал зачем перезапуск альсы в начале. Чтобы она запустилась, схавала переменные из sysctl.conf, а потом их поменять! Я так и не понял, но плеер и альса по разному читают переменные. Один фигурант из сисктл просто, второй из системы (это мое предположение). Когда я меняю на 4 единицы dev.hpet.max-user-freq, то звук получается объемный!!! Раньше я после перезагрузки менял файл sysctl и надо было увеличивать на 4, а теперь файл я не трогаю, а задаю переменную dev.hpet.max-user-freq командой на 4 меньше. То есть, что-то в системе неодинаково кушает эти параметры. Я сейчас попробую добавить в начале, и в конце перезапуски. Получится 3 перезапуска. Поглядим.

ifajoev_giasid
() автор топика
Ответ на: комментарий от Anoxemian

Я сейчас подумал, что смысла в первом перезапуске альсы не будет, потому что второй перезапуск всё испортит. Хотя, результат мне понравился! Еще бы понять, почему запуск альсы от системы дает звук лучше, чем от пользователя. Может быть, можно что-то еще так же перезапустить, чтобы звук был лучше? alsa-utils вот портит звук, если так сделать.

ifajoev_giasid
() автор топика
Ответ на: комментарий от Anoxemian

Мне показалось, что звук изменился, но такое ощущение, что с 3 запусками голова может закружиться))) Достаточно и так! Надо будет еще сравнить со старым способом. Но я очень доволен!

ifajoev_giasid
() автор топика
Ответ на: комментарий от ifajoev_giasid

Не, alsa-utils не субъектны к звуку, так как не имеют функций в работающей системе, т.е. не стартуют и сами ничего не делают, пока ты сам не запустишь. Влиять не могут значит.

Anoxemian ★★★★★
()
Ответ на: комментарий от ifajoev_giasid

почему запуск альсы от системы дает звук лучше, чем от пользователя

Ну так все верно, пространство пользователя изолировно от системы, погугли 100500 проблем при исполнении кода на стороне ядра и пользователя. Само переключение контекста ядро <-> пользователь занимает сотни процессорного времени. А альса, она именно ядерная. Исключать баги в коде тоже не стоит.

Anoxemian ★★★★★
()
Ответ на: комментарий от Anoxemian

К сожалению, звук портят (не буду спорить, просто много слушал и сравнивал, порядок перезапуска тоже влияет) С утилз звук как будто резкий с призвуком цинкового ведра на краях. Еще вот какой косяк нашел. У меня в альса.конф нет asound.conf и .asoundrc, но они влияют. Видимо плеер хавает, или альса сама. Но вопрос не в этом, а вот в чем. Я пишу вот так (пробовал много разного, так лучше всего и получилось случайно)

pcm.!default { type hw card PCH}
ctl.!default { type hw card 0}

Если сделать пробел перед }, то звук намного хуже. Если сделать в столбик, как везде встречается, тоже хуже

pcm.!default {
type hw
card PCH
}
ctl.!default { 
type hw 
card 0
}

Я вот думаю, он где-то правильно, а где-то неправильно читает полностью «PCH}», но это идет на пользу (что-то где-то не срабатывает в итоге). Иначе не могу объяснить.

ifajoev_giasid
() автор топика
Ответ на: комментарий от Anoxemian

Кстати, немного послушал, ну это не тот звук короче… Утомляет быстро. Тот не утомляет нисколько. Хотя сначала показалось одно и то же. Но по крайней мере, теперь буду знать, что не обязательно ждать 200 секунд и слушать перед перезапуском, чтобы услышать)))

ifajoev_giasid
() автор топика
Ответ на: комментарий от ifajoev_giasid

Это именно эффект памяти. Размещение в ОЗУ конфигов (ты же понимаешь, что оно при чтении там сохраняется в виде структур-блоков) неоднородно и раз от раза меняется именно из-за расположения конфигов на диске. А это ОЗУ, выше я тебе объяснил, что это не одно и то же в итоге. Так что все верно.

Anoxemian ★★★★★
()

Меняю переменные, которые можно увидеть в sysctl -a, и приоритеты IRQ, ну и пару конфигов.

О, вы перерегились? Снова «Баста, карапузики!», заход номер, эээ… N?

bugfixer ★★★★★
()
Ответ на: комментарий от ifajoev_giasid

Кстати, проблемы с работой ОЗУ еще бывают из-за окисления контактов. В таких случаях обычно вынимают планки и чистят их контакты обычным ластиком.

gruy ★★★★★
()
Ответ на: комментарий от master_0K

Что так радикально? Для начала предлагаю поставить аудио конденсаторы, дорожки проложить без кислородной медью. Дорожки прокладывать, обязательно не под острым углом, чтобы электроны не вылетали на поворотах.

Rossiks
()
Последнее исправление: Rossiks (всего исправлений: 1)

Вот есть у меня приятель один. Если бы он поставил линукс и начал настраивать звук, то тред получился бы примерно такой же. Но ему можно, он аутист и наркоман.

PS: Ни одного наркомана и тем более аутиста обидеть не хотел.

Loki13 ★★★★★
()