私のインターフェースファイルをビルドルートファイルシステムに追加しました(rootfsを上書き)。
auto lan1
iface lan1 inet manual
auto lan2
iface lan2 inet manual
auto br0
iface br0 inet static
address 192.168.40.1
netmask 255.255.255.0
bridge_ports lan1 lan2
bridge_fd 5
bridge_stp no
ただし、次のエラーが発生します(dmesgまたは/var/log/messagesには表示されません)。
Cannot find device "br0"
buildroot に bridge-utils が組み込まれており、手動でブリッジを作成できますが (brctl addbr br0) 起動時に完了しません。
どんなアイデアがありますか?
編集:これは私のものです構成定義そして完了インターフェースファイル
私はsystemdを使用しません。レガシーvinitらしい。
/sbin/init --help
BusyBox v1.32.0 (2021-01-21 18:56:27 CET) multi-call binary.
フランクさんこんにちは
答え1
/etc/network/interfacesのブリッジングサポートは、/etc/network/if-pre-up.d、if-post-down.d、if-down.dの「ブリッジ」スクリプトとライブラリスクリプト/libで提供されています。 /bridge-utils/bridge-utils.sh
Debian では、これらのブリッジサポート拡張スクリプトは bridge-utils パッケージの一部です。 buildrootで使用されているbridge-utilsのソースコードを見ると、kernel.orgこれらのブリッジサポートスクリプトはソースコードパッケージの一部ではありません。
Debian に含まれる追加のブリッジサポートスクリプトは、以下で提供されます。Debian 独自のリポジトリ/etc/network/interfaces のブリッジング構文が Buildroot で機能しない理由は、これらのスクリプトがないためです。
答え2
lan1
手動で設定するように起動に指示するように指定されlan2
ました。manual
これら 2 つのインターフェイスは、br0
初期化前にイネーブルになっていないため失敗します。
0.0.0.0を割り当てて有効にしてlan
起動lan2
してみてください。私は常に優先順位が重要であると疑っていますので、そのファイルの最後の定義が次のようになっていることを確認interfaces
してください。br0
auto lan1 lan2 br0
iface lan1 inet manual
up ifconfig lan1 0.0.0.0 up
iface lan2 inet manual
up ifconfig lan2 0.0.0.0 up
iface br0 inet static
address 192.168.40.1
netmask 255.255.255.0
bridge_ports lan1 lan2
bridge_fd 5 # not sure this is necessary with stp 'no'
bridge_stp no