-->
ラベル kurobox の投稿を表示しています。 すべての投稿を表示
ラベル kurobox の投稿を表示しています。 すべての投稿を表示

2011-07-12

kuroboxHGのファンの回転数

kuroboxHGのファンの回転数の変更を細かくする。

netcat6, hddtempをインストールしてncコマンドで温度を取得する。
$ rcsdiff -r1.1 /etc/config-archive/etc/conf.d/hddtemp,v /etc/conf.d/hddtemp
===================================================================
RCS file: /etc/config-archive/etc/conf.d/hddtemp,v
retrieving revision 1.1
diff -r1.1 /etc/conf.d/hddtemp
12c12
< HDDTEMP_DRIVES="/dev/hda /dev/hdb"
---
> HDDTEMP_DRIVES="/dev/sda"
$ nc localhost 7634;echo
nc: using stream socket
|/dev/sda|ST3250823A|48|C|

rc.localファイルのようなファイルを設置するディレクトリにshスクリプトを設置する。
$ cat /etc/local.d/hddtemp.start | grep -v ^$ | grep -vP '^#(?!!)'
#!/bin/sh
TEMPLIMIT=48
SLEEP=30
PATH="/bin:/usr/bin"
CURRENT_SLEEP=0
BUF=""
IFS='|'
HDDTEMP=0
CHANGE_MODE=""
CURRENT_MODE=""
while true
do
    CURRENT_SLEEP=$SLEEP
    BUF=$(nc localhost 7634 2>/dev/null)
    set -- $BUF
    HDDTEMP=$4
    if [ "$HDDTEMP" -le $TEMPLIMIT ]; then
        CHANGE_MODE="low"
    else
        CHANGE_MODE="high"
    fi
    if [ "$CHANGE_MODE" != "$CURRENT_MODE" ]; then
        if [ "$CHANGE_MODE" = "low" ]; then
            logger -t hddtemp "Temperature is Low.  Setting Fan Low  "`echo $HDDTEMP C`
            echo -n '\\\\' > /dev/ttyS0
            echo -n 'ffff' > /dev/ttyS0
        else
            logger -t hddtemp "Temperature is High. Setting Fan High "`echo $HDDTEMP C`
            echo -n ']]]]' > /dev/ttyS0
            echo -n 'gggg' > /dev/ttyS0
            CURRENT_SLEEP=$[ $SLEEP * 10 ]
        fi
    fi
    CURRENT_MODE=$CHANGE_MODE
    sleep $CURRENT_SLEEP
done &

shスクリプトを起動する。
$ sudo chmod +x /etc/local.d/hddtemp.start
$ ll /etc/local.d/hddtemp.start
-rwxr-xr-x 1 root root 1560 2011-07-11 15:39:23 /etc/local.d/hddtemp.start*
$ sudo /etc/local.d/hddtemp.start

確認する。
$ sudo tail -n30 /var/log/messages|grep hddtemp
Jul 12 00:54:26 kuroboxhg hddtemp: Temperature is High. Setting Fan High 49 C
Jul 12 00:59:26 kuroboxhg hddtemp: Temperature is Low.  Setting Fan Low  48 C
Jul 12 01:12:28 kuroboxhg hddtemp: Temperature is High. Setting Fan High 49 C
Jul 12 01:17:28 kuroboxhg hddtemp: Temperature is Low.  Setting Fan Low  48 C
Jul 12 02:36:07 kuroboxhg hddtemp: Temperature is High. Setting Fan High 49 C
Jul 12 02:41:07 kuroboxhg hddtemp: Temperature is Low.  Setting Fan Low  48 C
$ pstree -pal 8902
hddtemp.start,8902 /etc/local.d/hddtemp.start
  └─sleep,17012 30

2.6.25と比べて ttyS0, ttyS1 が違う。
$ uname -a
Linux kuroboxhg 2.6.38-gentoo-r6 #2 Wed Jun 15 02:04:57 JST 2011 ppc 82xx Linkstation I/Kurobox(HG) GNU/Linux

2011-06-12

PORTDIR_OVERLAYの追加 part2

パッケージのディレクトリを追加します。
$ grep ^PORTDIR_OVERLAY /etc/make.conf
PORTDIR_OVERLAY="${PORTDIR_OVERLAY} /usr/local/portage/test"

パッケージのコピー。
$ cd /usr/local/portage/test/sys-apps/
$ sudo cp -ri /usr/portage/sys-apps/kuroevtd/ .

