kernel-2.6.27.12-170.2.5.fc10 でイヤホン復帰

Vostro 1400がkernel-2.6.27.9-159.fc10.i686でイヤホンが無音になる問題はkernel-2.6.27.12-170.2.5.fc10 で解消された。


$ []sudo rpm -Uvh 'http://kojipkgs.fedoraproject.org/packages/kernel/2.6.27.12/170.2.5.fc10/i686/kernel-2.6.27.12-170.2.5.fc10.i686.rpm'\[]
[] 'http://kojipkgs.fedoraproject.org/packages/kernel/2.6.27.12/170.2.5.fc10/i686/kernel-devel-2.6.27.12-170.2.5.fc10.i686.rpm'\[]
[] 'http://kojipkgs.fedoraproject.org/packages/kernel/2.6.27.12/170.2.5.fc10/i386/kernel-headers-2.6.27.12-170.2.5.fc10.i386.rpm'\[]
[] 'http://kojipkgs.fedoraproject.org/packages/kernel/2.6.27.12/170.2.5.fc10/noarch/kernel-firmware-2.6.27.12-170.2.5.fc10.noarch.rpm'[]
[]...省略...[]

VirtualBoxにDebian lennyをインストール

tksmashiw2009-01-21

Ubuntu Intrepidの上でHardy用のdebパッケージを作れるようになったのでVirtualBoxHardyを退役させ、代わりにKDEを載せたディストリビューションを入れることにした。KDEというとopenSUSEが思い浮かぶが、VirtualBoxの中の少ないリソースの上で走らせるので、Debian lenny(testing)をインストールすることにした。

  1. jigdoでISOイメージを落とす


$ []sudo yum install jigdo[]
[]...省略...[]
$ []wget 'http://cdimage.debian.org/cdimage/weekly-builds/i386/jigdo-cd/debian-testing-i386-kde-CD-1.jigdo' \[]
[]'http://cdimage.debian.org/cdimage/weekly-builds/i386/jigdo-cd/debian-testing-i386-kde-CD-1.template'[]
[]...省略...[]
$ []jigdo-lite debian-testing-i386-kde-CD-1.jigdo[]
[]...省略...[]
[]Images offered by `debian-testing-i386-kde-CD-1.jigdo':[]
[] 1: 'Debian GNU/Linux testing "Lenny" - Official Snapshot i386 kde-CD Binary-1[]
[]20090119-05:00 (20090119)' (debian-testing-i386-kde-CD-1.iso)[]
[]...省略...[]
[]If you already have a previous version of the CD you are[]
[]downloading, jigdo can re-use files on the old CD that are also[]
[]present in the new image, and you do not need to download them[]
[]again. Mount the old CD ROM and enter the path it is mounted under[]
[](e.g. `/mnt/cdrom').[]
[]Alternatively, just press enter if you want to start downloading[]
[]the remaining files.[]
[]Files to scan: [][] ← Enterを押す[]

