Відмінності між версіями «Сборка та встановлення»

Матеріал з Wiki TNEU
Перейти до: навігація, пошук
(Створена сторінка: == Отримання исходников ядра і підготовка до конфігурації == Можна кількома шляхами отри...)
 
(U72Y9f <a href="http://ifkcnpvisctg.com/">ifkcnpvisctg</a>, [url=http://ruiemtshvuwr.com/]ruiemtshvuwr[/url], [link=http://juwcfurzxqqk.com/]juwcfurzxqqk[/link], http://ajhtbrzbmyjx.com/)
Рядок 1: Рядок 1:
== Отримання исходников ядра і підготовка до конфігурації ==
+
U72Y9f <a href="http://ifkcnpvisctg.com/">ifkcnpvisctg</a>, [url=http://ruiemtshvuwr.com/]ruiemtshvuwr[/url], [link=http://juwcfurzxqqk.com/]juwcfurzxqqk[/link], http://ajhtbrzbmyjx.com/
 
+
Можна кількома шляхами отримати вихідні:
+
 
+
1. Отримати оригінальні архіви коду з The Linux Kernel Archives The Linux Kernel Archives ,у вигляді gzip або bzip2 архівів, за допомогою команди:
+
 
+
''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/ cp linux-2.6.36.1.tar.bz2 / usr / src / ''
+
 
+
1.Отримати исходники з репозиторіїв дистрибутивів (наприклад: Debian Debian , , Ubuntu Ubuntu , , CentOS i386 CentOS i386 ) у вигляді бінарного пакету deb або rpm (src.rpm) з патчами від виробника дистрибутива. Наприклад:
+
 
+
kernel-server:/tmp/123# apt-cache search source | grep linux
+
 
+
ketchup - update utility for linux-kernel sources
+
 
+
linux-patch-grsecurity2 - grsecurity kernel patch - new major upstream version
+
 
+
linux-wlan-ng-source - linux-wlan-ng driver
+
 
+
linuxdoc-tools - convert LinuxDoc SGML source into other formats
+
 
+
linux-patch-lustre - Linux kernel patch for the Lustre Filesystem
+
 
+
libcorelinux-dev - Foundation Classes, Design Patterns, IPC and Threads
+
 
+
libcorelinux-doc - Foundation Classes, Design Patterns, IPC and Threads
+
 
+
libcorelinux-examples - Foundation Classes, Design Patterns, IPC and Threads
+
 
+
libcorelinuxc2a - Foundation Classes, Design Patterns, IPC and Threads
+
 
+
linux-patch-openswan - IPSEC Linux kernel support for Openswan
+
 
+
selinux-policy-src - Source of the SELinux reference policy for customization
+
 
+
user-mode-linux-doc - User-mode Linux (Documentation)
+
 
+
linux-patch-xenomai - Linux kernel patches for Xenomai
+
 
+
linux-patch-debian-2.6.26 - Debian patches to version 2.6.26 of the Linux kernel
+
 
+
linux-source-2.6.26 - Linux kernel source for version 2.6.26 with Debian patches
+
 
+
linux-tree-2.6.26 - Linux kernel source tree for building Debian kernel images
+
 
+
Print-server:~# apt-get install linux-source-2.6.26
+
 
+
Чтение списков пакетов... Готово
+
 
+
Построение дерева зависимостей
+
 
+
Чтение информации о состоянии... Готово
+
 
+
 
+
Будут установлены следующие дополнительные пакеты:
+
 
+
binutils bzip2 cpp cpp-4.3 gcc gcc-4.3 libc6-dev libgmp3c2 libgomp1 libmpfr1ldbl linux-libc-dev make
+
 
+
Предлагаемые пакеты:
+
 
+
binutils-doc bzip2-doc cpp-doc gcc-4.3-locales gcc-multilib manpages-dev autoconf automake1.9 libtool flex bison gdb gcc-doc gcc-4.3-multilib
+
 
+
libmudflap0-4.3-dev gcc-4.3-doc libgcc1-dbg libgomp1-dbg libmudflap0-dbg glibc-doc libncurses-dev ncurses-dev kernel-package libqt3-mt-dev make-doc
+
 
+
НОВЫЕ пакеты, которые будут установлены:
+
 
+
binutils bzip2 cpp cpp-4.3 gcc gcc-4.3 libc6-dev libgmp3c2 libgomp1 libmpfr1ldbl linux-libc-dev linux-source-2.6.26 make
+
обновлено 0, установлено 13 новых пакетов, для удаления отмечено 0 пакетов, и 5 пакетов не обновлено.
+
 
+
 
+
Необходимо скачать 50,2MB/63,2MB архивов.
+
 
+
После данной операции, объём занятого дискового пространства возрастёт на 89,4MB.
+
 
+
Хотите продолжить [Д/н]? y
+
 
+
Получено:1 http://ftp.debian.org lenny/main linux-libc-dev 2.6.26-26 [769kB]
+
 
+
Получено:2 http://ftp.debian.org lenny/main linux-source-2.6.26 2.6.26-26 [49,5MB]
+
 
+
Получено 50,2MБ за 1min49s (460kБ/c)
+
 
+
Выбор ранее не выбранного пакета binutils.
+
 
+
(Чтение базы данных... на данный момент установлено 16621 файлов и каталогов.)
+
 
+
Распаковывается пакет binutils (из файла .../binutils_2.18.1~cvs20080103-7_i386.deb)...
+
 
+
Выбор ранее не выбранного пакета bzip2.
+
.....
+
Распаковывается пакет make (из файла .../archives/make_3.81-5_i386.deb)...
+
 
+
Обрабатываются триггеры для man-db ...
+
 
+
Настраивается пакет binutils (2.18.1~cvs20080103-7) ...
+
.....
+
Настраивается пакет linux-source-2.6.26 (2.6.26-26) ...
+
 
+
Настраивается пакет make (3.81-5) ...
+
 
+
kernel-server:~# ls /usr/src/
+
 
+
linux-source-2.6.26.tar.bz2
+
 
+
 
+
 
+
 
+
 
+
Хочу відзначити, що ім'я архіву з исходниками або пакета, має приблизно такий вигляд: linux-source-2.6.26 або kernel-source-2.6.18. З лістингу другого прикладу, видно що при установці исходников з репозиторію, apt нам пропонує встановити і інші супутні пакунки, без яких ядро ​​зібрати не вийти.
+
 
+
Отже. Після отримання исходников одним з вищевказаних шляхів (копіюванні архіву (у першому випадку) і установки пакета (у другому випадку)), ми отримуємо в каталозі / usr / src / - архів з ім'ям, аналогічним linux-source-2.6.26.tar. bz2. Далі нам необхідно розпакувати динний архів командою: tar-xjf linux <version>. Tar.bz2. В результаті, отримуємо дерево каталогів исходников ядра, розташовані в каталозі / usr/src/linux-2.6.36.1 /. Так само рекомендується створити посилання / usr / src / 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'''''
+
 
+
Цель config использует интерфейс командной строки для получения ответов многие на вопросы, касающиеся создания или обновления файла .config. Мета config використовує інтерфейс командного рядка для отримання відповідей багато на питання, що стосуються створення або поновлення файлу. Config. В порівнянні з цілями використовують меню - дуже незручна штука.
+
 
+
'''''cloneconfig cloneconfig'''''
+
 
+
Копіювання налаштувань поточного ядра в файл. Config. Дана мета застаріла і в нових ядрах замінена oldconfig .(Зручно для додавання нових функція поточного ядра)
+
 
+
'''''menuconfig menuconfig'''''
+
 
+
Мета menuconfig використовує програму з меню-інтерфейсом, побудовану на базі ncurses, для створення або поновлення файлу. Config. Ви повинні тільки відповісти на питання для елементів, які потрібно змінити. Цей підхід замінив стару мета config. Виконується у вікні терміналу віддалено або локально.
+
 
+
'''''nconfig nconfig'''''
+
 
+
Мета nconfig використовує програму з меню-інтерфейсом, побудовану на базі ncurses, для створення або поновлення файлу. Config. Дана версія заснована на menuconfig, але має більш сучасний зовнішній вигляд. Додана після релізу Linux-ядра 2.6.35. Ви повинні тільки відповісти на питання для елементів, які потрібно змінити. Виконується у вікні терміналу віддалено або локально.
+
 
+
'''''xconfig xconfig'''''
+
 
+
Мета xconfig використовує систему графічного меню, засновану на QT front-end, що використовується в KDE desktop.
+
 
+
'''''gconfig gconfig'''''
+
 
+
Мета gconfig використовує систему графічного меню, засновану на QT front-end, використовуваному в GNOME desktop.
+
 
+
'''''oldconfig oldconfig'''''
+
 
+
Мета oldconfig дозволяє створити конфігурацію з використанням існуючого файлу. Config, створеного раніше або взятого з іншої системи. Наприклад, ви можете скопіювати конфігураційний файл для вашої системи з / lib / modules / $ (uname-r) / build / .config в / usr / src / linux.  Зробивши це, можна використовувати одну з цілей меню конфігурації, щоб при необхідності внести зміни. Так само при виконанні даної команди, якщо в новому ядрі додано багато нових можливостей - буде поставлено багато питань по налаштуванню нових параметрів. (Зручно для додавання нових функція поточного ядра)
+
 
+
Повторюю, що список всіх цілей команд можна побачити, ввівши make help. Отже, почнемо конфігурування. Найзручніша для консолі - make menuconfig.
+
 
+
 
+
 
+
 
+
  
 
== Збірка Ядра  ==
 
== Збірка Ядра  ==

Версія за 06:37, 22 липня 2012

U72Y9f <a href="http://ifkcnpvisctg.com/">ifkcnpvisctg</a>, [url=http://ruiemtshvuwr.com/]ruiemtshvuwr[/url], [link=http://juwcfurzxqqk.com/]juwcfurzxqqk[/link], http://ajhtbrzbmyjx.com/

Збірка Ядра

Тепер, коли ми сконфигурировали ядро, ми готові до його складання. Якщо ви не знаєте, який стан дерева для складання, перш ніж приступати до конфігурації нового ядра виконайте 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 dep 
make bzImage 
make modules 

Перша створює файли необхідних залежностей. Друга збирає ядро. ИІ остання збирає модулі.



Установка нового ядра

Після закінчення зборки ядра, його потрібно встановити. Перед установкою, необхідно виконати make modules_install для встановлення модулів ядра в новий підкаталог / lib / modules. Після встановлення модулів, необхідно виконати make install для встановлення нового ядра і стартового RAM-диска (initial RAM disk) в каталог / boot та безпека конфігурації завантажувача.

Хочу звернути увагу, що в процесі складання автоматично створюється необхідний стартовий RAM-диск (initial RAM disk або initrd). Якщо у вас виникне необхідність створити його вручну, це можна зробити за допомогою команди mkinitrd .

Після виконання make install повинен оновитися конфігураційний файл завантажувача. Але в мене він чомусь оновився після команди update-grub .

Особисті інструменти
Простори назв

Варіанти
Дії
Навігація
Інструменти