web-dev-qa-db-ja.com

Arch Linux-カーネルをダウングレードするにはどうすればよいですか?

カーネルを含むシステムアップグレードを実行しました。その後、私のwifiが壊れました。いくつかのグーグルの後で、これが起こったのは私だけではないようです。

RT2860ドライバーは、2.6-32カーネルではうまく機能しません。

では、どうすればカーネルをダウングレードできますか?パックマンのキャッシュに古いものがまだありますが、現在のキャッシュを削除して古いものをインストールする方法がわかりません。

'pacman -Rsn kernel26 [firmware | headers]を試してみましたが、OSS(サウンドシステム)は依存関係として* headersが必要だと不平を言っていました。

古いkernel26 *(ファームウェア、ヘッダー、ベース)をインストールしてから、現在のカーネルを削除しても安全ですか?どうすればこれを行うことができますか? :/

8
EEEUser

私の経験では、カーネルをダウングレードしても安全です。 lirc と新しいカーネルバージョンの問題のため、最近多くのことをしなければなりませんでした。最近のカーネルバージョンをインストールした後、Hauppauge PVR-250リモートが機能しなくなりました。実際、私は数時間前にそれをやっただけです;)。

古いカーネルバージョンの再インストール:

前提条件:実際には、古いカーネルのバイナリパッケージをどこかで見つける必要があります。持っていない場合は、運が悪いです(自分で古いパッケージをコンパイルしたくない場合)。

ああ、古いパッケージはどこで入手できますか? wiki link にリストされているいくつかの可能性があり、他の回答の1つに投稿されています。私は通常、pacmanパッケージキャッシュ(/ var/cache/pacman/pkg)を検索する可能性に固執します。また、私は常にこのディレクトリの最新のバックアップを持っているので、キャッシュをクリアしてもパッケージが失われることはありません。

古いカーネルパッケージをお持ちの場合は、pacman -U package-name.pgk.tar.gzを使用してインストールできます。その後、依存関係エラーが発生する可能性があります。このエラーにリストされているすべてのパッケージもダウングレードする必要があります。したがって、パッケージキャッシュに戻り、古いバージョンの名前付きパッケージを見つけて、今度は古いカーネルと新しく見つかったパッケージ(pacman -U package-name.pgk.tar.gz other-package.pkg.tar.gz)でpacmanを呼び出して、インストールを試みます。

Pacmanの実行が成功するまで、この手順を繰り返す必要があります。その後、システムを再起動できるようになり、新しい(実際には古い)カーネルがロードされます。パックマンから、古いカーネルと互換性のないパッケージを削除できないと言われた場合は、古いカーネルをインストールする前に、手動で削除する必要があります(pacman -Rd conflicting-package.pkg.tar.gz)。ただし、この手順には注意してください。システムが破損する可能性があります。

私の場合、kernel、glibc、kernel-headers、lirc、およびnvidiaドライバーの2つのパッケージを含む7つのパッケージをダウングレードする必要があります。

考えてみると、Archlinuxの唯一の大きな欠陥は実際にはダウングレードの問題です。パッケージキャッシュをクリアした場合、必要なバイナリパッケージを見つけるのは非常に難しい場合があります。ミラーサーバーの1つで必要なパッケージを見つけることに成功したことはありません。

Archlinuxは非常に最新のパッケージと頻繁なリリースを備えた最先端のディストリビューションであるため、ダウングレード機能が頻繁に必要になります。 Archlinuxの人たちが将来これを少し簡単にする方法を見つけられることを本当に望んでいます。

2
Customizer

これは、パックマンで パッケージをダウングレードする方法 をカバーするはずです。私は一度(おそらく2年前)にそれを行ったことがわかっており、それは(覚えている限り)うまくいきました。

これがArchに固有の質問は、おそらくArch Linuxで尋ねる方がよいでしょう メッセージボード またはそれらの wiki で調べてください。Arch固有であり、そこにArchがあります。 Linuxの専門家。

1
shf301

古いカーネルをまだクリーンアップしていない場合でも、それらは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 = true

Grub_defaultの値は非常に簡単に変更できます。0は最初のオプションを示し、2は以前に使用されたカーネルでなければなりません。

gksudo gedit /etc/default/grub

値を変更して保存し、実行します

Sudo update-grub

古いバージョンのgrubを使用している場合

このファイルを編集する必要があります:/boot/grub/menu.lst

同じ手順を実行しますが、grub_defaultは、このファイルでは単なる「デフォルト」です。 update-grubスクリプトを実行し、再起動すれば問題ありません。

0

また、rt2860チップとカーネル2.6.32に問題があることに気づきました。 dmesgを実行すると、次のエラーが発生します。

--> Error 2 opening /etc/Wireless/RT2860STA/RT2860STA.dat

また、チップの名前がra0からwlan0に変更されていることにも気づきました。最初、この変更と再起動でエラーが修正され、チップはずっと接続を維持していました。しかし、なんらかの理由で、それは.....わかりました、よく私を混乱させてください。これを入力しているときに、他のコンピュータでインターネットが突然接続されました。接続を保持しているので、まあ、私は混乱しています。

0
Ryan Rosenbaum