- Kutsvaga ne "/" mu menuconfig kunoratidza nzira, zvinoenderana, uye mamiriro echiratidzo chega chega.
- Tanga nekushanda .config file uye kuivandudza uchishandisa oldconfig/olddefconfig kana localmodconfig.
- Nyora zvakachengeteka uye isa: modules_install, initramfs, uye GRUB update.
- Dzivisa zvikanganiso zvakajairwa (kunze kwemuti wekernel, maturusi akasanganiswa, kuvimbika kwakavanzika).
Kana uri kuedza kuziva Maitiro ekutsvaga zvigadziriso mu `ita menyuconfig` Uye iwe uchiri pairi, gadzirira kernel yako yemuchina wako. Heino yakazara uye inoshanda gwara. Isu tinotanga nezvakakosha kuti usarasikirwe nemamenu, zviratidzo, uye zvinotsamira, uye pedzisa nekubatanidza uye kuisa, kusanganisira. tricks muGentoo, Debian uye zvinobva.
Chinangwa ndechekuti iwe ugone kufambisa kernel configurator zviri nyore, tsvaga chero sarudzo uchishandisa basa rekutsvaga, uye unzwisise mafomu ezviratidzo uye zvinoenderana nawouye dzivisa zvikanganiso zvakajairika panguva yekubatanidza uye kuisa. Zvose izvi zvinoratidzwa nemienzaniso yepasi rose. vatyairi (network, wifi, ruzha, vhidhiyo, makamera, touch screens), kurudziro yemidziyo yakaita seDocker uye zvakakosha zviziviso nezve Kbuild uye toolchains.
Chii chinonzi `ita menuconfig` uye chinoshandiswa chii?
Iyo kernel toolset inosanganisira akati wandei anogadziriswa emberi, kuve gadzira menuconfig Imwe yeanonyanya kufarirwa nekuda kweiyo ncurses-based text interface. Iyo inokutendera kuti uvhure maficha akadai seaya akabatanidzwa mukernel (Y), semodule (M), kana akaremara (N), pamwe nekufamba nepakati pezvikamu uye submenus uchishandisa keyboard.
Tisati tatanga, zvinobatsira kuziva yako Hardware kuitira kuti usadzima chero chinhu chakakosha. Mirairo Chemhondoro lspci, lspci -k, dmesg Murairo wakapfava `lsmod` wekuona akaremerwa mamodule anogona kukubatsira kuona kuti ndeapi madhiraivha aunoda. Iyo yakanaka tsika kukopa iyo ikozvino kumisikidzwa kune masosi folda uye kuishandisa se hwaro.
Kugadzirira kwakajairika kunosanganisira kuenda kune yako sosi yemuti (semuenzaniso, mu /usr/src/linux kana iyo chaiyo vhezheni yauri kushandisa), uye tevedzera inomhanya kernel faira: cp -v /boot/config-$(uname -r) .configNeiyo nheyo, unogona kutanga make menuconfig uye tanga kugadzirisa sarudzo pasina kutanga kubva pakatanga.
Mune iyo interface iwe uchaona zvikamu zvakaita se Madhiraivha emidziyo, Mafaira masisitimu, Tsigiro yeNetwork kana CPU/virtualization. Fambisa cursor nemakiyi emiseve, chinja pakati pemabhatani neTab, uye shandura mamiriro esarudzo nespacebar kana Y, M, uye N makiyi. Chinhu chega chega chinowanzo sanganisira rubatsiro rusinganzwisisike runowanikwa neH kana bhatani reKubatsira.
Tsvaga sarudzo mukati memenuconfig (zviratidzo, nzira, uye zvinoenderana)
Iyo yakavakirwa-mukati yekutsvaga basa ndiyo kiyi yekudzivisa kuvhiringidzika. Press / (mberi slash) mukati memenuconfig uye isa zita rechiratidzo (semuenzaniso, BT_HCIBTUSB o IPVLANkana izwi rakakosha kubva pamashoko ekukurumidza. Mhedzisiro inoratidza iyo chiratidzo (CONFIG_…), tsananguro yayo, nzvimbo yayo mumenyu, zvinoenderana kwayo uye kwainotsanangurwa.
Dudzira zvabuda nekungwarira: uchaona zvikamu zvakaita se "Nzvimbo" (menu nzira), "Zvinoenderana" (zvimiro zvinofanirwa kusangana), uye "Sarudza" (zvinhu izvo sarudzo iyi inoita). Kana sarudzo yakavanzwa, zvingangodaro kutsamira kunoshaikwa; igonese kutanga nekutevera zvinongedzo zveinjini yekutsvaga.
Kana uchinge wawana sarudzo, famba uchienda kunzira yakaratidzwa mu "Nzvimbo" kuti usvike pairi. Kana inopiwa se zvakabatanidzwa () kana module (<M>Sarudza zvakakunakira iwe. Modules inoshanduka-shanduka, asi mamwe maitiro akakosha (semuenzaniso, midzi disk controllers kana mafaera masisitimu eiyo bhutsu) zvinokurudzirwa kuti zvibatanidzwe.
Rubatsiro (H kana Rubatsiro) rwakakosha: inotsanangura chinangwa chemutyairi, kugadzikana kwayo, uye kazhinji inoratidza kana zviri nani kuimisa semodule kana mutyairi akabatanidzwa. Tags like (ZVITSVA), (ZVEKUYEDZERA), (KUDZWA) kana (KUSVIRA) Vanokutungamirira pane chimiro chesarudzo yega yega.
Kufamba uye zviratidzo: zvinorehwa neY/M/N uye menyu notation
Iyo configurator zvinyorwa zvinoshandisa zvinoonekwa zvinoonekwa kuratidza chimiro chavo. Uchaona y apo chinhu chinogona kuvharwa kana kuitwa monolithically; uye < >, , <*> kana ichibvumirawo kuunganidzwa semodule. Imwe neimwe spacebar (kana Y/M/N) keystroke inotenderedza nyika sezvinobvumirwa.
Zvakajairikawo kuona {M} kana {*} kana zvisingaite kudzima zvachose sarudzo (kune kukwira kumusoro), uye mafomati akadai -M- kana -*- Izvi zvinoratidza kuti nyika inoda imwe sarudzo. Kana iwe ukaona izvi, shandisa basa rekutsvaga uye batsira kuona kuti ndekupi kutsamira kwaunoda kugonesa kana kudzima.
Kuti ufambe nekukurumidza, makiyi A kusvika Z anosvetukira kumutsetse unotevera une mavara matema. Iyo spacebar inoshandura iyo nyika, Tab inotenderera kuburikidza nemabhatani (Sarudza, Buda, Batsira, Sevha), uye Pinda inopinda mamenu. Iyi seti ye keyboard pfupi Inoita kuti basa rikurumidze zvikuru.
Kana wapedza, chengeta neSave. Iyo .config faira ichaiswa mune zvinyorwa zvinyorwa; kana yatovepo, iyo yapfuura vhezheni ichapihwa zita. .config.oldiyo inoshanda chaizvo pakuenzanisa shanduko kana kukurumidza kudzokera kumashure.
Gadzirira muti wekubva: shandisa zvakare uye gadziridza yako .config
Nzira inonyanya kushanda ndeyekutanga kubva pa inozivikanwa gadziriso inotoshandaKopa ikozvino .config faira kubva / boot sezvataurwa uye uvandudze iyo kushanduro itsva ne make oldconfig (ichakukumbira zvigadziriso), kana nekukurumidza ne make olddefconfig (Iyo inogashira zvimiro zveshanduro itsva pasina kukubvunza.) Maitiro ese ari maviri anochengetedza nguva kana uchitama pakati peshanduro.
Imwe sarudzo inoshanda ndeye gadzira localmodconfigIzvi zvinogadzira zvigadziriso zvichibva pamamodule awakarodha izvozvi (izvo lsmod inoona). Yakanakira kugadziridza zvakanaka kune yako yazvino Hardware, kunyangwe kana iwe uchigadzirira mumwe muchina, unozofanirwa kutarisa nemaoko dzimwe sarudzo.
Kana iwe uchida kudzokera kunzvimbo yekutanga, make defconfig Iyo inogadzira iyo yekumisikidzwa kweiyo dhizaini yako. Uye kana iwe uchida kuona nzira dzekumberi, kunze kwemenuconfig kune gadzira nconfig (zvinotukisa zvemazuvano), kugadzira xconfig (Qt) kana kugadzira gconfig (GTK), inobatsira kana iwe uchida graphical interface.
MuGentoo, zvakakosha kuve nechokwadi chekubatanidza /usr/src/linux nongedzera kumanyuko akarurama nawo eselect kernel list y eselect kernel setKana iwe ukashandisa kugovera kernels, iwe unowana yakachengeteka default masisitimu, kuderedza njodzi pane dzakakomba masisitimu.
Kuunganidza uye kuisa: mirairo yakachengeteka uye maitiro akanaka
Mushure mekuchengetedza .config file, tanga kuunganidza ne make -j$(nproc) kushandisa ese CPU coresZvichienderana nehardware yako uye nhamba yesarudzo dzakasarudzwa, maitiro anogona kutora chero kubva pamakumi emaminitsi kusvika kupfuura awa.
Kana iwe wakagonesa zvinhu zvakaita semamodule, isa mushure ne make modules_installIzvi zvichakopa ma modules ku /lib/modules/$(shanduro). Zvadaro, make install Ichaisa kernel uye mafaera akabatana mukati / bhutsu uye, mune dzakawanda distros, inozogadzirisa otomatiki iyo boot maneja yekupinda.
Kugadzira iyo initramfs (inodiwa kana uchishandisa mamwe mamodule, semuenzaniso, vatongi ve kuchengetedza kana ZFS/NVIDIA), muGentoo unogona kushandisa genkernel -isa initramfsuye mune dzimwe nharaunda maturusi akadai dracut o update-initramfs. Usakanganwa kugadzirisa GRUB kana system yako yekugovera ikasazviita otomatiki.
MuDebian uye zvinobva kune zvakajairika kumhanya update-initramfs -u y kugadzirisa GRUB (semuenzaniso, ne update-grub) kana grub-mkconfig -o /boot/grub/grub.cfgMune masisitimu ane mhodzi dzakawanda, kuchengetedza mazita akasiyana (semuenzaniso, nekuwedzera label kuEXTRAVERSION) kunobatsira usanyora pasi shanduro dzakatsiga zvauchiri kuda.
MuDebian uye zvinobva kune zvakajairika kumhanya update-initramfs -u y update-grub o grub-mkconfig -o /boot/grub/grub.cfgMune masisitimu ane mhodzi dzakawanda, kuchengetedza mazita akasiyana (semuenzaniso, nekuwedzera label kuEXTRAVERSION) kunobatsira usanyora pasi shanduro dzakatsiga zvauchiri kuda.
Activate vatyairi vakajairwa: kwekuvawana mumenyu
- Kune Ethernet network makadhi: enda ku Madhiraivha emudziyo> Network mudziyo tsigiro> Ethernet mutyairi rutsigiro uye sarudza inoenderana chipset mutyairi. Iwe unogona kuibatanidza kana kuisiya seyakasiyana module kana isina kukosha pakubhoti.
- YeWi-Fi: tarisa Madhiraivha emudziyo> Network mudziyo tsigiro> Wireless LAN uye inomaka mutyairi chaiye (Atheros, Intel(Broadcom, nezvimwewo). Zvinowanzoshanda kuiunganidza se module kufambisa zvigadziriso kana kuyedza.
- Graphics: pinda Madhiraivha emudziyo > Tsigiro yemifananidzo. For NVIDIA NeNouveau kana AMD GPUs ine amdgpu, tarisa inoenderana rutsigiro; pane mahybrid masisitimu, tarisa sarudzo dzekuchinja. Ipfungwa yakanaka kuverenga zvinyorwa zvekubatsira kuti mutyairi wega wega asarudze pakati pemodule kana magirafu akabatanidzwa.
- Inzwi: inopfuura Madhiraivha emudziyo> Rutsigiro kadhi reruzha> Yepamberi Linux Sound Architecture (ALSA)Sarudza chaiyo mutyairi wekadhi rako uye gonesa general ALSA rutsigiro. Kana usina chokwadi, kuisiya semamodule kunopa kuchinjika.
- Webcams: kuwana Madhiraivha emudziyo> Multimedia rutsigiro, gonesa "Makamera/mavhidhiyo grabbers" uye mukati me "Media USB "Adapter" inoshanda USB Vhidhiyo Kirasi (UVC) kana webcam yako iri UVC standard.
- Touchscreens: Pinda Madhiraivha emudziyo> HID rutsigiro> Special HID driver uye inogonesa HID Multitouch kune akajairika akawanda-touch mapaneru.
Filesystems, chengetedzo uye virtualization: yakakosha sarudzo
En Mafaira masystem Iwe unozogona kugonesa EXT4 (ine encryption kana zvichidikanwa), XFS, Btrfs, NTFSVFAT/EXFAT, ISO/UDF, uye network masisitimu akaita seNFS kana CIFS. Kune yako boot midzi faira system, zvakajairika kuibatanidza mu kernel kudzivirira kuvimba nemamodule mune initramfs.
Panyaya yekuchengeteka, funga nezvesarudzo dzakadai se SELinuxkernel kiyi (KEYS), kana kutendeseka matekinoroji seEVM. Mamwe maficha anogona kukanganisa kuita, asi anopa mamwe matinji edziviriro munzvimbo dzakaoma.
Chikamu Virtualization Inosanganisira KVM uye zvimwe zvinhu zvinodiwa kune hypervisors. PamaCPU emazuva ano, kugonesa KVM uye iyo chaiyo Intel / AMD mireza inowanzo diki uye inobatsira kwazvo michina chaiyo.
Mune cryptography (Cryptographic APIUnogona kugonesa CPU-yakawedzera algorithms (SSE2/SSSE3/AVX/AVX2) kana hardware yako ichivatsigira. Izvi zvinomhanyisa encryption, compression, uye akasiyana protocol mashandiro.
Kernel yeDocker uye orchestrators: yakakosha sarudzo
Kana iwe ukaronga kumhanya midziyo (Docker, Docker Swarm, nezvimwewo), ita shuwa yekugonesa mazita uye mapoka. Pakati pezvakajairika sarudzo: CONFIG_NAMESPACES, CONFIG_NET_NS, CONFIG_PID_NS, CONFIG_IPC_NS, CONFIG_UTS_NS uye CONFIG_CGROUPS ine zvikamu zvayo (CPUACCT, DEVICE, FREEZER, SCHED, CPUSETS, MEMCG).
Kune network network, iwo akakosha CONFIG_VETH (virtual ethernet), bhiriji uye netfilter. Semuenzaniso: CONFIG_BRIDGE, CONFIG_BRIDGE_NETFILTER, CONFIG_NETFILTER_XT_MATCH_CONNTRACK, CONFIG_NETFILTER_XT_MATCH_ADDRTYPE, CONFIG_NETFILTER_XT_MATCH_IPVS, CONFIG_NF_NATs CONFIG_IP_NF_TARGET_MASQUERADEMazhinji eaya sarudzo anogona kuunganidzwa semamodule.
Mutyairi CONFIG_IPVLAN Izvi zvakajairika mune advanced containering networking scenarios. Kana usina chokwadi, shandisa basa rekutsvaga ne "/" uye simbisa zvinotsamira. Kunyora semodule inokubvumira kuiisa chete kana ichidiwa.
Kune a chinyorwa Nzira yakakurumbira yekutarisa kuenderana kwe.config file yako neDocker ndeye kushandisa `check-config.sh`. Mushure mekupa mvumo uye nekuinongedzera kune yako ... .comfigIchakuudza izvo zvisipo kune yakazara mudziyo ruzivo.
Kbuild uye toolchains: zvakakosha zviziviso
Iyo kernel kuvaka sisitimu (Kbuild) inokutendera iwe kuti uenzanise iyo kuvaka neyakasiyana siyana. Semuyenzaniso, LLVM=1 Gadzira neClang/LLVM. Asi chenjera: usayambuka-kusanganisa maturusi eGNU neLLVM (semuenzaniso, CC=gcc game LD=ld.lld), nokuti Iwe uchaputsa kuvaka nenzira dzisiri pachena.
Kana iwe uchida kuunganidza zvizere neLLVM, tsanangura LLVM=1 kana kushandisa CC=clang uye mamwe mabhinuti anowirirana (ar, nm, ld, etc.). Gara uchitarisa zvinyorwa zve kernel yauri kushandisa, nekuti mamwe mareza kana hukasha optimizations inogona kusakurudzirwa mukugadzira.
Mumatavi akare kwazvo (se2.4) matanho akadai se make dep o Chenesa vasati vavaka; mazuva ano hazviwanzo kudikanwa, asi kana iwe uchiuya kubva kune zvinetswa zvakapfuura setups, make mrproper Izvi zvinoita kuti muti wacho uve wakachena. Ita backup ye .config file yako usati wachenesa.
Kusiyanisa kernels dzetsika, vazhinji vatariri vanowedzera tag ku KUSVIRA (Makefile) kana kushandisa akasarudzika mazita emifananidzo. Izvi zvinodzivirira kunyora netsaona iyo yakagadzikana kernel yaunobhutsu nayo mazuva ese.
"Gadzira: *** Hapana mutemo wekuita chinangwa 'menuconfig'. Mira." Sei izvi zvichiitika?
Iko kukanganisa kunoonekwa paunomhanya gadzira menuconfig kunze kweiyo masosi muti yekernel kana mupurojekiti isingasanganisire Kconfig/mconf zvivakwa. Chinangwa che "menuconfig" chinopihwa nekernel Makefile pamwe chete nemagwaro anoenderana; kana usiri mumuti iwoyo, hapana mutemo wakadaro uripo.
Yakajairika mhinduro: ita shuwa kuti wapinda /usr/src/linux (kana mufolda yeiyo isina kudzvanywa vhezheni) uye kuti kune kernel Makefile ine chinangwa "menuconfig". Kana iwe uchida kushandisa Kconfig mune diki purojekiti yako (semuenzaniso, "hello-nyika" ine Kconfig), unofanirwa kubatanidza zvishandiso zve. scripts/kconfig (kana shandisa mapakeji senge kconfig-frontends) uye Makefile anodaidza nemazvo mconf/nconf. Pasina izvo zvivakwa, murairo hauzive zvekuita.
Mhedziso inoshanda: menuconfig chikamu che kernelUsazvivhiringidze ne generic Makefile. Ku "kutamba" neKconfig mune purojekiti diki, sanganisira zvinoenderana nekwako kana kukudziridza yako wega mafambiro uchishandisa zvakasiyana yakaunganidzwa Kconfig zvishandiso.
Dhawunirodha masosi: mainline, yakagadzikana, yenguva refu uye linux-inotevera
Iwe unogona kuwana kernel kubva kune yako yekugovera package maneja kana kubva kune yepamutemo webhusaiti. Pa kernel.org uchaona mapazi Mainline (zvitsva zvitsva uye zvigamba zvichangoburwa), Yakasimba (yakaedzwa kushandiswa kwezuva nezuva) uye Nguva refu (LTS, yakanakira mabhizinesi kana avo vanoisa pamberi kugadzikana), kuwedzera kune linux-inotevera kutevera zviri kuuya.
Si downloads Bvisa tar.xz faira woenda kufolder unoshanda ipapo. Kunyorera ku / usr / src hakusungirwe; kuvaka Inoshanda pane chero nzira chero iwe uine zvinotsamira zvakaiswa (compilers, misoro, binutils, nezvimwewo). PaDebian/Ubuntu, metapackage senge kuvaka-yakakosha uye zvine hukama zvinoshandiswa zvinowanzodiwa.
MuGentoo, "emerge -s masosi" inonyora sosi mapakeji (semuenzaniso, gentoo-mabviro). Pakuisa ne emerge -a gentoo-sourcesMuti wakagadzirwa mukati / usr / src uye unogona kusarudza iyo inoshanda vhezheni nayo sarudza kernelChinja chinongedzo chinongedzo /usr/src/linux kune yaunoda vhezheni usati wagadzirisa nekunyora.
Rangarira kuti kana ukashandisa zvishandiso senge genkernel yeinitramfs, iyo /usr/src/linux link inofanirwa kunongedza kune kwakaringana masosi. Zvikasadaro, unogona kugadzira initramfs hazvienderani ne kernel yauchangobva kuunganidza.
Enzanisa zvigadziriso uye uchenese zvakatipoteredza
Paunovandudza kune imwe shanduro, kugadzira oldconfig Inokutungamirira kuburikidza netsva; kugadzira olddefconfig Iyo inogashira iyo yakasarudzika kukosha kweiyo yakawedzerwa. Kuti utarise kuti chii chachinja kana uchienzaniswa neiyo architecture's defconfig, unogona kugadzira defconfig faira zvakasiyana uye kuienzanisa neyako .config file uchishandisa diff.
Kana iwe wakafunga zvakawanda uye chimwe chinhu chisati chakwana, funga kumhanya kuita zvisina kunaka Kutanga kuchena. Cherechedza: Izvi zvinobvisa zvinyorwa zvekugadzira uye mafaira ekugadzirisa, saka chengetedza .config file yako kare. Kana muti wacho uchinge uchinge uchinge uchinge uchinge uchinge uchinge uchinge uchinge uchinge uchinge uchinge uchinge uchinge uchinge uchinge uchinge uchinge uchinge uchinge uchinge uchinge uchinge uchinge uchinge uchinge uchinge uchinge uchinge uchinge uchinge uchinge uchinge uchinge uchinge uchinge uchinge uchinge uchinge uchinge uchinge uchinge uchinge uchinge uchinge uchinge uchinge uchinge uchinge uchinge uchinge uchinge uchinge uchinge uchinge uchinge uchinge uchinge uchinge uchinge uchinge uchinge uchinge uchinge uchinge uchinge uchinge uchinge uchinge uchinge uchinge uchinge uchinge uchinge uchinge uchinge uchinge uchinge uchinge uchinge uchinge uchinge uchinge uchinge wakanganisa muti.
Tsika inokurudzirwa kuchengetedza shanduro dze .config nemazita (somuenzaniso, .config-01, .config-02…) tisati tanyora pamusoro pekugadzirisa. Izvi zvinokutendera kuti udzoke kune yakagadzikana gadziriso paunenge uchiyedza shanduko dzakafanana.
Kana iwe ukashandisa ekunze madhiraivha (akadai seNVIDIA kana ZFS), kuvakazve ekunze mamodule uye gadzirazve initramfs mushure mekuisa iyo kernel nyowani. Iyi ndiyo nzira yakanakisa yekudzivisa booting nayo kushaya kushanda kana zvidzitiro zvitema nekuda kwemutyairi asina kubatanidzwa.
Nekugona kutsvaga ne "/", kunzwisisa zvinorehwa neY/M/N uye notation yayo, uye kutora mukana wekuyerera senge olddefconfig kana localmodconfig, kugadzirisa uye kuunganidza kernel kunomira kuita labyrinth. Iine inozivikanwa .config base, zvine musoro kuchenesa miti, uye kutarisa kune zvinoenderanaIwe unenge uine kernel yakarongedzerwa kune yako Hardware, yakagadzirira kugadzirwa kana yekuyedza neazvino maficha pasina kurasikirwa nekutonga kweiyo system.
Anofarira munyori nezve nyika yemabytes uye tekinoroji zvakazara. Ini ndinoda kugovera ruzivo rwangu kuburikidza nekunyora, uye ndizvo zvandichaita mune ino blog, kukuratidza zvinhu zvese zvinonyanya kufadza nezve gadget, software, hardware, tekinoroji maitiro, nezvimwe. Chinangwa changu ndechekukubatsira kufamba munyika yedhijitari nenzira iri nyore uye inonakidza.
