====== 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 を使って,普通のイーサネットスイッチと同じ状態にします. #!/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 ~ $