まずは、fedora14を入れるSDカードを用意。今回はamazonで安く仕入れた東芝の8GBを利用。
パーティションは
/boot ext3 300MiB
/ ext4 (ジャーナルなし) 残り全部
swap 500MiB
で切ってみた。
swapなんていらないよな〜なんて話もあるし、あまり使って無かった気がするけど、まぁ一応切っておく。SDカードも使い切らないから。
ジャーナルなしext4は、gpartedでパーティションを切ってから設定したので
tune2fs -O ^has_journal /dev/mmcblk0p2
した。
前はきっとjournalに書きまくったせいでSDカードが壊れたに違いないということです。はい。
このとき、fstabを書くときに楽をするため?、パーティションにラベルを設定。
tune2fs -L rootfs /dev/mmcblk0p2 みたいな感じ。
これをしておくと、fstabのデバイスのところに、LABEL=”rootfs” とかかける。
man tune2fs とか、 man fstab 参照。
fedora14のrootfsは、http://lists.fedoraproject.org/pipermail/arm/2011-December/002386.htmlで入手できるものを使用。まぁ多分使えてる。デフォルトのrootのパスワードは、fedoraarm
fstabは適当に編集。 /tmp /var/lock/subsysはtmpfsにした。
試しにtftpでカーネルを読み込んで、nfsで起動させようとしたが、うまくいかないので、こちらは断念。
SDカードからなら起動できた。(/bootに、最新のkernelをおいときました。 いつもの、http://sheeva.with-linux.com/sheevaから拾えるものです。)
次に、uImageからの起動時に、/のデバイスをfsckしに行って待ってしまうのを解消するために、uinitrdを作成する。
http://www.mulsys.net/blog/archives/2010/02/864.html (Wayback Machine経由) http://legacyos.homeip.net/sheeva/ (リンク切れ) を参考にして、まずはsheevaplugでfedora14に入ってから、
# cd /boot
mkinitrd ./initrd-3.2.5 3.2.5
mkimage -A arm -O linux -T ramdisk -C gzip -a 0x0 -e 0x0 -n "3.2.5 ramdisk" -d ./initrd-3.2.5 /boot/uInitrd-3.2.5
ln -s uInitrd-3.2.5 uInitrd
reboot
u-bootの設定に入って
>> setenv bootargs_mmc 'console=ttyS0,115200 root=/dev/mmcblk0p2 rootfstype=ext4 rootdelay=3'
> setenv sd_prepare 'mmc init ; ext2load mmc 0:1 0x800000 /uImage; ext2load mmc 0:1 0x1100000 /uInitrd'
> setenv bootcmd_sd 'setenv bootargs $(bootargs_mmc); run sd_prepare; bootm 0x800000 0x1100000'
> setenv bootcmd 'run bootcmd_sd; run bootcmd_nand'
> saveenv
> reset
(bootcmd_nandには、以前設定した、nandフラッシュから立ち上げるためのコマンドが入っています。
u-bootを更新したので、mmc initとなっていることに注意。)
これで無事に起動できたので、早速いろいろインストール
yum install emacs mtd-utils* openssh-clients lzop nano git-all etckeeper w3m
ここらで、sheeva.with-linux.comから拾ったREADME-SHEEVA-UPDATE.sh をもう一度やって、一応アップデートしておく。
yum install httpd mysql ruby php ruby-irb rubygems php-mbstring php-mysql ruby-sqlite3
zabbix があったので、あとで遊んでみようと入れてみる。
yum install zabbix zabbix-web-sqlite3 zabbix-server-sqlite3 zabbix-agent zabbix-docs
以前使っていたものを思い出しながら入れていく。まずはプリンタ設定とntp。
yum install cups ntpdate ntp
ntp設定は不要なようだ。デフォルトで動く。
タイムゾーンをJSTに変えておく、、、。
cp /usr/share/zoneinfo/Japan /etc/localtime
ハードウェアクロックをUTCで保存するように、/etc/adjtime のLOCALをUTCに書き換え。(趣味)
hostname が、デフォルトで、fedora-armというのになっているので、 いつものやつに変える。
/etc/sysconfig/network の編集
作業は明日以降ということにしてここらで寝ます。
=====
続き
yum install screen nkf mysql-server sane xinetd sdparm
cupsの設定
以前同様 http://honana.com/system/cups.html に従って、、、
・/etc/cups/cupsd.confの編集
Listen 631 を追記
<Location /> <Location /admin > <Location /admin/conf>の中に allow 192.168.0.0/24を追記
・openssl req -new -nodes -x509 -keyout /etc/cups/ssl/server.key -out /etc/cups/ssl/server.crt -days 3650
・/etc/init.d/cups/restart
・https://192.168.0.2:631/admin でプリンタ追加。rawドライバを選択。(=sheevaplugのIPアドレスです。)
そろそろ疲れてきたので、etckeeperのgitで、バックアップのetcから、設定ファイルのへんこうになっているところを探してみる。
cd /etc
git remote add f12 /path/to/back/up/etc # パスは嘘です!
git fetch f12
git diff --summary f12/master master
うーん、多い。とりあえず、httpd/conf.dと、手で書いたanacronのシェルは復旧しておく。
# cd /etc/httpd/conf.d
git checkout f12/master -- .
これで一応 git diff を見て、変更を確認。 うーん。便利。
====
sambaの設定。sambaのパスワードをどうやって移すのか調べた。
まずは yum install samba
とりあえず、バックアップしてあった以前の環境にchrootして、
# pdbedit -i tdbsam -e smbpasswd:aaa
してから、chrootから抜けて、aaaファイルを適当な場所に移して
# pdbedit -i smbpasswd:aaa -e tdbsam
してユーザアカウントを移す。
次に、またetckeeperのgitを見ながらsmb.confを移して、
/etc/init.d/smb start && chkconfig smb on
/etc/init.d/nmb start && chkconfig nmb on
====
スキャナも使えるようにする。
yum install sane xinetd
設定はhttps://ttandai.info/archives/734で以前やった通り。だけど、まぁ、etckeeperでcheckoutするだけ。
/etc/xinetd.d/saned はこんな感じ
# default: off
description: The sane server accepts requests
for network access to a local scanner via the
network. copied from manpage of sane.
service sane-port
{
port = 6566
socket_type = stream
wait = no
user = root
user = saned
group = saned
server = /usr/sbin/saned
}
====
php、mysqlも、設定をetckeeperから引いて、走らせるだけで終わり。
====
メールはまたeximに入れる。いい加減postfixとかにするべきかとも思うが、以前設定したものをそのまま使うので、、。
====
anacronジョブでやっていたバックアップものを復旧。
====
pukiwikiもちゃんと動いた。でもそろそろdokuwikiにしようかな。
====
バックアップ用のハードディスクに、メインのものと同じ容量のハードディスクを用意したので、そこに移して、おしまい。
全体的に、etckeeper便利ってことでした。