パッチの作成。
$ cd /tmp/
$ tar xvzf /usr/portage/distfiles/kuroevtd_1.1.3.tgz
$ cd kuroevtd/
$ sed -e "s#/dev/ttyS1#/dev/ttyS0#g" kuroevtd.c > kuroevtd.c.new
$ diff -u kuroevtd.c kuroevtd.c.new > kuroevtd-1.1.3-ttyS0.patch
$ sudo cp -i kuroevtd-1.1.3-ttyS0.patch /usr/local/portage/test/sys-apps/kuroevtd/files/

ebuildファイルの作成。
$ cd /usr/local/portage/test/sys-apps/kuroevtd/
$ sudo cp -i kuroevtd-1.1.3.ebuild kuroevtd-1.1.3-r1.ebuild
$ sudo vi kuroevtd-1.1.3-r1.ebuild

$ diff -u kuroevtd-1.1.3.ebuild kuroevtd-1.1.3-r1.ebuild
--- kuroevtd-1.1.3.ebuild       2011-06-12 17:02:40.000000000 +0900
+++ kuroevtd-1.1.3-r1.ebuild    2011-06-12 17:04:06.000000000 +0900
@@ -2,6 +2,8 @@
 # Distributed under the terms of the GNU General Public License v2
 # $Header: /var/cvsroot/gentoo-x86/sys-apps/kuroevtd/kuroevtd-1.1.3.ebuild,v 1.3 2007/07/02 15:27:48 peper Exp $

+inherit eutils
+
 DESCRIPTION="Monitors the Kurobox and LinkStation power and reset buttons."
 HOMEPAGE="http://kuro.dsk.jp/"
 SRC_URI="http://kuro.dsk.jp/data/bin/${PN}_${PV}.tgz"
@@ -19,6 +21,8 @@

 src_unpack() {
        unpack ${A}
+       cd "${S}"
+       epatch "${FILESDIR}/${P}-ttyS0.patch"
        sed -i -e 's:/etc/kuroevtd:\0.d:' \
                ${S}/kuroevtd.c ${S}/README
 }

インストール。
$ sudo rm -i kuroevtd-1.1.3.ebuild
$ sudo ebuild kuroevtd-1.1.3-r1.ebuild manifest
$ emerge -avtp kuroevtd
...
$ grep ttyS1 /usr/sbin/kuroevtd; echo $?
バイナリー・ファイル/usr/sbin/kuroevtdは一致しました
0
$ grep ttyS0 /usr/sbin/kuroevtd; echo $?
1
$ sudo emerge -avt kuroevtd
...
$ grep ttyS1 /usr/sbin/kuroevtd; echo $?
1
$ grep ttyS0 /usr/sbin/kuroevtd; echo $?
バイナリー・ファイル/usr/sbin/kuroevtdは一致しました
0

参考URL。
http://devmanual.gentoo.org/ebuild-writing/functions/src_unpack/index.html
http://devmanual.gentoo.org/ebuild-writing/functions/src_prepare/index.html
http://devmanual.gentoo.org/ebuild-writing/functions/src_prepare/epatch/index.html

# ttyS1 => ttyS0 は 2.6.28 以上? 2.6.38の場合は、そうなっている。
# 前面のスイッチ => 3秒以内に、押す離すを2回 => shutdown -r now
# 前面のスイッチ => 押しっぱなし => shutdown -h now
# 裏面のスイッチ => /etc/kuroevtd.d/resetpress の方はubootでemモードに入るので無し。
# たぶん shutdown -r now が動くだけ。
# write_ng, /dev/fl3, /dev/mtdblock2 などを設置すれば動くかもしれない。
# write_ng は mknod して NGNG を書くとか。
# ubootの場合 run emboot なので書きこんでrebootしても無理かもしれない。

2011-06-04

kuroboxHGのカーネル更新

2.6.25 => 2.6.27, 2.6.38 などにする場合、
u-bootを1.1.4 => 1.2.0に更新する。
kuroboxHG.dtbというファイルを/boot/に設置する。

u-boot-1.2.0のバイナリは下記で配布されている。
http://mizupc8.bio.mie-u.ac.jp/pukiwiki/index.php?LinkStation%2F%E7%8E%84%E7%AE%B1%2Fkernel#g31b0b2f

u-bootの書き込みとkuroboxHG.dtbの作成は下記を参考にする。
http://www.tkn.mydns.jp/blog/?p=1441
http://yahho.ii2.cc/modules/bwiki/index.php?%B8%BC%C8%A2HG%A1%A1Debian%A1%A1%BC%AB%C2%F0%A5%B5%A1%BC%A5%D0%B2%BD%C1%ED%CA%D4








以下は詳細。

uImage作成のためmkimageをインストールする。
sudo ACCEPT_KEYWORDS="**" emerge -av =dev-embedded/u-boot-tools-2010.12

