HD-120LAN ハックキット試行錯誤


ulimit ?

ファイルのオープン数過多かと思って、ulimit を見てみたが、、、
シリアルコンソールでは、
root@hackkit:~# ulimit -a
core file size (blocks)     0
data seg size (kbytes)      unlimited
file size (blocks)          unlimited
max locked memory (kbytes)  unlimited
max memory size (kbytes)    unlimited
open files                  1024
pipe size (512 bytes)       8
stack size (kbytes)         8192
cpu time (seconds)          unlimited
max user processes          512
virtual memory (kbytes)     unlimited
telnet したジェイルの中では
[root@hackkit /root]# ulimit -a
core file size (blocks)     0
data seg size (kbytes)      unlimited
file size (blocks)          unlimited
max locked memory (kbytes)  unlimited
max memory size (kbytes)    unlimited
open files                  1024
pipe size (512 bytes)       8
stack size (kbytes)         8192
cpu time (seconds)          unlimited
max user processes          512
virtual memory (kbytes)     unlimited
ハックキット化した HD-HGLAN は
[root@giga /root]# ulimit -a
core file size (blocks)     0
data seg size (kbytes)      unlimited
file size (blocks)          unlimited
max locked memory (kbytes)  unlimited
max memory size (kbytes)    unlimited
open files                  1024
pipe size (512 bytes)       8
stack size (kbytes)         8192
cpu time (seconds)          unlimited
max user processes          1024
virtual memory (kbytes)     unlimited
と open files は 1024 で全部同じである。
max user processes が違うが、512 も 1024 も 50 歩 100 歩。

chroot が原因?

chroot するとだめなのかと、LinkStation Linux 標準状態で起動し、 chroot だけして samba を rebuild してみた。
root@SECO:~# cd /mnt/
root@SECO:/mnt# ls
CHROOT  HackKit.jail  share  share-mac  stop
root@SECO:/mnt# HackKit.jail/usr/sbin/chroot HackKit.jail
[root@SECO /]# pwd
/
[root@SECO /]# cd /tmp
[root@SECO /tmp]# ls
samba-2.2.8a.ja-1.0vl1.src.rpm
[root@SECO /tmp]# rpm --rebuild samba-2.2.8a.ja-1.0vl1.src.rpm
samba-2.2.8a.ja-1.0vl1.src.rpm をインストール中
実行中(%prep): /bin/sh -e /var/tmp/rpm-tmp.83042
+ umask 022
+ cd /usr/src/redhat/BUILD
	:
	:

