Kernel (Русский)
Ядро Linux — ядро операционной системы, соответствующее стандартам POSIX, составляющее основу операционных систем семейства Linux.
Дистрибутив Arch Linux основан на ядре Linux. Помимо основной стабильной (stable) версии в Arch Linux можно использовать некоторые альтернативные ядра. В статье описываются доступные в официальных репозиториях версии ядер, возможные патчи, а также способы, которыми пользователи могут скомпилировать собственное ядро.
Пакет ядра устанавливается в файловую систему в каталоге /boot/ . Для загрузки нужного ядра при запуске системы необходимо соответствующим образом настроить загрузчик.
Contents
Официальные ядра
Помощь при работе с официальными ядрами можно найти на форуме и в баг-трекере.
- Stable — «ванильное» ядро Linux с модулями и некоторыми патчами.
https://www.kernel.org/ || linux
- Hardened — ориентированное на безопасность ядро Linux с набором патчей, защищающих от эксплойтов ядра и пространства пользователя. Содержит больше защитных особенностей, чем linux .
https://github.com/anthraxx/linux-hardened || linux-hardened
- Longterm — ядро и модули с долгосрочной поддержкой (Long Term Support, LTS).
https://www.kernel.org/ || linux-lts
- Zen Kernel — результат коллективных усилий исследователей с целью создать лучшее из возможных ядер Linux для систем общего назначения. Подробности проекта можно найти на сайте liquorix.net (там же можно скачать двоичные файлы Zen-ядра для Debian).
https://github.com/zen-kernel/zen-kernel || linux-zen
Компиляция
Скомпилировать собственное ядро можно двумя способами:
/Arch Build System Преимущества — наличие готового PKGBUILD для пакета linux и удобство системы управления пакетами. /Традиционная компиляция Ручная загрузка архива файлов с исходными кодами ядра и их компиляция.
Файлы конфигурации пакетов с ядрами Arch можно найти в исходниках (например, файл [1] из linux ). Если включена опция ядра CONFIG_IKCONFIG_PROC , то файл /proc/config.gz содержит настройки ядра, которое работает на вашей машине в данный момент.
Некоторые из перечисленных пакетов могут быть также доступны в двоичном виде в неофициальных репозиториях.
Ядра kernel.org
- Git — ядро Linux, собранное из файлов с исходным кодом из git-репозитория Линуса Торвальдса.
https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git || linux-gitAUR
- Mainline — ядра, в которых появляются все нововведения. Выходят каждые 2-3 месяца.
https://www.kernel.org/ || linux-mainlineAUR
- Next — самые новейшие ядра, с улучшениями, которые будут добавлены в следующий mainline-выпуск.
https://www.kernel.org/doc/man-pages/linux-next.html || linux-next-gitAUR
- Longterm 4.4 — LTS-ядро версии 4.4.
https://www.kernel.org/ || linux-lts44AUR
- Longterm 4.9 — LTS-ядро версии 4.9.
https://www.kernel.org/ || linux-lts49AUR
- Longterm 4.14 — LTS-ядро версии 4.14.
https://www.kernel.org/ || linux-lts414AUR
- Longterm 4.19 — LTS-ядро версии 4.19.
https://www.kernel.org/ || linux-lts419AUR
- Longterm 5.4 — LTS-ядро версии 5.4.
https://www.kernel.org/ || linux-lts54AUR
Неофициальные ядра
- Aufs — совместимое с aufs ядро Linux. Полезно при работе с Docker.
http://aufs.sourceforge.net/ || linux-aufsAUR
- Ck — патч от Con Kolivas, повышение быстродействия для настольных систем с любым типом нагрузки.
http://ck.kolivas.org/ || linux-ckAUR
- Clear — патчи проекта Clear Linux от Intel. Содержит улучшения производительности и безопасности.
https://github.com/clearlinux-pkgs/linux || linux-clearAUR
- GalliumOS — ядро Linux с патчами GalliumOS для Хромбуков.
https://github.com/GalliumOS/linux || linux-galliumosAUR
- Libre — без проприетарных или обфусцированных драйверов устройств.
https://www.fsfla.org/ikiwiki/selibre/linux-libre/ || linux-libreAUR
- Liquorix — ядро, собранное из исходного кода Zen с настройками для Debian. Разработан для настольных, мультимедийных и игровых систем, часто используется в качестве замены основному ядру Debian. Создатель патча Liquorix, Damentz, также является разработчиком набора патчей Zen.
https://liquorix.net || linux-lqxAUR
- MultiPath TCP — ядро с поддержкой Multipath TCP.
https://multipath-tcp.org/ || linux-mptcpAUR
- pf-kernel — набор неплохих улучшений, не вошедших в mainline. Сопровождается разработчиком ядра. Предоставляет порты улучшений для новых версий ядра, если они не были выпущены официально. Наиболее важные нововведения — UKSM и планировщик процессорного времени PDS.
https://gitlab.com/post-factum/pf-kernel/wikis/README || Пакеты:
- Репозиторий разработчика pf-kernel, post-factum.
- Репозиторий с пакетами linux-pfAUR и linux-pf-preset-defaultAUR от создателя форка pf-kernel, Thaodan.
- linux-pf-gitAUR от yurikoles
- Realtime kernel — поддерживается небольшой группой разработчиков, возглавляемой Ingo Molnar. Патч позволяет применять kernel preemption практически ко всему ядру за исключением небольших участков кода («raw_spinlock critical regions»). Этого удалось добиться за счёт замены большинства спинлоков ядра на мьютексы с поддержкой наследования приоритета, а также перемещением всех прерываний (в том числе и программных) в потоки ядра.
https://wiki.linuxfoundation.org/realtime/start || linux-rtAUR , linux-rt-ltsAUR
- Tkg — ядро с набором патчей для планировщиков PDS и Project C / BMQ. Стандартный планировщик CFS также доступен. Изменения нацелены на улучшение баланса интерактивность/производительность в играх. Автор и сопроводитель — Etienne Juvigny (Tk-Glitch).
https://github.com/Frogging-Family/linux-tkg || not packaged? search in AUR
- VFIO — патч ядра от Alex Williamson с поддержкой PCI Passthrough для KVM на некоторых машинах.
https://lwn.net/Articles/499240/ || linux-vfioAUR , linux-vfio-ltsAUR
- XanMod — улучшение производительности ядер рабочих станций, игровых компьютеров, медиацентров и других систем. Включает планировщик MuQSS, планировщик ввода-вывода BFQ, алгоритм дедупликации памяти в реальном времени UKSM, алгоритм управления перегрузками TCP BBR, расширенный набор команд для архитектуры x86_64 и другие изменения.
https://xanmod.org/ || linux-xanmodAUR
Отладка регрессий
Прежде всего проверьте ядро linux-mainline AUR на предмет того, не была ли проблема уже решена. В прикреплённом комментарии указан репозиторий с уже собранными ядрами, так что собирать ядро вручную не придётся.
Если проблема проявляется не слишком часто, то имеет смысл попробовать LTS-ядро ( linux-lts ). Старые версии LTS-ядер можно найти в архиве Arch Linux.
Если избавиться от проблемы не удалось, попробуйте локализовать баг в linux-git AUR , после чего сообщите о нём в баг-трекер ядра. Важно проверять ванильное непропатченное ядро, чтобы убедиться, что причиной ошибки является не патч. Если проблемы вызывает патч, то сообщите об этом его автору.
Источник
Zen ядро
# 5 месяцев, 3 недели назад (отредактировано 5 месяцев, 3 недели назад)
Ну и как там отследить, что в один из моментов стало `CONFIG_ZSWAP_DEFAULT_ON=y`
В вики это уже описано. Но сомневаюсь, что более 20% арчеводов в курсе этого. Работает там что-то «под капотом», ну и пусть работает. В общем-то и правильно, конечно.
За всем конфигом, да ещё и при обновлениях порой пару раз в неделю, следить не просто.
А вот дайджест был бы интересен. Но понимаю, что это фантастика. Так, мысли вслух, не надо принимать близко к сердцу )))
# 5 месяцев, 3 недели назад (отредактировано 5 месяцев, 3 недели назад)
sirocco
Ну и как там отследить, что в один из моментов стало `CONFIG_ZSWAP_DEFAULT_ON=y`
главное что история изменений есть, а как отследить это дело техники.
я с помощью git в /etc/ вижу после каждого обновления что и где изменилось.
посмотрел, закоммитил. так далее, своеобразный дайджест
nafanja
я с помощью git в /etc/ вижу после каждого обновления что и где изменилось…
# 5 месяцев, 3 недели назад (отредактировано 5 месяцев, 3 недели назад)
Поскольку загрузиться удаётся только с ванильного ядра, вроде порядок, его же нужно смотреть, я так понял, «не отходя от кассы»? Но как, если ничего не загружается?
Включил отладочную консоль по Ctrl+F9, но таймер не даёт ничего набрать.
vs220
Проверьте что правильно прописали initramfs для загрузки зен
Вроде пресеты в порядке, или не туда смотрю?
Или это нужно в rEFInd’е настраивать вручную? Раньше использовал manual.conf, но потом отказался, и так всё автоматом цеплял. Пока не поставил другое ядро. Там ведь есть ещё refind_linux.conf, я так и не понял, он общий для любых ядер, или нужно для каждого отдельный? Вот он кстати если что:
На сайте rEFInd сам чёрт ногу сломит, но чую придётся всё-таки там почитать.
vs220
проверьте наличие модулей для вашей версии зен
dkms тоже недоволен (уже после удаления nvidia):
vs220
dkms должен для всех ядер собрать модули
Да вот почему-то не собирает, судя по всему, хотя linux-headers установлен.
nvidia пока поставлю обратно, иначе тогда вообще никак не загрузится.
Блин, третий год на арче (и вообще на никсах), а всё ещё ламак. зла не хватает 😀
vasek
заметного роста производительности так и не заметил
к примеру: https://xanmod.org/#cachy-sched раз речь идёт о кастомных ядрах.
себе тоже ставлю zen -только потому что есть в офф репах, и так же из за поддержки fsync — так как в игры играю.
раньше себе собирал xanmod по типу: _microarchitecture=42 use_numa=n use_tracers=n use_pds=n use_ns=y что бы нативненько
для моего процессора.
так как разницы особо не видел между zen и xanmod то перестал это делать.
# 5 месяцев, 3 недели назад (отредактировано 5 месяцев, 3 недели назад)
vlig
Да вот почему-то не собирает, судя по всему, хотя linux-headers установлен.
Журнал можно смотреть для «предыдущих» загрузок
# 5 месяцев, 3 недели назад (отредактировано 5 месяцев, 3 недели назад)
vlig
апр 18 16:12:50 PC2 systemd-modules-load[324]: Inserted module ‘vboxdrv’
апр 18 16:12:50 PC2 systemd-modules-load[324]: Inserted module ‘vboxnetadp’
апр 18 16:12:50 PC2 systemd-modules-load[324]: Inserted module ‘vboxnetflt’
Нужно dkms версию поставить ( пакет virtualbox-host-dkms )
и проверить перестанет ли на модули при загрузке ругаться
Плохо , корень не монтируется еще на запись и в журнал не загрузится вывод этой загрузки так что с другой загрузки его не глянешь.
А после истечения таймера(1м30сек) что?
Если невозможно ничего ввести то тогда отладку можно попробовать, vasek в блоге
описывал
vlig
Possibly missing firmware for module: nvidia
Для lvm добавьте на всякий случай модуль dm_mod
vlig
должен для всех ядер собрать модули
Да вот почему-то не собирает
да возможно просто не тот инит ( от стандартного ядра грузит)
В refind.conf примерно
Может и заморочки какие с LVM
vlig
Или это нужно в rEFInd’е настраивать вручную? Раньше использовал manual.conf, но потом отказался, и так всё автоматом цеплял. Пока не поставил другое ядро
Проверил, поставил рефинд на флешку и грузанулся. С умолчальным конфигом автоматом нестандартные ядра не цепляет грузит как и предпологал со стандартным инитом и ситуация как у вас.
Чтоб определял ядро измените /куда_смонтирован _ефи _раздел/EFI/refind/refind.conf
строчку extra_kernel_version_strings linux-lts,linux добавив linux-zen и остальные нужные ядра и решетку снемите если стоит
Ну или ручной конфиг как выше говорил
© 2006-2021, Русскоязычное сообщество Arch Linux.
Название и логотип Arch Linux ™ являются признанными торговыми марками.
Linux ® — зарегистрированная торговая марка Linus Torvalds и LMI.
Источник
Zen ядро
provide the best Linux kernel possible for everyday systems
# 4 года, 6 месяцев назад (отредактировано 4 года, 6 месяцев назад)
пользуюсь версией из testing — за всё время ни одной проблемы
aahzd
какие сложности с обслуживанием по сравнению с ванильным
aahzd
Есть ли смысл смотреть в сторону zen ядра для ноутбука с целью улучшения производительности
# 4 года, 6 месяцев назад (отредактировано 4 года, 6 месяцев назад)
Ванильное- 6s
Zen- 4s
Плюс с ним батарея ноута терпит дольше.
Ну и отзывчивей по ощущениям
У многих стоит 2-3 ядра . linux-lts , считаю иметь нужно обязательно . 3-е ядро на усмотрение и проверки .
vasek
У многих стоит 2-3 ядра . linux-lts , считаю иметь нужно обязательно . 3-е ядро на усмотрение и проверки .
# 4 года, 6 месяцев назад (отредактировано 4 года, 6 месяцев назад)
aahzd
Странно только, что раз ядро настолько хорошее, почему оно не является основным до сих пор.
Arch предоставляет программное обеспечение в исходном виде, без дополнительных патчей. Пакеты собираются из первоначальных исходных текстов, в том виде, который был задуман автором. Накладывание патчей происходит в исключительно редких случаях с целью предотвратить появление серьёзных ошибок из-за несоответствия версий пакетов, которое может возникнуть в связи с использованием модели плавающих релизов.
Источник