Siku zijazo tayari ziko hapa au msimbo moja kwa moja kwenye kivinjari

Nitakuambia juu ya hali ya kuchekesha iliyonitokea, na jinsi ya kuwa mchangiaji wa mradi maarufu.

Sio muda mrefu uliopita nilikuwa nikifikiria wazo: kuongeza Linux moja kwa moja kutoka UEFI ...
Wazo sio mpya na kuna idadi ya miongozo juu ya mada hii. Unaweza kuona mmoja wao hapa

Kwa kweli, majaribio yangu ya muda mrefu ya kutatua suala hili yalisababisha kurasimishwa kabisa uamuzi. Suluhisho linafanya kazi kabisa na ninaitumia kwenye baadhi ya mashine zangu za nyumbani. Suluhisho hili linaelezewa kwa undani zaidi. hapa.

Kiini cha UEFI-Boot ni kwamba kizigeu cha ESP (EFI System Partition) kimejumuishwa na saraka ya /boot. Wale. kernels zote na picha za bootstrap (initrd) ziko kwenye kizigeu ambacho UEFI inaweza kuzindua faili zinazoweza kutekelezwa na, haswa, kuzindua vipakiaji vya mfumo wa kuwasha. Lakini kernel ya Linux yenyewe katika usambazaji wengi tayari imekusanywa na chaguo la UEFISTUB, ambayo inaruhusu kernel yenyewe kuzinduliwa kutoka UEFI.

Suluhisho hili lina wakati mmoja usio na furaha - kizigeu cha ESP kimeundwa katika FAT32, ambayo haiwezekani kuunda viungo ngumu (ambavyo mfumo huunda mara kwa mara wakati wa kusasisha initrd). Na hakuna chochote cha jinai juu ya hili, lakini kuona maonyo ya mfumo wakati wa kusasisha vifaa vya kernel haifurahishi sana ...

Kuna njia nyingine.

Kidhibiti cha boot cha UEFI (sawa ambapo unahitaji kusajili bootloader ya OS) kinaweza, pamoja na kernels za bootloaders / Linux, pia kupakia madereva. Kwa hivyo unaweza kupakia dereva kwa mfumo wa faili ambapo unayo /boot na upakie kernel moja kwa moja kutoka hapo kwa kutumia UEFI. Dereva, bila shaka, anahitaji kuwekwa kwenye kizigeu cha ESP. Hivi ndivyo takriban vipakiaji kama GRUB hufanya. Lakini jambo kuu ni kwamba kazi zote zinazotumiwa mara kwa mara za GRUB tayari ziko kwenye UEFI. Kwa usahihi zaidi katika kidhibiti chake cha upakuaji. Na kuwa ya kuchosha zaidi, meneja wa buti wa UEFI ana uwezo zaidi katika mambo kadhaa.

Inaonekana kuwa suluhisho nzuri, lakini kuna moja "LAKINI" (au tuseme, ilikuwa, lakini zaidi juu ya hilo baadaye). Ukweli ni kwamba mfumo wa dereva wa UEFI ni rahisi sana. Hakuna kitu kama kuweka mfumo wa faili au kuhusisha dereva na kifaa maalum. Kuna simu ya mfumo yenye jina la kawaida la Ramani, ambalo huchukua kila dereva kwa zamu na kujaribu kuihusisha na vyote, angalau vifaa vinavyofaa. Na ikiwa dereva aliweza kuchukua kifaa, basi ramani imeundwa - rekodi ya kuunganisha. Hivi ndivyo hasa kiendeshi kipya kilichopakiwa kinapaswa kuanzishwa katika lundo la pamoja na wengine wote. Na unachohitaji ni kuweka biti moja (LOAD_OPTION_FORCE_RECONNECT) hadi 1 kwenye rekodi ya kuwasha kiendeshi na UEFI itafanya urekebishaji huu wa kimataifa baada ya kuipakia.

Lakini hii si rahisi kufanya. Huduma ya kawaida ya efibootmgr (ambayo hutumiwa kusanidi kidhibiti cha upakiaji cha UEFI) haijui jinsi (au tuseme, haikujua jinsi gani) ya kuweka kipande hiki. Ilinibidi kuisanikisha kwa mikono kupitia utaratibu mgumu na hatari.

Na kwa mara nyingine tena, baada ya kujaribu kuifanya kwa mikono yangu, sikuweza kuistahimili na kuifanya rasmi toleo kwenye GitHub kuwauliza wasanidi programu kuongeza kipengele hiki.

Siku kadhaa zilipita, lakini hakuna aliyesikiliza ombi langu. Na kwa udadisi, niliangalia msimbo wa chanzo ... niliigawanya, na nikafikiria kwa magoti jinsi ya kuongeza kipengele hiki ... "Kwa magoti yangu" kwa sababu sikusakinisha kitu kama hicho na kuhariri chanzo. nambari moja kwa moja kwenye kivinjari.

Ninajua C (lugha ya programu) juu juu sana, lakini nilichora suluhu ya takriban (zaidi ya kunakili-kubandika)... kisha nikafikiria - angalau labda nina makosa mengi hapo (majaribio yangu ya zamani ya kuhariri ya mtu mwingine. Nambari ya C ilikamilishwa takriban mara ya 10) nitatoa Ombi la Kuvuta. Vizuri iliyoundwa.

Na hapo Travis CI aliibuka kuambatanishwa ili kuangalia maombi ya kuvuta. Na aliniambia kwa bidii makosa yangu yote. Naam, ikiwa kuna makosa yanayojulikana, hakuna haja ya kurekebisha: tena, moja kwa moja kwenye kivinjari, na kwa jaribio la nne msimbo ulifanya kazi (mafanikio kwangu).

Na kama hivyo, bila kuacha kivinjari, nilipanga ombi la kweli la Kuvuta katika matumizi ambayo hutumiwa karibu na usambazaji wote wa kisasa wa Linux.

Nilishangazwa na ukweli kwamba, bila kujua lugha kweli, bila kusanidi chochote (tegemezi zinahitaji maktaba chache za kusanyiko), na bila hata kuendesha mkusanyaji, "niliandika" kipengele kinachofanya kazi kabisa na muhimu katika kivinjari.

Hata hivyo, ombi langu lilibaki bila kuitikiwa tangu Machi 19, 2019, na tayari nilikuwa nimeanza kulisahau.

Lakini jana ombi hili liliongezwa kwa bwana.

Kwa hivyo hadithi yangu inahusu nini? Na anazungumzia ukweli kwamba, ndani ya mfumo wa teknolojia za kisasa, ikawa kwamba kanuni halisi inaweza tayari kuandikwa kwenye kivinjari, bila kupeleka zana yoyote ya maendeleo na utegemezi ndani ya nchi.

Zaidi ya hayo, lazima nikubali, hii tayari ni ombi langu la pili la kuvuta kwa huduma zinazojulikana (angalau katika miduara nyembamba). Mara ya mwisho, ombi langu la kusahihisha onyesho la sehemu fulani katika kiolesura cha wavuti cha SyncThing lilisababisha uhariri wangu wa mstari mmoja katika mazingira ambayo sijui hata kidogo.

Watumiaji waliojiandikisha pekee ndio wanaweza kushiriki katika utafiti. Weka sahihitafadhali.

Je, niandike zaidi au la?

  • ndiyo

  • sio thamani

Watumiaji 294 walipiga kura. Watumiaji 138 walijizuia.

Chanzo: mapenzi.com

Kuongeza maoni