2012年6月2日土曜日

LCDサイズより大きなデスクトップを表示

現在使っているノートPCの画面サイズは1366x768。普段使う分にはそんなに不満はないのですが、A4サイズのPDF文書を読みながら会議するような場合には表示領域の狭さを感じます。

panningを設定して、いわゆる仮想デスクトップ領域を広くすればある程度解決するのですが、これをやると、ツールバーなどが仮想デスクトップ領域全体を対象に作成されるので操作性に若干問題が生じます。

こういう時に便利なのが、xrandrのscaleオプションを使った縮小表示(圧縮表示)です。これを使えば、LCDの画素数以上のデスクトップ画面を簡単に表示できます。縮小表示しても文字なんかは結構読めちゃうのでお勧めです。たとえば、デスクトップ画面を1640x922にするには、次のようにコマンドを実行します。
xrandr --output LVDS-1 --scale 1.2x1.2 --panning 1640x922 --fb 1640x922

それで自分の環境でもやってみようと昨晩試したのですが、ハードルが2つありました。一つは、NVIDIAのドライバではscale操作が効かないこと。これは、nouveauに切り替えることで問題は解消します。Fedora 16だとnouveauではGNOME 3はクラシカル表示になっちゃいますが、Fedora 17にすれば大丈夫でした。

もう一つの問題は、画面サイズは問題なく拡大できるのにマウスポインタの移動範囲が、従来の1366x768のままになってしまうこと。これはXサーバーのバグで、Fedora 17で採用されているバージョン1.12でも解消されていません。Chris Bagwellという方が修正方法を調べてくれているので、Xサーバーのソースパッケージを入手して、その通りに手パッチを当てます。パッケージをビルドしてインストールすることで、この問題も解消されました。何だかんだで一晩かかっちゃいましたよ。

2012年4月25日水曜日

zfs-fuseの利用にはライセンス上問題がある…らしい


最近気づいたのだが、有名なkinnekoさんにdisられていたようだ。直接、私の記事に宛てたものではないけれど、私の書いた記事内容をベースにした(記者さんの)記事宛なので同じことだろう。zfs-fuseの利用にはライセンス上の問題はないと理解していたのだが、どうやらそれは間違っていたようだ。

ライセンス上問題のあるものを堂々と記事にするというのは、日経はかなりダメだと思いますねBSDで使えばいいじゃないの。

と明言されている。うーむ。困った。かなり調べてみたのだが、どの辺にライセンス上の問題があるのか分からなかった。FUSEのコードにはLGPL部分とGPL部分があって、ファイルシステムのコードはLGPL部分にしか依存しないから、いわゆるGPL汚染が生じないと理解していた。しかしそれは間違いで、GPL部分との分離が上手く行っていないという話なのだと思う。私だけでなく、世間的に「zfs-fuseならOK」という誤解が広まっているので、どの箇所に問題があるかをご指摘くださると幸いだ。ライセンス違反があるというご指摘にはニュース性があるので、記事にして誤解を解くこともできると考えている。

2012年3月26日月曜日

AMDチップセットのWatchdogタイマー

日経Linux 2012年5月号の連載記事でWatchdogタイマーを取り上げました。その記事を書くにあたっていろいろ調べた際に気になったのが、AMDチップセット向けのWatchdogタイマードライバ「sp5100_tco」のこと。このドライバはカーネル2.6.38でマージされたのですが、以下の理由から、少なくともカーネル3.3までのものは使用できないことが多いんじゃないかなと思います。

使用できない最初の理由がI/Oメモリーのバッティングです。SP5100/SB700/SB800/SB900では、Watchdogタイマー用のI/Oメモリーとして「0xfec000f0-0xfec000f7」を使用するのですが、これはIOAPIC用に確保する「0xfec00000-0xfec003ff」の範囲内にあるため、ドライバ読み込み時に次のようなエラーが出て正常稼働しません。

SP5100 TCO timer: mmio address 0xfec000f0 already in use

