ThinkPad X22 + Arch Linux

2002年に購入したX22英語キーボードモデル。Arch Linux(2014年6月版)を入れて快適な環境を構築するメモ

    CPU : Intel(R) Pentium(R) III Mobile CPU 800MHz
 Memory : 384MB
Product : 266295E
    HDD : Hitachi HTS541040G9AT00 40GB
Graphic : RV100/M6 [Rage/Radeon Mobility Series]
Arch Linux 4.4.1-2 で稼働中 2016年10月2日現在

30分でシステムインストール

$ loadkeys us
$ setfont Lat2-Terminus16(しなくていいかも)
$ vi /etc/locale.gen
en_US.UTF-8 UTF-8
ja_JP.UTF-8 UTF-8
$ locale-gen
$ export LANG=en_US.UTF-8
$ ping -c 3 8.8.8.8
$ cfdisk /dev/sda(今回はしなかった)
$ mkfs.ext4 /dev/sda2(ルートパーティション)
$ mkswap /dev/sda1(スワップ)
$ swapon /dev/sda1(スワップ有効)
$ lsblk /dev/sda
$ mount /dev/sda2 /mnt
$ vi /etc/pacman.d/mirrorlist
--> 日本のミラーを上に移動し、残り削除

//---------------------------
// Install the base system
//---------------------------
$ pacstrap /mnt base base-devel(-iスイッチつけない)
$ genfstab -U -p /mnt >> /mnt/etc/fstab
$ vi /mnt/etc/fstab
$ arch-chroot /mnt
$ vi /etc/locale.gen
en_US.UTF-8 UTF-8
ja_JP.UTF-8 UTF-8
$ locale-gen
$ echo LANG=en_US.UTF-8 > /etc/locale.conf
$ export LANG=en_US.UTF-8
//-------------------------------
// vim
//-------------------------------
$ pacman -S vim
$ mv /etc/vimrc /etc/vimrc.bak
$ cp /usr/share/vim/vim73/vimrc_example.vim /etc/vimrc
//-------------------------------
// Keyboard, Font, Locale
//-------------------------------
$ loadkeys us
$ setfont Lat2-Terminus16(しなくていいかも)
$ vi /etc/vconsole.conf
KEYMAP=us
FONT=Lat2-Terminus16
$ ln -s /usr/share/zoneinfo/Asia/Tokyo /etc/localtime
$ hwclock --systohc --utc
$ echo x22 > /etc/hostname
//-------------------------------
// Configure the network again
//-------------------------------
$ ip link
--->「enp2s8」 を見つける
$ pacman -S netctl
$ pacman -S ifplugd
$ cp /etc/netctl/examples/ethernet-dhcp /etc/netctl/
$ vi /etc/netctl/ethernet-dhcp
---> Interface=enp2s8 と修正する
$ systemctl enable netctl-ifplugd@enp2s8.service
//-------------------------------
// pacman, Grub, boot
//-------------------------------
$ vi /etc/pacman.conf
---> [core], [extra], [community] を確認する
$ passwd
$ pacman -S grub-bios
$ grub-install --recheck /dev/sda
$ cp /usr/share/locale/en\@quot/LC_MESSAGES/grub.mo /boot/grub/locale/en.mo
$ grub-mkconfig -o /boot/grub/grub.cfg
$ exit
$ umount /mnt
$ reboot

環境構築

//---------------------
// CapsとCtrlの入れ替え
//---------------------
$ cd cd /usr/share/kbd/keymaps/i386/qwerty
$ cp us.map.gz neggar.map.gz
$ gunzip neggar.map.gz
$ vim neggar.map
--右Altキーを左Alt キーと同じにする (Emacs)
include "linux-with-alt-and-altgr" //削除
include "linux-with-two-alt-keys" //追加
--CapsLock を左Controlキーと交換する
keycode 29 = Caps_Lock //変更
keycode 58 = Control //変更

$ gzip neggar.map
$ vim /etc/vconsole.conf
KEYMAP=us
KEYMAP=neggar

