Ядро жаңартылғаннан кейін WireGuard модулі жүктелмей ме? Мынаны тексеріңіз
Сыртқы модуль оны жүктейтін ядроға қарсы құрылуы керек, дискідегі ең жаңа тақырыпшалар бумасына қарсы емес. Қайта құру алдында жұмыс істеп тұрған шығарылымды тексеріңіз.
Сіздің туннеліңіз кеше жұмыс істеп тұрды, жаңартудан кейін машина қайта жүктелді, ал қазір интерфейс көтерілмейді. WireGuard сыртқы модуль ретінде құрылатын жүйеде әдеттегі себеп — дискідегі модуль қазір жұмыс істеп тұрған ядро шығарылымынан басқа шығарылымға жатады. Сол машинадағы ұқсас атаулы тақырыпшалар бұл сәйкестік туралы ештеңе дәлелдемейді. Мұны тек шығарылым жолы шешеді.
Жұмыс істеп тұрған немесе орнатылған ядро
Жаңарту жаңа ядро бумасын орнатады және машина қайта жүктелгенше ескісін дискіде қалдырады. Қайта жүктеуден кейін жұмыс істеп тұрған шығарылым өзгереді, ал алдыңғысына қарсы құрылған кез келген модуль файлдары әлі болса да жарамсыз болады. Бұл айырмашылық қайта жүктеуден бұрын дұрыс болып, кейін бұзылған машина туралы таныс хабарды түсіндіреді, арасында конфигурация өзгерісі жоқ. Сондай-ақ тақырыпшаларды қайта орнату кейде мәселені шешкендей көрініп, кейде көрінбейтінін түсіндіреді.
Сіз орнататын тақырыпшалар бумасы нақты жүктелген ядроға емес, ең жаңа ядро бумасына сәйкес келуі мүмкін, және бума атауында бұл жағдайларды ажырататын ештеңе жоқ; мұны тек шығарылым жолы жасайды. Не орнатылғанын тексермес бұрын не жұмыс істеп тұрғанын тексеріңіз.
Қайта құру алдындағы үш тексеріс
Бірінші тексеріс — қай ядро жұмыс істеп тұр. Екіншісі — сол шығарылым үшін модуль бар ма және оны табуға бола ма. Үшіншісі — ядро оны әлдеқашан жүктеді ме. Төртінші сұрақ, яғни интерфейсті құруға бола ма, модульді емес, артықшылықтарды тексереді, сондықтан оның орны осы тізімде емес, қайта құрудан кейін.
Төмендегі командалар ештеңені өзгертпей алғашқы үшеуіне жауап береді. Әр нәтижені әрі қарай жылжымас бұрын оқыңыз, өйткені әр жауап басқа жөндеуді жоққа шығарады.
uname -r
ls -l /lib/modules/$(uname -r)/build
modinfo wireguard
lsmod | grep wireguard
Егер екінші жол жолдың жоқ екенін хабарласа, жұмыс істеп тұрған ядро үшін құру ортасы жоқ және сіз компиляциялаған ештеңе оған сәйкес келмейді. Жол бар болса да modinfo сәтсіз аяқталса, модуль мүлдем орнатылмаған болуы мүмкін, бұл іске асыруды ағаш ішінде беретін ядролар үшін қалыпты. modinfo сәтті болып, lsmod ештеңе көрсетпесе, модуль бар, бірақ жүктелмеген, бұл құру емес, жүктеу уақытының мәселесі. Әр нәтиже сізді басқа жерге жібереді, сондықтан оқу командалардан маңыздырақ.
Жұмыс істеп тұрған шығарылымға қарсы құрыңыз
Сыртқы модуль дайындалған ядро ағашына қарсы компиляцияланады, ал ядроның сыртқы модульдер жөніндегі нұсқаулығы ең жоғары нұсқа нөмірі бар қалтаны емес, жұмыс істеп тұрған ядроға тиесілі құру қалтасын пайдалануды сипаттайды. Бұл құру қалтасы ядро бумасы ұстайтын символдық сілтеме, сондықтан ол қазір жүктелген шығарылым ағашына нұсқайды. Жанамалық — дәл осы мәселе: ол әйтпесе қате жасайтын таңдауды алып тастайды. Оны анық атау мақсатты бірмағыналы етеді.
Ағаш толық құрылмай, тек дайындалған кезде бір бөлшек маңызды. Дайындау мақсаты кейбір сыртқы құруларға қажет символ нұсқалау файлын шығармайды, сондықтан тақырыпшаларға толы ағаш автоматты түрде толық құру ортасы емес. Егер құру жетіспейтін символдарға байланысты сәтсіз болса, сол файл — ең алдымен қарайтын орын.
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
Бумаланған тақырыпшалар артта қалғанда
Өз ядроларын бумалайтын дистрибутивтер мен бір тақталы компьютерлерде тақырыпшалар шығарылымнан күндер немесе апталар артта қалуы мүмкін. Тақырыпшалар бумасы атауы бойынша дұрыс, мазмұны бойынша ескі болуы мүмкін, бұл компиляциядан өтіп, кейін компиляция кезінде емес, жүктеу кезінде сәтсіз болатын құруды береді. Дереккөздерді араластыру оны нашарлатады: үшінші тарап қоймасынан тақырыпшалары бар дистрибутив ядросы немесе жалпы тақырыпшалары бар өндіруші ядросы таза компиляцияланып, конфигурация өзгеше болғандықтан жұмыс істеп тұрған ядро тарапынан қабылданбауы мүмкін. Тек нұсқа нөмірлері мұны шешпейді.
Егер машина эксперименттік ядро арнасын ұстанса, сәйкес құру артефактілерімен сол жерде қалуды немесе қолдау көрсетілетін бумалар жиынтығына оралуды саналы түрде шешіңіз. Жаңартуды қайталап, бөлшектер сәйкес келеді деп үміттену жоспар емес, өйткені сол сәйкессіздік әр жолы қайталанады.
Қайта құрудан кейін интерфейсті тексеріңіз
Сәтті орнатудан кейін интерфейсті құру — маңызды сынақ, одан кейін ядроның нақты нені жүктегенін және бас тартқан жағдайда журналдың не дейтінін оқу керек. Жүктелетін модуль мен құруға болмайтын интерфейс — себептері әртүрлі әртүрлі ақаулар. Төмендегі үш команда оларды ажыратады.
sudo ip link add wg9 type wireguard
lsmod | grep wireguard
sudo dmesg | tail -5
Егер модуль жүктеуден бас тартса, ядро журналы себебін атайды, ал нұсқа сәйкессіздігі — тек бір мүмкіндік. Қайта құру алдында сол жолды оқыңыз, өйткені екінші бірдей құру сол он минутты жұмсап, сол бас тартуды береді. Содан кейін уақытша интерфейсті жойыңыз, келесі сынақ таза күйден басталсын.