「Intel GMA 500」の版間の差分

提供: ArchWiki
ナビゲーションに移動 検索に移動
 
(Archive)
タグ: 新規リダイレクト
 
(2人の利用者による、間の6版が非表示)
1行目: 1行目:
  +
#redirect [[ArchWiki:アーカイブ]]
[[Category:グラフィック]]
 
[[Category:X サーバー]]
+
[[Category:カイブ]]
[[el:Poulsbo]]
 
[[en:Poulsbo]]
 
[[it:Poulsbo]]
 
[[ru:Poulsbo]]
 
{{Related articles start}}
 
{{Related2|Intel Graphics|Intel Graphics}}
 
{{Related2|Xorg|Xorg}}
 
{{Related2|MPlayer|MPlayer}}
 
{{Related articles end}}
 
 
'''Intel GMA 500''' シリーズ (別名: コードネーム '''Poulsbo''' または '''[http://ark.intel.com/Product.aspx?id=35444 Intel System Controller Hub US15W]''') は PowerVR SGX 535 グラフィックコアがベースの内蔵ビデオアダプターの総称です。ほとんどが Atom Z プロセッサシリーズの基盤に搭載されています。H.264 など最新コーデックの 720p/1080i 動画のハードウェアデコードなどの機能が含まれています。
 
 
PowerVR SGX 535 グラフィックコアは Imagination Technologies によって開発され Intel によってライセンスされているため、標準のオープンソースの [[Intel|Intel]] ドライバーはこのハードウェアでは動作しません。
 
 
このページでは Poulsbo ハードウェアを最大限活用して Arch Linux を使用する方法を載せています。
 
 
== カーネルの gma500_gfx モジュール ==
 
 
カーネル 2.6.39 から、Poulsbo ハードウェアをサポートするために [[Wikipedia:ja:アラン・コックス|Alan Cox]] によって開発された新しい psb_gfx モジュールがカーネルに追加されています。カーネル 3.3.rc1 からドライバーは staging を離れて gma500_gfx と名前を変更されています ([http://blog.bodhizazen.net/linux/linux-gma500-poulsbo-driver-moved-out-of-staging/])。
 
 
'''利点'''
 
 
* 初期 KMS による (1366x768 の) ネイティブ解像度 (Asus Eee 1101HA でテスト済み)
 
* 最新のカーネルと Xorg
 
* 2D アクセラレーション
 
* 何も設定しなくても動作
 
 
'''欠点'''
 
 
* ネイティブ解像度を使えない場合あり (例: 1366x768)
 
* 3D アクセラレーションなし
 
* マルチメディアのパフォーマンスが悪い (x11 や sdl で mplayer を使用するとフルスクリーンの動画再生でめっきり遅くなる)
 
 
ドライバーがロードされているか確認するには、{{ic|<nowiki>$ lsmod | grep gma</nowiki>}} の出力が以下のようになっているか確認してください:
 
 
gma500_gfx 131893 2
 
i2c_algo_bit 4615 1 gma500_gfx
 
drm_kms_helper 29203 1 gma500_gfx
 
drm 170883 2 drm_kms_helper,gma500_gfx
 
i2c_core 16653 5 drm,drm_kms_helper,i2c_algo_bit,gma500_gfx,videodev
 
 
== Modesetting ドライバーとデュアルモニターのセットアップ ==
 
[[xrandr]] を使って外部モニターに様々な解像度を設定するには、公式リポジトリの {{Pkg|xf86-video-modesetting}} が必要です。git パッケージを使う場合は ({{AUR|xf86-video-modesetting-git}})、新しいバージョンの [[Xorg|Xorg]] をリコンパイルしてください。インストール後、ドライバーをセットアップするために [[Xorg|Xorg]] の設定が必要になります:
 
 
{{hc|/etc/X11/xorg.conf.d/20-gpudriver.conf|
 
Section "Device"
 
Identifier "gma500_gfx"
 
Driver "modesetting"
 
Option "SWCursor" "ON"
 
EndSection
 
}}
 
{{Note|1=上記の設定ファイルは {{Pkg|xf86-video-fbdev}} ドライバーを置き換えます。元に戻したくなったら、{{ic|modesetting}} を {{ic|fbdev}} に置き換えてください。}}
 
 
== トラブルシューティング ==
 
 
=== 動画のパフォーマンスが出ない ===
 
 
720p や 1080i 動画の再生に支障が生じる場合、アクセラレーションが適用される XV ドライバーを使っていないのであればそれが普通です。しかしながら、以下のトリックを使うことでほとんどの動画 (たとえ HD 動画であっても) を問題なくスムーズに再生させることが可能です:
 
 
# add <code>pm-powersave false</code> to <code>/etc/rc.local</code>. <code>man pm-powersave</code> for more info.
 
# use {{AUR| xf86-video-modesetting-git}} as indicated above.
 
# always use [[MPlayer|MPlayer]] or any variant/gui. [[VLC|VLC]] and others are usually much more slower.
 
# When possible, Use multithreaded decoding with mplayer (Many Atom CPUs can) & framedropping <code>mplayer -lavdopts threads=4 -framedrop yourvideofile.avi</code>
 
# substitute the normal mplayer with {{AUR| mplayer-minimal-svn}}, and compile with aggressive optimizations: <code>-march=native -fomit-frame-pointer -O3 -ffast-math'</code>. ([[Makepkg|makepkg]] を参照)
 
# use {{AUR | linux-lqx}} as it is a very good performance kernel. Edit PKGBUILD so you can do <code>menuconfig</code> and make sure you select your processor and remove generic optimizations for other processors. ([[カーネル]]を参照)
 
 
=== サスペンドの修正 ===
 
==== 古い fbdev ドライバー (デフォルト) ====
 
 
If suspend does not work, there are various quirk options you can try. First, make sure that you have {{Pkg|pm-utils}} and {{Pkg|pm-quirks}} [[pacman|installed]]. See the manpage for pm-suspend for a list of them all. One that has been reported to help is <code>quirk-vbemode-restore</code>, which saves and restores the current VESA mode.
 
 
To test it, open a terminal and use the following command
 
 
# pm-suspend --quirk-vbemode-restore
 
 
That should suspend your system. If you are able to resume, you'll want to use this option every time you suspend.
 
 
# echo "ADD_PARAMETERS='--quirk-vbemode-restore'" > /etc/pm/config.d/gma500
 
 
If you are not able to resume and you get a black screen instead, try the above quirk command with only '''one dash'''
 
 
# pm-suspend -quirk-vbemode-restore
 
 
If this also fails, you might try removing pm-utils's video resume script, so that it's not run when you resume the machine.
 
 
# cd /usr/lib/pm-utils/sleep.d
 
# mv 99video ~
 
 
{{Tip| If you stuck with a black screen after resume, be aware that besides the black screen, your system works fine. Instead of hard rebooting, you could try to blindly reboot your system, since the last thing you used before suspend was the terminal. Alternatively, if you have ssh enabled on your machine you could do it remotely.}}
 
 
==== modesetting xorg ドライバー ====
 
 
On some machines, when using modesetting driver the screen gets messed up with random data. Although the computer still works, you must go to a console and kill X or reboot "blindly". This is not optimal, so here is a solution:
 
 
First, see your available screens and modes running {{ic|xrandr}}:
 
 
{{bc|
 
# xrandr
 
Screen 0: minimum 320 x 200, current 1280 x 720, maximum 2048 x 2048
 
LVDS-0 connected 1280x720+0+0 222mm x 125mm
 
1280x720 60.0*+
 
HDMI-0 connected 1280x720+0+0 531mm x 298mm
 
1920x1080 60.0 +
 
1680x1050 59.9
 
1680x945 60.0
 
1400x1050 74.9 59.9
 
1600x900 60.0
 
1280x1024 75.0 60.0
 
1440x900 75.0 59.9
 
1280x960 60.0
 
1366x768 60.0
 
1360x768 60.0
 
1280x800 74.9 59.9
 
1152x864 75.0
 
1280x768 74.9 60.0
 
1280x720 60.0*
 
1024x768 75.1 70.1 60.0
 
1024x576 60.0
 
832x624 74.6
 
800x600 72.2 75.0 60.3 56.2
 
848x480 60.0
 
640x480 72.8 75.0 60.0
 
720x400 70.1
 
}}
 
 
Edit or create (giving executive permissions) {{ic|/etc/pm/sleep.d/99xrandr}}, writing the correct names and modes for your solution:
 
 
{{bc|<nowiki>
 
#!/bin/sh
 
#
 
# turn off and on the screens so we force to clean video data
 
case "$1" in
 
hibernate|||suspend)
 
xrandr --output LVDS-0 --off
 
xrandr --output HDMI-0 --off
 
;;
 
thaw|||resume)
 
xrandr --output LVDS-0 --off
 
xrandr --output HDMI-0 --off
 
xrandr --output LVDS-0 --mode 1280x720
 
/usr/local/bin/brillo-
 
;;
 
*) exit $NA
 
;;
 
esac
 
</nowiki>}}
 
 
In my case, I turn off both screens, and turn on only the main screen upon awakening. Feel free to customize to your needs.
 
