CF -R3にFedora Core 3をインストール


PanasonicのCF-R3を購入したので、リリースされたばかりのFC3をインストールしてみました。
最近忙しくて、きちんとしたWebページをつくっている暇がないので、とりあえずインストールメモを置いておきます。
何かの参考にでもしてください。

最 初のインストール
Kernel のインストール
Wireless LANのドライバ
Software Suspendの設定
CPUfreqd
gnome -volume-manager関連の問題
GNOME のメニュー編集
SSH でパスワードなしログイン
hald によるオートマウントの挙動を変える
ATOK for Linux のインストール
VMWare

最初のインストール

FC3の DVDイメージをダウンロードしてDVD-Rに焼 く。
USB接続DVD MULTIドライブでブート(BIOSで起動デバイスの順番を変えておく)。
利用したドライブはPanasonic製LF-P567C。
インストーラー起動後、インストールメディアの選択で、ローカルCD-ROMを選択。
すると、ドライブが検出できないとエラーが出るので、モジュールのインストールを選ぶ。
usb-mass-storageのモジュールをインストール後、一度DVDドライブのUSBコネクタを抜き差しする。すると、ドライブが認識される。
以後のインストールは問題なく進む。

kernelのインストール

FC3標 準カーネルの問題点は以下の2点。
1. カーネルの起動パラメータで、acpi=offにすると、CPUFreqが利用不能になる。これは、CPUの利用可能周波数を取得するために、ACPIの 機能を使っているから。しかし、acpi=onにすると、キーボードから輝度の調整や外部モニタへの切り替えが行えなくなる。
そこで、acpi=offでもCPUFreqが利用可能になるようなパッチをkernelに当てる。
このパッチは、Dothanコアの超低電圧版PentiumM 1.1GHzの利用可能周波数テーブルをあらかじめカーネルに組み込んでおくもの。

2. Software Suspend2が使えない。
CF-R3のAPMは当然ながらまともに動かないので、サスペンドにはSoftware Suspend2を用いる。
従って、パッチを当てる必要がある。

以下、カーネル更新の手順

kernel-2.6.9をdownload
swsusp2のpatchを当てる(http://softwaresuspend.berlios.de/)
/usr/src/linux-2.6.9/arch/i386/kernel/cpu/cpufreq/speedstep-centrino.c
に変更を加える。(通常、DothanコアのPentiumMではacpiを利用して利用可能な周波数を決めるが、CF-R3ではacpiを使うと画面輝 度の調整や外部モニタへの切り替えができなくなる。そこでacpi=offで起動するが、すると今度はCpufreqが周波数情報を取得できなくなる。以 下のpatchは周波数情報をカーネルに埋め込むためのもの。)
patchは以下の通り。

------------ここから--------------
99a100,110
> /* Ultra Low Voltage Intel Pentium M processor 1100MHz (Dothan) */
> static struct cpufreq_frequency_table dothan_1100[] =
> {
>       OP(600,  844),
>       OP(800,  956),
>       OP(900, 972),
>       OP(1000, 988),
>       OP(1100,1004),
>       { .frequency = CPUFREQ_TABLE_END }
> };
>
209a221,228
> #define _DOTHAN(cpuid, max, name)       \
> {       .cpu_id         = cpuid,        \
>         .model_name     = "Intel(R) Pentium(R) M processor " name "GHz", \
>         .max_freq       = (max)*1000,   \
>         .op_points      = dothan_##max, \
> }
>
>
211a231
>
227c247,248
<       { &cpu_ids[CPU_DOTHAN_B0], NULL, 0, NULL },
---
>       //{ &cpu_ids[CPU_DOTHAN_B0], NULL, 0, NULL },
>       _DOTHAN(&cpu_ids[CPU_DOTHAN_B0], 1100, "1.10"),
232a254
> #undef _DOTHAN
-----------ここまで----------------

swsusp2関連はモジュールにして再構築
make bzImage;make modules;make modules_install;make install
再起動


Wireless LANのドライバ

ipw2200 -0.13.tgzとfirmwareを download(http://ipw2200.sourceforge.net/)。 ドライバは、make;sudo make installでOK。
firmware は、/lib/firmware以下にコピー。
/etc/modprobe.confに、
alias eth1 ipw2200
を追加。

Update
kernel 2.6.10にアップグレードした際、ipw2200-1.0.1を利用した。
ipw2200-1.0.1.tgzを展開後、ipw2200.cを編集。
7384行付近の
#ifdef CONFIG_SOFTWARE_SUSPEND2
    priv->workqueue = create_workqueue(DRV_NAME, 0);
#else
    priv->workqueue = create_workqueue(DRV_NAME);
#endif
という部分を、
//#ifdef CONFIG_SOFTWARE_SUSPEND2
    priv->workqueue = create_workqueue(DRV_NAME, 0);
//#else
//    priv->workqueue = create_workqueue(DRV_NAME);
//#endif
というように、一部コメントアウトする。
これは、swsusp2関係をモジュールにしたため、CONFIG_SOFTWARE_SUSPEND2ではなく、
CONFIG_SOFTWARE_SUSPEND2_MODULEが定義されるから。

Software Suspendの設定

hibernate スクリプトをdownload&install。
/boot/initrd-2.6.9.imgの編集。
# Login as root
# mkdir myinitrd
# cd myinitrd
# gzip -dc < /boot/initrd-your-version-here.img | cpio -i

lib/以下に、/lib/modules/kernal-version/kernel/kernel/power/suspend_*.koをコ ピー。
initを編集
以下の6行を/sysのマウント直後に追加。

/bin/insmod  /lib/suspend_core.ko
/bin/insmod  /lib/suspend_lzf.ko
/bin/insmod  /lib/suspend_block_io.ko
/bin/insmod  /lib/suspend_text.ko
/bin/insmod  /lib/suspend_swap.ko
echo > /proc/software_suspend/do_resume

最後に、
find . | cpio -o -c |gzip -9 > /boot/initrd-2.6.9.img
でinitrdの更新。

CPUfreqd

CPUの周波数管理 には、cpufreqdを利用した。
acpi=offだと、cpuspeedは温度情報などを利用してくれない。
さらに、AC電源のON/OFFを感知しない。

gnome-volume-manager 関 連の問題

login 時にgnome-volume-managerとeggcupsが突然終了したというダイアログが多数出て、Desktopの背景も表示されな くなるという問題が発生した。
問題の発生のトリガーは、 [メインメニュー]->[個人設定]->[リムーバブルストレージ]の実行(gnome-volume- propertiesの起動)。
根本的な原因はup2dateやyumによるupdateで、prelinkがおかしなことになるかららしいが、詳細は不明。
問題の解決には、次のコマンドをrootで実行
/etc/cron.daily/prelink


GNOMEのメニュー編集

概略:
1) ~/.config/menus/applications.menu を編集
2) /usr/share/desktop-directories/ 以下に.directoryファイルを置く
3) ~/.local/share/applications/ 以下に.desktopファイルを置く

