Tuneli yako ilifanya kazi jana, mashine ilianzishwa upya baada ya kusasisha, na sasa kiunganishi hakipandi. Kwenye mfumo ambao WireGuard hujengwa kama moduli ya nje, sababu ya kawaida ni kwamba moduli iliyo kwenye diski ni ya toleo la kernel tofauti na lile linaloendesha sasa. Vichwa vyenye jina kama hilo kwenye mashine moja havithibitishi chochote kuhusu ulinganifu huo. Ni mfuatano wa toleo pekee unaoamua hilo.

Kernel inayoendesha au iliyosakinishwa

Sasisho husakinisha kifurushi kipya cha kernel na kuacha kile cha zamani kwenye diski hadi mashine ianzishwe upya. Baada ya kuanzisha upya toleo linaloendesha hubadilika, na moduli yoyote iliyojengwa kwa lile la awali inakuwa isiyotumika ingawa faili zake zipo bado. Pengo hilo hufafanua ripoti inayojulikana ya mashine iliyokuwa sawa kabla ya kuanzisha upya na kuharibika baada yake, bila mabadiliko yoyote ya usanidi katikati. Pia hufafanua kwa nini kusakinisha upya vichwa wakati mwingine huonekana kutatua tatizo na wakati mwingine sivyo.

Kifurushi cha vichwa unachosakinisha kinaweza kuendana na kifurushi kipya zaidi cha kernel badala ya kernel iliyoanza kweli, na hakuna kitu katika jina la kifurushi kinachotofautisha hali hizo; ni mfuatano wa toleo pekee unaofanya hivyo. Angalia kinachoendesha kabla ya kuangalia kilichosakinishwa.

Ukaguzi tatu kabla ya kujenga upya

Ukaguzi wa kwanza ni kernel ipi inaendesha. Wa pili ni kama kuna moduli ya toleo hilo na kama inaweza kupatikana. Wa tatu ni kama kernel tayari imeipakia. Swali la nne, kama kiunganishi kinaweza kuundwa, hupima ruhusa badala ya moduli, kwa hiyo nafasi yake ni baada ya kujenga upya na sio kwenye orodha hii.

Amri zilizo hapa chini zinajibu tatu za kwanza bila kubadilisha chochote. Soma kila tokeo kabla ya kuendelea, kwa sababu kila jibu huondoa ukarabati tofauti.

uname -r
ls -l /lib/modules/$(uname -r)/build
modinfo wireguard
lsmod | grep wireguard

Ikiwa mstari wa pili unaripoti kwamba njia haipo, mazingira ya kujenga kwa kernel inayoendesha hayapo na chochote utakachokompaila hakitendani nayo. Ikiwa modinfo inashindwa wakati njia ipo, huenda moduli haijasakinishwa kabisa, jambo ambalo ni la kawaida kwenye kernel zinazotoa utekelezaji ndani ya mti. Ikiwa modinfo inafanikiwa na lsmod haionyeshi chochote, moduli ipo lakini haijapakiwa, jambo ambalo ni tatizo la wakati wa kupakia na sio la kujenga. Kila tokeo linakupeleka mahali pengine, kwa hiyo kusoma ni muhimu zaidi kuliko amri.

Jenga kwa toleo linaloendesha

Moduli ya nje hukompailiwa kwa mti wa kernel ulioandaliwa, na mwongozo wa kernel wa moduli za nje unaeleza matumizi ya saraka ya kujenga inayomilikiwa na kernel inayoendesha badala ya ile iliyo na nambari ya toleo la juu zaidi. Saraka hiyo ya kujenga ni kiungo cha mfano kinachotunzwa na kifurushi cha kernel, kwa hiyo inaelekeza kwenye mti wa toleo lililoanzishwa sasa. Njia isiyo ya moja kwa moja ndiyo hoja hasa: huondoa chaguo ambalo ungefanya vibaya vinginevyo. Kuliita kwa uwazi hufanya lengo lisilo na utata.

Maelezo moja ni muhimu wakati mti umeandaliwa tu na haujajengwa kikamilifu. Lengo la maandalizi halitoi faili ya toleo la alama ambayo baadhi ya ujenzi wa nje huhitaji, kwa hiyo mti uliojaa vichwa si mazingira kamili ya kujenga kiotomatiki. Ikiwa ujenzi unashindwa kwa sababu ya alama zilizokosekana, faili hiyo ni mahali pa kwanza pa kuangalia.

sudo make -C /lib/modules/$(uname -r)/build M=$(pwd) modules
sudo make -C /lib/modules/$(uname -r)/build M=$(pwd) modules_install
sudo depmod -a

Wakati vichwa vilivyofungashwa vinabaki nyuma

Kwenye usambazaji na kompyuta za bodi moja zinazofungasha kernel zao wenyewe, vichwa vinaweza kubaki nyuma ya toleo kwa siku au wiki. Kifurushi cha vichwa kinaweza kuwa sahihi kwa jina na cha zamani kwa maudhui, jambo ambalo hutoa ujenzi unaokompailiwa na kisha kushindwa wakati wa kupakia badala ya wakati wa kukompaila. Kuchanganya vyanzo hufanya hali kuwa mbaya zaidi: kernel ya usambazaji iliyo na vichwa kutoka hazina ya mtu wa tatu, au kernel ya mtengenezaji iliyo na vichwa vya jumla, inaweza kukompailiwa safi na bado ikakataliwa na kernel inayoendesha kwa sababu usanidi unatofautiana. Nambari za toleo pekee hazitatui hilo.

Ikiwa mashine inafuata kituo cha kernel cha majaribio, amua kwa ufahamu kama utabaki hapo na vifaa vya ujenzi vinavyolingana au utarudi kwenye seti ya vifurushi inayotumika. Kurudia sasisho na kutumaini kwamba vipande vitaendana si mpango, kwa sababu kutokulingana huko hujirudia kila mara.

Thibitisha kiunganishi baada ya kujenga upya

Baada ya usakinishaji wenye mafanikio, kuunda kiunganishi ndio jaribio la muhimu, ikifuatiwa na kusoma kile kernel ilichopakia kweli na kile kumbukumbu inasema ikiwa ilikataa. Moduli inayopakiwa na kiunganishi kisichoweza kuundwa ni hitilafu tofauti zenye sababu tofauti. Amri tatu zilizo hapa chini huzitenganisha.

sudo ip link add wg9 type wireguard
lsmod | grep wireguard
sudo dmesg | tail -5

Ikiwa moduli inakataa kupakiwa, kumbukumbu ya kernel inataja sababu, na kutokulingana kwa toleo ni uwezekano mmoja tu. Soma mstari huo kabla ya kujenga upya, kwa sababu ujenzi wa pili unaofanana hutumia dakika kumi zilezile na kutoa katazo lilelile. Kisha ondoa kiunganishi cha muda ili jaribio lijalo lianze kutoka hali safi.

Makala zinazohusiana