V7に外部からTELNETできるようにするPCメモPC関係のメモ、気付いたこと。OSをいじって遊んでいます。OSのカスタムビルドを配布しています。ないブログに表示されています。新しい記事を書く事で広告が消えます。V7をインストールしました。V7に別のマシンからtelnetでログインできるようにしてみます。KitのUNIX7と前回のインストールテープから入れたものとでは構成が結構違っています。Kitから入れたほうを使って作業します。カーネルソースのダウンロード外部からtelnetできるようにするためには、通信用のデバイスが必要ですが、今のままでは使えません。使えるようにするためにはカーネルの再構築を行う必要があります。V7にはカーネルソースが入っていません(テープイメージから入れたほうには最初からソースが入っています)。そのため、まずソースをダウンロードしてくる必要があります。V7の全ファイルは以下のコマンドでダウンロードします。作成されるディレクトリ階層が深いので上に持ってきます。V7は磁気ディスクにRL02を使っているため、/usr/sys/confの下にrltmconfというファイルがあるものを用意する必要があります。このrltmconfがないソースアーカイブが多いので注意が必要です。Multiplexerというというデバイスを有効にします。そのためには一部のソースにパッチを当てます。具体的には、カーネル再構築の設定を行う/usr/sys/conf/mkconfでデバイスdzを扱えるようにします。以下にその内容を示します。このパッチの元ネタは以下のサイトで公開されているものです。http://www.ljosa.com/~ljosa/v7-dz11ただ、このサイトのパッチは前回使ったテープイメージ(Keith_Bostic_v7)のソース用に作られており、今回使うソースとはちょっと行番号がずれているので手直ししています。このパッチをmkconf.c.diffという名前で保存しておきます。続いて、ダウンロードしたソースファイルにこのパッチを当てます。./usr/sys/conf/mkconf.clinux$カーネルソースをテープイメージに格納するパッチを当てたら、カーネルソースが置かれている./usr/sysの内容をtarで固めて、simhのテープイメージに変換します。テープイメージの作成には前回の記事で使ったtapewriteコマンドを使います。V7の実行環境があるディレクトリにコピーしておきます。V7に持っていきます。そのため、起動用の設定ファイルを少し書き換えます。新しい設定ファイルの内容は以下の通りです。rl0追加したのは磁気ディスクrl1と磁気テープtm0の定義です。rl1は読み込むソースの展開先として使います。tm0はさっき作ったカーネルソースのテープイメージを読み込むために使います。V7を起動していきます。ディスクを追加したので聞いてきます。追加したrl1にファイルシステムを作ってマウントし、テープイメージを読み込みます。/dev/mt0これで/mnt/usr/sysの下にカーネルソースができました。続けて、デバイスdzが使えるようにカーネル再構築の設定を行います。カーネル再構築用のツールであるmkconfをさっきパッチを当てたソースで再コンパイルします。mkconf続いてデバイスdzを組み込むための設定ファイルを作ります。ある設定ファイルrltmunixにデバイスdzを追加します。2480設定ファイルにdzが入ったので、この設定ファイルを使ってカーネルを再構築します。make日付をきちんと設定していないので、すでにunixがあるというエラーが出るかもしれません。そのときはunixと.oファイルを消して再度makeします。これで、/mnt/usr/sys/conf/unixにビルドした新しいカーネルができます。このカーネルなら外部からの接続を受け付けられますが、まだ少し準備が必要です。デバイスファイルの作成まず/dev配下に外部端末用のttyファイルを作ります。その前に、c.cファイルの中にdzのメジャー番号が書かれているのでまずそれを調べます。*/この例ではdzのメジャー番号は19です。この行にはdzopen、dzcloseなどの名前が書かれていますが、再構築する前のc.cではこの行がすべてnodevになっています。メジャー番号がわかったのでデバイスファイルを作ります。今回は3つ作っておきます。2#続いて/etc/ttysファイルを編集して、今作ったデバイスを有効にします。/etc/ttysのtty0?の行はいずれも00で始まっていますが、これを12で始まるように書き換えます。最初は"10tty??"にしていましたが、これだと外部からつないだときのレスポンスがかなり悪くなります。対策を探していたのですが、2ケタ目が0だと端末との通信速度が300~1200ボーとして扱われるということがわかりました。ここを2にすることで9600ボーの端末として扱われ、レスポンスが劇的に改善しました。カーネルを置き換えていったん終わらせます。起動時にdzを有効にするために、simhの設定ファイルを書き換えます。rl0待ち受け用ポート番号は環境に応じて適当に指定します。待ち受けポートはiptablesの設定で外部からの接続を受け付けるようにしておく必要があります。この設定を使ってbootします。mail.#無事にブートしたので、別のマシンから接続してみます。今回はWindowsマシンのTeraTermからtelnetでlinuxマシンのポート4096につないでみます。無事につながりました。Unixをインストールするsimhをインストールしてみるランキングに参加してみました。クリックしていただければ嬉しいです。