$ loadkeys neggar //再起動しても可
//---------------------
// Beep音を消す
//---------------------
$ echo "blacklist pcspkr" > /etc/modprobe.d/nobeep.conf
-- 出典
ArchWiki「Disable PC Speaker Beep (日本語)」
//---------------------------
//  locate,wget,zsh
//---------------------------
$ pacman -S mlocate
$ pacman -S wget
$ pacman -S zsh
$ pacman -S colordiff
//---------------------------
//  lshw, htop
//---------------------------
$ pacman -S lshw
$ pacman -S htop
$ pacman -S lsof
--lshwはハードウェア情報の詳細情報出力
--lsofはオープンしているファイルプロセスみせる
//---------------------------
//  サウンド設定
//---------------------------
$ pacman -S alsa-utils
$ alsamixer
* mキーを押してミュートを解除する
* ↑キーを押してボリュームを上げる
* F6キーを押してThinkPadの設定をする
$ speaker-test -c 2
//---------------------------
//  バッテリー状況
//---------------------------
$ pacman -S acpi
$ acpi -i
//---------------------------
//  ユーザ管理
//---------------------------
$ useradd -m -g users -s /usr/bin/zsh neggar
$ passwd neggar
$ VISUAL="/usr/bin/vim -p -X" visudo
$ visudo
neggar ALL=(ALL) ALL           //追加
Defaults:neggar  !authenticate //追加
--詳細は、ArchWiki『Sudo』をみよ
//---------------------------
//  USB 自動マウント設定
//---------------------------
ArchWiki「USB Storage Devices」にはあったけどしなかった。
最初は手動で入る必要がある
1.rootになる
2.マウントする為のディレクトリを作成
3.接続されているUSBデバイスの確認(大体sdb1)
4.サイトにあるファイルをコピー
5.デバイスのマウント
6.デバイスのアンマウント
$ su
$ mkdir /mnt/usb
$ dmesg
$ mount -t vfat /dev/sdb1 /mnt/usb
$ cp /mnt/usb/11-media-by-label-auto-mount.rules /etc/udev/rules.d/
$ umount /mnt/usb
-- 出典
http://qiita.com/items/f41791fd9975d00225f8
http://blog.livedoor.jp/tickstick/archives/43923.html
//---------------------
// zshrcをコピー
//---------------------
デスクトップArch Linux のものをUSB経由でコピーした。
内容がfreeBSD用の残骸が残っているので整理した。
//---------------------
// yaourt
//---------------------
$ vim /etc/pacman.conf
[archlinuxfr]
SigLevel = Never
Server = http://repo.archlinux.fr/$arch
$ pacman -Sy yaourt
//---------------------
// 日本語フォント「Ricty」
//---------------------
注意:一般ユーザでログインする
yaourt -S ttf-ricty
備考:結構時間がかかる。X22なので30分かかった。

//---------------------
// USB auto mount file 
//---------------------
USB 自動マウントのスクリプト。下記サイトにあるもの。
http://qiita.com/items/f41791fd9975d00225f8

//-----------------
// fbtermを導入
//-----------------
pacman -S fbterm
pacman -S libx86 (for VESA video card support)
$ sudo gpasswd -a neggar video
$ sudo chmod u+s /usr/bin/fbterm
$ vim .fbtermrc
font-names=Ricty
font-size=16
history-lines=10000
cursor-interval=250
ambiguous-wide=yes

サイトから入手したlocal.confを配置する。
$ vim /etc/fonts/local.conf
-- 出典
Googleで検索「fbterm Ricty arch linux」して下記:
http://qiita.com/items/ef6336732391e78dcb2c

ここまで設定してfbtermを起動したが、どうもフォントが汚い。
原因は下記のKMSだ。デフォルトでは有効だが、無効にすると綺麗になる。
しかし、問題がある。詳しくは下記。
libx86はオプションなので不要だった可能性。

//-----------------
// Xを導入
//-----------------
$ lspci | grep VGA
AMD/ATI RV100/M6 Rage/Radeon Mobility Series
$ pacman -S xf86-video-fbdev (*)
$ pacman -S xf86-video-ati
$ pacman -S xf86-input-synaptics
$ pacman -S xorg-twm xorg-xclock xterm
$ startx
$ exit

