Instalasi dan Konfigurasi Driver Akselerasi NVIDIA OpenGL di Linux

Oleh Iwan Setiawan
http://www.duniasemu.org/writings
Telah dicoba di Slackware 8.1-kernel 2.4.18 dan Slackware 9.0-kernel 2.4.20

2003/07/02 21:23:54 - Minor update
2003/05/14 18:26:00 - Update langkah ke-4 pada Instalasi dan Konfigurasi
2003/04/26 18:13:17 - Update bagian Percobaan
2003/04/17 17:36:28 - Rilis pertama

Berdasarkan pengalaman penulis menggunakan driver bawaan dari XFree86 4.x untuk aplikasi berbasis grafis terutama game memperlihatkan belum optimalnya driver tersebut untuk kartu grafis yang dipunyai penulis. Kebetulan penulis menggunakan kartu grafis dengan chipset NVIDIA Vanta.
Beberapa bulan yang silam penulis pernah mencoba menjalankan game Quake III Arena di Linux dan hasilnya kurang memuaskan, game ini tidak berjalan bagus.
Lalu penulis mencoba mencari informasi mengenai hal ini dan mendapatkan bahwa untuk menjalankan aplikasi dan game OpenGL kita harus menginstal driver akselerasi NVIDIA yang khusus dan dapat di-download di website NVIDIA.

Pada waktu itu penulis mencoba men-download driver tersebut tetapi rusak, besarnya kira-kira 6-7 MB, terlalu besar untuk dimasukkan ke dalam disket.
Penulis mengurungkan niat untuk men-download-nya lagi karena koneksi Internet penulis yang kurang bagus dan banyaknya tugas kuliah pada saat itu.
Baru-baru ini penulis sempat bermain ke Internet center kampus tempat penulis bekerja dulu yaitu di MatraLintasNet 2 di Undip pleburan, Semarang dan men-download driver NVIDIA ini. :)

Dengan menginstal driver akselerasi NVIDIA diharapkan dapat memberikan dukungan akselerasi dan performansi OpenGL pada NVIDIA Graphics processing Unit (GPU) di Linux Anda. Driver akselerasi ini mendukung sebagian besar chipset NVIDIA.

Kebutuhan Instalasi

Untuk menginstal driver akselerasi NVIDIA dibutuhkan: Kebutuhan untuk mem-build modul kernel NVIDIA: Untuk kernel versi prerelease contoh 2.4.3-pre2 dan juga versi development seperti 2.3.x or 2.5.x tidak didukung oleh driver akselerasi ini.

Instalasi dan Konfigurasi

