Eng so'nggi linux yadrosi. Ubuntuda yadro yaratish. Bosqichma-bosqich ko'rsatma. Linux yadrosini qayerdan yuklab olish mumkin

Men uzoq vaqtdan beri Linux yadrosini qanday yaratish haqida maqola yozmoqchi edim. Va endi bu daqiqa keldi.

Aslida, tarqatish mukammal foydalanish mumkin bo'lgan yadroni ta'minlasa, nega yadro yaratish kerak?

Masalan, tarqatishda faqat eski filial mavjud bo'lganda, yangi yadroda taqdim etilgan eng so'nggi drayverlar va echimlardan foydalanish uchun. Bundan tashqari, masalan, uni uskunangizga moslashtirish va ishni biroz tezlashtirish. Men o'zim uchun 3.11 ni yaratdim, chunki unda ATI video kartalari bilan ishlashni yaxshilaydigan yamoqlar to'plami mavjud va men ulardan birining egasiman.

Yadroni yig'ish haqida juda ko'p maqolalar yozilgan, shuning uchun men tafsilotlarga kirmayman, faqat o'zim uchun yadroni qanday yig'ishimni yozaman.

Avvalo, Linux yadrosining kerakli versiyasining manba kodlari bilan arxivni olishingiz kerak.

https://www.kernel.org/ saytida siz kerakli versiyani yuklab olishingiz mumkin. Men misol sifatida 3.11.0 versiyasidan foydalangan holda qurish va o'rnatish jarayonini tasvirlab beraman.

Yadroni imtiyozsiz foydalanuvchi ostida shu maqsadda maxsus yaratilgan katalogda qurish tavsiya etiladi. Men papkada kompilyatsiya qilaman ~src/linux/linux-versiyasi

Kompilyatsiya qilishdan oldin, siz qurilish uchun zarur bo'lgan barcha bog'liqliklar o'rnatilganligiga va kompilyatsiya katalogida taxminan 3 Gb bo'sh joy mavjudligiga ishonch hosil qilishingiz kerak.

Bu erda muvaffaqiyatli kompilyatsiya qilinadigan paketlar ro'yxati (Debian/Ubuntu uchun):

gcc, qilish- Kerakli yig'ish va ulash asboblari. Eng soʻnggi gcc versiyalaridan biri boʻlsa.

libncurses5-dev- menuconfig ishlashi uchun kerak

ccache- qayta yig'ishni tezlashtirish imkonini beradi

Agar siz grafik yadro konfiguratoridan foydalanmoqchi bo'lsangiz, masalan, QTni ishlab chiqish uchun paketlarni o'rnatishingiz kerak. libqt4-dev, g++, pkg-config.

Lzop, lz4c- agar siz muqobil yadro va initramfs siqish mexanizmlariga qiziqsangiz.

Joriy katalog ochilgan yadroning katalogi sifatida qabul qilinadi.

Qurilish muhiti tayyorlangandan so'ng, yadro konfiguratsiyasi yaratilishi kerak. Joriy konfiguratsiyani quyidagicha ko'rish mumkin:

Cat /boot/config-`uname -r`

Zcat /proc/config.gz

Aslida, joriy konfiguratsiyani konfiguratsiya dasturlaridan birida tahrirlash orqali ishlatishingiz mumkin. Uni yadro bilan arxiv ochilgan katalogga nusxa ko'chiring va nomini o'zgartiring .config

cp /boot/config-`uname -r` .config

Menga xconfig yoqadi, men uni eng qulay deb bilaman.

xconfig qiling

Oldindan nusxa ko'chirilgan avtomatik yuklanadi .config, bu konfiguratsiya uchun bizning asosimiz bo'lib xizmat qiladi. Yadroni o'rnatish bo'yicha juda ko'p maslahatlar mavjud, men faqat protsessor versiyasini tanlashni, u erda bo'lmagan apparat drayverlarini o'chirishni tavsiya qilaman, siz zram va siqish algoritmi kabi qo'shimcha modullarni ham tanlashingiz mumkin, men lz4 ni tanladim. eng tez.

Konfiguratsiyani saqlaganingizdan so'ng siz kompilyatsiya qilishni boshlashingiz mumkin.

Agar siz yadroni qo'lda sozlash uchun juda dangasa bo'lsangiz, yuklangan modullar haqidagi ma'lumotlardan foydalanib, avtomatik sozlashingiz mumkin: localmodconfig qiling.

Endi ikkinchi asosiy qadam yadro va modullarni kompilyatsiya qilishdir. Bitta buyruqda bajariladi:

-j4 CC="ccache gcc" bzImage modullarini yarating

Qayerda -j4 konfiguratsiyangizdagi protsessor yadrolari soniga mos keladi.

Agar uskuna etarlicha kuchli bo'lsa va tarqatish yadrosi konfiguratsiyasi ishlatilmasa, kompilyatsiya ko'p vaqt talab qilmaydi. AMD Phenom P820 protsessorli va olti gigabayt operativ xotiraga ega noutbukimda kompilyatsiya taxminan yarim soat davom etadi.

Oxirgi qadam yadro va modullarni o'rnatishdir.

Sudo sed -i.bak "s/MODULES=most/MODULES=dep/" /etc/initramfs-tools/initramfs.conf

Bu faqat yuklash uchun zarur bo'lgan modullarni kiritish orqali initrd faylining hajmini kamaytirish uchun kerak.

O'rnatish bitta buyruq bilan ham amalga oshirilishi mumkin:

sudo make modules_install install

Yoki hamma narsani qo'lda o'rnating. Modullar birinchi

sudo make modules_install

Keyin yadro

Versiya =`awk "NR<=3 {printf "%s.",$NF}" < Makefile | sed "s/\.$//"`

Makefile'dan yadro versiyasini shu tarzda olamiz

sudo cp arch/`uname -m`/boot/bzImage /boot/vmlinuz-$versiya sudo cp .config /boot/config-$versiya sudo cp System.map /boot/System.map-$versiya sudo update-initramfs - c -k $ versiyasi sudo update-grub

Nihoyat, jarayonni avtomatlashtirish uchun skriptni biriktiryapman.

Konfiguratsiyani sozlash paytida u bir nechta savol berishi mumkin, sukut bo'yicha javob berish uchun siz Enter tugmasini bosishingiz kerak.

Baxtli kompilyatsiya.

Nima uchun kimdir yangi yadro kompilyatsiya qilishni xohlaydi? Bu ko'pincha kerak emas, chunki Debian bilan birga kelgan standart yadro ko'pgina konfiguratsiyalarni boshqaradi. Bundan tashqari, Debian ko'pincha bir nechta muqobil yadrolarni taklif qiladi. Shunday qilib, avval siz uskunangizga mos keladigan muqobil yadro tasvir paketi mavjudligini tekshirishni xohlashingiz mumkin. Biroq, yangi yadroni kompilyatsiya qilish foydali bo'lishi mumkin:

Yadroni kompilyatsiya qilishga urinishdan qo'rqmang. Bu qiziqarli va foydali.

Yadroni Debian usulida kompilyatsiya qilish uchun sizga ba'zi paketlar kerak bo'ladi: , va ehtimol allaqachon o'rnatilgan bir nechta boshqa paketlar (to'liq ro'yxat uchun qarang).

Bu usul yadro manbangizning .deb faylini yaratadi va agar sizda nostandart modullar bo'lsa, ular uchun ham sinxronlangan bog'liq .deb hosil qiling. Bu yadro tasvirlarini boshqarishning eng yaxshi usuli; yadroni, System.mapni va qurish uchun faol konfiguratsiya fayli jurnalini saqlaydi.

E'tibor bering, siz buni qilmaysiz bor yadrongizni "Debian yo'li" ni kompilyatsiya qilish; ammo biz yadroni boshqarish uchun qadoqlash tizimidan foydalanish haqiqatan ham xavfsizroq va osonroq ekanligini aniqlaymiz. Haqiqatan ham, siz yadro manbalarini to'g'ridan-to'g'ri o'rniga Linusdan olishingiz mumkin, lekin hali ham kompilyatsiya usulidan foydalaning.

E'tibor bering, siz foydalanish bo'yicha to'liq hujjatlarni ostida topasiz. Ushbu bo'lim faqat qisqacha qo'llanmani o'z ichiga oladi.

Shundan so'ng, biz sizning kompyuteringiz ustidan erkin foydalanasiz deb taxmin qilamiz va yadro manbangizni uy katalogingizning biron bir joyiga olib chiqamiz. Shuningdek, yadro versiyangiz 3.16 deb taxmin qilamiz. Yadro manbalarini ochmoqchi bo'lgan katalogda ekanligingizga ishonch hosil qiling, ularni foydalanib chiqarib oling va yaratilgan katalogga o'zgartiring.