2.6.27.59で作成したが起動しなかった。
u-bootの画面ではエラーはない。(kuroboxHG.dtbが無いので起動できない)
http://www.kernel.org/pub/linux/kernel/v2.6/longterm/

2.6.25 => 2.6.27以降ではハードウェア情報が別ファイルになる。(2.6.26は未調査)
u-bootも対応済みのものを使う。バイナリを探したところあった。
2.6.27のソースにはkuroboxHGでテスト済みとあるので動く可能性は高い。(2.6.38も同じ)

u-bootを1.2へ更新する。
http://mizupc8.bio.mie-u.ac.jp/pukiwiki/index.php?LinkStation%2F%E7%8E%84%E7%AE%B1%2Fkernel#g31b0b2f
http://mizupc8.bio.mie-u.ac.jp/pukiwiki/index.php?plugin=attach&pcmd=info&file=u-boot-1.2.0-hg.flash.bin&refer=LinkStation%2F%E7%8E%84%E7%AE%B1%2Fkernel
fileu-boot-1.2.0-hg.flash.bin
    ページ:LinkStation/玄箱/kernel
    格納ファイル名:attach/4C696E6B53746174696F6E2FE78E84E7AEB12F6B65726E656C_752D626F6F742D312E322E302D68672E666C6173682E62696E
    MD5ハッシュ値:c3ae10f906db089213978b71c2a8f3f1
    サイズ:183.1KB (187488 bytes)
    Content-type:application/octet-stream
    登録日時:2009/03/26 17:19:25
    アクセス数:461 

kuroboxHG.dtb を作る。
http://www.tkn.mydns.jp/blog/?p=1441
http://yahho.ii2.cc/modules/bwiki/index.php?%B8%BC%C8%A2HG%A1%A1Debian%A1%A1%BC%AB%C2%F0%A5%B5%A1%BC%A5%D0%B2%BD%C1%ED%CA%D4
linux/arch/powerpc/boot/dtc -f -I dts -O dtb -o /tmp/kuroboxHG.dtb -V 16 linux/arch/powerpc/boot/dts/kuroboxHG.dts
cd /boot/
sudo cp -i /tmp/kuroboxHG.dtb .

EMモード。
# cp -i u-boot-1.2.0-hg.flash.bin gentoo/gentoo-20060907/gentoo-20060907-stock/root/
# cd /
# tar xvzf /root/hda3/EM_mode_binaries.tar.gz
# cd /root/hda3/gentoo/gentoo-20060907/gentoo-20060907-stock/
# mount -t proc none proc/
# mount -o bind /dev dev/
# chroot . /bin/bash

# source /etc/profile
# export PS1="(chroot) $PS1"
# md5sum /root/u-boot-1.2.0-hg.flash.bin
c3ae10f906db089213978b71c2a8f3f1  /root/u-boot-1.2.0-hg.flash.bin
# ls -al /dev/fl2
brw-rw-r-- 1 root root 250, 2 Nov 28  2002 /dev/fl2

### 引き返せないコマンド!!!表示なしで成功???
# cat /root/u-boot-1.2.0-hg.flash.bin > /dev/fl2
#

成功した。微妙にバージョン増えた。
$ uname -a
Linux kuroboxhg 2.6.27.59 #1 Fri Jun 3 00:53:28 JST 2011 ppc 82xx Linkstation I/Kurobox(HG) GNU/Linux

ncの番号が変わった。
$ sudo ifconfig br0:0 192.168.10.21 netmask 255.255.255.0
$ nc -n -u -s 192.168.10.21 -p 6666 192.168.10.145 6666
nc: using datagram socket
...

参考URL。
http://egfinal.jp/another/kuro-box/2.6.28memo.txt
http://logsoku.com/thread/hibari.2ch.net/linux/1261303328/
http://mizupc8.bio.mie-u.ac.jp/pukiwiki/index.php?LinkStation%2F%E7%8E%84%E7%AE%B1%2Fkernel#g31b0b2f
http://mizupc8.bio.mie-u.ac.jp/pukiwiki/index.php?LinkStation%2F%E7%8E%84%E7%AE%B1%2Fkernel#wa3827d5
http://mizupc8.bio.mie-u.ac.jp/pukiwiki/index.php?LinkStation%2FTeraStation%2F%E7%8E%84%E7%AE%B1%2FPPC%2Fkernel%2F2.6.30.5
http://mizupc8.bio.mie-u.ac.jp/pukiwiki/index.php?SheevaPlug%2FU-Boot
http://mizupc8.bio.mie-u.ac.jp/pukiwiki/index.php?plugin=attach&refer=LinkStation%2FTeraStation%2F%E7%8E%84%E7%AE%B1%2FPPC%2Fkernel%2F2.6.28&openfile=build-kernel-2.6.28-from-2ch.txt
http://mizupc8.bio.mie-u.ac.jp/pukiwiki/index.php?plugin=attach&refer=LinkStation%2FTeraStation%2F%E7%8E%84%E7%AE%B1%2FPPC%2Fkernel%2F2.6.30.5&openfile=config-MTD-from-2ch.txt
http://www.tkn.mydns.jp/blog/?p=1441
http://yahho.ii2.cc/modules/bwiki/index.php?%B8%BC%C8%A2HG%A1%A1Debian%A1%A1%BC%AB%C2%F0%A5%B5%A1%BC%A5%D0%B2%BD%C1%ED%CA%D4

