タグ

Ubuntu, ThinkPad

室温は27℃でも、排気口付近の本体下面がすごく熱くなって、GKrellMによる温度表示は60℃を下回ることがなく座椅子膝上直置きは無理な季節です。
色々調べてみると、ubuntu12.04は省電力をテーマの一つとして力を入れているという事なので、何とかならないものかと思いました。
前に書いたとおりBIOSでIntel HD Graphics 3000(Integrated Graphics)固定にすると、firefox起動時でも55℃くらいなので効果大です。
NVIDIA Optimus(自動切替)を選択しているだけでも、NVIDIA NVS 4200Mがかなり電力を消費するみたいです。

本題は、GPU以外の熱対策は何かできないかということでして、比較すべきではないかもしれませんけれどWindows起動時に比べてubuntu起動時のほうが熱い傾向にあったことから、何とかしたいと考えた次第です。要は「冷やす」か「消費電力量を減らす」かですけれど、やっぱり元を断たなきゃダメということで、結論から言うと、省電力化のために次のスクリプトを実行させることにしました。

#!/bin/sh

sleep 10

# Reduce power for SATA link power management
for i in 0 1 2 3 4 5 ; do
echo min_power>/sys/class/scsi_host/host${i}/link_power_management_policy
done

# Disable the NMI watchdog
echo 0 > /proc/sys/kernel/watchdog

# Enable Audio codec power management
echo Y > /sys/module/snd_hda_intel/parameters/power_save_controller

# Autosuspend for USB device
for i in /sys/bus/usb/devices/*/power/autosuspend; do
echo 1 > $i;
done
for i in /sys/bus/usb/devices/*/power/level; do
echo auto > $i;
done

