]>
Commit | Line | Data |
---|---|---|
ffeb717f AF |
1 | #!/bin/sh |
2 | ######################################################################## | |
3 | # Begin $rc_base/init.d/swconfig | |
4 | # | |
5 | # Description : Script to setup lan switch. | |
6 | # don't edit this script! If you want change the functions | |
7 | # create an own script called swconfig.user | |
8 | ######################################################################## | |
9 | ||
10 | . /etc/sysconfig/rc | |
11 | . ${rc_functions} | |
12 | ||
13 | if [ -e /etc/init.d/swconfig.user ]; then | |
14 | /etc/init.d/swconfig.user $* | |
15 | exit ${?} | |
16 | fi | |
17 | ||
18 | if [ -e /var/ipfire/ethernet/swconfig_mac ]; then | |
19 | SWMAC=`cat /var/ipfire/ethernet/swconfig_mac` | |
20 | else | |
21 | # Generate a random local administrated mac address for vlan swconfig. | |
22 | SWMAC=`printf "%1x2:%02x:%02x:%02x:%02x" $[RANDOM%16] $[RANDOM%256] $[RANDOM%256] $[RANDOM%256] $[RANDOM%256]` | |
23 | echo $SWMAC > /var/ipfire/ethernet/swconfig_mac | |
24 | fi | |
25 | ||
26 | case "${1}" in | |
27 | start) | |
309b7de8 | 28 | case `cat /proc/device-tree/model 2>/dev/null` in |
4a277656 | 29 | "Lamobo R1") |
ffeb717f AF |
30 | # |
31 | # Lamobo R1 aka BPi R1 Routerboard | |
32 | # | |
4a277656 | 33 | # Speaker | LAN4 | LAN3 | LAN2 | LAN1 || WAN | HDMI |
ffeb717f | 34 | # SW-Port | P2 | P1 | P0 | P4 || P3 | |
4a277656 | 35 | # VLAN | 14 | 13 | 12 | 11 || all | |
ffeb717f AF |
36 | # |
37 | # Switch-Port P8 - ALL(t) boards internal CPU Port | |
38 | # | |
4a277656 AF |
39 | |
40 | device=`ls /sys/class/net/*/device/driver/1c50000.ethernet/net | head -1` | |
ffeb717f | 41 | ip link set $device up |
4a277656 AF |
42 | |
43 | # create bridge | |
44 | ip link add switch0 type bridge | |
45 | ip link set wan master switch0 | |
46 | ip link set lan1 master switch0 | |
47 | ip link set lan2 master switch0 | |
48 | ip link set lan3 master switch0 | |
49 | ip link set lan4 master switch0 | |
50 | ||
ffeb717f | 51 | # configure vlans |
4a277656 AF |
52 | bridge vlan add vid 11 dev lan1 pvid untagged |
53 | bridge vlan add vid 12 dev lan2 pvid untagged | |
54 | bridge vlan add vid 13 dev lan3 pvid untagged | |
55 | bridge vlan add vid 14 dev lan4 pvid untagged | |
56 | bridge vlan add vid 11 dev wan | |
57 | bridge vlan add vid 12 dev wan | |
58 | bridge vlan add vid 13 dev wan | |
59 | bridge vlan add vid 14 dev wan | |
60 | ||
61 | # Remove wrong vlan1 from all ports | |
62 | bridge vlan del vid 1 dev lan1 | |
63 | bridge vlan del vid 1 dev lan2 | |
64 | bridge vlan del vid 1 dev lan3 | |
65 | bridge vlan del vid 1 dev lan4 | |
66 | bridge vlan del vid 1 dev wan | |
67 | ||
68 | # enable all ports | |
69 | ip link set lan1 up | |
70 | ip link set lan2 up | |
71 | ip link set lan3 up | |
72 | ip link set lan4 up | |
73 | ip link set wan up | |
74 | ||
75 | # create virtual interfaces for the vlan's | |
ffeb717f AF |
76 | modprobe 8021q |
77 | vconfig add $device 11 | |
78 | vconfig add $device 12 | |
79 | vconfig add $device 13 | |
80 | vconfig add $device 14 | |
81 | # set local mac addresses. | |
82 | ip link set dev $device.11 address $SWMAC:11 | |
83 | ip link set dev $device.12 address $SWMAC:12 | |
84 | ip link set dev $device.13 address $SWMAC:13 | |
85 | ip link set dev $device.14 address $SWMAC:14 | |
86 | # need to restart udev... | |
87 | killall udevd | |
88 | /etc/init.d/udev start | |
89 | ;; | |
90 | esac | |
91 | exit 0 | |
92 | ;; | |
93 | ||
94 | *) | |
95 | echo "Usage: ${0} {start}" | |
96 | exit 1 | |
97 | ;; | |
98 | esac | |
99 | ||
100 | # End $rc_base/init.d/swconfig | |
101 |