Tìm kiếm Blog này

Thứ Bảy, 31 tháng 12, 2016

Hướng dẫn cài driver đồ họa gốc của NVIDIA trên fedora 23/24/25


Đầu tiên là source: https://www.if-not-true-then-false.com/2015/fedora-nvidia-guide/
lấy từ if-not-true-then-false, rất đắt lực dành cho người dùng fedora.
bản fedora em đang xài là 25, nên trong bài dịch bản khác thì không biết nhưng bản 25 cùng con card giga gt 420 thì thành công.


Bắt đầu:

Bài viết sẽ hướng dẫn cài đặt driver gốc tải trực tiếp từ nvidia (nVidia proprietary drivers) và cách tắt driver Nouveau (driver mặc định nguồn mở, có sẵn trên fedora, tất nhiên nó sẽ ổn định hơn nhưng khai thác hiệu năng thì không bằng thằng gốc chính chủ). Bài viết dùng cho các loại card GeForce 6/7/8/9/200/300/400/500/600/700/800/900/10.
  • các con card GeForce 400/500/600/700/800/900/10 sẽ dùng driver bản 367.xx hoặc 370.xx hoặc 375.xx.
  • GeForce 8/9/200/300 dùng driver bản 340.xx
  • GeForce 6/7 dùng driver bản 304.xx
(Xin cảm ơn vì các bác đã chịu khó đọc 3 dòng trên vì khi vào trang chủ của Nvidia tải driver thì có phần chọn tên card và OS thì nó cũng ra phiên bản phù hợp thôi :)) )
Như nói ở trên, bản hướng dẫn này sẽ dùng driver gốc từ nvidia và dkms để cập nhật kernel (dkms là cái gì thì mượn tạm cái wiki của archlinux link, dkms sẽ được cài từ repo), không phải driver lấy từ các repo (cũng như từ RPMFusion) khác như trong bài hướng dẫn cũ này (link). Tất nhiên cài từ các repo này sẽ dễ dàng hơn nhưng có thể sẽ phát sinh lỗi nghiêm trọng, vì thế chủ nhân bài viết đã hướng dẫn cách cài thủ công này. Người viết bài đã kiểm tra trên các phiên bản 304.xx (patched), 340.xx, 367.xx, 370.xx and 375.xx drivers/cards.

Cùng với DKMS, công việc cập nhật kernel và biên dịch driver nvidia sẽ được tự động hóa. nếu muốn cập nhật driver nvidia hãy download bản mới nhất từ trang chủ nvidia hoặc đơn giản chạy lệnh "nvidia-installer --update" (nó sẽ hoạt động với bản driver mới nhất), nếu cập nhật theo cách này với phiên bản 304.xx or 340.xx, bạn sẽ được bản mới nhất. Vậy nên hãy cập nhật tất cả để xài cho khỏe.

Khi sử dụng hướng dẫn này hãy:
Nếu thất cmn bại: Nói cho người viết bài nếu bác gặp vấn đề nào đó lúc đang cài đặt (reply ở link gốc nhé link, em chỉ là thằng dịch thôi)
Nếu thành công: hãy post hình cái terminal của các bác sau khi chạy mấy cái lệnh này:
nvidia-installer -v |grep version
uname -a
lspci |grep -i VGA
Một thao tác thể hiện sự lịch sự khi dùng tut miễn phí, để người sau có thêm thông tin về tut này.
Trước khi cài đặt nên hãy sao lưu những dữ liệu quan trọng. Đây là chuyện tất nhiên để ứng biến với mọi tình huống gây ra do sự kết hợp giữa card màn hình, các thành phần OS và màn hình, sự kết hợp này sẽ tạo những kết quả "ngoài mong đợi". (thêm mắm dăm muối cho dài, cơ bản là sao lưu dữ liệu cho nó an toàn, và để loại trừ trách nhiệm cho người viết lẫn người dịch :)) ).

1, CHUẨN BỊ CÀI ĐẶT:

1.1, Kiểm tra card có được hỗ trợ hay không ?