(*)X.org framebuffer video driverだが、不要かもしれない。
 fbtermのためになると思っている。根拠はない

KMSは、kernel mode-settingとのこと。
KMSを有効にするとXorg.0.logのエラーが消えてよいが、
fbtermのフォントが汚くなる。
KMSを無効にすると起動時に*ERROR* No UMS Suport in radeon moule!
がでる。いずれでもXは起動するが。
KMSを無効にする方法は下記2種類ある模様。
出典はArchWiki「ATI」より。
(その1)
$ vim /etc/default/grub
GRUB_CMDLINE_LINUX="nomodeset" //追加
$ grub-mkconfig -o /boot/grub/grub.cfg
(その2)
$ vim /etc/modprobe.d/radeon.conf //新規
options radeon modeset=0

今日は、どちらも試したが、(その2)とした。
エラーが嫌なのでKMSを有効にしたいが、fbtermを優先した...

//-----------
// Grub
//-----------
(その1)で、Grubの設定をするときに、下記を有効にした。
GRUB_COLOR_NORMAL="light-blue/black"
GRUB_COLOR_HIGHLIGHT="light-cyan/blue"

//-------------
// root -> zsh 
//-------------
rootのシェルをzshに変更した。bashの履歴をzshの履歴としてコピーする。もっと早くすればよかった。
$ cp .bash_history .zsh_history
$ chsh -s $(which zsh)

//-----------------
// Xorgの設定
//-----------------
fbdevをアンインストールした。
KMSを無効する設定も有効に戻した(上記"その2"の設定を止めた)
理由は、これらがあるとxorg.confの自動生成がうまくいかない感じだから。
つまり、xf86-video-atiだけがある状態にして、KMSも有効にした状態を作成したのだ。
そして、下記へ。
$ Xorg :0 -configure
ファイル xorg.conf.new が/root/ にできる。
$ cp /root/xorg.conf.new /etc/X11/xorg.conf

このxorg.confを修正した。サイト[1][2]を参考にしながら作成した。
それが下記
http://neggar.web.fc2.com/xorg.conf
______
[1] http://griffonworks.net/freebsd/xfree86_430/
[2] http://www.thinkwiki.org/wiki/Installing_Ubuntu_on_a_ThinkPad_X22

//-------------------------------
// Swap Caps_Lock and Control_L
//-------------------------------
// Please do "man xmodmap" to see swap above.
// Print the current keymap table
$ xmodmap -pke

// Swap Caps_Lock and Control_L
$ vim ~/.Xmodmap
remove Lock = Caps_Lock
remove Control = Control_L
keysym Control_L = Caps_Lock
keysym Caps_Lock = Control_L
add Control = Control_L
add Lock = Caps_Lock

$ vim ~/.xinitrc
if [ -s ~/.Xmodmap ]; then
    xmodmap ~/.Xmodmap
fi

//-------------------
// ratpoison
//-------------------
$ pacman -S ratpoison
$ vim .xinitrc
デスクトップのものを流用して下記を追加した。
xsetroot -solid black &
exec /usr/bin/ratpoison
>> http://neggar.web.fc2.com/.xinitrc

$ vim .ratpoisonrc
exec rpws -i
exec /usr/bin/rpws init 6 -k
set border 1
escape C-z
bind c exec xterm

とりあえず、ratpoisonrcには上記設定とした。
まだ調べて追加すると便利になるだろう。

//-------------------
// chromium
//-------------------
pacman -S chromium

残作業
(下記は、不要かも)
vi /etc/adobe/mms.cfg
下記をコメントアウトする
EnableLinuxHWVideoDecode=1
(下記は失敗したので、後日)
yaourt -S chromium-pepper-flash-stable
chromiumのURLに「chrome://plugins」と
入れて、
/usr/lib/PepperFlash/libpepflashplayer.soを有効にする。

//-------------------
// ratpoision の設定
//-------------------
$ vi ~/.ratpoisonrc
exec xsetroot -display :0.0 -gray

残作業
画面の下と右に余白が残っている。余白を取り除きたい。