On some machines, the screen turns on by default even when the system was put to sleep with the screen turned off, so you need to turn it off twice.
 
 
{{Note| This only works if you call {{ic|pm-suspend}} or {{ic|pm-hibernate}} inside [[Xorg|X]]. If it is called from a daemon or a tty, it won't work.}}
 
 
=== バックライトの明るさを設定 ===
 
 
All that is needed to set the brightness is sending a number (0-100) to {{ic|/sys/class/backlight/psblvds/brightness}}. This obviously requires sysfs to be enabled in the kernel, as it is in the Arch Linux kernel. To set display to minimal brightness, issue this command as root:
 
 
# echo 0 > /sys/class/backlight/psb-bl/brightness
 
 
Or, for full luminosity:
 
 
# echo 100 > /sys/class/backlight/psb-bl/brightness
 
 
A very short script is available to do this with less typing written by [https://bbs.archlinux.org/viewtopic.php?pid=813074#p813074 mulenmar].
 
 
#! /bin/sh
 
sudo sh -c "echo $1 > /sys/class/backlight/psb-bl/brightness"
 
 
Simply save it as brightness.sh, and give it executable permissions. Then you can use it like so:
 
 
Set brightness to minimum:
 
 
./brightness.sh 0
 
 
Set brightness to half:
 
 
./brightness.sh 50
 
 
Sudo may obviously ask for your password, so you have to be in the sudoers file. A variation of this script can be found [https://bbs.archlinux.org/viewtopic.php?pid=1143245#p1143245 here].
 
 
{{Note|If changing {{ic|/sys/class/backlight/psblvds/brightness}} does not work, you may need to add {{ic|acpi_osi&#61;Linux acpi_backlight&#61;vendor}} to your [[kernel parameters]]. After rebooting, a new folder will appear under {{ic|/sys/class/backlight/}}; making changes to the {{ic|brightness}} file in that folder should work. For example, in some Asus netbooks the backlight can be controlled by writing a value (0-10) to {{ic|/sys/class/backlight/eeepc-wmi/brightness}}.}}
 
 
=== メモリ割り当ての最適化 ===
 
 
システムによって使用する RAM の量を制限することでパフォーマンスを改善することが可能です。RAM が 1GB ある場合は {{ic|1=mem=896mb}} を、2GB ある場合は {{ic|1=mem=1920mb}} を使って下さい。これらの設定値は[[カーネルパラメータ]]に追加します。
 
 
=== SDL のフルスクリーンビューポートが大きすぎる/小さすぎる ===
 
If X segfaults before you even have a SDL app running, see [https://bugs.archlinux.org/task/35187 FS#35187: X segfaults when starting a SDL app full-screen].
 
 
The Shuttle XS36VL computer has a VGA, HDMI and DVI-D port. For some reason, ''xrandr'' sees some non-existing ports:
 
{{bc|
 
$ xrandr -q
 
Screen 0: minimum 320 x 200, current 1024 x 768, maximum 2048 x 2048
 
VGA-0 connected 1024x768+0+0 (normal left inverted right x axis y axis) 337mm x 270mm
 
1280x1024 60.0 + 75.0
 
1024x768 75.1 70.1 60.0*
 
832x624 74.6
 
800x600 72.2 75.0 60.3 56.2
 
640x480 72.8 75.0 66.7 60.0
 
720x400 70.1
 
LVDS-0 connected 1024x768+0+0 (normal left inverted right x axis y axis) 0mm x 0mm
 
1024x768 60.0*+
 
960x720 60.0
 
928x696 60.1
 
896x672 60.0
 
800x600 60.0 60.3 56.2
 
700x525 60.0
 
640x512 60.0
 
640x480 60.0 59.9
 
512x384 60.0
 
400x300 60.3 56.3
 
320x240 60.1
 
DVI-0 disconnected (normal left inverted right x axis y axis)
 
DisplayPort-0 disconnected (normal left inverted right x axis y axis)
 
DVI-1 disconnected (normal left inverted right x axis y axis)
 
DisplayPort-1 disconnected (normal left inverted right x axis y axis)
 
}}
 
In the xrandr output, '''+''' means ''Preferred mode'', '''*''' means the ''current mode''. In this case, only VGA-0 is really connected physically. LVDS-0 seems rubbish as {{ic|xrandr --output LVDS-0 --mode 640x480}} has no effect on the physical output. However, this configuration does affect the ability of SDL (and other?) programs to display full-screen. To allow SDL programs to display with a correct viewport, one has to disable the LVDS-0 output:
 
{{bc|
 
$ xrandr --output LVDS-0 --off
 
...
 
LVDS-0 connected (normal left inverted right x axis y axis)
 
 
...
 
}}
 
After doing so, {{ic|qemu -full-screen}} works for me.
 
 
==参照==
 
* [http://www.kriptopolis.org/arch-linux-03#comment-66066 An experience about configuring Poulsbo (Spanish)]
 
* [https://wiki.ubuntu.com/HardwareSupportComponentsVideoCardsPoulsbo/ Ubuntu Wiki]
 
* [http://ubuntuforums.org/showthread.php?t=1984236 Ubuntu Forums]
 
* [http://blog.bodhizazen.net/linux/ubuntu-12-04-gma500-poulsbo-boot-options/ Ubuntu 12.04 gma500 (poulsbo) boot options (blog post)]
 
* [https://bbs.archlinux.org/viewtopic.php?id=78719 Poulsbo Discussion in Arch BBS]
 

2020年8月11日 (火) 10:43時点における最新版