読者です 読者をやめる 読者になる 読者になる

pikによるrubyインストール

pikを動作させる

msiからpikをインストールして実行してみるとなぜかうまく動かない。

C:\dev\pik>pik list

There was an error.
 Error: can't dup NilClass

  in: pathname.rb:205:in `dup'
  in: pathname.rb:205:in `initialize'
  in: pik/commands/add_command.rb:17:in `new'
  in: pik/commands/add_command.rb:17:in `add'
  in: pik/commands/add_command.rb:13:in `execute'
  in: pik_runner:27

調べたところ、rubyが全くない環境で動かすと発生するらしい → pik を使って Windows に ruby をインストール - miauの避難所

rubyをインストールすれば回避できるらしいが、そもそもpikを使ってrubyをインストールしようとしているのに、それを動かすためにrubyが必要というのでは本末転倒なので、違う方法での回避を試みる。

回避方法も上のページに書いてある。ダミーのエントリを作って、1つでもrubyがインストールされているように見せかければよいらしい。

%HOME%/.pik/config.ymlを作成してダミーを作成しておく。

---
"000: ruby 0.0.0 (dummy ruby for pik)":
  :path: !ruby/object:Pathname
    path: C:/pik/dummy
--- {}

これでpikが動くようになる。

rubyインストール

pikが動作するようになったので、pik経由でrubyをインストールする。現時点での最新の安定版1.9.3-p125を入れる。

$ pik install ruby 1.9.3-p125

インストールが完了したらconfig.ymlを編集してダミーのエントリを削除しておく。

VAIO X + Ubuntu 9.10で視覚効果を有効にする

先日の設定でVAIO Xでもそれなりの描画性能が得られるようになったので、「システム > 設定 > 外観の設定」から視覚効果を有効にしようとしてみました。

しかしながら、「利用可能なドライバを検索しています...」→「デスクトップ効果を有効にできません」となって有効にすることができませんでした。

性能が不足しているのかなと思ったのですが、よくよく見ると手順が書いてありました。

Create xorg.conf with following content and whitelist psb in /usr/bin/compiz by adding "psb" to the WHITELIST line.

https://wiki.ubuntu.com/HardwareSupportComponentsVideoCardsPoulsbo/

/usr/bin/compiz(中身はシェルスクリプト)のWHITELISTを書き換えれば有効にできるようになります。

> sudo vi /usr/bin/compiz

以下のように最後に"psb"を追加しました。

WHITELIST="nvidia intel ati radeon radeonhd i810 psb"

これで視覚効果の通常効果・追加効果が使えるようになります。一応それなりのパフォーマンスで動作します。

Ubuntu 9.10にVAIO X用のディスプレイドライバを入れるの続き(解決?)

先日Ubuntu 9.10にディスプレイドライバを入れようとしてうまくいかなかった件ですが、いろいろ調べた結果うまくいきました。

基本的に以下のページの手順を実行すれば問題ない……ですが、最後に1点だけ罠?があります:

パッケージのダウンロード

このページからパッケージをダウンロードしておきます:

ダウンロードできるファイルは4つありますが、恐らく以下の2つだけしか使わないと思います:

  • psb-kernel-headers_4.41.2-0ubuntu1~910um1_all.deb
  • psb-kernel-source_4.41.2-0ubuntu1~910um1_all.deb

PPAの追加

必要なパッケージの提供元リポジトリを追加します:

> sudo vi /etc/apt/sources.list.d/ubuntu-mobile.list

記述する内容はこれ:

deb http://ppa.launchpad.net/ubuntu-mobile/ppa/ubuntu jaunty main
deb-src http://ppa.launchpad.net/ubuntu-mobile/ppa/ubuntu jaunty main
deb http://ppa.launchpad.net/albertomilone/poulsbo-graphics/ubuntu jaunty main
deb-src http://ppa.launchpad.net/albertomilone/poulsbo-graphics/ubuntu jaunty main

パッケージのインストール

手順に沿ってコマンドを実行します:

> sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys C6598A30
> sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 99C0198F
> sudo apt-get update
> sudo apt-get install  dkms fakeroot
> sudo apt-get install libdrm-poulsbo1
> sudo apt-get install poulsbo-driver-2d poulsbo-driver-3d psb-firmware

ダウンロードしたパッケージのインストール

最初にダウンロードしておいたパッケージをインストールします:

> sudo dpkg -i psb-kernel-*

blacklist.confを書き換えます(ファイルの末尾に"blacklist i915"を追加する)

> sudo vi /etc/modprobe.d/blacklist.conf

ramfsを更新します(よく分かってないので手順通り):

> sudo update-initramfs -u

xorg.confファイルの作成

以下の内容でxorg.confファイルを作成します:

> sudo vi /etc/X11/xorg.conf
Section "Device"
        Identifier      "GMA500"
        Option "AccelMethod" "EXA"
        Option "DRI" "on"
        Option "MigrationHeuristic" "greedy"
        Option "IgnoreACPI" "yes"
        Driver "psb"
EndSection

Section "DRI"
    Mode    0666
EndSection

リブート、そして……

ここまでで一通りの手順が完了したのでリブートしてみたのですが、コンソールのログインプロンプトが表示された状態で画面が点滅したまま先に進まなくなりました。

手順をよく見ると、最後にカーネルパラメータの設定に関する項目がありました。

If you have a Vaio-P or if you are experiencing extremely slow performance (less than 14 fps running "/usr/bin/xscreensaver/glblur -fps -window") add "mem=2000mb" to /etc/default/grub, at the end of GRUB_CMDLINE_LINUX_DEFAULT, if using grub2, or at the end of the "# defoptions=" line in /boot/grub/menu.lst.

VAIO Xの場合も、ここに書いてあるVAIO Pと同様の設定が必要でした。再起動後、grubのブートメニューからrecovery modeで起動して、rootで作業を行います。

まず/etc/default/grubGRUB_CMDLINE_LINUX_DEFAULTを書き換えます。

$ vi /etc/default/grub

私の環境では GRUB_CMDLINE_LINUX_DEFAULT="quiet splash" となっていたので、以下のように書き換えました:

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash mem=2000mb"

あとはgrubの設定ファイルを更新してリブートすることによって、ドライバが正常に動作するようになりました。

$ update-grub
$ reboot

ここまでの結果

ここまでの手順によって、以下の部分が改善されました:

  • 描画速度がだいぶ改善された
  • 「システム > 設定 > 電源の管理」から輝度が調整できるようになった
  • Fn+F5, Fn+F6からも輝度変更可能

やっと目が痛くなくなりました……

余談

先日のエントリでは9.10用のパッケージがなかったためあきらめたのですが、今覗いたら存在していました。今ならgihyo.jpの手順でセットアップできるかもしれません。

まあ気がつくのが遅かったですが……

Ubuntu 9.10にVAIO X用のディスプレイドライバを入れる

VAIO XにUbuntu 9.10を入れた直後の状態では、描画が遅い・輝度が変えられない、と言った問題があるので、ディスプレイドライバを入れてみました。

VAIO Xに使用されているGPUはVAIO Pと同じGMA500なので、ここにある情報を参考にしました:

リンク先のページに以下のような記述があったので、「システム > システム管理 > ソフトウェア・ソース」の「他のソフトウェア」に"ppa:ubuntu-mobile/ppa"を追加してみました。

You can update your system with unsupported packages from this untrusted PPA by adding ppa:ubuntu-mobile/ppa to your system's Software Sources.

PPA for Ubuntu Mobile Team : “Ubuntu Mobile Team” team

これによってパッケージ情報の更新処理が行われるのですが、なぜかエラーになってパッケージの情報を得られませんでした。端末から手動で更新(sudo apt-get update)したところ、以下のエラーメッセージが出てきました:

無視 http://ppa.launchpad.net karmic/main Packages             
エラー http://ppa.launchpad.net karmic/main Packages
  404  Not Found
W: http://ppa.launchpad.net/ubuntu-mobile/ppa/ubuntu/dists/karmic/main/binary-i386/Packages.gz の取得に失敗しました  404  Not Found

配布元のフォルダを覗いてみたところ、karmic用のディレクトリがありませんでした……

そのうち9.10用のパッケージが用意されるんじゃないかとは思いますが、今のところこの手順ではダメなようです。

VAIO XにUbuntu 9.10 Desktop 日本語 Remixをインストール

Ubuntu 9.10の日本語版がリリースされたので、届いたばかりのVAIO Xにインストールしてみました。インストールは以下の手順でデュアルブート環境にしました:

  1. Windowsからデフラグ
  2. Windowsのパーティションを縮めて空き領域を作成(とりあえず32GB)
  3. そこにインストール

インストールは以下のページを参考にしました:

インストール直後の状態ではこんな感じです:

  • ネットワークは有線・無線とも問題なく使える
  • 画面の解像度は1366x768で表示できる。ただし画面の描画が遅い
  • 画面の輝度を変更できない(まぶしい……
  • 音がでない?

VAIO Xに近いと思われるVAIO type Pの情報を見ていると、専用のドライバを入れないと輝度を変更できない事が分かりました。

単に専用ドライバを使わないと性能が落ちる,というだけであれば,vesaドライバで動作させれば良いように思えますが,Poulsboではドライバ経由でバックライトの明るさの調整を行うため,汎用のvesaドライバで利用している場合,常に最高輝度で動作することになります。

第56回 VAIO Type Pを使う(1):Type P特有の問題・無線LANの有効化|gihyo.jp … 技術評論社

ディスプレイは何とかしないと目が痛いので、type Pの情報を参考にドライバを導入してみたいと思います。

CygTermを使ってputtyからCygwinを利用する

コマンドプロンプトからshellを利用するのは非常に使いづらいので、puttyから利用できるようにします。これにはCygTermを利用します。

必要なパッケージのインストール

CygTermはCygwinの中からビルドするので、Cygwinのsetup.exeから必要なパッケージをインストールしておきます。

  • Devel/gcc4
  • Devel/make
  • Web/wget

コンパイラgccとgcc4がインストール可能ですが、とりあえずgcc4でうまくいきました。あとwgetは必須ではないですが、いちいちブラウザからダウンロードしてCygwinのフォルダにコピーしなくて良くなるので入れました。

CygTermのビルド

Cygwin環境でビルドします。

> wget http://www.dd.iij4u.or.jp/~nsym/cygwin/cygterm/cygterm107.tgz
> tar xzf cygterm107.tgz
> cd cygterm107
> make
> mkdir ~/bin
> make install

CygTerm設定ファイルの書き換え

C:\cygwin\home\{ユーザ名}\bin\cygterm.cfg を書き換えます。とりあえずTERM・ENV_2を書き換えました。書き換えに当たっては以下のページを参考にさせていただきました:

TERM = "{puttyフォルダ}\puttyjp.exe" -load "cygterm" -telnet %s -P %d
TERM_TYPE = vt100
PORT_START = 20000
PORT_RANGE = 40
SHELL = /bin/bash
ENV_1 = MAKE_MODE=unix
ENV_2 = HOME=/home/{ユーザ名}

ENV_2のホームディレクトリを適切に設定しないと、設定ファイルが読み込まれなくなって正しく動作しなくなります。

putty側の設定

以下の設定を参考にして"cygterm"という名前の設定を作成しました。ただし文字コードは"UTF-8"に変えてあります。

端末->行規則オプション->ローカルエコー を"強制的にオフ"
端末->行規則オプション->ローカルラインの編集 を"強制的にオフ"
端末->キーボード->バックスペースキー を"Control-H"に
ウインドウ->変換 で文字コードを"MS_Kanji/Auto-Detect Japanese"に

>my output

CygTerm起動

後は C:\cygwin\home\{ユーザ名}\bin\cygterm.exe を実行すると、自動的にputtyが起動して、そこからCygwin環境を利用できるようになります。ただしCygTern配布ページにも書いてあるのですが、cygterm.exeはcygwin1.dllに依存しているので、PATH環境変数に"C:\cygwin\bin"を追加する必要があります。

これでかなり使いやすくなった。

cygwinのgitでutf-8のファイル名とコミット

WindowsのCygwin環境からgitを使う場合に、コミットメッセージにutf-8を使う場合の説明はいくつか見かけたのですが、ファイル名にutf-8を使う場合の説明が見あたらなかったのでメモ。

以下の手順でgit環境を作って試したところ、WindowsとMacで日本語ファイル名と日本語コミットログがうまく共有できました:

  • Cygwinのgitインストール
  • UTF-8 Cygwinのインストール
  • 設定ファイルの書き換え

Cygwinのgitインストール

これは普通にCygwinのsetup.exeからgitをインストールするだけです(gitはDevelカテゴリ配下にあります)

以下Cygwinを"C:\cygwin"にインストールした前提として話を進めます。

UTF-8 Cygwinのインストール

Cygwinを簡単にutf-8化するという素晴らしいものがあるので、これをインストールします。インストールは簡単でダウンロードしたファイルを展開して得られる"cygwin1.dll"を"C:\cygwin\bin"に上書きコピーするだけです。詳しくはダウンロードページを参照してください。

設定ファイルの書き換え

基本的にUTF-8 Cygwinを導入した時点でgitのutf-8化は完了しているのですが、そのままでは日本語の入力と表示に問題があるので設定ファイルを変更します。

合併のお知らせ|OKIソフトウェアにも書いてあるのですが、"~/.inputrc"を書き換えます。これによって日本語が入力できるようになります。

set convert-meta off
set output-meta on

次に"~/.bashrc"に以下の行を追加します。これによって"git log"したときに、日本語のコミットログが表示されるようになります。

export LANG=ja_JP.UTF-8

あとlsで日本語ファイル名を表示する場合、"--show-control-chars"オプションをつけないと正常に表示されないので、以下のaliasを定義しておくと便利です(これも合併のお知らせ|OKIソフトウェアに書いてあります)

alias ls='ls -F --show-control-chars'

これでファイル名とコミットログはうまくいきましたが、diffとかは全く試してません。