9551b2c2f43c39747a32262c4bec7f7ca9fd69b6
[live-boot-grml.git] / debian / patches / 41_vlan_support.patch
1 --- a/components/9990-cmdline-old
2 +++ b/components/9990-cmdline-old
3 @@ -266,6 +266,11 @@
4                                 UNIONTYPE="${_PARAMETER#union=}"
5                                 export UNIONTYPE
6                                 ;;
7 +
8 +                       vlan=*)
9 +                               VLANS="${VLANS} ${_PARAMETER#vlan=}"
10 +                               export VLANS
11 +                               ;;
12                 esac
13         done
14  
15 --- a/components/9990-grml-networking.sh
16 +++ b/components/9990-grml-networking.sh
17 @@ -67,10 +67,39 @@
18          method="dhcp"
19      fi
20  
21 -    cat >> $IFFILE << EOF
22 +    if [ -n "$VLANS" ] ; then
23 +      modprobe 8021q
24 +
25 +      # vlan=<vid>:<phydevice>
26 +      for line in $(echo $VLANS | sed 's/ /\n'/) ; do
27 +        vlandev=${line#*:}
28 +        vlanid=${line%:*}
29 +
30 +        if [ -n "$vlandev" ] && [ -n "$vlanid" ] ; then
31 +          case "$vlandev" in
32 +            "$interface")
33 +              vlan_raw_dev=$interface
34 +              interface="${vlandev}.${vlanid}"
35 +              ;;
36 +          esac
37 +        fi
38 +      done
39 +    fi
40 +
41 +    if [ -n "$vlan_raw_dev" ] ; then
42 +      cat >> $IFFILE << EOF
43 +auto ${interface}
44 +iface ${interface} inet ${method}
45 +        vlan-raw-device $vlan_raw_dev
46 +EOF
47 +    else
48 +      cat >> $IFFILE << EOF
49  allow-hotplug ${interface}
50  iface ${interface} inet ${method}
51  EOF
52 +    fi
53 +
54 +    unset vlandev vlanid vlan_raw_dev # unset variables to have clean state for next device
55  
56      # DNS for resolvconf and /etc/resolv.conf
57      if [ -e "${netconfig}" ]; then