Langkah-langkah instalasi:
  1. Download driver NVIDIA di nvidia.com.
    Pada saat penulis menulis artikel ini versinya 1.0-4349 tertanggal 2003/03/27.
    Untuk arsitektur Intel 32 bit dapat di-download langsung di http://download.nvidia.com/XFree86/Linux-x86/1.0-4349/NVIDIA-Linux-x86-1.0-4349.run.
    Di situs NVIDIA tersebut terdapat beberapa driver sesuai dengan arsitektur prosesornya yaitu Intel 32, Intel 64, AMD, dan lain-lain. Penulis menggunakan driver IA32. Ada banyak chipset yang didukung oleh driver akselerasi NVIDIA, silakan lihat di bawab ini.
    NAMA CHIP NVIDIA               DEVICE PCI ID
    
    - RIVA TNT                     0x0020
    - RIVA TNT2                    0x0028
    - RIVA TNT2 Ultra              0x0029
    - Vanta                        0x002C
    - RIVA TNT2 Model 64           0x002D
    - Aladdin TNT2                 0x00A0
    - GeForce 256                  0x0100
    - GeForce DDR                  0x0101
    - Quadro                       0x0103
    - GeForce2 MX/MX 400           0x0110
    - GeForce2 MX 100/200          0x0111
    - GeForce2 Go                  0x0112
    - Quadro2 MXR/EX/Go            0x0113
    - GeForce2 GTS                 0x0150
    - GeForce2 Ti                  0x0151
    - GeForce2 Ultra               0x0152
    - Quadro2 Pro                  0x0153
    - GeForce4 MX 460              0x0170
    - GeForce4 MX 440              0x0171
    - GeForce4 MX 420              0x0172
    - GeForce4 MX 440-SE           0x0173
    - GeForce4 440 Go              0x0174
    - GeForce4 420 Go              0x0175
    - GeForce4 420 Go 32M          0x0176
    - GeForce4 460 Go              0x0177
    - Quadro4 550 XGL              0x0178
    - GeForce4 440 Go 64M          0x0179
    - Quadro4 NVS                  0x017A
    - Quadro4 500 GoGL             0x017C
    - GeForce4 410 Go 16M          0x017D
    - GeForce4 MX 440 with AGP8X   0x0181
    - GeForce4 MX 440SE with AGP8X 0x0182
    - GeForce4 MX 420 with AGP8X   0x0183
    - Quadro4 580 XGL              0x0188
    - Quadro4 280 NVS              0x018A
    - Quadro4 380 XGL              0x018B
    - GeForce4 448 Go              0x0186
    - GeForce4 488 Go              0x0187
    - GeForce2 Integrated GPU      0x01A0
    - GeForce4 MX Integrated GPU   0x01F0
    - GeForce3                     0x0200
    - GeForce3 Ti 200              0x0201
    - GeForce3 Ti 500              0x0202
    - Quadro DCC                   0x0203
    - GeForce4 Ti 4600             0x0250
    - GeForce4 Ti 4400             0x0251
    - GeForce4 Ti 4200             0x0253
    - Quadro4 900 XGL              0x0258
    - Quadro4 750 XGL              0x0259
    - Quadro4 700 XGL              0x025B
    - GeForce4 Ti 4800             0x0280
    - GeForce4 Ti 4200 with AGP8X  0x0281
    - GeForce4 Ti 4800 SE          0x0282
    - GeForce4 4200 Go             0x0286
    - Quadro4 980 XGL              0x0288
    - Quadro4 780 XGL              0x0289
    - Quadro4 700 GoGL             0x028C
    - NV30                         0x0300
    - GeForce FX 5800 Ultra        0x0301
    - GeForce FX 5800              0x0302
    - Quadro FX 2000               0x0308
    - Quadro FX 1000               0x0309
    		    (dari README.txt)
    
    Berdasarkan dokumentasi dari driver akselerasi NVIDIA, untuk chip RIVA 128/128ZX hanya didukung oleh driver open source 'nv' dari XFree86.

    Gunakan perintah 'cat /proc/pci' atau 'lspci -n' jika anda ingin mengecek ID dari device PCI anda untuk perbandingan dengan tabel di atas.
    Lihat device dengan vendor id "10de", contoh:

    	01:00.0 Class 0300: 10de:002c (rev 15)
    
  2. Masuk ke modus baris perintah (command line).
    Sebelum menjalankan installer driver ini lebih baik anda menggunakan antarmuka baris perintah. Ini dilakukan agar instalasi driver dapat berjalan dengan baik. Penulis pernah mencoba menginstal di atas X Window yang sedang berjalan dan hasilnya beberapa aplikasi yang sedang dijalankan tiba-tiba mati dan tidak bisa dijalankan lagi serta sempat membuat X server hang. Kemudian penulis masuk ke modus baris perintah dan juga mematikan X server yang sedang berjalan dan melakukan instalasi dengan baik.
    Jika default boot anda adalah modus grafis, ketikkan perintah 'init 3' pada shell untuk menggunakan modus baris perintah dengan dukungan jaringan tanpa X.
  3. Set permission berkas NVIDIA-Linux-x86-1.0-4349.run agar dapat dieksekusi.
    $ chmod u+x NVIDIA-Linux-x86-1.0-4349.run
    
  4. Jalankan NVIDIA-Linux-x86-1.0-4349.run sebagai root.
    Jika menggunakan account pengguna biasa, Anda tidak akan dapat menginstal driver tersebut dan installer akan memberikan pesan kesalahan.
    # ./NVIDIA-Linux-x86-1.0-4349.run
    
    Silakan klik link di bawah ini untuk melihat gambarnya.

    error_root.png

    exit_user.png

    Jadi jalankan installer sebagai root. Gunakan perintah su untuk switch ke root kemudian jalankan kembali NVIDIA-Linux-x86-1.0-4349.run.

    su_root.png

    Jika anda ingin mengekstrak driver-nya saja tanpa langsung menjalankan installer-nya:

    $ ./NVIDIA-Linux-x86-1.0-4349.run --extract-only
    
    atau
    $ sh NVIDIA-Linux-x86-1.0-4349.run --extract-only
    
    Ketika installer dijalankan dan anda menpunyai pustaka ncurses terinstal maka installer akan masuk ke antarmuka berbasis ncurses. Jika tidak ada maka installer akan masuk ke modus baris perintah.
  5. Tunggulah script ini mengekstrak archive driver akselerasi NVIDIA dan menjalankan installer-nya yaitu `nvidia-installer`.
  6. Muncul jendela installer dan lisensi dari NVIDIA untuk pengguna. Silakan dibaca jika setuju tekan 'Accept'.

    license.png

  7. Modul kernel driver NVIDIA mempunyai lapisan antarmuka kernel yang harus dikompilasi spesifik untuk konfigurasi dan versi kernel yang terinstal. Distribusi source code dari NVIDIA pada lapisan antarmuka kernel ini disertakan juga precompiled-nya untuk beberapa distro yaitu Red Hat Linux, Linux-Mandrake, dan S.u.S.E.

    Installer akan memeriksa apakah ada precompiled antarmuka kernel untuk kernel yang terinstal. Jika ditemukan maka antarmuka kernel tersebut akan di-link ke kernel modul NVIDIA dan anda akan mendapatkan secara langsung modul kernel yang sesuai dengan kernel yang terinstal.
    Jika tidak ada maka installer akan menanyakan apakah anda akan men-download antarmuka kernel precompiled pada ftp server NVIDIA dan men-download-nya.

    download_iface.png

    Jika anda tidak ingin atau tidak punya koneksi ke internet maka bisa dilakukan kompilasi antarmuka kernel yang secara otomatis akan dilakukan installer. jadi anda tinggal tekan 'Ok' dan duduk manis. ;)
    Anda harus punya kernel-header dan kernel-source yang sesuai dan terinstal untuk melakukan kompilasi.

    no_precompiled.png

  8. Kompilasi antarmuka dan modul kernel segera dilakukan oleh installer setelah anda menekan tombol 'Ok'.

    kernel_mod.png

  9. Instalasi komponen driver NVIDIA oleh installer.

    install_driver.png

  10. Setelah itu dilakukan perintah ldconfig dan beberapa perintah lain oleh installer.

    ldconfig.png

  11. Instalasi driver selesai.

    complete.png

  12. Pastikan baris 'alias char-major-195 nvidia' sudah ada dalam modules.conf atau conf.modules. Biasanya secara otomatis akan ditambahkan oleh installer.
  13. Edit berkas XF86config atau XF86Config-4.
    Berkas ini biasanya terdapat di direktori /etc/X11/. Pertama kali X server dijalankan berkas konfigurasi XF86Config-4 akan digunakan, jika berkas tersebut tidak ada maka digunakan berkas XF86Config. Penulis menggunakan XFree86 versi 4.2.0.
    Pada artikel ini dilakukan perubahan yang diperlukan saja di berkas XF86config, untuk option lain lihat README.txt.
    Pada Section "Module", pastikan ada baris:
            Load   "glx"
    
    Hilangkan baris:
            Load  "dri"
            Load  "GLcore"
    
    Pada Section "Device":
            Driver "nv"
        (atau Driver "vesa")
    
    ganti dengan
            Driver "nvidia"
    
  14. Konfigurasi dukungan kernel modul NVIDIA untuk AGP.
    Masukkan pada Section "ServerFlags" baris:
    	Option "NvAGP" "[nilai]"
    
    Ganti nilai dengan salah satu angka dari 0 sampai dengan 3.
    0 untuk men-disable agp.
    1 untuk menggunakan dukungan internal AGP NVIDIA, jika mungkin.
    2 untuk menggunakan agpgart, jika mungkin.
    3 untuk menggunakan dukungan agp yang ada yaitu mencoba agpgart, jika tidak bisa akan dicoba AGP NVIDIA.
    Dukungan internal AGP NVIDIA tidak dapat bekerja jika agpgart terkompilasi statik dalam kernel atau sebagai modul yg sudah di-load sewaktu boot
    Jadi lebih baik kompilasi agpgart sebagai modul dan jangan di-load ketika menggunakan AGP NVIDIA.
    Beberapa chipset AGP yang didukung AGP NVIDIA: (untuk chipset selain di bawah ini silakan menggunakan modul agpgart)
    - Intel 440LX
    - Intel 440BX
    - Intel 440GX
    - Intel 815 ("Solano")
    - Intel 820 ("Camino")
    - Intel 830
    - Intel 840 ("Carmel")
    - Intel 845 ("Brookdale")
    - Intel 845G
    - Intel 850 ("Tehama")
    - Intel 860 ("Colusa")
    - AMD 751 ("Irongate")
    - AMD 761 ("IGD4")
    - AMD 762 ("IGD4 MP")
    - VIA 8371
    - VIA 82C694X
    - VIA KT133
    - VIA KT266
    - RCC 6585HE
    - Micron SAMDDR ("Samurai")
    - Micron SCIDDR ("Scimitar")
    - nForce AGP
    - ALi 1621
    - ALi 1631
    - ALi 1647
    - ALi 1651
    - ALi 1671
    - SiS 630
    - SiS 633
    - SiS 635
    - SiS 645
    - SiS 730
    - SiS 733
    - SiS 735
    - SiS 745
    
  15. Setelah selesai anda bisa menggunakan X dengan menjalankan X server.
    $ startx
    
    atau
    # init 4 (pada Slackware)
    # init 5 (pada Red Hat Linux, Linux-Mandrake, dll)
    
    Anda akan mendapatkan logo NVIDIA sekilas ketika menjalankan X server. Itu artinya X server Anda sudah menggunakan driver dan pustaka akselerasi OpenGL NVIDIA.
