Tuneliniz dünən işləyirdi, maşın yenilənmədən sonra yenidən başladı və indi interfeys qalxmır. WireGuard xarici modul kimi qurulan sistemlərdə adi səbəb diskdəki modulun indi işləyən buraxılışdan fərqli kernel buraxılışına aid olmasıdır. Eyni maşında oxşar adlı başlıqlar həmin uyğunluq barədə heç nə sübut etmir. Bunu yalnız buraxılış sətri həll edir.

İşləyən kernel, yoxsa quraşdırılmış kernel

Yenilənmə yeni kernel paketi quraşdırır və köhnəsini maşın yenidən başlayana qədər diskdə saxlayır. Yenidən başlamadan sonra işləyən buraxılış dəyişir və əvvəlkinə qarşı qurulmuş hər hansı modul faylları hələ də yerində olsa da yararsız olur. Bu fərq, yenidən başlamadan əvvəl sağlam olan və sonra pozulan, arada heç bir konfiqurasiya dəyişikliyi olmayan maşın barədə tanış hesabatı izah edir. Həmçinin başlıqların yenidən quraşdırılmasının bəzən problemi həll etmiş kimi görünməsini, bəzən isə görünməməsini izah edir.

Quraşdırdığınız başlıq paketi faktiki açılan kernelə deyil, ən yeni kernel paketinə uyğun gələ bilər və paket adında bu halları fərqləndirən heç nə yoxdur; bunu yalnız buraxılış sətri edir. Nəyin quraşdırıldığına baxmazdan əvvəl nəyin işlədiyinə baxın.

Yenidənqurmadan əvvəl üç yoxlama

Birinci yoxlama hansı kernelin işlədiyidir. İkincisi, həmin buraxılış üçün modulun olub-olmadığı və tapıla bilməsidir. Üçüncüsü, kernelin onu artıq yükləyib-yükləmədiyidir. Dördüncü sual, yəni interfeysin yaradıla bilməsi, modulu deyil, imtiyazları yoxlayır, ona görə də bu siyahıda deyil, yenidənqurmadan sonra yer alır.

Aşağıdakı əmrlər heç nəyi dəyişmədən ilk üçünə cavab verir. Davam etməzdən əvvəl hər nəticəni oxuyun, çünki hər cavab fərqli bir təmiri istisna edir.

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

İkinci sətir yolun mövcud olmadığını bildirirsə, işləyən kernel üçün qurma mühiti yoxdur və qurduğunuz heç nə ona uyğun gəlməyəcək. Yol mövcud olduğu halda modinfo uğursuz olursa, modul ümumiyyətlə quraşdırılmamış ola bilər ki, bu, tətbiqi ağac daxilində göndərən kernellər üçün normaldır. modinfo uğurlu olub lsmod heç nə göstərmirsə, modul mövcuddur amma yüklənməyib ki, bu, qurma deyil, yükləmə vaxtı problemidir. Hər nəticə sizi fərqli yerə yönəldir, buna görə oxumaq əmrlərdən daha vacibdir.

İşləyən buraxılışa qarşı qurun

Xarici modul hazırlanmış kernel ağacına qarşı qurulur və kernelin xarici modullar təlimatı ən yüksək görünən versiya nömrəsini daşıyan qovluqdan deyil, işləyən kernelə aid qurma qovluğundan istifadəni təsvir edir. Həmin qurma qovluğu kernel paketinin saxladığı simvolik keçiddir, ona görə də hazırda açılmış buraxılışın ağacına işarə edir. Dolayılıq elə məqsədin özüdür: səhv edəcəyiniz bir seçimi aradan qaldırır. Onu açıq şəkildə adlandırmaq hədəfi birmənalı edir.

Ağac tam qurulmayıb yalnız hazırlanıbsa, bir detal vacibdir. Hazırlama hədəfi bəzi xarici qurmaların ehtiyac duyduğu simvol versiyalama faylını yaratmır, ona görə başlıqlarla dolu ağac avtomatik tam qurma mühiti deyil. Qurma çatışmayan simvollara görə uğursuz olarsa, ilk baxılacaq yer həmin fayldır.

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

Paketlənmiş başlıqlar geri qaldıqda

Öz kernellərini paketləyən distributivlərdə və tək lövhəli kompüterlərdə başlıqlar buraxılışdan günlər və ya həftələr geri qala bilər. Başlıq paketi adda düzgün, məzmunda köhnə ola bilər ki, bu, kompilyasiya olunan, sonra isə kompilyasiya zamanı deyil, yükləmə zamanı uğursuz olan qurma yaradır. Mənbələri qarışdırmaq vəziyyəti pisləşdirir: üçüncü tərəf repozitoriyasından başlıqları olan distributiv kerneli və ya ümumi başlıqları olan təchizatçı kerneli təmiz kompilyasiya oluna, amma konfiqurasiya fərqli olduğu üçün işləyən kernel tərəfindən rədd edilə bilər. Versiya nömrələri təkbaşına bunu həll etmir.

Maşın eksperimental kernel kanalını izləyirsə, uyğun qurma artefaktları ilə orada qalmağa və ya dəstəklənən paket dəstinə qayıtmağa qəsdən qərar verin. Yenilənməni təkrarlayıb hissələrin uyğunlaşacağına ümid etmək plan deyil, çünki eyni uyğunsuzluq hər dəfə təkrarlanır.

Yenidənqurmadan sonra interfeysi yoxlayın

Uğurlu quraşdırmadan sonra interfeysin yaradılması vacib sınaqdır, ardınca kernelin faktiki nə yüklədiyini və imtina etdiyi halda jurnalın nə dediyini oxumaq gəlir. Yüklənən modul və yaradıla bilməyən interfeys fərqli səbəbləri olan fərqli uğursuzluqlardır. Aşağıdakı üç əmr onları ayırır.

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

Modul yüklənməkdən imtina edirsə, kernel jurnalı səbəbi göstərir və versiya uyğunsuzluğu yalnız mümkün səbəblərdən biridir. Yenidən qurmazdan əvvəl həmin sətri oxuyun, çünki ikinci eyni qurma eyni on dəqiqəni xərcləyib eyni imtinanı verir. Sonra müvəqqəti interfeysi silin ki, növbəti sınaq təmiz vəziyyətdən başlasın.

Əlaqəli məqalələr