WireGuard-moodul ei laadi pärast tuuma uuendust? Kontrollige seda
Välist moodulit tuleb ehitada tuuma vastu, mis selle laadib, mitte kõige uuema päise-paketi vastu kettal. Kontrollige töötavat versiooni enne uuesti ehitamist.
Teie tunnel töötas eile, masin taaskäivitus pärast uuendust ja nüüd liides ei tõuse. Süsteemis, kus WireGuard ehitatakse välise moodulina, on tavaline põhjus see, et kettal olev moodul kuulub teise tuuma versiooni juurde kui see, mis praegu töötab. Sarnase nimega päised samas masinas ei tõesta selle vastavuse kohta midagi. Seda otsustab ainult versiooni string.
Töötav või paigaldatud tuum
Uuendus paigaldab uue tuuma paketi ja jätab vana kettale seniks, kuni masin taaskäivitub. Pärast taaskäivitust muutub töötav versioon ja iga eelmise vastu ehitatud moodul muutub kasutuskõlbmatuks, kuigi selle failid on endiselt alles. See vahe seletab tuttavat teadet masinast, mis oli enne taaskäivitust korras ja pärast seda katki, ilma ühegi konfiguratsioonimuudatuseta vahepeal. See seletab ka, miks päiste uuesti paigaldamine mõnikord näib probleemi lahendavat ja mõnikord mitte.
Paigaldatav päiste-pakett võib vastata kõige uuemale tuuma paketile, mitte tuumale, mis tegelikult käivitus, ja paketi nimes ei erista miski neid juhtumeid; seda teeb ainult versiooni string. Kontrollige, mis töötab, enne kui kontrollite, mis on paigaldatud.
Kolm kontrolli enne uuesti ehitamist
Esimene kontroll on, milline tuum töötab. Teine on, kas selle versiooni jaoks on moodul olemas ja kas see on leitav. Kolmas on, kas tuum on selle juba laadinud. Neljas küsimus, kas liidest saab luua, kontrollib õigusi, mitte moodulit, seega kuulub see uuesti ehitamise järele, mitte siia loendisse.
Allpool olevad käsud vastavad kolmele esimesele ilma midagi muutmata. Lugege iga tulemust enne edasiminekut, sest iga vastus välistab erineva paranduse.
uname -r
ls -l /lib/modules/$(uname -r)/build
modinfo wireguard
lsmod | grep wireguard
Kui teine rida teatab, et teed ei ole olemas, puudub töötava tuuma ehitamiskeskkond ja miski, mida kompileerite, ei vasta sellele. Kui modinfo ebaõnnestub, kuigi tee on olemas, ei pruugi moodul üldse paigaldatud olla, mis on tavaline tuumade puhul, mis tarnivad teostuse puu sees. Kui modinfo õnnestub ja lsmod ei näita midagi, on moodul olemas, kuid pole laaditud, mis on laadimis- mitte ehitamisprobleem. Iga tulemus viib teid erinevasse kohta, seepärast on lugemine tähtsam kui käsud.
Ehitage töötava versiooni vastu
Välist moodulit kompileeritakse ettevalmistatud tuumapuu vastu ja tuuma juhend väliste moodulite kohta kirjeldab töötava tuuma juurde kuuluva ehituskataloogi kasutamist, mitte selle kataloogi oma, millel on kõrgeim versiooninumber. See ehituskataloog on tuuma paketi hooldatav sümbollink, seega osutab see praegu käivitatud versiooni puule. Kaudsus ongi mõte: see eemaldab valiku, mille te muidu valesti teeksite. Selle selgesõnaline nimetamine teeb sihtmärgi ühemõtteliseks.
Üks detail loeb siis, kui puu on ainult ette valmistatud, mitte täielikult ehitatud. Ettevalmistamise sihtmärk ei tooda sümbolite versioonifaili, mida mõned välised ehitused vajavad, seega päise täis puu ei ole automaatselt täielik ehitamiskeskkond. Kui ehitus ebaõnnestub puuduvate sümbolite tõttu, on see fail esimene koht, kuhu vaadata.
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
Kui pakendatud päised maha jäävad
Distributsioonides ja üheplaadilistes arvutites, mis pakendavad oma tuumasid, võivad päised versioonist päevi või nädalaid maas olla. Päiste-pakett võib olla nime poolest õige ja sisu poolest vanem, mis annab ehituse, mis kompileerub ja seejärel ebaõnnestub laadimisel, mitte kompileerimise ajal. Allikate segamine teeb selle hullemaks: distributsiooni tuum kolmanda osapoole hoidla päistega või tootja tuum üldiste päistega võib puhtalt kompileeruda ja siiski töötava tuuma poolt tagasi lükatud saada, sest konfiguratsioon erineb. Ainuüksi versiooninumbrid seda ei otsusta.
Kui masin järgib eksperimentaalset tuumakanalit, otsustage teadlikult, kas jääda sinna sobivate ehitustoodetega või pöörduda tagasi toetatud paketikomplekti juurde. Uuenduse kordamine ja lootus, et tükid kokku sobivad, ei ole plaan, sest sama sobimatus kordub iga kord.
Kontrollige liidest pärast uuesti ehitamist
Pärast edukat paigaldust on liidese loomine see test, mis loeb, millele järgneb lugemine, mida tuum tegelikult laadis ja mida logi ütleb, kui see keeldus. Moodul, mis laaditakse, ja liides, mida ei saa luua, on erinevad tõrked erinevate põhjustega. Kolm allpool olevat käsku eristavad neid.
sudo ip link add wg9 type wireguard
lsmod | grep wireguard
sudo dmesg | tail -5
Kui moodul keeldub laadimast, nimetab tuuma logi põhjuse ja versiooni sobimatus on vaid üks võimalustest. Lugege seda rida enne uuesti ehitamist, sest teine identne ehitus kulutab samad kümme minutit ja annab sama keeldumise. Seejärel eemaldage ajutine liides, et järgmine test algaks puhtast olekust.