Image credit: Copyright Eduroam, used here as fair use to indicate the network in question.
It seems there's a few bugs in various Android variants that prevent a valid routing table being setup when connecting to an institutional eduroam network. The problem, which I have seen people reporting on XDA, occurs when you can get onto the wifi network, but still no resources are available.
You'll need a rooted device to fix this, and it's a clumsy workaround, but here's what I did on the University of Sussex campus.
1.) Dump a valid routing table from a device that works:
sudo route Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 10.0.8.5 * 255.255.255.255 UH 0 0 0 wlan0 link-local * 255.255.0.0 U 1000 0 0 wlan0 default 10.0.8.5 0.0.0.0 UG 0 0 0 wlan0
2.) Shell into your android device and check the routing table there:
route Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface
What a surprise, it's empty.
3.) Add a route to your gateway and then a default route using the gateway
route add 10.0.8.5 dev eth0 route add default gw 10.0.8.5 dev eth0 route Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 10.0.8.5 * 255.255.255.255 UH 0 0 0 eth0 default 10.0.8.5 0.0.0.0 UG 0 0 0 eth0
Hurrah! You are now connected. It's probably worth putting this in a script which you can automatically run with Script Kitty or the such like.
4.) Test connectivity
ping google.com PING google.com (74.125.230.116) 56(84) bytes of data. 64 bytes from 74.125.230.116: icmp_seq=1 ttl=53 time=14.8 ms