トップ 最新 追記

誰も褒めてくれないから自画自賛する日記

nu-chon.org  「ぬ」あんてな  「ぬ」wiki  RSS
2000|01|02|03|04|05|06|07|08|09|10|11|12|
2001|01|02|03|04|05|06|07|08|09|10|11|12|
2002|01|02|03|04|05|06|07|08|09|10|
2004|01|02|03|04|05|06|07|08|09|10|11|12|
2005|01|02|03|04|05|06|07|08|09|10|11|12|
2006|01|02|03|04|05|06|07|08|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|03|04|05|06|07|08|09|10|11|12|
2009|01|02|03|04|05|06|07|08|09|10|11|12|
2010|01|02|03|04|05|06|07|08|09|10|11|12|
2011|01|02|03|04|06|07|
2012|01|03|05|06|08|09|
2013|01|08|09|
2014|01|03|05|08|12|
2015|01|04|09|10|
2016|01|
Sapporo RubyKaigi 02
Sapporo RubyKaigi 03
RubyKaigi
Sapporo RubyKaigi 2012
RubyKaigi 2013
2009年
4月
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30

2009-04-01 [長年日記]

ActiveRecordとconfig.time_zoneとtype_cast

config.time_zone をenvironment.rbで指定している環境では DB上のデータはUTCで保存され、ActiveRecordで取得すると config.time_zoneで指定したTimeZoneの日時に変換(type_cast)されて取得できるのだが、DBのテーブルに存在しないカラム名としてASでエイリアス指定した場合には、エイリアス名から column_for_attribute(attr_name) によって型が取得できないため、type_castできずに、元の値が文字列のままで返され、日時型にも変換されず、時差計算もされない。

activerecord/lib/active_record/attribute_methods.rb の以下の部分。

  def read_attribute(attr_name)
    attr_name = attr_name.to_s
    if !(value = @attributes[attr_name]).nil?
      if column = column_for_attribute(attr_name)
        if unserializable_attribute?(attr_name, column)
          unserialize_attribute(attr_name)
        else
          column.type_cast(value)
        end
      else
        value
      end
    else
      nil
    end
  end

2009-04-03 [長年日記]

linux-image-2.9.29-1-amd64

昨日installした。

http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=521596

のためか、DRMが有効にならず DRMのモジュールはロードされているが、Compizの一部の描写処理が重すぎて使いものにならない。

あと、madwifiモジュールがコンパイルできないね。

問題点はそれくらいかね。

ぬ、別の理由だな

描画の問題は、別の理由かね、これは。


2009-04-04 [長年日記]

DRIの設定

driconfにより、DRIの設定

synchronization with vertical refresh を 「Initial swap interval = 0、アプリケーションの設定に従う」ように設定した。

出力された~/.drircは以下のとおり。

<driconf>
   <device screen="0" driver="i915">
       <application name="Default">
           <option name="force_s3tc_enable" value="false" />
           <option name="no_rast" value="false" />
           <option name="fthrottle_mode" value="2" />
           <option name="bo_reuse" value="1" />
           <option name="vblank_mode" value="1" />
           <option name="allow_large_textures" value="2" />
       </application>
   </device>
</driconf>

glxgearの値が40FPSから190FPSくらいになった。


2009-04-07 [長年日記]

mem_cache_storeにARのインスタンスを格納するとき

Undefined Class/Module と吠えるので、以下のように記述しておくと幸せになれるらしい。(別の方法で回避してしまったので試していない)

before_filter  :preload_models

def preload_models()
 ModelA
 ModelB
 ...
 ...
 ...
 ModelZ
end

2009-04-08 [長年日記]

Yosemite

偶然、PC内の写真が目に入ったので。

キレイだった。

Tunnel View @Yosemite


2009-04-09 [長年日記]

Chromium Linux版を試してみた

http://www.osnews.com/story/21152/Google_Chrome_for_Linux_On_Its_Way_Take_It_for_a_Spin

Ubuntuのapt lineを追加してインストール。32bit版。

ちなみに、apt lineを追加して、aptitudeを実行すると警告が表示されるので、GPGキーを次のようにして登録する必要あり。

http://gentoo-blog.de/?p=501


2009-04-10 [長年日記]

Windowsの3Dデスクトップ

http://journal.mycom.co.jp/news/2009/04/09/025/index.html

