web-dev-qa-db-ja.com

カーネルのアップグレード後にATI fglrxドライバーを修正する方法

12.04.3から12.04.4 lts saucyスタックにアップグレードしました。

Sudo apt-get install --install-recommends linux-generic-lts-saucy xserver-xorg-lts-saucy libgl1-mesa-glx-lts-saucy

これにより、以前の3.8に合わせて3.11カーネルがインストールされました。ただし、ログインすると、フォールバックモードになり、Xorg.0.logからfglrxが表示されなくなります。

Loading extension GLX
FATAL: Module fglrx not found.
(WW) fglrx: No matching Device section for instance (BusID PCI:0@0:1:1) found
FATAL: Module fglrx not found.
Loading extension FGLRXEXTENSION

私はそれを直接ロードすることはできません:

 > Sudo modprobe fglrx
FATAL: Module fglrx not found.

古い3.8カーネルで起動すると、すべてがhunkey-doreyになります。全く問題ありません。

これはある種のdkmの問題かもしれません。/lib/modulesには次のものがあります。

drwxr-xr-x 4 root root 4096 Feb 10 20:43 3.8.0-35-generic
drwxr-xr-x 4 root root 4096 Feb 24 20:36 3.11.0-17-generic

しかしながら:

 > ls -l /var/lib/dkms/fglrx/13.251/
total 8
drwxr-xr-x 3 root root 4096 Feb  5 22:05 3.8.0-35-generic
drwxr-xr-x 4 root root 4096 Feb 24 20:36 build
lrwxrwxrwx 1 root root   21 Dec 27 17:06 source -> /usr/src/fglrx-13.251

そこに3.11カーネルエントリがあるべきではないのですか? dkmsを更新して、インストールされたばかりの新しいカーネルを表示するにはどうすればよいですか?それとも問題ではありませんか?

1
fig

とった! :-)

Sudo gedit /usr/src/fglrx-13.251/kcl_acpi.c

ファイルの最後の3行を削除します。

     ((acpi_table_handler)handler)(hdr);
     return KCL_ACPI_OK;
}

それらを次のものに置き換えます。

#if LINUX_VERSION_CODE >= KERNEL_VERSION(3,9,1)
    ((acpi_tbl_table_handler)handler)(hdr);
#else
    ((acpi_table_handler)handler)(hdr);
#endif
    return KCL_ACPI_OK;
}

次に実行します:

Sudo dkms install -m fglrx -v 13.251 -k 3.11.0-17-generic

次に再起動します。私のために働いた-カーネル3.11とfglrxが動作するようになりました!

(このページからこれを解決しました: https://Gist.github.com/moldcraft/8116528

2
fig

コメントできません。だから、ここに「答え」のようなものがあります...

カーネルのアップグレードにより、12.04年前(1年以上)にfglrxモジュールの再生成が停止しました。再起動後(新しいカーネルをアクティブにするため)、lightdmはログインを許可しますが、仮想画面サイズに関連するエラーをすぐに受け取り、ログイン画面に戻ります。プライマリモニターの解像度は非常に低いです。セカンダリモニターに黒が表示されます。

私の解決策は、fglrxをパージし、fglrx debパッケージを再インストールすることです。

  • Ctrl + Alt + F1
  • ログインする。
  • dpkg -l | grep fglrx
  • Sudo apt-get purge <packages output from previous command>
  • cd /path/to/generated/fglrx*.deb
  • Sudo dpkg -i fglrx*.deb

この「解決策」では、新しいカーネルをインストールするたびにそれを繰り返す必要があります。

@fig新しいカーネルがあるたびに 'kcl_acpi.c'を再編集する必要がありますか?新しいfglrxがあるたびに?

1
d-man97

askubuntu.comで誤解を招く答えが見つかりました

問題:

   tilo@t-ubuntu:~$ fglrxinfo
  X Error of failed request:  BadRequest (invalid request code or no such operation)
  Major opcode of failed request:  155 (ATIFGLEXTENSION)
  Minor opcode of failed request:  66 ()
  Serial number of failed request:  13
  Current serial number in output stream:  13

あなたの説明を使用すると、私は.11 saucyで12.04.4スタックバックを得ました.

「kcl_acpi.c」ファイルの最後を編集した後、実行しました

Sudo dkms install -m fglrx -v 13.251 -k 3.11.0-19-generic 

Refとして出力

tilo@t-ubuntu:~$ Sudo dkms install -m fglrx -v 13.251 -k 3.11.0-19-generic 

Kernel preparation unnecessary for this kernel.  Skipping...

Building module:
cleaning build area....
cd /var/lib/dkms/fglrx/13.251/build; sh make.sh --nohints --uname_r=3.11.0-19-generic --norootcheck.....
cleaning build area....

DKMS: build completed.

fglrx.ko:
Running module version sanity check.
 - Original module
   - No original module exists within this kernel
 - Installation
   - Installing to /lib/modules/3.11.0-19-generic/updates/dkms/

depmod.....

DKMS: install completed.
tilo@t-ubuntu:~$ 

今fglrxinfo

tilo@t-ubuntu:~$ fglrxinfo
display: :0  screen: 0
OpenGL vendor string: Advanced Micro Devices, Inc.
OpenGL renderer string: ATI Mobility Radeon HD 5800 Series
OpenGL version string: 4.3.12618 Compatibility Profile Context 13.251

「互換性プロファイルコンテキスト9.012」の前にありましたが、ATI Webサイトから再インストールしようとしました。

0
TiloBunt