//-------------------
// xterm の設定
//-------------------
デスクトップPCの .Xresources をコピーしてきた。
背景が黒になったし、フォントサイズも大きくなった。
Rictyフォントの設定は失敗した。
とりえあえず、よしとする。

//-------------------------------
// emacs-nox, screen, leafpad
//-------------------------------
$ pacman -S emacs-nox
$ pacman -S screen
$ pacman -S leafpad

//-------------------------------
// Dillo
//-------------------------------
$ pacman -S dillo
$ cp /etc/dillo/dillorc ~/.dillo/
$ vim ~/.dillo/dillorc
  google検索を一番目にあげた。
$vim ~/.dillo/cookiesrc
DEFAULT DENY
  .gmail.com ACCEPT
  .google.com ACCEPT
^^^
ここでGmailがみれるかテスト。ダメだった。
http://mail.google.com/mail/x/gp?source=mobileproducts&dc=gorganic
であれば、ログインできたが、日本語が一部しか表示されない。
ここで諦めた。

//-------------------------------
// LXTerminal
//-------------------------------
$ pacman -S lxterminal
$ vim ~/.xinitrc
East Asian Ambigous Width Character Setting for VTE terminal
VTE_CJK_WIDTH=1
export VTE_CJK_WIDTH
$ lxterminal
フォントをRicty、サイズを13にする
^^^
出典:
http://sakurapup.browserloadofcoolness.com/viewtopic.php?p=14820&sid=96aa4e5e1efbc944ac2909026dad018f

//-------------------------------
// ddskk  失敗
//-------------------------------
yaourt -S emacs-ddskk
※今日は、下記サイトにアクセスできず、失敗した。
http://openlab.ring.gr.jp/

//-------------------------------
// ibus + mozc  失敗
//-------------------------------
$ pacman -S ibus
$ pacman -S ibus-qt
$ yaourt -S mozc <------失敗!

vim .xprofile
export GTK_IM_MODULE=ibus
export XMODIFIERS=@im=ibus
export QT_IM_MODULE=ibus
bus-daemon -drx

ibus-setup <-----当然だが、mozcがでてこない。
結局、IMEのオンを「Ctrl+.」に設定し、IMEのオフを「Ctrl+,」にした。

//-------------------------------
// ibus + mozc  途中
//-------------------------------
上記のとおり、「yaourt -S mozc」は失敗した。
そこで、AUR からビルドする方法があるらしいので、それを試す。
$ wget https://aur.archlinux.org/packages/mo/mozc/mozc.tar.gz
$ tar xvf mozc.tar.gz
$ cd mozc
$ vim PKGBUILD
_emacs_mozc="yes" <---コメントをはずした。
i686だけにする。x86_64を削除した。
$ makepkg -s -i
...時間がかかる...

//-------------------------------
// ibus + mozc 成功
//-------------------------------
上記のとおり、「yaourt -S mozc」は失敗した。
そこで、AUR からビルドする方法があるらしいので、それを試す。
$ wget https://aur.archlinux.org/packages/mo/mozc/mozc.tar.gz
$ tar xvf mozc.tar.gz
$ cd mozc
$ vim PKGBUILD
_emacs_mozc="yes" <---コメントをはずした。
i686だけにする。x86_64を削除した。
$ makepkg -s -i
...時間がかかる...
...インストールには失敗するので下記のように個別に入れて成功
sudo pacman -U mozc-1.10.1390.102-2-i686.pkg.tar.xz
sudo pacman -U ibus-mozc-1.10.1390.102-2-i686.pkg.tar.xz
sudo pacman -U emacs-mozc-1.10.1390.102-2-i686.pkg.tar.xz

ibus-setup を起動して設定。

//----------------------
// ddskk
//----------------------
$ yaourt -S emacs-ddskk
$ wget http://openlab.jp/skk/dic/SKK-JISYO.L.gz
$ gunzip SKK-JISYO.L.gz
$ sudo cp -p SKK-JISYO.L /usr/share/skk
$ vim ~/.emacs.d/init.el
(setq skk-large-jisyo "/usr/share/skk/SKK-JISYO.L")
(setq skk-tut-file "/usr/share/skk/SKK.tut")

