LINUX.ORG.RU
решено ФорумAdmin

У кого-нибудь получилось собрать zfs с -rt ядром?

 


0

2

У меня вылезает ошибка при сборке zfs-2.2.1 на ядре 6.1.0-13-rt-amd64:

ERROR: modpost: GPL-incompatible module zfs.ko uses GPL-only symbol 'migrate_disable'
ERROR: modpost: GPL-incompatible module zfs.ko uses GPL-only symbol 'migrate_enable'

Issue открыта с 2020 года.

Может быть, кто-нибудь осилил собрать модуль?

★★★★★

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

В этой «ошибке» нет никакой технической проблемы, только бюрократическая. Для обхода должно быть достаточно пропатчить ядро, заменив EXPORT_SYMBOL_GPL на EXPORT_SYMBOL для требуемых символов (migrate_disable и migrate_enable в данном случае).

UPD: Ну или поменять лицензию модуля zfs, как советуют выше.

Другое дело, что нет никакой гарантии, что получившаяся сборка будет работать без ошибок. И, скорее всего, код zfs не будет удовлетворять требованиям RT, т.е. система будет «реалтаймовой» только на словах.

annulen ★★★★★
()
Последнее исправление: annulen (всего исправлений: 1)
Ответ на: комментарий от annulen

т.е. система будет реалтаймовой чисто формально.

А она и без ZFS чисто формально реального времени. RT в лялексе нужен чтобы давать REALTIME приоритет процессам со стороны планировщика, в основном.

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

А она и без ZFS чисто формально реального времени

Нет, по крайней мере в теории без сторонних модулей должен быть soft-realtime. Харда не будет, но его и не обещал никто.

RT в лялексе нужен чтобы давать REALTIME приоритет процессам со стороны планировщика, в основном.

RT-приоритеты (SCHED_FIFO и SCHED_RR) прекрасно работают безо всяких RT-патчей.

annulen ★★★★★
()
Последнее исправление: annulen (всего исправлений: 2)
Ответ на: комментарий от annulen

Харда не будет, но его и не обещал никто.

Очевидно, что так.

Но недавно тут было другое мнение от @EXL: Linux не годится для авионики (комментарий). Хотя, если почитать те новости, то я так и не нашёл утверждения о наличии готового hard real-time.

В википедии:

MontaVista claims to support hard real-time tasks on embedded Linux as of MontaVista Linux 4.0, with response times as fast as other real-time operating systems. [4]

[4]: https://archive.today/20120904024528/http://www.linuxfordevices.com/c/a/News/MontaVista-touts-native-hard-realtime-Linux/

Не вижу никакого упоминания о релизе 4.0 с hard. Только о real-time версии.

Тем не менее, soft real-time - это несомненно значительное достижение.

без сторонних модулей

И теперь осталось повысить культуру написания драйверов, чтобы они всё не ломали. Из последнего, что помню, пришлось отключить Wi-Fi драйвер.

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

Я не настоящий сварщик, но все известные мне hard-rt решения с Linux использовали отдельное ядро RTOS, в/на котором работали RT-задачи, и параллельно с ними Linux, поверх которого уже крутились низкоприоритетные процессы. Возможно, и в MontaVista что-то подобное (но в той версии, которую я видел, было обычное ядро от RHEL с патчами, 2.4.20 кажется)

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

А смысл? RT-системы — это отдельная ниша, в которой не требуется поддержка какого попало оборудования.

annulen ★★★★★
()
Последнее исправление: annulen (всего исправлений: 1)
Ответ на: комментарий от annulen

А смысл? RT-системы — это отдельная ниша, в которой не требуется поддержка какого попало оборудования.

Если интересно - на обычном ядре у меня в OBS Studio получалась некачественная запись звука с микрофона (терялась часть звуков). На RT - всё ок.

Кстати, а в чём минус RT ядер (для десктопа)?

Harliff ★★★★★
() автор топика
Последнее исправление: Harliff (всего исправлений: 1)
Ответ на: комментарий от Harliff

в чём минус RT ядер

Потеря максимальной производительности. Конкретных цифр не скажу, но если я помню правильно, то в несколько раз.

vbcnthfkmnth123 ★★★★★
()
Последнее исправление: vbcnthfkmnth123 (всего исправлений: 2)
Ответ на: комментарий от Harliff

Если интересно - на обычном ядре у меня в OBS Studio получалась некачественная запись звука с микрофона (терялась часть звуков). На RT - всё ок.

А «обычное» — это какое? CONFIG_PREEMPT_VOLUNTARY («Desktop») или CONFIG_PREEMPT («Low-Latency desktop»)?

annulen ★★★★★
()
Последнее исправление: annulen (всего исправлений: 1)
Ответ на: комментарий от annulen

А «обычное» — это какое? CONFIG_PREEMPT_VOLUNTARY («Desktop») или CONFIG_PREEMPT («Low-Latency desktop»)?

Вот Debian 12, дефлтное ядро:

% fgrep -e 'CONFIG_PREEMPT_VOLUNTARY' -e 'CONFIG_PREEMPT' /boot/config-6.1.0-13-amd64
CONFIG_PREEMPT_BUILD=y
# CONFIG_PREEMPT_NONE is not set
CONFIG_PREEMPT_VOLUNTARY=y
# CONFIG_PREEMPT is not set
CONFIG_PREEMPT_COUNT=y
CONFIG_PREEMPTION=y
CONFIG_PREEMPT_DYNAMIC=y
CONFIG_PREEMPT_RCU=y
CONFIG_PREEMPT_NOTIFIERS=y
# CONFIG_PREEMPT_TRACER is not set
# CONFIG_PREEMPTIRQ_DELAY_TEST is not set
Harliff ★★★★★
() автор топика
Ответ на: комментарий от Harliff

Если интересно - на обычном ядре у меня в OBS Studio получалась некачественная запись звука с микрофона (терялась часть звуков). На RT - всё ок.

Наверное, создам отдельный топик по оптимизации мульимедиа-стека (OSB, pipewire/pulse, etc).

Harliff ★★★★★
() автор топика