Anda bisa menggunakan nvidia-installer untuk uninstall driver, auto-download updated driver, dan lain-lain di waktu mendatang.

Percobaan

Setelah kita menginstal driver akselerasi NVIDIA OpenGL, kita akan mencoba untuk menjalankan aplikasi dan game yang menggunakan OpenGL.
Aplikasi atau game ini secara otomatis akan menggunakan pustaka OpenGL NVIDIA yang baru.
Untuk informasi saja mengenai spesifikasi komputer penulis (ada yang pernah menanyakannya): Aplikasi dan game yang penulis coba: Lihat perubahannya, bandingkan dengan sebelum menginstal driver akselerasi. Lebih halus, cepat dan bagus. Keren kalo penulis bilang. Apalagi penulis dapat menjalankan Quake III Arena yang notabene sebagai game untuk perbandingan performansi grafis yang tinggi. Quake III Arena dapat berjalan dengan mulus, lebih cepat, fullscreen dengan resolusi 1024x768.

Antarmuka proc

Ada beberapa antarmuka untuk proc yang ada di dalam sistem berkas /proc yang akan memberikan informasi mengenai driver yang terinstal (dalam hal ini NVIDIA) dan status AGP. Informasi tersebut ada pada berkas di /proc/driver/nvidia/.
Beberapa gambaran pada berkas-berkas ini: (sesuai dengan README.txt driver akselerasi NVIDIA) Semoga artikel ini berguna bagi kita yang mempunyai kartu grafis dengan chipset NVIDIA tetapi tidak dapat berjalan optimal untuk menjalankan aplikasi dan game OpenGL di Linux.
Saran, kritik, dan masukan bisa dialamatkan ke stwn[at]duniasemu[dot]org.

URL

Referensi