Русскоязычная документация по Ubuntu. Собираем своё собственное ядро 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
обладает минимальными возможностями и поддержкой оборудования, но при необходимости мы можем расширить возможности ядра с помощью kernel modules (модулей ядра)
. Для чего может понадобиться сборка или пересборка собственного ядра?
Например для включения/отключения каких-либо новых возможностей, или обновление старого ядра
на более новое с поддержкой новых возможностей, или просто для опытов как в нашем примере. Можно несколькими путями получить исходники
: Хочу отметить, что имя архива с исходниками
или пакета, имеет примерно следующий вид: linux-source-2.6.26
либо kernel-source-2.6.18.
Из листинга второго примера, видно что при установке исходников из репозитория, apt нам предлагает установить и остальные сопутствующие пакеты, без которых ядро собрать не получиться. Итак. После получения исходников
одним из вышеуказанных путей (копировании архива (в первом случае) и установки пакета (во втором случае)), мы получаем в каталоге /usr/src/
- архив с именем, аналогичным linux-source-2.6.26.tar.bz2
. Далее нам необходимо распаковать дынный архив командой: tar -xjf linux Kernel-server:~# cd /usr/src/
kernel-server:/usr/src# ln -s linux-2.6.36.1 linux
kernel-server:/usr/src# ls -l lin*
lrwxrwxrwx 1 root src 14 Дек 3 16:31 linux -> linux-2.6.36.1
-rw-r--r-- 1 root src 70236745 Дек 3 15:57 linux-2.6.36.1.tar.bz2
Прежде чем приступать к попытке сборки и конфигурированию, необходимо просмотреть файл Changes
, расположенный в каталоге Documentation. Он, среди прочего, содержит список пакетов, необходимых для сборки ядра
, с указанием номеров версий. Убедитесь, что эти пакеты установлены (если установка исходников производилась с помощью пакетного менеджера, то скорее всего нужные пакеты уже установлены). В распакованном дереве подкаталогов содержится файл Makefile
. make-файл
содержит различные цели сборки для конфигурирования опций ядра, сборки ядра и его модулей, установки модулей и сборки пакетов RPM или deb. Наиболее свежие версии исходников ядра позволяют использовать make help для получения краткой справки для каждой цели. В более старых системах было необходимо обращаться к документации или просматривать make-файл. Ниже показана часть вывода make help: Kernel-server:/usr/src/linux-2.6.36.1# make help
Cleaning targets:
clean - Remove most generated files but keep the config and
enough build support to build external modules
mrproper - Remove all generated files + config + various backup files
distclean - mrproper + remove editor backup and patch files
Configuration targets:
config - Update current config utilising a line-oriented program
nconfig - Update current config utilising a ncurses menu based program
menuconfig - Update current config utilising a menu based program
xconfig - Update current config utilising a QT based front-end
gconfig - Update current config utilising a GTK based front-end
oldconfig - Update current config utilising a provided .config as base
.......
Далее, если по каким либо причинам на ядро необходимо наложить патч, то его следует скачать заранее и положить в каталог /usr/src
. Если патчить ядро не нужно, можно смело переходить к конфигурированию. Патчится ядро следующим образом: Kernel-server:/usr/src/linux-2.6.36# gzip -cd ../patch-2.6.xx.gz | patch -p1 #или
Print-server:/usr/src/linux-2.6.36# bzip2 -dc ../patch-2.6.xx.bz2 | patch -p1
Текущая конфигурация ядра хранится в файле .config
. Данный файл формируется при помощи одной из конфигурационных целей (цель - это, говоря простым языком, команда выполняемая в виде make цель
): Цель config использует интерфейс командной строки для получения ответов многие на вопросы, касающиеся создания или обновления файла.config. Имхо, по сравнению с целями использующими меню - очень неудобная штука. cloneconfig
Копирование настроек текущего ядра в файл.config. Данная цель устарела и в новых ядрах заменена . (удобно для добавления новых функция текущего ядра) Цель menuconfig использует программу с меню-интерфейсом, построенную на базе ncurses, для создания или обновления файла.config. Вы должны только ответить на вопросы для элементов, которые хотите изменить. Этот подход заменил старую цель config. Выполняется в окне терминала удаленно или локально. Цель nconfig
использует программу с меню-интерфейсом, построенную на базе ncurses, для создания или обновления файла.config. Данная версия основана на , но имеет более современный внешний вид. Добавлена после релиза Linux-ядра 2.6.35. Вы должны только ответить на вопросы для элементов, которые хотите изменить. Выполняется в окне терминала удаленно или локально. Цель xconfig использует систему графического меню, основанную на QT front-end, используемом в KDE desktop. Цель gconfig использует систему графического меню, основанную на GTK front-end, используемом в GNOME desktop. oldconfig
Цель oldconfig позволяет создать конфигурацию с использованием существующего файла.config, созданного ранее или взятого из другой системы. Например, вы можете скопировать конфигурационный файл для вашей системы из /lib/modules/$(uname -r)/build/.config в /usr/src/linux. Сделав это, можно использовать одну из целей меню конфигурации, чтобы при необходимости внести изменения. Так же при выполнении данной команды, если в новом ядре добавлено много новых возможностей - будет задано много вопросов по настройке новых параметров. (удобно для добавления новых функция текущего ядра) Повторяю, что список всех целей
команд можно увидеть, введя make help.
Итак, начнем конфигурирование. Самая удобная для консоли, имхо - . После запуска команды, у меня вывалилось страшное сообщение: Kernel-server:/usr/src/linux-2.6.36.1# make menuconfig
*** Unable to find the ncurses libraries or the
*** required header files.
*** "make menuconfig" requires the ncurses libraries.
***
*** Install ncurses (ncurses-devel) and try again.
***
make: *** Ошибка 1
make: *** Ошибка 2
Чего-то не хватает, подумал Штирлиц (С)... Наверно пакета,содержащего имя ncurses
и раз уж это libraries, то скорее всего, пакет начинается на lib. Я полез в репозиторий: Kernel-server:/usr/src/linux-2.6.36.1# apt-cache search ncurses | grep ^lib
libcunit1-ncurses-dev - Unit Testing Library for C (ncurses) -- development files
libcunit1-ncurses - Unit Testing Library for C (ncurses)
libncurses-gst - Ncurses bindings for GNU Smalltalk
libkaya-ncurses-dev - Ncurses binding for kaya
libkaya-ncursesw-dev - Ncurses binding for kaya
libcurses-perl - Curses interface for Perl
libcurses-widgets-perl - Curses widget interface for Perl
libruby-extras - a bundle of additional libraries for Ruby
libruby1.8-extras - a bundle of additional libraries for Ruby 1.8
libtexttools-dev - Ada and C++ library for writing console applications
libtexttools2.0.5 - Ada and C++ library for writing console applications
libncurses-ruby1.8 - ruby Extension for the ncurses C library
libncurses-ruby1.9 - ruby Extension for the ncurses C library
libncurses-ruby - ruby Extension for the ncurses C library
lib64ncurses5-dev - developer"s libraries for ncurses (64-bit)
lib64ncurses5 - shared libraries for terminal handling (64-bit)
libncurses5-dbg - debugging/profiling libraries for ncurses
libncurses5-dev - developer"s libraries and docs for ncurses
libncursesw5-dbg - debugging/profiling libraries for ncurses
libncursesw5-dev - developer"s libraries for ncursesw
libcurses-ocaml-dev - OCaml bindings for the ncurses library
libcurses-ocaml - OCaml bindings for the ncurses library
libggi-target-terminfo - General Graphics Interface TermInfo display target
libncurses5 - разделяемые библиотеки для управления терминалом
libncursesw5 - библиотеки для управления терминалом (поддержка двухбайтовых символов)
Эта строка: libncurses5-dev - developer"s libraries and docs for ncurses
мне показалась нужной. Давайте установим: Kernel-server:/usr/src/linux-2.6.36.1# apt-get install libncurses5-dev
Чтение списков пакетов... Готово
Построение дерева зависимостей
Чтение информации о состоянии... Готово
НОВЫЕ пакеты, которые будут установлены:
libncurses5-dev
обновлено 0, установлено 1 новых пакетов, для удаления отмечено 0 пакетов, и 5 пакетов не обновлено.
Необходимо скачать 1546kБ архивов.
После данной операции, объём занятого дискового пространства возрастёт на 6599kB.
Получено:1 http://ftp.debian.org lenny/main libncurses5-dev 5.7+20081213-1
Получено 1546kБ за 4s (344kБ/c)
Выбор ранее не выбранного пакета libncurses5-dev.
(Чтение базы данных... на данный момент установлено 18098 файлов и каталогов.)
Распаковывается пакет libncurses5-dev (из файла.../libncurses5-dev_5.7+20081213-1_i386.deb)...
Обрабатываются триггеры для man-db ...
Настраивается пакет libncurses5-dev (5.7+20081213-1) ...
Готово, пробуем : Ура! Мы видим заветное меню конфигурирования ядра. Ниже показаны различные опции, позволяющие включать компоненты в ядро или создавать модули. Когда опция подсвечена, при помощи клавиши пробела можно перемещаться между возможными вариантами для данного компонента. Чтобы активировать опцию, нажмите y
, чтобы отключить -- n
, чтобы создать, если это возможно, модуль, нажмите m
. Выход из меню: Esc Esc. Ниже приведу описание основных разделов конфигурирования сменю (со временем будет пополняться): Я привел очень краткое описание разделов конфигурирования ядра. Конкретно по выбору настроек, я наверно, сделаю отдельный пост, ибо текущий вырос до огромных размеров. Самое лучшее описание настроек make menuconfig я нашел тут Gentoo Handbook . От себя скажу, что логичным будет выполнить make oldconfig (тем самым скопировав текущий.config установленной ОС), а потом запустить make menuconfig и отключить все ненужные функции (допустим я отключил поддержку WiFi, ненужных мне файловых систем jfs и т.п.). И в общем, я сторонник такого мнения, что заниматься оптимизацией ядра необходимо в очень крайних случаях, когда производительность ОС упирается в возможности железа. Соответственно, уменьшив размер ядра (отключив ненужные модули, включив их в состав ядра + отключив ненужные возможности), можно прибавить в производительности 1-2%. А на современных серверах, думаю это (переконфигурирование ядра) не особо актуально. Теперь, когда мы сконфигурировали ядро, мы готовы к его сборке. Если вы не знаете, каково состояние дерева для сборки, прежде чем приступать к конфигурированию нового ядра выполните make clean . Для более полной очистки выполните make mrproper (при этом - make mrproper - будет удален
файл.config, а также некоторые другие файлы, используемые в процессе сборки). В ходе пробы конфигурирования, желательно дать новому ядру специальное название, которое позволит вам легко его идентифицировать. Чтобы сделать это, необходимо установить значение Local version и активировать опцию Automatically append version information to the version string в соответствующей строке раздела General setup. В принципе, для сборки ядра не требуются полномочия root, несмотря на то, что для установки нового ядра
эти полномочия необходимы. Чтобы начать сборку ядра 2.6, необходимо выполнить make . Чтобы начать сборку ядра 2.4, необходимо выполнить 3 команды: После окончания сборки ядра, его необходимо установить. Перед установкой, необходимо выполнить make modules_install для установки модулей ядра в новый подкаталог /lib/modules. После установки модулей, необходимо выполнить make install для установки нового ядра и стартового RAM-диска (initial RAM disk) в каталог /boot и обновления конфигурации загрузчика. Хочу обратить внимание, что в процессе сборки автоматически создается необходимый стартовый RAM-диск (initial RAM disk или initrd). Если у вас возникнет необходимость создать его вручную, это можно сделать при помощи команды mkinitrd . После выполнения make install должен обновиться конфигурационный файл загрузчика. Но у меня он почему-то обновился после команды update-grub . На этом и закончу. Очень большая статья получилась. В ближайшем будущем постараюсь ее ужать. Имеющаяся информация о сборке ядра сильно разнится, поэтому будем описывать сборку ядра именно для Ubuntu. Постараемся. чтобы в командах, написанных в этой статье, небыло ошибок. При описании процесса компиляции, не остановимся только на получении ядра. Получить работоспособное ядро - этого мало. Для владельцев карт nVidia, здесь будет дано описание, как получить систему с работащей графикой на новом ядре. Причем, графика будет работать как в старом ядре, так и в новом. 1. Установка исходников ядра
Вначале нам нужны будут исходники ядра. Для Ubuntu 7.04
в репозитарии они уже есть, нужно найти пакет linux-source-тратата
(в нашем случае это будет linux-source-2.6.20
), и установить его (все это можно сделать через Synaptic
). После установки данного пакта, в каталоге /usr/src
появится файл с именем linux-source-2-6-20.tar.bz2
. Делаем под sudo
команду chmod 777 /usr/src Заходим обычным пользователем в каталог /usr/src
и распаковываем этот файл tar -jxvf linux-source-2-6-20.tar.bz2 Появится каталог с исходниками /usr/src/linux-source-2-6-20
. Архивный файл удаляем (нужны будут права рута). 2. Установка сопроводительных пакетов
Для сборки понадобятся еще пакеты kernel-package
, libncurses5-dev
, fakeroot
. Устанавливаем их через Synaptic
. Само собой, в системе также должен быть установлен компилятор gcc
и dev
-пакеты для системных библиотек, такие например как libc6-dev
. 3. Создание файла конфигурации ядра
Теперь нам нужен конфиг ядра, с которым собиралось ядро для убунты. Заходим в каталог /boot
, и видим там файл типа config-2.6.20-15-generic
. Он нам и нужен. Копируем его в каталог с исходниками /usr/src/linux-source-2-6-20
и переименовываем его в .config
. Обратите внимание, что имя файла начинается с точки, это не опечатка. Теперь, находясь в каталоге /usr/src/linux-source-2-6-20
, даем под обычным пользователем команду это запустится текстовый интерфейс настройки ядра. Можно так же запустить настройку в графическом режиме В
обоих случаях откроется интерфейсик с галочками, через который
конфигурируем ядро. Вроде как по умолчанию как раз и открывается файл .config
, который в данный момент и содержит стандартный конфиг ядра Убунты. Что
вы хотите наконфигурировать - думайте сами, по этому вопросу в инете
много русскоязычной документации. В задачу этой статьи входит только
описание самих действий, выполняемых при компиляции ядра Ubuntu.
В конце конфигурирования выбираем пункт "Save тратата кофигурацию", указываем имя файла, отличного от .config
, например .config_my_01
. Выходим. Теперь переименовываем .config
в .config_ubuntu
. И у вас получается два файла - .config_ubuntu
и .config_my_01
. Вы можете посмотреть различия между стандартной и вашей конфигурацией, например так diff .config .config_my_01 Теперь копируем вашу конфигурацию .config_my_01
под именем .config
. Т.е. у вас получится 3 конфиг файла. При компиляции будет использоваться файл .config
. Файлы .config_ubuntu
и .config_my_01
нам помогут в будущем для новой компиляции. Это на тот случай, если новое ядро окажется неработоспособным или глючным. 4. Компиляция
Перед компиляцией обязательно проверяем наличие свободного пространства (на том разделе, где лежат исходники). Хорошо бы меть 4-5Gb
(!) в запасе. При компиляции размер каталога с исходниками может разрастись до 3,5Gb
. Проверить свободное пространство можно командой Теперь, находясь под обычным пользователем в каталоге /usr/src/linux-source-2-6-20
,
даем команду, которая удалит в исходниках скомпилированные кем-то
объектники, которые остались от предыдущей компиляции и находились в
архиве. Потом через sudo получаем права рута и запускаем компиляцию. make-kpkg --initrd --revision=mybuild.1.0 kernel_image kernel_headers Где вместо "mybuild.1.0
" пишите что вам нужно. Допустимы английские буквы, цифры, точки. Символы подчеркивания и тире не допускаются. Вообще-то,
по-хорошему, компиляцию ядра надо делать под правами обычного
пользователя. Формально, создание бинарника ядра ничем не отличается от
компилирования бинарника любой другой программы. Но мы делаем
компиляцию не в ручном режиме (через команды типа make bzImage modules
), а в полуавтоматическом (через make-kpkg
). А эта программа, после прохождения компиляции, будет запускать из-под себя программу dpkg-deb
чтобы получить deb
-пакет с ядром. Вот в этот момент и потребуются права рута.
Теперь давайте разберемся, что же делает вышеприведенная команда. Она запускает компиляцию ядра, и затем создает deb
-пакет с именем linux-image-версия.deb
, в котором будут находиться бинарник ядра и модули ядра (это сделается благодаря цели kernel_image
). А так же будет создан deb
-пакет с именем linux-headers-версия.deb
, в нем будут находиться заголовочные файлы ядра (это сделается благодаря цели kernel_headers
). Полученные пакеты будут лежать в каталоге /usr/src
. Посмотреть, какие файлы находятся в этих deb
-пакетах, можно в konqueror
(в Kubuntu), щелкнув правой клавишей по на интересуемом deb
-файле и выбрав "Kubuntu package menu
" -> "Show package info
". Информация будет формироваться довольно медленно, около минуты, так как пакеты большие. 5. Установка ядра
Теперь устанавливаем ядро. Находясь с правами суперпользователя в каталоге /usr/src
, даем команду dpkg -i linux-image-версия.deb после которой ваше ядро (файл vmlinuz-2.6.20.3-ubuntu1
) будет помещено в каталог /boot
(все предыдущие ядра тоже никуда не денутся, останутся на своих местах), а в каталоге /lib/modules
, рядом с каталогом с модулями обычного ядра (в Ubuntu 7.04
называется /lib/modules/2.6.20-15-generic
) появится каталог с модулями вашего нового ядра (в нашем случае это будет /lib/modules/2.6.20.3-ubuntu1
). Новое ядро будет автоматически прописано в /boot/grub/menu.lst
. Впринципе, уже можно перегрузиться, и в экране загрузки Grub
появится новый пункт с вашим ядром. Новое ядро появится в начале списка. Но пока не спешим, а дадим еще команду dpkg -i linux-headers-версия.deb которая установит хедеры ядра в каталог /usr/src/linux-headers-версия
, в нашем случае это будет каталог /usr/src/linux-headers-2.6.20.3-ubuntu1
. Эти хедеры нам понадобятся, например, для перекомпиляции драйверов nVidia
для нового ядра. 6. Перезапуск
Перегружайтесь, и в меню Grub
вы увидите два новых пункта - обычная загрузка с вашим ядром, и
загрузка в минимальном консольном режиме. Выбирайте первый пункт. Если
ядро сразу не выпало в Kernel panic
, то это хороший признак.
Ждите конца загрузки. Если вам повезет, то Ubuntu загрузится в
графический режим и покажет графическое приглашение входа в систему. В
этом случае дальше можете не читать. Но для пользователей карт nVidia
, которые пользовали драйвера, установленными через "Менеджер проприетарных драйверов" или пользовали драйвера из пакета nvidia-glx
(или там nvidia-glx-new
), даю 99% гарантии, что вам не повезет! И графики под новым ядром вы не увидите! 7. Установка драйверов nVidia с сайта nvidia.com
Чтобы
получить работающие иксы под новым ядром, первое что приходит в голову
- это установить под новым ядром драйвера с сайта nvidia.com. И это
неправильное решение! Как только установятся дрова под новым ядром,
графика в вашем старом проверенном ядре работать перестанет (по причине
того, что файлы драйверов nVidia жестко завязаны на версию и название
ядра). А так как работоспособность нового ядра вы еще толком не
проверили, вы можете получить систему "с родным ядром, но без графики"
и "глючным ядром, зато с графикой". Думаю, никого такая ситуация не
устроит. В популярной статье "Ядерная физика для домохозяек",
есть рекомендации, как получить графику под обоими ядрами. Предлагается
следующий путь - иметь на готове установочный пакет дров с nvidia.com,
и при желании загрузиться под конкретным ядром, надо сначала
загрузиться в консольном режиме этого ядра, установить дрова, и потом
загрузиться уже нормально. Думаю, такой подход тоже мало кого обрадует. Мы
сделаем так, что графика будет работать и в старом ядре, и в новом
ядре, и для этого не нужно будет каждый раз запускать установку
(компиляцию) дров. Для этого нам нужно будет выполнить только одно
условие - чтобы графические дрова под разными ядрами были одной версии. Краткий план действий
- ставим дрова с сайта nvidia.com
для стандартного ядра в полном объеме. Убеждаемся что они работают.
Потом из этого же пакета ставим дрова для самодельного ядра, но в
режиме "только графический модуль". 8. Установка драйверов nVidia под обычное ядро
Все, что ниже написано, подходит и для тех, кто просто решил установить новые дрова nVidia под стандартное ядро!
Качаем с сайта nvidia.com
дрова под линух. Я себе качал дрова версии 96.43
. Файл называется NVIDIA-Linux-x86-96.43.01-pkg1.run
. Но вы можете попробовать другие стабильные релизы, которые присутствуют на сайте nVidia
. Для установки, создаем в каталоге /usr/src
подкаталог с именем nvidia
, копируем туда этот файл. Находясь в этом подкаталоге, даем файлу разрешение на выполнение chmod 777 NVIDIA-Linux-x86-96.43.01-pkg1.run Все, на этом работа в графическом интерфейсе на время заканчивается. Перед выходом из графрежима, запустите Synaptic
, и убедитесь, что у вас стоит Хороший
совет - иметь распечатаный текст данной статьи на бумажке, или
сохранить его в текстовый файл, который можно посмотреть из текстового
режима.
Перегружаемся в консольный режим обычного ядра (в Grub
есть такой пункт). В Ubuntu
вы автоматически получите права рута, даже пароль вводить ненадо. Теперь надо удалить дрова nVidia
, которые есть в системе. Если вы устанавливали дрова через "Менеджер проприетарных драйверов" (или путем установки пакета nvidia-glx
или nvidia-glx-new
), то пакет nvidia-glx/nvidia-glx-new
нужно удалить из системы, причем не просто деинсталлировать, а деинсталлировать в режиме purge
. Я достаточно тупой пользователь, и вместо того, чтобы разбираться с опциями dpkg
, в консоли пользуюсь программой aptitude
. Наберите команду и вы попадете в оболочку, оталенно напоминающую Synaptic
. Вверху будет подсказка по клавишам. Чтобы попасть в меню, нажимаем Ctrl+t
(неудобно, но что делать). В меню Теперь нажимаем "!
" (для особо одаренных - Shift+1
), тем самым мы соглашаемся с нашими изменениями. Потом нажимаем "q
" (выход). При выходе программа удалит отмеченные нами пакеты. Теперь такой момент. Мы сейчас находимся на уровне init 1
(только консоль, куча сервисов не запущена). Если запустить инсталляцию драйвера nVidia
, то она будет ругаться, что возможно у вас не запущен сервис devfs
, который обычно запускается на уровне 3
. Поэтому даем команду telinit 3
и
система догрузит нужные сервиса, а заодно выйдет из
однопользовательского режима (появится несколько консолей, которые
можно переключать клавишами ALT+F1
...ALT+F6
). Для
дальнейшей работы нам как раз понадобится две консоли. Кстати, система
попробует загрузить графику, ей это не удасться, т.к. драйвер мы только
что удалили. И она останется в 7
-й консоли с пустым экраном. Не паникуем, нажимаем ALT+F1
, видим первую консоль, там вводим логин, пароль так же как и в графическом входе (только после логина и пароля нажимаем Enter
а не TAB
). Залогинившись, вызываем mc
под суперпользователем Заходим в каталог /usr/src/nvidia
./NVIDIA-Linux-x86-96.43.01-pkg1.run -e Опция "-e
"
позволит нам видеть отчет о действиях и увидеть конфликтующие файлы.
Начинаем установку. Соглашаемся с лицензией. Отказываемся от докачки
исходников с ftp
нвидии. Говорим OK
что будут создаваться модули нами. На вопросы ввода путей просто нажимаем Enter
. В
конце концов, перед самой установкой будет показан список файлов
которые будут установлены. А в начале этого списка (если будут найдены)
покажутся конфликтующие файлы
. Будет написано "Backup file ...
" - вот это они и есть. В моем случае это были файлы /usr/lib/xorg/modules/extensions/libGLcore.so Это файлы от пакета nvidia-restricted-modules
. Дело в том, что если просто удалить этот пакет, то вместе с данными файлами удалятся и все файлы для nVidia
-чипсетов (nVidia
ведь не только видеокарточки делает). А так же потребуется удаление зависимых пакетов linux-restricted-modules-2.6.20-15-generic
, linux-restricted-modules-generic
и linux-generic
. Поэтому удалять данный пакет нежелательно. Поэтому мы поступим по-другому. Как только увидите такой список, логинтесь во вторую консоль (переход - ALT+F2
), запускайте и
методично переносите эти конфликтующие файлы куда-нить в отдельный
каталог в домашней директории, сверяясь со списком в первой консоли.
Почему переносить а не удалять? Дело в том, что имена файлов в линухе
"человеконечитаемые", и легко можно ошибиться и удалить не тот файл. После того, как удалили все файлы, предназначенные для Backup
, возвращайтесь в первую консоль. Прерывайте установку (Ctrl+c
) и запускайте ее заново. Если "Backup file ...
" больше не будет, то завершайте установку. Все должно пройти гладко. Можете согласиться с исправлением xorg.conf
, всеравно содасться резервный файл. Теперь внимание!
Самое главное, в этот момент не перегрузиться!
А зайти в файл /etc/default/linux-restricted-modules-common
, и добавить в опцию DISABLED_MODULES
модули nv
и nvidia_new
. У меня это сделано так DISABLED_MODULES="nv nvidia_new" Если этого не сделать, то при следующей загрузке файл (который вы удалили!) /lib/modules/2.6.20-15-generic/volatile/nvidia.ko
будет автоматически восстановлен
из пакета nvidia-restricted-modules
. А ваш файл, который вы скомпилировали при установке драйверов, называется /lib/modules/2.6.20-15-generic/kernel/drivers/video/nvidia.ko
. Так вот, при запуске иксов будет найден первый файл. А до вашего файла дело не дойдет. И иксы не смогут загрузиться. Перегружаемся
в стандарное ядро в полный режим. Если все сделали правильно, иксы
запустяться. Радуйтесь, как минимум у вас осталась работоспособная
система. 9. Установка драйверов nVidia под самодельное ядро
Теперь
остался последний шаг - заставить работать графику в новом ядре. Тут
все достаточно просто. Загружаемся в консольном режиме самодельного
ядра. Даем команду логинимся, и в первой консоли запускаем Заходим в каталог /usr/src/nvidia
и начинаем установку дров командой ./NVIDIA-Linux-x86-96.43.01-pkg1.run -Ke Опции "-Ke
" позволяют собрать только графический модуль nvidia.ko
под текущее ядро (и файл будет помещен в каталог /lib/modules/имя_текущего_ядра/kernel/drivers
). Никаких других общих файлов, которые например были бы размещены в /usr/lib...
как при компиляции с опцией "-e", создаваться не будет. Точно так, же как и при компиляции в стандартном ядре, соглашаемся с путями нажатием Enter
.
Доходим до экрана, где будут перечислены файлы, которые будут
установлены. Если в начале этого списка есть конфликтущие файлы "Backup file ...
", переключаемся в соседнюю консоль и удаляем (переносим) эти файлы. После удаления конфликтующих файлов, в первой консоли прерывайте установку (Ctrl+c
), и снова ее запускайте (с опцией "-Ke
" естественно). После завершения установки перегружайтесь, выбрав в меню Grub
в полный режим с вашим ядром. Иксы должны запуститься. Вы можете радоваться второй раз - вы имеете систему с самодельным ядром и работащей графикой. В любой момент вы можете теперь загрузиться под нужным ядром, и везде графика должна работать. На этом все. Ядро дистрибутивов Linux — основа операционной системы, которая отвечает за совместимость с устройствами и выполняет другие важные опции. Сейчас разработчики стараются раз в несколько месяцев или даже чаще выпускать обновления ядер для введения новых функций и поддержки производимого оборудования. К Ubuntu эта тема тоже относится, поэтому некоторые обладатели данного дистрибутива сталкиваются с необходимостью инсталляции апдейтов. Выполняется данная процедура относительно сложно, поскольку каждое действие будет производиться через «Терминал»
. Далее мы хотим продемонстрировать два способа, позволяющих справиться с поставленной задачей. Официальный сайт, на котором находится информация по каждому обновлению ядра, называется . Именно там вы можете просмотреть абсолютно все апдейты и изменения, внесенные в интересующую версию. Что же касается самого процесса обновления, то происходит он в ручном или автоматическом режиме. Каждый из этих вариантов имеет свои сложности и особенности, поэтому мы предлагаем детально изучить их по очереди, чтобы в итоге остановиться на оптимальном. Однако для начала давайте разберемся, как узнать текущую версию ядра. Определение текущей версии ядра в Убунту происходит через стандартный «Терминал»
путем ввода всего одной команды. Для этого даже не понадобятся права суперпользователя, а весь процесс займет всего несколько секунд. Теперь вы знаете, какое именно ядро используется в вашей сборке и сможете понять, стоит ли его сейчас обновлять и от какого типа отталкиваться. В будущем, по завершении инсталляции апдейтов, мы рекомендуем задействовать эту команду, чтобы определить корректность установки файлов. Ручной режим обновления ядра в Ubuntu займет немного больше времени, нежели автоматический, но при этом вы получите вариативность в выборе версий и даже сможете их скачать заранее с другого компьютера, например, на флешку, если подключение к сети на главном ПК отсутствует. От вас потребуется лишь предварительно выбрать подходящую сборку и задействовать приведенные команды, чтобы инсталлировать ее. Проблемы с инсталляцией ядра через стандартный менеджер пакетов — ситуация часто встречающаяся. В большинстве случаев она решается путем использования стороннего установщика. Для начала его следует добавить, а потом уже воспользоваться встроенными функциями. Сразу же после перезагрузки компьютера все изменения вступят в силу. Теперь вы будете использовать операционную систему на новом ядре. Если вдруг загрузчик по каким-либо причинам сломался, обратитесь к разделу в конце данного материала. Там мы детально расскажем о причинах неполадок и опишем метод решения. Этот метод подойдет тем пользователям, которые хотят получать обновления регулярно, задействовав для этого одно и то же средство, устанавливающее на ПК самую последнюю версию ядра. Осуществляется эта операция путем использования скрипта. Давайте рассмотрим, как создать его и инсталлировать апдейты для ядра Ubuntu. Теперь каждый раз, когда понадобится выполнить поиск обновлений ядра, вы можете задействовать указанную выше команду для осуществления поставленной задачи в автоматическом режиме. Вам лишь останется подтверждать все предупреждения о расширении занятого дискового пространства. Если скрипт больше не нужен, рекомендуется удалить его из системы через следующие команды: rm ~/.config/autostart/KernelUpdate.desktop Иногда во время инсталляции апдейтов для ядра происходят ошибки или же пользователь сам завершил установку файлов невовремя. В таких ситуациях возникает неполадка, при которой операционная система попросту перестает загружаться. Касается это и обладателей проприетарных драйверов от компании NVIDIA. Решение здесь одно: загрузиться со старого ядра и удалить новое с дальнейшей переустановкой или выбором более стабильной версии. В рамках сегодняшнего материала вы узнали о двух методах обновления ядра в Ubuntu. Как видите, для осуществления каждого из них придется выполнить ряд консольных команд, но выбор самого варианта уже зависит от ваших потребностей. Используйте представленную в конце статьи инструкцию, чтобы быстро решить возникшие неполадки с загрузкой ПК после инсталляции новой версии ядра.Шаг 4. Конфигурация будущей сборки ядра
Шаг 5. Сборка ядра
Шаг 6. Установка образов и заголовков ядра
Если вы не знаете точного названия пакета, выведите список файлов в домашнем каталоге командойШаг 7. Генерация начального RAM-диска
Шаг 8. Обновление конфигурации загрузчика GRUB
Шаг 9. Проверка ядра
Получение исходников ядра и подготовка к конфигурированию
wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.36.1.tar.bz2
cp linux-2.6.36.1.tar.bz2 /usr/src/
Конфигурирование
Раздел
Пареметр
Описание
General setup
Этот раздел позволяет добавить идентификационную строку к вашему ядру, а также ряд атрибутов, которые не имеют отношения к каким-либо разделам, но тем не менее должны быть описаны.
Enable loadable module support
Этот раздел содержит опции, определяющие, будет ли ваше ядро поддерживать модули и будут ли они подгружаться и выгружаться автоматически. Опцию "Enable loadable module support" следует включить.
Processor type and features
Этот раздел содержит специфичные для данного типа процессора конфигурационные опции. Здесь вы можете выбрать процессор и семейство процессора, которые будут поддерживаться вашим ядром. Вы можете включать или отключать поддержку ядром различных возможностей, предоставляемых данным процессором. Убедитесь, что вы включили поддержку многопроцессорных систем (symmetric multi-processing support), если в вашем системе установлено более одного процессора или процессор поддерживает технологию hyperthreading. Кроме того, для получения большей производительности графической подсистемы в системах с AGP или PCI видеокартами следует включить поддержку MTRR.
Power management options
В этом разделе помещены опции, касающиеся управления питанием. Особенно они важны для ноутбуков. Кроме контроля состояния питания, вы сможете найти там средства для контроля и мониторинга таких параметров как температура или состояние охлаждающего вентилятора.
Bus options (PCI etc.)
Этот раздел содержит опции для компьютерных шин, поддерживаемых вашей системой, таких как PCI, PCI Express и PC Card. Здесь вы можете включить поддержку файловой системы /proc/pci, которой можно пользоваться вместе с обычно используемой командой lspci.
Executable file formats / Emulations
Этот раздел содержит опции, касающиеся поддержки различных форматов бинарных файлов. Следует включить поддержку "ELF binary". Кроме того, можно включить поддержку DOS binaries для запуска их под DOSEMU, также как и других поддерживаемых соответствующими wrapper"ами бинарных файлов, таких как Java™, Python, Emacs-Lisp и т.д. Наконец, для 64-битных систем, поддерживающих 32-битную эмуляцию, вы, возможно, захотите включить поддержку 32-битных приложений.
Networking
Секция, касающаяся настроек сети, довольно велика. Здесь вы можете включить базовую поддержку сокетов, сетей TCP/IP, фильтрацию, маршрутизацию и bridging сетевых пакетов, а также поддержку различных протоколов, таких как IPV6, IPX, Appletalk и X.25. Кроме того, вы можете включить поддержку wireless, infrared и amateur radio.
Device drivers
Этот раздел также очень велик. Здесь вы можете включить поддержку большого числа аппаратных устройств, включая IDE/ATAPI или SCSI диски, или flash-диски. Включите DMA для ваших IDE устройств; иначе они будут работать в более медленной PIO-моде. Если вы хотите иметь поддержку multiple devices, таких как RAID или LVM, соответствующие опции также надо включить. Здесь вы также можете включить поддержку параллельного порта для работы с принтером через этот интерфейс. Здесь происходит конфигурирование широкого набора поддерживаемых сетевых устройств для различных сетевых протоколов, которые мы конфигурировали ранее. Кроме того, здесь вы найдете опции поддержки устройств аудио- и видео-захвата, устройств USB и IEEE 1384 (Firewire), а также различного рода устройств аппаратного мониторинга. В разделе управления символьными устройствами (Character Devices) вы, возможно, захотите включить поддержку печати через параллельный порт и поддержку direct rendering.
Firmware drivers
Этот раздел содержит несколько опций, относящихся к установке и обновлению BIOS, таких как использование функций Dell System Management на некоторых системах производства компании Dell.
File systems
Этот раздел предназначен для конфигурирования файловых систем, поддержку которых вы хотите иметь в вашем ядре, скомпилированных в виде модулей или нет. Также вы сможете найти здесь файловые системы для съемных дисковых устройств (дискеты, CD и DVD устройства), а также сетевых файловых систем, таких как NFS, SMB или CIFS. Поддержка различных типов разделов и национальных кодировок Native Language Support также располагаются в этом разделе.
Kernel hacking
Этот раздел позволяет включать режим отладки ядра и выбирать, какие дополнительные функции будут включены.
Security options
Этот раздел предназначен для конфигурирования опций защиты, а также включения и конфигурирования SELinux (Security Enhanced Linux).
Cryptographic options
В это разделе можно сконфигурировать поддержку различных алгоритмов шифрования, таких как MD4, DES и SHA256.
Library routines
Здесь вы можете указать ряд алгоритмов вычисления контрольных сумм (CRC), которые будут включены в ядро или собраны как модули.
Сборка Ядра
make dep
make bzImage
make modules
Первая создает файлы необходимых зависимостей. Вторая собирает ядро. И последняя собирает модули.Установка нового ядра
стрелками и клавишей Enter
находим и выбираем пункт "Find
". Пишем строку поиска - nvidia-glx
. Засветка попадет на нужный пакет. Снова вызываем меню, и находим там пункт "Purge
".
Нажимаем его, и пакет, на котором стоит засветка, будет помечен для
полного деинсталлирования всех его файлов из системы (сам пакет
останется в кеше, его можно будет заново установить при необходимости).
Внизу появится подсказка - "e - Examine, ! - remove
". Нажимаем "e
" - и видим какие пакеты будут удалены. Если от nvidia-glx
будут зависеть пакеты, то они тоже будут деинсталлированы. Обычно это пакет nvidia-glx-dev
. Ничего страшного, что он удалится тоже.
/usr/lib/xorg/modules/extensions/libglx.so
/usr/lib/libGL.so
/usr/lib/libGL.so.1
/usr/lib/libGL.so.1.2
/lib/modules/2.6.20-15-generic/volatile/nvidia.ko
/usr/include/GL/glext.h
/usr/include/GL/gl.h
/usr/include/GL/glxext.h
/usr/include/GL/glx.hОпределяем текущую версию ядра в Ubuntu
Способ 1: Ручной режим обновления
Способ 2: Автоматическое обновление ядра
sudo rm /usr/local/bin/KernelUpdate{Checker,ScriptGenerator}Решение проблем с загрузчиком GRUB после обновления ядра