xbmc-addon-settings: add support to setup 2nd network interface

Signed-off-by: Stephan Raue <stephan@openelec.tv>
This commit is contained in:
Stephan Raue 2011-07-28 04:44:56 +02:00
parent 88dea10271
commit d00c85400f
9 changed files with 137 additions and 8 deletions

View File

@ -13,6 +13,18 @@
<setting id="NET_PREFIXLEN" value="24" />
<setting id="NET_SECURITY" value="NONE" />
<setting id="NET_SSID" value="" />
<setting id="NET2_DNS1" value="" />
<setting id="NET2_DNS2" value="" />
<setting id="NET2_DNS3" value="" />
<setting id="NET2_GATEWAY" value="" />
<setting id="NET2_HIDDEN" value="false" />
<setting id="NET2_IFACE" value="eth1" />
<setting id="NET2_IPADDRESS" value="" />
<setting id="NET2_NETWORK" value="NONE" />
<setting id="NET2_PASSPHRASE" value="" />
<setting id="NET2_PREFIXLEN" value="24" />
<setting id="NET2_SECURITY" value="NONE" />
<setting id="NET2_SSID" value="" />
<setting id="SABNZBD_START" value="false" />
<setting id="SAMBA_START" value="true" />
<setting id="TRANSMISSION_AUTH" value="false" />

View File

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<addon id="os.openelec.settings"
name="OpenELEC OS Settings"
version="0.0.9"
version="0.0.10"
provider-name="openelec.tv">
<requires>
<import addon="os.openelec.tv" version="@OS_VERSION@"/>

View File

@ -34,6 +34,9 @@
<string id="2153">WLAN beveiliging</string>
<string id="2154">WLAN wachtwoord</string>
<!-- Network 2 -->
<string id="2200">Netwerk 2</string>
<!-- SAMBA -->
<string id="5000">Samba</string>
<string id="5010">Configuratie</string>

View File

@ -34,6 +34,9 @@
<string id="2153">WLAN Security</string>
<string id="2154">WLAN Passphrase</string>
<!-- Network 2 -->
<string id="2200">Network 2</string>
<!-- SAMBA -->
<string id="5000">Samba</string>
<string id="5010">Boot</string>

View File

@ -34,6 +34,9 @@
<string id="2153">Sécurité WIFI</string>
<string id="2154">Passphrase</string>
<!-- Network 2 -->
<string id="2200">Réseau 2</string>
<!-- SAMBA -->
<string id="5000">Samba</string>
<string id="5010">Démarrage</string>

View File

@ -34,6 +34,9 @@
<string id="2153">WLAN Sicherheit</string>
<string id="2154">WLAN Passwort</string>
<!-- Network 2 -->
<string id="2200">Netzwerk 2</string>
<!-- SAMBA -->
<string id="5000">Samba</string>
<string id="5010">Samba Server</string>

View File

@ -34,6 +34,9 @@
<string id="2153">WLAN Sikkerhet</string>
<string id="2154">WLAN Passord</string>
<!-- Network 2 -->
<string id="2200">Nettverk 2</string>
<!-- SAMBA -->
<string id="5000">Samba</string>
<string id="5010">Oppstart</string>

View File

@ -44,6 +44,28 @@
<setting id="NET_PASSPHRASE" type="text" option="hidden" label="2154" default="" enable="!eq(-1,0)"/>
</category>
<!-- Network 2 -->
<category label="2200">
<setting label="2120" type="lsep"/>
<setting type="sep" />
<setting id="NET2_NETWORK" type="labelenum" label="2221" values="NONE|LAN|WLAN" sort="yes" default="NONE" />
<setting id="NET2_IFACE" type="labelenum" label="2222" values="eth0|eth1|wlan0|wlan1" sort="yes" default="eth1"/>
<setting label="2130" type="lsep"/>
<setting type="sep" />
<setting id="NET2_IPADDRESS" type="ipaddress" label="2131" default=""/>
<setting id="NET2_PREFIXLEN" type="labelenum" label="2132" values="0|1|2|3|4|5|6|7|8|9|10|11|12|13|14|15|16|17|18|19|20|21|22|23|24|25|26|27|28|29|30|31|32" sort="yes" default="24"/>
<setting id="NET2_GATEWAY" type="ipaddress" label="2133" default=""/>
<setting id="NET2_DNS1" type="ipaddress" label="2134" default=""/>
<setting id="NET2_DNS2" type="ipaddress" label="2135" default=""/>
<setting id="NET2_DNS3" type="ipaddress" label="2136" default=""/>
<setting label="2150" type="lsep"/>
<setting type="sep" />
<setting id="NET2_SSID" type="text" label="2151" default=""/>
<!-- <setting id="NET2_HIDDEN" type="bool" label="2152" default="false" /> -->
<setting id="NET2_SECURITY" type="labelenum" label="2153" values="NONE|WPA/WPA2|WEP" sort="yes" default="NONE" />
<setting id="NET2_PASSPHRASE" type="text" option="hidden" label="2154" default="" enable="!eq(-1,0)"/>
</category>
<!-- SAMBA -->
<category label="5000">
<setting label="5010" type="lsep"/>

View File

