Как да изградите свое собствено ядро ​​на Linux. Рускоезична документация за Ubuntu

Защо някой би искал да компилира ново ядро? Често не е необходимо, тъй като ядрото по подразбиране, доставяно с Debian, обработва повечето конфигурации. Освен това Debian често предлага няколко алтернативни ядра. Така че може да искате първо да проверите дали има алтернативен пакет с изображение на ядрото, който по-добре отговаря на вашия хардуер. Въпреки това, може да бъде полезно да се компилира ново ядро, за да:

Не се страхувайте да опитате да компилирате ядрото. Това е забавно и печелившо.

За да компилирате ядрото по начина на Debian, имате нужда от някои пакети: и няколко други, които вероятно вече са инсталирани (вижте пълния списък).

Този метод ще направи .deb на вашия източник на ядрото и, ако имате нестандартни модули, направете и синхронизиран зависим .deb от тях. Това е по-добър начин за управление на изображения на ядрото; ще съдържа ядрото, System.map и дневник на активния конфигурационен файл за компилацията.

Имайте предвид, че не го правите иматда компилирате ядрото си по „начин на Debian“; но откриваме, че използването на системата за опаковане за управление на ядрото ви всъщност е по-безопасно и по-лесно. Всъщност можете да получите вашите източници на ядрото направо от Linus вместо от , но все пак да използвате метода за компилация.

Имайте предвид, че ще намерите пълна документация за използването под . Този раздел съдържа само кратък урок.

Оттук нататък ще приемем, че имате свобода на вашата машина и ще извлечете вашия източник на ядрото някъде във вашата домашна директория. Ще приемем също, че вашата версия на ядрото е 3.16. Уверете се, че сте в директорията, където искате да разопаковате източниците на ядрото, да ги извлечете с помощта и да промените в директорията, която ще бъде създадена.

Сега можете да конфигурирате ядрото си. Изпълнете, ако X11 е инсталиран, конфигуриран и се изпълнява; стартирайте в противен случай (ще трябва да инсталирате). Отделете време да прочетете онлайн помощта и да изберете внимателно. Когато се съмнявате, обикновено е по-добре да включите драйвера на устройството (софтуерът, който управлява хардуерни периферни устройства, като Ethernet карти, SCSI контролери и т.н.), за който не сте сигурни. Бъдете внимателни: други опции, които не са свързани с конкретен хардуер, трябва да бъдат оставени на стойността по подразбиране, ако не ги разбирате. Не забравяйте да изберете "Kernel module loader" в "Loadable module support" (не е избрано по подразбиране). Ако не е включена, вашата инсталация на Debian ще има проблеми.

Почистете изходното дърво и нулирайте параметрите. За да направите това, направете.

Сега компилирайте ядрото: . Номерът на версията на “1.0” може да бъде променен по желание; това е само номер на версията, който ще използвате за проследяване на вашите компилации на ядрото. По същия начин можете да поставите произволна дума на мястото на „по избор“ (напр. име на хост). Компилацията на ядрото може да отнеме доста време, в зависимост от мощността на вашата машина.

След като компилацията приключи, можете да инсталирате вашето персонализирано ядро ​​като всеки пакет. Като root, направете . Частта е незадължителна подархитектура, в зависимост от това какви опции на ядрото сте задали. ще инсталира ядрото, заедно с някои други хубави поддържащи файлове. Например, ще бъде правилно инсталиран (полезен за отстраняване на грешки на проблеми с ядрото) и ще бъде инсталиран, съдържащ текущия ви конфигурационен набор. Вашият нов пакет на ядрото също е достатъчно умен, за да актуализира автоматично зареждащия ви инструмент, за да използва новото ядро. Ако сте създали пакет модули, ще трябва да инсталирате и този пакет.

Време е да рестартирате системата: прочетете внимателно всяко предупреждение, което горната стъпка може да е довела, след това .

За повече информация относно ядрата на Debian и компилацията на ядрото, вижте Наръчника за ядрото на Debian Linux. За повече информация относно , прочетете изящната документация в .

Ако си спомняте, не толкова отдавна научихме как да изградим ядрото на FreeBSD от източник. Въпросът е защо не се научите да правите същото с ядрото на Linux? Причините за изграждане на ядрото на Linux от източника са като цяло едни и същи - получаване на най-новата версия на ядрото, спешно прилагане на корекции за сигурност, оптимизиране за конкретни задачи и специфичен хардуер, както и желанието да участвате в разработката на ядрото, дори в ролята на QA.

Важно!Следването на инструкциите в тази публикация може да доведе до загуба на вашите данни. Правете резервни копия и не забравяйте, че правите всичко на свой собствен риск и риск. Всичко описано по-долу е тествано на Ubuntu 14.04 LTS. Но в други версии на Ubuntu, както и в други дистрибуции на Linux, разликите трябва да са минимални.

Настройка на bootloader

Редактирайте /etc/default/grub по следния начин:

GRUB_DEFAULT=0
#GRUB_HIDDEN_TIMEOUT=10
#GRUB_HIDDEN_TIMEOUT_QUIET=вярно
GRUB_TIMEOUT=10
GRUB_DISTRIBUTOR=`lsb_release -i-s2>/dev/null ||echo Debian`
GRUB_CMDLINE_LINUX_DEFAULT="тих плисък"
GRUB_CMDLINE_LINUX=""

След редактиране казваме:

sudo update-grub

В резултат на това, преди системата да се стартира, ще бъдете подканени за 10 секунди да изберете ядрото, с което искате да стартирате. Много удобно, ако объркате конфигурацията на ядрото си и искате да стартирате с предишна версия!

Инсталирайте зависимости

Ще ни трябват поне следните пакети:

sudoapt-get installgitgccmakebc fakeroot dpkg-dev\
libncurses5-dev libssl-dev

В много системи обаче всички те вече ще присъстват.

Получаване на източника

wget https://www.kernel.org/pub/linux/kernel/v4.x/linux-4.6.4.tar.xz
tar-xz-xvf linux-4.6.4.tar.xz
компактдиск с Linux-4.6.4

Или, ако искате най-новото, можете да вземете източника директно от Git:

# Огледало: https://github.com/torvalds/linux
git clone'git://git.kernel.org/pub/scm/linux/kernel/git/'\
'torvalds/linux.git'
cd linux

Съдейки по факта, че не можах да намеря етикета v4.6.4 в Git, изданията на ядрото на Linux се правят изключително под формата на компресирани tar архиви.

Ако вместо ванилов ядро, искате да изградите ядро ​​с пачове от Canonical:

git клонинг git://kernel.ubuntu.com/ubuntu/ubuntu-trusty.git
cd ubuntu-доверен
git tag|по-малко
git checkout Ubuntu-lts-4.4.0-31.50_14.04.1

От моя собствен опит, ако използвате Ubuntu, можете безопасно да използвате ваниловото ядро. Малко вероятно е да имате някакви проблеми с него.

Забележка:Интересното е, че от съществуващите сравнително популярни дистрибуции на Linux, изглежда, че само Gentoo, Slackware и Arch Linux използват ядро ​​без свои собствени пачове.

Както и да е, сега имате изходния код.

Компилиране и инсталиране на ядрото

Изберете опциите, с които ще бъде изградено ядрото:

Ако е необходимо, променете настройките, щракнете върху Запиши и след това Изход. В резултат на това ще бъде създаден файл, съдържащ избраните от нас параметри.

В актуализиранеядро (все пак използвате ли някакъв вид ядро?) Удобно е да вземете конфигурацията на текущото ядро ​​и да зададете новите опции на техните стойности по подразбиране:

zcat/proc/config.gz > ./.config
направете olddefconfig

Накрая събираме:

make-j4 bindeb-pkg LOCALVERSION=-по избор

Ядрото се сглобява доста дълго време. На моя лаптоп сглобяването отне 1 час и 15 минути. От този момент обаче относноОстаналото се изразходва за изграждане на гигантски пакет на ядрото със символи за отстраняване на грешки.

Ръчно изграждане и конфигуриране на ядрото на Linux

Сглобяването на този пакет може да бъде деактивирано чрез коментиране на параметъра CONFIG_DEBUG_INFO в конфигурацията. Само имайте предвид, че този пакет се изисква от SystemTap и други полезни инструменти.

В допълнение към самото ядро, можете също да събирате документация:

# има също `make pdfdocs` и други, вижте `make help`
направете htmldocs
chromium-browser Documentation/DocBook/index.html

При завършване на монтажа дъщерно дружестводиректория виждаме нещо като:

linux-firmware-image-4.4.13-custom_4.4.13-custom-1_amd64.deb
linux-headers-4.4.13-custom_4.4.13-custom-1_amd64.deb
linux-image-4.4.13-custom_4.4.13-custom-1_amd64.deb
linux-image-4.4.13-custom-dbg_4.4.13-custom-1_amd64.deb
linux-libc-dev_4.4.13-custom-1_amd64.deb

Поставяме всички deb-пакети с изключение на dbg-версията на ядрото с обичайните и рестартираме. След рестартиране разглеждаме изхода на командата. Уверяваме се, че наистина сме заредили с новото ядро. Ако нещо не е наред с новото ядро, в буутлоудъра просто избираме този, с който системата е била заредена преди. След зареждане със старото ядро, бързо премахваме пакетите на новото ядро ​​и вуаля - системата се връща в предишното си състояние.

Освен това, след като заредите ново ядро, можете да стартирате тестове върху него:

sudomake kselftest
sudomake kselftest-clean

Поздравления, вече знаете как да изградите ядрото на Linux!

Заключение

