Arch Linux - Как мне понизить версию моего ядра?
Я только что сделал обновление системы, которое включало мое ядро. После чего у меня сломался вайфай. После некоторого google'а кажется, что я не единственный человек, с которым это случилось.
Драйверы RT2860 не очень хорошо работают с ядром 2.6-32.
Итак, как я могу понизить версию своего ядра? У меня все еще есть старый файл в моем кэше pacman, но я не уверен, как удалить текущий и установить старый.
Я пытался сделать 'pacman -Rsn kernel26[firmware|headers], но OSS (звуковая система) жаловалась, что для обеспечения ему нужны * заголовки.
Безопасно ли просто установить старое ядро26* (прошивка, заголовки, база) и затем удалить текущее? Как мне это сделать?:/
4 ответа
По моему опыту, можно понизить версию ядра. В последнее время мне пришлось много делать из-за проблемы с lirc и новыми версиями ядра. Мой пульт Hauppauge PVR-250 больше не работает после установки последней версии ядра. На самом деле, я просто сделал это несколько часов назад;).
Переустановка старой версии ядра:
Предварительное условие: вы должны где-нибудь найти двоичный пакет старого ядра. Если у вас его нет, вам почти не повезло (если вы не хотите сами компилировать старые пакеты).
О, боже, где мне взять старый пакет, спросите вы? Есть несколько возможностей, перечисленных в вики-ссылке, размещенной в одном из других ответов. Я обычно использую возможность поиска в кэше пакетов pacman (/var/cache/pacman/pkg). У меня также всегда есть недавняя резервная копия этого каталога, поэтому никакие пакеты не теряются, если я очищаю кеш.
Если у вас есть старый пакет ядра, вы можете установить его, используя pacman -U package-name.pgk.tar.gz
, Скорее всего, после этого вы получите ошибку зависимости. Каждый пакет, указанный в этой ошибке, также должен быть понижен. Итак, вернитесь в кеш пакетов, найдите именованный пакет в более старой версии и попробуйте установить его, снова вызвав pacman, на этот раз со старым ядром и вновь найденным пакетом (pacman -U package-name.pgk.tar.gz other-package.pkg.tar.gz
).
Вы должны будете повторять эти шаги, пока pacman не будет успешным. После этого вы сможете перезагрузить систему, и будет загружено новое (на самом деле старое) ядро. Если pacman скажет вам, что он не может удалить пакет, который несовместим со старым ядром, вам придется удалить его вручную (pacman -Rd conflicting-package.pkg.tar.gz
), перед установкой старого ядра. Но будьте осторожны с этим шагом, он может сломать вашу систему.
В моем случае мне нужно понизить 7 пакетов, включая ядро, glibc, kernel-headers, lirc и два пакета моего драйвера nvidia.
В принципе, единственный большой недостаток в Archlinux - это проблема понижения. Если вы очистили кеш вашего пакета, может быть очень сложно найти нужный бинарный пакет. Мне никогда не удавалось найти нужный мне пакет на одном из зеркальных серверов.
Поскольку Archlinux является в значительной степени ультрасовременным дистрибутивом с очень актуальными пакетами и частыми выпусками, мне очень часто нужна функция понижения версии. Я действительно надеюсь, что ребята из Archlinux найдут способ сделать это немного легче в будущем.
Это должно покрыть, как понизить пакет с Pacman. Я знаю, что я сделал это однажды (возможно, два года назад), и это сработало хорошо (насколько я помню).
Вопросы, специфичные для Arch, вероятно, лучше задать на доске объявлений Arch Linux или посмотреть в их вики, так как они относятся к Arch и именно здесь вы найдете экспертов Arch Linux.
Я также заметил, что есть проблема с моим чипом rt2860 и ядром 2.6.32. Запустив dmesg, я получаю следующую ошибку:
--> Error 2 opening /etc/Wireless/RT2860STA/RT2860STA.dat
Я также заметил, что чип был переименован из ra0 в wlan0. Сначала это изменение и перезагрузка исправили мои ошибки, и чип все время держал соединение. Однако, по какой-то неизвестной причине, это ..... Хорошо, ну цвет меня смутил. При наборе текста интернет неожиданно подключился на моем другом компьютере. Он держит связь, и я в замешательстве.
Если вы еще не очистили старые ядра, они все равно должны быть доступны в меню grub. У меня тоже была эта проблема, когда я установил новое ядро, мой драйвер тоже не работал. Простое исправление - поместить опцию по умолчанию в меню grub в нужное ядро.
Если вы используете grub 2, это будет способ проверить, какой вариант используется по умолчанию.
jeffrey @ ubuntu-linux: ~ $ head / etc / default / grub
Если вы измените этот файл, запустите update-grub, чтобы обновить /boot/grub/grub.cfg.
GRUB_DEFAULT = 0
GRUB_HIDDEN_TIMEOUT = 0
GRUB_HIDDEN_TIMEOUT_QUIET = верно
Вы можете очень легко изменить значение grub_default, 0 будет означать первый вариант, 2 должно быть ранее используемым ядром.
gksudo gedit /etc/default/grub
Измените значение, сохраните его и запустите
sudo update-grub
Если вы используете более старую версию grub
Вы должны отредактировать этот файл: /boot/grub/menu.lst
Сделайте те же шаги, но grub_default просто "по умолчанию" в этом файле. Запустите скрипт update-grub, перезагрузитесь и все в порядке.