# Runtime power-management for PCI devices
for i in /sys/bus/pci/devices/*/power/control ; do
echo auto > ${i}
done

これで体感的速度は殆ど変わらず省電力化できました。温度も45℃から50℃くらいなので大満足です。
スクリプトの実行には管理者権限が必要ですが、毎回ターミナルから起動させるのもなんなので、sudoersを編集して自動起動させることにしました。
sudoersの編集は、ターミナルから

sudo visudo

最終行に以下を追加(グループhoge)しました。スクリプト名は適当です。

%hoge ALL=NOPASSWD: /usr/local/sbin/power_save.sh

保存してターミナルに戻って、パスワード入力を求められる設定にします。新規にターミナルを起動してもいいです。

sudo -k

実行してみます。

sudo /usr/local/sbin/power_save.sh

省電力の確認・設定にはpowertopが便利ですが、設定を変更しても保存されず、再起動すると元に戻ってしまいます。
また、jupiterでPerformanceを確認したらPower On Demandになっていました。
CPUクロックの時間的変化を見る時は、ターミナルで

watch -n 1 grep ‘MHz’ /proc/cpuinfo

 
スクリプトは次のページを参考にしました。
//www.thinkwiki.org/wiki/How_to_reduce_power_consumption
//www.joshuagranick.com/blog/2012/04/27/increase-battery-life-in-linux/

スクリプト実行前後のpowertopの様子は、

Ubuntu

・・・2重モニタ?の反省です。

本体液晶画面LVDS1と外部出力VGA1が重なって表示されたのは、熱対策でjupiterをインストールしたことによるものでした。
Video DisplaysでInternal Display onlyを選択したら、今までどおり正常画面になりました。当然ですがBIOSでNVIDIA Optimusに戻しても画面は乱れません。
それでもfirefoxを起動すると温度は60℃を超えますので、NVIDIAのドライバーもインストールしていませんし、やっぱりIntel HD Graphics 3000のみで使用することにします。

Ubuntu, ThinkPad

わかりにくと思いますが本体液晶画面LVDS1と外部出力VGA1が重なって表示されてます。

lightdmに追加したスクリプトでVGA1をOFFにしても、デスクトップ画面が表示されたあとコマンドxrandrで確認すると、ゾンビのごとくVGA2が認識されていました。
これでは毎回手動で画面設定を変更しなければならないので、BIOSでIntel HD Graphics 3000を優先、NVIDIA Optimusを無効にして、かつ、.profile等にxrandr –output VGA1 –offを書き込むことで正常になりました。
もともとNVIDIA OptimusはWindowsのみをサポートしているものであり、今のところubuntuにとっては関係の無いシロモノなのでこの設定で使うことにします。
このことについてはLinux開発者のリーナスさんが怒り心頭らしいです。
記事はこちら
Bumblebeeと使うとNVIDIA OptimusはLinuxもサポートされるようですが、人柱的な気が・・・。

最近は猛暑日が続き、T420sも60°Cを超えるような状態でヒヤヒヤでしたが、NVIDIA Optimusを無効にすると劇的に温度が下がりました。
 
 

Ubuntu

下の動画の、13秒くらいの紫背景色は変更できないのかな?
grub,lightdm,デスクトップ背景,plymouthと、それぞれ画像を統一してみたら紫背景色が気になりました。
表示時間はコンマ数秒なのでどうってことはないですけどねぇ。
//www.youtube.com/watch?v=x-vrOo04C9Y
 
同じように気にされていた人がいて、解決方法が書かれていました。

Ubuntu Forums lightDM purple backgroundcolor before image is loaded

でも、unity-greeter-0.2.6の場合であって、今の0.2.8のsrc/background.valaには色指定”#2C001E”の文字がなくて諦めました。
# 他のファイルはチェックしてません。
 
試しにこちらのサイトに書かれていた方法で背景色に白を指定したところ、紫の次に真っ白になってからユーザー背景画像に切り替わりましたので、目的は未達成です。
ちなみに色の指定は(白の場合)

sudo xhost +SI:localuser:lightdm
sudo su lightdm -s /bin/bash
gsettings set com.canonical.unity-greeter background White

初期状態に戻すには

sudo xhost +SI:localuser:lightdm
sudo su lightdm -s /bin/bash
gsettings reset com.canonical.unity-greeter background

 
・・・VirtualBoxのubuntuなのでコンマ数秒の表示ですけど、通常環境(T420s SSD)では本当に瞬く間です。
最近のデスクトップPCだと気が付かないかも?
 
 

Ubuntu

flashで文字化け(豆腐文字)になってしまう場合、ソフトウェアセンターからkochiフォントをインストールすれば解消されるかもしれません・・・。
とりあえず私の環境(Ubuntu 12.04 64bit 、ブラウザ=Chromium、Firefox)では解消されました。 
 
 

Ubuntu

GRUB2の背景画像を変更するのに使います。
ログイン画面もユーザーの壁紙になったことですし、せっかくなので起動直後のGRUB2背景画像も使用中の壁紙にしました。
Grub Customizerのインストールや設定方法は憩いの場さんやTOYさんの萌え萌えmoebuntuのブログに詳しく掲載されています。
G使用中の壁紙サイズは1600×900なので、IMPで1024×768に縮小してしまえばOK。
解像度1024x768x24を選択すれば、元背景画像どおりに伸長されて表示されます。

背景画像ファイル/usr/share/backgroundsで色々試してみて下さい。
解像度「custom resolution」を選択しなければ、1600×900で表示されます。
 
 

Ubuntu, ThinkPad

GNOME Shellも余計な拡張機能を削除してから調子が良くなり非常に安定してます。
今までは、いきなり色々試していましたけれど、GNOME Shell拡張機能に限った話ではなく、今後はちゃんと仮想マシンで検証してから本導入することにします(今更ですが)。
で、VirtualBoxです。
マルチブート環境の利点?を生かし、ホストOSをubuntuとWindowsの場合でそれぞれ試してみました。
もちろん、まったくの主観的、かつ私のT420sに限っての使用感です。

  1. ホストOS=ubuntu 12.04(64bit)、ゲストOS=ubuntu 12.04(64bit)
    ゲストOSのubuntuも普通にGNOME Shellが有効となり、ストレス無く使えます。テスト環境として全く問題なし。
  2. ホストOS=ubuntu 12.04(64bit)、ゲストOS=Windows7(32bit)
    Guest Additionをセーフモードで、かつWDDMを使用する設定でインストールしても、ゲストOSでAeroを有効にすると使い物になりません。
    ベーシックテーマで使用する限りは問題なさそうです。
  3. ホストOS=Windows7(64bit)、ゲストOS=ubuntu 12.04(64bit)
    Ubuntu2D、GNOME classicならストレス無く使用できました。普通のUbuntuやGNOMEでログインしても、起動はするものの使い物になりません。
  4. ホストOS=Windows7(64bit)、ゲストOS=Windows7(32bit)
    ・・・試していません。

こんな感じでした。
 
 

Ubuntu

ログイン後に自動起動アプリが起動しなかったり、最悪の場合はトップパネルその他が何も表示されなかったりする時がありました。
ALT+F1でログインして2,3度リブートすれば元どおりになりますけれど面倒です。
/var/crash/を見るとgnome-shell若しくはXorgがクラッシュしている形跡がありました。
Xorgはともかくgnome-shellは拡張機能をいくつかインストールしているので、何か不具合が生じているのかもしれません。
ということで、Synapticパッケージ・マネージャからgnome-shell-extensions(拡張機能の詰め合わせ)とgnome-shell-commonを両方とも削除してみました。
で、改めて必要な拡張機能は、ブラウザからインストール、ONーOFF切替のできるGNOME Shell Extensionsから個別に選択、インストールして様子を見ることにします。
 
# 今のところ安定しているようです。

Ubuntu

私の環境ではログイン画面がデフォルトのままだったので気持ちが悪く、改めて調べてみました。
結局のところ、画像ファイルのパーミッションが不適切でデスクトップ背景が適用されていませんでした。
背景画像の保存場所は/home/(user)のピクチャーフォルダーで良いのですが、アクセス権を644にしておかないとログイン画面に反映されません。
まあ、新規作成するファイルのパーミッションは664なので大多数の人は気にしなくてもいいでしょう。
本当に全く個人的な問題でした。

ログイン画面とデスクトップの背景を別々に設定する場合は、ubuntu-tweakをインストールすれば簡単です。


$ sudo add-apt-repository ppa:tualatrix/ppa
$ sudo apt-get update
$ sudo apt-get install ubuntu-tweak

 
 

Ubuntu

NFSもautofsもネットで検索すれば設定の参考になるサイトが沢山あるので今まで書いていませんでしたが、Ubuntuのバージョンアップのたびに同じ事を繰り返しているような気がするので改めて記録することにしました。
一度設定して動作し始めると空気みたいなもので何も意識する必要がなく、その時に調べればいいやと手を抜いていましたが、Ubuntuのバージョンアップでメモすることも少なくなったのでこの際ということで備忘録です。我が家のNFSサーバーであるFreeNASの設定は割愛です。

1 NFS クライアント
nfs-commonをSynapticパッケージマネージャーからインストールします。もちろんターミナルからapt-getでもOK。
念の為、手動でmountできることを確認します。
マウント先となるUbuntu側ではディレクトリを予め作成しておきます。
私の場合は/mnt/WD10EARS_1と/mnt/WD10EARS_2の各々に(FreeNASのHDD WD10EARS_1,WD10EARS_2を)mountしてます。


$ sudo mount -t nfs 192.168.x.x:/mnt/WD10EARS_1 /mnt/WD10EARS_1
$ sudo mount -t nfs 192.168.x.x:/mnt/WD10EARS_2 /mnt/WD10EARS_2

詳しい説明は省略しますが、書き方は「mount ファイルシステムのタイプ マウント元 マウント先」です。
手動でmountできることを確認したらumountします。
autofsのところで後述しますが、確認が終わったらUbuntu側の/mnt内のディレクトリは削除してもかまいません。
 
2 autofs
autofsを、同じくSynapticパッケージマネージャーからインストールします。
マウント先のディレクトリは/mnt/freenas/の中とします。が、ダイレクトマップなので/mnt以下にmkdirする必要はありません。
あと、/mntの下にmountすると、デスクトップやファイルマネージャーNautilusにリムーバブルメディアのデバイスアイコンが出てこないので(個人的には)気持ちいいです。
Nautilusの左画面に/mnt/freenasのブックマークアイコンを設定・表示していても「/mnt/freenasの下にある、mount先のフォルダ」が右画面に表示されていなければ指定時間経過後に自動umountされるので目的達成です。
/mediaの下だといつまでたってもデスクトップにアイコンが出ている(=アクセスしている)、あるいはNautilusの左画面にデバイスアイコンが表示されているため、一定時間(既定で300秒)を経過しても自動umountされず、autofsの意味がありません:-)
設定の手順としては、最初に/etc/auto.freenasを作成します。
私はfreenasのドライブをマウントするという意味で名前を付けましたが、目的に応じて適宜変更して下さい。
ファイルの中身は次のとおりです。書き方は「Ubuntu側のマウント先に」、「指定のファイルシステムのタイプで」、「マウント元を」マウントするという順番となります。


/mnt/freenas/WD10EARS_1 -fstype=nfs 192.168.x.x:/mnt/WD10EARS_1
/mnt/freenas/WD10EARS_2 -fstype=nfs 192.168.x.x:/mnt/WD10EARS_2

続いて、auto.masterの最後を編集します。ダイレクトマップの場合なので


#+auto.master
/- /etc/auto.freenas --timeout 60

「+auto.master」はコメントアウトです。
私は既定の300秒ではなく、とりあえず60秒でumountさせます。
最後にautofsサービスをリスタートします。


$ sudo service autofs restart