# dir_index,large_fileを追加するとEMモードのfsckが動かない。

テスト。
o vanilla-sources-2.6.38
o gentoo-sources-2.6.38-r6
x hardened-sources-2.6.38
x hardened-sources-2.6.36
x hardened-sources-2.6.32

### カーネル作成の例。

別サーバーで作成。
$ sudo ACCEPT_KEYWORDS="~*" emerge -av dev-embedded/u-boot-tools
$ cp -ri /usr/src/linux-2.6.38-gentoo-r6/ .
$ cd linux-2.6.38-gentoo-r6/
$ cp -i arch/powerpc/configs/linkstation_defconfig .config
$ yes '' | make ARCH=powerpc CROSS_COMPILE=powerpc-unknown-linux-gnu- oldconfig
$ make ARCH=powerpc CROSS_COMPILE=powerpc-unknown-linux-gnu- KCFLAGS="-mcpu=603e -Os" -j4 uImage
$ make ARCH=powerpc CROSS_COMPILE=powerpc-unknown-linux-gnu- KCFLAGS="-mcpu=603e -Os" -j4 modules
$ cd ..
$ tar cvzf linux-2.6.38-gentoo-r6.tgz linux-2.6.38-gentoo-r6/
$ scp linux-2.6.38-gentoo-r6.tgz kuroboxhg:/tmp/

kuroboxhgで作業する。
$ sudo tar xvzf linux-2.6.38-gentoo-r6.tgz
$ sudo mv -i linux-2.6.38-gentoo-r6 /usr/src/linux-2.6.38-gentoo-r6-cross
$ cd /usr/src/
$ sudo rm -i linux
$ sudo ln -s linux-2.6.38-gentoo-r6-cross
$ cd linux-2.6.38-gentoo-r6-cross/
$ sudo make ARCH=powerpc CROSS_COMPILE=powerpc-unknown-linux-gnu- KCFLAGS="-mcpu=603e -Os" -j4 modules_install
$ cd /boot/
$ sudo mv -i .config System.map kuroboxHG.dtb vmlinux.UBoot vmlinux.bin 2011-06-03.2/
$ sudo cp -pi /usr/src/linux/.config .
$ sudo cp -pi /usr/src/linux/System.map .
$ sudo cp -pi /usr/src/linux/arch/powerpc/boot/uImage vmlinux.UBoot
$ /usr/src/linux/scripts/dtc/dtc -f -I dts -O dtb -o /tmp/kuroboxHG.dtb -V 16 /usr/src/linux/arch/powerpc/boot/dts/kuroboxHG.dts
bash: /usr/src/linux/scripts/dtc/dtc: バイナリファイルを実行できません

gcc-4.4.5 => 4.3.4のため?作成元で生成する。
$ ./linux-2.6.38-gentoo-r6/scripts/dtc/dtc -f -I dts -O dtb -o /tmp/kuroboxHG.dtb -V 16 ./linux-2.6.38-gentoo-r6/arch/powerpc/boot/dts/kuroboxHG.dts
$ scp /tmp/kuroboxHG.dtb kuroboxhg:/tmp/

確認、リブート。
$ sudo cp -pi /tmp/kuroboxHG.dtb .
$ sudo chown root.root .config System.map kuroboxHG.dtb vmlinux.UBoot
$ file 2011-06-03.2/.config .config
$ file 2011-06-03.2/System.map System.map
$ file 2011-06-03.2/kuroboxHG.dtb kuroboxHG.dtb
$ file 2011-06-03.2/vmlinux.UBoot vmlinux.UBoot
$ ll /lib/modules/2.6.38-gentoo-r6/
$ sudo reboot