Материали за вътрешността на ядрото на Linux:

  • KernelNewbies.org, сайт за начинаещи в ядрото на Linux със собствен пощенски списък, IRC канал, форум, уики и други;
  • LKML.org, сайт за удобно четене на пощенския списък на разработчиците на ядрото на Linux през браузър. Внимавайте, често разваля форматирането на буквите! В този смисъл архивът на пощенския списък на marc.info е много по-добър;
  • Linux Cross Reference, сайт за удобно четене на код на ядрото на Linux през браузър;
  • Книгата Linux Kernel Development, 3rd Edition е най-новата книга за ядрото на Linux на английски (2010, kernel 2.6.x), има превод на руски език;
  • Книгата Linux-Treiber entwickeln, 4-то издание е по-нова (2015, ядро ​​4.x), но е написана на немски и няма превод;
  • Безплатната книга Linux Insides от Александър Кулешов, известен още като @0xAX, изглежда най-достъпната и актуална, но в момента е в процес на писане;
  • Понякога можете да намерите нещо полезно в Linux Kernel HTML Documentation, официалната документация от източниците на ядрото на Linux;
  • Примери за книгата Linux Device Drivers, 3rd Edition, които се опитват да бъдат актуални, плюс източници за 4-то издание, което в момента се пише;

Изграждате ли ядрото от източник и ако да, защо? 🙂

Допълнение:Може да се интересувате и от статията Скандалната истина за отстраняването на грешки в кода на ядрото в Linux.

Етикети: Linux, Ring0.

Компилиране на ядрото на Linux


Мнозина го смятат за безсмислена загуба на време, за да се покаже като умен и напреднал "Linuxoid". Всъщност компилирането на ядрото е много важно нещо. Да приемем, че сте купили нов лаптоп, който няма работеща уеб камера. Вашите действия? Поглеждате в търсачката и търсите решение на проблема по този въпрос. Доста често може да се окаже, че вашата уеб камера работи на по-нова версия на ядрото, отколкото имате. Ако не знаете каква версия имате, въведете uname -r в терминала, като резултат ще получите версията на ядрото (например linux-2.6.31-10). Също така компилацията на ядрото се използва широко за повишаване на производителността: факт е, че дистрибуциите на ядрото се компилират „за всички“ по подразбиране, поради това включва огромен брой драйвери, които може да не са ви необходими. Така че, ако познавате добре хардуера си, можете да деактивирате ненужните драйвери на етапа на конфигуриране. Възможно е също така да се активира поддръжка за повече от 4 гигабайта RAM, без да се променя битовата дълбочина на системата.

Как да изградим ядрото на Linux? Изграждане на ядрото на Linux

Така че, ако все още трябва да имате собствено ядро, нека започнем да компилираме!


Първото нещо, което трябва да направите, е да получите изходния код за желаната версия на ядрото. Обикновено трябва да получите най-новата стабилна версия. Всички официални версии на ядрото са достъпни на kernel.org.

Ако вече имате инсталиран X сървър (домашен компютър), тогава можете да отидете на сайта в любимия си браузър и да изтеглите желаната версия в tar.gz (компресиран gzip) архив. Ако работите в конзолата (например все още не сте инсталирали X сървъра или конфигурирате сървъра), можете да използвате текстов браузър (например elinks).

Можете също да използвате стандартния wget мениджър за изтегляне:


tar -zxvf път_до_архив

Конфигурация на ядрото.

Компилация.
направи && направи инсталиране
Чакаме от 20 минути до няколко часа (в зависимост от мощността на компютъра). Ядрото е инсталирано. За да се появи в списъка grub(2), въведете (като root)
update-grub


Архив на статии:
май 2017 г
март 2017 г
април 2016 г
март 2016 г
октомври 2013 г
септември 2013
Май 2013
март 2013 г
ноември 2012 г
юли 2012 г
юни 2012 г
април 2012 г
март 2012 г
февруари 2012 г
април 2011 г
март 2011 г
февруари 2011 г
януари 2011 г
декември 2010 г
ноември 2010 г
октомври 2010 г
септември 2010 г
август 2010 г
юли 2010 г
юни 2010 г
май 2010г
април 2010 г
март 2010 г

произволен:

Виртуален планетариум Stellarium: преглед на новите функции

BOINC: компютри за наука

Gambas: Основна разработка на linux

SSH 2.0 Серийни диаграми

Linuxnow.ru: Планове за бъдещето

Изведнъж свободното място на диска свърши? Може би проблемът е в логовете.

Колеги: всички
Linux за всеки

Нашите банери:


Задайте банер

Конфигурация на ядрото на Linux

Проверка на изходните пакети

Прекомпилирането на ядрото изисква неговите източници.

Блог за системна администрация. Статии за Linux, Windows, NetApp съхранение и виртуализация.

Red Hat поставя източниците на ядрото в един rpm пакет, но не е инсталиран по подразбиране. Името на този пакет:

kernel-source-2.4.2-2.1386.rpm

В допълнение към изходния код, за да прекомпилирате ядрото, имате нужда от компилатор, който се състои от два компонента:

направи полезност;

самият компилатор на езика C е gcc или egcs.

Създаването на резервно копие на текущото ядро ​​​​се извършва на три етапа:

1. Създаване на резервно копие на източниците на ядрото, което ви позволява да го възстановите, ако конфигурацията е повредена.

2. Създаване на резервно копие на самото ядро ​​като известно работещо средство за стартиране на системата.

3. Създаване на нов запис за зареждане на операционната система, който може да се използва за зареждане от архива на ядрото.

Създаването на резервно копие на източника се извършва чрез копиране на изходната директория на ядрото на диск. Възстановяването става чрез копиране в обратна посока.

Когато ядрото се прекомпилира, старото ядро ​​се записва във файл с разширението .old. Въпреки това, това копие на ядрото все още не може да се използва за зареждане на системата. Това обяснява необходимостта от извършване на горните операции.

Зареждането на операционната система от типа LILO, обикновено използвано за зареждане на Linux, се конфигурира чрез свързване към файл на ядрото в основната файлова система.

След като архивирате ядрото, трябва да добавите още един запис към файла /etc/lilo.conf, за да ви позволи да стартирате Linux със старото ядро:

отворете файл /etc/lilo. conf в текстов редактор

създайте копие на целия дял;

променете две позиции в копието:

заменете името на файла на ядрото с името на неговото резервно копие (заедно с разширението);

заменете етикета на дяла с нещо като linux. оригинален (оригинален Linux) или предишен Linux (стар Linux).

редовете, започващи с initrd, трябва да бъдат заменени с подходящи резервни варианти, като initrd-2 .4.2-2. ориг. img;

напишете промените в /etc/lilo. конф.

въведете командата /sbin/lilo, за да въведете нов запис в буутлоудъра. Когато стартирате командата lilo, на екрана се показват етикетите на изображенията, въведени в програмата за зареждане на операционната система.

Следващият път, когато системата се рестартира, новият идентификатор на ядрото ще бъде показан в подсказката за зареждане на LILO.

Конфигуриране на ново ядро

Конфигурацията решава кои функции да се включат в ядрото, кои да не се включват и т.н. Можете да избирате между конфигуриране на старо ядро ​​и инсталиране/конфигуриране на ново. Например, като използвате Red Hat Linux 7.1, можете да преконфигурирате съществуващо ядро ​​2.4.2 с нови опции. Можете също да изтеглите и инсталирате новото ядро ​​2.4.4. Въпреки че подробностите за конфигурацията са различни в двата случая, използваните помощни програми и самата методология за конфигуриране са едни и същи.

Linux има три отделни помощни програми за конфигуриране, всяка със свои собствени характеристики.

Помощна програма с интерфейс на командния ред. Потребителят последователно отговаря на въпроси относно функциите, които трябва да бъдат включени в ядрото. Тази помощна програма е полезна за тези, които знаят как да работят с ядрото, и за тези, които имат конфигурационни скриптове за тази помощна програма.

Помощна програма с меню за текстов режим. Многостепенното меню на тази помощна програма ви позволява да задавате и преинсталирате параметри на ядрото в произволен ред.

GUI помощна програма. Това е най-атрактивната програма, но работи само на графичната система X Window.

Изброените помощни програми създават същия конфигурационен файл, използван от помощната програма make при компилиране на пълни или частични ядра.

Опции на ядрото

Когато преглеждате настройките във всяка програма за конфигуриране (команден ред, базирана на текст или GUI), трябва да сте наясно с влиянието, което тези настройки оказват върху работата на ядрото.

Идентифицирането на параметрите във всяка програма е различно, но и в трите е представен един и същ набор от тях. Параметрите са разделени на две основни групи:

модулен;

немодулен.

Ако програмният блок, съответстващ на този параметър, не е зареден като модул на ядрото, това може да бъде едно от двете неща:

[*] неразделна част от ядрото;

Неразделна част от ядрото.

Знаците в квадратни скоби (заедно със скоби) съответстват на етикетите на опциите в менюто на конфигурационните програми (с изключение на помощната програма на командния ред).

За модулните параметри има три опции за настройка (според представянето им в менюто на помощните програми за конфигуриране):

<>не е включен в ядрото и не е създаден като модул, който може да бъде зареден по-късно:

<*>е включен в ядрото, така че няма нужда да го зареждате по-късно като модул:

<М>Включен като модул, но не като част от ядрото. Блок може да бъде инсталиран или премахнат от ядрото по всяко време.

Понякога стойността на параметър не може да бъде променена, докато не бъде зададен друг параметър. Например, можете да инсталирате поддръжка за конкретно SCSI устройство само след като активирате поддръжката за тези устройства като цяло.

Когато необходимите инструменти (помощната програма make и gcc компилатор) и изходните текстове са инсталирани в системата, можете да стартирате една от помощните програми за конфигуриране и да започнете да конфигурирате ядрото.

GUI конфигуратор

Стартирането на помощната програма за конфигуриране с графичен интерфейс се извършва в следната последователност.

