This page is READ-ONLY. It is generated from the old site.
All timestamps are relative to 2013 (when this page is generated).
If you are looking for TeX support, please go to VietTUG.org

Card đồ hoạ Nvidia Optimus trên Arch

Nvidia
Added by tanphu about 2 years ago  »  Votes: 3/3

Mình có một máy tính xách tay trang bị 2 card đồ hoạ: Card Intel tích hợp sẵn và card Nvidia Optimus G310M. Công nghệ Optimus cho phép hệ thống tự động chuyển đổi qua lại giữa 2 card khi cần thiết để kết hợp hài hoà giữa nhu cầu tiết kiệm pin và nhu cầu xử lý đồ hoạ cao khi cần thiết. Thật tiếc là hiện tại Nvidia chưa hỗ trợ driver cho công nghệ Optimus trên Linux. Hiện tại Nvidia chỉ cung cấp driver cho người dùng Windows. Người dùng Linux chắc phải kiên nhẫn chờ một thời gian nữa.

Mình đã cài đặt driver cho card Intel thành công và vào được X. Tuy nhiên card Nvidia chưa được tắt nên nó vẫn tiêu thụ pin mà chẳng thực hiện nhiệm vụ gì. Thực thi lệnh lspci | grep -i VGA thì được kết quả sau:

00:02.0 VGA compatible controller: Intel Corporation Core Processor Integrated Graphics Controller (rev 18)

01:00.0 VGA compatible controller: nVidia Corporation Device 0a70 (rev a2)

Thông tin (rev a2) có nghĩa là card thứ 2 chưa được tắt, và vẫn đang tiêu thụ pin.

Điều cần làm lúc này là phải tìm cách tắt nó. Thật không may mắn là trong BIOS không có tuỳ chọn tắt card này. Vì vậy phải tắt thủ công như theo hướng dẫn tham khảo ở đây

$ pacman -S git
$ git clone http://github.com/mkottman/acpi_call.git
$ cd acpi_call
$ make
$ sudo insmod acpi_call.ko
./test_off.sh

Được các kết quả sau, để ý thấy cái cuối cùng hoạt động tốt

Trying \_SB.PCI0.P0P1.VGA._OFF: failed
Trying \_SB.PCI0.P0P2.VGA._OFF: failed
Trying \_SB_.PCI0.OVGA.ATPX: failed
Trying \_SB_.PCI0.OVGA.XTPX: failed
Trying \_SB.PCI0.P0P3.PEGP._OFF: failed
Trying \_SB.PCI0.P0P2.PEGP._OFF: failed
Trying \_SB.PCI0.P0P1.PEGP._OFF: failed
Trying \_SB.PCI0.MXR0.MXM0._OFF: failed
Trying \_SB.PCI0.PEG1.GFX0._OFF: works!

Và tắt nó:

# turn off discrete graphics card
echo '\_SB.PCI0.PEG1.GFX0._OFF' > /proc/acpi/call

Kiểm tra lại card đã được vô hiệu hoá:

$ lspci |grep -i VGA
00:02.0 VGA compatible controller: Intel Corporation Core Processor Integrated Graphics Controller (rev 18)
01:00.0 VGA compatible controller: nVidia Corporation Device 0a70 (rev ff)

(rev ff) nghĩa là nó đã được tắt.

Khi đó công suất tiêu thụ của pin giảm 3 đến 5W.

$ cat /proc/acpi/battery/BAT0/state 
present:                 yes
capacity state:          ok
charging state:          discharging
present rate:            12324 mW
remaining capacity:      65562 mWh
present voltage:         15684 mV

Với pin 8 cell, CPU core i5, màn hình 14inch mình đã kéo dài thời gian sử dụng pin trung bình từ 4h lên 6h. Đây là tình hình cụ thể với máy tính của tớ, thời gian sử dụng pin còn tuỳ thuộc vào nhiều yếu tố khác nữa.

Để tự thực hiện khi khởi động, thêm vào /etc/rc.local nội dung sau:

# Disable Nvidia
$ insmod /path/to/acpi_call/dir/acpi_call.ko
$ echo '\_SB.PCI0.PEG1.GFX0.DOFF' > /proc/acpi/call

Cuộc chiến với thời gian tiêu thụ pin chắc còn dài, và là cuộc chiến nhiều tập!


Comments

Added by about 2 years ago

Đọc bài này, khoái nhất là ... thấy tác giả đã dùng được git hehe