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コネクタを抜き差しする。すると、ドライブが認識される。
以後のインストールは問題なく進む。
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
再起動
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が定義されるから。
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の更新。
CPUの周波数管理
には、cpufreqdを利用した。
acpi=offだと、cpuspeedは温度情報などを利用してくれない。
さらに、AC電源のON/OFFを感知しない。
login
時にgnome-volume-managerとeggcupsが突然終了したというダイアログが多数出て、Desktopの背景も表示されな
くなるという問題が発生した。
問題の発生のトリガーは、
[メインメニュー]->[個人設定]->[リムーバブルストレージ]の実行(gnome-volume-
propertiesの起動)。
根本的な原因はup2dateやyumによるupdateで、prelinkがおかしなことになるかららしいが、詳細は不明。
問題の解決には、次のコマンドをrootで実行
/etc/cron.daily/prelink
概略:
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;
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 は、ユーザーのみが読み書き可能なようにパーミッションが設定されて
いなければならない。
/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を入手したので、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