Стартирайте система X Windows (с всякаква графична среда и работен плот).

Отворете прозорец на емулатор на терминал (прозорец на командния ред).

Както при стартирането на предишната помощна програма, на екрана ще мигат няколко съобщения за компилацията на помощната програма и след няколко минути главният й прозорец ще се отвори.

Ориз. 8. Помощна програма за конфигуриране на ядрото с графичен интерфейс: бутони за меню за настройка на стойностите на параметрите

Графичната помощна програма не се различава твърде много от помощната програма menuconf ig. Тук опциите също са категоризирани; щракването върху определена категория отваря диалогов прозорец със списък с опции, всяка от които може да бъде зададена на стойност, която определя дали съответният инструмент трябва да се използва като част от ядрото, като зареждаем модул или изобщо да не се използва.

Такъв диалогов прозорец е показан на фиг.

Ориз. 9. Диалоговите прозорци като този задават опции за конфигурация на ядрото

Ядрото 2.4.2 в Red Hat Linux поддържа симетричната многопроцесорна архитектура по подразбиране. Трябва да зададете съответната опция на n, ако компютърът ви има само един процесор.

Вдясно от всяка опция има бутон Помощ.

Голямо предимство на помощната програма за графична конфигурация (особено за конфигуратори на ядрото за първи път) е, че менюто показва зависимости между различните опции. Например, в секцията Блокови устройства не можете да инсталирате поддръжка за RAID, вградена в ядрото, докато не е активирана опцията Поддръжка на множество драйвери на устройства.

Ако в помощната програма menuconfig зависимостта на параметрите един от друг се показва чрез отстъпа на имената на параметрите в менюто, тогава в графичната помощна програма е просто невъзможно да се зададат неразрешени комбинации от параметри. Работата с графичната помощна програма помага да се разберат зависимостите между различните модули.

В края на главното меню на графичната помощна програма има команди, подобни на съответните команди на помощната програма от менюто на текстовия режим.

Save and Exit (Изход със запазване). Създаване на конфигурационен файл на ядрото и изключване на помощната програма.

Излезте без запазване. Изключване на помощната програма без създаване на конфигурационен файл на ядрото.

Без създаване на конфигурационен файл на ядрото с помощта на една от изброените помощни програми, повторното компилиране на ядрото не е възможно.

Зареждане на конфигурация от файл. Зареждане на конфигурационния файл, създаден по-рано.

Съхранявайте конфигурацията във файл. Записване на конфигурационни данни във файл с посоченото име (за по-нататъшна употреба или прехвърляне на колега). Това не засяга необходимостта от изпълнение на командата Save and Exit, която създава конфигурационен файл за повторно компилиране на ядрото.

Компилиране и стартиране на ново ядро

След като конфигурацията приключи, трябва да проверите за нов конфигурационен файл (.config), намиращ се в директорията /usr/src/linux-2 .4.2 (в зависимост от номера на версията). Ако конфигурационният файл .config е на мястото си, можете да използвате командата make, за да прекомпилирате ядрото.

Обикновено прекомпилирането на ядрото отнема от 15 минути до няколко часа. Зависи от скоростта на процесора, количеството RAM и редица други фактори, така че е удобно всички команди, въведени по време на компилацията, да се комбинират в една, разделени с точка и запетая, така че да се изпълняват последователно.

Стартиране на процеса на прекомпилиране

Командите по-долу са предназначени за създаване на ново ядро ​​чрез прекомпилиране на всички негови модули и записването им в съответните системни директории. (Там те ще бъдат достъпни за командите на ядрото.)

За да компилирате системата, ще бъдат въведени следните команди.

# направи деп; чисти; направи bzlmage; направете модули; направи modules_install

Всяка команда make може да бъде въведена отделно, след като предишната е завършена.

След въвеждане на тези команди, на екрана ще мигат редове, описващи директориите, до които има достъп от програмата make, стартирането на gcc компилатора. за компилиране на различни изходни файлове и свързване на различни блокове. Завършването на всяка от тези команди ще отнеме няколко минути.

Вече можете да създадете диск за зареждане за новото ядро ​​с командата

Преди да изпълните тази команда, трябва да поставите форматирана дискета в устройството. Готовият диск за зареждане трябва да бъде тестван. Рестартирайте компютъра си, без да изваждате дискета от устройството.

След изпълнение на командите за компилация на ядрото и връщане към командния ред, се създава ново ядро. За да стартирате система с ново ядро, тя трябва да бъде преместена в стандартната директория, от която ще се изпълнява. Това става чрез въвеждане на командата

# cf /usr/src/linux-2.4.2/arch/i386/boot/bzlmage /boot/vmlinuz-2.4.2-2

И накрая, за да актуализирате картата за зареждане, изпълнете командата lilo:

Можете да посочите номер на версията в името на изображението на ядрото, което да копирате. Важно е името на този файл да съвпада с името, посочено във файла /etc/lilo.conf.

Тестване на ново ядро

След преместване на новия файл на ядрото в директорията по подразбиране (посочена във файла lilo.conf), системата може да се рестартира с това ядро.

Веднага след рестартирането проверете работата на новите инструменти, за които е стартирана рекомпилацията. Можете да направите следното.

Сравнение на обемите на старото и новите ядра. Трябва да проверите размера на паметта, заета от операционната система, като издадете командата free.

Монтиране на файлова система или опит за достъп до устройство без зареждане на модул на ядрото, за да го поддържа (ако поддръжката за това устройство е вградена в ядрото).

Използване на мрежови ресурси (като IP псевдоними), които не присъстваха в старото ядро.

Може да се наложи да проверите времевата марка на текущия файл на ядрото. За да направите това, въведете командата uname. Това ви позволява да се уверите, че системата в момента работи с прекомпилираното ядро. Печатът за време и датата на ядрото трябва да съвпадат с времето, когато е било прекомпилирано.

Ако отговорът от командата uname показва, че системата не е заредена с новото ядро, погледнете в LILO bootloader. Проверете дали името на стартиращото ядро ​​е правилно във файла /etc/lilo.conf.

ВИЖ ПОВЕЧЕ:

Компилиране и инсталиране на ядрото на Linux от Source в Debian

Материал от Bryansk Linux Users Group и www.rm.pp.ru

Всяка дистрибуция има свои собствени специфики за изграждане на ядрото и тази статия се фокусира върху това как точно да направите това в Debian Etch. Той също така разкрива въпроса как да приложите този или онзи пластир към ядрото, когато е необходимо да поддържате определена функционалност или нов хардуер във вашата система. Статията е предназначена предимно за по-напреднали потребители и няма гаранции, че този метод ще работи както трябва и всички описани действия и отговорност падат върху вас.

  1. Забележка
  2. Метод първи. Изграждане на ядрото в .deb пакети
  3. Поставяне на лепенки
  4. Конфигурация на ядрото
  5. Компилиране на ядрото
  6. Инсталиране на ново ядро
  7. Метод втори. "традиционен" начин
  8. Проблеми
  9. Връзки

Забележка

Ще бъдат описани два метода за изграждане на ядрото. Първо ще бъде описан вариантът на компилиране на пакетите .deb, които могат да бъдат инсталирани на вашата или друга система.

Вторият метод е така нареченият "традиционен" начин.

Метод първи. Изграждане на ядрото в .deb пакети

Инсталиране на необходимите пакети за компилиране на ядрото

Първо, нека актуализираме списъците с пакети:

# apt-получи актуализация

Инсталирайте пакетите, от които се нуждаем:

# apt-get install kernel-package libncurses5-dev fakeroot wget bzip2 build-essential

Изтегляне на източниците на ядрото

Отидете в директорията /usr/src, отидете на www.kernel.org и изберете желаната версия на ядрото. В този случай ще бъде разгледана версията linux-2.6.23.1.tar.bz2. Изтегляне:

# cd /usr/src # wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.23.1.tar.bz2

Разопаковайте източниците и създайте символична връзка:

# tar xjf linux-2.6.23.1.tar.bz2 # rm linux (премахнете предишната символна връзка) # ln -s linux-2.6.23.1 linux # cd /usr/src/linux

Поставяне на лепенки

По избор и ненужно не правете това!

Понякога са необходими драйвери или функции, които не се поддържат в текущото ядро, като технология за виртуализация или други специфики, които не са в текущата версия. Във всеки случай това се коригира чрез прилагане на така наречените пачове (ако има такива).

Така че да приемем, че сте изтеглили необходимия пластир (нека го наречем patch.bz2 например) в /usr/src. Приложете изтеглената корекция към нашите източници (Вие все още трябва да сте в директорията /usr/src/linux):

# bzip2 -dc /usr/src/patch.bz2 | patch -p1 --dry-run # bzip2 -dc /usr/src/patch.bz2 | пластир-p1

Първата команда е само тест и няма да се прилагат промени към източниците. Ако след първата команда не са върнати грешки, можете да изпълните втората команда, за да приложите корекцията. В никакъв случай не изпълнявайте втората команда, ако са допуснати грешки след първата!

По този начин можете да приложите корекции към източниците на ядрото. Например, има някои функции, които са достъпни само в ядрото 2.6.23.8, а източниците не съдържат необходимата функционалност, но е пусната patch-2.6.23.8.bz2. Можете да приложите тази корекция към източници на ядрото 2.6.23, но не и 2.6.23.1 или 2.6.23.3 и т.н. Можете да прочетете повече за това на:

Префикси (prepatches) - еквивалентни на алфа издания; пачове трябва да се прилагат към източници на пълна предишна версия с 3-цифрена версия (например, корекция 2.6.12-rc4 може да се приложи към източници на версия 2.6.11, но не и към версия 2.6.11.10.)

Това означава, че ако искаме да изградим ядрото 2.6.23.8, трябва да изтеглим източниците за версия 2.6.23 (http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6. 23.tar.gz) се прилага по втория начин "традитонален" начин!

Приложете patch-2.6.23.8.bz2 към ядрото 2.6.23:

# cd /usr/src # wget http://www.kernel.org/pub/linux/kernel/v2.6/patch-2.6.22.8.bz2 # cd /usr/src/linux # bzip2 -dc /usr/ src/patch-2.6.23.8.bz2 | patch -p1 --dry-run # bzip2 -dc /usr/src/patch-2.6.23.8.bz2 | пластир-p1

Конфигурация на ядрото

Добра идея е да използвате съществуващия конфигурационен файл на работещото ядро ​​и за новия. Затова копираме съществуващата конфигурация в /usr/src/linux:

# направи чист && направи mrproper # cp /boot/config-`uname -r` ./.config

# направете конфигурация на менюто

след което ще се зареди менюто за конфигурация на графичното ядро. Изберете "Зареждане на алтернативен конфигурационен файл" в менюто на конфигуратора и щракнете върху "OK". След това (ако е необходимо) направете необходимите промени в конфигурацията на ядрото, като навигирате през менютата (подробности за конфигурацията на ядрото можете да намерите на www.google.com). Когато приключите и натиснете "Изход", ще бъде зададен въпросът "Искате ли да запазите новата си конфигурация на ядрото?", ние отговаряме утвърдително "Да".

Изграждане на ядрото на Linux

Компилиране на ядрото

Изграждането на ядрото се извършва само с две команди:

# make-kpkg clean # fakeroot make-kpkg --initrd --append-to-version=-cybermind kernel_image kernel_headers

След --append-to-version= можете да напишете каквото искате име, но то трябва да започва със знак минус (-) и да няма интервали.

Процесът на компилиране и изграждане на .deb пакети може да отнеме доста дълго време. Всичко ще зависи от конфигурацията на ядрото и възможностите на вашия процесор.

Решаване на проблема със създаване на initrd.img

Наскоро в Debian се появи грешка, състояща се във факта, че след инсталиране на пакети с ядра, изградени по описания тук начин, съответният файл /boot/initrd.img не се създава. За да коригирате вече инсталирано ядро, ще трябва да създадете initrd.img ръчно:

update-initramfs -c -k<полная-версия-ядра>

За да решите проблема "за бъдещето" - коментирайте, както е показано, втория от цитираните по-долу редове във файла /etc/kernel/postinst.d/initramfs-tools:

# kernel-package предава допълнителен arg; хак, за да не се изпълнява под пакета на ядрото #[ -z "$2" ] || изход 0

Инсталиране на ново ядро

Когато изграждането на ядрото завърши успешно, два .deb пакета ще бъдат създадени в директорията /usr/src:

# cd /usr/src # ls -l

linux-image-2.6.23.1-cybermind_2.6.23.1-cybermind-10.00.Custom_i386.deb - действителното самото ядро ​​и linux-headers-2.6.23.1-cybermind_2.6.23.1-cybermind-10.6.deb. необходими за изграждане на други модули (например при изграждане на драйверни модули на nVidia). Инсталирането им:

# dpkg -i linux-image-2.6.23.1-cybermind_2.6.23.1-cybermind-10.00.Custom_i386.deb # dpkg -i linux-headers-2.6.23.1-cybermind_2.6.23.1-16.23.1-cybermind.

(Тези пакети вече могат да бъдат инсталирани на друга система, без да е необходимо да ги изграждате отново.)

Всичко, инсталацията е завършена, менюто за стартиране, инсталирането на нов RAM диск и ядрото ще се извърши автоматично. Остава само да рестартирате:

Метод втори. "традиционен" начин

Изпълняваме всички точки, описани по-горе, ПРЕДИ точката "Компилиране на ядрото".

# направи всички # направи modules_install # направи инсталиране

Както обикновено, изграждането може да отнеме много време, в зависимост от конфигурацията на ядрото и възможностите на процесора.

Основният недостатък на този метод е, че ако често актуализирате ядрата, след известно време ще се натрупат голям брой от тях и ще искате да премахнете неизползваните. За да направите това по-лесно, можете да изградите ядрото и други файлове, които са инсталирани в системата, като използвате командите "make modules_install" и "make install" в deb пакет (или по-скоро два, започващи от ядрото 2.6.27) като първия метод, но ние ще използваме тук със скриптове на ядрото:

# направи всички # направи deb-pkg

Два .deb файла ще се появят в директорията едно ниво над изходната директория. Компилирах ядрото в директорията /usr/src/linux-2.6.27.10 и получих файлове в директорията /usr/src/

# linux-2.6.27.10_2.6.27.10-1_amd64.deb # linux-firmware-image_2.6.27.10-1_all.deb

Ядрото се инсталира с командата

# dpkg -i linux-2.6.27.10_2.6.27.10-1_amd64.deb

Старите ядра могат да бъдат премахнати, например, от synaptic

Следващи стъпки

Ядрото е изградено и инсталирано, но дори сега трябва да създадете RAM диск (без който ядрото просто няма да се стартира) и трябва да актуализирате GRUB bootloader. За да направите това, направете следното:

# depmod 2.6.23.1 # apt-get install yaird

Инсталирайте RAM диска:

# mkinitrd.yaird -o /boot/initrd.img-2.6.23.1 2.6.23.1

Нека актуализираме буутлоудъра лесно и безболезнено:

Всичко, буутлоудърът и новото ядро ​​са готови, остава само да рестартирате:

Проблеми

Ако след рестартиране избраното от вас ново ядро ​​не се стартира, рестартирайте и изберете предишното си ядро ​​и можете да опитате да преминете през целия процес отново, за да изградите работещо ядро. В този случай не забравяйте да изтриете редовете на неработещото ядро ​​в /boot/grub/menu.lst.

Компилиране на ядрото на Linux

Защо изобщо да компилирате ядрото?
Може би основният въпрос, който се задава при компилирането на ядрото, е: „Защо да правя това?“.
Мнозина го смятат за безсмислена загуба на време, за да се покаже като умен и напреднал "Linuxoid". Всъщност компилирането на ядрото е много важно нещо. Да приемем, че сте купили нов лаптоп, който няма работеща уеб камера. Вашите действия? Поглеждате в търсачката и търсите решение на проблема по този въпрос. Доста често може да се окаже, че вашата уеб камера работи на по-нова версия на ядрото, отколкото имате. Ако не знаете каква версия имате, въведете uname -r в терминала, като резултат ще получите версията на ядрото (например linux-2.6.31-10). Също така компилацията на ядрото се използва широко за повишаване на производителността: факт е, че дистрибуциите на ядрото се компилират „за всички“ по подразбиране, поради това включва огромен брой драйвери, които може да не са ви необходими. Така че, ако познавате добре хардуера си, можете да деактивирате ненужните драйвери на етапа на конфигуриране.

Възможно е също така да се активира поддръжка за повече от 4 гигабайта RAM, без да се променя битовата дълбочина на системата. Така че, ако все още трябва да имате собствено ядро, нека започнем да компилираме!

Получаване на изходния код на ядрото.
Първото нещо, което трябва да направите, е да получите изходния код за желаната версия на ядрото. Обикновено трябва да получите най-новата стабилна версия. Всички официални версии на ядрото са достъпни на kernel.org. Ако вече имате инсталиран X сървър (домашен компютър), тогава можете да отидете на сайта в любимия си браузър и да изтеглите желаната версия в tar.gz (компресиран gzip) архив. Ако работите в конзолата (например все още не сте инсталирали X сървъра или конфигурирате сървъра), можете да използвате текстов браузър (например elinks). Можете също да използвате стандартния wget мениджър за изтегляне:
wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.33.1.tar.gz
Но имайте предвид, че трябва да знаете точния номер на версията, от която се нуждаете.

Разопаковане на архива на изходния код.
След като получите архива с изходния код, трябва да разопаковате архива в папка. Това може да стане от графични файлови мениджъри (dolphin, nautilus и др.) или чрез mc. Или използвайте традиционната команда tar:
tar -zxvf път_до_архив
Сега имате изходна папка, отидете до нея, като използвате cd kernel_source_code_dir (за да изброите директории в папка, използвайте командата ls).

Конфигурация на ядрото.
След като промените в изходната директория на ядрото, трябва да направите "20 минути" конфигурация на ядрото. Целта му е да остави само необходимите драйвери и функции. Всички команди вече трябва да се изпълняват от името на суперпотребителя.

make config - конзолен режим на конфигуратора.

направи menuconfig - конзолен режим като списък.

make xconfig - графичен режим.

След като направите необходимите промени, запазете настройките и излезте от конфигуратора.

Компилация.
Време е за финалния етап на сглобяването – компилация. Това става с две команди:
направи && направи инсталиране
Първата команда ще компилира всички файлове в машинен код, а втората ще инсталира новото ядро ​​на вашата система.
Чакаме от 20 минути до няколко часа (в зависимост от мощността на компютъра).

Конфигуриране и компилиране на ядрото на Linux

Ядрото е инсталирано. За да се появи в списъка grub(2), въведете (като root)
update-grub
Сега след рестартиране натиснете "Escape" и ще видите новото ядро ​​в списъка. Ако ядрото не се включи, просто стартирайте със старото ядро ​​и конфигурирайте по-внимателно.

KernelCheck - компилация на ядрото без влизане в конзолата.
KernelCheck ви позволява да изградите ядрото в напълно графичен режим за Debian и базираните му дистрибуции. При стартиране, KernelCheck ще предложи най-новите версии и пачове на ядрото и след вашето съгласие ще изтеглите изходния код, стартирайте графичния конфигуратор. Програмата ще изгради ядрото в .deb пакети и ще ги инсталира. Просто трябва да рестартирате.

