ユーザ用ツール

サイト用ツール


bpi:log20150607_raspbian_swconfig

BPi-R1 で Raspbian に swconfig をインストール

BPi-R1 向けの Raspbian には,BPI-R1 に入っている イーサネット・スイッチ(BCM53125) を制御するための swconfig コマンドが入っていません.

調べると,下記の URL のシェルスクリプトがそのまま使えました. https://raw.githubusercontent.com/Bananian/bananian/master/scripts/build-swconfig.sh

このスクリプトに沿ってビルドすると,openwrt/package/network/config/swconfig/src の中に,ビルドされた swconfig が出来ます. この swconfig を /usr/local/bin にコピーすれば,OpenWrt の swconfig と同様に,Raspbian でも BPi-R1 のイーサネット・スイッチを制御できるようになります.

簡単な使い方

普通のイーサネットスイッチと同じにする

以下のスクリプトは,vlan を使って,普通のイーサネットスイッチと同じ状態にします.

vlan.sh
#!/bin/sh
# The swconfig port number are:
# |2|1|0|4|  |3|
# (looking at front of ports)
swconfig dev switch0 set reset
swconfig dev switch0 set enable_vlan 1
swconfig dev switch0 vlan 102 set ports '0 1 2 3 4 8'
swconfig dev switch0 port 0 set pvid 102
swconfig dev switch0 port 1 set pvid 102
swconfig dev switch0 port 2 set pvid 102
swconfig dev switch0 port 3 set pvid 102
swconfig dev switch0 port 4 set pvid 102
swconfig dev switch0 set apply

vlan を有効にして,全てのポートを vlan ID 102 に結びつけています.'set ports' の後に続くのは,その vlan ID に参加するポート番号です. 例えば '0 1 2 3 4 8' を '0 2 3 4 8' とすると,1番ポートはどこにも結びつかず,切り離しと同じになります.

各ポートのイーサネット接続状態

現在のイーサネットスイッチの接続状況を確認するには,以下の様にすると分かります.

pi@raspberrypi ~ $ for i in 0 1 2 3 4 5 6 7 8 ; do swconfig dev switch0 port $i get link ; done ;
port:0 link:down
port:1 link:up speed:1000baseT full-duplex auto
port:2 link:down
port:3 link:up speed:1000baseT full-duplex auto
port:4 link:up speed:100baseT full-duplex auto
port:5 link:down
port:6 link:down
port:7 link:down
port:8 link:up speed:1000baseT full-duplex 
pi@raspberrypi ~ $ 

イーサネット各ポートの通信状態

各ポートの通信状態を取得します.割と細かく出力していると思います.

pi@raspberrypi ~ $ swconfig dev switch0 show
Global attributes:
	enable_vlan: 1
	ports: 0x011f
	reset_mib: ???
	enable_jumbo: 0
	allow_vid_4095: 0
Port 0:
	mib: TxOctets            : 0
TxDropPkts          : 0
TxBroadcastPkts     : 0
TxMulticastPkts     : 0
TxUnicastPkts       : 0
TxCollisions        : 0
TxSingleCollision   : 0
TxMultipleCollision : 0
TxDeferredTransmit  : 0
TxLateCollision     : 0
TxExcessiveCollision: 0
TxPausePkts         : 0
RxOctets            : 0
RxUndersizePkts     : 0
RxPausePkts         : 0
Pkts64Octets        : 0
Pkts65to127Octets   : 0
Pkts128to255Octets  : 0
Pkts256to511Octets  : 0
Pkts512to1023Octets : 0
Pkts1024to1522Octets: 0
RxOversizePkts      : 0
RxJabbers           : 0
RxAlignmentErrors   : 0
RxFCSErrors         : 0
RxGoodOctets        : 0
RxDropPkts          : 0
RxUnicastPkts       : 0
RxMulticastPkts     : 0
RxBroadcastPkts     : 0
RxSAChanges         : 0
RxFragments         : 0
RxJumboPkts         : 0
RxSymbolErrors      : 0
RxDiscarded         : 0

	pvid: 102
	link: port:0 link:down
Port 1:
	mib: TxOctets            : 793722
TxDropPkts          : 0
TxBroadcastPkts     : 2024
TxMulticastPkts     : 2036
TxUnicastPkts       : 335
TxCollisions        : 0
TxSingleCollision   : 0
TxMultipleCollision : 0
TxDeferredTransmit  : 0
TxLateCollision     : 0
TxExcessiveCollision: 0
TxPausePkts         : 0
RxOctets            : 42356
RxUndersizePkts     : 0
RxPausePkts         : 0
Pkts64Octets        : 80
Pkts65to127Octets   : 274
Pkts128to255Octets  : 29
Pkts256to511Octets  : 7
Pkts512to1023Octets : 0
Pkts1024to1522Octets: 0
RxOversizePkts      : 0
RxJabbers           : 0
RxAlignmentErrors   : 0
RxFCSErrors         : 0
RxGoodOctets        : 42356
RxDropPkts          : 0
RxUnicastPkts       : 323
RxMulticastPkts     : 57
RxBroadcastPkts     : 10
RxSAChanges         : 1
RxFragments         : 0
RxJumboPkts         : 0
RxSymbolErrors      : 0
RxDiscarded         : 21

	pvid: 102
	link: port:1 link:up speed:1000baseT full-duplex auto
Port 2:
	mib: TxOctets            : 0
