Ekuro 3.12 Tu silẹ - Fi sori ẹrọ ati ṣajọ ni Debian Linux


Ọkan ninu awọn iyaworan ti o tobi julọ si lilo Lainos jẹ isọdi irọrun rẹ ati ọkan ninu awọn ohun igbadun julọ lati ṣe akanṣe ni Kernel funrararẹ, okan ti Ẹrọ Ṣiṣẹ Linux. Awọn aye ni pe o ṣeeṣe ki o maṣe ṣajọ ekuro tirẹ. Eyi ti o gbe pẹlu pinpin ati awọn imudojuiwọn rẹ nipasẹ eto iṣakoso package rẹ nigbagbogbo dara to, ṣugbọn awọn igba kan wa nigbati o le ṣe pataki lati ṣe atunto ekuro naa.

Diẹ ninu awọn idi wọnyi le jẹ awọn iwulo ohun elo pataki, ifẹ lati ṣẹda ekuro monolithic dipo ti modulari kan, iṣapeye ekuro nipa yiyọ awọn awakọ ti ko wulo, ṣiṣe ekuro idagbasoke, tabi ni irọrun lati ni imọ siwaju sii nipa Lainos. Ni ọran yii, a yoo ṣajọ Kernel 3.12 ti o ṣẹṣẹ tu silẹ, lori Debian Wheezy. Kernel 3.12 ti a ṣẹṣẹ tu silẹ ni ọpọlọpọ awọn ẹya tuntun, pẹlu diẹ ninu awọn awakọ tuntun fun NVIDIA Optimus, ati awakọ Radeon Kernel Graphics Driver. O tun nfun awọn ilọsiwaju nla si eto faili EXT4, ati diẹ ninu awọn imudojuiwọn si XFS ati Btrfs.

Bii o ṣe le ṣajọ ati Fi Kernel 3.12 sii ni Debian

Lati bẹrẹ, a yoo nilo diẹ ninu awọn idii, eyun fakeroot ati kernel-package:

# apt-get install fakeroot kernel-package

Bayi, jẹ ki o gba bọọlu orisun tuntun lati www.kernel.org tabi o le lo atẹle wget pipaṣẹ lati ṣe igbasilẹ rẹ.

# wget -c https://www.kernel.org/pub/linux/kernel/v3.x/linux-3.12.tar.xz

Bayi, jẹ ki a ṣapa iwe ile-iwe.

# tar -xvJf linux-3.12.tar.xz

Lẹhin, yiyo jade, yoo ṣẹda itọsọna orisun ekuro tuntun.

# cd linux-3.12

Bayi, a yoo fẹ lati tunto ekuro naa. O dara julọ lati bẹrẹ pẹlu iṣeto kan ti o nlo lọwọlọwọ ati ṣiṣẹ lati ibẹ. Lati ṣe eyi, a yoo daakọ iṣeto ni lọwọlọwọ lati itọsọna/bata si itọsọna iṣẹ lọwọlọwọ ati fipamọ bi .config.

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

Lati bẹrẹ pẹlu iṣeto gangan, o ni ọkan ninu awọn aṣayan meji. Ti o ba ti fi sii X11, o le ṣiṣe ṣiṣe xconfig, ki o ni atokọ GUI ti o wuyi lati ṣe iranlọwọ fun ọ bi o ṣe tunto Kernel rẹ. Ti o ba n ṣiṣẹ ni agbegbe CLI kan, o le ṣiṣe ṣiṣe akojọ-apẹrẹ. Iwọ yoo nilo package libncurses5-dev ti a fi sori ẹrọ lati lo akojọ apẹrẹ:

# apt-get install libncurses5-dev
# make menuconfig