Архив на статии:
май 2017 г
март 2017 г
април 2016 г
март 2016 г
октомври 2013 г
септември 2013
Май 2013
март 2013 г
ноември 2012 г
юли 2012 г
юни 2012 г
април 2012 г
март 2012 г
февруари 2012 г
април 2011 г
март 2011 г
февруари 2011 г
януари 2011 г
декември 2010 г
ноември 2010 г
октомври 2010 г
септември 2010 г
август 2010 г
юли 2010 г
юни 2010 г
май 2010г
април 2010 г
март 2010 г

произволен:

Aurorae: машина за декорация на прозорци за KDE

Sblog ще бъде пренаписан в .NET

Linuxnow.ru: Планове за бъдещето

Болгенос. Опровержение на Telecon

GRUB 2 Бързо възстановяване

Фондация за свободен софтуер и copyleft.

Колеги: всички
Linux за всеки

Нашите банери:


Задайте банер

В това ръководство стъпка по стъпка ще научите как правилно да изградите и инсталирате ядрото за клон >2.6 на семейството на Ubuntu OS.

Стъпка 1: Вземете изходния код на ядрото

Източниците на ядрото на Ubuntu могат да бъдат получени по два начина:

    Чрез инсталиране на архива от хранилището, с автоматично наслагване на най-новите официални пачове. Това ще изтегли ~150 MB пакет в текущата папка. За да получите източника на ядрото, чиято версия е инсталирана на компютъра, изпълнете командата: 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 Mb. git клонинг git://kernel.ubuntu.com/ubuntu/ubuntu- .git

    Където - име на изданието, например:

    Git клонинг 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

    конфиг- традиционният начин на конфигуриране. Програмата показва конфигурационните параметри един по един, като ви подканва да зададете различна стойност за всеки от тях. Не се препоръчва за неопитни потребители.

    oldconfig- конфигурационният файл се създава автоматично въз основа на текущата конфигурация на ядрото. Препоръчва се за начинаещи.

    defconfig- конфигурационният файл се създава автоматично, въз основа на стойностите по подразбиране.

    menuconfig- псевдографичен интерфейс за ръчно конфигуриране, не изисква последователно въвеждане на стойности на параметрите. Препоръчва се за използване в терминала.

    xconfig- графичен (X) интерфейс за ръчно конфигуриране, не изисква последователно въвеждане на стойности на параметрите.

    gconfig- графичен (GTK+) интерфейс за ръчна конфигурация, не изисква последователно въвеждане на стойности на параметрите. Препоръчва се за използване в средата на GNOME.

    localmodconfig- автоматично създаден конфигурационен файл, който включва само това, което е необходимо за това конкретно устройство. Когато тази команда бъде извикана, по-голямата част от ядрото ще бъде модулирана

В случай, че искате да използвате конфиг, oldconfig, defconfig, localmodconfigили localyesconfig, вече нямате нужда от допълнителни пакети. В случай на останалите три опции трябва да се инсталират и допълнителни пакети.

menuconfigизпълнете следната команда:

sudo apt-get инсталирайте 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 инсталационна корекция

Тази команда ще инсталира програмата за кръпки, необходима за, може да се досетите, да приложите корекции. Сега изтеглете файла за корекция в папката, където сте разопаковали ядрото. Това може да бъде или архивен файл (напр. Bzip2 или Gzip) или некомпресиран файл за корекция.

В този момент се предполага, че вече сте записали файла в папката, където преди това сте разопаковали ядрото и сте инсталирали програмата за корекция.
Ако файлът, който сте изтеглили, е във формат Gzip (*.gz), изпълнете следната команда, за да извлечете съдържанието на архива:

Gunzip пластир-2.6.x.y.gz

Ако файлът, който сте изтеглили, е във формат Bzip2 (*.bz2), изпълнете следната команда, за да извлечете съдържанието на архива:

Бунзип2 корекция-2.6.x.y.bz2

където 2.6.x.y е версията на корекцията на ядрото. Съответните команди ще разопаковат файла за корекция в изходната папка на ядрото. Преди да приложите пластира, трябва да се уверите, че той ще работи без грешки. За да направите това, изпълнете командата:

Patch -p1 -i patch-2.6.x.y --dry-run

където 2.6.x.y е версията на корекцията на ядрото. Тази команда ще симулира прилагането на корекция, без да променя самите файлове.

Ако не възникнат грешки по време на неговото изпълнение, тогава промените могат безопасно да бъдат внедрени в самите файлове. За да направите това, изпълнете командата:

Пач -p1 -i кръпка-2.6.x.y

където 2.6.x.y е версията на корекцията на ядрото. Ако нямаше грешки, тогава корекцията е приложена успешно към изходния код.

Внимание!Преди да приложите корекция, направете следното: 1. Изтеглете от http://www.kernel.org пач от същата версия като вашите източници. 2. Изпълнете следната команда: patch -p1 -R

където 2.6.x.y е версията на корекцията и вашите източници

Стъпка 4. Конфигуриране на бъдещата компилация на ядрото

Придвижете се до папката, в която сте разопаковали ядрото, като изпълните командата

Cd ~/linux-2.6.x.y

където 2.6.x.y е версията на ядрото, което сте изтеглили.

В този момент вече би трябвало да сте решили за метода за конфигуриране на ядрото (ако не, вижте ги в раздела Получаване на необходимите пакети за изграждане. В зависимост от това изпълнете следната команда, за да стартирате метода за конфигуриране по ваш избор:

    конфиг- традиционният начин на конфигуриране. Програмата показва конфигурационните параметри един по един, като ви подканва да зададете различна стойност за всеки от тях. Извиква се от командата make config

    oldconfig- конфигурационният файл се създава автоматично въз основа на текущата конфигурация на ядрото. Препоръчва се за начинаещи. Извиква се от командата make oldconfig

    defconfig- конфигурационният файл се създава автоматично, въз основа на стойностите по подразбиране за тази конкретна архитектура. Извиква се от командата make defconfig

    menuconfig- псевдографичен интерфейс за ръчно конфигуриране, не изисква последователно въвеждане на стойности на параметрите. Препоръчва се за използване в терминала. Обадете се: направете menuconfig

    gconfigи xconfig- графични конфигуратори за ръчно конфигуриране. Обадете се: направете gconfi

    Направете xconfig

    съответно

    localmodconfigи localyesconfig- автоматични конфигуратори. Конфигурацията се създава въз основа на текущо извиканите модули и работещото ядро. Разликата между тези два конфигуратора е броят на модулите. В първия случай ще има поне 50% от ядрото, а във втория - не повече от 2 модула. Обадете се: направете localmodconfig

    Направете localyesconfig

    съответно

След обаждането ще бъде стартирана съответната програма за конфигуриране. Направете необходимите настройки според вашите нужди, запазете конфигурационния файл и преминете към следващата стъпка.

Стъпка 5 Изграждане на ядрото

Така че подготовката е завършена. Сега можете да започнете процеса на изграждане на ядрото. За да направите това, изпълнете командата:

Fakeroot make-kpkg -j 5 --initrd --append-to-version=-custom kernel_image kernel_headers #-j<количество ядер процессора>+1

Изграждането на ядрото може да отнеме от 20 минути до няколко часа, в зависимост от конфигурацията на ядрото и техническите параметри на компютъра. Надграждането на многоядрен процесор може да бъде няколко пъти по-бързо

Стъпка 6 Инсталиране на изображения и заглавки на ядрото

Когато изграждането на ядрото приключи, два 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-битова).
Ако не знаете точното име на пакета, избройте файловете във вашата домашна директория с командата

и намерете точно тези два пакета.

Стъпка 7 Генерирайте първоначалния RAM диск

Ubuntu изисква първоначално изображение на RAM диск, за да работи правилно. За да го създадете, изпълнете командата:

sudo update-initramfs -c -k 2.6.x.y-custom

където 2.6.x.y е версията на ядрото за изграждане.

Стъпка 8 Актуализиране на конфигурацията на GRUB Boot Loader

За да направите новата версия на ядрото достъпна за избор, когато компютърът се стартира, изпълнете следната команда:

sudo update-grub

Файлът menu.lst (за GRUB версия 1) или grub.cfg (за GRUB версия 2) ще бъде актуализиран, за да отразява инсталираните операционни системи и изображения на ядрото.

Стъпка 9 Проверка на ядрото

Компилацията и инсталацията на ядрото завърши успешно! Сега рестартирайте компютъра си и опитайте да стартирате системата с новото ядро. За да сте сигурни, че системата е стартирана с новото ядро, изпълнете командата

Uname -r

Той ще покаже използваната версия на ядрото.

Ако е направено правилно, можете да изтриете изходните архиви и цялата директория linux-2.6.x.y във вашата домашна папка. Това ще освободи около 5 GB на вашия твърд диск (размерът на освободеното пространство зависи от опциите за изграждане).

Това завършва процеса на монтаж и монтаж, поздравления!

Напоследък доста често излизат нови версии на ядрата. На всеки няколко месеца има стабилно издание. Е, нестабилните кандидати за освобождаване излизат още по-често. Линус Торвалдс и много разработчици по света непрекъснато работят за подобряване на новите ядра и добавяне на все повече и повече функционалност към тях.

С всяка нова версия ядрото на Linux добавя поддръжка за няколко нови устройства, като нови процесори, графични карти или дори сензорни екрани. Напоследък поддръжката за нов хардуер се подобри много. Също така, нови файлови системи са включени в ядрото, мрежовият стек е подобрен, грешките и бъговете са коригирани.

