RTL8723BS WiFiドライバのRV1103移植

1. 概要

本稿では、Rockchip製RV1103チップにRealtek RTL8723BSモジュールのWiFi機能を移植する手順について解説します。同様の手順はRV1106、RV1126、RK3588などRockchipシリーズ全般に適用可能であり、ARMアーキテクチャのLinuxベースデバイスにおけるRTLシリーズWiFiドライバ移植にも参考になります。

SDKの使用例については最後のセクションを参照してください。

  • 使用プラットフォーム:RV1103
  • SDK:Luckfox SDK V1.3
  • 対象WiFiモジュール:BluetoothとWiFi機能を統合したRTL8723BS

2. ハードウェア接続仕様

RTL8723BSモジュールとの接続には以下の主要信号線を使用します:

  • WL_REG_ON:WiFi有効化GPIO。スリープ中も電源を維持しないと内部状態が消失し、復帰時に問題が発生します。
  • WL_HOST_WAKE:データ受信時にCPUを割り込みで喚醒するための信号線
  • CLK:SDIOクロック信号
  • CMD:コマンド送受信用双方向信号線
  • DAT0-DAT3:4本のデータ転送線
  • XTAL_OUT/XTAL_IN:外部クリスタル発振器接続端子

3. カーネル設定

WiFi機能を有効化するにはカーネル設定を変更します。SDKルートディレクトリで以下のコマンドを使用してカーネル設定メニューを開けます:

./build.sh kernelconfig

3.1 cfg80211サブシステム

LinuxにおけるWiFi管理基盤となるサブシステムです。主な構成要素:

  • nl80211:Netlink経由のユーザー空間インターフェース
  • wiphy:無線ハードウェアの抽象化オブジェクト
  • wdev:仮想デバイス管理インターフェース

3.2 ドライバビルドオプション

ドライバはMオプションでモジュールビルドが可能です。ロードはinsmodコマンドで実施します。

3.3 rfkillサブシステム

無線デバイスの電源制御を行うためのカーネルモジュールです。WiFiとBluetoothの電源管理には必須です。

4. Buildrootパッケージ追加

SDK V1.3以降では以下のコマンドでBuildroot設定が可能です:

./build.sh buildrootconfig

4.1 wpa_supplicant

無線ネットワーク認証管理ツールです。以下の主要コンポーネントを含みます:

  • wpa_supplicant:バックグラウンドで動作する認証サービス
  • wpa_cli:コマンドライン管理インターフェース

4.2 wireless-tools

Wireless Extension対応デバイス向けの管理ツール群です。

4.3 ビルド注意点

Buildroot設定完了後はmake cleanを実行しないでください。設定は自動保存され、makeコマンドで必要なパッケージをダウンロードできます。

5. デバイスツリー修正

5.1 電源制御ノード

sdio_pwrseq: sdio-pwrseq {
    compatible = "mmc-pwrseq-simple";
    pinctrl-names = "default";
    reset-gpios = <&gpio1 RK_PA2 GPIO_ACTIVE_LOW>;
};

5.2 SDMMCノード追加

&sdmmc {
    max-frequency = <50000000>;
    bus-width = <4>;
    cap-sd-highspeed;
    cap-sdio-irq;
    keep-power-in-suspend;
    non-removable;
    rockchip,default-sample-phase = <90>;
    supports-sdio;
    mmc-pwrseq = <&sdio_pwrseq>;
    pinctrl-names = "default";
    pinctrl-0 = <&sdmmc0_clk &sdmmc0_cmd &sdmmc0_bus4 &sdmmc0_det>;
    status = "okay";
};

5.3 GPIO設定

sdmmc0{
    sdmmc0_det: sdmmc0-det {
        rockchip,pins =
            <3 RK_PA1>;
    };
}

タグ: RTL8723BS WiFiドライバ移植 RV1103 Linuxカーネル SDIO

6月26日 23:43 投稿