この問題を解消するには、IOAPIC用に確保するI/Oメモリー範囲を小さくしてやる必要があります。具体的には、カーネルソースのarch/x86/include/asm/apicdef.hファイル中にある「IO_APIC_SLOT_SIZE」という定数を1024から128に減らしてカーネルを再構築します。そんなことして大丈夫かと思いますが、とりあえず問題ないみたいです(lkmlの関連スレッド)。

使用できないもう一つの理由がSB800以降に未対応なことです。SB800以降ではレジスタ構成が変化していますが、sp5100_tcoドライバでは現在のところこれが考慮されていません。つまりSP5100/SB700専用なわけです。にもかかわらず、SB800/900環境でもこいつが読み込まれてしまいます。SB800のリファレンスを見ながら改造版の「sp5100_tco.h」「sp5100_tco.c」をでっち上げたところ、一応、SB950環境で動作するようになりました(他は未確認)。しかしこちらはSB800/900専用でSP5100/SB700では動作しませんのでご注意を。どなたかちゃんとした統合ドライバを作って、mainlineカーネルにマージしてほしいものです。

(2012/11/10 追記)
Takahisa Tanakaさんがパッチを作成してmainlineへのマージ活動をされているようです(カーネルのbugzilla)。8月以降作業が中断しているっぽいですが大筋では良い感じで進んでいるようで、あとひと押しでマージされそうな印象を受けました。私の改造ドライバよりもそちらで開発されているパッチの方が(当然ながら)まともですので、そちらを使われることをお勧めします。パッチはbugzillaのページから入手できます。

2012年2月18日土曜日

ECCメモリー購入

Bulldozerマシンを組んだ」で書いた通り、昨年末にSATA 3.0機器検証用にFX-4100+GA-970A-D3構成のマシンを組んだ。せっかくのBulldozerマシンなので、こいつをメインのLinux機にして仮想化機能などをあれこれ試したい。となるとメモリーは沢山積みたいが、non-ECCだと大量のメモリーを載せるのはなんか怖い気がする。幸いなことに、Bulldozer内蔵のメモリーコントローラはECC対応だし、どうやらGA-970A-D3も非公式ながらECC対応しているらしい。


というわけで久しぶりにECC対応メモリーの値段を調べた。non-ECCに比べると高いが、昔に比べると驚くぐらい安くなっていて嬉しい限り。その中でも、SanMaxの「SMD-16G68EHP-13H」(DDR3-1333 4GB)の4枚セットが1万1580円とコスパが良かったので、それを購入した。うまく動くといいが(追記:何の問題も無く動作しました。ECC有効無効はBIOSで設定可能)。

2012年1月4日水曜日

Fedora 15/16でESSIDステルスAPに接続する方法

テストマシンにFedora 16を入れて無線LAN接続させようとしたら、NetworkManagerのGNOME3アプレットにESSIDステルス機能を有効にしたアクセスポイント接続用の設定項目が無いことに気づいた。あれ、この問題ってまだ修正されていないんだっけ?


とりあえず、Red HatのBugzillaで紹介されている以下のコマンドを実行すれば設定ダイアログが表示されて接続できるようになりますが、ちょいと不便ですね。より美しい解決策を模索されているのでしょうが、それが実現できるまでは、一時しのぎでいいのでボタンを一つ追加して欲しかったりします。


gdbus call --session --dest org.gnome.network_manager_applet --object-path /org/gnome/network_manager_applet --method org.gnome.network_manager_applet.ConnectToHiddenNetwork

すいません、大ボケかましてました。Bugzillaのツリーを最後まで読んだら、ネットワーク設定画面のネットワーク名選択のプルダウンメニューで「その他...」を選べばいいよ、としっかり書いてありました。「ネットワーク名」の文字が薄く表示されていることで、選択不可能な項目かと思い込んでいましたよ。Fedora 15/16のどっちもこれで行けますね。お騒がせしました。