Mấy cái này đi nói với mấy bác voz chả khác nào múa rìu qua mắt thợ, thấy lây nhây các bác bỏ qua bước này, tải được đúng cái driver trên trang chủ Nvidia là hết bước này. Em vẫn sẽ dịch cho những người chưa biết.
Lấy cái model con card của các đã:
lspci |grep -E "VGA|3D"
## Example outputs ##
01:00.0 VGA compatible controller: NVIDIA Corporation GF119 [GeForce GT 610] (rev a1)
trong cái output ví dụ thì GT 610 là model con card của các bác. dò xem nó có trong này không ? List of Supported NVIDIA GPU Products. Nếu xuất hiện trong list trước phần 340.xx, thì sử dụng driver bản 367.xx hoặc 370.xx hoặc 375.xx. Nếu nó ở giữ phần 340.xx và 304.xx thì sử dụng driver 340.xx. Còn sau 340.xx thì cứ dùng luôn bản 340.xx.
(Nếu đã đọc xong phần mỏi mắt trên kia thì em chỉ các bác cách này hay hơn, đó là dùng chức năng tìm kiếm thủ công trên trang chủ của nvidia, rất dễ dàng. link :http://www.nvidia.com/download/index.aspx. Cứ chọn thông tin card và OS (nếu không thấy linux thì bấm vào show all OS) bấm search thôi, ra rồi thì bấm vào "suported product" xem coi card của mình có trong đó không ?. Có thì tải về, khỏi lăn tăn. ngày 12/12/2016 thử card GT 420 thì ra bản 375.20 đấy các bác.
Còn nếu cái output của lệnh trên kia ra trên 2 dòng (tức là có trên 2 VGA controller) thì hãy đọc tiếp, đó chính là ví dụ output ở mục kế tiếp. Đây là trường hợp cái máy của các bác có tính năng optimus, (optimus là cái gì thì link, bài viết của tinhte) nói tóm tắt là khi các bác lắp 1 con card nvidia vào thì hoặc là dùng chip intel đi theo CPU hoặc dùng card các bác vừa lắp, quyết định bằng bios nhé. Nhưng nếu có tính năng optimus thì máy sẽ dùng cả 2, nếu chỉ gõ text văn bản thì OS dùng chip của Intel, còn chơi game coi phim bậy thì nó sẽ tự lấy card rời ra, không phải cần reset thủ công. Thông thường, cho đơn giản, vào bios tắt tính năng này và chọn xuất card rời luôn cho đỡ lằng nhằng, ở dưới sẽ nói thêm về nó.

1.2 NVIDIA Optimus Technology:

Đây là 2 kết quả thí dụ card có Optimus khi dùng lệnh " lspci |grep -E “VGA|3D”":
00:02.0 VGA compatible controller: Intel Corporation 2n Generation Core Processor Family Integrated Graphics Controller (rev 09)
01:00.0 VGA compatible controller: nVidia Corporation GF106 [GeForce GT 555M SDDR3] (rev a1)

00:02.0 VGA compatible controller: Intel Corporation 4th Gen Core Processor Integrated Graphics Controller (rev 06)
01:00.0 3D controller: NVIDIA Corporation GK107M [GeForce GT 750M] (rev a1)
Nếu không tắt được cái tính năng này thì giải tán hội nghị, bản hướng dẫn này chưa test trên máy khi sử dụng tính năng này. Đọc thêm dự án Bumblebee (link http://bumblebee-project.org/)

2, Tiến hành cài đặt.

2.1, tải package cài đặt:

Sau khi đã xong cái phần 1 chuẩn bị cài đặt,trên kia thì chỉ cần lên trang chủ nvidia và tải về bản driver phù hợp với mình thôi. link :http://www.nvidia.com/Download/index.aspx?lang=en-us. Khi tải về nó sẽ có dạng NVIDIA-Linux-xxxx.run, tí nữa sẽ bàn sau, cứ tải về đã. Bác nào xài phiên bản mới nhất thì chả còn gì để nói, bác nào xài đồ cũ thì đọc tiếp 1 tí về cái kết quả test của chủ bài viết.
Fedora 24/25 cùng với kernel 4.8 sẽ cần 1 bản vá của bản cài đặt driver nvidia 304xx (link https://www.if-not-true-then-false.com/2015/fedora-nvidia-guide/4/#download-nvidia-patched-installer)

Những phiên bản đã test:
Fedora 25 Fedora 24 Fedora 23 Fedora 22/21
375.26 (December 14, 2016) 375.26 (December 14, 2016) 375.26 (December 14, 2016) 375.26 (December 14, 2016)
340.101 (December 14, 2016) 340.101 (December 14, 2016) 340.101 (December 14, 2016) 340.101 (December 14, 2016)
304.134 (December 14, 2016) 304.134 (December 14, 2016) 304.134 (December 14, 2016) 304.134 (December 14, 2016)

Chú ý: phiên bản 304.134 trên Fedora 25/24/23 - cài đặt và khởi động được, Nhưng nó sẽ không hoạt động trên Gnome 3.22/3.20/3.18. DEs/WMs Khác hoạt động bình thường. Kernel 4.8/4.7/4.6 cần một phiên bản vá, link: https://www.if-not-true-then-false.com/2015/fedora-nvidia-guide/4/#download-nvidia-patched-installer
lây nhây vậy đủ rồi, tóm lại: tải cái driver dạng .run về rồi phải không ?
Tiến trình cài đặt hãy nhớ 2 điều kiện:
  1. Cài đặt chỉ thực hiện trong môi trường dòng lệnh với dịch vụ đồ họa bị tắt(trường hợp fedora thì sẽ chạy trên runlevel 3, runlevel là cái gì thì đọc link)
  2. Disable driver open source có sẵn trong fedora.
Tí nữa sẽ hướng dẫn đầy đủ 2 điều kiện này.

2.2, cấp quyền thực thi cho driver

cấp quyền thực thi cho driver các bác vừa tải:
chmod +x /path/to/NVIDIA-Linux-*.run

2.3, chuyển qua sử dụng quyền root:

su -
## hoac ##
sudo -i

2.4, cập nhật hệ thống:

Nếu xuất hiện dòng exclude=xorg-x11* trong file /etc/dnf/dnf.conf thì hãy xóa bỏ nó.
## Fedora 25/24/23/22 ##
dnf update
## Fedora 21 ##
yum update
Sau khi cập nhật xong hãy khởi động lại và sử dụng kernel mới nhất được cập nhật.
reboot

2.5 Cài đặt các gói phụ thuộc.

## Fedora 25/24/23/22 ##
dnf install kernel-devel kernel-headers gcc dkms acpid
## Fedora 21 ##
yum install kernel-devel kernel-headers gcc dkms acpid

2.6 Tắt driver nouveau:

2.6.1 Tạo ra file /etc/modprobe.d/blacklist.conf

thêm dòng blacklist nouveau vào file vừa tạo:
echo "blacklist nouveau" > /etc/modprobe.d/blacklist.conf

2.6.2 Chỉnh sửa /etc/sysconfig/grub

Thêm chuỗi ‘rd.driver.blacklist=nouveau’ vào cuối dòng ‘GRUB_CMDLINE_LINUX=”…”‘
# Example row ##
GRUB_CMDLINE_LINUX="rd.lvm.lv=fedora/swap rd.lvm.lv=fedora/root rhgb quiet rd.driver.blacklist=nouveau"

2.6.3 Cập nhật cấu hình grub2 vừa chỉnh sửa

## BIOS ##
grub2-mkconfig -o /boot/grub2/grub.cfg
## UEFI ##
grub2-mkconfig -o /boot/efi/EFI/fedora/grub.cfg

2.6.4 Gỡ bỏ driver xorg-x11-drv-nouveua

## Fedora 25/24/23/22 ##
dnf remove xorg-x11-drv-nouveau
## Fedora 21 ##
yum remove xorg-x11-drv-nouveau
Nếu trong file /etc/dnf/dnf.conf có dòng này, thì gỡ bỏ nó:
exclude=xorg-x11*
(Khúc này không hiểu cho lắm, theo như em biết cái dòng là để cho dnf nó bỏ qua không đụng tới mấy cái gói xorg..., tại sao lại gỡ bỏ khi không dùng tới, máy em để lại dòng này và nó vẫn chạy tốt đấy các bác)

2.6.5 tại file initramfs

initramfs là cái gì thì link, đọc thêm cho biết, không ảnh hưởng gì.
# luu tru initramfs có nouveau ##
mv /boot/initramfs-$(uname -r).img /boot/initramfs-$(uname -r)-nouveau.img
## Tao file initramfs moi ##
dracut /boot/initramfs-$(uname -r).img $(uname -r)

2.7 Khỏi động vào runlevel 3

runlevel là cái gì thì link. Chỉ cần biết mức 3 sẽ không có giao diện đồ họa vì thế không thể vừa đọc tut vừa làm như nãy giờ, sau khi chạy 2 lệnh dưới sẽ vào runlevel 3, hãy đảm bảo có thể đọc tiếp hướng dẫn này. Khuyến cáo in ra giấy hoặc sử dụng các ứng dụng duyệt web trên putty như lynx/links/w3m và cách tốt nhất là lưu mấy dòng vắng tắt sau đây ra 1 file text.
nói ngắn gọn để copy vào text thôi, chi tiết sẽ ở phía dưới.
Công việc chỉ tóm gọn: sử dụng quyền root, chạy file cài đặt, thông báo complete thì chuyển về giao diện đồ họa (runlevel 5), reboot và tận hưởng.
sudo -i
#dung lenh cd di toi vi tri dat file NVIDIA-Linux-*.run va chay no
./NVIDIA-Linux-*.run
#xong thi chuyen qua giao dien do hoa
systemctl set-default graphical.target
reboot
các bác copy nó vào 1 file, khi qua runlevel 3 thì dùng 1 putty để cài, 1 putty dùng lệnh cat /path/file để xem. còn chuyển đổi qua lại giữa putty là các tổ hợp ctrl + alt + F1..F6 gì đấy.
Phần 2.8 sẽ ghi chi tiết có kèm hình ảnh, nên đọc trước rồi hãy chuyển qua runlevel 3, còn làm biếng thì thôi chuyển luôn.
systemctl set-default multi-user.target
reboot

2.8 Cài đặt

2.8.1 log tài khoản root.

su -
## OR ##
sudo -i

2.8.2 chạy file cài đặt tải về từ Nvidia

Hồi nãy tải về ở đâu thì dùng lệnh cd đi vào thư mục chứ file cài đặt, chạy lệnh cài:
./NVIDIA-Linux-*.run

2.8.2 Chấp nhận cái điều khoản của nvidia

Chọn accept, tất nhiên.




2.4.8 dùng DKMS đưa module vào source kernel



2.4.9 cài thư viện tương thích 32 bit



2.8.6 Bắt đầu tiến trình cài đặt


Chú ý: nếu có lỗi dưới này thì bấm ignore hoặc continues để tiếp tục, tức là bỏ qua cái lỗi đó:

Cannot create symlink /usr/lib/libGL.so.1 (File exists)
Cannot create symlink /usr/libGL.so (File exists)
Cannot create symlink /usr/libGLX-nvidia.so.0 (File exists)
Lỗi này có thể được fix trong phiên bản kế tiếp. Đọc thêm tại đây: link

2.8.7 Sao lưu Xorg



2.8.8 Cài đặt xong !



Đúc kết là toàn yes yes yes lâu lâu ignore hoặc continues chứ chả có gì bàn cãi :))

2.9 Nếu đã hoàn thành thì trở về giao diện họa (runlevel 5)

systemctl set-default graphical.target
reboot

2.10 cài VDPAU/VAAPI

Cái này sẽ làm tăng tốc độ xử lý video cho các bác (chú ý: cần phải Geforce 8 trở lên)
## Fedora 25/24/23/22 ##
dnf install vdpauinfo libva-vdpau-driver libva-utils
## Fedora 21 ##
yum install vdpauinfo libva-vdpau-driver libva-utils
Trong link source sẽ có 1 số hình ảnh sau khi cài đặt thành công một số loại card, các bác có thể đóng góp bằng cách
nvidia-installer -v |grep version
uname -a
lspci |grep -i VGA
và chạy cái lệnh này:
nvidia-settings
chụp hình lại và cmt trong source.
Hết bài dịch.