Endi siz yadroni sozlashingiz mumkin. X11 o'rnatilgan, sozlangan va ishga tushirilgan bo'lsa ishga tushiring; aks holda ishga tushiring (siz o'rnatishingiz kerak). Onlayn yordamni o'qish uchun vaqt ajrating va diqqat bilan tanlang. Agar shubhangiz bo'lsa, odatda ishonchingiz komil bo'lmagan qurilma drayverini (apparat tashqi qurilmalarini boshqaradigan dasturiy ta'minot, masalan, Ethernet kartalari, SCSI kontrollerlari va boshqalar) qo'shish yaxshiroqdir. Ehtiyot bo'ling: ma'lum bir uskuna bilan bog'liq bo'lmagan boshqa variantlar, agar siz ularni tushunmasangiz, standart qiymatda qoldirilishi kerak. "Yuklanadigan modulni qo'llab-quvvatlash" da "Yadro modulini yuklash" ni tanlashni unutmang (u sukut bo'yicha tanlanmagan). Agar qo'shilmagan bo'lsa, Debian o'rnatishingiz muammolarga duch keladi.

Manba daraxtini tozalang va parametrlarni tiklang. Buning uchun bajaring.

Endi yadroni kompilyatsiya qiling: . "1.0" versiya raqami o'z xohishiga ko'ra o'zgartirilishi mumkin; Bu faqat yadro tuzilmalarini kuzatish uchun foydalanadigan versiya raqami. Xuddi shunday, siz "odatiy" (masalan, xost nomi) o'rniga o'zingizga yoqqan so'zni qo'yishingiz mumkin. Mashinangizning kuchiga qarab yadro kompilyatsiyasi ancha vaqt talab qilishi mumkin.

Kompilyatsiya tugallangandan so'ng, siz o'zingizning shaxsiy yadrongizni har qanday paket kabi o'rnatishingiz mumkin. Ildiz sifatida, bajaring. Qism ixtiyoriy sub-arxitektura boʻlib, qaysi yadro parametrlarini oʻrnatganingizga qarab. yadroni boshqa yaxshi yordamchi fayllar bilan birga o'rnatadi. Masalan, to'g'ri o'rnatiladi (yadro muammolarini tuzatish uchun foydali) va joriy konfiguratsiya to'plamini o'z ichiga olgan holda o'rnatiladi. Sizning yangi yadro paketingiz ham yangi yadrodan foydalanish uchun yuklash moslamasini avtomatik yangilash uchun yetarli darajada aqlli. Agar siz modullar paketini yaratgan bo'lsangiz, ushbu paketni ham o'rnatishingiz kerak bo'ladi.

Tizimni qayta ishga tushirish vaqti keldi: yuqoridagi qadam sabab bo'lishi mumkin bo'lgan har qanday ogohlantirishni diqqat bilan o'qing, keyin .

Debian yadrolari va yadro kompilyatsiyasi haqida ko'proq ma'lumot olish uchun Debian Linux yadrosi qo'llanmasiga qarang. Haqida qo'shimcha ma'lumot olish uchun nozik hujjatlarni o'qing.

Esingizda bo'lsa, yaqinda biz manbadan FreeBSD yadrosini yaratishni o'rgangan edik. Savol shundaki, nega Linux yadrosi bilan ham xuddi shunday qilishni o'rganmaysiz? Linux yadrosini manbadan yaratishning sabablari, umuman olganda, bir xil - yadroning eng so'nggi versiyasini olish, zudlik bilan xavfsizlik yamoqlarini qo'llash, muayyan vazifalar va muayyan uskunani optimallashtirish, shuningdek, yadro ishlab chiqishda ishtirok etish istagi, hatto. QA rolida.

Muhim! Ushbu postdagi ko'rsatmalarga rioya qilish ma'lumotlaringizning yo'qolishiga olib kelishi mumkin. Zaxira nusxalarini yarating va esda tutingki, siz hamma narsani o'zingizning xavf-xataringiz va xavfingiz ostida qilyapsiz. Quyida tavsiflangan hamma narsa Ubuntu 14.04 LTS da sinovdan o'tkazildi. Ammo Ubuntu-ning boshqa versiyalarida, shuningdek, boshqa Linux tarqatishlarida farqlar minimal bo'lishi kerak.

Bootloaderni sozlash

/etc/default/grub ni quyidagicha tahrirlang:

GRUB_DEFAULT=0
#GRUB_HIDDEN_TIMEOUT=10
#GRUB_HIDDEN_TIMEOUT_QUIET=to'g'ri
GRUB_TIMEOUT=10
GRUB_DISTRIBUTOR=`lsb_release -i-s2>/dev/null ||echo Debian`
GRUB_CMDLINE_LINUX_DEFAULT="sokin chayqalish"
GRUB_CMDLINE_LINUX=""

Tahrirlashdan keyin biz aytamiz:

sudo update-grub

Natijada, tizim yuklanishidan oldin sizdan 10 soniya davomida yuklamoqchi bo'lgan yadroni tanlashingiz so'raladi. Agar siz yadro konfiguratsiyasini buzgan bo'lsangiz va oldingi versiya bilan yuklashni xohlasangiz juda qulay!

Bog'liqlarni o'rnating

Bizga kamida quyidagi paketlar kerak bo'ladi:

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

Ko'pgina tizimlarda ularning barchasi allaqachon mavjud bo'ladi.

Manbani olish

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
CD linux-4.6.4

Yoki eng so'nggi ma'lumotni istasangiz, manbani to'g'ridan-to'g'ri Git-dan olishingiz mumkin:

# Oyna: https://github.com/torvalds/linux
git clone'git://git.kernel.org/pub/scm/linux/kernel/git/'\
'torvalds/linux.git'
CD linux

Git-da v4.6.4 tegini topa olmaganimga ko'ra, Linux yadrosi relizlari faqat siqilgan tar arxivlari ko'rinishida qilingan.

Agar siz vanil yadrosi o'rniga Canonical yamoqlari bilan yadro qurmoqchi bo'lsangiz:

git clone git://kernel.ubuntu.com/ubuntu/ubuntu-trusty.git
CD ubuntu-ishonchli
git tag|kamroq
git checkout Ubuntu-lts-4.4.0-31.50_14.04.1

O'z tajribamdan, agar siz Ubuntu'dan foydalansangiz, vanil yadrosidan xavfsiz foydalanishingiz mumkin. U bilan hech qanday muammoga duch kelmasligingiz dargumon.

Eslatma: Qizig'i shundaki, mavjud nisbatan mashhur Linux distributivlaridan faqat Gentoo, Slackware va Arch Linux o'z yamoqlarisiz yadrodan foydalanadi.

Qanday bo'lmasin, endi sizda manba kodi bor.

Yadroni kompilyatsiya qilish va o'rnatish

Yadro quriladigan variantlarni tanlang:

Agar kerak bo'lsa, sozlamalarni o'zgartiring, Saqlash-ni, keyin esa Chiqish-ni bosing. Natijada, biz tanlagan parametrlarni o'z ichiga olgan fayl yaratiladi.

Da yangilash yadro (siz baribir qandaydir yadrodan foydalanyapsizmi?) joriy yadro konfiguratsiyasini olish va yangi parametrlarni standart qiymatlariga o'rnatish qulay:

zcat/proc/config.gz > ./.config
olddefconfig qiling

Nihoyat, biz yig'amiz:

make-j4 bindeb-pkg LOCALVERSION=-custom

Yadro juda uzoq vaqt davomida yig'iladi. Mening noutbukimda yig'ilish 1 soat 15 daqiqa davom etdi. Biroq, shu vaqtdan boshlab haqida Qolganlari disk raskadrovka belgilariga ega ulkan yadro paketini yaratishga sarflanadi.

Linux yadrosini qo'lda qurish va sozlash

Ushbu paketning yig'ilishini konfiguratsiyadagi CONFIG_DEBUG_INFO parametriga izoh berish orqali o'chirib qo'yish mumkin. Shuni yodda tutingki, ushbu paket SystemTap va boshqa foydali vositalar tomonidan talab qilinadi.

Yadroning o'ziga qo'shimcha ravishda siz hujjatlarni ham to'plashingiz mumkin:

# shuningdek, "make pdfdocs" va boshqalar mavjud, "yordam berish" ga qarang
htmldocs yaratish
Chromium-brauzer Hujjatlari/DocBook/index.html

Yig'ish tugagandan so'ng sho'ba korxonasi katalogida biz shunga o'xshash narsani ko'ramiz:

linux-proshivka-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

Biz yadroning dbg-versiyasidan tashqari barcha deb-paketlarni odatdagilar bilan joylashtiramiz va qayta ishga tushiramiz. Qayta ishga tushirgandan so'ng, biz buyruqning chiqishiga qaraymiz. Biz haqiqatan ham yangi yadro bilan yuklanganimizga ishonch hosil qilamiz. Agar yangi yadroda biror narsa noto'g'ri bo'lsa, yuklovchida biz shunchaki tizim avval yuklanganini tanlaymiz. Eski yadro bilan yuklangandan so'ng, biz tezda yangi yadro paketlarini olib tashlaymiz va voila - tizim avvalgi holatiga qaytdi.

Bundan tashqari, yangi yadroni yuklaganingizdan so'ng, siz unda testlarni o'tkazishingiz mumkin:

sudomake kselftest
sudomake kselftest-clean

Tabriklaymiz, endi siz Linux yadrosini qanday yaratishni bilasiz!

Xulosa

Linux yadrosining ichki qismlariga oid materiallar:

  • KernelNewbies.org, Linux yadrosiga yangi boshlanuvchilar uchun o'zining pochta ro'yxati, IRC kanali, forum, wiki va boshqalarga ega sayt;
  • LKML.org, brauzer orqali Linux yadrosini ishlab chiquvchilarning pochta ro'yxatini qulay o'qish uchun sayt. Ehtiyot bo'ling, bu ko'pincha harflarning formatlanishini buzadi! Shu ma'noda, marc.info saytidagi pochta ro'yxati arxivi ancha yaxshi;
  • Linux Cross Reference, brauzer orqali Linux yadro kodini qulay o'qish uchun sayt;
  • Linux yadrosini ishlab chiqish kitobi, 3-nashr ingliz tilidagi Linux yadrosi bo'yicha eng so'nggi kitob (2010, yadro 2.6.x), rus tiliga tarjimasi mavjud;
  • Linux-Treiber entwickeln, 4th Edition kitobi yangiroq (2015, yadro 4.x), lekin nemis tilida yozilgan va tarjimasi yo'q;
  • Aleksandr Kuleshov a.k.a @0xAX tomonidan bepul Linux Insides kitobi eng qulay va dolzarb bo'lib ko'rinadi, lekin hozirda yozilish jarayonida;
  • Ba'zan siz Linux yadrosi manbalaridan olingan rasmiy hujjatlar bo'lgan Linux yadrosi HTML hujjatlarida foydali narsalarni topishingiz mumkin;
  • Yangilanib turishga harakat qilayotgan Linux Device Drivers, 3rd Edition kitobiga misollar va hozirda yozilayotgan 4-nashr uchun manbalar;

Siz yadroni manbadan yaratasizmi va agar shunday bo'lsa, nima uchun? 🙂

Qo'shimcha: Sizni Linuxda yadro kodini disk raskadrovka qilish haqidagi janjalli haqiqat maqolasi ham qiziqtirishi mumkin.

Teglar: Linux, Ring0.

Linux yadrosini kompilyatsiya qilish


Ko'pchilik o'zini aqlli va ilg'or "Linuxoid" sifatida ko'rsatish uchun vaqtni behuda sarflash deb hisoblaydi. Aslida yadroni kompilyatsiya qilish juda muhim narsa. Aytaylik, siz ishlaydigan veb-kameraga ega bo'lmagan yangi noutbuk sotib oldingiz. Sizning harakatlaringiz? Siz qidiruv tizimiga qaraysiz va ushbu masala bo'yicha muammoning echimini qidirasiz. Ko'pincha veb-kamerangiz yadroning sizdagidan yangiroq versiyasida ishlayotganligi aniqlanishi mumkin. Qaysi versiyangiz borligini bilmasangiz, terminalga uname -r yozing, natijada siz yadro versiyasini olasiz (masalan, linux-2.6.31-10). Bundan tashqari, yadro kompilyatsiyasi samaradorlikni oshirish uchun keng qo'llaniladi: haqiqat shundaki, yadro taqsimotlari sukut bo'yicha "hamma uchun" tuzilgan, shuning uchun u sizga kerak bo'lmasligi mumkin bo'lgan juda ko'p sonli drayverlarni o'z ichiga oladi. Shunday qilib, agar siz uskunangizni yaxshi bilsangiz, konfiguratsiya bosqichida keraksiz drayverlarni o'chirib qo'yishingiz mumkin. Bundan tashqari, tizimning bit chuqurligini o'zgartirmasdan 4 gigabaytdan ortiq operativ xotirani qo'llab-quvvatlashni yoqish mumkin.

Linux yadrosini qanday qurish mumkin? Linux yadrosini yaratish

Shunday qilib, agar siz hali ham o'z yadrongizga ega bo'lishingiz kerak bo'lsa, keling, kompilyatsiya qilishni boshlaylik!


Birinchi narsa, kerakli yadro versiyasi uchun manba kodini olishdir. Odatda eng yangi barqaror versiyani olishingiz kerak. Yadroning barcha rasmiy versiyalari kernel.org saytida mavjud.

Agar sizda allaqachon X server (uy kompyuteri) o'rnatilgan bo'lsa, u holda siz o'zingizning sevimli brauzeringizdagi saytga kirishingiz va tar.gz (gzip siqilgan) arxivida kerakli versiyani yuklab olishingiz mumkin. Agar siz konsolda ishlayotgan bo'lsangiz (masalan, siz hali X serverini o'rnatmagansiz yoki serverni sozlayotgan bo'lsangiz), matn brauzeridan foydalanishingiz mumkin (masalan, elinks).

Siz standart wget yuklab olish menejeridan ham foydalanishingiz mumkin:


tar -zxvf path_to_archive

Yadro konfiguratsiyasi.

Jamlama.
qilish && o'rnatish
Biz 20 daqiqadan bir necha soatgacha kutamiz (kompyuterning kuchiga qarab). Yadro o'rnatilgan. Uni grub (2) ro'yxatida ko'rsatish uchun (root sifatida) kiriting.
yangilash guruhi


Maqola arxivi:
2017 yil may
2017 yil mart
2016 yil aprel
2016 yil mart
2013 yil oktyabr
2013 yil sentyabr
May, 2013 yil
2013 yil mart
2012 yil noyabr
2012 yil iyul
2012 yil iyun
2012 yil aprel
2012 yil mart
2012 yil fevral
2011 yil aprel
2011 yil mart
2011 yil fevral
2011 yil yanvar
2010 yil dekabr
2010 yil noyabr
2010 yil oktyabr
2010 yil sentyabr
2010 yil avgust
2010 yil iyul
2010 yil iyun
2010 yil may
2010 yil aprel
2010 yil mart

Tasodifiy:

Stellarium virtual planetarium: yangi xususiyatlarning umumiy ko'rinishi

BOINC: fan uchun hisoblash

Gambas: Linuxda asosiy ishlanma

SSH 2.0 seriyali diagrammalar

Linuxnow.ru: kelajak uchun rejalar

To'satdan diskda bo'sh joy tugayaptimi? Ehtimol, muammo jurnallarda.

Hamkasblar: hammasi
Linux hamma uchun

Bizning bannerlarimiz:


Banner o'rnatish

Linux yadro konfiguratsiyasi

Manba paketlarini tekshirish

Yadroni qayta kompilyatsiya qilish uning manbalarini talab qiladi.

Tizim boshqaruvi haqida blog. Linux, Windows, NetApp saqlash va virtualizatsiya haqida maqolalar.

Red Hat yadro manbalarini bitta rpm paketiga joylashtiradi, lekin sukut bo'yicha o'rnatilmagan. Ushbu paketning nomi:

yadro manbai-2.4.2-2.1386.rpm

Yadroni qayta kompilyatsiya qilish uchun manba kodiga qo'shimcha ravishda sizga ikkita komponentdan iborat kompilyator kerak bo'ladi:

foydali dastur yaratish;

C tilining kompilyatorining o'zi gcc yoki egcs.

Joriy yadroning zaxira nusxasini yaratish uch bosqichda amalga oshiriladi:

1. Yadro manbalarining zaxira nusxasini yaratish, bu konfiguratsiya buzilgan taqdirda uni qayta tiklash imkonini beradi.

2. Tizimni ishga tushirishning ma'lum ishchi vositasi sifatida yadroning o'zi zaxira nusxasini yaratish.

3. Yadro zaxirasidan yuklash uchun ishlatilishi mumkin bo'lgan operatsion tizim yuklagichi uchun yangi yozuvni yaratish.

Manba zahirasini yaratish yadro manba katalogini diskka nusxalash orqali amalga oshiriladi. Qayta tiklash teskari yo'nalishda nusxa ko'chirish orqali amalga oshiriladi.

Yadro qayta kompilyatsiya qilinganda, eski yadro .old kengaytmali faylga yoziladi. Biroq, yadroning ushbu nusxasini hali tizimni yuklash uchun ishlatib bo'lmaydi. Bu yuqoridagi operatsiyalarni bajarish zarurligini tushuntiradi.

Odatda Linuxni yuklash uchun ishlatiladigan LILO tipidagi operatsion tizim yuklagichi ildiz fayl tizimidagi yadro fayliga ulanish orqali sozlangan.

Yadroning zaxira nusxasini yaratgandan so'ng, Linuxni eski yadro bilan ishga tushirishga ruxsat berish uchun /etc/lilo.conf fayliga boshqa yozuvni qo'shishingiz kerak:

/etc/lilo faylini oching. conf matn muharririda

butun bo'limning nusxasini yaratish;

nusxadagi ikkita pozitsiyani o'zgartiring:

yadro fayl nomini uning zaxira nusxasi nomi bilan almashtiring (kengaytma bilan birga);

bo'lim yorlig'ini Linux kabi narsa bilan almashtiring. original (original Linux) yoki oldingi linux (eski Linux).

initrd bilan boshlanadigan satrlar initrd-2 .4.2-2 kabi tegishli zaxiralar bilan almashtirilishi kerak. asl. img;

/etc/lilo ga o'zgartirishlar yozing. konf.

yuklash moslamasida yangi yozuvni kiritish uchun /sbin/lilo buyrug'ini kiriting. Lilo buyrug'ini ishga tushirganingizda, ekranda operatsion tizimning yuklash dasturiga kiritilgan tasvirlarning teglari ko'rsatiladi.

Keyingi safar tizim qayta ishga tushirilganda, yangi yadro identifikatori LILO yuklash moslamasi maslahatida ko'rsatiladi.

Yangi yadroni sozlash

Konfiguratsiya yadroga qaysi xususiyatlarni kiritishni, qaysilarini kiritmaslikni va hokazolarni hal qiladi. Siz eski yadroni sozlash va yangisini o'rnatish/sozlash o'rtasida tanlov qilishingiz mumkin. Masalan, Red Hat Linux 7.1 dan foydalanib, mavjud 2.4.2 yadrosini yangi variantlar bilan qayta sozlashingiz mumkin. Shuningdek, siz yangi 2.4.4 yadrosini yuklab olishingiz va o'rnatishingiz mumkin. Ikkala holatda ham konfiguratsiya tafsilotlari boshqacha bo'lsa-da, foydalaniladigan yordamchi dasturlar va konfiguratsiya metodologiyasining o'zi bir xil.

Linux uchta alohida konfiguratsiya yordam dasturiga ega, ularning har biri o'ziga xos xususiyatlarga ega.

Buyruqlar qatori interfeysiga ega yordamchi dastur. Foydalanuvchi doimiy ravishda yadroga kiritilishi kerak bo'lgan xususiyatlar haqidagi savollarga javob beradi. Ushbu yordamchi dastur yadro bilan ishlashni biladiganlar va ushbu yordamchi dastur uchun konfiguratsiya skriptlariga ega bo'lganlar uchun foydalidir.

Matn rejimi menyusi bilan yordamchi dastur. Ushbu yordamchi dasturning ko'p darajali menyusi yadro parametrlarini istalgan tartibda o'rnatish va qayta o'rnatish imkonini beradi.

GUI yordam dasturi. Bu eng jozibali yordamchi dastur, lekin u faqat grafik X Window tizimida ishlaydi.

Ro'yxatda keltirilgan yordam dasturlari to'liq yoki qisman yadrolarni kompilyatsiya qilishda make yordam dasturi tomonidan ishlatiladigan bir xil konfiguratsiya faylini yaratadi.

Yadro parametrlari

Har qanday konfiguratsiya dasturida (buyruqlar qatori, matnga asoslangan yoki GUI) sozlamalarni ko'rib chiqishda siz ushbu sozlamalar yadro ishlashiga ta'sirini aniq bilishingiz kerak.

Har bir dasturda parametrlarni identifikatsiya qilish har xil, ammo uchtasida ham ularning bir xil to'plami taqdim etiladi. Parametrlar ikkita asosiy guruhga bo'lingan:

modulli;

modul bo'lmagan.

Agar ushbu parametrga mos keladigan dastur bloki yadro moduli sifatida yuklanmagan bo'lsa, u ikkita narsadan biri bo'lishi mumkin:

[*] yadroning ajralmas qismi;

Yadroning ajralmas qismi.

Kvadrat qavs ichidagi belgilar (qavslar bilan birga) konfiguratsiya dasturlari menyusidagi parametr belgilariga mos keladi (buyruqlar qatori yordam dasturidan tashqari).

Modulli parametrlar uchun sozlashning uchta varianti mavjud (ularning konfiguratsiya yordam dasturlari menyusidagi ko'rinishiga ko'ra):

<>yadroga kiritilmagan va keyinchalik yuklanishi mumkin bo'lgan modul sifatida yaratilmagan:

<*>yadroga kiritilgan, shuning uchun uni keyinchalik modul sifatida yuklashning hojati yo'q:

<М>Modul sifatida kiritilgan, lekin yadroning bir qismi sifatida emas. Blokni istalgan vaqtda yadrodan o'rnatish yoki olib tashlash mumkin.

Ba'zan parametr qiymatini boshqa parametr o'rnatilmaguncha o'zgartirib bo'lmaydi. Misol uchun, ma'lum bir SCSI qurilmasini qo'llab-quvvatlashni faqat ushbu qurilmalar uchun umumiy qo'llab-quvvatlashni yoqqaningizdan so'ng o'rnatishingiz mumkin.

Tizimda kerakli vositalar (make yordam dasturi va gcc kompilyatori) va manba matnlari o'rnatilganda, siz konfiguratsiya yordam dasturlaridan birini ishga tushirishingiz va yadroni sozlashni boshlashingiz mumkin.

GUI konfiguratori

Grafik interfeys bilan konfiguratsiya yordam dasturini ishga tushirish quyidagi ketma-ketlikda amalga oshiriladi.

X Windows tizimini ishga tushiring (har qanday grafik muhit va ish stoli bilan).

Terminal emulyatori oynasini oching (buyruqlar qatori oynasi).

Oldingi yordamchi dastur ishga tushirilganda bo'lgani kabi, yordam dasturining kompilyatsiyasi haqida bir nechta xabarlar ekranda miltillaydi va bir necha daqiqadan so'ng uning asosiy oynasi ochiladi.

Guruch. 8. Grafik interfeysga ega yadro konfiguratsiya yordam dasturi: parametr qiymatlarini o'rnatish uchun menyu-tugmalar

Grafik yordam dasturi menuconf ig yordam dasturidan unchalik farq qilmaydi. Bu erda variantlar ham tasniflanadi; ma'lum bir toifaga bosish variantlar ro'yxati bilan dialog oynasini ochadi, ularning har biri mos keladigan vosita yadroning bir qismi sifatida, yuklanadigan modul sifatida ishlatilishi yoki umuman ishlatilmasligini aniqlaydigan qiymatga o'rnatilishi mumkin.

Bunday dialog oynasi rasmda ko'rsatilgan.

Guruch. 9. Bu kabi dialog oynalari yadro konfiguratsiyasi parametrlarini o'rnatadi

Red Hat Linux-dagi 2.4.2 yadrosi sukut bo'yicha simmetrik ko'p protsessorli arxitekturani qo'llab-quvvatlaydi. Agar kompyuteringizda faqat bitta protsessor bo'lsa, mos variantni n ga o'rnatishingiz kerak.

Har bir variantning o'ng tomonida Yordam tugmasi mavjud.

Grafik konfiguratsiya yordam dasturining katta afzalligi (ayniqsa birinchi marta yadro konfiguratorlari uchun) menyu turli xil variantlar orasidagi bog'liqlikni ko'rsatadi. Masalan, “Qurilmalarni bloklash” bo‘limida “Ko‘p qurilma drayverini qo‘llab-quvvatlash” opsiyasi yoqilmaguncha, yadroga o‘rnatilgan RAID yordamini o‘rnatolmaysiz.

Agar menuconfig yordam dasturida parametrlarning bir-biriga bog'liqligi menyudagi parametr nomlarining chekinishi bilan ko'rsatilgan bo'lsa, grafik yordam dasturida parametrlarning ruxsat etilmagan kombinatsiyasini o'rnatish shunchaki mumkin emas. Grafik yordam dasturi bilan ishlash turli modullar orasidagi bog'liqlikni tushunishga yordam beradi.

Grafik yordamchi dasturning asosiy menyusi oxirida matn rejimi menyusidagi tegishli yordamchi dastur buyruqlariga o'xshash buyruqlar mavjud.

Saqlash va chiqish (Saqlash bilan chiqish). Yadro konfiguratsiya faylini yaratish va yordamchi dasturni o'chirish.

Saqlamasdan chiqing. Yadro konfiguratsiya faylini yaratmasdan yordam dasturini o'chirish.

Ro'yxatda keltirilgan yordamchi dasturlardan biri yordamida yadro konfiguratsiya faylini yaratmasdan, yadroni qayta kompilyatsiya qilish mumkin emas.

Konfiguratsiyani fayldan yuklash. Ilgari yaratilgan konfiguratsiya fayli yuklanmoqda.

Konfiguratsiyani faylga saqlash. Konfiguratsiya ma'lumotlarini ko'rsatilgan nom bilan faylga yozish (keyinchalik foydalanish yoki hamkasbga o'tkazish uchun). Bu yadroni qayta kompilyatsiya qilish uchun konfiguratsiya faylini yaratuvchi Saqlash va chiqish buyrug'ini bajarish zarurligiga ta'sir qilmaydi.

Yangi yadroni kompilyatsiya qilish va ishga tushirish

Konfiguratsiya tugallangandan so'ng, /usr/src/linux-2 .4.2 katalogida joylashgan yangi konfiguratsiya faylini (.config) tekshirishingiz kerak (versiya raqamiga qarab). Agar .config konfiguratsiya fayli mavjud bo'lsa, yadroni qayta kompilyatsiya qilish uchun make buyrug'idan foydalanishingiz mumkin.

Odatda, yadroni qayta kompilyatsiya qilish 15 daqiqadan bir necha soatgacha davom etadi. Bu protsessorning tezligi, operativ xotira miqdori va boshqa bir qator omillarga bog'liq, shuning uchun kompilyatsiya paytida kiritilgan barcha buyruqlarni nuqta-vergul bilan ajratilgan bittaga birlashtirish qulay, shunda ular ketma-ket bajariladi.

Qayta kompilyatsiya jarayonini boshlash

Quyidagi buyruqlar uning barcha modullarini qayta kompilyatsiya qilish va tegishli tizim kataloglariga yozish orqali yangi yadro yaratish uchun mo'ljallangan. (U erda ular yadro buyruqlari uchun mavjud bo'ladi.)

Tizimni qayta kompilyatsiya qilish uchun quyidagi buyruqlar kiritiladi.

# make dep; tozalang; bzlmage qilish; modullarni yaratish; modules_install qiling

Har bir make buyrug'i oldingisi bajarilgandan so'ng alohida kiritilishi mumkin.

Ushbu buyruqlarni kiritgandan so'ng, make dasturi orqali kiradigan kataloglarni, gcc kompilyatorining ishga tushirilishini tavsiflovchi satrlar ekranda miltillaydi. turli manba fayllarni kompilyatsiya qilish va turli bloklarni ulash uchun. Ushbu buyruqlarning har birini bajarish uchun bir necha daqiqa vaqt ketadi.

Endi buyruq yordamida yangi yadro uchun yuklash diskini yaratishingiz mumkin

Ushbu buyruqni bajarishdan oldin haydovchiga formatlangan floppy diskni kiritishingiz kerak. Tayyor yuklash diskini sinab ko'rish kerak. Disketni diskdan olib tashlamasdan kompyuteringizni qayta ishga tushiring.

Yadro kompilyatsiya buyruqlarini bajarib, buyruq satriga qaytgandan so'ng, yangi yadro yaratiladi. Tizimni yangi yadro bilan yuklash uchun u ishga tushadigan standart katalogga ko'chirilishi kerak. Bu buyruqni kiritish orqali amalga oshiriladi

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

Nihoyat, yuklash xaritasini yangilash uchun lilo buyrug'ini bajaring:

Nusxa olish uchun yadro tasviri nomida versiya raqamini belgilashingiz mumkin. Ushbu fayl nomi /etc/lilo.conf faylida ko'rsatilgan nomga mos kelishi muhim.

Yangi yadro sinovdan o'tkazilmoqda

Yangi yadro faylini standart katalogga (lilo.conf faylida ko'rsatilgan) ko'chirgandan so'ng, tizimni ushbu yadro yordamida qayta ishga tushirish mumkin.

Qayta ishga tushirilgandan so'ng darhol qayta kompilyatsiya boshlangan yangi vositalarning ishlashini tekshiring. Siz quyidagilarni qilishingiz mumkin.

Eski va yangi yadrolarning hajmlarini taqqoslash. Bepul buyruqni berish orqali operatsion tizim egallagan xotira hajmini tekshirishingiz kerak.

Fayl tizimini o'rnatish yoki uni qo'llab-quvvatlash uchun yadro modulini yuklamasdan qurilmaga kirishga urinish (agar ushbu qurilma yadroga o'rnatilgan bo'lsa).

Eski yadroda mavjud bo'lmagan tarmoq resurslaridan (masalan, IP taxalluslari) foydalanish.

Joriy yadro faylining vaqt tamg'asini tekshirish kerak bo'lishi mumkin. Buning uchun unname buyrug'ini kiriting. Bu tizim hozirda qayta kompilyatsiya qilingan yadro bilan ishlayotganligiga ishonch hosil qilish imkonini beradi. Yadroning vaqt tamg'asi va sanasi u qayta kompilyatsiya qilingan vaqtga mos kelishi kerak.

Agar uname buyrug'ining javobi tizim yangi yadro bilan yuklanmaganligini ko'rsatsa, LILO bootloader-ga qarang. /etc/lilo.conf faylida yuklanadigan yadro nomi to'g'ri yoki yo'qligini tekshiring.

KO'PROQ KO'RISH:

Debian-dagi manbadan Linux yadrosini kompilyatsiya qilish va o'rnatish

Bryansk Linux foydalanuvchilari guruhi va www.rm.pp.ru dan material

Har bir tarqatishning o'ziga xos yadro qurish xususiyatlari bor va ushbu maqola buni Debian Etch da qanday amalga oshirishga qaratilgan. Bundan tashqari, tizimingizda ma'lum bir funksionallikni yoki yangi uskunani qo'llab-quvvatlash zarur bo'lganda, u yoki bu yamoqni yadroga qanday qo'llash kerakligi haqidagi savolni ochib beradi. Maqola birinchi navbatda ilg'or foydalanuvchilar uchun mo'ljallangan va bu usul kerakli darajada ishlashiga kafolat yo'q va barcha tasvirlangan harakatlar va javobgarlik sizning zimmangizga tushadi.

  1. Eslatma
  2. Birinchi usul. Yadroni .deb paketlariga qurish
  3. Yamoqlarni qo'llash
  4. Yadro konfiguratsiyasi
  5. Yadroni kompilyatsiya qilish
  6. Yangi yadro o'rnatilmoqda
  7. Ikkinchi usul. "an'anaviy" usul
  8. Muammolar
  9. Havolalar

Eslatma

Yadro yaratishning ikkita usuli tasvirlanadi. Sizning yoki boshqa tizimingizda o'rnatilishi mumkin bo'lgan .deb paketlarining qurish varianti birinchi bo'lib tavsiflanadi.

Ikkinchi usul - "an'anaviy" deb ataladigan usul.

Birinchi usul. Yadroni .deb paketlariga qurish

Yadroni kompilyatsiya qilish uchun kerakli paketlarni o'rnatish

Birinchidan, paketlar ro'yxatini yangilaymiz:

# apt-get yangilanishi

Bizga kerak bo'lgan paketlarni o'rnating:

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

Yadro manbalarini yuklab olish

/usr/src katalogiga o'ting, www.kernel.org saytiga o'ting va kerakli yadro versiyasini tanlang. Bunday holda, linux-2.6.23.1.tar.bz2 versiyasi ko'rib chiqiladi. Yuklab olinmoqda:

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

Manbalarni oching va ramziy havola yarating:

# tar xjf linux-2.6.23.1.tar.bz2 # rm linux (oldingi simli havolani olib tashlash) # ln -s linux-2.6.23.1 linux # cd /usr/src/linux

Yamoqlarni qo'llash

Ixtiyoriy va keraksiz buni qilmang!

Ba'zan joriy yadroda qo'llab-quvvatlanmaydigan drayverlar yoki xususiyatlar talab qilinadi, masalan, virtualizatsiya texnologiyasi yoki joriy versiyada bo'lmagan boshqa xususiyatlar. Qanday bo'lmasin, bu yamoqlar deb ataladigan narsalarni (agar mavjud bo'lsa) qo'llash orqali tuzatiladi.

Aytaylik, siz kerakli yamoqni (masalan, uni patch.bz2 deb ataymiz) /usr/src ga yuklab oldingiz. Yuklab olingan yamoqni bizning manbalarimizga qo'llang (siz hali ham /usr/src/linux katalogida bo'lishingiz kerak):

# bzip2 -dc /usr/src/patch.bz2 | patch -p1 --dry-run # bzip2 -dc /usr/src/patch.bz2 | yamoq-p1

Birinchi buyruq shunchaki sinov bo'lib, manbalarga hech qanday o'zgartirish kiritilmaydi. Agar birinchi buyruqdan keyin hech qanday xatolik qaytarilmasa, yamoqni qo'llash uchun ikkinchi buyruqni ishga tushirishingiz mumkin. Hech qanday holatda ikkinchi buyruqni bajarmang, agar xatolar birinchisidan keyin chiqarilgan bo'lsa!

Shunday qilib, siz yadro manbalariga yamoqlarni qo'llashingiz mumkin. Misol uchun, faqat 2.6.23.8 yadrosida mavjud bo'lgan ba'zi xususiyatlar mavjud va manbalar kerakli funksiyalarni o'z ichiga olmaydi, lekin patch-2.6.23.8.bz2 chiqarildi. Siz ushbu yamoqni 2.6.23 yadro manbalariga qo'llashingiz mumkin, lekin 2.6.23.1 yoki 2.6.23.3 va hokazolarga emas. Bu haqda ko'proq ma'lumot olishingiz mumkin:

Prefikslar (prepatches) - alfa relizlarga ekvivalent; yamoqlar 3 xonali versiyaga ega bo'lgan oldingi to'liq nashr manbalariga qo'llanilishi kerak (masalan, 2.6.12-rc4 yamog'i 2.6.11 versiyasi manbalariga qo'llanilishi mumkin, lekin 2.6.11.10 versiyasiga emas.)

Bu shuni anglatadiki, agar biz 2.6.23.8 yadrosini yaratmoqchi bo'lsak, 2.6.23 versiyasi uchun manbalarni yuklab olishimiz kerak (http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6. 23.tar.gz) ikkinchi usulda "an'anaviy" usulda qo'llaniladi!

2.6.23 yadrosiga 2.6.23.8.bz2 yamog'ini qo'llang:

# 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 | yamoq-p1

Yadro konfiguratsiyasi

Ishlayotgan yadroning mavjud konfiguratsiya faylidan yangisi uchun ham foydalanish yaxshi fikr. Shuning uchun biz mavjud konfiguratsiyani /usr/src/linux-ga nusxalashimiz mumkin:

# tozalang && mrproper qiling # cp /boot/config-`uname -r` ./.config

# menyuni sozlash

shundan so'ng grafik yadro konfiguratsiya menyusi yuklanadi. Konfigurator menyusida "Muqobil konfiguratsiya faylini yuklash" -ni tanlang va "OK" tugmasini bosing. Keyin (agar kerak bo'lsa) menyular bo'ylab harakatlanish orqali yadro konfiguratsiyasiga kerakli o'zgarishlarni kiriting (yadro konfiguratsiyasi tafsilotlarini www.google.com saytida topish mumkin). Ishingiz tugagach va "Chiqish" tugmasini bosganingizda, "Yangi yadro konfiguratsiyasini saqlamoqchimisiz?" Degan savol beriladi, biz ijobiy "Ha" deb javob beramiz.

Linux yadrosini yaratish

Yadroni kompilyatsiya qilish

Yadroni yaratish faqat ikkita buyruqda amalga oshiriladi:

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

--append-to-version= dan so'ng siz xohlagan nomni yozishingiz mumkin, lekin u minus belgisi (-) bilan boshlanishi va bo'sh joy qolmasligi kerak.

.deb paketlarini kompilyatsiya qilish va yaratish jarayoni ancha uzoq davom etishi mumkin. Hamma narsa yadro konfiguratsiyasiga va protsessoringizning imkoniyatlariga bog'liq bo'ladi.

initrd.img yaratish bilan muammoni hal qilish

Yaqinda Debian'da xatolik paydo bo'ldi, shundan iboratki, bu erda tasvirlangan tarzda qurilgan yadroli paketlarni o'rnatgandan so'ng, ularga mos keladigan /boot/initrd.img fayli yaratilmaydi. O'rnatilgan yadroni tuzatish uchun siz initrd.img ni qo'lda yaratishingiz kerak bo'ladi:

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

"Kelajak uchun" muammosini hal qilish uchun - /etc/kernel/postinst.d/initramfs-tools faylida quyida keltirilgan qatorlarning ikkinchisini ko'rsatilganidek izohlang:

# yadro paketi qo'shimcha argni o'tkazadi; #[ -z "$2" ] || yadro paketi ostida ishlamaslik uchun hack chiqish 0

Yangi yadro o'rnatilmoqda

Yadro qurilishi muvaffaqiyatli yakunlangach, /usr/src katalogida ikkita .deb paketi yaratiladi:

# cd /usr/src # ls -l

linux-image-2.6.23.1-cybermind_2.6.23.1-cybermind-10.00.Custom_i386.deb - haqiqiy yadroning o'zi va linux-headers-2.6.23.1-cybermind_2.6.23.1-cybermind-2.6.23.1-cybermind-10.00.Custom_i386. boshqa modullarni yaratish uchun kerak bo'ladi (masalan, nVidia drayver modullarini qurishda). Ularni o'rnatish:

# 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-cybermind.10.680id.Custom_i386.

(Ushbu paketlar endi ularni qayta qurishga hojat qoldirmasdan boshqa tizimga o'rnatilishi mumkin.)

Hamma narsa, o'rnatish tugallandi, yuklash menyusi, yangi RAM diskini va yadroni o'rnatish avtomatik ravishda amalga oshiriladi. Faqat qayta ishga tushirish uchun qoladi:

Ikkinchi usul. "an'anaviy" usul

Biz yuqorida tavsiflangan barcha fikrlarni "Yadroni kompilyatsiya qilish" bandidan oldin bajaramiz.

# hammasini qilish # modullarni_o'rnatish # o'rnatish

Odatdagidek, yadro konfiguratsiyasi va protsessor imkoniyatlariga qarab qurilish uzoq davom etishi mumkin.

Ushbu usulning asosiy kamchiligi shundaki, agar siz yadrolarni tez-tez yangilab tursangiz, bir muncha vaqt o'tgach, ularning ko'p qismi to'planadi va foydalanilmaganlarni olib tashlashni xohlaysiz. Buni osonlashtirish uchun siz “make modules_install” va “make install” buyruqlari yordamida tizimga o‘rnatilgan yadro va boshqa fayllarni birinchisi kabi deb paketga (to‘g‘rirog‘i yadro 2.6.27 dan boshlab ikkita) qurishingiz mumkin. usuli, lekin biz bu erda yadro skriptlari bilan foydalanamiz:

# hammasini qilish # deb-pkg qilish

Ikkita .deb fayli katalogda manba katalogidan bir daraja yuqorida paydo bo'ladi. Men yadroni /usr/src/linux-2.6.27.10 katalogida tuzdim va /usr/src/ katalogida fayllarni oldim.

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

Yadro buyrug'i bilan o'rnatiladi

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

Eski yadrolarni, masalan, sinaptikdan olib tashlash mumkin

Keyingi qadamlar

Yadro qurilgan va o'rnatilgan, lekin hozir ham siz RAM diskini yaratishingiz kerak (usiz yadro oddiygina ishga tushmaydi) va siz GRUB yuklagichini yangilashingiz kerak. Buning uchun quyidagilarni bajaring:

# depmod 2.6.23.1 # apt-get install yaird

RAM diskini o'rnating:

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

Keling, yuklovchini osongina va og'riqsiz yangilaymiz:

Hammasi, yuklovchi va yangi yadro tayyor, faqat qayta ishga tushirish uchun qoladi:

Muammolar

Agar qayta ishga tushirgandan so'ng siz tanlagan yangi yadro yuklanmasa, qayta ishga tushiring va oldingi yadroni tanlang va ishlaydigan yadro yaratish uchun butun jarayonni qaytadan o'tkazishga urinib ko'rishingiz mumkin. Bunday holda, /boot/grub/menu.lst-dagi ishlamaydigan yadro satrlarini o'chirishni unutmang.

Linux yadrosini kompilyatsiya qilish

Nega yadroni o'zingiz kompilyatsiya qilasiz?
Ehtimol, yadroni kompilyatsiya qilish haqida so'raladigan asosiy savol: "Nega buni qilishim kerak?".
Ko'pchilik o'zini aqlli va ilg'or "Linuxoid" sifatida ko'rsatish uchun vaqtni behuda sarflash deb hisoblaydi. Aslida yadroni kompilyatsiya qilish juda muhim narsa. Aytaylik, siz ishlaydigan veb-kameraga ega bo'lmagan yangi noutbuk sotib oldingiz. Sizning harakatlaringiz? Siz qidiruv tizimiga qaraysiz va ushbu masala bo'yicha muammoning echimini qidirasiz. Ko'pincha veb-kamerangiz yadroning sizdagidan yangiroq versiyasida ishlayotganligi aniqlanishi mumkin. Qaysi versiyangiz borligini bilmasangiz, terminalga uname -r yozing, natijada siz yadro versiyasini olasiz (masalan, linux-2.6.31-10). Bundan tashqari, yadro kompilyatsiyasi samaradorlikni oshirish uchun keng qo'llaniladi: haqiqat shundaki, yadro taqsimotlari sukut bo'yicha "hamma uchun" tuzilgan, shuning uchun u sizga kerak bo'lmasligi mumkin bo'lgan juda ko'p sonli drayverlarni o'z ichiga oladi. Shunday qilib, agar siz uskunangizni yaxshi bilsangiz, konfiguratsiya bosqichida keraksiz drayverlarni o'chirib qo'yishingiz mumkin.

Bundan tashqari, tizimning bit chuqurligini o'zgartirmasdan 4 gigabaytdan ortiq operativ xotirani qo'llab-quvvatlashni yoqish mumkin. Shunday qilib, agar siz hali ham o'z yadrongizga ega bo'lishingiz kerak bo'lsa, keling, kompilyatsiya qilishni boshlaylik!

Yadro manba kodini olish.
Birinchi narsa, kerakli yadro versiyasi uchun manba kodini olishdir. Odatda eng yangi barqaror versiyani olishingiz kerak. Yadroning barcha rasmiy versiyalari kernel.org saytida mavjud. Agar sizda allaqachon X server (uy kompyuteri) o'rnatilgan bo'lsa, u holda siz o'zingizning sevimli brauzeringizdagi saytga kirishingiz va tar.gz (gzip siqilgan) arxivida kerakli versiyani yuklab olishingiz mumkin. Agar siz konsolda ishlayotgan bo'lsangiz (masalan, siz hali X serverini o'rnatmagansiz yoki serverni sozlayotgan bo'lsangiz), matn brauzeridan foydalanishingiz mumkin (masalan, elinks). Siz standart wget yuklab olish menejeridan ham foydalanishingiz mumkin:
wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.33.1.tar.gz
Ammo shuni yodda tutingki, sizga kerak bo'lgan aniq versiya raqamini bilishingiz kerak.

Manba kodi arxivini ochish.
Arxivni manba kodi bilan olganingizdan so'ng, arxivni jildga ochishingiz kerak. Buni grafik fayl boshqaruvchilaridan (delfin, nautilus va boshqalar) yoki mc orqali amalga oshirish mumkin. Yoki an'anaviy tar buyrug'idan foydalaning:
tar -zxvf path_to_archive
Endi sizda manba papkasi bor, unga cd kernel_source_directory yordamida kiring (papkadagi kataloglarni ro'yxatga olish uchun ls buyrug'idan foydalaning).

Yadro konfiguratsiyasi.
Yadro manba katalogiga o'tganingizdan so'ng, "20 daqiqa" yadro konfiguratsiyasini bajarishingiz kerak. Uning maqsadi faqat kerakli drayverlar va funktsiyalarni qoldirishdir. Barcha buyruqlar allaqachon superuser nomidan bajarilishi kerak.

config - konfiguratorning konsol rejimini yarating.

menuconfig - konsol rejimini ro'yxat sifatida qiling.

xconfig - grafik rejimini yarating.

Kerakli o'zgarishlarni amalga oshirgandan so'ng, sozlamalarni saqlang va konfiguratordan chiqing.

Jamlama.
Yig'ishning yakuniy bosqichi - kompilyatsiya vaqti keldi. Bu ikkita buyruq yordamida amalga oshiriladi:
qilish && o'rnatish
Birinchi buyruq barcha fayllarni mashina kodiga kompilyatsiya qiladi, ikkinchisi esa yangi yadroni tizimingizga o'rnatadi.
Biz 20 daqiqadan bir necha soatgacha kutamiz (kompyuterning kuchiga qarab).

Linux yadrosini sozlash va kompilyatsiya qilish

Yadro o'rnatilgan. Uni grub (2) ro'yxatida ko'rsatish uchun (root sifatida) kiriting.
yangilash guruhi
Endi qayta ishga tushirgandan so'ng "Escape" tugmasini bosing va siz ro'yxatda yangi yadroni ko'rasiz. Agar yadro yoqilmasa, shunchaki eski yadro bilan yuklang va ehtiyotkorlik bilan sozlang.

KernelCheck - konsolga kirmasdan yadroni kompilyatsiya qilish.
KernelCheck sizga yadroni to'liq grafik rejimda qurish imkonini beradi Debian va unga asoslangan tarqatishlar uchun. Ishga tushgandan so'ng, KernelCheck eng so'nggi yadro versiyalari va yamoqlarini taklif qiladi va sizning roziligingizdan so'ng, manba kodini yuklab oling, grafik konfiguratorni ishga tushiring. Dastur yadroni .deb paketlariga quradi va ularni o'rnatadi. Siz faqat qayta ishga tushirishingiz kerak bo'ladi.

Maqola arxivi:
2017 yil may
2017 yil mart
2016 yil aprel
2016 yil mart
2013 yil oktyabr
2013 yil sentyabr
May, 2013 yil
2013 yil mart
2012 yil noyabr
2012 yil iyul
2012 yil iyun
2012 yil aprel
2012 yil mart
2012 yil fevral
2011 yil aprel
2011 yil mart
2011 yil fevral
2011 yil yanvar
2010 yil dekabr
2010 yil noyabr
2010 yil oktyabr
2010 yil sentyabr
2010 yil avgust
2010 yil iyul
2010 yil iyun
2010 yil may
2010 yil aprel
2010 yil mart

Tasodifiy:

Aurorae: KDE uchun oyna bezatish mexanizmi

Sblog .NET da qayta yoziladi

Linuxnow.ru: kelajak uchun rejalar

Bolgenos. Telekonning rad etishi

GRUB 2 Tez tiklash

Free Software Foundation va copyleft.

Hamkasblar: hammasi
Linux hamma uchun

Bizning bannerlarimiz:


Banner o'rnatish

Savol shundaki, nega Linux yadrosi bilan ham xuddi shunday qilishni o'rganmaysiz? Linux yadrosini manbadan yaratishning sabablari, umuman olganda, bir xil - yadroning eng so'nggi versiyasini olish, zudlik bilan xavfsizlik yamoqlarini qo'llash, muayyan vazifalar va muayyan uskunani optimallashtirish, shuningdek, yadro ishlab chiqishda ishtirok etish istagi, hatto. QA rolida.

Muhim! Ushbu postdagi ko'rsatmalarga rioya qilish ma'lumotlaringizning yo'qolishiga olib kelishi mumkin. Zaxira nusxalarini yarating va esda tutingki, siz hamma narsani o'zingizning xavf-xataringiz va xavfingiz ostida qilyapsiz. Quyida tavsiflangan hamma narsa Ubuntu 14.04 LTS da sinovdan o'tkazildi. Ammo Ubuntu-ning boshqa versiyalarida, shuningdek, boshqa Linux tarqatishlarida farqlar minimal bo'lishi kerak.

Bootloaderni sozlash

/etc/default/grub ni quyidagicha tahrirlang:

GRUB_DEFAULT=0
#GRUB_HIDDEN_TIMEOUT=10
#GRUB_HIDDEN_TIMEOUT_QUIET=to'g'ri
GRUB_TIMEOUT=10
GRUB_DISTRIBUTOR =` lsb_release -i -s 2 > /dev/null || echo Debian`
GRUB_CMDLINE_LINUX_DEFAULT="sokin chayqalish"
GRUB_CMDLINE_LINUX=""

Tahrirlashdan keyin biz aytamiz:

sudo update-grub

Natijada, tizim yuklanishidan oldin sizdan 10 soniya davomida yuklamoqchi bo'lgan yadroni tanlashingiz so'raladi. Agar siz yadro konfiguratsiyasini buzgan bo'lsangiz va oldingi versiya bilan yuklashni xohlasangiz juda qulay!

Bog'liqlarni o'rnating

Bizga kamida quyidagi paketlar kerak bo'ladi:

sudo apt-get install git gcc make bc fakeroot dpkg-dev \
libncurses5-dev libssl-dev

Ko'pgina tizimlarda ularning barchasi allaqachon mavjud bo'ladi.

Manbani olish

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
CD linux-4.6.4

Yoki eng so'nggi ma'lumotni istasangiz, manbani to'g'ridan-to'g'ri Git dan olishingiz mumkin:

# Oyna: https://github.com/torvalds/linux
git klon "git://git.kernel.org/pub/scm/linux/kernel/git/"\
"torvalds/linux.git"
CD linux

Git-da v4.6.4 tegini topa olmaganimga ko'ra, Linux yadrosi relizlari faqat siqilgan tar arxivlari ko'rinishida qilingan.

Agar siz vanil yadrosi o'rniga Canonical yamoqlari bilan yadro qurmoqchi bo'lsangiz:

git clone git://kernel.ubuntu.com/ubuntu/ubuntu-trusty.git
CD ubuntu-ishonchli
git teg | Ozroq
git checkout Ubuntu-lts-4.4.0-31.50_14.04.1

O'z tajribamdan, agar siz Ubuntu'dan foydalansangiz, vanil yadrosidan xavfsiz foydalanishingiz mumkin. U bilan hech qanday muammoga duch kelmasligingiz dargumon.

Eslatma: Qizig'i shundaki, mavjud nisbatan mashhur Linux distributivlaridan faqat Gentoo, Slackware va Arch Linux o'z yamoqlarisiz yadrodan foydalanadi.

Qanday bo'lmasin, endi sizda manba kodi bor.

Yadroni kompilyatsiya qilish va o'rnatish

Yadro quriladigan variantlarni tanlang:

menyu konfiguratsiyasini yarating

Agar kerak bo'lsa, sozlamalarni o'zgartiring, Saqlash-ni, keyin esa Chiqish-ni bosing. Bu biz tanlagan variantlarni o'z ichiga olgan .config faylini yaratadi.

Da yangilash yadro (siz baribir qandaydir yadrodan foydalanyapsizmi?) joriy yadro konfiguratsiyasini olish va yangi parametrlarni standart qiymatlariga o'rnatish qulay:

zcat /proc/config.gz > ./.config
olddefconfig qiling

Nihoyat, biz yig'amiz:

make -j4 bindeb-pkg LOCALVERSION=-custom

Yadro juda uzoq vaqt davomida yig'iladi. Mening noutbukimda yig'ilish 1 soat 15 daqiqa davom etdi. Biroq, shu vaqtdan boshlab haqida Qolganlari disk raskadrovka belgilariga ega ulkan yadro paketini yaratishga sarflanadi. Ushbu paketning yig'ilishini konfiguratsiyadagi CONFIG_DEBUG_INFO parametriga izoh berish orqali o'chirib qo'yish mumkin. Shuni yodda tutingki, ushbu paket SystemTap va boshqa foydali vositalar tomonidan talab qilinadi.

Yadroning o'ziga qo'shimcha ravishda siz hujjatlarni ham to'plashingiz mumkin:

# shuningdek, "make pdfdocs" va boshqalar mavjud, "yordam berish" ga qarang
htmldocs yaratish
Chromium-brauzer Hujjatlari/ DocBook/ index.html

Yig'ish tugagandan so'ng sho'ba korxonasi katalogida biz shunga o'xshash narsani ko'ramiz:

linux-proshivka-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

Biz yadroning dbg-versiyasidan tashqari barcha deb-paketlarni odatdagidek joylashtirdik sudo dpkg -i va qayta ishga tushiring. Qayta ishga tushirilgandan so'ng, buyruqning chiqishiga qarang uname-a. Biz haqiqatan ham yangi yadro bilan yuklanganimizga ishonch hosil qilamiz. Agar yangi yadroda biror narsa noto'g'ri bo'lsa, yuklovchida biz shunchaki tizim avval yuklanganini tanlaymiz. Eski yadro bilan yuklangandan so'ng, biz tezda yangi yadro paketlarini olib tashlaymiz va voila - tizim avvalgi holatiga qaytdi.

Mart oyining o'rtalarida, deyarli ikki oylik rivojlanish va ettita reliz nomzodidan so'ng, Linus Torvalds 4.5 yadrosining yangi versiyasini taqdim etdi. Tuzatishlarga qo'shimcha ravishda, relizda haqiqatan ham juda ko'p yangi narsalar mavjud. O'zgarishlar barcha quyi tizimlarga ta'sir qildi - disk, xotira, tizim va tarmoq xizmatlari, xavfsizlik va, albatta, yangi qurilmalar uchun drayverlar qo'shildi. Keling, eng qiziqarlilari bilan shug'ullanishga harakat qilaylik.

Chiqarish haqida

4.4 yadro relizi nisbatan yaqinda, 2016 yil yanvar oyi boshida chiqarildi, ammo bu qisqa vaqt ichida ko'p sonli qo'shimchalar to'plandi. Garchi Linus yangi nashrni "oddiy" deb atagan bo'lsa-da, siz 4.4 versiyasiga nisbatan yamoq hajmi deyarli uchdan biriga - 49 MB ga nisbatan 70 MB ga oshganini ko'rishingiz mumkin. Ishlab chiqishda taxminan 1528 kishi ishtirok etdi, ular 13 mingga yaqin tuzatish kiritdilar. 11 mingdan ortiq faylga 1 146 727 ta qo'shildi, 854 589 ta kod qatori olib tashlandi. 4.4 da mos ravishda 714,106 va 471,010 qatorlar mavjud edi. Barcha o'zgarishlarning deyarli yarmi (45%) qurilma drayverlari bilan bog'liq, 17% apparat arxitekturasi kodiga, 14% tarmoq stekiga, 4% fayl tizimlariga va 3% ichki yadro quyi tizimlariga ta'sir qiladi. Red Hat'dan Dug Ledford eng ko'p liniyalarga hissa qo'shdi, tozalash ishlarining katta qismini bajardi (7,7%), OMAP subarxitekturasini qo'llab-quvvatlashda ishlagan Texas Instruments kompaniyasidan Tomi Valkeinen (5,3%), uchta dasturchi AMD grafik drayverlariga e'tibor qaratdi: Erik Xuang - 3,3 %, Aleks Deucher - 2,4% va yanyang1 - 1,6%. O'zgarishlar to'plamining etakchilari - Linaro'dan Linus Uolleyj, ko'plab past darajadagi o'zgarishlarni amalga oshirgan, shu jumladan u qo'llab-quvvatlaydigan GPIO (2,0%), ARMni qo'llab-quvvatlash uchun ko'p ish qilgan Arnd Bergmann (1,9%) va ishlagan Leo Kim wilc1000 drayverida (1,7%). Avvalgidek, ko'plab korporatsiyalar yadro rivojlanishidan manfaatdor. 4.5 versiyasi ustida ishlash Red Hat, Intel, AMD, Texas Instruments, Linaro, Linux Foundation, Samsung, IBM, Google kabi 200 dan ortiq kompaniyalar tomonidan qo'llab-quvvatlandi. Ularning aksariyati o'z qurilmalari va tegishli quyi tizimlar va vositalarni qo'llab-quvvatlashni ishlab chiqadi, ammo, masalan, Google an'anaviy ravishda Linux tarmoq quyi tizimiga juda ko'p o'zgarishlar kiritadi.

Yadro va haydovchilar

Assemblerda (x86/asm) yozilgan murakkab va yomon saqlangan kodni C ga ko'chirish 4.0 da davom etdi. Endi yadroni -fsanitize=undefined varianti bilan qurish mumkin. Parametrning o'zi ikki yil oldin GCC 4.9+ da paydo bo'lgan va C va C ++ tillariga xos bo'lgan noaniq xatti-harakatlarni aniqlaydigan UBSan (Aniqlanmagan xatti-harakatlarni tozalash vositasi) disk raskadrovka rejimini faollashtiradi: ishga tushirishdan oldin statik bo'lmagan o'zgaruvchilardan foydalanish, nolga bo'lish, butun sonni to'ldirish va hokazo. Kompilyator odatda bunday operatsiyalar hech qachon sodir bo'lmaydi deb hisoblaydi va agar ular bajarilsa, natija har qanday bo'lishi mumkin va kompilyatorning o'ziga bog'liq. Endi kompilyator bunday vaziyatlarni aniqlaydi, "ish vaqti xatosi:" beradi (siz -fno-sanitize-recoverni o'chirib qo'yishingiz mumkin) va bajarishni davom ettiradi. Odatiy bo'lib, har bir OT yig'ilishida barcha kutubxonalar ma'lum manzillarga yuklanadi, bu esa hujumni amalga oshirishni osonlashtiradi. Xavfsizlikni oshirish uchun bir qator texnologiyalar qo'llaniladi, ulardan biri ASLR (Address Space Layout Randomization) shaklida amalga oshirilgan mmap () ga qo'ng'iroq qilishda tasodifiy ofsetdir. ASLR texnologiyasi birinchi marta Linux-da 2005 yilda 2.6 yadroda paydo bo'lgan va 32-bitli tizimlar uchun 8-bitli ofset (ya'ni, 256 ta manzil variantlari, aslida kamroq bo'lsa-da) va x64 uchun - ofset allaqachon 28-bitli bo'lgan. X64 uchun juda ko'p imkoniyatlar mavjud, ammo 32-bitli tizimlar, shu jumladan Android uchun bu bugungi kunda etarli emas. Manzilni olishi mumkin bo'lgan ekspluatatsiyalar allaqachon ma'lum. Muammoni hal qilish yo'lini izlash natijasida, /proc/sys/vm/mmap_rnd_bits va /proc/sys/vm/mmap_rnd_compat_bits (x64 tizimlarida) orqali ASLR uchun ko'proq tasodifiylikni o'rnatish imkonini beruvchi yamoq yozildi. x86 jarayonlari uchun). Har bir arxitektura uchun minimal va maksimal qiymatlar mavjud manzil maydonini hisobga olgan holda belgilanadi. X86 uchun qiymat 8 dan 16 bitgacha yoki 28 dan 32 gacha (x64 versiyasi uchun) bo'lishi mumkin. Yadroni yaratishda standart variantlarni o'rnatish mumkin.
Yangi yadroda ASLRni sozlash NVIDIA (Nouveau) va Intel video kartalari uchun DRM drayverining kengaytirilgan imkoniyatlari (Kaby Lake chiplarining kelajak avlodini qo'llab-quvvatlash), yangi ovoz kartalari, USB kontrollerlari va kripto tezlatkichlari uchun qo'shimcha yordam. Grafik karta ishlab chiqaruvchilari Intel va NVIDIA uzoq vaqtdan beri ochiq manba drayverlarida KMS (Yadro rejimini sozlash) foydasiga UMS (Foydalanuvchilar maydoni rejimi sozlamalari) dan foydalanishdan voz kechishdi, endi navbat UMS rejimi kodini olib tashlagan ATI Radeon drayveriga keldi. 3.9 dan boshlab uni DRM_RADEON_UMS parametri bilan yoki GRUBda radeon.modeset=0 o'rnatish orqali yoqish mumkin edi. Endi faqat KMS (Yadro rejimini sozlash) qoladi. Agar eski drayverlardan yoki UMS rejimidan foydalanish kerak bo'lsa, buni hisobga olish kerak (UMS ba'zan yaxshiroq ishlashni ko'rsatadi). Tonga va Fiji GPUlari hamda integratsiyalangan Carrizo va Stoney uchun GPU ish faoliyatini yaxshilash uchun AMDGPU drayveriga PowerPlay dinamik quvvatni boshqarish texnologiyasi uchun tajribaviy yordam qo‘shildi. PowerPlay rejimida GPU kam quvvat rejimida ishga tushadi, lekin grafik quyi tizimdagi yuk oshsa, u avtomatik ravishda chastotani oshiradi. Odatiy bo'lib, PowerPlay o'chirilgan; uni yoqish uchun amdgpu.powerplay=1 parametrini yadroga o'tkazing. Media controller API ning yangi versiyasi Video4Linux qurilmalarini qo‘llab-quvvatlashni kengaytiradi va multimedia kontroller funksiyasidan DVB, ALSA va IIO kabi boshqa quyi tizimlarda foydalanish imkonini beradi. KVM (Yadroga asoslangan virtual mashina) s390 arxitekturasini (endi u 248 tagacha vCPU ishlatishi mumkin), ARM/ARM64 ni qo'llab-quvvatlash va Hyper-V da x86 ish faoliyatini yaxshilash uchun ko'p ishlarni amalga oshirdi.

Ubuntu'da Kernel 4.5 ni o'rnatish

Yangi yadro bilan tanishishning eng oson yo'li Ubuntu yadro jamoasi tarkibidan foydalanishdir. Keng ko'lamli sinovdan so'ng, yangi yadro ppa:canonical-kernel-team/ppa bilan tugaydi, lekin bu odatda vaqt talab etadi. $ wget -c http://kernel.ubuntu.com/~kernel-ppa/mainline/v4.5-wily/linux-headers-4.5.0-040500-generic_4.5.0-040500.201603140130_amd64.deb http://kernel .ubuntu.com/~kernel-ppa/mainline/v4.5-wily/linux-headers-4.5.0-040500_4.5.0-040500.201603140130_all.deb http://kernel.ubuntu.com/~kernel-ppa/mainline /v4.5-wily/linux-image-4.5.0-040500-generic_4.5.0-040500.201603140130_amd64.deb $ sudo dpkg -i linux*.deb Biz qayta ishga tushirilgandan keyin ishlay olamiz.

ARM qo'llab-quvvatlash

ARM kompyuterlari ma'lum vazifalar uchun mini-serverlar yoki avtomatlashtirish boshqaruvchilari sifatida ishlatiladi, bu ularni juda mashhur va talabga ega qiladi. Linux ARM hamjamiyati so'nggi besh yil ichida eng faollaridan biriga aylandi, bozorning muhim ulushini egallagan 32-bitli ARM platformalarini qo'llab-quvvatlash bo'yicha katta hajmdagi ishlarni amalga oshirdi va bu ish odatda 4.5-ning chiqarilishi bilan yakunlandi. filiali. Ilgari har bir ARM qurilmasi faqat ma'lum qurilmalarni qo'llab-quvvatlash uchun o'z yadrosini yaratishi kerak edi. Ammo muammo shundaki, qurilmalar murakkablashdi, konfiguratsiyani o'zgartirish mumkin bo'ldi va foydalanuvchilarning o'zlari ARM qurilmalarida keraksiz imo-ishoralarsiz muntazam taqsimotlardan foydalanishni xohlashdi. Biroq, oxir-oqibat, bizda yadro yaratish uchun bir necha yuz variant bor edi, bu esa Linuxdan foydalanishni juda qiyinlashtiradi. Katta hajmdagi kodlarni tozalash va qayta tiklash natijasida yadroga ARMv6 va ARMv7 qo'llab-quvvatlash kodlarini kiritish mumkin bo'ldi, ya'ni endi biz ikkala tizimda ham yuklay oladigan universal yadro qurishimiz mumkin. Bu erda, ehtimol, biz Ochiq mikrodasturni ishlab chiqishning bir qismi sifatida paydo bo'lgan yaqinda ilgari surilgan Device Tree spetsifikatsiyasini esga olishimiz kerak. Device Tree sizga /boot/dtbs-da saqlangan maxsus dts fayllari yordamida yuklash vaqtida uskunani sozlash va yadroni qayta tiklamasdan sozlamalarni o'zgartirish imkonini beradi. Qurilmalar daraxtidan foydalanish nafaqat qurilmalar uchun, balki barcha yangi ARM ishlanmalari uchun majburiy bo'ladi. Bularning barchasi birgalikda kelajakda Linux distributivlarini har qanday ARM qurilmasida xavfsiz ishga tushirishga ishonch hosil qiladi. Bunga parallel ravishda, Linux fondidan Greg Kroah-Xartman yadroning dastlabki versiyalari uchun xuddi shunday xususiyatni amalga oshiradigan yamoqni chiqardi. arch/arm64 da biz yangi 64-bitli ARM arxitekturasini (ARMv8) qo'llab-quvvatlaydigan kodni topamiz. Barcha mashhur ARM arxitekturalari uchun yangi xususiyatlar qo'shildi - Allwinner, Amlogic, Samsung, Qualcomm va turli ishlab chiquvchilarning yangi ARM platalarini qo'llab-quvvatlash.

Tizim xizmatlari

Linuxda UEFI (Unified Extensible Firmware Interface) proshivka ma'lumotlariga kirish uchun /sys/firmware/efi/efivars ichiga o'rnatilgan maxsus efivars psevdofayl tizimi (EFIVAR_FS tomonidan sozlanishi) ishlatiladi. Ba'zi ilovalarda rm -rf /* buyrug'ini bajarishda ushbu katalogning mazmuni ham o'chirildi, bu esa proshivkaning yo'q qilinishiga olib keldi. Kompaniyalar - qurilma ishlab chiqaruvchilari buni jiddiy kamchilik deb hisoblamaydilar, chunki vaziyat, albatta, eng keng tarqalgan emas va har qanday foydalanuvchi buni tekshirishni o'ylashi dargumon. Shunga qaramay, muammo bor va virus mualliflari haqiqatan ham bu imkoniyatdan foydalanishlari mumkin. Endi 4.5 yadrosi /sys/firmware/efi/efivars katalogiga ichidagi fayllarni o'chirishni oldini olish uchun maxsus himoya qo'shadi.

Davomi faqat aʼzolar uchun mavjud

Variant 1. Saytdagi barcha materiallarni o'qish uchun "sayt" jamoasiga qo'shiling

Belgilangan muddatda hamjamiyatga a'zolik sizga BARCHA Hacker materiallariga kirish imkonini beradi, shaxsiy jami chegirmangizni oshiradi va professional Xakep Score reytingini to'plash imkonini beradi!

Yadro(inglizcha) yadro) hamma narsa atrofida qurilgan narsadir. Bu Linux deb ataladigan narsa. Endi kundalik hayotda Linux so'zi unga qurilgan operatsion tizim deb ataladi, garchi yaxshi ma'noda u GNU / Linux deb ataladi (ko'p o'n yillar davomida ishlab chiqilayotgan GNU loyihasining Linux yadrosi va dasturiy ta'minoti).

Ubuntu ko'p sonli yamoqlarga ega yadrodan foydalanadi, ularning ba'zilari beqaror va eksperimental xususiyatlarni qo'shadi.

Ubuntu'ning har bir versiyasi o'z yadro versiyasiga ega. 10.04 dan beri LTS relizlari yadroni yangi versiyalarga kiritilgan versiyalarga yangilash imkoniyatiga ega bo'ldi.

Ubuntu versiyasiYadro versiyasi
4.10 2.6.9
5.04 2.6.11
5.10 2.6.13
6,06LTS 2.6.15
6.10 2.6.18
7.04 2.6.19
7.10 2.6.20
8,04LTS 2.6.24
8.10 2.6.27
9.04 2.6.28
9.10 2.6.31
10.04LTS 2.6.32
10.10 2.6.35
11.04 2.6.38
11.10 3.0.4
12.04LTS 3.2
12.10 3.5
13.04 3.8
13.10 3.11
14.04LTS 3.13
14.10 3.16
15.04 3.19

vilkalar

Ubuntu yadrosi va kernel.org veb-saytidagi versiya raqamlari mos kelmaydi, chunki Canonical ishlab chiquvchilari qo'shilgan yamoqlarni ko'rsatish uchun mikro versiyani qo'shadilar. Masalan, 3.2.0-23 versiyasi yadro 23 ta yamoqqa ega 3.2 filialiga asoslanganligini bildiradi.

Ubuntu omborida yadrolarning quyidagi turlari qo'llab-quvvatlanadi:

generic-pae yadrosi 32-bitli tizimga 64 Gb gacha jami operativ xotiradan foydalanishga imkon beradi, ma'lum bir jarayon ehtiyojlari uchun 4 Gb dan ko'p bo'lmagan joy ajratadi, oddiy umumiy yadro esa 4 Gb dan ko'p bo'lmagan operativ xotira bilan ishlaydi.

64-bitli yadro jarayonlar tomonidan iste'mol qilinadigan 1 TBgacha bo'lgan xotiraga murojaat qilish imkonini beradi.

Agar siz yadroni yangiroq asosiy versiyaga yangilashingiz kerak bo'lsa (odatda bu yangi versiyalar yangi uskunani qo'llab-quvvatlashi, regressiyalarni bartaraf etishi bilan bog'liq), siz rasmiy ravishda qo'llab-quvvatlanadigan arxivdan foydalanishingiz mumkin http://kernel.ubuntu.com/ ~kernel-ppa/mainline/ .

Yadroni kompilyatsiya qilish

Yadroni manbadan yaratish OS qanday ishlashi haqida ba'zi ko'nikmalar va bilimlarni talab qiladi.

Yadro yaratishni boshlashdan oldin siz quyidagi paketlarni o'rnatishingiz kerak:

Build-essential fakeroot ncurses-dev libssl-dev

Barcha keyingi harakatlar superfoydalanuvchi nomidan bajarilishi kerak:

sudo su

Manba kodini olish

Ubuntu tomonidan ishlatiladigan yadro uchun manba kodini Linux-manba paketini o'rnatish orqali olish mumkin:

apt-get install linux manbasi

Katalogga o'rnatgandan so'ng /usr/src deb nomlangan arxiv bo'ladi linux-source-verify_kernels.tar.bz2.

Shuningdek, yadro manba kodi bilan arxivni kernel.org saytidan yuklab olishingiz mumkin.

Kernel.org saytidan yadroni yuklab olayotganda, unga yamoqlarni qo'llashingiz kerak bo'ladi

Konfiguratsiya

Olingan arxivni oching va qulaylik uchun olingan katalogga ramziy havola yarating:

cd / usr/ src tar xjf ./ linux-source-3.2.0.tar.bz2 ln -s ./ linux-source-3.2.0 ./ linux cd ./ linux

Yadro konfiguratsiyasi jarayonini soddalashtirish uchun siz joriy sozlamalarni nusxalashingiz mumkin.

Savollaringiz bormi?

Xato haqida xabar bering

Tahririyatimizga yuboriladigan matn: