diff --git a/packages/network/connman/config/network.conf b/packages/network/connman/config/network.conf index bd9d207d76..55b4973992 100644 --- a/packages/network/connman/config/network.conf +++ b/packages/network/connman/config/network.conf @@ -1,14 +1,19 @@ # Network configuration -# Hostname - HOSTNAME="openelec" +# Hostname to use, this also affects Samba, Avahi and some others +# ypu can leave blanc to use "openelec" as hostname (default) + HOSTNAME="" -# Network interface name or address (e.g. "eth0" or "00:0d:56:ec:ba:0c") -# you can leave blanc to use eth0 +# Network technology ( LAN / WLAN ) +# "LAN" or leave blanc to use Wired LAN Connection (default) + NETWORK="" + +# Network interface name or address (e.g. "eth0", "wlan0" or "00:0d:56:ec:ba:0c") +# you can leave blanc to use eth0 (default) IFACE="" # Static IP address in CIDR format (e.g. "192.168.1.1/24") -# leave blanc to use DHCP server +# leave blanc to use DHCP server (default) IPADDRESS="" # Network gateway (e.g. "192.168.1.254") @@ -18,3 +23,18 @@ # List of DNS servers (e.g. "192.168.1.253;192.168.1.254") # you must setup if you use an static IP address NAMESERVER="" + +# WLAN SSID (e.g. "MyNetwork") +# needed for Wireless network configuration + SSID="" + +# WLAN Security method ( NONE / WEP / PSK ) +# "NONE" or leave blanc on an open WLAN (default) +# "WEP" for WEP protected WLAN's +# "PSK" for WPA protected WLAN's + SECURITY="" + +# Passphrase to access your Wireless network (e.g. "TopSecret") +# needed for secure Wireless network configuration (WEP and WPA) + PASSPHRASE="" + diff --git a/packages/network/connman/init.d/13_network b/packages/network/connman/init.d/13_network index 4fe0712b6c..ceea521151 100755 --- a/packages/network/connman/init.d/13_network +++ b/packages/network/connman/init.d/13_network @@ -24,21 +24,15 @@ # # runlevels: openelec, installer, textmode +# LAN: no security: no SSID, NAME:Wired, no PASSPHRASE, tech: ethernet, mode: _cable +# WLAN: no security: SSID, NAME, no PASSPHRASE, tech: wifi mode: _managed_none +# WLAN: (WPA2): SSID, NAME, PASSPHRASE, tech: wifi mode: _managed_psk +# WLAN: (WEP): SSID, NAME, PASSPHRASE, tect: wifi mode: _managed_wep + . /etc/profile [ -f $HOME/.config/network.conf ] && . $HOME/.config/network.conf - [ -z "$HOSTNAME" ] && HOSTNAME="openelec" -[ -z "$IFACE" ] && IFACE=eth0 -[ -f /sys/class/net/$IFACE/address ] && IFACE=`cat /sys/class/net/$IFACE/address` - -CONNMAN_PROFILE="/var/lib/connman/default.profile" -IP=`echo $IPADDRESS | cut -f1 -d/` -PREFIX=`echo $IPADDRESS | cut -f2 -d/` - -# bring lo up, whether we have network card or not - progress "starting Loopback Network interface" - ifconfig lo 127.0.0.1 up # setup hostname progress "Setup hostname" @@ -48,23 +42,65 @@ PREFIX=`echo $IPADDRESS | cut -f2 -d/` progress "creating /etc/hosts" echo -e "127.0.0.1\tlocalhost $HOSTNAME" > /etc/hosts -# starting Connection manager - progress "starting Connection manager" +( + # setup Networking + progress "setup Networking" - mkdir -p /var/run/connman - mkdir -p /var/lib/connman + CONNMAN_PROFILE="/var/lib/connman/default.profile" - echo "[ethernet_`echo $IFACE | sed 's/://g'`_cable]" > $CONNMAN_PROFILE + mkdir -p /var/run/connman + mkdir -p /var/lib/connman - if [ -z "$IPADDRESS" ]; then - echo "IPv4.method=dhcp" >> $CONNMAN_PROFILE - else - echo "IPv4.method=manual" >> $CONNMAN_PROFILE - echo "IPv4.local_address=$IP" >> $CONNMAN_PROFILE - [ -n "$PREFIX" ] && echo "IPv4.netmask_prefixlen=$PREFIX" >> $CONNMAN_PROFILE - [ -n "$GATEWAY" ] && echo "IPv4.gateway=$GATEWAY" >> $CONNMAN_PROFILE - [ -n "$NAMESERVER" ] && echo "Nameservers=$NAMESERVER;" >> $CONNMAN_PROFILE - fi + # NETWORK: ( LAN / WLAN ) + usleep 2000000 # TODO: wait on udev to load all drivers - touch /var/run/resolv.conf - /usr/sbin/connmand + [ -z "$IFACE" ] && IFACE="eth0" + [ -f /sys/class/net/$IFACE/address ] && \ + IFACE=`cat /sys/class/net/$IFACE/address | sed 's/://g'` + + if [ "$NETWORK" = "WLAN" -a -n "$SSID" ]; then + SSID_HEX=`echo -n "$SSID" | od -tx1 | cut -c8-| tr -d ' \n'` + + # SECURITY: ( NONE / WEP / PSK ) + if [ "$SECURITY" = "WEP" -a -n "$PASSPHRASE" ]; then + MODE="managed_wep" + elif [ "$SECURITY" = "PSK" -a -n "$PASSPHRASE" ]; then + MODE="managed_psk" + else + MODE="managed_none" + fi + + echo "[wifi_${IFACE}_${SSID_HEX}_${MODE}]" > $CONNMAN_PROFILE + echo "Name=$SSID" >> $CONNMAN_PROFILE + echo "SSID=$SSID_HEX" >> $CONNMAN_PROFILE + [ -n "$PASSPHRASE" ] && echo "Passphrase=$PASSPHRASE" >> $CONNMAN_PROFILE + echo "Favorite=true" >> $CONNMAN_PROFILE + echo "AutoConnect=true" >> $CONNMAN_PROFILE + + else + MODE="cable" + echo "[ethernet_${IFACE}_${MODE}]" > $CONNMAN_PROFILE + fi + + # IP settings + if [ -z "$IPADDRESS" ]; then + echo "IPv4.method=dhcp" >> $CONNMAN_PROFILE + else + IP=`echo $IPADDRESS | cut -f1 -d/` + PREFIX=`echo $IPADDRESS | cut -f2 -d/` + echo "IPv4.method=manual" >> $CONNMAN_PROFILE + echo "IPv4.local_address=$IP" >> $CONNMAN_PROFILE + [ -n "$PREFIX" ] && echo "IPv4.netmask_prefixlen=$PREFIX" >> $CONNMAN_PROFILE + [ -n "$GATEWAY" ] && echo "IPv4.gateway=$GATEWAY" >> $CONNMAN_PROFILE + [ -n "$NAMESERVER" ] && echo "Nameservers=$NAMESERVER;" >> $CONNMAN_PROFILE + fi + + # starting Connection manager + progress "starting Connection manager" + + touch /var/run/resolv.conf + /usr/sbin/connmand + + usleep 2000000 #TODO: wait for connman + touch /var/run/network +)&