ปัญหาฮาร์ดแวร์หลังจากการอัพเดตเคอร์เนลล่าสุด?

Tux Linux พร้อมแวว

บางครั้ง เมื่อ มีการติดตั้ง เคอร์เนลใหม่ ลง ในคอมพิวเตอร์ของเราพร้อมกับการอัปเดตที่เกี่ยวข้องกับระบบปฏิบัติการ อุปกรณ์ฮาร์ดแวร์บางอย่างอาจหยุดทำงานหรือทำงานผิดปกติ เหตุใดจึงเป็นเช่นนั้น? คำตอบง่ายๆ คือ ไดรเวอร์ฮาร์ดแวร์ถูกเปลี่ยนแปลงโดยการอัปเดตเคอร์เนล เคอร์เนลทั่วไปที่ระบบปฏิบัติการมักติดตั้งนั้นถูกกำหนดค่าให้ทำงานได้กับคอมพิวเตอร์ส่วนใหญ่ แต่ไม่ได้ถูกปรับแต่งให้เหมาะสมที่สุด

บางครั้ง หากคุณมีไดรเวอร์เฉพาะสำหรับอุปกรณ์ใดอุปกรณ์หนึ่ง ไดรเวอร์นั้นอาจเปลี่ยนแปลงไปตามเวอร์ชันเคอร์เนลใหม่ และคุณอาจพบว่าเว็บแคม การ์ดเครือข่าย การ์ดเสียง หรืออุปกรณ์อื่นๆ ของคุณหยุดทำงานกะทันหัน ทั้งๆ ที่ก่อนหน้านี้ใช้งานได้ปกติ สาเหตุส่วนใหญ่เกิดจากโมดูลที่เกี่ยวข้องกับไดรเวอร์ของอุปกรณ์นั้นถูกยกเลิกไปแล้ว เนื่องจากถือว่าล้าสมัย หรือด้วยเหตุผลอื่นๆ อาจเป็นเพราะเป็นอุปกรณ์ที่ไม่ค่อยพบเห็น และเคอร์เนลทั่วไปไม่ได้ถูกกำหนดค่าให้โหลดอุปกรณ์นั้น

ไม่ต้องกังวลไป หากอุปกรณ์ของคุณใช้งานได้กับเวอร์ชันเคอร์เนลก่อนหน้าก็แก้ไขได้ง่ายๆ ตัวอย่างเช่น สมมติว่าการ์ดเครือข่าย การ์ดเสียง เว็บแคม หรืออุปกรณ์อื่นๆ ของคุณหยุดทำงานกะทันหัน หากเกิดเหตุการณ์นี้หลังจากอัปเดตเคอร์เนล คุณอาจพบว่าโมดูลนั้นไม่มีอยู่ในเวอร์ชันใหม่แล้ว คุณสามารถตรวจสอบได้ด้วยคำสั่ง (ตัวอย่างเช่น สมมติว่าปัญหาอยู่ที่การ์ดเครือข่ายที่มีไดรเวอร์เป็น ath5k):

sudo modprobe ath5k && dmseg | grep ath

หากคุณพบว่าโมดูลนั้นไม่มีอยู่แสดงว่าโมดูลนั้นไม่มีอยู่ในเคอร์เนลของคุณ จากนั้นตรวจสอบว่าเคอร์เนลตรวจพบอุปกรณ์ของคุณหรือไม่ เพราะอาจเป็นเพราะอุปกรณ์ทำงานผิดปกติ และนั่นอาจเป็นสาเหตุของปัญหา ตัวอย่างเช่น:

lsmod

จากนั้นให้ดูในรายการเพื่อหาอุปกรณ์ที่คุณต้องการ ตัวอย่างเช่น ถ้าเป็นการ์ดเครือข่าย ให้มองหาสิ่งที่คล้ายกับ Ethernet, WiFi, Wireless หรือในกรณีของเราคือ Atheros… ถ้าพบในรายการ แสดงว่าตรวจพบแล้ว ดังนั้นเราจะดำเนินการดังต่อไปนี้ คือลบหรือถอนการติดตั้งเคอร์เนลเวอร์ชันล่าสุดและไฟล์เฮดเดอร์ของมัน

dpkg --get-selections | grep linux-image

นี่คือรายการเคอร์เนลที่เราติดตั้งไว้ สมมติว่าเวอร์ชันที่มีปัญหาคือ 4.10.0-28 ซึ่งปรากฏอยู่ในรายการนั้น แต่ไดรเวอร์ทำงานได้ปกติกับเวอร์ชันก่อนหน้าคือ 4.10.0-2-generic ดังนั้นเรามาลบ เวอร์ชันนี้ออกไปกัน เถอะ

sudo apt-get remove --purge linux-image-4.10.0-28-generic linux-image-extra-4.10.0-28-generic

จากนั้นเราก็ทำเช่นเดียวกันกับไฟล์เฮดเดอร์ของเคอร์เนลโดยค้นหาและลบไฟล์เฮดเดอร์ที่เกี่ยวข้องกับเคอร์เนลที่มีปัญหาออกจากรายการ วิธีการทำเช่นนี้คือ:

dpkg --get-selections | grep linux-headers

sudo apt-get remove --purge linux-headers-4.10.0-28 linux-headers-4.10.0-28-generic

sudo update-grub2

สุดท้ายนี้ให้บอก GRUB ให้บูตระบบโดยใช้เวอร์ชันเคอร์เนลก่อนหน้าที่ไม่มีปัญหา:

sudo nano /etc/default/grup

ในไฟล์นั้น ให้เปลี่ยนบรรทัด GRUB_DEFAULT=0 เป็นGRUB_DEFAULT=savedจากนั้นไปที่ท้ายไฟล์และเพิ่มบรรทัดใหม่ที่มีข้อความGRUB_SAVEDEFAULT=trueบันทึกการเปลี่ยนแปลงและออกจากไฟล์ ตอนนี้อัปเดตอีกครั้งเพื่อให้การเปลี่ยนแปลงมีผล:

sudo update-grub2

รีบูตเครื่องแล้วก็เสร็จเรียบร้อย ... ทุกอย่างน่าจะใช้งานได้แล้ว แน่นอนว่าวิธีนี้ใช้ได้เฉพาะกับระบบปฏิบัติการที่มีเคอร์เนลหลายตัวให้เลือกใช้ หากคุณมีเพียงเคอร์เนลเดียว คุณจะไม่สามารถทำแบบนี้ได้ ซึ่งก็สมเหตุสมผล นั่นเป็นเหตุผลว่าทำไมจึงควรเก็บเคอร์เนลเก่าๆ ไว้หลังจากอัปเดต เพราะมันสามารถใช้เป็นข้อมูลสำรองได้เมื่อจำเป็น

ซึ่งจะช่วยให้คุณไม่ต้องดาวน์โหลดกำหนดค่าและรวบรวมเคอร์เนลใหม่ด้วยมือเพื่อติดตั้งบน distro ของคุณ อย่าลืมแสดงความคิดเห็นของคุณด้วยข้อสงสัยหรือบางกรณีที่คุณมีปัญหาหลังจากอัปเดตเป็นเคอร์เนลใหม่ ...


เพิ่มเป็นแหล่งข้อมูลที่ต้องการใน Google