@ -24,6 +24,10 @@
if [ -f /var/config/settings.conf ]; then
. /var/config/settings.conf
# save original interface names (eth0, eth1)
NET_IFACE_NAME=$NET_IFACE
NET2_IFACE_NAME=$NET2_IFACE
fi
[ -z "$NET_HOSTNAME" ] && NET_HOSTNAME="openelec"
@ -40,16 +44,15 @@ fi
[ -f $HOME/.config/hosts.conf ] && cat $HOME/.config/hosts.conf >> /etc/hosts
(
# setup Networking
progress "setup Networking"
# setup Networking 1
progress "setup Networking 1"
CONNMAN_PROFILE="/var/lib/connman/default.profile"
mkdir -p /var/run/connman
mkdir -p /var/lib/connman
# NETWORK: ( LAN / WLAN )
# NETWORK 1: ( LAN / WLAN )
for i in 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30; do
if [ ! -f /sys/class/net/$NET_IFACE/address ]; then
logger -t Connman "### [$i] cannot find /sys/class/net/$NET_IFACE/address ###"
@ -84,7 +87,6 @@ fi
[ -n "$NET_PASSPHRASE" ] && echo "Passphrase=$NET_PASSPHRASE" >> $CONNMAN_PROFILE
echo "Favorite=true" >> $CONNMAN_PROFILE
echo "AutoConnect=true" >> $CONNMAN_PROFILE
else
MODE="cable"
echo "[ethernet_${NET_IFACE}_${MODE}]" > $CONNMAN_PROFILE
@ -104,12 +106,90 @@ fi
[ -n "$NET_DNS3" ] && NET_NAMESERVER="$NET_NAMESERVER;$NET_DNS3"
[ -n "$NET_NAMESERVER" ] && echo "Nameservers=$NET_NAMESERVER;" >> $CONNMAN_PROFILE
fi
# END OF NETWORK 1
# NETWORK 2: ( LAN / WLAN )
if [ "$NET2_NETWORK" != "NONE" -a "$NET2_IFACE_NAME" != "$NET_IFACE_NAME" ]; then
# setup Networking 2
progress "setup Networking 2"
for i in 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30; do
if [ ! -f /sys/class/net/$NET2_IFACE/address ]; then
logger -t Connman "### [$i] cannot find /sys/class/net/$NET2_IFACE/address ###"
else
logger -t Connman "### [$i] found /sys/class/net/$NET2_IFACE/address, continue ###"
NET2_IFACE=`cat /sys/class/net/$NET2_IFACE/address | sed 's/://g'`
break
fi
usleep 500000
done
if [ "$NET2_NETWORK" = "WLAN" -a -n "$NET2_SSID" ]; then
NET2_SSID_HEX=`echo -n "$NET2_SSID" | od -tx1 | cut -c8-| tr -d ' \n'`
# NET_SECURITY: ( NONE / WEP / WPA/WPA2 )
if [ "$NET2_SECURITY" = "WEP" -a -n "$NET2_PASSPHRASE" ]; then
MODE="managed_wep"
elif [ "$NET2_SECURITY" = "WPA/WPA2" -a -n "$NET2_PASSPHRASE" ]; then
MODE="managed_psk"
else
MODE="managed_none"
fi
if [ "$NET2_HIDDEN" = "true" ]; then
echo "[wifi_${NET2_IFACE}_hidden_${MODE}]" >> $CONNMAN_PROFILE
else
echo "[wifi_${NET2_IFACE}_${NET2_SSID_HEX}_${MODE}]" >> $CONNMAN_PROFILE
fi
echo "Name=$NET2_SSID" >> $CONNMAN_PROFILE
echo "SSID=$NET2_SSID_HEX" >> $CONNMAN_PROFILE
[ -n "$NET2_PASSPHRASE" ] && echo "Passphrase=$NET2_PASSPHRASE" >> $CONNMAN_PROFILE
echo "Favorite=true" >> $CONNMAN_PROFILE
echo "AutoConnect=true" >> $CONNMAN_PROFILE
else
MODE="cable"
echo "[ethernet_${NET2_IFACE}_${MODE}]" >> $CONNMAN_PROFILE
fi
# IP settings
if [ -z "$NET2_IPADDRESS" ]; then
echo "IPv4.method=dhcp" >> $CONNMAN_PROFILE
else
echo "IPv4.method=manual" >> $CONNMAN_PROFILE
echo "IPv4.local_address=$NET2_IPADDRESS" >> $CONNMAN_PROFILE
[ -n "$NET2_PREFIXLEN" ] && echo "IPv4.netmask_prefixlen=$NET2_PREFIXLEN" >> $CONNMAN_PROFILE
[ -n "$NET2_GATEWAY" ] && echo "IPv4.gateway=$NET2_GATEWAY" >> $CONNMAN_PROFILE
[ -n "$NET2_DNS1" ] && NET2_NAMESERVER="$NET2_DNS1"
[ -n "$NET2_DNS2" ] && NET2_NAMESERVER="$NET2_NAMESERVER;$NET2_DNS2"
[ -n "$NET2_DNS3" ] && NET2_NAMESERVER="$NET2_NAMESERVER;$NET2_DNS3"
[ -n "$NET2_NAMESERVER" ] && echo "Nameservers=$NET2_NAMESERVER;" >> $CONNMAN_PROFILE
fi
(
# wait some time, put eth1 (NET2_IFACE) down and then up
# this is just temporary solution until I figure out how to
# do properly with connman
usleep 5000000
ifconfig $NET2_IFACE_NAME down
usleep 1000000
ifconfig $NET2_IFACE_NAME up
)&
fi
# END OF NETWORK 2
# overwrite created profile with custom one if exist (debug use only)
DEBUG_CONNMAN_PROFILE="/storage/.config/connman.profile"
[ -f "$DEBUG_CONNMAN_PROFILE" ] && cp $DEBUG_CONNMAN_PROFILE $CONNMAN_PROFILE
[ -f "$DEBUG_CONNMAN_PROFILE" ] && mv $DEBUG_CONNMAN_PROFILE ${DEBUG_CONNMAN_PROFILE}_saved
# starting Connection manager
progress "starting Connection manager"
while true; do
/usr/sbin/connmand -n > /dev/null 2>&1
/usr/sbin/connmand -n
usleep 250000
done
)&