詳細例:
~/.config/menus/applications.menu
に以下の内容を追加
<Menu>
        <Name>Favorites</Name>
        <Directory>Favorites.directory</Directory>
        <Include>
                <Category>Favorites</Category>
        </Include>
</Menu> <!-- End Favorites -->

次に、このメニューに対応した.directoryファイルの作成
#cat /usr/share/desktop-directories/Favorites.directory
[Desktop Entry]
Name=Favorites
Name[ja]=お気に入り
Comment[ja]=お気に入り
Icon=gnome-applications.png
Type=Directory
Encoding=UTF-8

あとは、~/.local/share/applications/に.desktopファイルを置いていく
#cat ~/.local/share/applications/matlab.desktop
[Desktop Entry]
Encoding=UTF-8
Name=Matlab
MimeType=application/x-matlab;
Exec=/usr/local/bin/matlab
Type=Application
Terminal=false
NoDisplay=false
Categories=Favorites;

SSHでパスワードなしログイン

Server Aに、Client BからSSHコネクションを張る際に、パスワードが必要ないように設定する。

Bで公開鍵と秘密鍵を生成する。
%ssh-keygen -t dsa
この際、パスフレーズを空にする。

Aに公開鍵を送る。
scp id_dsa.pub username@A:

Aにログイン
#cd ~/.ssh
#cat ~/id_dsa.pub >> authorized_keys2

注意点: .ssh/ や、 authorized_keys2 は、ユーザーのみが読み書き可能なようにパーミッションが設定されて
いなければならない。

haldによるオートマウントの挙動を変え る

/usr/share/hal/fdi/ 以下の*.fdiを編集する。
例として、NTFSをマウントする際、umask=000をオプションとして与えるようにする。
/usr/share/hal/fdi/95userpolicy/storage-policy.fdi
を作成。内容は以下の通り。
#cat storage-policy.fdi
<?xml version="1.0" encoding="ISO-8859-1"?> <!-- -*- SGML -*- -->

<deviceinfo version="0.2">
  <device>
    <match key="block.is_volume" bool="true">
      <match key="volume.fsusage" string="filesystem">
          <match key="volume.partition.msdos_part_table_type" exists="true">
            <!-- HPFS/NTFS -->
            <match key="volume.partition.msdos_part_table_type" int="0x07">
              <merge key="volume.policy.mount_option.umask=000" type="bool">true</merge>
            </match>
          </match>
        </match>
    </match>
  </device>
</deviceinfo>

これで、NTFSをマウントする際、umask=000がオプションとして渡される。

