From eeeca4dd45899c20d4fc187c59bda58af43352f2 Mon Sep 17 00:00:00 2001 From: David 'Digit' Turner Date: Tue, 18 Jan 2011 20:13:12 +0100 Subject: [PATCH] rootdir: goldfish: Fix network route during emulation. The net.eth0.gw system property is used by the ConnectivityService to set the default route when it detects that 3G connectivity is established. Because the property was undefined, the route was unset which broke networking. + Format / document init.goldfish.sh Change-Id: I1133cf6c093609300315cd0ea363c9e139b42521 --- rootdir/etc/init.goldfish.rc | 1 + rootdir/etc/init.goldfish.sh | 35 +++++++++++++++++++++++++---------- 2 files changed, 26 insertions(+), 10 deletions(-) diff --git a/rootdir/etc/init.goldfish.rc b/rootdir/etc/init.goldfish.rc index fa70c2ed2..1ac09caed 100644 --- a/rootdir/etc/init.goldfish.rc +++ b/rootdir/etc/init.goldfish.rc @@ -6,6 +6,7 @@ on early-init on boot setprop ARGH ARGH + setprop net.eth0.gw 10.0.2.2 setprop net.eth0.dns1 10.0.2.3 setprop net.gprs.local-ip 10.0.2.15 setprop ro.radio.use-ppp no diff --git a/rootdir/etc/init.goldfish.sh b/rootdir/etc/init.goldfish.sh index c18c03285..1156dd7fa 100755 --- a/rootdir/etc/init.goldfish.sh +++ b/rootdir/etc/init.goldfish.sh @@ -1,8 +1,26 @@ #!/system/bin/sh +# Setup networking when boot starts ifconfig eth0 10.0.2.15 netmask 255.255.255.0 up route add default gw 10.0.2.2 dev eth0 +# ro.kernel.android.qemud is normally set when we +# want the RIL (radio interface layer) to talk to +# the emulated modem through qemud. +# +# However, this will be undefined in two cases: +# +# - When we want the RIL to talk directly to a guest +# serial device that is connected to a host serial +# device by the emulator. +# +# - We don't want to use the RIL but the VM-based +# modem emulation that runs inside the guest system +# instead. +# +# The following detects the latter case and sets up the +# system for it. +# qemud=`getprop ro.kernel.android.qemud` case "$qemud" in "") @@ -18,17 +36,18 @@ case "$qemud" in ;; esac +# Setup additionnal DNS servers if needed num_dns=`getprop ro.kernel.ndns` case "$num_dns" in 2) setprop net.eth0.dns2 10.0.2.4 - ;; + ;; 3) setprop net.eth0.dns2 10.0.2.4 - setprop net.eth0.dns3 10.0.2.5 - ;; + setprop net.eth0.dns3 10.0.2.5 + ;; 4) setprop net.eth0.dns2 10.0.2.4 - setprop net.eth0.dns3 10.0.2.5 - setprop net.eth0.dns4 10.0.2.6 - ;; + setprop net.eth0.dns3 10.0.2.5 + setprop net.eth0.dns4 10.0.2.6 + ;; esac # disable boot animation for a faster boot sequence when needed @@ -42,10 +61,6 @@ esac # /system/bin/qemu-props -# this line doesn't really do anything useful. however without it the -# previous setprop doesn't seem to apply for some really odd reason -#setprop ro.qemu.init.completed 1 - # set up the second interface (for inter-emulator connections) # if required my_ip=`getprop net.shared_net_ip`