セッション内で nouveau と nvidia の独自ドライバーを切り替えたいので、カーネルを起動するときに nomodeset を使用します。
ただし、nouveau はロードされず、kms が有効になっていないというメッセージが表示されます (xorg.log の抜粋):
(II) NOUVEAU driver Date: Tue Mar 16 13:08:37 2010 +1000
(II) NOUVEAU driver for NVIDIA chipset families :
RIVA TNT (NV04)
RIVA TNT2 (NV05)
GeForce 256 (NV10)
GeForce 2 (NV11, NV15)
GeForce 4MX (NV17, NV18)
GeForce 3 (NV20)
GeForce 4Ti (NV25, NV28)
GeForce FX (NV3x)
GeForce 6 (NV4x)
GeForce 7 (G7x)
GeForce 8 (G8x)
(II) Primary Device is: PCI 01@00:00:0
drmOpenDevice: node name is /dev/dri/card0
drmOpenDevice: open result is 7, (OK)
drmOpenByBusid: Searching for BusID pci:0000:01:00.0
drmOpenDevice: node name is /dev/dri/card0
drmOpenDevice: open result is 7, (OK)
drmOpenByBusid: drmOpenMinor returns 7
drmOpenByBusid: drmGetBusid reports pci:0000:01:00.0
(II) [drm] nouveau interface version: 0.0.15
(EE) [drm] KMS not enabled
(EE) No devices detected.
lsmod は次のとおりです:
$ lsmod | grep nouv
nouveau 353208 0
ttm 40978 1 nouveau
drm_kms_helper 20369 1 nouveau
drm 143329 3 nouveau,ttm,drm_kms_helper
i2c_algo_bit 4225 1 nouveau
i2c_core 15819 5 nouveau,drm_kms_helper,drm,i2c_i801,i2c_algo_bit
button 4650 1 nouveau
何か見落としているのでしょうか、それとも KMS なしで nouveau を使用することはできないのでしょうか? 少し調べてみたところ、見つけたものはすべてカーネルで kms を有効にすることを示しているようです。
Linux zen 2.6.32-5-xen-amd64 #1 SMP Tue Jun 14 12:46:30 UTC 2011 x86_64 GNU/Linux
答え1
https://wiki.archlinux.org/index.php/Nouveau#KMS
Nouveau ドライバーにはカーネル モード設定 (KMS) が必要です。詳細については、KernelModeSetting ページを参照してください。
これは Arch wiki からの引用ですが、すべてのシステムに当てはまります。KMS なしで nouveau を使用することはできません。
答え2
nouveau ドライバーを実行するには KMS が必要なので、grub のカーネル ブート ラインに nomodeset が設定されている場合は使用できません。
起動後にドライバーを削除する正しい方法は、ここで説明するように、フレームバッファーをドライバーから切断することです。