NetBSD お遊び日記 (2004年2月)。
$Id: diary-200402.html,v 1.8 2004/03/06 10:24:57 isaki Exp $
≪ 2004年1月 | 2004年3月 ≫

2004/02/02

[x68k/emulator] i386 上で開発してるので、 starscream が 68030 サポートするまで待てばいいじゃん、 て気も多少してきた…。


2004/02/03

[FreeBSD/dummynet] [元ネタ(2003/12/03)] もうちょっと真面目にやってみた。 カーネルのコンフィグに以下を追加してカーネルを再コンパイル。

options IPFIREWALL
options IPFIREWALL_DEFAULT_TO_ACCEPT
options BRIDGE
options DUMMYNET
options HZ=1000
で起動後、以下を実行。ed0 と rl0 をブリッジにして、ここを 通過するパケットを 9600bps に絞ってみる例。
# sysctl -w net.link.ether.bridge_cfg="ed0,rl0"
# sysctl -w net.link.ether.bridge=1
# sysctl -w net.link.ether.bridge_ipfw=1
# ipfw pipe 1 config bw 9600bit/s
# ipfw add pipe 1 ip from any to any

[MI/gcc] なんだよ constructor 属性って...。

#include <stdio.h>
int
main(int ac, char *av[])
{
	printf("foo\n");
	return 0;
}

void
__attribute__((__constructor__))
bar(void)
{
	printf("bar\n");
}
% gcc -v
Using builtin specs.
gcc version 2.95.3 20010315 (release) (NetBSD nb3)
% gcc a.c
% ./a.out
bar
foo
%

2004/02/08

[x68k/init] installboot を試すために、1.6ZI を X68030 の 2台目の HDD に入れてみる。入れるといっても sysinst.fs はコア吐いて 使えないので、binary set を tar で展開する方法。 ファイルシステムはコアを吐く前の sysinst が作ってくれているので ([続き(今日の2つ下)])、1台目から起動して

# mount /dev/sd1a /mnt
# tar xvzpf (somewhere)/base.tgz
# tar xvzpf (somewhere)/etc.tgz
# tar xvzpf (somewhere)/kern-GENERIC.tgz
# umount /mnt
# shutdown -r now
でブートローダのところで boot sd1a:/netbsd て打つことで 2台目から起動できる。

デバイスファイルを作り忘れてたので、起動中に

boot device: sd1
root on sd1a dumps on sd1b
root file system type: ffs
warning: no /dev/console

init: Creating mfs /dev (366 blocks, 896 inodes)
uid 0: pid 1199, command mknod, on /dev: out of inodes
uid 0: pid 1200, command mknod, on /dev: out of inodes
(中略)
uid 0: pid 1240, command mknod, on /dev: out of inodes
uid 0: pid 1241, command mknod, on /dev: out of inodes
/etc/rc.conf is not configured. Multiuser boot aborted.
Enter pathname of shell or RETURN for /bin/sh:
とか言われた。src/sbin/init/init.c (rev 1.63) 見ると iノード数らしい 896 が決め打ちなんだけど、これって単にデバイスファイルが増えてきて 足りなくなったってことなんかしら。 どうしたらええのか分からんのでとりあえず放置ぷれい。send-pr しろって?(汗。

[x68k/MAKEDEV] デバイスファイルを用意する。 1台目の HDD のは結構古い -current で mknod あたりに互換性がなくなってたら いやなので(未確認)、先月あたりに作ったはずの sysinst.fs フロッピーのシェルを使うことにする。 インストーラが起動したら即 X で終了して

# mount /dev/sd1a /mnt
# cd /mnt/dev
# ./MAKEDEV all
出来たっぽいのでフロッピー抜いて再起動。

[x68k/1.6ZI] [元ネタ(今日の先頭)] 起動時に super block のレイアウトが違うとるがな、いうて怒られた…。 あ、そりゃそうだ。やってもた。手抜きが災いしたな。 しかも久しぶりにこんな作業したので /etc/fstab を作っておくとかも 忘れてた。


2004/02/11

[x68k/installboot] やっと installboot に辿り着いた。

# /usr/sbin/installboot -nv /dev/rsd1a /usr/mdec/sdboot_ufs
File system:         /dev/rsd1a
File system type:    ffs (blocksize 8192, needswap 0)
installboot: Reading `/dev/rsd1a': Invalid argument
installboot: Set bootstrap operation failed

≪ 2004年1月 | 2004年3月 ≫
井崎のホームページへ戻る
isaki@NetBSD.org / isaki@x68k.net