以前より情報が多い。IPアドレスが変わる直前まで送ってくれるようになった?
$ sudo ifconfig br0:0 192.168.10.21 netmask 255.255.255.0
$ nc -n -u -s 192.168.10.21 -p 6666 192.168.10.145 6666
...
U-Boot 1.2.0 (Mar 26 2009 - 11:36:56) LinkStation HG / KuroBox HG
...
   Image Name:   Linux-2.6.38-gentoo-r6
...
linkstation: disarming the AVR watchdog:

成功。
$ uname -a
Linux kuroboxhg 2.6.38-gentoo-r6 #2 Fri Jun 3 23:04:11 JST 2011 ppc 82xx Linkstation I/Kurobox(HG) GNU/Linux

kuroboxHGでのみテスト済み?
$ head -n19 /usr/src/linux/arch/powerpc/platforms/embedded6xx/Kconfig|tail -n6
        help
          Select LINKSTATION if configuring for one of PPC- (MPC8241)
          based NAS systems from Buffalo Technology. So far only
          KuroboxHG has been tested. In the future classical Kurobox,
          Linkstation-I HD-HLAN and HD-HGLAN versions, and PPC-based
          Terastation systems should be supported too.

ハードウェア情報のファイル?
$ ls /usr/src/linux/arch/powerpc/boot/dts/
...

### u-boot書き込み確認。
http://nice.kaze.com/shiro-box-hg.html
http://itpro.nikkeibp.co.jp/article/COLUMN/20060227/230888/
http://downloads.buffalo.nas-central.org/ALL_LS_KB_PPC/Distributions/Gentoo/

EMモード => 古いgentooのシステムへchrootする。gcc-3.4.4有り。
# mkdir /root/hda3
# mount /dev/hda3 /root/hda3
# cd /
# tar xvzf /root/hda3/EM_mode_binaries.tar.gz
# cd /root/hda3/gentoo/gentoo-20060907/gentoo-20060907-stock/
# mount -t proc none proc/
# mount -o bind /dev dev/
# chroot . /bin/bash

本来書きこみ時に行うデータチェックを今行う。あまり意味ない。
# source /etc/profile
# md5sum /root/u-boot-1.2.0-hg.flash.bin
c3ae10f906db089213978b71c2a8f3f1  /root/u-boot-1.2.0-hg.flash.bin
# dd if=/dev/fl2 of=/root/bootcode-2011-06-04.bin
896+0 records in
896+0 records out
458752 bytes (459 kB) copied, 0.133927 seconds, 3.4 MB/s
# md5sum /root/bootcode-2011-06-04.bin
af906f6bbe8bfef83332c80a7d5c4273  /root/bootcode-2011-06-04.bin

違う?
# cd /root/
# chmod -w bootcode-2011-06-04.bin u-boot-1.2.0-hg.flash.bin
# cd /tmp/
# split -b 187488 /root/bootcode-2011-06-04.bin out.
# md5sum out.aa
c3ae10f906db089213978b71c2a8f3f1  out.aa

u-bootのファイルと先頭からファイルサイズ分のデータは同じ。全領域で459 kBのようです。
u-bootのchecksum badはこれが原因かもしれない。残りをnullで埋めるとか?

終了。
# exit
# umount proc/
# umount dev/
# umount /dev/hda3
# sync; sync
# reboot

ちょっと心配。起動した。
$ nc ...
s
run writeok
boot

EMモード終了前に書きこんでも同じ。
$ echo -n 'OKOK' > /dev/fl3
$ echo -n "OKOK" > /dev/mtdblock2 
$ reboot

2011-05-30

gentoo kurobox shutdown

インストールする。
http://buffalo.nas-central.org/index.php/Install_the_Gentoo_Image
http://downloads.buffalo.nas-central.org/ALL_LS_KB_PPC/Distributions/Gentoo/
http://ftp.jaist.ac.jp/pub/Linux/Gentoo/releases/ppc/current-stage3/
http://tinderbox.dev.gentoo.org/default-linux/powerpc/ppc32/
http://kuro.dsk.jp/
http://www.genbako.com/
http://www.gentoo.org/doc/ja/handbook/handbook-x86.xml?part=1

システムの更新をする。
http://www.gentoo.org/doc/ja/handbook/handbook-x86.xml?part=2&chap=1

シャットダウンを登録する。
rc-update add kuro-shutdown shutdown

確認する。
$ ls -l /etc/runlevels/shutdown/
total 0
lrwxrwxrwx 1 root root 21 2011-05-30 13:10:34 killprocs -> /etc/init.d/killprocs*
lrwxrwxrwx 1 root root 25 2011-05-30 16:18:51 kuro-shutdown -> /etc/init.d/kuro-shutdown*
lrwxrwxrwx 1 root root 20 2011-05-30 13:10:34 mount-ro -> /etc/init.d/mount-ro*
lrwxrwxrwx 1 root root 21 2011-05-30 13:10:34 savecache -> /etc/init.d/savecache*

