web-dev-qa-db-ja.com

Xサーバーのセットアップ時にVGAを選択する方法は?

VGAには2つのオプションがあります。

lspci | grep VGA
00:02.0 VGA compatible controller: Cirrus Logic Gd 5446
00:03.0 VGA compatible controller: NVIDIA Corporation GK104GL [GRID K520] (rev a1)

これは、Amazon EC2で実行されているUbuntuのインスタンスです。

Xserverを開くと、次のメッセージが表示されます。

(WW) CIRRUS: More than one matching Device section found: Autoconfigured Video Device cirrus

実際、Xサーバーは開いて動作します。しかし、「シーラスロジック」のリソースを使用します。 Xサーバーを開くときに、必要なVGAを選択できるようにします。それ、どうやったら出来るの?

  • PS:ここでの最終目標は、NVIDIAのOpenGLを使用することです。これは、Amazon AWSで実行されているUbuntuです。 GPUがあるので、OpenGLを使用する方法があるはずです。

  • PS2:Cirrus VGAを無効にすることも大歓迎です。それを行う方法はありますか?

3
Wagner Patriota

だから、Amazonが提供するUbuntu 14.04 AMI ubuntu-trusty-14.04-AMD64ですべてを実行できるようにしました。以下は私のセットアップコードです。 Googleで見つけられるように、古い回答も下に添付しました。

    # setup kernel
    Sudo apt-get update
    Sudo apt-get install -y gcc make linux-generic

    # install X server and OpenGL tools
    Sudo apt-get install -y xserver-xorg mesa-utils

    # disable Nouveau
    # via http://altinukshini.wordpress.com/2011/07/28/how-to-install-nvidia-drivers-in-ubuntu-linux/
    Sudo echo 'blacklist nouveau' >> /etc/modprobe.d/blacklist.conf
    Sudo echo 'options nouveau modeset=0' >> /etc/modprobe.d/blacklist.conf
    echo options nouveau modeset=0 | Sudo tee -a /etc/modprobe.d/nouveau-kms.conf
    Sudo update-initramfs -u

    # reboot to get kernel update and nouveau disabling activated
    Sudo reboot now



    # install NVIDIA drivers

    # version was chosen because was "Latest Long Lived Branch version", which sounds stable
    # resources:
    #   http://docs.aws.Amazon.com/AWSEC2/latest/UserGuide/using_cluster_computing.html
    #   http://www.nvidia.com/object/unix.html
    #   http://us.download.nvidia.com/XFree86/Linux-x86_64/340.46/README/index.html

    wget http://us.download.nvidia.com/XFree86/Linux-x86_64/340.46/NVIDIA-Linux-x86_64-340.46.run
    Sudo /bin/bash ./NVIDIA-Linux-x86_64-340.46.run --accept-license --no-questions --ui=none
    Sudo reboot now



    # setup xorg.conf
    # via https://stackoverflow.com/questions/19856192/run-opengl-on-aws-gpu-instances-with-centos
    Sudo nvidia-xconfig -a --use-display-device=None --virtual=1280x1024

    # add missing BusID
    Sudo sed -i 's/    BoardName      "GRID K520"/    BoardName      "GRID K520"\n    BusID          "0:3:0"/g' /etc/X11/xorg.conf



    # run x server and glxgears as test application

    Sudo /usr/bin/X &
    DISPLAY=:0 glxgears

古い投稿

残念ながら、私はまだ自分自身で答えを見つけていませんが、途中でいくつかのパンくずがあります:

NVIDIAドライバーをインストールしました

# from aws docs http://docs.aws.Amazon.com/AWSEC2/latest/UserGuide/using_cluster_computing.html
Sudo apt-get update
Sudo apt-get install -y linux-generic
Sudo reboot now

wget http://us.download.nvidia.com/XFree86/Linux-x86_64/343.22/NVIDIA-Linux-x86_64-343.22.run
Sudo /bin/bash ./NVIDIA-Linux-x86_64-343.22.run
Sudo reboot now

(nouveauドライバーが原因でエラーが発生した場合は、 hereを確認してください

次にXServerをインストールします

Sudo apt-get install -y xserver-xorg

そして、xconfigを生成します(他の スタックオーバーフローの質問

Sudo nvidia-xconfig -a --use-display-device=None --virtual=1280x1024

奇妙なことに、これにより/ etc/X11/XF86Configにファイルが生成されるため、Xがそれを取得するために/etc/X11/xorg.confにコピーしました。

Xserverを実行すると、次のエラーが表示されます。

Sudo /usr/bin/X :0 &
(WW) CIRRUS: No matching Device section for instance (BusID PCI:0@0:2:0) found

スタックオーバーフローの質問 の1つの答えは、バスを選択するように指示するため、このエラーが発生します。

error setting MTRR (base = 0xe8000000, size = 0x00100000, type = 1) Invalid argument (22)

それがどのような意味でも。ログを振り返ると、明らかにNVIDIAドライバーはまったくロードされていません(試しましたが):

cat /var/log/Xorg.0.log
...
[  3136.163] Loading extension GLX
...
[  3136.163] (II) LoadModule: "nvidia"
[  3136.164] (WW) Warning, couldn't open module nvidia
[  3136.164] (II) UnloadModule: "nvidia"
[  3136.164] (II) Unloading nvidia
[  3136.164] (EE) Failed to load module "nvidia" (module does not exist, 0)

この投稿 は、confでモジュールパスを手動で設定する必要があることを示唆しています。

# find the path (maybe)
Sudo find / | grep nvidia | grep modules
...    
usr/X11R6/lib/modules/
...

# put it into the conf file
vim /etc/X11/xorg.conf
...
Section "Files"
     ModulePath     "/usr/X11R6/lib/modules"
EndSection

とにかく、これは実際にドライバーモジュールをロードしてからクラッシュするようです:

Sudo /usr/bin/X :0 &
...
Loading extension GLX
(EE)
(EE) Backtrace:
(EE) 0: /usr/bin/X (xorg_backtrace+0x48) [0x7f65c7ea9d28]
(EE) 1: /usr/bin/X (0x7f65c7d01000+0x1aca19) [0x7f65c7eada19]
(EE) 2: /lib/x86_64-linux-gnu/libpthread.so.0 (0x7f65c6dfe000+0x10340) [0x7f65c6e0e340]
(EE) 3: /usr/X11R6/lib/modules/drivers/nvidia_drv.so (0x7f65bf75b000+0x88cb5) [0x7f65bf7e3cb5]
(EE) 4: /usr/X11R6/lib/modules/drivers/nvidia_drv.so (0x7f65bf75b000+0x69272) [0x7f65bf7c4272]
(EE) 5: /usr/X11R6/lib/modules/drivers/nvidia_drv.so (0x7f65bf75b000+0x55e43a) [0x7f65bfcb943a]
(EE) 6: /usr/bin/X (0x7f65c7d01000+0xaf67b) [0x7f65c7db067b]
(EE) 7: /usr/bin/X (xf86CallDriverProbe+0x5e) [0x7f65c7d89a5e]
(EE) 8: /usr/bin/X (xf86BusConfig+0x46) [0x7f65c7d8a3d6]
(EE) 9: /usr/bin/X (InitOutput+0x993) [0x7f65c7d982b3]
(EE) 10: /usr/bin/X (0x7f65c7d01000+0x596bb) [0x7f65c7d5a6bb]
(EE) 11: /lib/x86_64-linux-gnu/libc.so.6 (__libc_start_main+0xf5) [0x7f65c583dec5]
(EE) 12: /usr/bin/X (0x7f65c7d01000+0x44dde) [0x7f65c7d45dde]
3
Freenerd