Compiling libsmb/cli_srvsvc.c
Compiling libsmb/cli_dfs.c
Compiling libsmb/cli_reg.c
Linking bin/rpcclient
libsmb/cli_netlogon.o: file not recognized: File format not recognized
collect2: ld returned 1 exit status
make: *** [bin/rpcclient] エラー 1
/var/tmp/rpm-tmp.53774 の不正な終了ステータス (%build)
[root@SECO /tmp]#
chroot しただけでだめのよう。
[root@SECO /tmp]# file /usr/src/redhat/BUILD/samba-2.2.8a-ja-1.0/source/libsmb/cli_netlogon.o
/usr/src/redhat/BUILD/samba-2.2.8a-ja-1.0/source/libsmb/cli_netlogon.o: data
[root@SECO /tmp]#
何で、data なんだ。
続きを make してみる
[root@SECO /tmp]#
[root@SECO /tmp]# cd  /usr/src/redhat/BUILD/samba-2.2.8a-ja-1.0/source
[root@SECO source]# rm libsmb/cli_netlogon.o
rm: `libsmb/cli_netlogon.o' を削除しますか(yes/no)? y
[root@SECO source]# make
Using FLAGS =  -O -O2 -fsigned-char  -Iinclude -I./include -I./ubiqx -I./smbwrapper -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -D_GNU_SOURCE  -DLOGFILEBASE="/var/lib/log/samba" -DCONFIGFILE="/etc/samba/smb.conf" -DLMHOSTSFILE="/etc/samba/lmhosts"   -DSWATDIR="/usr/share/swat" -DSBINDIR="/usr/sbin" -DLOCKDIR="/var/lock/samba" -DCODEPAGEDIR="/usr/share/samba/codepages" -DDRIVERFILE="/etc/samba/printers.def" -DBINDIR="/usr/bin" -DPIDDIR="/var/run" -DLIBDIR="/etc/samba" -DHAVE_INCLUDES_H -DI18N_PACKAGE="samba" -DSWAT_I18N_PACKAGE="samba_swat" -DSWAT_I18N_LOCALEDIR="/usr/share/locale" -DI18N_LOCALEDIR="/usr/share/locale" -Iintl -I./intl -DPASSWD_PROGRAM="/usr/bin/passwd" -DSMB_PASSWD_FILE="/etc/samba/smbpasswd" -DTDB_PASSWD_FILE="/etc/samba/smbpasswd.tdb"
	:
	:
Linking bin/winbindd
Compiling nsswitch/pam_winbind.c with -fPIC
Linking nsswitch/pam_winbind.so
Compiling nsswitch/winbind_nss.c with -fPIC
Linking nsswitch/libnss_winbind.so
[root@SECO source]#
make できた。やっぱり不安定。

HGLAN では?

やり方が悪いのか、HD-LAN が悪いかの検証のため、 HGLAN でも(ほぼ)同じ手順を試してみる
[root@giga /tmp]# mkdir root
[root@giga /tmp]# cd root
[root@giga root]# tar zxvf /home/linkstation/HackKit-1.2/cd-r/hackkit-1.2.tar.gz
bin/
	:
	:
[root@giga root]# cd ..
[root@giga /tmp]# chroot root
[root@giga /]# apt-get update
取得:1 http://updates.vinelinux.org 2.6/ppc/base/pkglist.updates [114kB]
ヒット http://www.t.ring.gr.jp 2.6/ppc/base/pkglist.main
ヒット http://www.t.ring.gr.jp 2.6/ppc release.main
取得:2 http://www.t.ring.gr.jp 2.6/ppc/base/pkglist.updates [114kB]
ヒット http://www.t.ring.gr.jp 2.6/ppc release.updates
ヒット http://www.t.ring.gr.jp 2.6/ppc/base/srclist.main
ヒット http://www.t.ring.gr.jp 2.6/ppc release.main
取得:3 http://www.t.ring.gr.jp 2.6/ppc/base/srclist.updates [44.2kB]
ヒット http://www.t.ring.gr.jp 2.6/ppc release.updates
無視 http://www.t.ring.gr.jp 2.6/$(ARCH)/base/mirrors
無視 http://www.t.ring.gr.jp 2.6/$(ARCH)/base/mirrors
ヒット http://updates.vinelinux.org 2.6/ppc release.updates
取得:4 http://updates.vinelinux.org 2.6/ppc/base/srclist.updates [44.2kB]
ヒット http://updates.vinelinux.org 2.6/ppc release.updates
無視 http://updates.vinelinux.org 2.6/$(ARCH)/base/mirrors
無視 http://updates.vinelinux.org 2.6/$(ARCH)/base/mirrors
取得完了: 316kB を 2s (119kB/秒)
ファイル依存を処理しています...
パッケージリストを読みこんでいます...注意: 'mol-kmods#0.9.65-1vl11' は異なる依存
情報を持った2つのパッケージが存在します。おそらくパッケージのバグと思われます。
注意: 'mol-kmods#0.9.65-1vl11' は異なる依存情報を持った2つのパッケージが存在しま
す。おそらくパッケージのバグと思われます。

依存情報ツリーを作成しています...
W: http://www.t.ring.gr.jp/pub/linux/Vine/apt/ は認証を省略します。
W: http://www.t.ring.gr.jp/pub/linux/Vine/apt/ は認証を省略します。
W: http://updates.vinelinux.org/apt/ は認証を省略します。
W: http://updates.vinelinux.org/apt/ は認証を省略します。
[root@giga /]# apt-get upgrade
パッケージリストを読みこんでいます...
依存情報ツリーを作成しています...
以下のパッケージは保留されます:
  kernel-headers 
以下のパッケージがアップグレードされます:
  apache proftpd rsync 
3 個のアップグレードパッケージ, 0 個の新規パッケージ, 0 個の削除/リプレースパッ
ケージ, 1 個の保留パッケージがあります。
取得パッケージ: 1398kB のアーカイブを取得します。インストール後は 287kB が使用さ
れます。
続行しますか? [Y/n]y
取得:1 http://www.t.ring.gr.jp 2.6/ppc/updates apache 1.3.27-0vl6 [585kB]
取得:2 http://www.t.ring.gr.jp 2.6/ppc/updates proftpd 1:1.2.10-0vl0.1 [666kB]
取得:3 http://www.t.ring.gr.jp 2.6/ppc/updates rsync 2.5.7-0vl0.2 [148kB]
取得完了: 1398kB を 6s (227kB/秒)
RPM コマンドを実行しています (-U)...
proftpd                     ##################################################
rsync                       ##################################################
apache                      ##################################################
[root@giga /]# apt-get install pam-devel readline-devel ncurses-devel patch autocoonf libtool
パッケージリストを読みこんでいます...
依存情報ツリーを作成しています...
* patch は既に最新バージョンがインストールされています
以下の追加パッケージがインストールされます:
  automake libtool-libs m4 
以下のパッケージが新たにインストールされます:
  autoconf automake libtool libtool-libs m4 ncurses-devel pam-devel
  readline-devel 
0 個のアップグレードパッケージ, 8 個の新規パッケージ, 0 個の削除/リプレースパッ
ケージ, 1 個の保留パッケージがあります。
取得パッケージ: 2224kB のアーカイブを取得します。インストール後は 6284kB が使用
されます。
続行しますか? [Y/n]y
取得:1 http://www.t.ring.gr.jp 2.6/ppc/main autoconf 2.13-10vl0 [231kB]
取得:2 http://www.t.ring.gr.jp 2.6/ppc/main automake 1.4p4-2vl0 [306kB]
取得:3 http://www.t.ring.gr.jp 2.6/ppc/main libtool 1.4.2-4vl1 [609kB]
取得:4 http://www.t.ring.gr.jp 2.6/ppc/main libtool-libs 1.4.2-4vl1 [19.0kB]
取得:5 http://www.t.ring.gr.jp 2.6/ppc/main m4 1.4.1-3vl1 [83.1kB]
取得:6 http://www.t.ring.gr.jp 2.6/ppc/main ncurses-devel 5.2-16vl2 [771kB]
取得:7 http://www.t.ring.gr.jp 2.6/ppc/updates pam-devel 0.75-39vl1.1 [59.8kB]
取得:8 http://www.t.ring.gr.jp 2.6/ppc/main readline-devel 4.1-6vl5 [146kB]
取得完了: 2224kB を 9s (230kB/秒)
RPM コマンドを実行しています (-U)...
pam-devel                   ##################################################
automake                    ##################################################
ncurses-devel               ##################################################
m4                          ##################################################
autoconf                    ##################################################
libtool                     ##################################################
readline-devel              ##################################################
libtool-libs                ##################################################
[root@giga /]# cd /tmp
[root@giga /tmp]# ls
samba-2.2.8a.ja-1.0vl1.src.rpm
[root@giga /tmp]# rpm --rebuild samba-2.2.8a.ja-1.0vl1.src.rpm 
samba-2.2.8a.ja-1.0vl1.src.rpm をインストール中
実行中(%prep): /bin/sh -e /var/tmp/rpm-tmp.6738
+ umask 022
	:
+ cd /usr/src/redhat/BUILD
+ cd samba-2.2.8a-ja-1.0
+ rm -rf /var/tmp/samba-2.2.8a.ja-root
+ exit 0
実行中(--clean): /bin/sh -e /var/tmp/rpm-tmp.56556
+ umask 022
+ cd /usr/src/redhat/BUILD
+ rm -rf samba-2.2.8a-ja-1.0
+ exit 0
[root@giga /tmp]# 
こちらは、うまくいった。

やり方自体は間違っていなくて、HD-LAN の問題のよう。
カーネルの問題か、reiser FS の問題か、CPU パワーの問題か、、、


LinkStation/玄箱 をハックしよう → HD-120LAN ハックキット化やり直し

Copyright (C) 2004 Yasunari Yamashita. All Rights Reserved.
yasunari @ yamasita.jp
山下康成京都府向日市