これで、SKK入力ができるようになった。

//----------------------
// dbskkd-cdb //失敗
//----------------------
$ yaourt -S dbskkd-cdb --失敗!

//---------------------------------
// fbterm と X window System の両立
//---------------------------------
fbterm と X window System を両立させようとしたが無理なようだ。
xf86-video-vesa と xf86-video-ati を別々に入れてGrubメニューのカーネルオプションでnomodeset(KMSを無効にするため)を追加し、メモリ使用量を調査したら以下のようだ。
・vesa だけのときOS起動直後は18M、twm起動したら43M、twmは25M消費
・ati を追加してOS起動直後は18M、twm起動したら43M、twmは25M消費
つまり、ati入れてもKMS無効ならvesaがXのグラッフィクとして使用されるということ。
Xのログみても、radeonを認識したあとにUnloadedされていた。

よって、vesaだけいれて、atiは削除した。

後は、KMS無効の設定をGrubにする設定が残っている(毎回カーネルオプションに追加するのは面倒なため)。
_____
ところで、uvesafbという選択肢がある。ArchWikiにも解説がある。設定が結構面倒そうだし、間違えると画面が黒になってどうしようもなくなる危険性を感じた。
あるサイトによると、uvesafbを設定するにはカーネルのリビルドやDebianのサイト[1]から何かをもってくる必要があるなど、一筋縄ではいかないらしい。自分には難しすぎてできないなあ。
[1]http://orumin.blogspot.jp/2013/06/plymouthuvesafb.html

//-----------------------------------------
// fbterm と X window System の両立(成功)
//-----------------------------------------
$ vim /etc/default/grub
GRUB_CMDLINE_LINUX="video=1024x768-16@85"
$ grub-mkconfig -o /boot/grub/grub.cfg
___
結果
・fbtermのフォントが綺麗になった。
・X window も起動するようになった
・KMSは有効のまま
・xf86-video-vesa は不要
・フレームバッファは radeondrmfb になる
注意点
・フレームバッファの情報は fbterm -v で確認できる
・1024x768-32にするとXの描画が遅くなる
・1024x768-16にするとXの描画がやや遅くなる
・どうやらフレームバッファを高い色深度にするとXの描画が遅くなるようだ
・X windowをメインで使うなら"video=1024x768-16@85"を削除すればよい
・radeondrmfbのマニュアル等はない。サイトにも情報がない。

//-----------------------
// fbterm + screen 
//-----------------------

試行中
- fbtermを起動して
screenも起動する設定を.zshrcに書いているが、うまくいかない。
- 
結局、jpでfbtermを起動し(UTF-8)、scでscreenを起動するaliasを作成した。
- screenrcをコピーした。画面下部にscreenの表示、Ctrl+Jでscreen呼び出しコマンドなど。

//-----------------------
//  w3m
//-----------------------
$ pacman -S w3m
$ pacman -S imlib2 //w3mで画像表示
$ w3mの設定で画像表示する設定をした。
フレーム表示する の設定をした方がいいらしい。

//------------
// zip unzip
//------------
$ pacman -S zip
$ pacman -S unzip

//------------
// ddskk 設定
//------------
ここに添付した自分のddskk の辞書をコピーした。


試してみよ
//------------------------------
// xterm のフォント設定
//------------------------------
$ vim ~/.Xresources
XTerm*faceName: Ricty
XTerm*faceNameDoublesize: Ricty

出典:
https://github.com/silenvx/dotfiles/blob/master/misc/default/HOME/.Xresources
-- クリップボードの共有の設定もあった。

//-----------------------------------
// X上のRictyフォントが細い問題対策
//-----------------------------------
$ vim ~/.fonts.conf
(ここに添付予定)
xtermでフォントの幅がおかしいんだが

//------------------------------
// xtermでフォントの幅がおかしい場合の対処
//------------------------------
$ vim ~/.Xresources
XTerm*forcePackedFont:      false


試してみよ
//---------------------
// SKK の設定
//---------------------
$ vim ~/.emacs.el
(setq skk-init-file "~/.skk.el")
-- 設定ファイルを ~/.skk.el とする

