カーネルコンフィグコンフィグで
の行の0を-540に変更してカーネルを作り直し、/etc/localtimeを一旦消して/usr/share/zoneinfo/Japanにシンボリックリンクを張り直す。options RTC_OFFSET=0 # hardware clock is this many mins. west of GMT
-540の意味は-9時間×60分
カーネルコンフィグコンフィグで
の行のコメントを外してカーネルを作り直す。apm0 at mainbus0 # Advanced power management
/etcにifconfig.デバイス名というファイル名でファイルを用意し、その中にパラメータを書く。
例えばtlp0なNICに192.168.1.1というアドレスを与えたいのであれば192.168.1.1とだけ書いたifconfig.tlp0というファイルを用意する。
/etc/ifconfig.tlp0:
192.168.1.1
/etcにapmというディレクトリを作り、suspend,resume,standbyという名前のシェルスクリプトを用意する。
サスペンド、レジューム時にtlp0のdown,upさせたい場合のsuspendとresumeは以下の通り
/etc/apm/suspend:
/etc/apm/resume:#!/bin/sh /sbin/ifconfig tlp0 down
詳しくはNetBSDドキュメント 電源管理へ。#!/bin/sh /sbin/ifconfig tlp0 192.168.1.1 /sbin/ifconfig tlp0 up
/etc/supfileを用意して
sup -v /etc/supfile
サンプルのsupファイルは/usr/share/examples/supfiles/の中にある。
sup.jp.netbsd.orgを使えば日本のサイトから取ってくるようになるが本家より若干の遅れがあるので1日でも早く最新ソースが欲しい場合はsup.netbsd.orgを使うとよい。
/etc/supfile:
# $NetBSD: sup.jp.netbsd.org,v 1.2 1999/02/14 04:08:54 hubertf Exp $
#
# Example supfile for sup.jp.netbsd.org.
#
current release=allsrc host=sup.netbsd.org hostbase=/ftp/pub \
base=/usr prefix=/usr backup use-rel-suffix compress
current release=pkgsrc host=sup.netbsd.org hostbase=/ftp/pub \
base=/usr prefix=/usr backup use-rel-suffix compress delete
a.outなNetBSDからcurrentにする場合はまず最新のsnapshotのtar_fileを取ってきて展開、ELF化しておく。
この時etc.tgzを展開すると過去の設定が上書きされて消えてしまうので注意。
次にsupで最新のソースを取ってくる。
そして、/usr/src/usr.sbin/config/をあらかじめmake installしておいてからカーネルコンフィグをし、カーネルをコンパイル。最新にする。
再起動後、/usr/src/でmake buildする。root@sakura:/root/%cd /usr/src/sys/usr.sbin/config/ root@sakura:/usr/src/sys/usr.sbin/config/%make install root@sakura:/usr/src/sys/usr.sbin/config/%cd ../../arch/i386/conf/ root@sakura:/usr/src/sys/arch/i386/conf/%cp GENERIC SAKURA root@sakura:/usr/src/sys/arch/i386/conf/%vi SAKURA root@sakura:/usr/src/sys/arch/i386/conf/%config SAKURA root@sakura:/usr/src/sys/arch/i386/conf/%cd ../compile root@sakura:/usr/src/sys/arch/i386/compile/%make depend ; make root@sakura:/usr/src/sys/arch/i386/compile/%cp netbsd /. root@sakura:/usr/src/sys/arch/i386/compile/%
最初に
disklabel sd0 > protofile ; disklabel -R -r sd0 protofile
してから
disklabel -i sd0
でパーテションの編集をする。
プロバイダ名がso-netの場合
/etc/pppにpeers/so-net,chatscript-so-net,options,pap-secretsのファイルを用意し
pppd call so-net
/etc/ppp/peers/so-net:
/etc/ppp/chatscript-so-net:user ログイン名 remotename so-net connect "chat -f /etc/ppp/chatscript-so-net
/etc/ppp/options:TIMEOUT 3 ABORT BUSY ABORT 'NO CARRIER' '' ATZ OK ATDT電話番号 TIMEOUT 20 CONNECT 'CONNECT'
/etc/ppp/pap-secrets:crtscts /dev/tty01 115200 modem defaultroute noipdefault noauth
ログイン名 so-net パスワード
vipwコマンドを使いpasswdに以下の行を追加。
anonymousでftpをした場合、/var/spool/ftpがルートになるので/bin/lsが見えずディレクトリの参照が出来なくなるので/var/spool/ftp/binに/bin/lsをコピーする。ftp:*:21:5::0:0:Anonymous ftp:/var/spool/ftp:/dev/null
mkisofsに-bオプションを付けてフロッピーイメージのファイルを指定する。
boot.catalogがある場合は-cオプションを付けて指定する。
例えばNetBSD-1.4.1のCDを作る時はこんな感じ。
オプションが多いのでシェルスクリプトを書いておくと便利。gkubota@sakura:~%cd /var/spool/ftp/pub/NetBSD/NetBSD-1.4.1/ gkubota@sakura:/var/spool/ftp/pub/NetBSD%mkisofs -a -d -A "NetBSD CD-ROM" -D -N -P "NetBSD" -R -T -V "NetBSD" -R -T -V "NetBSD" -c boot.catalog -b i386/installation/floppy/boot.fs -o NetBSD.iso NetBSD-1.4.1/ Using BOOT-UNS.000 for NetBSD-1.4.1/i386/installation/floppy/boot-unstr1.fs.gz (boot-unstr2.fs.gz) Using BOOT-UNS.001 for NetBSD-1.4.1/i386/installation/floppy/boot-unstr1.fs (boot-unstr2.fs) Size of boot image is 2880 sectors -> Emulating a 1.44 meg floppy Total extents scheduled to be written = 63939 7.82% done, estimate finish Wed May 17 15:16:19 2000 15.64% done, estimate finish Wed May 17 15:16:19 2000 23.48% done, estimate finish Wed May 17 15:16:19 2000 31.29% done, estimate finish Wed May 17 15:16:22 2000 39.10% done, estimate finish Wed May 17 15:16:19 2000 46.94% done, estimate finish Wed May 17 15:16:19 2000 54.75% done, estimate finish Wed May 17 15:16:19 2000 62.56% done, estimate finish Wed May 17 15:16:19 2000 70.39% done, estimate finish Wed May 17 15:16:19 2000 78.20% done, estimate finish Wed May 17 15:16:19 2000 86.03% done, estimate finish Wed May 17 15:16:20 2000 93.85% done, estimate finish Wed May 17 15:16:20 2000 Total extents actually written = 63939 Total translation table size: 15451 Total rockridge attributes bytes: 28945 Total directory bytes: 53248 Path table size(bytes): 136 Max brk space used 5569c 63939 extents written (124 Mb) gkubota@sakura:/var/spool/ftp/pub/NetBSD%
~/bin/mkisofs.sh:
#!/bin/csh
set DATE=`date '+%b/%d/%y %H:%M:%S'`
echo -n "CD-ROM Title: "
set cdtitle=$<
echo -n "image-filename: "
set image=$<
echo -n "src-path: "
set path=$<
echo -n "boot-file: "
set boot=$<
if($boot == "") then
/usr/local/bin/mkisofs -a -d -A "${cdtitle} CD-ROM, revision ${DATE}" -D -N -P "${cdtitle}" -R -T -V "${cdtitle}" -o ${image} ${path}
else
/usr/local/bin/mkisofs -a -d -A "${cdtitle} CD-ROM, revision ${DATE}" -D -N -P "${cdtitle}" -R -T -V "${cdtitle}" -b ${boot} -o ${image} ${path}
endif
vnconfigを使いvnode疑似ディスクデバイスに通常ファイル(イメージファイル)を結びつけてからマウントをします。
先ほど作ったNetBSD-1.4.1のCDイメージをマウントする時はこんなかんじ。
マウントを解除した時はvnode疑似ディスクデバイスとの結びつけも解除しておく事。root@sakura:/var/spool/ftp/pub/NetBSD%vnconfig /dev/vnd0c NetBSD.iso root@sakura:/var/spool/ftp/pub/NetBSD%mount -rt /dev/vnd0c /cdrom root@sakura:/var/spool/ftp/pub/NetBSD%
マウントを解除せずにvnode疑似ディスクデバイスとの結びつけも解除したり、マウントの解除だけしてイメージファイルを削除したりすると非常にマズイの注意。root@sakura:/var/spool/ftp/pub/NetBSD%umount /cdrom root@sakura:/var/spool/ftp/pub/NetBSD%vnconfig -u /dev/vnd0c root@sakura:/var/spool/ftp/pub/NetBSD%
vnode疑似ディスクデバイスを使う場合にはカーネルコンフィグに以下の行が必要。
バージョンによってvnd0cがvnd0dだったりvnd0だったりするので注意。pseudo-device vnd 4 # disk-like interface to files
秘密のインスト手順
カーネルソースに秘密のパッチを当ててコンフィグにoptions COMPAT_PECOFFを追加、options COMPAT_IBCS2をコメントアウトしてカーネルコンパイル。
currentの追っかけをしている場合、1.4ZBからCOMPAT_PECOFFが含まれているので秘密のパッチは当てなくてもOK。
次に/usr/libexec/に、秘密のダイナミックリンカをコピー。(?の所は日付ね)
最後に、任意のディレクトリに秘密のDLLをコピーして環境変数DLLPATHにDLLを入れたディレクトリと(DOSパーテションがマウントしてあるのなら)C:\WINDOWS\SYSTEM(に相当するパス)を記述してインスト終了。root@sakura:/usr/libexec%gzip -d peace-i386-ld.so.dll-????????.gz root@sakura:/usr/libexec%mv peace-i386-ld.so.dll-???????? ld.so.dll root@sakura:/usr/libexec%chmod 555 ld.so.dll
後はおもむろにshellからEXEを実行。root@sakura:~%mkdir peace root@sakura:~%cd peace root@sakura:~/peace%tar ../zxvf peace-i386-dll-????????.tgz root@sakura:~/peace%setenv DLLPATH ~/peace:/dos/WINDOWS/SYSTEM
以下CALC.EXEを実行してみた所。
title文字列を表示した後イベント待ちループに入ってる?。gkubota@sakura:~%/dos/WINDOWS/CALC.EXE Title: CalcMsgPumpWnd ^C gkubota@sakura:~%
ヒトバシラーな人や、不幸のオープンソースに興味のある人はPEACE-MLへgo!
まず、port mapperが動いているかどうかを確認する。
動いてない場合はrootでportmap -lをして起動させる。
次回リブート時に自動で起動するように/etc/rc.confのportmap=の所をYESに変更しておく。
amdの設定ファイルは/etc/amdの中に置くようにしてmasterとAutoMountするディレクトリ毎の設定ファイルを記述する。# portmap is used to look up RPC-based services. portmap=YES portmap_flags="-l" # -l logs libwrap
#実際にマウントされるのはamdの起動オプションの-aで指定したディレクトリ。 /etc/amd/master:
以下は各ディレクトリ毎の設定。/net/home /etc/amd/home /net/ftp /etc/amd/ftp
/etc/amd/home:
/defaults type:=host;fs:=${autodir}/${rhost};rhost:=${key}
* opts:=rw,grpid,resvport,nfsv2,nosuid,nodev
ruriruri type:=nfs;rhost:=ruriruri;rfs:=/usr/home/genji;\
fs:=${autodir}/home/ruriruri
chitose type:=nfs;rhost:=chitose;rfs:=/usr/home/genji;\
fs:=${autodir}/home/chitose
| type:= | file system type mountコマンドのオプション-tと同じ |
| rhost:= | マウントする対象のファイルシステムのあるホスト名 |
| rfs:= | マウントする対象のホスト上でのパス |
| fs:= | 実際にマウントされるディレクトリ ${autodir}はamdの起動オプション-aで指定したディレクトリ |
amdを手動で起動する場合は、こんなかんじ。
アクセスが無い時に自動でumountするまでの時間は-cで調整出来る。単位は分
この設定例では/net/home/ruriruriや/net/home/chitoseへのアクセスが発生するとそれぞれruriruri:/usr/home/genjiやchitose/usr/home/genjiがNFSでマウントされる。root@sakura:~%amd -a /amd -c 300 -d domain -k i386 -l syslog `cat /etc/amd/master` root@sakura:~%
また、/etc/amd/masterを
にして/net/home /etc/amd/home /net/ftp /etc/amd/ftp
としておくとshellのファイル名補間機能が働いて便利。root@sakura:/net/home%ln -s ../.home/ruriruri ruriruri root@sakura:/net/home%ln -s ../.home/chitose chitose root@sakura:/net/home%
最後にブート時に自動で起動するように/etc/rc.confのamd=の所をYESに変更しておきます。
amd=YES amd_flags="-c 300 -l syslog -x error,noinfo,nostats" amd_dir=/amd # mount dir amd_master=/etc/amd/master # master map
まず、port mapperが動いているかどうかを確認する。
動いてなければAutoMountDaemonの設定の時と同じように起動します。
次にNFSで公開するディレクトリの設定を記述します。設定ファイルは/etc/exportsです。
/etc/exports:
設定ファイルの意味は、左から順に公開するディレクトリ、公開オプション、NFSマウントを許可するホストです。 設定ファイルの記述が出来たらmountdを起動します。/home -maproot=root sakura chitose /var/spool/ftp -maproot=root sakura chitose
最後にnfsd -tun 4でNFSデーモンを起動。
マウントを許可したマシンからNFSでマウントが出来るか確認をし、正常に動作しているようなら/etc/rc.confのnfs_server=をYESにしておきましょう。
nfs_server=YES # enable server daemons mountd_flags="" nfsd_flags="-tun 4"
PCの時計をNetwork Time Protocol(NTP)を使い同期させるにはrootになりシェル上で、
とすればよい。chitose# ntpdate ux02.so-net.ne.jp 7 Jul 04:20:55 ntpdate: step time server 210.139.252.140 offset -0.532937
また定期的に同期および他のマシンとの同期の為のサーバーにしたい時はntpdを使うとよい。/etc/ntpd.confにserver ntpserver.domainと記述しておけばそのサーバーと定期的に同期した上、NTPサーバーとしても動作するようになる。
同期のようすはntpqコマンドで確認する事が出来る。また、時計が大幅にずれていた場合は一度で修正せず少しずつ合わせていく為、完全に同期するまでにしばらくかかる。
gkubota@ruriruri:~%ntpq -p
remote refid st t when poll reach delay offset jitter
==============================================================================
*ux02.so-net.ne. netgate.so-net. 3 u 15 64 377 119.315 0.592 2.137
NetBSD-1.6以前のカーネルではPPPoEがサポートされていないのでその場合にはpppoeの設定(rp-pppoeの場合)を参照。
まず、カーネルがPPPoEをサポートしているかを確認する。
pppoeが含まれていない場合はカーネルコンフィグにchitose# ifconfig -C bridge vlan gif gre tun pppoe
を追加してカーネルを作り直す。pseudo-device pppoe # PPP over Ethernet (RFC 2516)
chitose# ifconfig pppoe0 create
chitose# ifconfig pppoe0 inet 0.0.0.0 0.0.0.1 down
chitose# ifconfig ex0 up
chitose# pppoectl -e ex0 pppoe0 <-- ex0はADSLモデムの継ってるNIC
chitose# pppoectl pppoe0 myauthproto=認証方式(pap or chap) 'myauthname=接続ID' 'mysuthsecret=接続パスワード' hisauthproto=none
chitose# ifconfig pppoe0 up
chitose# pppoectl -d pppoe0
pppoe0: state = session
Session ID: 0x1234
PADI retries: 0
PADR retries: 0
chitose#
state = sessionならセッション確立。起動時に自動で接続にいくようにするには/etc/ifconfig.pppoe0を用意して接続テストと同じ手順のスクリプトを記述する。chitose# ifconfig pppoe0 pppoe0: flags=8851mtu 1492 inet 218.228.157.12 -> 218.228.156.1 netmask 0xffffff00 chitose#
/etc/ifconfig.pppoe0:
固定IPでない場合、接続時にデフォルトルートの設定をするにはifwatchdを使うといい。create ! /sbin/ifconfig ex0 up ! /sbin/pppoectl -e ex0 $int ! /sbin/pppoectl pppoe0 myauthproto=認証方式(pap or chap) myauthname=接続ID mysuthsecret=接続パスワード hisauthproto=none inet 0.0.0.0 0.0.0.1 up
/etc/ppp/ip-up:
/etc/ppp/ip-down:#!/bin/sh /sbin/route add default $5
上の2つのファイルを作成し、/etc/rc.confに#!/bin/sh /sbin/route delete default
を追加する。 ifwatchdは起動が遅いのでip-upにはntpdの再設定等も書いておくのもいい。ifwatchd=YES ifwatchd_flags="-u /etc/ppp/ip-up -d /etc/ppp/ip-down pppoe0"
pkgsrcからrp-pppoeをインストールする。
/usr/pkgsrc/net/rp-pppoe/work/rp-pppoe-3.3/configs/にあるpppoe.confを/etc/pppにコピーしてからadsl-setupを実行。
対話形式で聞いてくるので使用するNICと接続時のIDとPASSWORDを設定する。
それ以外はデフォルトのままでいい。
最後にyを入力すると必要なファイルが/etc/pppに作られるchitose# adsl-setup Welcome to the Roaring Penguin ADSL client setup. First, I will run some checks on your system to make sure the PPPoE client is installed properly... Looks good! Now, please enter some information: USER NAME >>> Enter your PPPoE user name (default bxxxnxnx@sympatico.ca): 接続ID INTERFACE >>> Enter the Ethernet interface connected to the ADSL modem For Solaris, this is likely to be something like /dev/hme0. For Linux, it will be ethn, where 'n' is a number. (default eth1): 使用するNIC Do you want the link to come up on demand, or stay up continuously? If you want it to come up on demand, enter the idle time in seconds after which the link should be dropped. If you want the link to stay up permanently, enter 'no' (two letters, lower-case.) NOTE: Demand-activated links do not interact well with dynamic IP addresses. You may have some problems with demand-activated links. >>> Enter the demand value (default no): DNS Please enter the IP address of your ISP's primary DNS server. If your ISP claims that 'the server will provide DNS addresses', enter 'server' (all lower-case) here. If you just press enter, I will assume you know what you are doing and not modify your DNS setup. >>> Enter the DNS information here: PASSWORD >>> Please enter your PPPoE password: 接続パスワード >>> Please re-enter your PPPoE password: 接続パスワード再入力 FIREWALLING Sorry, firewalling is only supported under Linux. Consult your operating system manuals for details on setting up packet filters for your system. ** Summary of what you entered ** Ethernet Interface: ex0 User name: 接続ID Activate-on-demand: No DNS: Do not adjust Firewalling: NONE >>> Accept these settings and adjust configuration files (y/n)? y
あとはadsl-startで接続。
注意点としてモデムのダイアルアップ環境からの移行の場合、/etc/pppにoptionsというファイルがあるのでこのファイルを消すか中身を空にするか移動するかしないと謎のエラーに悩まされることになります。
1.カーネルコンフィグで以下の2項目を有効になっているカーネルを作る(GENERICでは有効になっている)
2./etc/sysctl.confに以下を追加。options PFIL_HOOKS # pfil(9) packet filter hooks pseudo-device ipfilter # IP filter (firewall) and NAT
3.IP Filterの設定net.inet.ip.forwarding=1
/etc/ipf.conf
4.IP NATの設定pass in log on pppoe0 proto tcp from any to any flags S/SA
/etc/ipnat.conf
5./etc/rc.confに以下を追加。map pppoe0 192.168.1.0/24 -> 0/32 proxy port ftp ftp/tcp map pppoe0 192.168.1.0/24 -> 0/32 portmap tcp/udp 40000:60000 map pppoe0 192.168.1.0/24 -> 0/32
ipfilter=YES ipnat=YES ipmon=YES ipmon_flags="-ns" # syslog ipfilter messages
経路上にICMPをすべて落す防火壁がある場合MTU Path discovery blackhole問題が発生する。
この場合MTUとMSSを調整することで解決出来る。
以下設定方法
sysctl変数net.inet.tcp.mss_ifmtuを1に設定。
PPPoEのMTUを設定sysctl -w net.inet.tcp.mss_ifmtu=1
/etc/ipnat.confのpppoeの項目の最後にmssclampを追加。ifconfig pppoe0 mtu 1454
map pppoe0 192.168.1.0/24 -> 0/32 proxy port ftp ftp/tcp mssclamp 1414 map pppoe0 192.168.1.0/24 -> 0/32 proxy port 7070 raudio/tcp mssclamp 1414 map pppoe0 192.168.1.0/24 -> 0/32 portmap tcp/udp 40000:60000 mssclamp 1414 map pppoe0 192.168.1.0/24 -> 0/32 mssclamp 1414
DHCPの設定ファイル/etc/dhcpd.confを作成。
まずドメイン名とネームサーバーのを設定。
固定でIPアドレスを割り振らない場合には以下のように書く。option domain-name "localnet"; option domain-name-servers 192.168.1.4;
subnet 192.168.1.0 netmask 255.255.255.0 {
range 192.168.1.10 192.168.1.20;
option broadcast-address 192.168.1.255;
option routers 192.168.1.4;
}
固定でIPアドレスを割り振りたい場合には以下のように書く。
host ichigo {
hardware ethernet xx:xx:xx:xx:xx:xx;
fixed-address ichigo.localnet;
}
/etc/rc.confでDHCPを有効にする。
dhcpd=YES dhcpd_flags="-q ex0"