スワップの認識、3GB以上のメモリの認識、グラフィックの認識(?)の失

■スワップの認識、3GB以上のメモリの認識、グラフィックの認識(?)の失敗に対処する。
 Squeeze amd64版での症状。
 3つ目のグラフィックの認識は放置することにしました。(後述)

$ lsb_release -a
No LSB modules are available.
Distributor ID: Debian
Description:    Debian GNU/Linux 6.0.7 (squeeze)
Release:        6.0.7
Codename:       squeeze

$ uname -r
2.6.32-5-amd64

■参考

 [SOLVED] Problems after installation of Squeeze
 http://forums.debian.net/viewtopic.php?f=17&t=68695

 (Ubuntu 10.04) MTRR allocation failed. Graphics performance may suffer エラーの回避
 http://netlog.jpn.org/r271-635/2011/02/ubuntu_1004_mtrr_error.html

 [linux]インテルのオンボードグラフィックでDebian squeezeのX Window Systemを動かす5つのステップ
 http://d.hatena.ne.jp/rubikitch/20110323/xwindow


■再起動したら以下の失敗ログ。

$ dmesg | grep -i "error\|warn\|crit\|fail"
[    0.451134] PM: Resume from disk failed.
[    1.750951] PM: Error -22 checking image file
[    1.750955] PM: Resume from disk failed.
[    3.281629] [drm] MTRR allocation failed.  Graphics performance may suffer.

■スワップが認識されていない。

$ mount | grep swap
$ sudo fdisk -l /dev/sda

Disk /dev/sda: 1000.2 GB, 1000203804160 bytes
255 heads, 63 sectors/track, 121601 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x000bfa7b

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1        1216     9764864   83  Linux
/dev/sda2            1216      121602   966993921    5  Extended
/dev/sda5            1216        2195     7862272   82  Linux swap / Solaris
/dev/sda6            2195      121602   959130624   83  Linux

■スワップファイルシステムが中途半端にマウントされている状態の様子。

$ sudo fdisk -l /dev/sda | grep swap | awk '{print $1}' | sudo mkswap `xargs`
/dev/sda5: デバイスもしくはリソースがビジー状態です

$ sudo fdisk -l /dev/sda | grep swap | awk '{print $1}' | sudo swapoff `xargs`
$ sudo fdisk -l /dev/sda | grep swap | awk '{print $1}' | sudo mkswap `xargs`
Setting up swapspace version 1, size = 7862268 KiB
no label, UUID=XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX
$ cat /proc/swaps
Filename                                Type            Size    Used    Priority
/dev/sda5                               partition       7862264 0       -1

■fstabのUUIDと異なる。

$ grep "^UUID.*swap" /etc/fstab
YYYY=YYYYYYYY-YYYY-YYYY-YYYY-YYYYYYYYYYYY none            swap    sw              0       0

■UUIDは「blkid」で取得出来る。

$ sudo blkid /dev/sda5

■コメントアウトと、新しいUUIDの反映、
 単にswapoff/swaponだとビジーだと言われるので、UUIDを指定してswapoff/swapon。

$ sudo sed -i s/"^UUID.*swap"/"#&"/ /etc/fstab
$ sudo sed -i s/"^#UUID.*swap"/"&\nUUID=XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX none            swap    sw              0       0"/ /etc/fstab

$ sudo swapoff -U XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX
$ sudo swapon -U XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX
$ cat /proc/swaps
Filename                                Type            Size    Used    Priority
/dev/sda5                               partition       7862264 0       -1

■再度、システムの再起動。

$ sudo shutdown -r now && exit

$ dmesg | grep "error\|warn\|crit\|fail"
[    3.704137] [drm] MTRR allocation failed.  Graphics performance may suffer.
[    0.451348] PM: Resume from disk failed.

■2つ目の問題。確かに4GBメモリ(3GB以上)に該当する。
 ※下記では「3328MB」の箇所

$ dmesg | grep -i mtrr
[    0.000000] MTRR default type: uncachable
[    0.000000] MTRR fixed ranges enabled:
[    0.000000] MTRR variable ranges enabled:
[    3.401303] mtrr: type mismatch for d0000000,10000000 old: write-back new: write-combining
[    3.401306] [drm] MTRR allocation failed.  Graphics performance may suffer.

$ free
             total       used       free     shared    buffers     cached
