台湾の企業Realtekは、ネットワーク(イーサネット)およびワイヤレス(WiFi)カードコントローラー、およびAC97オーディオコーデックチップで多くのPCユーザーに知られています。 ただし、RealtekにはPCアプリケーション用だけでなく、ネットワーク機器用のプロセッサもあります。
この記事では、Realtek RTL8954Cデバッグカードとネットワークプロセッサに精通し、Linuxベースカーネルを組み立てて実行し、イーサネットポートスループットテストも実行します。
タイトルの写真はRTL8954Cプロセッサ用のRealtekデバッグボードを示しています。これを複数のプロジェクトで使用して、VoIPテレフォニーをサポートするLAN / WAN / WiFiサブスクライバルーターを開発しました。
-組み込みCPU、MIPSアーキテクチャ、Radiaxテクノロジーを統合した最大620 MHzの周波数
•L2関数
-5つのIEEE 802.3 10/100 / 1000Mbpsトランスミッターを備えた6ギガビットイーサネットMACスイッチ
-外部ネットワークに接続するための1つの専用GMII / RGMII / MIIポート
-VLANサポート(4096の値のVLANテーブル)
•L3関数
-8つの同時PPPoEセッション
-自動PPPoE構成
-IPv4チェックサムの自動検証と生成
•L4機能
-TCP / UDPプロトコルのNAPTサポート
-TCP / UDPチェックサムの自動検証と生成
-L4 TCP / UDPの自動操作、チェックサム生成の検証
•ファイアウォール機能
-イーサネット、PPPoE、TCP、UDP、ICMP、およびIGMPプロトコル用のフィルターの作成
•QoS(サービスの品質)
-各ポートは6レベルのトラフィックプライオリティシステムをサポートします。 トラフィックの優先度は、ポート、802.1pタグ、DSCP、ACLベースの優先度、NATベースの優先度に基づいて提供されます。
-シリアル周辺機器インターフェース
-1つのPCI Expressホストと1つのPCI Expressスレーブをサポート
-組み込みの2つのPCI Express PHY
-USB周辺機器にアクセスするための1つのUSB 2.0ホストコントローラー
-内蔵1 USB PHY
-2 16550 UART
-最大44個のGPIOピン
•メモリインターフェイス
-シリアルフラッシュ(SPIタイプ)
-SDR DRAM
-DDR1 DRAM
-DDR2 DRAM
-I2Sインターフェイス
Realtek RTL8954Cボードキット
始めに、RealtekでNDAに署名し、RTL8954CのRealtek SDKにアクセスしました。 このSDKを使用すると、linux-2.6.30カーネルと基本的なrootfsを問題なくビルドできました。 クジラは下の写真に示されています:
ボードの主要コンポーネントをリストします(左から右へ、行ごとに):
- DECTモジュール用コネクタ
- イーサネットLEDパネル
- VOIP LED表示パネル(V400 / 401)
- PCI Express(IOH)
- JTAGオスプラグ
- WIFIモジュール
- ピンプラグ(UART)
- RTL8954Cプロセッサ
- DECTボタン
- WPSボタン
- リセットボタンをデフォルトに
- LE88221モジュール-2つのFXSポートを備えたSLIC
- FXS1コネクタ
- FXS0コネクタ
- DC 12V(電源)外部電源コネクタ
- USBドライブコネクタ
- 4つのLANポート用のコネクタ
- WANポートコネクタ
Realtek SDKに組み込まれた機能は次のとおりです。
- OS Linux-2.6.30
- ツールチェーンrsdk-1.3.6-5281-EB-2.6.30-0.9.30
- VOIP機能を実装するためのSDK
- Sambaを含む人気のあるオープンソースソフトウェアの小さなセット
そのため、Realtek RTL8954Cボードの完全なファームウェアのビルドに進みます。 このタスクを正常に完了するには、次のものが必要です。
1. Debian7システムをPCにインストールします。
2. Realtek SDKのアーカイブをユーザーディレクトリにコピーします。
sudo cp rtl89xxc-jungle-VoIP-1.6.1_20120711.tgz ~/
3. SDKを解凍します。
tar -zxf rtl89xxc-jungle-VoIP-1.6.1_20120711.tgz
4.ファームウェアアセンブリの構成ファイルをセットアップします。
d SDK d rtl89xxc-jungle-VoIP-1.6.1 make menuconfig
以下の説明に従って、組み立てたファームウェアを構成します(スクリーンショットを参照)。
Please select blow items: Selected Target (rtl89xxC) ---> Selected Kernel (linux-2.6.30) ---> Selected Busybox (busybox-1.13) ---> Selected toolchain (rsdk-1.3.6-5281-EB-2.6.30-0.9.30) ---> Selected Board Configuration (V400_Ramfs + VE890HV_2S1O + 92C + SAMBA) ---> [*] Config kernel [*] Load default settings <Exit><Save> Do you wish to save your new configuration? <ESC><ESC> to continue. Please select <Yes>.
RTK VoIP Suite ---> EV_Board version (RTL8954C_V400) ---> <Exit><Save>
ファームウェアをビルドします。
make all
5.プロセスが成功した場合、イメージフォルダーにファイルfw.bin、webpages.binがあります
6.ファームウェアファイルをPCのtftpサーバーディレクトリにコピーします。
cp ~/SDK/ rtl89xxc-jungle-VoIP-1.6.1/image/fw.bin /srv/tftp cp ~/SDK/ rtl89xxc-jungle-VoIP-1.6.1/image/webpages.bin /srv/tftp
次のプログラムをPCにインストールする必要があります。
A)tftp-hpa-Linux TFTPクライアントプログラム、コマンドを使用したLinuxへのインストール:
apt-get install tftp-hpa
B)tftpd-hpa-Linux TFTPサーバープログラム、コマンドを使用したLinuxへのインストール:
apt-get install tftpd-hpa
Realtek RTL8954Cのファームウェア
1.下のスクリーンショットに示すように、UARTを介してボードに接続します。
接続プログラム-minicom(開始コマンド:minicom –s)
2.デフォルトのbootloderブートローダープログラムは、u-bootではなくボード上で動作します。 ネットワークを使用するには、デフォルトのアドレスは192.168.1.6/24です。 ファームウェアを更新するには、PCの192.168.1.1/24サブネットからアドレスを構成し、PCとボードをスイッチに接続する必要があります。
3.ボードの電源を入れ、すぐにターミナルから「ESC」を押します。
4.次のコマンドを使用して、PCからボードにファームウェアを書き込みます。
d /srv/tftp tftp 192.168.1.6 -m binary -cp fw.bin
ファームウェアを記録した後、ボードが再起動します。ターミナルから「ESC」ボタンを押して、ボードのWebインターフェイスをフラッシュする必要があります
tftp 192.168.1.6 -m binary -cp webpages-gw.bin
5.電源を入れ直してボードを再起動します。
ボードのファームウェアの結果:
A)ファイルを操作するために、ロードされたシステムにminicom経由でアクセスします。
B)ボードのWebインターフェースへのアクセス:
LANおよびWANインターフェース上のRealtek RTL8954Cボードでのデータ転送速度のテスト
次に、このボードがネットワークパフォーマンスの点で何ができるかを見てみましょう。 一部のネットワークルーターは、プログラムでLAN / LANおよびLAN / WANデータ転送操作の一部を実行するため、パフォーマンスの問題が発生します。 以下に、イーサネットトラフィックのポータブルネットワークアナライザーを使用したネットワークパフォーマンスの1つのテストと、PCからPCへのデータ転送速度の2つのテストを示します。
ポータブルイーサネットネットワークトラフィックアナライザーに基づくネットワークパフォーマンステスト(LANブリッジ、NAT)
目的:トラフィックジェネレーターを使用して、さまざまなサイズのパケットでRTL8954Cのスループットをテストします。
タスク:
- トラフィックを生成および測定するためのデバイスをRTL8954Cボードに接続します。
- 一連のストレステストを実施します。
- テーブルに入力します。
得られた結果は次のとおりです。
パフォーマンス測定(スループット:LANブリッジ)
パッケージサイズ(ビット) パケットタイプ:TCP | 受け取った荷物 | 受信したMbps |
1500 | 5317251 | RXフレームレート986.829 Mbps RXデータレート948.671 Mbps RX使用率99.999%(1000.000 Mbps) |
1024 | 5375917 | RXフレームレート980.830 Mbps RXデータレート925.275 Mbps RX使用率99.999%(1000.000 Mbps) |
512 | 12601894 | RXフレームレート962.393 Mbps RXデータレート853.372 Mbps RX使用率99.999%(1000.000 Mbps) |
88 | 43111510 | RXフレームレート814.804 Mbps RXデータレート277.774 Mbps RX使用率99.999%(1000.000 Mbps) |
結論:テストでは、最大サイズが948.67 Mbpsで、フレームサイズが1500バイトであることが判明しました。
パフォーマンス測定(スループット:LAN to WAN(NAT))
パッケージサイズ(ビット) パケットタイプ:UDP | 受け取ったパッケージ | 受信したMbps |
1500 | 4957253 | RXフレームレート986.829 Mbps RXデータレート956.57 Mbps RX使用率100.00%(1000,000 Mbps) |
1024 | 8078375 | RXフレームレート980.83 Mbps RXデータレート936.77 Mbps RX使用率100.00%(1000,000 Mbps) |
512 | 5869635 | RXフレームレート962.39 Mbps RXデータレート875.93 Mbps RX使用率100.00%(1000,000 Mbps) |
88 | 8505488 | RXフレームレート814.80 Mbps RXデータレート277.77 Mbps RX使用率100.00%(1000,000 Mbps) |
結論:テストでは、最大サイズが956.57 Mbpsで、フレームサイズが1500バイトであることが判明しました。
LANテスト-LAN
タスク:
- LAN0(IP_ADDR PC1 192.168.1.1)およびLAN1(IP_ADDR PC2 192.168.1.2)カードのポートに、1ギガビットイーサネットネットワークカードを備えた2台のPCを接続します。
- PC1で、Iperfサーバーを開始します。
iperf –s
- PC2で、Iperfクライアントを起動します。iperf-from 192.168.1.1 –i 1
プログラムの結果は、ポート間のデータ転送速度になります。
テスト結果:
LANテスト-WAN
タスク:
- 1ギガビットイーサネットネットワークカードを備えた2台のPCをLAN0(IP_ADDR PC1 192.168.1.1)およびWAN(IP_ADDR PC2 192.168.2.2)カードポートに接続します。
- PC1およびPC2でルーティングパスをそれぞれ構成します。デフォルトルート(LAN IPカード192.168.1.254)およびデフォルトルート(Wan IPカード192.168.2.1)
- PC1で、Iperfクライアントを起動します。
iperf – 192.168.2.2 –i 1
- PC2で、Iperfサーバーを開始します。
iperf –s
プログラムの結果は、ポート間のデータ転送速度になります。
テスト結果:
最も興味深いのは、すべてのテストのプロセッサ負荷がほぼゼロであることです。 つまり すべてがハードウェアで行われます。スクリーンショットを参照してください。
したがって、ネットワークおよびマルチメディアタスク用のソフトウェアを開発およびデバッグするためのボードを受け取りました。
ご清聴ありがとうございました!
台湾のRealtekチームの別のプロセッサの「最適化」についてお読みになりたい場合は、記事「 Realtek RTL-1185メディアプロセッサでのLinuxの起動 」をお読みください。