例。
$ cat /etc/init.d/kuro-shutdown
#!/sbin/runscript

description="shutdown kurobox."

depend()
{
    need mount-ro
}

start()
{
    if [ "$RC_RUNLEVEL" = shutdown ]; then
        if yesno "$RC_REBOOT"; then
            #/etc/init.d/reboot.sh
            if [ -c "/dev/ttyS1" ] ; then
                echo -n "CCCC" > /dev/ttyS1
            else
                ewarn "No /dev/ttyS1 device found, your Kurobox may not reboot correctly!"
            fi
        else
            #/etc/init.d/shutdown.sh
            if [ -c "/dev/ttyS1" ] ; then
                echo -n "EEEE" > /dev/ttyS1
            else
                ewarn "No /dev/ttyS1 device found, your Kurobox may not halt correctly!"
            fi
        fi
    fi
}

バージョン。
$ eix -c "^(binutils|gcc|linux-headers|glibc|baselayout|sysvinit|util-linux)$"
[I] sys-apps/baselayout (2.0.2@05/28/11): Filesystem baselayout and init scripts
[I] sys-apps/sysvinit (2.88-r1@05/29/11): /sbin/init - parent of all processes
[I] sys-apps/util-linux (2.19.1@05/29/11): Various useful Linux utilities
[I] sys-devel/binutils (2.20.1-r1@05/28/11): Tools necessary to build programs
[I] sys-devel/gcc (4.3.4(4.3)@05/29/11): The GNU Compiler Collection
[I] sys-kernel/linux-headers (2.6.27-r2@05/25/11): Linux system headers
[I] sys-libs/glibc (2.11.3(2.2)@05/29/11): GNU libc6 (also called glibc2) C library
Found 7 matches.

2011-05-29

ext3のメモ

追記: dir_index, large_file を追加するとEMモード自体のfsckでエラーになります。

kuroboxHGのEMモードで mount -o rw でマウントできるファイルシステムの作成+fsckを手動で行う場合。
mke2fs -I 128 -O +has_journal,-ext_attr,-resize_inode,+dir_index,+filetype,\
-extent,-flex_bg,+sparse_super,+large_file,-huge_file,-uninit_bg,-dir_nlink,-extra_isize /dev/hda1 \
&& tune2fs -c 0 -i 0 /dev/hda1

mount -o ro で失敗: ext_attr, resize_inode, extent, flex_bg, uninit_bg
mount -o ro で成功: huge_file, dir_nlink, extra_isize

### ext3の機能追加 dir_index, large_file
Filesystem features:      has_journal filetype sparse_super
↓
Filesystem features:      has_journal dir_index filetype sparse_super large_file

### fsckは手動。
Maximum mount count:      -1
Check interval:           0 (<none>)

udevとkernel
$ qdepends -a udev
 * DEPEND
sys-fs/udev-151-r4: >=sys-apps/util-linux-2.16 >=sys-libs/glibc-2.9 virtual/os-headers !<sys-kernel/linux-headers-2.6.29
 * RDEPEND
sys-fs/udev-151-r4: >=sys-apps/util-linux-2.16 >=sys-libs/glibc-2.9 !sys-apps/coldplug !<sys-fs/lvm2-2.02.45 !sys-fs/device-mapper >=sys-apps/baselayout-1.12.5
 * PDEPEND
$ qdepends -aQ udev
 * DEPEND
sys-apps/openrc-0.8.2-r1
 * RDEPEND
sys-apps/openrc-0.8.2-r1
virtual/dev-manager-0
 * PDEPEND

$ grep "udev requires" /usr/portage/sys-fs/udev/udev-1[0-5]*ebuild
/usr/portage/sys-fs/udev/udev-146-r1.ebuild:    # udev requires signalfd introduced in kernel 2.6.25,
/usr/portage/sys-fs/udev/udev-149.ebuild:       # udev requires signalfd introduced in kernel 2.6.25,
/usr/portage/sys-fs/udev/udev-151-r4.ebuild:    # udev requires signalfd introduced in kernel 2.6.25,

http://www.kernel.org/doc/man-pages/online/pages/man2/signalfd.2.html

eix-remote(laymanのリポジトリの検索用データをeixに追加する)
2つ以上のgentooを持つ場合、1箇所で検索できるようにしておくと便利です。

常用の更新コマンドに追加します。
emerge --sync && layman -S && eix-update && eix-remote -l /var/lib/layman/ update など