Mem:       4025948     564316    3461632          0       7332     202564
-/+ buffers/cache:     354420    3671528
Swap:      7862264          0    7862264

$ cat /proc/mtrr
reg00: base=0x000000000 (    0MB), size= 4096MB, count=1: write-back
reg01: base=0x100000000 ( 4096MB), size=  512MB, count=1: write-back
reg02: base=0x120000000 ( 4608MB), size=  256MB, count=1: write-back
reg03: base=0x0d0000000 ( 3328MB), size=  256MB, count=1: uncachable
reg04: base=0x0e0000000 ( 3584MB), size=  512MB, count=1: uncachable
reg05: base=0x0cde00000 ( 3294MB), size=    2MB, count=1: uncachable
reg06: base=0x0ce000000 ( 3296MB), size=   32MB, count=1: uncachable

■grubにkernel起動オプションを渡す。

$ grep GRUB_CMDLINE_LINUX= /etc/default/grub
GRUB_CMDLINE_LINUX=""

$ sudo sed -i s/"\(GRUB_CMDLINE_LINUX=\)\"\""/"\1\"enable_mtrr_cleanup mtrr_spare_reg_nr=1\""/ /etc/default/grub
$ sudo  update-grub
Generating grub.cfg ...
Found background image: /usr/share/images/desktop-base/desktop-grub.png
Found linux image: /boot/vmlinuz-2.6.32-5-amd64
Found initrd image: /boot/initrd.img-2.6.32-5-amd64
  No volume groups found
done

■またシステムの再起動

$ sudo shutown -r now && exit

■再起動後の確認。
 まだ、「uncachable」が残っているが、最終行が「write-combining」なら問題なさそう。

$ cat /proc/mtrr
reg00: base=0x000000000 (    0MB), size= 2048MB, count=1: write-back
reg01: base=0x080000000 ( 2048MB), size= 1024MB, count=1: write-back
reg02: base=0x0c0000000 ( 3072MB), size=  256MB, count=1: write-back
reg03: base=0x0cde00000 ( 3294MB), size=    2MB, count=1: uncachable
reg04: base=0x0ce000000 ( 3296MB), size=   32MB, count=1: uncachable
reg05: base=0x100000000 ( 4096MB), size=  512MB, count=1: write-back
reg06: base=0x120000000 ( 4608MB), size=  256MB, count=1: write-back
reg07: base=0x0d0000000 ( 3328MB), size=  256MB, count=1: write-combining

■が、まだ残ってる。

$ dmesg | grep -i "error\|warn\|crit\|fail"
[    0.451348] PM: Resume from disk failed.

■グラフィックドライバが悪さをしている様子。

$ sudo grep -i graphic /var/log/syslog | sed s/".*kernel\: "//g
[    3.281629] [drm] MTRR allocation failed.  Graphics performance may suffer.
[    3.704137] [drm] MTRR allocation failed.  Graphics performance may suffer.
[    3.401306] [drm] MTRR allocation failed.  Graphics performance may suffer.

■Intel製のドライバのようです。

$ lspci -d 8086:2e22 -k
00:02.0 VGA compatible controller: Intel Corporation 4 Series Chipset Integrated Graphics Controller (rev 03)
        Subsystem: NEC Corporation Device 88f5
        Kernel driver in use: i915

■「i915」ドライバは読み込まれているので当然パッケージも導入済みです。

$ apt-cache search i915
xserver-xorg-video-intel-dbg - X.Org X server -- Intel i8xx, i9xx display driver (debug symbols)
xserver-xorg-video-intel - X.Org X サーバ -- Intel i8xx, i9xx ディスプレイドライバ

$ dpkg -l | grep ^ii | grep "xserver-xorg-video-intel" | awk '{print $2}'
xserver-xorg-video-intel

■KMSは有効

$ cat /etc/modprobe.d/i915-kms.conf
options i915 modeset=1

$ sudo modprobe -l | grep i915
kernel/drivers/gpu/drm/i915/i915.ko

■Kernelオプションの確認

$ sudo apt-get install kernel-package
$ grep CONFIG_SCHED /usr/share/kernel-package/Config/config.amd64
# CONFIG_SCHEDSTATS is not set

■kernel、xserver-xorg-video-intelの両方の最新版を入れると良さそう。
 モニタ繋げない環境なので、放置とする。