LINUXTALKS.CO

FreeBSD install update upgrade [ основной тред по FreeBSD ]

 ,

L


0

1

@odalist, ты любишь такие посты, так что держи.

Прожив годик на F12, освоился и понял, что аналога LVM+cryptsetup+XFS на ней нет. Решил переехать на ZFS (который теперь взят из ZFS на Linux и благодаря этому появилось шифрование). Так что вот последних несколько дней занимался апдейтом основной домашней машины с 12.4 на 13.1 и просидел без Хов в голой консоли.

Первый день, еще в тот четверг, переносил данные.

>>> cut tech detail 
Хотелось мне выяснить, как лучше выравнивать чанки ZFS на хардварном рейде (хорошо, что у нас не нет @iZEN, а то его опять бы кондрашка хватила). Пробовал задавать геометрию штратными олд-скульными UNIX-средствами, пробовал создавать zpool сразу с разными ashift. У меня была классная теория, что чанки ZFS размером 128k нужно бить кусками по количеству страйпов...
Пробовал отключать чексумы...
<<< cut

В итоге оказалось, что все мои теории - это все фигня. Зато я обнаружил, что год назад выключил кеши на запись на контроллере и поэтому у меня все тормозит. Так что могу гордо заявить, что решил свою проблему:

всеравно у меня звук на FreeBSD лагает:( фиг знает, в чем дело.

@JamesHolden, звук в порядке.

@odalist, заодно решил проблему, когда у меня из-за тормозов дисковой системы переполнялся журнал (не ZFS! одно из изобретений FreeBSD в махровые дни) на диске и машина падала. официально defined поведение [ развел лапами ]

Пока я с этим упражнялся на удаленной машине все три дня копилировались пакеты. Под это дело пришлось добавить еще 16Gb swap: rust, llvm…

@cocucka классический OOM на FreeBSD отстреливает любые соседний процессы, отсюда жалобы на форум, я думаю. Зачем вы, программисты, с нами это делаете и придумываете такие алгоритмы? … [ развел лапами ]

@odalist, кстати, chrome вообще сутки собирался. И это на 3.4Ghz!

Вцелом все проапдейтилось и что мне нравится на FreeBSD, с точками отката.

witch ~ # bectl list
BE                                Active Mountpoint Space Created
12.4-RELEASE_2023-02-12_010451    NR     /          13.7G 2023-02-12 01:04
12.4-RELEASE_2023-02-16_145134    -      -          91.0M 2023-02-16 14:51
13.1-RELEASE-p6_2023-02-16_145625 -      -          3.97M 2023-02-16 14:56
13.1-RELEASE-p6_2023-02-18_123041 -      -          4.54M 2023-02-18 12:30

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

Что сломалось?

Ну, во-первых, сломался ping! Это теперь программа с двумя ключами -4/-6, но если не задать ни один, она работать не может. Без гугла это никак не выяснить:( Так что обходился без пинга. Теперь вот придется делать обвзяку из альясов, выяснять версию FreeBSD, добавлять ключ… Можно еще багрепорт отправить…

Самое главное сломался OpenVPN. Почему он не может теперь создавать интерфейс, я так и не понял. Но так как я не догадался сначала установить nvidia video driver, а начал компилять все пакеты одной пачкой, то три дня прожил без гугла.

И вообще OpenVPN меня всегда (лет 15+ примерно) подбешивал кучей опций и сложностью настроек на разных платформах, но WG (@Kaschenko) во FreeBSD еще не появился. Но, когда сидишь без интернета, плюс в том, что начинаешь читать мануалы. Я случайно увидел простой man по подянитю IPSec … и поднял!

А чего? Как работает IPSec я имел представление, но мне всегда казалось тупостью два его возможных режима работы. А вышло довольно круто! Если OpenVPN необходим хендшейк для установления сессии, то здесь все выглядит элегантно.

ipsec0: flags=8151<UP,POINTOPOINT,RUNNING,PROMISC,MULTICAST> metric 0 mtu 1400
	tunnel inet XX.XX.XX.XX --> YY.YY.YY.YY
	inet AA.AA.AA.AA --> BB.BB.BB.BB netmask 0xffffff00
	groups: ipsec
	reqid: 200
	fib: 1
	nd6 options=9<PERFORMNUD,IFDISABLED>

FreeBSD тут сразу радует, что можно из ifconfig сразу дружить интерфейс с таблицами маршрутизации. И работать теоретически должно быстрей.

Авторы FreeBSD подложили грабли и засунулу sysctl хуков, которые изымают часть сетевых пакетов из оборота. Поотлаживав в свое удовольствие, я наконец догадался найти (а вы помните, что браузер еще компилируется, так что нашел сам без гугла, по логике вещей).

net.inet.ipsec.filtertunnel

Осталось перенести все данные и выяснить, насколько действительно проседает скорость ZFS, если заполнить весь диск.

★★☆☆☆
Ответ на: комментарий от JamesHolden

поддержки приложенией пока нет, так что смысла ставить его нет. кроме того, он сложный в настройке вроде. а регулятор громкости идет от PA, так что еще и PA ставить.

crypt    
★★☆☆☆
FreeBSD / Chrome
Ответ на: комментарий от Kaschenko

он мне крякозяблы показывал. гугл-то гад по-русски все выдавал без vpn. шрифт в консоли должен быть юникодный или я не знаю.

crypt    
★★☆☆☆
Последнее исправление: crypt (всего исправлений: 2)

FreeBSD / Chrome
Ответ на: комментарий от crypt

Вообще меня интересует вопрос минимально достижимой задержки в обработке звука на ядре FreeBSD (в сравнении с Linux). Но самому ставить фряху лень, а для просьб кого-то это слишком сложна.

JamesHolden    
★★★★★★
Linux / Chrome
Ответ на: комментарий от JamesHolden

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

во FreeBSD довольно большой набор тюнинга через sysctl

в том числе смотри https://man.freebsd.org/cgi/man.cgi?query=snd&sektion=4

hw.snd.feeder_rate_round
	     Sample rate rounding threshold, to	avoid large prime division at
	     the cost of accuracy.  All	requested sample rates will be rounded
	     to	the nearest threshold value.  Possible values range between 0
	     (disabled)	and 500.  Default is 25.

     hw.snd.latency
	     Configure the buffering latency.  Only affects applications that
	     do	not explicitly request blocksize / fragments.  This tunable
	     provides finer granularity	than the hw.snd.latency_profile	tun-
	     able.  Possible values range between 0 (lowest latency) and 10
	     (highest latency).

     hw.snd.latency_profile
	     Define sets of buffering latency conversion tables	for the
	     hw.snd.latency tunable.  A	value of 0 will	use a low and aggres-
	     sive latency profile which	can result in possible underruns if
	     the application cannot keep up with a rapid irq rate, especially
	     during high workload.  The	default	value is 1, which is consid-
	     ered a moderate/safe latency profile.
crypt    
★★☆☆☆
Последнее исправление: crypt (всего исправлений: 3)

FreeBSD / Chrome
Ответ на: комментарий от JamesHolden

у меня стоит pipewire, но от него почти ничего не зависит:

Checking integrity... done (0 conflicting)
Deinstallation has been requested for the following 7 packages (of 0 packages in the universe):

Installed packages to be REMOVED:
	fluidsynth: 2.3.1
	pipewire: 0.3.62
	sdl2: 2.26.1
	sdl2_image: 2.6.2_2
	sdl2_mixer: 2.6.2_1
	sdlpop: 1.22
	wine: 7.0.1,1

Number of packages to be removed: 7

The operation will free 338 MiB.

Proceed with deinstalling packages? [y/N]
crypt    
★★☆☆☆
Последнее исправление: crypt (всего исправлений: 1)

FreeBSD / Chrome
Ответ на: комментарий от crypt

ты на линуксе используешь специальные rt-ядра или нет?

Нет. У rt ядер вообще все плохо с задержками по звуку. Лучше всего работает ванильное ядро обычное, прямо с kernel.org. В арчевом ядре тоже какая-то фигня накручена, которая все ломает.

JamesHolden    
★★★★★★
Android / Chrome
Ответ на: комментарий от crypt

Проверить можно в принципе просто. При помощи вот этих latency опций выставлять все меньше и меньше буфер, потом запускать плеер обычный и проверять, нет ли щелчков/заиканий. На каком-то низком значении буфера начнутся проблемы при переключении окон, работе в браузере. Дальше - все отвалится, играть нормально перестанет. Вот это значение и интересует, минимальное на котором все ровно.

JamesHolden    
★★★★★★
Android / Chrome
Ответ на: комментарий от JamesHolden

я где-то читал PDF, что специально пробовали FreeBSD для звука, т.к. может быть лучше. так что если ты железо найдешь, можем тебе поставить для эксперимента. я так понимаю, без подключения каких-то девайсов физически ты задержку не проверишь.

crypt    
★★☆☆☆
FreeBSD / Chrome
Ответ на: комментарий от crypt

Да просто, тупо на встроенной звуковухе. Или на том что у тебя. Просто mp3 запусти в плеере и все.

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

JamesHolden    
★★★★★★
Android / Chrome
Ответ на: комментарий от JamesHolden

найди мне хоть одну программу, где я могу выставить размер буфера…

sndio

     -b nframes
             The buffer size of the audio device in frames.  A frame consists
             of one sample for each channel in the stream.  This is the number
             of frames that will be buffered before being played and thus
             controls the playback latency.  The default is 7680 or twice the
             block size (-z), if the block size is set.

это оно?

crypt    
★★☆☆☆
FreeBSD / Chrome
Ответ на: комментарий от JamesHolden
witch ~ # sndiod -e s24le -a on -j on -m play -c 0:0  -f rsnd/4  -L 10.10.10.5 -ddd -b 1
...
snd0 pst=cfg: software master level control enabled
0/output.level=127 at 1 -> dev_master:0: added
dec: s24le3, 2 channels
enc: s24le3, 1 channels
snd0 pst=cfg: 48000Hz, s24le3, play 0:0, 16 blocks of 341 frames
default/server.device=0:1 at 2 -> opt_dev:default/0: added

параметр -b The buffer size of the audio device in frames.

sndiod - это минималистичный PA. передает звук от плеера в OSS.

crypt    
★★☆☆☆
FreeBSD / Chrome
Ответ на: комментарий от JamesHolden

mpg123 имеет настройки буферизации. можно использовать это для теста. но ты уверен, что это вообще хоть что-то тестирует?

-b size, --buffer size
Use an audio output buffer of size Kbytes. This is useful to bypass short periods of heavy system activity, which would normally cause the audio output to be interrupted. You should specify a buffer size of at least 1024 (i.e. 1 Mb, which equals about 6 seconds of audio data) or more; less than about 300 does not make much sense. The default is 0, which turns buffering off.

crypt    
★★☆☆☆
FreeBSD / Chrome
Ответ на: комментарий от crypt

Там нет конкретных чисел. Вот это

Easily a 60+ ms latency penalty

мне ни о чем не говорит, я задержку в единицах миллисекунд измеряю, 60 для меня это вечность. Если человек такими величинами оперирует, значит у него совсем иные задачи.

JamesHolden    
★★★★★★
Android / Chrome
Ответ на: комментарий от crypt

С pipewire это было бы элементарно, а тут я не могу сказать не имея опыта работы с этим.

По хорошему тогда надо daw систему запускать, там все чётко настраивается, но я не буду тебя этим напрягать.

JamesHolden    
★★★★★★
Android / Chrome
Ответ на: комментарий от JamesHolden

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

crypt@witch ~ $ pipewire
[W][28840.210335] mod.rt       | [     module-rt.c:  278 pw_rtkit_check_xdg_portal()] Can't find xdg-portal: (null)
[W][28840.210368] mod.rt       | [     module-rt.c:  991 pipewire__module_init()] found session bus but no portal
[W][28840.210962] mod.rt       | [     module-rt.c:  297 translate_error()] RTKit error: org.freedesktop.DBus.Error.ServiceUnknown
[W][28840.210996] mod.rt       | [     module-rt.c:  623 set_nice()] could not set nice-level to -11: No such file or directory
[W][28840.211149] mod.rt       | [     module-rt.c:  297 translate_error()] RTKit error: org.freedesktop.DBus.Error.ServiceUnknown
[E][28840.211410] mod.protocol-native | [module-protocol-:  689 init_socket_name()] server 0x8018b5640: name pipewire-0 is not an absolute path and no runtime dir found. Set one of PIPEWIRE_RUNTIME_DIR, XDG_RUNTIME_DIR or USERPROFILE in the environment
[E][28840.211465] pw.conf      | [          conf.c:  595 load_module()] 0x801887000: could not load mandatory module "libpipewire-module-protocol-native": No such file or directory
[E][28840.211945] default      | [      pipewire.c:  125 main()] failed to create context: No such file or directory

этому комбайну нужно много всего для работы. xdg-portal какой-то…

crypt    
★★☆☆☆
Последнее исправление: crypt (всего исправлений: 2)

FreeBSD / Chrome
Ответ на: комментарий от crypt

Там придется проект весь настраивать и добавлять дорожки чтобы проверить, наверное не стоит. Просто погуглю инфу, должен же кто-то приводить цифры.

JamesHolden    
★★★★★★
Android / Chrome
Ответ на: комментарий от JamesHolden

а ставить-то какой софт? ты скажи, я хоть посмотрю.

https://www.youtube.com/watch?v=fNALnFIfenM

на 13.50 есть настройки latency

в т.ч.

hw.usb.uaudio.buffer_ms
crypt    
★★☆☆☆
Последнее исправление: crypt (всего исправлений: 1)

FreeBSD / Chrome
Ответ на: комментарий от JamesHolden

Слушай, а у фряхи какой флешечный livecd есть?

официально нет, во фрибзд все не по-детски, консольный инстал базовой серверной системы в 1,5 гб, но школьники что-то там пробуют, я не в курсе.

https://www.linux.org.ru/gallery/screenshots/17124879

эти live системы еще и отставать от релизов могут.

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

FreeBSD / Chrome
Ответ на: комментарий от crypt

Все равно, зараза, они толком не пишут какой ставят буфер. Строка запуска jack у него ввобще без опции для буфера. В virtual_oss он ставит 384, вроде. А я ставлю 64 и то это много, потому что каличный ноут у меня. А так 32 нормально у людей.

Ну как-то 384 вообще печально выглядит.

Если я правильно понял, конечно.

JamesHolden    
★★★★★★
Android / Chrome
Ответ на: комментарий от JamesHolden

Ну как-то 384 вообще печально выглядит.

я сейчас поставил 10 и плеер играет. действительно тут нужно весь путь прослеживать.

crypt    
★★☆☆☆
FreeBSD / Chrome
Ответ на: комментарий от JamesHolden

В virtual_oss он ставит 384, вроде. А я ставлю 64 и то это много, потому что каличный ноут у меня. А так 32 нормально у людей.

а ты в чем это ставишь? хочу почитать, что за параметр.

crypt    
★★☆☆☆
FreeBSD / Chrome
Ответ на: комментарий от crypt

Можешь попробовать запустить Ardour и создать пустой проект (он сразу это и предложит сам). Он при этом предложит выбрать звуковую систему (возможно там oss или sndio доступно) и выставить величину буфера. А потом он с этими настройками запустится, и будет видно тянет или нет.

Я ставлю в pipewire. Его же можно и в Ardour выставить, это одно и то же.

JamesHolden    
★★★★★★
Последнее исправление: JamesHolden (всего исправлений: 2)

Linux / Chrome
Ответ на: комментарий от JamesHolden

я знаешь, что попробую… я попробую создать live-образ для записи на флешку, скажем 7-8 гигов и дам тебе его скачать.

это же по сути просто образ системы будет.

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

FreeBSD / Chrome
Ответ на: комментарий от JamesHolden

да не за что. я просто сделаю систему с Ardour и какой-нибудь мини DE, но все sysctl ты уже сам должен будешь по мануалам настраивать. какая у тебя там видеокарта?

crypt    
★★☆☆☆
FreeBSD / Chrome