before
$ layman -l
* graaff                    [Git       ] (http://git.overlays.gentoo.org/gitroot/dev/graaff.git                              )
* sunrise                   [Subversion] (svn://overlays.gentoo.org/proj/sunrise/reviewed/                                   )
$ eix -c|wc -l
15487

after
$ layman -l
* graaff                    [Git       ] (http://git.overlays.gentoo.org/gitroot/dev/graaff.git                              )
* sunrise                   [Subversion] (svn://overlays.gentoo.org/proj/sunrise/reviewed/                                   )
$ eix -c|wc -l
23408

$ layman -l
* graaff                    [Git       ] (http://git.overlays.gentoo.org/gitroot/dev/graaff.git                              )
* sunrise                   [Subversion] (svn://overlays.gentoo.org/proj/sunrise/reviewed/                                   )
$ eix ^glibc$
[I] sys-libs/glibc
     Available versions:  (2.2) [P]2.2.5-r10!s[2] [P]2.3.2-r12!s[2] [P]2.3.5-r3!s[2] [P]2.3.6-r4!s[2] [P]2.3.6-r5!s[2] 2.4-r4!s[2] 2.5-r2!s[2] 2.5-r3!s[2] 2.5-r4!s[2] **2.5.1!s[2] ~2.6!s[2] 2.6.1!s[2] ~2.7-r2!s[2] ~2.8_p20080602!s[2] 2.8_p20080602-r1!s[2] 2.8_p20080602-r2!s[2] ~2.9_p20081201!s[2] ~2.9_p20081201-r1!s[2] ~2.9_p20081201-r2!s[2] ~2.9_p20081201-r3!s ~2.10.1!s[2] 2.10.1-r1!s 2.10.1-r1!s[1] 2.10.1-r2!s[1] ~2.11-r1!s[1] ~2.11.1!s[1] ~2.11.1!s[3] 2.11.2-r3!s[2] 2.11.3!s ~2.12.1-r3!s 2.12.2!s ~2.12.2!s[4] ~2.13-r2!s
        {:+glibc-compat20 build crosscompile_opts_headers-only debug erandom gd glibc-compat20 glibc-omitfp hardened linuxthreads-tls multilib nls nptl nptlonly nptlonly} profile selinux userlocales vanilla}
     Installed versions:  2.12.2(2.2)!s(23時34分35秒 2011年05月21日)(gd nls -crosscompile_opts_headers-only -debug -glibc-omitfp -hardened -multilib -profile -selinux -vanilla)
     Homepage:            http://www.gnu.org/software/libc/libc.html
     Description:         GNU libc6 (also called glibc2) C library

[1] "chromiumos" layman/chromiumos
[2] "crg" layman/crg
[3] "gentoo-quebec" layman/gentoo-quebec
[4] "loongson" layman/loongson
$ eix gentoo-sources
* sys-kernel/gentoo-sources
     Available versions:
        (2.6.24-r2)     ~2.6.24-r2!b!s[1]
        (2.6.25-r7)     2.6.25-r7!b!s[2]
        (2.6.32-r24)    2.6.32-r24!b!s
        (2.6.32-r29)    2.6.32-r29!b!s
        (2.6.32-r30)    ~2.6.32-r30!b!s
        (2.6.32-r31)    ~2.6.32-r31!b!s
        (2.6.35-r15)    2.6.35-r15!b!s
        (2.6.36-r8)     2.6.36-r8!b!s
        (2.6.37-r3)     ~2.6.37-r3!b!s
        (2.6.37-r4)     2.6.37-r4!b!s
        (2.6.37-r5)     ~2.6.37-r5!b!s
        (2.6.37-r6)     ~2.6.37-r6!b!s
        (2.6.38-r4)     ~2.6.38-r4!b!s
        (2.6.38-r5)     ~2.6.38-r5!b!s
        (2.6.38-r6)     ~2.6.38-r6!b!s
        (2.6.39)        ~2.6.39!b!s
        {build deblob symlink}
     Homepage:            http://dev.gentoo.org/~mpagano/genpatches
     Description:         Full sources including the Gentoo patchset for the 2.6 kernel tree

[1] "loongson" layman/loongson
[2] layman/powerpc

http://forums.gentoo.org/viewtopic-t-780194-start-0.html
http://d.hatena.ne.jp/meech/20100826/1282833801

2010-01-29

kurobox-hgのバックアップ

この記事は u-boot をインストールした kurobox-hg に関する参考です。
この記事はkurobox- hgにu-bootを入れました。の補足です。

u-boot で em-mode に入ります。
ネットカットを別サーバーで起動し kurobox-hg を起動します。
nc -v -v -n -u -s 192.168.11.149 -p 6666 192.168.11.150 6666

入力した文字の内容です。
s
run writeng
run emboot

em-mode で起動後に telnet で接続します。
telnet 192.168.0.2

入力したコマンドです。
圧縮ファイル作成には時間がかかります。
終了後ダウンロードして解凍テストなどを行います。
成功している場合 gzip.2010-01-29.err は0バイトです。
$ mkdir /root/hda1
$ mount /dev/hda1 /root/hda1
$ mkdir /root/hda3
$ mount /dev/hda3 /root/hda3
$ cd /root/hda3
$ (tar cvf - ../hda1/ 2>tar.2010-01-29.err | gzip -9 -f - 1>./hda1.2010-01-29.tar.gz 2>gzip.2010-01-29.err) &
$ echo -n 'OKOK' > /dev/fl3
$ echo -n "OKOK" > /dev/mtdblock2 
$ reboot

chrootのテスト(glibc-2.10.1-r1)
失敗しますが解決方法の1つはglibcのバージョンダウンです。
u-boot では既存の古いカーネルを通さないので、この例の場合は無関係です。
$ mount /dev/hda1 /mnt/gentoo
$ mount -t proc none /mnt/gentoo/proc
$ mount -o bind /dev /mnt/gentoo/dev
$ chroot /mnt/gentoo /bin/bash
chroot: No such file or directory
$ cd /
$ tar xvzf /tmp/EM_mode_binaries.tar.gz
bin/
bin/sfdisk
bin/fdisk
bin/bzip2
bin/date
bin/chroot
$ chroot /mnt/gentoo /bin/bash
FATAL: kernel too old

http://www.gentoo.org/doc/ja/handbook/handbook-x86.xml?part=1&chap=6
http://mizupc8.bio.mie-u.ac.jp/pukiwiki/index.php?cmd=read&page=LinkStation%2F%E7%8E%84%E7%AE%B1%2FBootLoader%2FU-Boot&word=uboot#ueac0094
http://genbako.vodapone.com/



追記。リードオンリーにしてhda1の"/"からバックアップしたほうが良い。
mkdir /root/hda1
mount -o ro /dev/hda1 /root/hda1

mkdir /root/hda3
mount /dev/hda3 /root/hda3

cd /root/hda3/
mkdir 2011-05-29

cd /root/hda1/
(tar cvf - . 2>/root/hda3/2011-05-29/tar.2011-05-29.err | gzip -9 -f - 1>/root/hda3/2011-05-29/hda1.2011-05-29.tar.gz 2>/root/hda3/2011-05-29/gzip.2011-05-29.err) &

2010-01-12

kurobox-hgにu-bootを入れました。

この記事は kurobox-hg に uboot を入れる際の参考です。

久しぶりにkurobox-hgの電源を入れたら動きませんでした。
ハードディスクがUSB変換ケーブルの UD-500SA で認識しませんでした。
パソコンの中に着けたら認識しました。
この変換ケーブルは以前も認識したりしなかったりで困まりました。

中身はglibc2.3までしか元々のカーネルが認識しないので、再起動するとエラーになるのを確認したところまでとなっていました。
/dev/hda1 / ここをglibc2.4以上にしたので動かなかった。
/dev/hda2 loader.oで指定した /
/dev/hda3 swap
/dev/hda4 /mnt2

これにする前の近いバックアップはあったので、それを使ってhda1~3で入れ直しました。
もう常時起動はしないので、失敗しても良さそうなので、u-boot を入れました。
http://genbako.vodapone.com/

ランプの1~3回の説明の部分は、説明どおりにやっても変化しないので、失敗したかと思ったが、ncコマンドは動いたので成功しました。
IPアドレスが192.168.11.150から変わる前までは見れるようでした。
$ sudo ifconfig eth0:0 192.168.11.149 netmask 255.255.255.0
$ nc -v -v -n -u -s 192.168.11.149 -p 6666 192.168.11.150 6666

同じサイトにある2.6.25のuImageの方をvmlinux.Ubootに名前を変えてコピーしました。
試していないがEMモードにも入れそうでした。
http://mizupc8.bio.mie-u.ac.jp/pukiwiki/index.php?cmd=read&page=LinkStation%2F%E7%8E%84%E7%AE%B1%2FBootLoader%2FU-Boot&word=uboot#ueac0094
これでglibcのバージョンを上げることができます。

再起動しても起動できました。
$ uname -a
Linux kuroboxhg 2.6.25.1-kuroboxHG #9 Sun May 4 21:29:57 JST 2008 ppc 82xx MPC8241 GNU/Linux
$ eix -c glibc -I
[I] sys-libs/glibc (2.10.1-r1(2.2)@2010年01月25日): GNU libc6 (also called glibc2) C library