ಕರ್ನಲ್ ನವೀಕರಣದ ನಂತರ 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
ಮಾಡ್ಯೂಲ್ ಲೋಡ್ ಆಗಲು ನಿರಾಕರಿಸಿದರೆ, ಕರ್ನಲ್ ಲಾಗ್ ಕಾರಣವನ್ನು ಹೇಳುತ್ತದೆ, ಮತ್ತು ಆವೃತ್ತಿ ಅಸಾಮರಸ್ಯ ಕೇವಲ ಒಂದು ಸಾಧ್ಯತೆ. ಮತ್ತೆ ನಿರ್ಮಿಸುವ ಮೊದಲು ಆ ಸಾಲನ್ನು ಓದಿ, ಏಕೆಂದರೆ ಎರಡನೇ ಅದೇ ರೀತಿಯ ನಿರ್ಮಾಣ ಅದೇ ಹತ್ತು ನಿಮಿಷ ವ್ಯಯಿಸಿ ಅದೇ ನಿರಾಕರಣೆ ನೀಡುತ್ತದೆ. ನಂತರ ತಾತ್ಕಾಲಿಕ ಇಂಟರ್ಫೇಸ್ ತೆಗೆದುಹಾಕಿ, ಮುಂದಿನ ಪರೀಕ್ಷೆ ಸ್ವಚ್ಛ ಸ್ಥಿತಿಯಿಂದ ಆರಂಭವಾಗಲಿ.