TxDropPkts          : 0
TxBroadcastPkts     : 0
TxMulticastPkts     : 0
TxUnicastPkts       : 0
TxCollisions        : 0
TxSingleCollision   : 0
TxMultipleCollision : 0
TxDeferredTransmit  : 0
TxLateCollision     : 0
TxExcessiveCollision: 0
TxPausePkts         : 0
RxOctets            : 0
RxUndersizePkts     : 0
RxPausePkts         : 0
Pkts64Octets        : 0
Pkts65to127Octets   : 0
Pkts128to255Octets  : 0
Pkts256to511Octets  : 0
Pkts512to1023Octets : 0
Pkts1024to1522Octets: 0
RxOversizePkts      : 0
RxJabbers           : 0
RxAlignmentErrors   : 0
RxFCSErrors         : 0
RxGoodOctets        : 0
RxDropPkts          : 0
RxUnicastPkts       : 0
RxMulticastPkts     : 0
RxBroadcastPkts     : 0
RxSAChanges         : 0
RxFragments         : 0
RxJumboPkts         : 0
RxSymbolErrors      : 0
RxDiscarded         : 0

	pvid: 102
	link: port:2 link:down
Port 3:
	mib: TxOctets            : 9410908
TxDropPkts          : 0
TxBroadcastPkts     : 280
TxMulticastPkts     : 226
TxUnicastPkts       : 98275
TxCollisions        : 0
TxSingleCollision   : 0
TxMultipleCollision : 0
TxDeferredTransmit  : 0
TxLateCollision     : 0
TxExcessiveCollision: 0
TxPausePkts         : 0
RxOctets            : 264257974
RxUndersizePkts     : 0
RxPausePkts         : 0
Pkts64Octets        : 3602
Pkts65to127Octets   : 17025
Pkts128to255Octets  : 1420
Pkts256to511Octets  : 1330
Pkts512to1023Octets : 450
Pkts1024to1522Octets: 172673
RxOversizePkts      : 0
RxJabbers           : 0
RxAlignmentErrors   : 0
RxFCSErrors         : 0
RxGoodOctets        : 264257974
RxDropPkts          : 0
RxUnicastPkts       : 189162
RxMulticastPkts     : 3470
RxBroadcastPkts     : 3868
RxSAChanges         : 7284
RxFragments         : 0
RxJumboPkts         : 0
RxSymbolErrors      : 0
RxDiscarded         : 0

	pvid: 102
	link: port:3 link:up speed:1000baseT full-duplex auto
Port 4:
	mib: TxOctets            : 643280
TxDropPkts          : 0
TxBroadcastPkts     : 1624
TxMulticastPkts     : 1882
TxUnicastPkts       : 69
TxCollisions        : 0
TxSingleCollision   : 0
TxMultipleCollision : 0
TxDeferredTransmit  : 0
TxLateCollision     : 0
TxExcessiveCollision: 0
TxPausePkts         : 0
RxOctets            : 144674
RxUndersizePkts     : 0
RxPausePkts         : 0
Pkts64Octets        : 139
Pkts65to127Octets   : 13
Pkts128to255Octets  : 42
Pkts256to511Octets  : 341
Pkts512to1023Octets : 0
Pkts1024to1522Octets: 6
RxOversizePkts      : 0
RxJabbers           : 0
RxAlignmentErrors   : 0
RxFCSErrors         : 0
RxGoodOctets        : 144674
RxDropPkts          : 0
RxUnicastPkts       : 0
RxMulticastPkts     : 81
RxBroadcastPkts     : 460
RxSAChanges         : 1
RxFragments         : 0
RxJumboPkts         : 0
RxSymbolErrors      : 0
RxDiscarded         : 4

	pvid: 102
	link: port:4 link:down
Port 5:
	mib: ???
	pvid: 0
	link: port:5 link:down
Port 6:
	mib: ???
	pvid: 0
	link: port:6 link:down
Port 7:
	mib: ???
	pvid: 0
	link: port:7 link:down
Port 8:
	mib: TxOctets            : 264353136
TxDropPkts          : 0
TxBroadcastPkts     : 4300
TxMulticastPkts     : 3504
TxUnicastPkts       : 188954
TxCollisions        : 0
TxSingleCollision   : 0
TxMultipleCollision : 0
TxDeferredTransmit  : 0
TxLateCollision     : 0
TxExcessiveCollision: 0
TxPausePkts         : 0
RxOctets            : 9302499
RxUndersizePkts     : 0
RxPausePkts         : 0
Pkts64Octets        : 195
Pkts65to127Octets   : 85788
Pkts128to255Octets  : 10869
Pkts256to511Octets  : 587
Pkts512to1023Octets : 411
Pkts1024to1522Octets: 363
RxOversizePkts      : 0
RxJabbers           : 0
RxAlignmentErrors   : 0
RxFCSErrors         : 6
RxGoodOctets        : 9300925
RxDropPkts          : 0
RxUnicastPkts       : 98088
RxMulticastPkts     : 107
RxBroadcastPkts     : 12
RxSAChanges         : 1
RxFragments         : 0
RxJumboPkts         : 0
RxSymbolErrors      : 0
RxDiscarded         : 0

	pvid: 102
	link: port:8 link:up speed:1000baseT full-duplex 
VLAN 102:
	ports: 0 1 2 3 4 8 
pi@raspberrypi ~ $ 
bpi/log20150607_raspbian_swconfig.txt · 最終更新: 2015-06-07 21:34 by tosihisa@netfort.gr.jp