コレ、試してみたい。


2009-04-11 [長年日記]

UXA + KMS + i945GM がうまくいかない

(翌日 ( http://www.nu-chon.org/d/?date=20090412 )、解決しました。)XのアクセラレーションでEXAのパフォーマンスが激落ちで、いろいろ調べていると、XAAはメンテされておらず、EXAももうすぐメンテされず、これからはUXAだ! ということで、いろいろ試してみた。

ちなみにうちの環境は、Thinkpad X60 (Video: Intel 945GM)。

最近、Debian sidのXorgまわりの更新が一斉にあり、xserver-xorg-video-intelも2.6.3になっているため、次のことを一通りやってみたのだが、うまくいかず。

  • カーネルが2.6.29で i915のKMS を有効にしてコンパイル(しなくても良いという話もある)
  • xorg.confのDevice SectionにてAccelMethodをUXAに設定
Option  "AccelMethod"   "UXA"
i915 modeset=1 

これで起動すると、GDMが立ち上がった段階でScreenが真っ黒になる。カーネルが刺さっているわけではないので、なんとか再起動はできるのだが。

また、modeset=1を指定しない場合には、一応UXAモードで立ちあがるが、Xorg.0.logに

(EE) intel(0): Failed to set tiling on front buffer: rejected by kernel

と表示される。xorg.confにてtilingをOffにできるが、そうするとパフォーマンスが出ないらしい。

現在こんな感じです。現在でもEXAを使っていたときよりは遥かにパフォーマンスが良い(glxgearsで、120fps => 400fps)のですが、KMSまでは使えていないので。

うまくできている先人の皆様、教えてください!


2009-04-12 [長年日記]

UXA + KMS + i945GM ついに動いた

なかなか動かなくて、電源長押しによる強制再起動も数十回。あきらめようかと思っていたのだが、シングルユーザモードで立ち上げた直後にi915.koをmodeset=1を指定してmodprobeでロードして、不意にGDMを立ち上げてみたらGDMが問題なく立ち上がることを発見。

このことから、rc?.dの中に悪いやつがいる! ということで色々試してみたところ、/etc/init.d/vbesave というスクリプトが実行されるとGDMが起動しないことが判明。中身をみてみると、VESAの状態を保存しようとしていた。今回は、framebufferはintelfbを利用してVESAは排除したいのでこのスクリプトを実行しないようにしたところ(/etc/default/acpi-support内で、SAVE_VBE_STATE=false を指定)、無事GDMが起動するようになった。

というわけで、最近のLinux Kernel2.6系の目玉の一つであるKMSを利用してXを利用できるようになった。

EXAを使うより高速(glxgearsの結果が 〜120fps → 〜450fps)になったし、VTとの切り替えがスムーズになった。(ちなみにglxgearsはベンチマークツールではないので過信しないように)

結局のところ方法は、

  • Debianパッケージのカーネルをそのまま利用(2.6.29-1-amd64)
  • /etc/modulesに以下の設定を記述(boot時のパラメタは指定してもムダ)
i915 modeset=1
  • /etc/X11/xorg.confのDeviceのセクションのオプションAccelMethodにUXAを指定
Option  "AccelMethod"   "UXA"
  • /etc/init.d/vbesave (acpi-supportというパッケージ)がある場合には処理が行なわれないように上記の設定を記述する。

という自己満足。

ときどきXが刺さる

昨日ようやくうまく動作した XのUXA + KMSであるが、1日に1回くらい刺さる。刺さった瞬間のログが無いのが厄介だな。

DebianのBTSもチラチラ見ているが、どちらかというと、Xorgサイトの情報を確認しないといけないだろうな。

さてはて。

フライフィッシング

2年ほど前から釣りを始めようと思っていたのだが、帯広のヲヤヂからフライフィッシングについて紹介していただいたので、とりあえずWikipediaをみてみた。

http://ja.wikipedia.org/wiki/%E3%83%95%E3%83%A9%E3%82%A4%E3%83%BB%E3%83%95%E3%82%A3%E3%83%83%E3%82%B7%E3%83%B3%E3%82%B0

絶対フライフィッシング通の人が書いているよな。表現が熱いもん(わら

もっと調べてみようと思う。難しそうで、楽しそうだ。

GDB

仕事でC言語を使うことは無いのだが、やっぱり基本なので、しっかりやっておくことにしようと思う。Linuxカーネルだとか、モジュールだとか、やっぱりC言語だしね。C言語(やC++)によるアプリケーションの作成は趣味でGCC, GTKを利用したエディタを作ってみたりしたことがあるのだが、GDBはまともに使ったことが無いというお恥ずかしい状況なので、まず基本から。

http://blog.miraclelinux.com/yume/2006/09/post_fa59.html

まぁ、ちょっとコマンドを覚える必要があるけど、この辺りはどの言語でも同じだね。

ちょっとLinuxカーネルと、X関連のソースコードを読みたいんだわさ。他人がバグ修正してくれるのを待っているのも悲しいし。

Linuxカーネルについて勉強したのも5年ほど前になるので、ちょっと復習。

http://www.hakodate-ct.ac.jp/~tokai/tokai/research/kmod.html


2009-04-13 [長年日記]

育ちの善し悪し

僕は育ちが悪いので、育ちの良い人から僕の所作を見ると、生理的に耐えられない箇所が結構あるんだろうな、と最近頻繁に考える。

小さい頃にくちゃくちゃ音をたてて食べないように厳しく躾をされてきた人は、音を立てて食べる人を生理的に受けつけないだろうし、そういう人とは遊びでも仕事でも付き合いたくないだろう。

さらには、育ちの悪い人は、こういう育ちの良い人の感覚に無頓着。

そういうこと。

RandRとUXAの組み合わせ

設定が悪いのかもしれないが、RandR(1.3)とUXAの組み合わせだと、まだbuggyな感じがする。

特にDual Displayにしたときの挙動があきらかにおかしい。


2009-04-14 [長年日記]

xf86-video-intel

2.6.99.901が出ているが、これは試さんといかん(なぜ?)

http://www.mail-archive.com/xorg-announce@lists.freedesktop.org/msg00587.html

これを見る限りでは膨大な量のKMS, DRI2系の変更、修正が入っている。implementよりもFixの方が圧倒的に多いように見える。

Add RandR 1.3 panning support by supporting the crtc set_origin function

Disable DRI2 buffer tiling on non-965, as those need fence regs for 2D

そうなのかー

Postfixのメッセージキューの最大サイズ

デフォルト値は10MB

message_size_limit = 10240000

をmain.cfに記述する。


2009-04-15 [長年日記]

madwifiとath5k

http://wireless.kernel.org/en/users/Drivers/ath5k によると、ath5kは、ANI (Adaptive Noise Immunity)とTX Power Calibrationが未実装なので、電波状況が悪い環境ではパフォーマンスが急激に落ちるらしい。madwifiはその点優れていたのだが、sidからmadwifi-sourceが消えてしまった(まぁ、2.6.29でコンパイルが通らなかったので、いずれにせよ利用できなかったのだが)。

MadWifiのプロジェクト( http://madwifi-project.org/ )自体が現在ではath5k/9kの方に力を入れているらしいので、楽しみに待つことにしましょうってことらしい。

ただ、dmesgに表示されるWarningがウザくてイヤだ。

xserver-xorg-video-intel=2:2.6.99.903-1 for amd64

experimentalにi386のパッケージしか無いのでamd64用にコンパイル。

基本的に必要なライブラリ関連はsidで取得できるものを利用しているので、本来はもっとバージョン番号の大きいライブラリを使用しないといけないものもあるかもしれんが、とりあえず。libdrm2もlibdrm-intel1も2.4.9なので大丈夫だと思うんだけど。./debian/rules binary で作成してdpkg -i にてインストール。

http://www.nu-chon.org/debs/xserver-xorg-video-intel_2.6.99.903-1_amd64.deb

http://www.nu-chon.org/debs/xserver-xorg-video-intel-dbg_2.6.99.903-1_amd64.deb


2009-04-16 [長年日記]

xserver-xorg-video-intel=2:2.6.99.903-1 for amd64 の調子

昨日インストールして以来、とりあえず、一度もXはクラッシュしていない。

よしよし。

xserver-xorg-video-intel 2.7.0-1

sidに入っていたのでupgrade.

   Turn on front buffer tiling in KMS.
   This code disabled front buffer tiling in KMS. Turn it on since kernel
   handles all tiling now, this improves performance of x11perf -aa10text
   from 97k to 286k on my 945GME.
   Should help with #20761, if not totally fix it.

とのことだが、ログには

(**) intel(0): Tiling enabled
(==) intel(0): VideoRam: -1 KB
(II) intel(0): Attempting memory allocation with tiled buffers.
(EE) intel(0): Failed to set tiling on front buffer: rejected by kernel
(II) intel(0): Tiled allocation successful.

と表示されるが、kernelにrejectされているのに、最後には Tiled allocation successful.って結局、どういうこっちゃねん?

また、

Clarify that the default acceleration is UXA if KMS is available

とのこと。実際に AccelMethodを指定いなくてもログをみたところ、UXAになっていた。これは想定どおり。

UXAとEXAの行く末

http://www.phoronix.com/scan.php?page=news_item&px=Njc2NAによると、

Intel's Keith Packard though has clarified that UXA will eventually 
die off with the GEM-related bits being moved back into the EXA 
architecture. 

とのことなので、いずれまたEXAがメインストリームになるのか。問題は、それがいつか?ってことだが。

メモ

うちでも発生しているのでメモ

Bug 20617 [KMS]icons on the desktop disappear when run "xrandr --output XX --right-of XX"https://bugs.freedesktop.org/show_bug.cgi?id=20617


2009-04-17 [長年日記]

VideoRamが-1KB

Xorg.0.logを見ていたら、

(==) intel(0): VideoRam: -1 KB

と表示されているのだが、これ、本当に大丈夫だろうか。WEBで検索しても、どこもちゃんとした値が表示されているのだが。不安でござる。ちなみにドライバのバージョンは、2.7.0-1 (sidのdeb)

Debian BTSにはある

Debian BTSで、KMS+Intel(UXA)の場合には、同様に-1KBになっているものを数件発見した。#524257など。

ただし、どのチケットもこの値については言及していないっぽいので、これって正常なのかしらね。

cpufrequtils

CPUFreqのondemandのモードは、表示関連の処理では実際にはCPUに負荷がかかっている時にでもクロック数を上げてくれないことがあるっぽい。

$ x11perf -aa10text

の結果を比較すると、singleで立ち上げてそのままXを立ち上げたときと、それ以外のときで倍くらい結果が違ったので、なんのdaemonがジャマしているんだろう?と思っていたのだが、確認したところ、/etc/init.d/loadcpufreq start を実行するとパフォーマンスが下がることが分かった。さらに確認したところ、x11perfで負荷をかけてもCPUのクロック数が上がっていなかった。GPU側の処理だからか、と思っていたが GOVERNORをperformanceにしてみたら結果がsingleで立ち上げた直後と同じになった。ondemandって、どういう基準になっているんだろう??

というわけでDebian sidの場合には、/etc/default/cpufrequtils に以下を記述。現在バッテリーが完全死しておりACでしか起動しないので問題なし。エコ推進論者の方にはお勧めできない。

ENABLE="true"
GOVERNOR="performance"

2009-04-20 [長年日記]

Sun と Oracle

http://www.oracle.com/sun/index.html

Sunの企業文化を考えると、IBMよりOracleの方が水があっていると思う。それに分野の競合が少ないだろうし。


2009-04-21 [長年日記]

xf86-video-intel git ceb3a2eaf9090d67e4dfcbed188125108ceab78d

fix overflow warning on videoRam あたりだろうか。

(==) intel(0): VideoRam: 2097151 KB

と表示されるようになった。

その他にもrandr関連などの修正あり。まだ良くわかっていないな。> 自分

あ、違うや。

gitでdiffをみてみたら、randrのデバッグコードを削除しただけだった。

- #if 0
- ...
- #endif

となっていた。ガックシ。


2009-04-22 [長年日記]

xf86-video-intel git=7b01aa5cc41620da5bb48f391ff98d9e82572e52

ちょっとふりまわされぎみなので、メモ。

   Revert "fix overflow warning on videoRam"
   
   This reverts commit 08ebde4715b87867184d42b60762cd774e151f5c, which was
   apparently untested and broke KMS.

broke KMSとか書いてありますよ。videoRamのoverflowに対する変更がRevertされたので、ログ内のVideoRamの表示が

(==) intel(0): VideoRam: -1 KB

という表示に戻った。

コードが

 #ifdef XF86DRM_MODE
       pI830->stolen_size = 0;
-      pScrn->videoRam = INT_MAX / KB(1);
+      pScrn->videoRam = ~0UL / KB(1); 
 #endif

だから、当然-1になるのだが、これが正しいのかどうか。

ちなみに、一時的に導入されたコードのINT_MAXの定義はinclude/linux/kernel.h内にあり、

#define INT_MAX        ((int)(~0U>>1))

だ。2進数で、011111111....1ってやつ。なるほどね。

InputHotplugGuide

X Strike Forceによる原文 http://wiki.debian.org/XStrikeForce/InputHotplugGuide と 武藤さんによる翻訳 http://kmuto.jp/d/index.cgi/2009/04/23/

なるほど、そういうことだったのか、という感じ。


2009-04-23 [長年日記]

Flash Plugin for Linux x86_64

http://forums.adobe.com/thread/202138

同じ問題で悩んで数ヶ月。もしかしてMultibyte固有の問題で、しかもx86_64でLinuxだから内側の人達があまり重要視していないとか?


2009-04-24 [長年日記]

Rinari

EmacsでのRails開発環境。いろいろセットアップした。

rspecにもしっかり対応してくれてウレシイ。

今日はとりあえずこんな感じ。あまりコードがかけなかった。

+----------------------+-------+-------+---------+---------+-----+-------+
| Name                 | Lines |   LOC | Classes | Methods | M/C | LOC/M |
+----------------------+-------+-------+---------+---------+-----+-------+
| Controllers          |    62 |    51 |       4 |       6 |   1 |     6 |
| Helpers              |     9 |     8 |       0 |       0 |   0 |     0 |
| Models               |    16 |    14 |       2 |       1 |   0 |    12 |
| Libraries            |     0 |     0 |       0 |       0 |   0 |     0 |
| Integration tests    |     0 |     0 |       0 |       0 |   0 |     0 |
| Functional tests     |     0 |     0 |       0 |       0 |   0 |     0 |
| Unit tests           |     0 |     0 |       0 |       0 |   0 |     0 |
| Model specs          |   122 |   102 |       0 |       0 |   0 |     0 |
| View specs           |   113 |    93 |       0 |       0 |   0 |     0 |
| Controller specs     |   231 |   185 |       0 |       0 |   0 |     0 |
| Helper specs         |    33 |    21 |       0 |       0 |   0 |     0 |
+----------------------+-------+-------+---------+---------+-----+-------+
| Total                |   586 |   474 |       6 |       7 |   1 |    65 |
+----------------------+-------+-------+---------+---------+-----+-------+
 Code LOC: 73     Test LOC: 401     Code to Test Ratio: 1:5.5

2009-04-27 [長年日記]

xf86-video-intel git=c231b41f3f3eb3ba9c8436d5fd93a30704ed437c

今回は、XAA, EXA、DRI1、旧バージョンのX serverのサポートの切り捨てがメイン。

DRI1に関して、

This includes disabling XVMC which is DRI1-only currently.

とのことで、debian/xserver-xorg-video-intel.install 内の

usr/lib/libI810XvMC.so*
usr/lib/libIntelXvMC.so*

をコメントアウトする必要あり。

$ git diff b8ca146b060e6f76bf048f1f6cf6ee89d38d015e HEAD|grep '^+ '|wc
    78     404    2980
$ git diff b8ca146b060e6f76bf048f1f6cf6ee89d38d015e HEAD|grep '^- '|wc
  1732    7876   61373

というわけで、コードのclean upがメイン。


2000|01|02|03|04|05|06|07|08|09|10|11|12|
2001|01|02|03|04|05|06|07|08|09|10|11|12|
2002|01|02|03|04|05|06|07|08|09|10|
2004|01|02|03|04|05|06|07|08|09|10|11|12|
2005|01|02|03|04|05|06|07|08|09|10|11|12|
2006|01|02|03|04|05|06|07|08|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|03|04|05|06|07|08|09|10|11|12|
2009|01|02|03|04|05|06|07|08|09|10|11|12|
2010|01|02|03|04|05|06|07|08|09|10|11|12|
2011|01|02|03|04|06|07|
2012|01|03|05|06|08|09|
2013|01|08|09|
2014|01|03|05|08|12|
2015|01|04|09|10|
2016|01|

2009年
4月
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30

Copyright (C)2005-2015 nu-chon.org.