మీ టన్నెల్ నిన్న పని చేసింది, అప్డేట్ తర్వాత మెషిన్ రీబూట్ అయింది, ఇప్పుడు ఇంటర్ఫేస్ పైకి రావడం లేదు. 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

మాడ్యూల్ లోడ్ కావడానికి నిరాకరిస్తే, కర్నెల్ లాగ్ కారణాన్ని తెలియజేస్తుంది, వెర్షన్ అసమతుల్యత ఒక అవకాశం మాత్రమే. తిరిగి నిర్మించే ముందు ఆ పంక్తిని చదవండి, ఎందుకంటే రెండవ అదే నిర్మాణం అదే పది నిమిషాలు ఖర్చు చేసి అదే నిరాకరణ ఇస్తుంది. తర్వాత తాత్కాలిక ఇంటర్ఫేస్ను తొలగించండి, తదుపరి పరీక్ష శుభ్రమైన స్థితి నుండి ప్రారంభమయ్యేలా.

సంబంధిత వ్యాసాలు