1

Linuxにイーサネットスタックを持つドライバーを実装したいのですが、ハードウェアに出力されるデータはシリアルポートになります。基本的に、シリアルポートをイーサネットドライバとして登録したいと思います。これが可能かどうか誰かが何か考えを持っていますか?IPv6やUDPパケットをシリアルポートからプッシュし、同様の方法でシリアルポートを介してパケットを受信し、イーサネットスタックに渡すことができるようにしたいと考えています。

シリアルからイーサネットへのコンバーター(シリアルポートをイーサネットポートに変換する外部ハードウェア)のソリューションを使用したくありませんが、PC自体にそれを持っています。

シリアルポートを介してPPPを試しましたが、うまく機能します。また、PPPを使用してFTP、HTTPなどを実行できると言われています。これへの参照-http://www.faqs.org/docs/Linux-HOWTO/Serial-Laplink-HOWTO.html

RealTekイーサネットドライバーからシリアルドライバーでコードをハックしようとしましたが、あまり成功しませんでした。むしろ、私は実際に何か意味のあることをするためのどちらのスタックも知りません。アドバイス、ガイダンス、チュートリアルがあれば役に立ちます。

ありがとうAditya

4

2 に答える 2

0

SLIPPPPは、あなたが望むことをすでに行っています。

于 2015-11-11T15:48:48.493 に答える
0

ネットワーキングの基本に戻る必要があります。あなたの質問を理解する方法は、「シリアルポートがあり、使用したいのはイーサネットリンクです」です。あなたの夢を打ち砕いて申し訳ありませんが、それを行うための実際のハードウェアを持っていません。詳しく説明します。

シリアル接続は、3 本のワイヤ (少なくとも) tx、rx、およびグラウンドを必要とする物理的な接続です。論理的な側面では、バイナリデータを個別の電圧範囲で表される信号に変換する IC があります。

イーサネットはレイヤー 2 プロトコルです。レイヤー 1 は、信号 (同軸、アップ、ファイバーなど) の送信に使用されるテクノロジによって提供されます。デジタル番号のストリーム。実際、これはコール フレーミングです。

イーサネットは使いやすいプロトコルであるため、多くのネットワーク オペレータに推奨されるプロトコルとして実装されています。もちろん、最大のプロトコルの 1 つは、イーサネット リンクを介して PPP セッションを行う PPPoE です。もちろん、反対のことを試みているので、これはあなたの例でも機能しません。

あなたがただ学んでいるだけで、世界にいる時間があれば、シリアル回線を介して独自のイーサネット フレーマを作成することができます。これは、ドライバーに IEEE802.3 を実装する必要があることを意味します。次に、データをシリアル化して、シリアル ライン経由でビット ストリームとしてプッシュする必要があります。もちろん、次の欠点に注意してください。

  • ドライバーはイーサネットを完全にはサポートできません。何らかのシグナリングを実装するには、ハードウェア レベルで何らかのサポートが必要です (たとえば、オート ネゴシエーション、CSMA/CD など)。
  • 115.2kbps がデータ転送の最高速度である時代に戻らない限り、ドライバーはほとんど役に立たないでしょう。

私見では、デバイス ドライバーのネットワーク分野で取り上げることができる、よりエキサイティングなプロジェクトがあります。たとえば、NIC を購入して、そのデバイス ドライバを最初から開発して、特定の領域を最適化することができます。最後に、イーサネットの実装のほとんどがハードウェアで行われるようになったことを思い出してください。そのため、何もする必要はなく、MAC でいくつかのレジスタを埋めるだけです。

于 2012-08-24T06:25:17.373 に答える