Установка ядра linux. Обновление ядра в Ubuntu
Самым основным компонентом операционной системы Linux есть ядро. Именно ядро выступает промежуточным звеном между пользовательскими программами и оборудованием компьютера. Во всех бинарных дистрибутивах нам не нужно заботиться о сборке и настройке ядра, все уже сделали за нас разработчики дистрибутива. Но если мы хотим собрать свой дистрибутив сами или установить самую свежую версию ядра, нам придется собирать ядро вручную.
Первый вариант раньше был актуален для тех кто хотел получить максимальную производительность от своего оборудования, но сейчас, учитывая стремительное увеличение мощности компьютеров увеличение производительности при сборке ядра совсем незаметно. Сейчас сборка ядра может понадобиться пользователям не бинарных дистрибутивов, таких как Gentoo, тем, кто хочет внести некоторые изменения в ядро, получить новую самую свежую версию ядра и, конечно, же тем, кто хочет полностью разобраться в работе своей системы.
В этой инструкции мы рассмотрим как собрать ядро Linux. Первая часть расскажет как настроить ядро в автоматическом режиме. Так сказать, для тех кто не хочет разбираться как оно работает, кому нужно лишь получить на выходе готовый продукт - собранное ядро. Во второй части мы рассмотрим основные этапы ручной настройки ядра, это процесс сложный, и небыстрый, но я попытаюсь дать основу, чтобы вы могли со всем разобраться сами.
Самое первое что нужно сделать - это скачать исходники ядра. Исходники лучшие брать с сайта вашего дистрибутива, если они там есть или официального сайта ядра: kernel.org. Мы рассмотрим загрузку исходников с kernel.org.
Перед тем как скачивать исходники нам нужно определиться с версией ядра которую будем собирать. Есть две основных версии релизов - стабильные (stable) и кандидаты в релизы (rc), есть, конечно, еще стабильные с длительным периодом поддержки (longterm) но важно сейчас разобраться с первыми двумя. Стабильные это, как правило, не самые новые, но зато уже хорошо протестированные ядра с минимальным количеством багов. Тестовые - наоборот, самые новые, но могут содержать различные ошибки.
Итак когда определились с версией заходим на kernel.org и скачиваем нужные исходники в формате tar.xz:
В этой статье будет использована самая новая на данный момент нестабильная версия 4.4.rc7.
Получить исходники ядра Linux можно также с помощью утилиты git. Сначала создадим папку для исходников:
mkdir kernel_sources
Для загрузки самой последней версии наберите:
git clone https://github.com/torvalds/linux
Распаковка исходников ядра
Теперь у нас есть сохраненные исходники. Переходим в папку с исходниками:
cd linux_sources
Или если загружали ядро linux с помощью браузера, то сначала создадим эту папку и скопируем в нее архив:
mkdir linux_sources
cp ~/Downloads/linux* ~/linux_sources
Распаковываем архив с помощью утилиты tar:
И переходим в папку с распакованным ядром, у меня это:
cd linux-4.4-rc7/
Автоматическая настройка сборки ядра Linux
Перед тем как начнется сборка ядра linux, нам придется его настроить. Как я и говорил, сначала рассмотрим автоматический вариант настройки сборки ядра. В вашей системе уже есть собранное, настроенное производителем дистрибутива, и полностью рабочее ядро. Если вы не хотите разбираться с тонкостями конфигурации ядра, можно просто извлечь уже готовые настройки старого ядра и сгенерировать на их основе настройки для нового. Нам придется лишь указать значения для новых параметров. Учитывая, что в последних версиях не было и не намечается серьезных изменений можно отвечать на все эти параметры как предлагает скрипт настройки.
Параметры используемого ядра хранятся в архиве по адресу /proc/config.gz. Распакуем конфиг и поместим его в нашу папку утилитой zcat:
В процессе его работы нужно будет ответить на несколько вопросов. Это новые параметры, которые изменились или были добавлены в новое ядро и поддержка нового оборудования, в большинстве случаев можно выбирать вариант по умолчанию. Обычно есть три варианта y - включить, n - не включать, m - включить в качестве модуля. Рекомендованный вариант написан с большой буквы, для его выбора просто нажмите Enter.
На все про-все у вас уйдет около 10-ти минут. После завершения процесса, ядро готово к сборке. Дальше мы рассмотрим настройку ядра вручную, а вы можете сразу перелистать к сборке ядра Linux.
Ручная настройка ядра Linux
Ручная настройка - сложный и трудоемкий процесс, но зато она позволяет понять как работает ваша система, какие функции используются и создать ядро с минимально нужным набором функций под свои потребности. Мы рассмотрим только главные шаги, которые нужно выполнить чтобы ядро собралось и заработало. Со всем остальным вам придется разбираться самому опираясь на документацию ядра. Благо в утилите настройки для каждого параметра есть обширная документация которая поможет вам понять какие еще настройки нужно включить.
Начнем. Для запуска меню настроек ядра linux наберите:
Откроется вот утилита с интерфейсом ncurses:
Как видите, некоторые обязательные опции уже включены, чтобы облегчить вам процесс настройки. Начнем с самых основных настроек. Чтобы включить параметр нажмите y, чтобы включить модулем - m, для перемещения используйте клавиши стрелок и Enter, возвратиться на уровень вверх можно кнопкой Exit Откройте пункт General Setup .
Здесь устанавливаем такие параметры:
Local Version - локальная версия ядра, будет увеличиваться при каждой сборке на единицу, чтобы новые ядра при установке не заменяли собой старые, устанавливаем значение 1.
Automatically append version information to the version string - добавлять версию в название файла ядра.
Kernel Compression Mode - режим сжатия образа ядра, самый эффективный lzma.
Default Hostname - имя компьютера, отображаемое в приглашении ввода
POSIX Message Queues - поддержка очередей POSTIX
Support for paging of anonymous memory - включаем поддержку swap
Control Group support - поддержка механизма распределения ресурсов между группами процессов
Kernel .config support и Enable access to .config through /proc/config.gz - включаем возможность извлечь конфигурацию ядра через /proc/config.gz
Здесь все, возвращаемся на уровень вверх и включаем Enable loadable module support, эта функция разрешает загрузку внешних модулей,дальше открываем его меню и включаем:
поддержка отключения модулей принудительное отключение модулейОпять возвращаемся назад и открываем Processor type and features:
Processor family (Opteron/Athlon64/Hammer/K8) - выбираем свой тип процессора.
Опять возвращаемся и переходим в раздел File systems , тут установите все нужные галочки.
Обязательно включите The Extended 3 (ext3) filesystem и The Extended 4 (ext4) filesystem - для поддержки стандартных ext3 и ext4 файловых систем
Возвращаемся и идем в Kernel hacking.
Здесь включаем Magic SysRq key - поддержка магических функций SysRq, вещь не первой необходимости, но временами полезная.
Остался еще один пункт, самый сложный, потому что вам его придется пройти самому. Device Drivers - нужно пройтись по разделам и повключать драйвера для своего оборудования. Под оборудованием я подразумеваю нестандартные жесткие диски, мышки, USB устройства, веб-камеры, Bluetooth, WIFI адаптеры, принтеры и т д.
Посмотреть какое оборудование подключено к вашей системе можно командой:
После выполнения всех действий ядро готово к сборке, но вам, скорее всего, предстоит разобраться с очень многим.
Чтобы выйти нажмите пару раз кнопку Exit .
Сборка ядра Linux
После завершения всех приготовлений может быть выполнена сборка ядра linux. Для начала процесса сборки выполните:
make && make modules
Теперь можете идти пить кофе или гулять, потому что процесс сборки длинный и займет около получаса.
Установка нового ядра
Когда ядро и модули будут собраны новое ядро можно устанавливать. Можно вручную скопировать файл ядра в папку загрузчика:
cp arch/x86_64/boot/bzImage /boot/vmlinuz
А можно просто выполнить установочный скрипт, сразу установив заодно и модули:
sudo make install && sudo make modules_install
После установки не забудьте обновить конфигурацию загрузчика Grub:
grub-mkconfig -o /boot/grub/grub.cfg
И перезагружаем компьютер чтобы увидеть новое ядро в работе:
Выводы
Вот и все. В этой статье мы подробно рассмотрели как собрать ядро Linux из исходников. Это будет полезно всем желающим лучшие понять свою систему, и тем, кто хочет получить самую новую версию ядра в своей системе. Если остались вопросы, задавайте комментарии!
В данном пошаговом руководстве вы узнаете, как правильно собрать и установить ядро ветвей >2.6 в семействе ОС Ubuntu.
Шаг 1. Получение исходного кода ядра
Исходники ядра Ubuntu можно получить двумя способами :
Установив архив из репозитория, с автоматическим наложением последних официальных патчей. При этом скачается пакет размером ~150 Мб в текущую папку. Чтобы получить исходники ядра, версия которого установлена на компьютере выполните команду: apt-get source linux-image-`uname -r`
Или вместо `uname -r` можно указать конкретную версию из имеющихся в репозитории.
Список имеющихся в репозитории версий можно увидеть набрав команду: «apt-get source linux-image-» и, не нажимая Enter , нажать два раза клавишу Tab .
Не забудьте включить общий доступ к исходникам в репозитории (Параметры системы → Программы и обновления → Программное обеспечение Ubuntu → Исходный код). Из консоли это сделать можно раскомментировав строки начинающиеся с deb-src в файле /etc/apt/sources.list, а затем выполнить обновление командой: «sudo apt-get update».
Самая свежая версия ядра доступна по git . Размер скачиваемого пакета ~500-800 Мб. git clone git://kernel.ubuntu.com/ubuntu/ubuntu-
Где
Git clone git://kernel.ubuntu.com/ubuntu/ubuntu-xenial.git
Другие ядра
Также существуют ядра, работоспособность которых в Ubuntu не гарантируется. Например, известна проблема с рядом популярных системных приложений (в частности драйвера NVidia, VirtualBox), которые при своей установке компилируются под установленное ядро. Поэтому для их установки на ядро, нестандартное для данной версии Ubuntu (например, Ubuntu 16.04 идёт с ядром 4.4.0), может потребоваться их отдельная компиляция вручную или специальные патчи, а последние версии ядер с kernel.org приложение может вообще не поддерживать.
Архив с базовой версий без патчей, т.е. например «4.8.0», «4.8.10»: sudo apt-get install linux-source
Распакуйте полученный архив, используя команды:
Cd ~/ tar -xjf linux-2.6.x.y.tar.bz2
Или в случае с linux-source:
Cd /usr/src tar -xjf linux-source-2.6.x.y.tar.bz2
Шаг 2. Получение необходимых для сборки пакетов
Данный шаг необходимо выполнить, только если ядро собирается на компьютере в первый раз
Выполните следующие команды для установки основных пакетов:
Sudo apt-get update sudo apt-get build-dep linux sudo apt-get install kernel-package
config - традиционный способ конфигурирования. Программа выводит параметры конфигурации по одному, предлагая вам установить для каждого из них свое значение. Не рекоммендуется для неопытных пользователей.
oldconfig - файл конфигурации создаётся автоматически, основываясь на текущей конфигурации ядра. Рекомендуется для начинающих.
defconfig - файл конфигурации создаётся автоматически, основываясь на значениях по-умолчанию.
menuconfig - псевдографический интерфейс ручной конфигурации, не требует последовательного ввода значений параметров. Рекомендуется для использования в терминале.
xconfig - графический (X) интерфейс ручной конфигурации, не требует последовательного ввода значений параметров.
gconfig - графический (GTK+) интерфейс ручной конфигурации, не требует последовательного ввода значений параметров. Рекомендуется для использования в среде GNOME.
localmodconfig - файл конфигурации, создающийся автоматически, в который включается только то, что нужно данному конкретному устройству. При вызове данной команды большая часть ядра будет замодулирована
В случае, если вы хотите использовать config , oldconfig , defconfig , localmodconfig или localyesconfig , вам больше не нужны никакие дополнительные пакеты. В случае же с оставшимися тремя вариантами необходимо установить также дополнительные пакеты.
menuconfig выполните следующую команду:
Sudo apt-get install libncurses5-dev
Для установки пакетов, необходимых для использования gconfig выполните следующую команду:
Sudo apt-get install libgtk2.0-dev libglib2.0-dev libglade2-dev
Для установки пакетов, необходимых для использования xconfig выполните следующую команду:
До Ubuntu 12.04: sudo apt-get install qt3-dev-tools libqt3-mt-dev
Sudo apt-get install libqt4-dev
Шаг 3. Применение патчей
Данный шаг не является обязательным.
Официальные патчи уже наложены на исходники, если ядро получалось описанной выше командой:
Apt-get source linux-image-`uname -r`
Если вы никогда до этого не применяли патчей к исходному коду, то выполните следующую команду:
Sudo apt-get install patch
Эта команда установит программу patch, необходимую для, как можно догадаться, применения патчей. Теперь скачайте файл патча в папку, куда вы распаковали ядро. Это может быть либо архивный файл (напр. Bzip2 или Gzip), либо несжатый patch-файл.
На данный момент подразумевается, что вы уже сохранили файл в ту папку, куда ранее распаковали ядро, и установили программу patch.
Если скачанный вами файл был в формате Gzip (*.gz), тогда выполните следующую команду для распаковки содержимого архива:
Gunzip patch-2.6.x.y.gz
Если скачанный вами файл был в формате Bzip2 (*.bz2), тогда выполните следующую команду для распаковки содержимого архива:
Bunzip2 patch-2.6.x.y.bz2
где 2.6.x.y - версия патча ядра. Соответствующие команды распакуют файл патча в папку с исходным кодом ядра. Прежде чем применить патч, необходимо удостовериться, что он заработает без ошибкок. Для этого выполните команду:
Patch -p1 -i patch-2.6.x.y --dry-run
где 2.6.x.y - версия патча ядра. Эта команда сымитирует применение патча, не изменяя сами файлы.
Если при её выполнении не возникнет ошибок, то изменения можно смело внедрять в сами файлы. Для этого выполните команду:
Patch -p1 -i patch-2.6.x.y
где 2.6.x.y - версия патча ядра. Если не было никаких ошибок, значит к исходному коду был успешно применён патч.
Внимание!
Перед тем, как применять патч, проведите следующие действия:
1. Скачайте с http://www.kernel.org патч той же версии, что и ваших исходников.
2. Выполните следующую команду:
patch -p1 -R где 2.6.x.y - версия патча и ваших исходников Перейдите в папку, куда вы распаковали ядро, выполнив команду Cd ~/linux-2.6.x.y
где 2.6.x.y - версия загруженного вами ядра. На данный момент вы уже должны были определиться с методом конфигурации ядра (если нет, то ознакомьтесь с ними в разделе «Получение необходимых для сборки пакетов». В зависимости от этого, выполните следующую команду для запуска выбранного вами способа конфигурации: config
- традиционный способ конфигурирования. Программа выводит параметры конфигурации по одному, предлагая вам установить для каждого из них свое значение. Вызывается командой make config
oldconfig
- файл конфигурации создаётся автоматически, основываясь на текущей конфигурации ядра. Рекомендуется для начинающих. Вызывается командой
make oldconfig defconfig
- файл конфигурации создаётся автоматически, основываясь на значениях по-умолчанию для данной конкретной архитектуры. Вызывается командой
make defconfig menuconfig
- псевдографический интерфейс ручной конфигурации, не требует последовательного ввода значений параметров. Рекомендуется для использования в терминале. Вызов:
make menuconfig gconfig
и xconfig
- графические конфигураторы для ручной настройки. Вызов:
make gconfig
Make xconfig
соответственно localmodconfig
и localyesconfig
- автоматические конфигураторы. Конфиг создается на основе вызванных в данных момент модулей и запущенного ядра. Разница между этими двумя конфигураторами в количестве модулей. В первом случае их будет не менее 50% ядра, а во-втором не больше 2 модулей. Вызов:
make localmodconfig
Make localyesconfig
соответственно После вызова соответствующая программа конфигурации будет запущена. Произведите необходимые настройки в соответствии с вашими потребностями, сохраните файл конфигурации и переходите к следующему шагу. Итак, приготовления завершены. Теперь можно запустить процесс сборки ядра. Чтобы это сделать, выполните команду: Fakeroot make-kpkg -j 5 --initrd --append-to-version=-custom kernel_image kernel_headers #-j <количество ядер процессора>+1
Сборка ядра может занимать от 20 минут до нескольких часов в зависимости от конфигурации ядра и технических параметров компьютера. Сборка при многодерном процессоре может быть в несколько раз быстрее Когда сборка ядра подошла к концу, в вашей домашней папке появятся два deb-пакета. Их и необходимо установить. Для этого выполните команды: Cd ~/
sudo dpkg -i linux-image-2.6.x.y-custom_2.6.x.y-custom-10.00.Custom_arc.deb
sudo dpkg -i linux-headers-2.6.x.y-custom_2.6.x.y-custom-10.00.Custom_arc.deb
где 2.6.x.y - версия собранного ядра, arc - архитектура процессора (i386 - 32-бит, amd64 - 64-бит). и найдите эти самые два пакета. Для корректной работы Ubuntu требует наличия образа начального RAM-диска. Чтобы его создать, выполните команду: Sudo update-initramfs -c -k 2.6.x.y-custom
где 2.6.x.y - версия собранного ядра. Для того, чтобы новая версия ядра была доступна для выбора при загрузке компьютера, выполните следующую команду: Sudo update-grub
Файл menu.lst (для GRUB версии 1) или grub.cfg (для GRUB версии 2) обновится в соответствии с наличием установленных операционных систем и образов ядер. Сборка и установка ядра успешно выполнены! Теперь перезагрузите компьютер и попробуйте загрузить систему с новым ядром.
Чтобы удостовериться, что система запущена с новым ядром, выполните команду Uname -r
Она выведет на экран используемую версию ядра. Если всё сделано правильно, то вы можете удалить архивы с исходным кодом и весь каталог linux-2.6.x.y в вашей домашней папке. Это освободит около 5 ГБ на вашем жёстком диске (размер освобождаемого пространства зависит от параметров сборки). На этом процесс сборки и установки завершён, поздравляю!
Linux
- это ядро операционной системы. Ubuntu
- это операционная система построенная на ядре Linux. Грубо говоря, ядро Linux - это "головной мозг" всей операционной системы, который контролирует работу устройств между собой. Для чего нужно обновлять ядро в Ubuntu?
Ничего не стоит на месте, все технологии двигаются вперед и развиваются. Выпускаются новые процессоры, чипсеты и другие компоненты, которые для корректной работы требуют поддержки со стороны операционной системе. Для особо продвинутых пользователей ОС Linux позволяет пересобрать ядро под свои нужды из исходного кода. При этом можно получить некоторую прибавку в производительности, путем исключения ненужных компонентов, но это довольно долгий процесс, который требует некоторых дополнительных знаний. В этой статье предлагается обновить системное ядро в ОС Ubuntu без компилирования ядра Linux из исходного кода. Как сообщает Wikipedia , в названии ядра заложена достаточно важная информация, которая не просто показывает его версию. Обычно ядро обозначается так: 2.6.33.3
, где: Чтобы посмотреть версию установленного ядра можно открыть Системный монитор
или в консоли набрать: Оба действия покажут версию установленного ядра. На официальном сайте ядра Linux можно посмотреть текущую версию доступного стабильного ядра (stable kernel). Если доступное ядро имеет более высокую версию, то вам необходимо обновить ОС Ubuntu стандартными командами из официального репозитория Canonical: # sudo apt-get update && sudo apt-get upgrade Стабильные версии ядер включаются в официальный репозиторий Ubuntu с исправной регулярностью. В некоторых случаях необходимо установить версию ядра, которое еще не до конца протестировано и находится в разделе нестабильного ядра (unstable kernel). Установка нестабильного ядра в Ubuntu требуется, к примеру, для корректной работы нового устройства. Для unstable-версии ядра нет полноценного репозитория, как для других приложений Ubuntu. Это сделано из соображений безопасности и стабильности работы дисрибутива Ubuntu. Для обновления такого ядра в Ubuntu требуется загрузить 3 deb-пакета, которые находятся здесь: http://kernel.ubuntu.com/~kernel-ppa/mainline , где можно выбрать любую доступную версии. Пакеты следует загружать согласно разряду вашего дистрибутива (i386 - для 32bit, amd64 - для 64bit): После этого устанавливаем вручную загруженные пакеты и перезагружаем компьютер. Наши любимые женщины всегда ждут от нас знаков внимания. К примеру, женщине можно подарить красивый дизайнерский кулон. Цена не такая уж высокая, а блеска много. В сети Интернет бижутерия продается на большом количестве интернет-сайтов. Поэтому выбор всегда есть. Лучший подарок - это подарок сделанный от всего сердца. Так же можно удивить девушку, доставив ей расширенный оргазм , о котором можно прочитать на сайте kamasutra21veka.ru
Случайные 7 статей: Комментарии Проще обновлять ядро через Ubuntu-Tweak тогда уж) Дмитрий:
У меня ядро 2.6.32-22-generic, а на сайте 2.6.33.4. Выполнил написанную вами команду, пообновляло чёто там, но версия ядра осталась та же. В чём прикол? Нужно всего лишь закачать 3 пакета и установить их в системе. В Grub по-умолчанию на верхнюю строчку помещает загрузку с новым ядром, т.ч. загрузиться он автоматически с новым ядром. P.S. Может все-таки не установились пакеты? Я имею ввиду обновление стабильного ядра. Дмитрий:
Я имею ввиду обновление стабильного ядра. “На официальном сайте ядра Linux можно посмотреть текущую версию доступного стабильного ядра (stable kernel). Если доступное ядро имеет более высокую версию, то вам необходимо обновить ОС Ubuntu стандартными командами из официального репозитория Canonical: # sudo apt-get update && sudo apt-get upgrade” Я так сделал, но ядро не обновилось. Возмоджно стабильное ядро, которое зазначено на офсайте http://kernel.org/, ещ’ не включено в офрепозиторий Canonical? Стоит подождать, наверное, скоро включат. Можете посмотреть приведенную ссылку в посте. Там я думаю найдете, что ищете. Стоит, наверное, внести это в пост. Как то обновлял ядро по данной схеме, некоторые драйвера дали сбой(( ainur101:
Как то обновлял ядро по данной схеме, некоторые драйвера дали сбой В последней версии ядра наконец-то допилили все функции для моего нетбука. Проблем замечено не было. А вообще ставя тестовые версии ядра стоит готовится к сюрпризам)) Большое спасибо за статью. Все получилось, на моей 10.04 теперь красуется 3 ядро А я вот думаю, что надо бы придумать как создать сборку которая при установке автоматически компилировала бы ядро конкретно под данную машину, а не ставила бы кучу ненужных модулей Пересборка ядра Linux дело очень интересное и почему-то часто отпугивает новичков. Но ничего сложного в этом нет, и скомпилировать ядро Linux бывает не сложнее, чем собрать (скомпилировать) любую другую программу из исходников. Пересборка ядра может понадобиться, когда вам требуются какие-нибудь функции, не включенные в текущее ядро, или же, наоборот, вы хотите что-то отключить. Все дальнейшие действия мы будем выполнять в Ubuntu Linux. Для настройки и сборки ядра Linux вам потребуется установить несколько пакетов, которые понадобятся для сборки и настройки ядра: kernel-package , build-essential , libncurses-dev . Сделать это можно командой: sudo apt-get install build-essential kernel-package libncurses-dev
Теперь нужно скачать исходный код ядра. Мы будем скачивать ядро для Ubuntu. Вы можете скачать определенную версию ядра, например, ту, которую вы в данный момент используете или же скачать самую последнюю версию. Для того, чтобы определить версию ядра Linux, которую вы используете, выполните команду uname с параметром -r: Uname -r
Вывод команды будет примерно следующим: $uname -r
2.6.27-11-generic
Имя пакета, содержащего исходные коды ядра обычно имеет следующий вид: linux-source-Версия. Например, для ядра версии 2.6.24: linux-source-2.6.24. Самая последняя версия ядра в репозиториях Ubuntu называется просто linux-source, без указания версии на конце. Для установки исходных кодов последней версии ядра Ubuntu Linux, выполните команду: sudo apt-get install linux-source
Эта команда скачивает исходники ядра и размещает их в директории /usr/src . На момент написания заметки последняя версия ядра, которая была скачана — 2.6.27, ее мы и будем использовать. Если мы теперь перейдем в директорию /usr/src и выполним команду ls , то увидим, что среди файлов присутствует файл linux-source-2.6.27.tar.bz2. Это и есть исходные коды ядра Linux (ядра Ubuntu). Перейдем в директорию /usr/src и разархивируем ядро. Для этого выполните следующие команды: Cd /usr/src
sudo tar xjf linux-source-2.6.27.tar.bz2
sudo ln -s linux-source-2.6.27 linux
Теперь перейдем к конфигурированию ядра. Чтобы не создавать конфигурацию с нуля, возьмем за основу конфигурацию ядра, которая в данный момент используется. Получить текущую конфигурацию можно выполнив команду make oldconfig . Выполните в терминале: Cd /usr/src/linux
sudo make oldconfig
В результате выполнения команды make oldconfig создастся файл.config , содержащий параметры конфигурации ядра. Получить справку по всем параметрам make для ядра Linux вы можете, выполнив команду make help . Для изменения конфигурации ядра мы воспользуемся консольной утилитой menuconfig . Для ее запуска выполните: Sudo make menuconfig
Перед вами появится интерфейс, в котором вы можете включать или отключать определенные опции ядра: Для примера я включу опцию «NTFS write support». Для этого, нажимая кнопку Вниз, найдите пункт «File systems» и нажмите Enter . Вы окажетесь в меню настройки файловых систем. Найдите в этом списке пункт «DOS/FAT/NT Filesystems» и нажмите Enter . Перейдите к пункту «NTFS write support» и нажмите Пробел, рядом с пунктом появится звездочка, означающая, что данная опция будет включена в ядро. Теперь выберите «Exit» (нажав кнопку Вправо и затем Enter) и выйдите из утилиты. Перед выходом из утилиты выскочит сообщение с вопросом — сохранить проделанные изменения, выберите Yes. Пришло время скомпилировать ядро с теми изменениями, которые мы внесли на предыдущем шаге. Для начала выполним команду, которая удалит файлы (если они имеются), оставшиеся от предыдущей компиляции: Sudo make-kpkg clean
Наконец, чтобы запустить компиляцию ядра, выполним команду: Sudo make-kpkg --initrd --append-to-version=-mykernel kernel_image kernel_headers
Ключ -append-to-version используется, чтобы добавить к имени файла образа ядра, который мы получим после компиляции, строку -mykernel , чтобы было проще идентифицировать свое ядро. Вместо -mykernel вы можете использовать любой префикс. Компиляция ядра занимает довольно много времени и может длиться от нескольких десятков минут до нескольких часов, в зависимости от мощности вашего компьютера. После компиляции ядра вы получили на выходе два файла: linux-image-2.6.27.18-mykernel_2.6.27.18-mykernel-10.00.Custom_i386.deb, linux-headers-2.6.27.18-mykernel_2.6.27.18-mykernel-10.00.Custom_i386.deb. Мы воспользуемся командной dpkg -i , которая автоматически установит ядро и пропишет его в ваш загрузчик GRUB (в файл /boot/grub/menu.lst). Отмечу, что ядро будет установлено, как ядро по умолчанию, поэтому если оно у вас не загрузится вам нужно будет загрузиться, используя ваше предыдущее ядро (оно должно быть в списке меню GRUB при загрузке компьютера) и вручную изменять файл menu.lst . Итак, для установки ядра выполните команды: Dpkg -i linux-image-2.6.27.18-mykernel_2.6.27.18-mykernel-10.00.Custom_i386.deb
dpkg -i linux-headers-2.6.27.18-mykernel_2.6.27.18-mykernel-10.00.Custom_i386.deb
Проверим работоспособность системы с новым ядром. Перезагрузите компьютер. В меню загрузчика GRUB вы должны будете увидеть новый пункт, соответствующей вашему новому ядру, которое должно загрузиться по умолчанию. Если все пройдет успешно, то система запустится с новым ядром. Иногда может потребоваться собрать своё собственное ядро Linux
. Причины для этого могут быть следующими: sudo apt install build-essential gcc kernel-package patch
После того как установятся все необходимые инструменты, распакуйте архив с кодом ядра в любую удобную директорию. Пусть это будет /home/user/KERNEL
, где "user"
- имя пользователя системы. Далее откройте терминал и перейдите туда: cd /home/user/KERNEL
Осталось собрать ядро: fakeroot make-kpkg -j 3 --initrd --append-to-version=-custom kernel_image kernel_headers #-j 3
Цифра 3 после j
- это количество ядер вашего процессора + 1. То есть для двухядерного это 3, для 4-х ядерного это 5 и так далее. sudo dpkg -i linux-image-4.3*deb linux-headers-4.3*deb
И перезагрузитесь. В меню GRUB теперь можно будет выбрать для загрузки системы другое ядро. cd /home/user/KERNEL-CUSTOM
make config
- в терминал будут поочерёдно выводиться вопросы о конфигурации той или иной подсистемы ядра. Крайне долгий и утомительный процесс. Забудем о нём:) Вот и всё. При желании (и тщательном изучении документации), вы можете внести дополнительные изменения в конфигурацию (отключить лишние драйверы, задействовать дополнительные подсистемы и так далее). Теперь сохраняем конфиг через File - Save
, закрываем конфигуратор и собираем ядро: fakeroot make-kpkg -j 3 --initrd --append-to-version=-rt-custom kernel_image kernel_headers #-j 3
На моём компьютере с процессором Intel Core i3-550 (3.2 ГГц), прирост производительности был довольно ощутимый. Но самое главное - при работе в LMMS
и Kdenlive
, исчезли периодические заикания рассинхронизация звуковой и видеодорожек, а также подвисания при сильной нагрузке на жёсткий диск. Вывод - работает! Напоследок опишу два модифицированных ядра, которые весьма популярны в кругах линуксоидов: PF-kernel
- самый популярный набор патчей от украинца Александра Наталенко (aka post-factum) . Это набор патчей, которые не входят в основное ядро, но обеспечивают
повышенную отзывчивость системы, предоставляют альтернативную подсистему
гибернации, более быструю, нежели основная, а также уменьшают
использование памяти с помощью техники объединения одинаковых страниц. В набор входят: Zen-kernel
- второй по популярности, но первый по количеству патчей набор. Zen Kernel использует комбинацию нескольких проектов, обновляет код
через git-репозиторий, а также имеет несколько специфичных для Zen
вещей, стремящихся удовлетворить большинство потребностей пользователей,
реализовав их в одном ядре. Некоторые возможности патча: drm-next,
wireless-testing, выбор планировщиков CPU (CFS/BFS), BFQ-планировщик
ввода-вывода, aufs, unionfs, reiser4, tuxonice, PHC и многие другие
вещи, которые замечательно подойдут для оптимизации настольных систем
или ноутбуков. Всё это доступно в виде одного патча к ванильному ядру. Официальный сайт . GIT- репозиторий . Пакеты для Debian/Ubuntu . На сегодня, пожалуй, всё. Больше информации вы можете найти в ссылках к статье. Всё описанное в статье проверено мной на многих конфигурациях.Шаг 4. Конфигурация будущей сборки ядра
Шаг 5. Сборка ядра
Шаг 6. Установка образов и заголовков ядра
Если вы не знаете точного названия пакета, выведите список файлов в домашнем каталоге командойШаг 7. Генерация начального RAM-диска
Шаг 8. Обновление конфигурации загрузчика GRUB
Шаг 9. Проверка ядра
Немного теории
Как определить версию установленного ядра?
Обновление стабильного ядра в Ubuntu
Обновление нестабильного ядра в Ubuntu
30 Апрель, 16:20
14 Май, 14:39
16 Май, 12:14
16 Май, 17:46
“На официальном сайте ядра Linux можно посмотреть текущую версию доступного стабильного ядра (stable kernel). Если доступное ядро имеет более высокую версию, то вам необходимо обновить ОС Ubuntu стандартными командами из официального репозитория Canonical: # sudo apt-get update && sudo apt-get upgrade”
Я так сделал, но ядро не обновилось. Возмоджно стабильное ядро, которое зазначено на офсайте http://kernel.org/, ещ’ не включено в офрепозиторий Canonical?
19 Май, 06:38
15 Август, 22:59
24 Август, 12:07
14 Март, 21:51
6 Февраль, 14:59
Установка утилит
Скачиваем исходный код ядра
Распаковываем исходный код ядра
Конфигурация ядра
Компиляция ядра
Установка (инсталляция) ядра
Запуск системы с новым ядром
В сборке ядра нет ничего сложного. Важно лишь понимать, для чего это делается, а также не трогать те параметры, которые вам непонятны. В этой заметке я опишу два примера сборки ядра в Debian-based
дистрибутивах. В первом примере я покажу как просто собрать чистое, что называется "ванильное" ядро (такое, каким его выпускает Линус Торвальдс
), а во втором - как применить собственные патчи и провести оптимизацию ядра. Сразу напишу два предупреждения:
ВСЕ ДЕЙСТВИЯ ВЫ ПРОИЗВОДИТЕ НА СВОЙ СТРАХ И РИСК!
Простая сборка ядра без применения патчей.
Исходные коды ядра Linux находятся на сайте kernel.org . Там же находятся "обновляющие патчи"
. Что нам нужно? Качаем с сайта тарболл
(архив) с последней стабильной версией ядра (на момент написания статьи, это версия 4.3
). Качаем любым удобным способом. Далее нам потребуются инструменты для сборки:
sudo apt-get build-dep linux
-custom
- здесь можете указать удобное имя для ядра, чтобы было легче его отличить от дистрибутивного.
kernel_image
и kernel_headers
- это само ядро и его заголовочные файлы соответственно. Headers
необходимы для сборки драйверов и модулей ядра, а также для некоторых других целей. После выполнения этой команды, начнут появляться несколько вопросов по конфигурированию ядра. Так как мы всё оставляем по умолчанию, просто жмите Enter пока не начнётся сборка. В зависимости от мощности вашего компьютера, сборка может занять от 15-20 минут до нескольких часов. После сборки, в директории /home/user
появятся два deb-пакета
: ядро и заголовки. Установите их командой:
sudo update-grub
Сборка ядра с применением патчей и дополнительной конфигурации.
В этот раз мы соберём оптимизированное ядро для работы со звуком и видео, а также для большей отзывчивости системы. Для этого мы применим два патча: так называемый патч для режима реального времени (PREEMPT RT
) и патч для компилятора GCC
, чтобы добавить дополнительные опции для процессорных оптимизаций. Для начала, что такое патч? Патч - это текстовый файл, который создаётся программой diff
, содержащий в себе изменения кода в определённых частях, которые при применении патча, заносятся в нужные места. Так как RT-патч
выходит с большим запаздыванием, последняя его версия - для ядра 4.1
. Впрочем это не так важно. По той же схеме, качаем ядро 4.1 с kernel.org и распаковываем в директорию /home/user/KERNEL-CUSTOM
. Теперь качаем патчи. PREEMPT_RT и GCC Patch . Из скачанных архивов, нам нужны файлы с расширением.patch, которые необходимо положить в каталог с исходным кодом ядра. То есть в /home/user/KERNEL-CUSTOM
. Перед применением патчей нужно убедиться, что не будет никаких ошибок. Открываем терминал:
patch -p1 -i patch-4.1.13-rt15.patch --dry-run
Опция --dry-run
позволяет симулировать применение патча, без внесения изменений в файлы. Если ошибок не обнаружено (см. скриншот) - примните патч уже без опции --dry-run
. Аналогичные действия проведите и со вторым патчем. Не применяйте одновременно больше одного патча!
Теперь нам нужно сконфигурировать наше ядро. На выбор нам предлагаются следующие варианты:
make oldconfig
- будет задействована конфигурация работающего в данный момент ядра. Так как мы собираем своё с нуля, этот способ также бесполезен.
make defconfig
- аналогично предыдущему, только значения будут по умолчанию. Такими, какими его задали разработчики ядра. Аналог первого способа сборки.
make menuconfig
- псевдографический интерфейс на основе библиотеки Ncurses
. На экран будет выводиться интерфейс с удобным иерархическим меню. Управления с помощью клавиш направления, пробела и клавиши TAB. Рекомендуется если вы собираете ядро в системе, не имеющей графической оболочки.
make gconfig
GTK
, рекомендуется в окружениях GNOME, Mate, Xfce, Cinnamon, Unity и прочих, использующих GTK.
make xconfig
- графический интерфейс на основе Qt
. Рекомендуется в KDE. Так как в моей системе используется KDE, я воспользуюсь этим способом. Помимо этого есть ещё пара способов, но их применения ни чем особенным не отличается. Итак, после применения патчей, запускаем make xconfig
и перед нами предстаёт вот это:
Первым делом выключаем dynticks
. Для этого идём в Timers subsystem
и выбираем Periodic timer ticks
Теперь самое вкусное. Идём в Processors type and features
, ищем пункт Processor famaly
и указываем вашу серию процессора. К примеру если у вас Intel Core i5-4xxx
, указывайте Hasswell
(4 поколение процессора). Если вы точно не уверены, то можете выбрать пункт Native optimizations autodetected by GCC
. В этом случае, при сборке, компилятор сам определит что поддерживает ваш процессор, и включит все его фичи.
Идём ниже и включаем параметр Full preemptible kernel (RT)
. Режим жёсткого реального времени.
Листаем ниже и в пункте Timer frequency
выставляем частоту системных прерываний на 1000 Гц
Полностью выключаем любое энергосбережение. Это важно!
Слева ищем пункт Power management and ACPI options
и снимаем галочку с ACPI. Также выключаем энергосбережение процессора
sudo update-grub
Репозиторий модифицированного ядра . Официальный сайт .
Похожие статьи
-
Издержки господдержки: как и зачем меняли программу помощи ипотечникам Изменения программу помощи ипотечным заемщикам
Сегодня мы расскажем о том, что такое программа помощи ипотечным заемщикам и как именно вы можете получить помощь в погашении ипотеки от государства в 2019 году. Программа помощи ипотечным заемщикам в 2019 от государства, изменения и...
-
Затягивает в болото Почему болото засасывает человека объяснить
Трясина – это болото, которое засасывает. Оно способно засасывать только живые объекты. На основе озёр образуется трясина, когда она зарастает зелёным ковром из водорослей и мха. Но не во всех болотах. Болото возникает по причине...
-
Государственный архив российской федерации
Документы, в частности, проливают свет на отношения между СССР и нацистской Германией накануне войны. Также рассказывают, например, об обстоятельствах взрыва линкора «Новороссийск» в октябре 1955 года: корабль затонул, когда стоял на рейде...
-
Хранение хрена в домашних условиях на зиму Способы сохранения хрена на зиму
Хрен – это жгучая пряность, которая очень давно используется для приготовления пищи. Приправа из него не только придает пикантную остроту блюдам, но и обладает массой полезный свойств. Выкапывать корень рекомендуется или в конце марта, или...
-
Красильный чертополох травянистые растения для открытого грунта
Чертополох - это яркий представитель сложноцветных с розово-пурпурным цветением. Его отличительной чертой являются соцветия, окруженные по краю листьями с колючими кончиками. Чертополоху в разные времена приписывали магические свойства. К...
-
Доктор комаровский об аллергии у детей Аллергия у ребенка 1 год комаровский
С проявлениями аллергии у ребенка сталкивалась каждая мама и знает ее симптомы не понаслышке. Но иногда даже опытным родителям сложно определить причину высыпаний на коже и слезящихся глаз. Помочь разобраться в этом вопросе готов врач...