[]-----------------------------------------------------------------[]
[]The jigdo file refers to files stored on Debian mirrors. Please[]
[]choose a Debian mirror as follows: Either enter a complete URL[]
[]pointing to a mirror (in the form[]
[]`ftp://ftp.debian.org/debian/'), or enter any regular expression[]
[]for searching through the list of mirrors: Try a two-letter[]
[]country code such as `de', or a country name like `United[]
[]States', or a server name like `sunsite'.[]
[]Debian mirror: [][]ftp://ftp2.jp.debian.org/debian/[]
[]ちなみにミラーのリストは「ftp://ftp.debian.org/debian/README.mirrors.txt」にある[]
[]...省略...[]

  1. VirtualBoxへインストール

ユーザー名はここでは「tks」にする。特につまった点は無かった。

  1. 再起動からGuest Additionalのインストールまで

まず「tks」がsudoでroot権限を持てるように、ログイン画面で「Menu」→「Console Login」を選び仮想コンソールにrootでログインする。
visudoで最後の行のコメントアウトを消して「sudo」グループがsudoできるようにする。

# User alias specification

# Cmnd alias specification

# User privilege specification
root    ALL=(ALL) ALL

# Uncomment to allow members of group sudo to not need a password
# (Note that later entries override this, so you might need to move
# it further down)
%sudo ALL=NOPASSWD: ALL

「tks」を「sudo」グループに加える。ついでに「tks」グループは不要なので削除。


[]debian~# groups tks[]
[]tks dialout cdrom floppy audio video plugdev netdev powerdev[]
[]debian~# usermod -g users -G dialout,cdrom,floppy,audio,video,plugdev,netdev,powerdev,sudo tks[]
[]debian~# groups tks[]
[]users dialout cdrom floppy sudo audio video plugdev netdev powerdev[]
[]debian~# groupdel tks[]
Alt+F7でkdmに戻りユーザー「tks」でログインする。
ここでネットワークが有効になっていなかったので右下のトレイからKNetworkManagerを操作し有線ネットワークを有効にした。
Konsoleを開き

$ []sudo -s[]
# []apt-get update[]
[]...省略...[]
# []apt-get dist-upgrade[]
[]...省略...[]
# []apt-get install build-essential linux-headers-2.6.26-1-686[]
[]...省略...[]
# []mount /dev/cdrom /mnt[]
# []/mnt/VBoxLinuxAdditionals-x86.run[]
[]...省略...[]
# []reboot[]
再起動でGuestAdditionalが有効になる。


参考:
Debian GNU/Linux スレッドテンプレ
Debian jigdo mini-howto

pbuilderを使ってHardy用のdebパッケージをIntrepidで作る

Fedoraではmockを使って異なるバージョンのFedora用のrpmパッケージを作ることができた。Ubuntu/DebianではPbuilderを使用することで同じことができる。
ここでは必要なパッケージはVirtualBoxにUbuntuのdebパッケージ作成環境を作るbashスクリプトでインストールされているとして、Ubuntu Intrepid上でgimp-xmc-plugin-1.1.4.tar.gzUbuntu Hardydebパッケージを作成する。


$ []cp -p /usr/share/doc/pbuilder/examples/pbuilder-distribution.sh ~/bin/pbuilder-hardy[]
[]便利なテンプレートが用意されているのでそれをPATHの通っているところにコピーして利用する[]
$ []mkdir -p pbuilder/result[]
$ []pbuilder-hardy create[] []Pbuilder環境の作成[]
[]Distribution is hardy.[]
[]...省略...[]
$ []cd debian[]
$ []wget 'http://www.sutv.zaq.ne.jp/linuz/tks/item/gimp-xmc-plugin-1.1.4.tar.gz' \[]
[]-O gimp-xmc_1.1.4.orig.tar.gz[] []ダウンロードして「〜.orig.tar.gz」の名で保存[]
$ []tar zxf gimp-xmc_1.1.4.orig.tar.gz[]
$ []cd gimp-xmc-plugin-1.1.4[]
$ []dpkg-buildpackage -S[] []ソースパッケージを作成[]
$ []pbuilder-hardy build ../gimp-xmc_1.1.4-0ubuntu1.dsc[] []Pbuilderでビルド[]
[]...省略...[]
$ []ls ~/pbuilder/result/[]
[]gimp-xmc_1.1.4-0ubuntu1.diff.gz gimp-xmc_1.1.4-0ubuntu1_i386.deb[]
[]gimp-xmc_1.1.4-0ubuntu1.dsc[] []gimp-xmc_1.1.4.orig.tar.gz[]
[]gimp-xmc_1.1.4-0ubuntu1_i386.changes[]
$ []lintian ~/pbuilder/result/gimp-xmc_1.1.4-0ubuntu1_i386.changes[] []手動でlintianを呼び出し検証[]

参考リンク:
PbuilderHowto別のアーキテクチャ用パッケージを作るにはここを参照
Ubuntu Manpage: pbuilder
パーソナルビルダー"pbuilder"

VirtualBoxの共有フォルダをautofsで使用する


VirtualBoxにはホストのフォルダをゲストからマウントして共有する「共有フォルダ」機能がある。スクリーンショットの様にフォルダ名「pub」で設定したホストのフォルダ「/home/public」をゲストの「/mnt」にマウントするには通常以下の様にする。


$ []sudo mount -t vboxsf -o uid=1000,gid=100 pub /mnt[]
これを毎回打つのは大変なのでゲストにautofsをインストールし「/misc/vbox」にアクセスしたら自動でそこに共有フォルダをマウントするように設定する。以下はUbuntu Intrepidでの作業ログ。

$ []sudo apt-get install autofs[]
[]...省略...[]
[]以下の特別パッケージがインストールされます:[]
[] libevent1 libgssglue1 libnfsidmap2 librpcsecgss3 nfs-common portmap[]
[]以下のパッケージが新たにインストールされます:[]
[] autofs libevent1 libgssglue1 libnfsidmap2 librpcsecgss3 nfs-common portmap[]
[]...省略...[]
$ []sudo vim /etc/auto.master /etc/auto.misc[]
/etc/auto.master:

#
# $Id: auto.master,v 1.4 2005/01/04 14:36:54 raven Exp $
#
# Sample auto.master file
# This is an automounter map and it has the following format
# key [ -mount-options-separated-by-comma ] location
# For details of the format look at autofs(5).
/misc   /etc/auto.misc --timeout=60
#/smb   /etc/auto.smb
#/misc  /etc/auto.misc
#/net   /etc/auto.net

/etc/auto.misc:

#
# $Id: auto.misc,v 1.2 2003/09/29 08:22:35 raven Exp $
#
# This is an automounter map and it has the following format
# key [ -mount-options-separated-by-comma ] location
# Details may be found in the autofs(5) manpage

cd              -fstype=iso9660,ro,nosuid,nodev :/dev/cdrom
vbox            -fstype=vboxsf,uid=1000,gid=100 :pub
#「vbox -fstype=.... :vbox」のようにkey(第1フィールド)と
# location(第3フィールド)を同じ名前にするとマウントに失敗する。


$ []sudo /etc/init.d/autofs restart[]
[]Stopping automounter: done.[]
[]Starting automounter: done.[]
$ []ls /misc/vbox[]
[]ホストの「/home/public」の中身が表示される[]

Mockを使ってFedora 9 のrpmパッケージをFedora 10 で作る

MockTricksにある通りMockを使うとchroot環境下に任意のバージョン・アーキテクチャの環境を作ることでその環境のrpmパッケージを作ることができる。以下はFedora 10 でMockを使ってFedora 9 のrpmパッケージを作った際の作業ログ。


$ []sudo yum install mock[]
[]...省略...[]
$ []groups tks[]
[]tks : users wheel vboxusers[]
$ []sudo usermod -G users,wheel,vboxusers,mock tks[] []ユーザーtksをグループmockに所属させる[]
$ []groups tks[]
[]tks : users wheel vboxusers mock[]
$ []cd /etc/mock[]
$ []ls[]
[]...省略...[]
[]fedora-10-i386.cfg fedora-7-x86_64.cfg fedora-rawhide-i386.cfg[]
[]fedora-10-ppc.cfg fedora-8-i386.cfg fedora-rawhide-ppc.cfg[]
[]...省略...[]
$ []sudo ln -s fedora-10-i386.cfg default.cfg[] []mockをcfg指定無しで実行したときは[]
[]fc10.i386のパッケージを作る様にする[]
$ []mock --init -r fedora-9-i386[] []fedora-9-i386chroot環境を作る[]
[]INFO: mock.py version 0.9.13 starting...[]
[]...省略...[]
$ []mock -r fedora-9-i386 --rebuild gimp-xmc-plugin-1.1.4-1.fc9.src.rpm \[]
[] --target i686[] []fedora 9 のi686パッケージを作る[]
[]INFO: mock.py version 0.9.13 starting...[]
[]...省略...[]
[]INFO: Done(gimp-xmc-plugin-1.1.4-1.fc9.src.rpm) Config(fedora-9-i386.cfg) 4 minutes 15 seconds[]
[]INFO: Results and/or logs in: /var/lib/mock//fedora-9-i386/result[]
$ []ls /var/lib/mock/fedora-9-i386/result/[]
[]build.log[]
[]gimp-xmc-plugin-1.1.4-1.fc9.i686.rpm[]
[]gimp-xmc-plugin-1.1.4-1.fc9.src.rpm[]
[]gimp-xmc-plugin-debuginfo-1.1.4-1.fc9.i686.rpm[]
[]root.log[]
[]state.log[]

OpenPGPでFirefox-3.1b2のソースtarボールの署名を確認する

Firefox-3.1のリリースが近づいているのでLinuxFirefoxのテーマの変更点を見るためにbeta2のtarボールをダウンロードしてOpenPGPで署名を確認してみた。


$ []wget 'ftp://ftp.mozilla.org/pub/mozilla.org/firefox/releases/3.1b2/source/firefox-3.1b2-source.tar.bz2'[]
$ []wget 'ftp://ftp.mozilla.org/pub/mozilla.org/firefox/releases/3.1b2/source/firefox-3.1b2-source.tar.bz2.asc'[]
$ []gpg2 --verify firefox-3.1b2-source.tar.bz2.asc[]
[]gpg: 2008年12月03日 22時23分57秒 JSTにDSA鍵ID 17785FE8で施された署名[]
[]gpg: 署名を検査できません: No public key[]
$ []gpg2 --recv-keys --keyserver hkp://subkeys.pgp.net 17785FE8[] []公開鍵を入手[]
[]gpg: 鍵17785FE8をhkpからサーバーsubkeys.pgp.netに要求[]
[]gpg: 鍵812347DD: 公開鍵“Mozilla Software Releases <releases@mozilla.org>”を読み込みました[]
[]gpg: 絶対的に信用する鍵が見つかりません[]
[]gpg: 処理数の合計: 1[]
[]gpg: 読込み: 1[]
$ []gpg2 --verify firefox-3.1b2-source.tar.bz2.asc[] []手に入れた公開鍵で検証[]
[]gpg: 2008年12月03日 22時23分57秒 JSTにDSA鍵ID 17785FE8で施された署名[]
[]gpg: “Mozilla Software Releases <releases@mozilla.org>”からの[][] 不正な [][]署名[]
$ []sha1sum firefox-3.1b2-source.tar.bz2[]
[]54147140a460a53385877f43c8f571d14e4f6d97[]
$ []wget 'ftp://ftp.mozilla.org/pub/mozilla.org/firefox/releases/3.1b2/SHA1SUMS'[]
$ []fgrep 54147140a460a53385877f43c8f571d14e4f6d97 SHA1SUMS[]
[]54147140a460a53385877f43c8f571d14e4f6d97 ./source/firefox-3.1b2-source.tar.bz2[] []sha1は合っている[]
[]バイナリtarボールの方で試してみる[]
$ []wget 'ftp://ftp.mozilla.org/pub/mozilla.org/firefox/releases/3.1b2/linux-i686/en-US/firefox-3.1b2.tar.bz2'[]
$ []wget 'ftp://ftp.mozilla.org/pub/mozilla.org/firefox/releases/3.1b2/linux-i686/en-US/firefox-3.1b2.tar.bz2.asc'[]
$ []gpg2 --verify firefox-3.1b2.tar.bz2.asc[]
[]gpg: 2008年12月03日 22時21分59秒 JSTにDSA鍵ID 17785FE8で施された署名[]
[]gpg: ”Mozilla Software Releases <releases@mozilla.org>”からの正しい署名[]
[]gpg: 警告: この鍵は信用できる署名で証明されていません![]
[]gpg: この署名が所有者のものかどうかの検証手段がありません。[]
[]主鍵の指紋: 8D6F 1BA4 A340 4DDB 3F2F D080 7447 4499 8123 47DD[]
[]副鍵の指紋: 3338 E6BA FF10 3B3D A6A9 E424 B57B 5484 1778 5FE8[]
ソースtarボールの署名の検証に失敗するがなぜだろう?

lapclomeのタブの高さとFirefoxのSVGサポート

lapclomeapclomeWindows向け*1微調整版と言う位置づけでオリジナルから極力変更を加えないつもりだが、タブの高さが狭すぎて使いにくい*2と言う方が結構いらっしゃるので内部に8px幅を広くしたタブの背景画像とそれを適用するサブスキンを同胞している。
chrome://browser/skin/subskins/widetab.css

.tabbrowser-tab {
  background: url("chrome://browser/skin/subskins/tab25.png") repeat-x 0 1px #2c
2c2c !important;
}

.tabbrowser-tab[selected="true"] {
  background-image: url("chrome://browser/skin/subskins/tab_sel25.png") !important;
}

.tab-image-left,
.tab-image-middle,
.tab-image-right {
  height: 25px !important;
}

サブスキンでは設定を反映させるため「!important」を使わざるを得ないのだが*3、そうするとPageStyle2Tabが働かないという報告を頂いた。
上記のwidetab.cssの後半だけ書けば取り合えずタブは広くなるが16pxのPNGを24pxに引き伸ばすため見た目が悪くなる。24pxの画像(tab25.png, tab25_sel25.png)を両方で使うのはオリジナルを尊重するスタンスからやりたくない。そこでsvg画像を使用してみようと思い立った。
tab.svg

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
   xmlns="http://www.w3.org/2000/svg"
   width="1"
   height="16">
  <defs>
     <linearGradient id="a2" x1="0" y1="1" x2="0" y2="8" gradientUnits="userSpaceOnUse">
      <stop style="stop-color:#dcdcdc;stop-opacity:0.31;" offset="0"/>
      <stop style="stop-color:#808080;stop-opacity:0.31;" offset="1"/>
     </linearGradient>
     <linearGradient id="a3" x1="0" y1="9" x2="0" y2="14" gradientUnits="userSpaceOnUse">
      <stop style="stop-color:#363636;stop-opacity:0.31;" offset="0"/>
      <stop style="stop-color:#4e4e4e;stop-opacity:0.31;" offset="1"/>
     </linearGradient>
  </defs>
  <rect style="fill:#f0f0f0;fill-opacity:0.455;" width="1" height="1" x="0" y="0" />
  <rect style="fill:url(#a2);fill-opacity:1" width="1" height="8" x="0" y="1" />
  <rect style="fill:url(#a3);fill-opacity:1" width="1" height="6" x="0" y="9" />
  <rect style="fill:#7d7d7d;fill-opacity:0.36;" width="1" height="1" x="0" y="15" />
</svg>

tab_sel.svg

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
   xmlns="http://www.w3.org/2000/svg"
   width="1"
   height="16">
  <defs>
     <linearGradient id="a2" x1="0" y1="1" x2="0" y2="8" gradientUnits="userSpaceOnUse">
      <stop style="stop-color:#efefef;stop-opacity:0.48;" offset="0"/>
      <stop style="stop-color:#c1c1c1;stop-opacity:0.48;" offset="1"/>
     </linearGradient>
     <linearGradient id="a3" x1="0" y1="9" x2="0" y2="14" gradientUnits="userSpaceOnUse">
      <stop style="stop-color:#9e9e9e;stop-opacity:0.48;" offset="0"/>
      <stop style="stop-color:#acacac;stop-opacity:0.48;" offset="1"/>
     </linearGradient>
  </defs>
  <rect style="fill:#f6f6f6;fill-opacity:0.60;" width="1" height="1" x="0" y="0" />
  <rect style="fill:url(#a2);fill-opacity:1" width="1" height="8" x="0" y="1" />
  <rect style="fill:url(#a3);fill-opacity:1" width="1" height="6" x="0" y="9" />
  <rect style="fill:#bfbfbf;fill-opacity:0.52;" width="1" height="1" x="0" y="15" />
</svg>

しかしこれらをbackground-imageに指定しても実際にタブの画像に反映されない。
調べてみるとsvg画像をCSSに指定できないというバグがたっている。
残念だが今のところは諦めるしかなさそうだ。

*1:本当はapclome for Linuxだったのだが現在に至るまでまったくLinux向けの要素を取り入れていない。

*2:逆にいえばコンパクトなのでいま流行のNetbookとかにいいんじゃないだろうか

*3:webページと違ってFirefoxのUIではセレクタの個別性による優先順位が働かないらしい。どこにバグが報告されているか見つけられなかった。