$ vim ~/.skk.el
(require 'skk-setup)                           // 不要?
(global-set-key "\C-xt" 'skk-tutorial) ;   // C-x t でチュートリアルの起動

;; 辞書ファイルの指定
(setq skk-server-jisyo "/usr/local/share/skk/SKK-JISYO.L")

;; チュートリアルファイルの指定
(setq skk-tut-file "/usr/local/share/skk/SKK.tut")

;; 括弧など ( {「 " ' を入力すると自動的に閉じ括弧も入力される。
(setq skk-auto-insert-paren t)

;; ▼モードで RET を入力したときに確定のみ行い、改行はしない。
(setq skk-egg-like-newline t)

;; 変換時に註釈 (annotation) を表示する。
(setq skk-show-annotation t)

___
出典:
http://www.yumi-chan.com/elisp/skk.html


//-------------------
// /tmp 180MB problem
//-------------------
yaourt -Syuaしたら、mozcのアップデートがきた。続行したら失敗した。
システム全体もおかしくなった。どうやら/tmpが180MBしかなく不足しているようだった。
ArchWiki『Fstab|tmpfs』に/tmpのサイズ指定方法があった。
以下の設定し、再起動したら2GBを認識してくれた。
yaourt -Syuaも動作中。コンパイルに時間がかかっている。

//---------------
// fstab の設定
//---------------
$ vim /etc/fstab
tmpfs    /tmp    tmpfs    nodev,nosuid,size=2G    0    0

//--------------------
// mozc のアップデート
//--------------------
また、「yaourt -S mozc」は失敗した。
PKGBUILD を書き換えて入れていたので、標準の手順ではエラーとなるようだ。
今回は、makepkg -s -i だけで成功したこと。

//-------------------------------
// xfontsel, xfd
//-------------------------------
pacman -S xorg-xfontsel
pacman -S xorg-xfd
pacman -S xorg-xlsfonts

//--------------------------
// X window System で行く
//--------------------------
$ vim /etc/default/grub で下記をコメントアウトした
GRUB_CMDLINE_LINUX="video=1024x768-16@85"
$ grub-mkconfig -o /boot/grub/grub.cfg
-- X window でchromiumの画面スクロールが遅いなど描画が遅いので。
-- 上記をはずすと早くなる(fbtermでのRictyフォントは汚くなるが)。
-- しばらくこれで行く
//----------------------------------
// flash が動作しない問題 ...失敗
//----------------------------------
既存のchromiumを削除してgoogle-chrome を入れてみる
$ pacman -R chromium
$ yaourt -S google-chrome
vi /etc/adobe/mms.cfg
下記をコメントアウトする
EnableLinuxHWVideoDecode=1
ダメだった。

それで、
$ yaourt -S chromium-pepper-flash-stable
しかし、chromiumのURLに「chrome://plugins」と入れて、
/usr/lib/PepperFlash/libpepflashplayer.soを有効にできない。それがでてこない。

結局失敗...

//-------------
// jwm の設定
//-------------
タスクバーのサイズを小さくする
$ cp -i /etc/system.jwmrc ~/.jwmrc
$ vim .jwmrc

その他も変更した。.jwmrcをみよ

//-----------------------
// アップデート直後問題
//-----------------------
pacman -Syu でシステムをアップデートしたら、起動直後に、
> The root device is not configured to be mounted
> read-write! It may be fsck'd again later.
という警告メッセージがでてきた。おそらくGrubが更新されたことが原因だと思う。
下記コマンドで、解決した。
$ vim /etc/default/grub
$ grub-mkconfig -o /boot/grub/grub.cfg

//----------
//  R を導入
//----------
$ pacman -S r
$ pacman -S tcl tk
$ pacman -S gcc-fortran
$ pacman -S texlive-bin
$ pacman -S poppler-data
$ pacman -S ed

//----------
//  SKK
//----------
$ skkdic-expr2 dot-skk-jisyo.txt .skk-jisyo > xxx
inserted by FC2 system inserted by FC2 system inserted by FC2 system