Ако имате нужда от повече информация за промените в конкретна версия на ядрото, вижте неговия регистър на промените на kernel.org и в тази статия ще разгледаме актуализирането на ядрото на Linux до най-новата версия. Ще се опитам да не обвързвам инструкцията с конкретна версия на ядрото, новите ядра се пускат доста често и ще е подходящо за всяко от тях.

Помислете за актуализиране на ядрото на Ubuntu и CentOS. Първо, нека да разгледаме как да актуализираме ядрото в Ubuntu 16.04.

Нека първо да видим какво ядро ​​сте инсталирали. За да направите това, отворете терминал и изпълнете:

Например, в момента използвам версия 4.3 и мога да надстроя до най-новата версия. Разработчиците на Ubuntu вече са се погрижили техните потребители да не изграждат ядрото на ръка и да правят deb пакети на новата версия на ядрото. Те могат да бъдат изтеглени от официалния уебсайт на Canonical.

Можех да дам командите wget за изтегляне тук, ако версията на ядрото беше известна, но в нашия случай би било по-добре да използваме браузър. Отидете на http://kernel.ubuntu.com/~kernel-ppa/mainline/. Всичко компилирано от екипа на ядрото на Ubuntu е тук. Ядрата се изграждат както за конкретни дистрибуции, с кодовото име на дистрибуцията, така и за общи. Освен това ядрата от Ubuntu 16.10 най-вероятно ще работят в 16.04, но от 9.04 на Ubuntu 16.04 не трябва да инсталирате ядрото.

Превъртете до дъното, там се намират по-новите версии на ядрата:

В допълнение, най-отгоре има ежедневна/текуща папка, която съдържа най-новите, нощни компилации на ядрото. Изберете желаната версия на ядрото и изтеглете двата файла linux-headers и linux-image за вашата архитектура:

След като изтеглянето приключи, можете да продължите с инсталацията. За да направите това, изпълнете следното в терминала:

Придвижете се до папката с инсталационни пакети, например ~/Downloads:

Стартирайте инсталацията:

Ако тази команда не работи, можете да отидете по другия начин. Инсталирайте помощната програма gdebi:

sudo apt-get install gdebi

След това го използвайте, за да инсталирате ядрото:

sudo gdebi linux-headers*.deb linux-image-*.deb

Ядрото е инсталирано, остава да актуализирате буутлоудъра:

sudo update-grub

Сега можете да рестартирате компютъра си и да видите какво се е случило. След рестартирането се уверете, че актуализацията на ядрото на Linux до най-новата версия е била успешна:

Както можете да видите, ядрото е успешно инсталирано и работи. Но не бързайте да премахвате старата версия на ядрото, препоръчително е да имате няколко версии на ядрото в системата, така че в случай на проблеми да можете да стартирате от старата работеща версия.

Автоматична актуализация на ядрото на Linux в Ubuntu

По-горе разгледахме как да инсталираме желаната версия на ядрото ръчно. Ubuntu имаше PPA за ежедневни компилации на ядрото, но сега е затворен. Следователно можете да актуализирате ядрото само като изтеглите deb пакета и го инсталирате. Но всичко това може да бъде опростено със специален скрипт.

Инсталиране на скрипта:

cd /tmp
$ git клонинг git://github.com/GM-Script-Writer-62850/Ubuntu-Mainline-Kernel-Updater
$ bash Ubuntu-Mainline-Kernel-Updater/install

Проверка за актуализации:

KernelUpdateChecker -r yakkety

Опцията -r ви позволява да посочите клона на разпространение, за който да търсите ядра. За xenial ядрата вече не се изграждат, но ядрата от следващата версия ще работят добре тук. В допълнение, опцията -no-rc може да каже на помощната програма да не използва кандидати за освобождаване, а опцията -v определя точната версия на ядрото, която да бъде инсталирана. Ако не ви пука за коя дистрибуция е ядрото, стига да е най-новата, използвайте опцията --any-release. Скриптът ще даде следния изход:

Преди да инсталирате ядрото, можете да видите подробностите, като отворите файла /tmp/kernel-update:

Тук можем да видим, че търсенето на yakkety е извършено и в момента е налична версията на ядрото 4.7-rc6. Можем да инсталираме:

sudo /tmp/kernel-update

Скриптът ще ни покаже версията на текущото ядро, както и версията на ядрото, което ще бъде инсталирано, датата на неговото изграждане и други подробности. Също така ще бъдете попитани дали трябва да поддържате дневник на промените. Следва инсталацията:

Старите ядра, за всеки случай, не изтривайте (n):

Готово, актуализирането на ядрото до най-новата версия е завършено, сега рестартирайте компютъра си (y):

Проверка дали актуализацията на ядрото на Ubuntu наистина работи:

Освен това скриптът е добавен към автоматично зареждане и вече автоматично ще проверява за актуализации 60 секунди след влизане. Прекият път за автоматично зареждане е във файла:

vi ~/.config/autostart/KernelUpdate.desktop

Можете да го промените както желаете или да го изтриете. Ако искате да премахнете напълно скрипта от системата, изпълнете:

rm ~/.config/autostart/KernelUpdate.desktop
$ sudo rm /usr/local/bin/KernelUpdate(Checker,ScriptGenerator)

Не се изтегля

Ако възникнат грешки по време на инсталацията или ядрото е актуализирано неправилно и сега системата не се стартира с новото ядро, можете да използвате старото ядро. Също така системата може да не стартира, ако използвате собствен драйвер за видеокарта NVIDIA, в този случай не бързайте да изтегляте най-новата версия на ядрото, използвайте само стабилни ядра, те обикновено вече добавят поддръжка за този модул.

И за да възстановите системата, изберете елемента Разширени опции за Ubuntuв менюто на Grub:

И стартирайте предишното работещо ядро:

След изтеглянето остава да премахнете неправилно инсталираното ядро ​​и да актуализирате Grub отново, заменете желаната версия на ядрото вместо 4.7:

sudo apt премахнете linux-header-4.7* linux-image-4.7*

sudo update-grub

Сега вашата система се връща в предишното си състояние. Можете да опитате да инсталирате по-стара версия на ядрото или да опитате отново.

Надграждане на ядрото на Linux до 4.4 на CentOS

И сега нека да разгледаме как да актуализираме най-новата версия на ядрото на Linux в CentOS. Инструкциите са тествани на CentOS 7, но най-вероятно ще работят на RedHat 7, Fedora и други подобни дистрибуции.

По правило новите ядра не са включени в официалните хранилища на CentOS, така че за да получим най-новата стабилна версия, ще трябва да добавим хранилището ELRepo. Това е хранилище на търговски пакети (Enterprise Linux Packages) и също се поддържа на RedHat и Fedora.

За да добавите хранилище, следвайте тези стъпки:

Първо трябва да импортирате ключа:

rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org

Добавете хранилището и необходимите компоненти към RHEL/Scientific Linux/CentOS-7:

rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-2.el7.elrepo.noarch.rpm

yum инсталирайте yum-plugin-fastestmirror

На Fedora 22 и по-нова версия:

Най-основният компонент на операционната система Linux е ядрото. Това е ядрото, което действа като междинна връзка между потребителските програми и компютърния хардуер. Във всички бинарни дистрибуции не е нужно да се грижим за изграждането и конфигурирането на ядрото, всичко вече е направено вместо нас от разработчиците на дистрибуцията. Но ако искаме да изградим собствена дистрибуция или да инсталираме най-новото ядро, ще трябва да изградим ядрото ръчно.

Първият вариант беше подходящ за тези, които искаха да получат максимална производителност от своето оборудване, но сега, като се има предвид бързото увеличаване на мощността на компютъра, увеличението на производителността при сглобяване на ядрото е напълно незабележимо. Сега може да е необходима компилация на ядрото за потребители на небинарни дистрибуции като Gentoo, тези, които искат да направят някои промени в ядрото, да получат най-новата версия на ядрото и разбира се, тези, които искат да разберат напълно как работи тяхната система .

В този урок ще разгледаме как да изградим ядрото на Linux. Първата част ще ви каже как да конфигурирате ядрото в автоматичен режим. Така да се каже, за тези, които не искат да разберат как работи, които трябва само да получат готовия продукт на изхода - сглобеното ядро. Във втората част ще разгледаме основните стъпки за ръчно конфигуриране на ядрото, този процес е сложен и не бърз, но ще се опитам да дам основа, за да можете сами да го разберете.

Първото нещо, което трябва да направите, е да изтеглите източниците на ядрото. Най-добрите източници са взети от сайта на вашата дистрибуция, ако има такива, или от официалния сайт на ядрото: kernel.org. Ще разгледаме изтеглянето на източника от kernel.org.

Преди да изтеглим източниците, трябва да вземем решение за версията на ядрото, която ще изградим. Има две основни версии за пускане - стабилна (стабилна) и кандидати за освобождаване (rc), има, разбира се, все още стабилни с дълъг период на поддръжка (дългосрочна), но сега е важно да се справим с първите две. Стабилните по правило не са най-новите, но вече добре тествани ядра с минимален брой грешки. Тест - напротив, най-новият, но може да съдържа различни грешки.

И така, когато сме решили версията, отиваме на kernel.org и изтегляме необходимите източници във формат tar.xz:

Тази статия ще използва най-новата в момента нестабилна версия 4.4.rc7.

Можете също да получите източниците на ядрото на Linux с помощта на помощната програма git. Първо, нека създадем папка за източниците:

mkdir kernel_sources

За да изтеглите най-новата версия, въведете:

git клонинг https://github.com/torvalds/linux

Разопаковане на източниците на ядрото

Сега имаме запазени източници. Отидете в изходната папка:

cd linux_sources

Или ако сте изтеглили ядрото на Linux с помощта на браузър, тогава първо създайте тази папка и копирайте архива в нея:

mkdir linux_sources

cp ~/Изтегляния/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 Отворете елемента Обща настройка.