特定のUSB HDDに対してマウントポイントを指定する。
下の例ではベンダ名がMaxtor 6で、モデル名がY080L0のHDDは、/media/usbhdd_<partition.number> にマウントされる。
<partition.number>はパーティションの番号に置き換えられる。

  <device>
    <match key="block.is_volume" bool="true">
      <match key="volume.fsusage" string="filesystem">
        <match key="@block.storage_device:storage.vendor" string="Maxtor 6">
          <match key="@block.storage_device:storage.model" string="Y080L0">
            <merge key="volume.policy.desired_mount_point" type="string">usbhdd_</merge>
            <append key="volume.policy.desired_mount_point" type="copy_property">volume.partition.number</append>
          </match>
        </match>
      </match>
    </match>
  </device>


ATOK for Linux のインストール

ATOK for Linuxを入手したので、FC2とFC3のマシンにインストールしてみた。

Fedora Core 2の場合

ATOK のCDに入っているインストールスクリプトで問題なくインストールできた。
iiimf関連のパッケージがFedora純正ではなく、ジャストシステムがパッケージしたものに置き換わる。
インストール後は、/etc/X11/xinit/xinitrc.d/xinput.shを編集する必要がある。
編集の内容は、ATOKのCD内にヘルプとして入っている。
Ctrl+Space で日本語変換が開始される。
日本語入力可能なウインドウには全て、[ATOK]という小ウインドウがくっつくようになる。
これはとても、うざい。

Fedora Core 3の場合

ジャ ストシステムのFAQにFC3 におけるインストール方法が書いてある。
その指示通りにインストール可能。
各ウインドウについて回るステータスウインドウを消すには、
iiimf-gnome-im-switcherを再インストールして、メニューの[個人設定] -> [他の個人設定]
-> [入力方式]から、言語ステータスバーを[無効]にするか、パネル上に押しやればよい。

なぜか、数ヶ月間使ってきたアカウントでは、ATOKパレットが有効にならないという不具合が生じた。
新規に作成したユーザーや、rootでは問題が起こらない。
~/.gnome2をいったん消去して、ログインし直したら問題が解決した。
原因は不明。
~/.gnome2を消去するとパネル上のランチャー類(自分で登録したもの)が消えるので注意。

VMWare

vmware-config.pl実行後、
cp -rp /dev/vm* /etc/udev/devices/
を実行。
sambaのワークグループ名などを変更する場合は、
/etc/vmware/vmnet1/smb.conf
を編集。

Rosegarden とTimidity++

Rosegarden4とTimidity++を使って、外部音源無しでDTMのまねごとをしてみる。
Timidity++はFC3に含まれている。
yum install timidity++
でOK。
Rosegardenは、 Planet CCRMA にFC3用のRPMがある。
libloやliblrdfなどに依存するので、同じページからダウンロードする。
一部SRPMから構築しなければならないものも有り。

起動:  まず、Timidity++をAlsa sequencer serverとして起動する。
timidity -iA -B2,8 -Os -EFreverb=0
次に、rosegardenを起動する。オプションなどは不要。

NoteEdit

譜面をきれいに作るだけなら、こちらの方がRosegardenより手軽。
http://noteedit.berlios.de/ からダウンロード。ソースからコンパイル。
MusixTeXやLilypondなどの楽譜タイプセットソフトが必要。
簡単なシーケンサ機能もある。

WPA supplicantを用いたWireless LAN接続

ipw2200のドライバーを最新のものにする。
http://ipw2200.sourceforge.net/
から、ソースとfirmwareをダウンロード。
まず、/lib/modules/kernel-version/以下から、ipw2200とieee80211関連のモジュールを削除する。
ソースは展開してmake;make install
firmwareは/lib/firmware以下に展開。
depmodを実行。

http://atrpms.net/
から、wpa_supplicantをダウンロードしてインストール。
証明書(phys-tsubono.p12)のあるディレクトリで、以下のコマンドを実行。
openssl pkcs12 -in phys-tsubono.p12 -cacerts -nokeys -out cacert.pem
openssl pkcs12 -in phys-tsubono.p12 -clcerts -nokeys -out clcert.pem
openssl pkcs12 -in phys-tsubono.p12 -nocerts -out prvkey.pem
出来上がった*.pemは、/etc/cert/以下にコピーする。

/etc/wpa_supplicant.conf を編集。

~>cat /etc/wpa_supplicant.conf
network={
ssid="rigaku-wireless"
key_mgmt=IEEE8021X
eap=TLS
identity="phys-tsubono"
ca_cert="/etc/cert/cacert.pem"
client_cert="/etc/cert/clcert.pem"
private_key="/etc/cert/prvkey.pem"
private_key_passwd="xxxxxx"
eapol_flags=3
}

起動、停止スクリプトを書く。

起動スクリプト
~>cat bin/wlanup
#!/bin/sh
sudo ifdown eth1
sudo ifconfig eth1 up
sudo wpa_supplicant -ieth1 -c/etc/wpa_supplicant.conf -Dipw -B
sudo dhclient eth1

停止スクリプト
~>cat bin/wlandown
#!/bin/sh
sudo pkill wpa_supplicant
sudo pkill dhclient
sudo ifconfig eth1 down


Top