Bi iwọ yoo ṣe rii, ni kete ti o wa ni iṣeto ti o fẹ, pe pupọ pupọ ti awọn aṣayan oriṣiriṣi wa fun Kernel rẹ. Ni otitọ, ọpọlọpọ wa fun iwọn ti ẹkọ yii. Nigbati o ba yan awọn aṣayan Kernel, ọna ti o dara julọ ni nipasẹ idanwo ati aṣiṣe, ati ṣiṣe pupọ ti Googling. O jẹ ọna ti o dara julọ lati kọ ẹkọ. Ti o ba kan n gbiyanju lati ṣe imudojuiwọn Kernel rẹ si ẹya ti o ṣẹṣẹ julọ, o ko ni lati yi ohunkohun pada ati pe o le yan ni irọrun\"Fipamọ Iṣeto ni". Niwọn igba ti a daakọ faili iṣeto ti ekuro lọwọlọwọ si faili .config kernel tuntun naa.

Ṣọra pe\"A ti kojọpọ ikojọpọ modulu ekuro" ni\"Atilẹyin module fifuye". Ti kii ba ṣe bẹ, ati pe o nlo awọn modulu ekuro, o le fi awọn nkan dabaru ni pataki.

Lọgan ti iyẹn ba tọ, o to akoko lati nu igi orisun.

# make-kpkg clean

Lakotan, o to akoko lati kọ package ekuro.

# export CONCURRENCY_LEVEL=3
# fakeroot make-kpkg --append-to-version "-customkernel" --revision "1" --initrd kernel_image kernel_headers

Bi iwọ yoo ṣe rii loke, a ti gbe okeere ti a n pe ni CONCURRENCY_LEVEL si okeere. Ofin atanpako gbogbogbo pẹlu oniyipada yii ni lati ṣeto bi nọmba awọn ohun kohun ti kọmputa rẹ ni + 1. Nitorina, ti o ba nlo mojuto quad kan, iwọ yoo:

# export CONCURRENCY_LEVEL=5

Eyi yoo ṣe iyara akoko akopọ rẹ pupọ. Iyoku ti aṣẹ akopọ jẹ alaye ti ara ẹni lẹwa. Pẹlu fakeroot, a n ṣe awọn idii ekuro (make-kpkg), fifi ohun elo kan ranṣẹ si orukọ ekuro wa (\ "customkernel"), fifun ni nọmba atunyẹwo kan (\ "1") ati pe a n sọ fun-kpkg lati kọ mejeeji package aworan ati akọle akọle. Lọgan ti akopọ ti pari, ati da lori ẹrọ rẹ, ati nọmba awọn modulu ti o n ṣajọ, o le gba akoko pupọ, yi awọn ilana pada si ọkan pada lati itọsọna orisun Linux, ati pe o yẹ ki o wo awọn faili tuntun * .deb meji - faili faili linux-kan ati faili awọn akọle-lainos kan:

O le fi faili bayi sori ẹrọ bi iwọ yoo fi sori ẹrọ eyikeyi * .deb faili pẹlu aṣẹ dpkg.

# dpkg -i linux-image-3.12.0-customkernel_1_i386.deb linux-headers-3.12.0-customkernel_1_i386.deb

Ekuro tuntun, nitori pe o jẹ package Debian, yoo ṣe imudojuiwọn ohun gbogbo ti o nilo, pẹlu bootloader. Lọgan ti a fi sii, o tun atunbere, yan kernel tuntun lati inu akojọ aṣayan GRUB/LiLO rẹ.

Rii daju lati fiyesi ifojusi si awọn ifiranṣẹ aṣiṣe eyikeyi lakoko ilana bata nitorina o le ṣe iṣoro eyikeyi awọn ọran. Ti, fun idi eyikeyi, eto rẹ ko ni bata, o le nigbagbogbo ṣubu pada si Kernel ti o ṣiṣẹ kẹhin ki o tun gbiyanju lẹẹkansi. Kernel ti kii ṣe iṣẹ-ṣiṣe le ṣee yọ nigbagbogbo pẹlu aṣẹ ti o yẹ.

# sudo apt-get remove linux-image-(non-working-kernel)