Тук задаваме следните параметри:

локална версия- локалната версия на ядрото, ще се увеличава с едно с всяка компилация, така че новите ядра да не заменят старите по време на инсталацията, задайте стойността на 1.

Автоматично добавяне на информация за версията към низа на версията- добавете версия към името на файла на ядрото.

Режим на компресиране на ядрото- режим на компресиране на изображение на ядрото, най-ефективният lzma.

име на хост по подразбиране- името на компютъра, показано в подканата за въвеждане

POSIX опашки за съобщения- поддръжка за опашки POSTIX

Поддръжка за пейджинг на анонимна памет -активиране на поддръжка за суап

Поддръжка на контролната група- поддръжка на механизма за разпределение на ресурсите между групи процеси

Поддръжка на .config на ядротои Разрешете достъпа до .config чрез /proc/config.gz- активиране на възможността за извличане на конфигурацията на ядрото чрез /proc/config.gz

Това е всичко, връщаме се на нивото нагоре и се включваме активиране на поддръжка на зареждаеми модули,тази функция позволява зареждането на външни модули, след което отворете менюто й и включете:

поддръжка за деактивиране на модули

принудително изключване на модулите

Отново и отворете Тип и характеристики на процесора:

Семейство процесори (Opteron/Athlon64/Hammer/K8)- изберете вашия тип процесор.

Отново се връщаме и отиваме в секцията Файлови системи, след което отметнете всички необходими квадратчета за отметка.

Не забравяйте да активирате Разширената файлова система 3 (ext3).и Разширената файлова система 4 (ext4).- да поддържа стандартни файлови системи ext3 и ext4

Връщаме се и отиваме в Хакване на ядрото.

Тук включваме Магически ключ SysRq- поддръжка за магическите функции на SysRq, нещо, което не е от съществено значение, но понякога е полезно.

Остава още една точка, най-трудната, защото ще трябва да преминете през нея сами. Драйвери на устройства- трябва да преминете през секциите и да включите драйверите за вашето оборудване. Под хардуер имам предвид нестандартни твърди дискове, мишки, USB устройства, уеб камери, Bluetooth, WIFI адаптери, принтери и т.н.

Можете да видите какво оборудване е свързано към вашата система с командата:

След като завършите всички стъпки, ядрото е готово за изграждане, но най-вероятно ще трябва да се справите с много.

Натиснете бутона няколко пъти, за да излезете. изход.

Изграждане на ядрото на Linux

След като всички приготовления са завършени, ядрото на Linux може да бъде изградено. За да стартирате процеса на изграждане, изпълнете:

направи && направи модули

Сега можете да отидете да пиете кафе или да се разходите, защото процесът на сглобяване е дълъг и ще отнеме около половин час.

Инсталиране на ново ядро

Когато ядрото и модулите са изградени, новото ядро ​​може да бъде инсталирано. Можете ръчно да копирате файла на ядрото в папката на bootloader:

cp arch/x86_64/boot/bzImage /boot/vmlinuz

Или можете просто да изпълните инсталационния скрипт, като незабавно инсталирате модулите по едно и също време:

sudo make install && sudo make modules_install

След инсталирането, не забравяйте да актуализирате конфигурацията на зареждащата програма на Grub:

grub-mkconfig -o /boot/grub/grub.cfg

И рестартирайте компютъра, за да видите новото ядро ​​в действие:

констатации

Това е всичко. В тази статия разгледахме подробно как да изградим ядрото на Linux от източник. Това ще бъде полезно за всеки, който иска да разбере по-добре своята система, както и за тези, които искат да получат най-новата версия на ядрото на своята система. Ако имате въпроси, задайте коментари!

Наличната информация за изграждането на ядрото варира значително, така че ще опишем изграждането на ядрото специално за Ubuntu. Да опитаме. така че да няма грешки в командите, написани в тази статия. Когато описваме процеса на компилация, няма да спрем само да получим ядрото. Получаването на работещо ядро ​​не е достатъчно. За собствениците на карти nVidia, тук ще има описание как да получите система с работеща графика на новото ядро. Освен това графиката ще работи както в старото ядро, така и в новото.

1. Инсталиране на източници на ядрото

Първо ни трябват източниците на ядрото. За Ubuntu 7.04те вече са в хранилището, трябва да намерите пакета Linux-източник-отпадък(в нашия случай ще бъде linux-source-2.6.20) и го инсталирайте (всичко това може да стане чрез синаптичен). След инсталирането на този пакт, в директорията /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. Изтриваме архивния файл (ще са необходими root права).

2. Инсталиране на придружаващи пакети

Необходими са още пакети за изграждане ядро-пакет, libncurses5-dev, fakeroot. Инсталирайте ги чрез синаптичен. Разбира се, в системата трябва да бъде инсталиран и компилатор. gccи dev- пакети за системни библиотеки, като напр libc6-dev.

3. Създаване на конфигурационен файл на ядрото

Сега имаме нужда от конфигурацията на ядрото, с която е изградено ядрото на ubunta. Отидете в каталога /зареждане, и виждаме файл като config-2.6.20-15-generic. Той е това, от което се нуждаем. Копирайте го в изходната директория /usr/src/linux-source-2-6-20и го преименувайте на .config. Моля, имайте предвид, че името на файла започва с точка, това не е печатна грешка.

Сега, като сте в директорията /usr/src/linux-source-2-6-20, ние даваме командата като нормален потребител

това ще стартира текстовия интерфейс за конфигурация на ядрото. Можете също да стартирате настройката в графичен режим

И в двата случая ще се отвори интерфейс с квадратчета за отметка, чрез които конфигурираме ядрото. Изглежда, че файлът е отворен по подразбиране .config, който в момента съдържа стандартната конфигурация на ядрото на Ubuntu.

Какво искате да конфигурирате - помислете сами, в интернет има много рускоезична документация по този въпрос. Целта на тази статия е само да опише стъпките, свързани с компилирането на ядрото на Ubuntu.

В края на конфигурацията изберете елемента "Запазване на конфигурацията на конфигурацията", посочете име на файл, което е различно от .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 получаваме правата на root и започваме компилацията.

make-kpkg --initrd --revision=mybuild.1.0 kernel_image kernel_headers

Къде вместо " mybuild.1.0" напишете каквото ви трябва. Английски букви, цифри, точки са позволени. Подчертавания и тирета не са разрешени.

Всъщност по приятелски начин компилацията на ядрото трябва да се извършва под правата на обикновен потребител. Формално създаването на двоичен файл на ядрото не се различава от компилирането на двоичен файл на всяка друга програма. Но ние правим компилация не в ръчен режим (чрез команди като направете bzImage модули), и в полуавтоматичен (през make-kpkg). И тази програма, след компилиране, ще стартира програмата отпод себе си dpkg-debПридобивам дебпакет на ядрото. В този момент са необходими root права.

Сега нека видим какво прави горната команда. Започва да компилира ядрото и след това създава деб-именуван пакет linux-image-version.deb, който ще съдържа двоичния код на ядрото и модулите на ядрото (това ще стане благодарение на целта kernel_image). То също ще бъде създадено деб-именуван пакет linux-headers-version.deb, той ще съдържа заглавните файлове на ядрото (това ще стане благодарение на целта kernel_headers). Получените пакети ще бъдат в директорията /usr/src.

Вижте какви файлове има в тях деб-опаковки, могат да бъдат в завоевател(в Kubuntu), като щракнете с десния бутон върху интересния деб-файл и изберете " Пакетно меню на Kubuntu" -> "Показване на информация за пакета". Информацията ще се формира доста бавно, около минута, тъй като пакетите са големи.

5. Инсталиране на ядрото

Сега инсталирайте ядрото. Да бъдеш с права на суперпотребител в директорията /usr/src, дайте командата

dpkg -i linux-image-version.deb

след което вашето ядро ​​(файл vmlinuz-2.6.20.3-ubuntu1) ще бъде поставен в директорията /зареждане(всички предишни ядра също няма да отидат никъде, те ще останат на местата си) и в директорията /lib/modules, до директорията с обикновени модули на ядрото (в Ubuntu 7.04Наречен /lib/modules/2.6.20-15-generic) ще се появи директория с модулите на вашето ново ядро ​​(в нашия случай ще бъде /lib/modules/2.6.20.3-ubuntu1). Новото ядро ​​ще бъде автоматично записано /boot/grub/menu.lst.

По принцип вече можете да рестартирате и то в екрана за зареждане Грубнов елемент ще се появи с вашето ядро. Новото ядро ​​ще се появи в горната част на списъка. Но не бързаме, а ще дадем друга команда

dpkg -i linux-headers-version.deb

който ще инсталира заглавките на ядрото в директорията /usr/src/linux-headers-version, в нашия случай това ще бъде директория /usr/src/linux-headers-2.6.20.3-ubuntu1. Тези заглавки ще ни трябват, например, за прекомпилиране на драйвери nVidiaза новото ядро.

6. Рестартирайте

Рестартирайте и в менюто Грубще видите два нови елемента - нормално зареждане с вашето ядро ​​и зареждане в минимален конзолен режим. Изберете първия елемент. Ако ядрото не попадне веднага в Паника на ядрото, това е добър знак. Изчакайте края на изтеглянето. Ако имате късмет, Ubuntu ще стартира в графичен режим и ще покаже графична подкана за влизане. В този случай не можете да четете повече.

Но за потребители на карти nVidia, който използва драйвери, инсталирани чрез "Proprietary Driver Manager" или използва драйвери от пакета nvidia-glx(или там nvidia-glx-нов), давам 99% гаранция, че няма да имате късмет! И няма да видите графики под новото ядро!

7. Инсталиране на nVidia драйвери от nvidia.com

За да получите работни x под новото ядро, първото нещо, което идва на ум е да инсталирате драйверите от nvidia.com под новото ядро. И това е грешно решение! Веднага след като дървата за огрев се инсталират под новото ядро, графиката в старото ви тествано ядро ​​ще спре да работи (поради факта, че файловете на драйверите на nVidia са тясно обвързани с версията и името на ядрото). И тъй като все още не сте тествали реално производителността на новото ядро, можете да получите система "с родно ядро, но без графика" и "бъги ядро, но с графика". Не мисля, че някой харесва тази ситуация.

В популярната статия "Ядрена физика за домакини" има препоръки как да получите графика под двете ядра. Предлага се следният начин - да имате готов инсталационен пакет от дърва за огрев от nvidia.com и ако искате да стартирате под конкретно ядро, първо трябва да стартирате в конзолния режим на това ядро, да инсталирате дървата за огрев и след това да стартирате нормално . Не мисля, че някой ще бъде доволен и от този подход.

Ще се уверим, че графиката ще работи както в старото ядро, така и в новото ядро ​​и за това няма да е необходимо да стартирате инсталацията (компилирането) на дърва за огрев всеки път. За да направим това, ще трябва да изпълним само едно условие - графичните дърва за огрев под различни ядра да са от една и съща версия.

Кратък план за действие- слагаме дърва за огрев от обекта nvidia.comза стандартното ядро ​​в пълен размер. Уверяваме се, че работят. След това от същия пакет инсталираме дърва за огрев за самостоятелно направено ядро, но в режим "само графичен модул".

8. Инсталиране на nVidia драйвери за обикновено ядро

Всичко, което е написано по-долу, е подходящо и за тези, които току-що са решили да инсталират нови nVidia драйвери за стандартното ядро!

Изтегляне от сайта nvidia.comдърва за огрев под linux. Изтеглих версията за дърва за огрев 96.43 . Файлът се извиква nvidia-linux-x86-96.43.01-pkg1.run. Но можете да опитате други стабилни версии, които присъстват на сайта. nVidia.

За да инсталирате, създайте в директорията /usr/srcименувана поддиректория nvidia, копирайте този файл там. Намирайки се в тази поддиректория, ние даваме на файла разрешение за изпълнение

chmod 777 NVIDIA-Linux-x86-96.43.01-pkg1.run

Всичко, на тази работа в графичния интерфейс свършва за известно време. Преди да излезете от режим на графика, стартирайте синаптичени се уверете, че имате

  • способност. Това е предна обвивка над мениджъра на пакети за текстов режим.
  • linux-headers-2.6.20-15. Това са заглавните файлове (заглавките) на вашето стандартно ядро.
  • linux-headers-2.6.20-15-generic. Няма да казвам точно за какво, по дяволите, е този пакет, но нека бъде.

Добър съвет е текстът на тази статия да бъде отпечатан на хартия или да се запише в текстов файл, който може да се разглежда от текстов режим.

Рестартираме в конзолния режим на обикновено ядро ​​(в Грубима такъв момент). AT ubuntuавтоматично ще получите root права, дори не е необходимо да въвеждате парола. Сега трябва да премахнем дървото nVidiaкоито са в системата. Ако сте инсталирали дърва за огрев чрез "Proprietary Driver Manager" (или като инсталирате пакета nvidia-glxили nvidia-glx-нов), след това пакетът nvidia-glx/nvidia-glx-новтрябва да бъде премахнат от системата и не просто деинсталиран, а деинсталиран в режим прочистване.

Аз съм доста тъп потребител и вместо да се занимавам с опциите dpkg, в конзолата използвам програмата способност. Наберете екип

и ще се озовете в черупка, напомняща за синаптичен. В горната част ще има ключов намек. За достъп до менюто натиснете ctrl+t(неудобно, но какво да се прави). В менюто
стрелки и клавиши Въведетенамерете и изберете " намирам". Пишем низа за търсене - nvidia-glx. Светлината ще падне върху желания пакет. Извикваме отново менюто и намираме елемента " Прочистване". Щракнете върху него и пакетът, на който се намира флаш паметта, ще бъде маркиран за пълно деинсталиране на всичките му файлове от системата (самият пакет ще остане в кеша, може да бъде преинсталиран, ако е необходимо). По-долу ще се появи намек - " e - Разгледайте, ! - Премахване". Натиснете " д" - и вижте кои пакети ще бъдат премахнати. Ако от nvidia-glxзависят от пакетите, те също ще бъдат деинсталирани. Обикновено това е пакет. nvidia-glx-dev. Няма проблем, ако и той си тръгне.

Сега натискаме " ! "(за особено надарените - shift+1), с това ние се съгласяваме с нашите промени. След това натискаме " q" (изход). При излизане програмата ще премахне пакетите, които маркирахме.

Сега е такъв момент. Сега сме на ниво init 1(само конзола, много услуги не се изпълняват). Ако стартирате инсталацията на драйвера nVidia, тогава тя ще се закълне, че може да не сте стартирали услугата devfs, което обикновено започва от нивото 3 . Затова даваме командата

телинит 3

и системата ще завърши зареждането на необходимите услуги и в същото време ще излезе от режима на един потребител (ще се появят няколко конзоли, които могат да се превключват с клавишите ALT+F1...ALT+F6). За по-нататъшна работа ни трябват само две конзоли. Между другото, системата ще се опита да зареди графиката, но няма да успее, т.к. току що деинсталирахме драйвера. И тя ще остане 7 та конзола с празен екран. Не се паникьосвайте, натискайте ALT+F1, виждаме първата конзола, въвеждаме там логина, паролата е същата като при графичния вход (само след входа и паролата натискаме Въведетено не РАЗДЕЛ).

След като влезем, се обаждаме mcпод суперпотребител

Отидете в каталога /usr/src/nvidia

./NVIDIA-Linux-x86-96.43.01-pkg1.run -e

опция " " ще ни позволи да видим отчета за действията и да видим конфликтните файлове. Да започнем инсталацията. Съгласни сме с лиценза. Отказваме да възобновим източници с ftp nvidia. Говорим Добрече модулите ще бъдат създадени от нас. За въпроси относно въвеждането на пътища, просто щракнете Въведете.

В крайна сметка, преди самата инсталация, ще се покаже списък с файлове, които ще бъдат инсталирани. И в началото на този списък (ако бъде намерен) ще се появи конфликтни файлове. ще бъде написано " архивен файл...„- това са те. В моя случай това бяха файлове

/usr/lib/xorg/modules/extensions/libGLcore.so
/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

Това са файловете от пакета nvidia-restricted-modules. Факт е, че ако просто премахнете този пакет, тогава заедно с тези файлове, всички файлове за nVidia- чипсети ( nVidiaв крайна сметка не прави само видеокарти). Ще трябва също да премахнете зависими пакети. linux-restricted-modules-2.6.20-15-generic, linux-restricted-modules-genericи линукс общ. Поради това е нежелателно да премахвате този пакет. Затова ще го направим по различен начин.

Веднага щом видите такъв списък, влезте във втората конзола (преход - ALT+F2), бягай

и методично прехвърлете тези конфликтни файлове някъде в отделна директория в домашната директория, позовавайки се на списъка в първата конзола. Защо да преместите, а не да изтриете? Факт е, че имената на файлове в Linux са "четими от човека" и лесно можете да направите грешка и да изтриете грешен файл.

След изтриване на всички файлове, предназначени за Архивиране, върнете се към първата конзола. Прекратяване на инсталацията ( ctrl+c) и го рестартирайте. Ако " архивен файл..." вече няма да бъде, след това завършете инсталацията. Всичко трябва да върви гладко. Можете да се съгласите с поправката xorg.conf, все пак създайте архивен файл.

Сега внимание!Най-важното е, че в този момент не се претоварвайте! И отидете на файла /etc/default/linux-restricted-modules-common, и добавете към опцията DISABLED_MODULESмодули н.в.и 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. И така, при стартиране на ksov първият файл ще бъде намерен. И няма да стигне до файла ви. И X няма да могат да се стартират.

Рестартираме в стандартното ядро ​​в пълен режим. Ако всичко е направено правилно, X ще започне. Радвайте се, поне все още имате работеща система.

9. Инсталиране на nVidia драйвери за персонализирано ядро

Сега остава последната стъпка - да накараме графиката да работи в новото ядро. Тук всичко е доста просто. Стартираме в конзолния режим на домашното ядро. Даваме команда

влезте и при първото стартиране на конзолата

Отидете в каталога /usr/src/nvidiaи започнете да инсталирате дърва за огрев с командата

./NVIDIA-Linux-x86-96.43.01-pkg1.run -Ke

Настроики " -ке" ви позволяват да изградите само графичния модул nvidia.koпод текущото ядро ​​(и файлът ще бъде поставен в директорията /lib/modules/current_kernel_name/kernel/drivers). Няма други споделени файлове, в които биха били поставени /usr/lib...както при компилиране с опцията "-e", няма да бъде създаден.

Точно както при компилиране в стандартното ядро, ние се съгласяваме с пътищата чрез натискане Въведете. Стигаме до екрана, където ще бъдат изброени файловете, които ще бъдат инсталирани. Ако има конфликтни файлове в началото на този списък " архивен файл...", превключете към съседната конзола и изтрийте (прехвърлете) тези файлове.

След като премахнете конфликтните файлове, в първата конзола прекратете инсталацията ( ctrl+c) и го стартирайте отново (с опцията " -ке"разбира се). След като инсталацията приключи, рестартирайте, като изберете от менюто Грубв пълен режим с вашето ядро.

X трябва да започне. Можете да се зарадвате втори път - имате система с персонализирано ядро ​​и работеща графика.

По всяко време вече можете да стартирате под желаното ядро ​​и графиката трябва да работи навсякъде. Това е всичко.