Іноді при їх встановленні нові ядра в нашому обладнанні з відповідними оновленнями нашого дистрибутиву деякий апаратний пристрій може перестати працювати або працювати неправильно. Чому трапляється? Ну, це просто, тому що драйвери обладнання були змінені з оновленням ядра. Загальні ядра, які зазвичай встановлюють дистрибутиви, налаштовані на роботу з більшістю комп’ютерів, але не оптимізовані.
Іноді, якщо у вас є конкретний контролер для деяких пристроїв це може змінитися з новою версією ядра, і ви зможете побачити, як ваша веб-камера, мережева карта, звукова карта чи будь-який інший пристрій раптово перестали працювати, коли раніше працювали належним чином, ну, найпевніше, що модуль, що відповідає драйверу цього пристрою, було відкинуто, оскільки він вважався застарілим або з якоїсь іншої причини, можливо, це просто рідкісний пристрій, і загальне ядро не налаштоване для його завантаження.
Не хвилюйтеся, якщо з старіша версія ядра Ваш пристрій працював, його легко виправити. Наприклад, уявіть, що ваша мережева карта, звукова карта, веб-камера чи будь-який інший пристрій раптово перестали працювати і звикли працювати. Якщо це сталося після оновлення ядра, ви можете виявити, що модуль більше не присутній у новій версії. Ви можете перевірити це (наприклад, припустивши, що не працює мережева карта, драйвером якої є ath5k):
sudo modprobe ath5k && dmseg | grep ath
Якщо нам це здається модуль не існує, це означає, що він відсутній у нашому ядрі. Потім переконайтеся, що ядро виявляє ваш пристрій, оскільки він може не працювати, і це причина. Наприклад:
lsmod
Y пошук у списку Конкретний пристрій, який ви шукаєте, наприклад, якщо це мережева карта, шукає щось на зразок 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 = збережено. Потім перейдіть до кінця файлу та додайте ще один новий рядок, який містить GRUB_SAVEDEFAULT = істина. Збережіть зміни та вийдіть. Тепер ми знову оновлюємо, щоб зміни набрали чинності:
sudo update-grub2
Перезавантажтесь і йдіть... Тепер все повинно працювати. Очевидно, що це справедливо лише для дистрибутивів, у яких доступно кілька ядер, якщо у вас є лише одне, то цього зробити не можна, це логічно ... Ось чому завжди добре не відкидати старі ядра після оновлення, вони можуть служити як резервне копіювання в будь-який час.
Це позбавить вас від завантаження, налаштування та компіляції нового ядра вручну для встановлення на вашому дистрибутиві. Не забудьте залишити свої коментарі з сумнівами або конкретними випадками, коли у вас виникли проблеми після оновлення до нового ядра ...