ਤੁਹਾਡੀ ਸੁਰੰਗ ਕੱਲ੍ਹ ਕੰਮ ਕਰ ਰਹੀ ਸੀ, ਅੱਪਡੇਟ ਤੋਂ ਬਾਅਦ ਮਸ਼ੀਨ ਰੀਬੂਟ ਹੋਈ, ਅਤੇ ਹੁਣ ਇੰਟਰਫੇਸ ਉੱਪਰ ਨਹੀਂ ਆਉਂਦਾ। ਜਿਸ ਸਿਸਟਮ ਵਿੱਚ 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

ਜੇ ਮਾਡਿਊਲ ਲੋਡ ਹੋਣ ਤੋਂ ਇਨਕਾਰ ਕਰੇ, ਤਾਂ ਕਰਨਲ ਲੌਗ ਕਾਰਨ ਦੱਸਦਾ ਹੈ, ਅਤੇ ਵਰਜਨ ਦਾ ਬੇਮੇਲ ਸਿਰਫ਼ ਇੱਕ ਸੰਭਾਵਨਾ ਹੈ। ਦੁਬਾਰਾ ਬਣਾਉਣ ਤੋਂ ਪਹਿਲਾਂ ਉਹ ਲਾਈਨ ਪੜ੍ਹੋ, ਕਿਉਂਕਿ ਦੂਜਾ ਉਹੀ ਬਿਲਡ ਉਹੀ ਦਸ ਮਿੰਟ ਖਰਚ ਕੇ ਉਹੀ ਇਨਕਾਰ ਦਿੰਦਾ ਹੈ। ਫਿਰ ਅਸਥਾਈ ਇੰਟਰਫੇਸ ਹਟਾ ਦਿਓ ਤਾਂ ਜੋ ਅਗਲੀ ਪਰਖ ਸਾਫ਼ ਹਾਲਤ ਤੋਂ ਸ਼ੁਰੂ ਹੋਵੇ।

ਸੰਬੰਧਿਤ ਲੇਖ