ネットワークカードを認識させようっ!!
 さてさて、ネットワークカードを認識するには、SoundBlaster16 を認識させる為にしたカーネルのリコンフィグと同じ事をします。カードの情報を仕入れる為に、再度 Windows95 をブートして、ネットワークカードの情報を手に入れます。私の場合は以下になります。
 ちなみに私のネットワークカードはサードパーティ製 NE2000 互換 3,000yen の代物でした(^^;。
----------------
IRQ:         9
I/O PORT:    300
----------------
 この情報をもとにカーネルコンフィグファイルを見て見ます。 SB16 の時に作成した kernel_sound があったので、それを見てみましょう。
----------------
# Order is important here due to intrusive probes, do *not* alphabetize
# this list of network interfaces until the probes have been fixed.
# Right now it appears that the ie0 must be probed before ep0. See
# revision 1.20 of this file.
device de0
device fxp0
device vx0
device ed0 at isa? port 0x280 net irq  5 iomem 0xd8000 vector edintr
device ed1 at isa? port 0x300 net irq  5 iomem 0xd8000 vector edintr
device ie0 at isa? port 0x360 net irq  7 iomem 0xd0000 vector ieintr
device ep0 at isa? port 0x300 net irq 10 vector epintr
device ix0 at isa? port 0x300 net irq 10 iomem 0xd0000 iosiz 32768 vector ixintr
device le0 at isa? port 0x300 net irq 5 iomem 0xd0000 vector le_intr
device lnc0 at isa? port 0x280 net irq 10 drq 0 vector lncintr
device ze0 at isa? port 0x300 net irq 5 iomem 0xd8000 vector zeintr
device zp0 at isa? port 0x300 net irq 10 iomem 0xd8000 vector zpintr
----------------
 とまぁ・・。ネットワークカードのデバドラはこれだけ有ります(^^;。NE2000 互換の場合は

device ed0 at isa? port 0x280 net irq 5 iomem 0xd8000 vector edintr
device ed1 at isa? port 0x300 net irq 5 iomem 0xd8000 vector edintr

 のどちらかになります。まぁ、ブートメッセージを見れば何が必要で、何が必要でないかが解るので、要らないのはコンフィグファイルから消せば良いだけです(^^;。ブートメッセージは dmesg と言うコマンドで見る事が可能となっています。さて、Win95 で調べた IRQ を変更します。以下の様になりますね。

device ed1 at isa? port 0x300 net irq 9 iomem 0xd8000 vector edintr

 続いて、/etc/sysconfig に設定をします。以下の行、それぞれ正しくなっている事を確認します。  プロバイダに接続してみよう。の所で設定した通りになっている事が大事です。

----------------
# Set to the name of your host - this is pretty important!
hostname=roman 

# Set to the NIS domainname of your host, or NO if none
defaultdomainname=comeback.or.jp

# Set to the list of network devices on this host.  You must have an
# ifconfig_${network_interface} line for each interface listed here.
# for example:
## ここの設定は デバイスドライバと、IP アドレスを正確に・・。
network_interfaces="ed1 lo0 "
#ifconfig_tun0="inet 0.0.0.0 202.239.62.4 netmask 255.255.255.0"
ifconfig_ed1="inet 192.168.1.2 netmask 0xffffff00"
ifconfig_lo0="inet localhost"
----------------
 準備は完了。では早速カーネルを作って見ましょう。そんでもってリブートしてみましょう。この作業は SB16 を認識させた時と同じです。

 ブートした時に以下のメッセージが現れれば OK。もし現れていなかった場合、IRQ と DMA を間違えた証拠。再度トライしてください。

----------------
ed1 at 0x300-0x31f irq 9 on isa
ed1: address 00:80:ad:1d:fd:1a, type NE2000 (16 bit)
----------------
 さてさて、これと同時に以下のメッセージが表示されると思いますが・・。
----------------
ed1: device timeout
----------------
 このメッセージは特に IRQ の設定を間違えた時で出る模様です。Win95 のネットワークカードの情報を正しくコンフィグファイルに反映して上げましょう。

 あと、私のネットワークカードですが、ひどいのですぅ。上のメッセージが出る時と、出ない時があります。原因は NE2000 互換といいつつ、 Win95 で認識させる為に付属の FD からデバドラをインストールしました。インストールしないと動かないし・・。
 このデバイスドライバが「 NE2000 互換のデバドラの初期化+α をしてしまう」為に、電源投入後に FreeBSD をブートした時、FreeBSD の NE2000 互換デバドラ(ed0,ed1)では全ての初期化が完了しないので正しく動作しないのでした。
 私のカードは、PC の電源投入で一旦 Win95 をブートしてから FreeBSD にブートしなおさないと正しく動作しないカードなのです・・(-"-)。皆さん、こんな怪しいカードはくれぐれも買わない様にしましょう。


家庭内 LAN (家族だん LAN)の第一歩 SAMBA の設定
ごめんなさい・・。もちっと待ってください・・(^^;


LAN ごとダイアルアップして完璧さっ!!
 PPP はもう完璧っ!!だけど・・。以前から、FreeBSD で PPP して、LAN 上の Win95 のパケットも外に出て行かないかなぁ・・。思って波乗りしながらあっちゃこっちゃ探していたのでした。がっ!!遂に見付けました。世の中には凄い方がいらっしゃるものです。FreeBSD 2.1.5-RELEASE 標準バンドルの IIJ-PPP のソースにパッチを当ててそれを実現している方が居たのでした。

1. LAN ごとダイアルアップとは?
 LAN とは、同一ネットワーク内に継っている複数のマシンです。これが自宅の場合、一つのマシンが PPP していると他のマシンはその電話が切れないと PPP 出来ないと言う事になってします。
 それではなんなんで、一つのマシンが PPP している時に一緒に他のマシンの IP パケットも流れればなぁ・・。と言う考えが出て来ます。これが俗に言う LAN 型ダイアルアップ PPP です。

 仕掛けは簡単で、ローカルなネットワークマシンに付いた IP アドレスを PPP で取得した、IP アドレスに変換してパケットを外に出して上げるのです。これを NAT と呼ぶ様です。

     +--------+
-----|Provider|-------------------------- InterNet
     +--------+
        |
        |  ↓
        |  PPP   192.235.209.100
        |
========================================= LAN
        |             +-----+
        |    +--------+ HUB +--------+
        |    |        +-----+        |
     +--+----+-+                 +---+---+
     | FreeBSD |                 | Win95 |
     +---------+                 +-------+
     192.168.1.2                 192.168.1.1
     HostName:roman              HostName:bill
 マシンロマンとマシンビルは HUB 経由の LAN で接続されており、それぞれ、ローカルな IP アドレスを割り当てています。LAN 内部ではこの接続で使用できます。
 FreeBSD で IIJ-PPP を利用し、プロバイダに接続すると、プロバイダから IP アドレスが割り当てられます。その割り当てられた IP アドレスを仮に 192.235.209.100 としましょう。その時 FreeBSD の方はアドレス 192.235.209.100 でパケットを飛ばす事が可能な状態になりましたが、Win95 の方は、 IP アドレスが割り当てられずパケットが外に出て行きません・・。

 ここで、IP ホワーディングが必要になって来ます。つまり、

192.168.1.2 から出るパケットを 192.235.209.100 から出た様に見せる

同様に

192.168.1.1 から出るパケットを 192.235.209.100 から出た様に見せる

と言う、変換をする様にします。LAN の外の人は LAN の内部のどのマシンからパケットが出たかを考える必要が無いのです。

2. IIJ-PPP のチューンアップ
 Noropさん と言う方が標準バンドルの IIJ-PPP のソースに当てるパッチを発表し、更にそこに じゅんいちさん と言う方のパッチを当てて LAN 毎 ダイアルアップが可能になりました。有難うございました。私も利用させて頂いています。> お二人の方々。
 詳細はお二人のホームページで御覧になってください。私のホームページと違って中身が充実しています・・(^^;。

 Noropさん のページ  On Demand Dialup IP
 じゅんいちさんのページ  端末型でネットワーク型ダイヤルアップIPのように使う法!

 さて、実際にインストール方法のお話しを。まずは、お二方の発表しているパッチを入手します。

 Norop さん のパッチ     →  こちら
 じゅんいちさん のパッチ   →  こちら

 手に居れたパッチで作業を開始しましょう。IIJ-PPP のソースは通常、/usr/src/usr.sbin/ppp に有ります。まずはそこに行きます。一応、オリジナルソースは取って置きましょう。

----------------
roman# cd /usr/src/usr.sbin
roman# tar cvzfp ./ppp_ORG.tgz ./ppp
roman# cd ./ppp
roman# cat ppp.ondemand.diff | patch -p1
roman# cat nat-970215-1.patch | patch -p1
roman# make
roman# make install
roman#
----------------
 パッチの順番を間違えずに二つ当てて、後は、make;make install で新しい PPP コマンドが出来ました。は、早い・・(^^;。

3. FreeBSD (サーバ側)の環境設定
 まずは、/etc/ppp/ppp.conf に追加します。

----------------
default:
 set taddr 192.168.1.0/24
 set xaddr 192.168.1.1
----------------
 パッチを当てた IIJ-PPP では,自宅の LAN に付いて設定する機能が追加されます。追加されるコマンドは以下の通りです。

set taddr [ADDRESS/WIDTH]

 今回の場合,LAN では,192.168.1.0/24 のアドレスを使っていますので,上記設定行ないます.taddr の設定を行なわないと IP フォワーディング動作働きませんので注意して下さい。  この辺りのパラメータの説明に付きましてはの詳細はじゅんいちさん の NAT の説明を見てください。まぁ、上記二つあれば OK です(^^;。

 次に /etc/sysconfig を変更します。

----------------
# Set to the host you'd like set as your default router, or NO for none.
defaultrouter=YES

# If you want this host to be a gateway, set to YES.
gateway=YES
----------------
 最初は NO となっていたと思いますが、これを YES にします。これで OK です。

3. Win95 (クライアント側)の環境設定
 Win95 の場合、コントロールパネル→ネットワーク→ ICP/IP で設定します。

----------------
IP アドレス     :192.168.1.1
サブネットマスク:255.255.255.0
ゲートウェイ    :192.168.1.2
----------------
 これで OK 全て設定が終りました。れっつとらいっ!!。

#さて、今回、このページを書くにあたり、じゅんいちさん のページを非常に参考にさせて頂きました。有難うございました。

 みなさん、やって見て、もし動かない場合は、私のページだけで無く、じゅんいちさん のページを見る事もお勧めします。


Copyright (c) 1997-2004 takachan@running-dog.net All Rights Reserved.