Android x86 移植,无法使其正常工作。

28

我对移植问题很陌生,但因为Android SDK提供的模拟器速度缓慢而接触到它。

我从该网站下载了android-x86-3.2-RC2-eeepc和android-x86-3.2-RC2-tegav2 ISO-es并在VirtualBox上尝试,但eeepc版本没有网络连接,tegev2则无法启动。

我尝试了VirtualBoxHowTo,但没有得到任何东西,在Windows和Linux平台上都是如此。我唯一明白的是,要在VM上使用它,你需要为VM构建它。

有人可以帮助我吗?

P.S.:我需要HoneyComb版本(3.2),我的电脑是AMD 6核心和Asus Crosshair Extreme主板,运行Windows 7或Ubunutu 11.10。(两个操作系统都是64位)

8个回答

19

我解决了这个问题。以下是我用来获取互联网连接的步骤。

在我的情况下,网关地址为192.168.0.254,而DNS服务器为192.168.0.10。 我从未使用的IP地址中选择一个IP地址作为VirtualBox主机的地址(192.168.0.250)。

1) 首先,我设置了VirtualBox网络配置:

附加到:桥接适配器

适配器类型:PCnet-FAST III

2) 然后,我启动VirtualBox中的Android;启动后,我打开一个root shell,按Alt + F1键。

3) 在这里,我使用以下命令:

ifconfig eth0 up 192.168.0.250
route add default gw 192.168.0.254 dev eth0
setprop net.dns1 192.168.0.10

4) 现在,我返回到Android (Alt + F7),并且我可以上网了!

不幸的是,每次启动Android都必须遵循这个流程。


为了获取网关和DNS IP地址,从Windows中您可以使用以下命令:

ipconfig /all

您必须参考您的网络适配器


我尝试了eeepc和tegav2的iso,但是当我执行ifconfig eth0时,它会显示设备未找到。我的适配器类型是PCnet-FAST III,但Android无法检测到它。我确定这不是Virtualbox的问题,因为其他发行版都可以正常连接到互联网。你能否将你的Virtualbox磁盘上传到某个地方? - Bibek Shrestha
谢谢你。我花了数小时在Google上搜索并尝试了Stack Overflow上的各种解决方案,但只有你的方法对我有效。 - Josh1billion

12

经过一些研究,我发现解决这个问题的最简单方法!关键是dhcpcd和dns设置。

  1. 将VirutalBox网络适配器配置为桥接适配器。 适配器类型:PCnet-FAST III (也许其他类型也可以,我没有测试)

  2. 从VirtualBox启动Android;启动后,通过按下Alt+F1打开root shell,输入以下命令:

dhcpcd
  • 输入以下命令以设置DNS服务器:

    setprop net.dns1 yourDnsServerIp
    
  • 完成!


    5
    这是我的操作步骤:

    附加到:NAT PCnet-Fast III

    1. 按下Ctrl+F1
    2. 输入dhcpcd eth0
    3. 输入setprop net.dns1 [你的互联网服务提供商的DNS],我的是75.75.75.75
    4. 按下Ctrl+F7返回GUI界面
    

    4
    对于蜂巢版本,请确保Virtualbox设置使用PCNET III驱动程序。随后,您可以手动启用以太网。像市场和同步这样的应用程序仍然无法工作,因为它们似乎正在寻找WLAN接口是否处于连接状态。

    是的,它使用PCNET III驱动程序。问题不在于市场...而在于浏览器!我无法查看Google或其他网站... - Vito Gentile

    3
    在我的情况下,我必须使用电缆连接。在任何时候都无法通过Wi-Fi连接。这可能对于遇到相同问题的人有所帮助。
    我在VM中使用了以下配置:
    桥接适配器 PCnet-FAST III
    然后在正在运行的模拟器上:
    首先按下ctrl+f1
    类型:setprop net.dns1 *yourDns(类似于192.168.1.1,不包括*)
    (如果您不知道自己的DNS,请运行cmd.exe并键入:ipconfig / all,向下滚动到显示DNS服务器的位置)
    按下ctrl+f7返回到模拟器
    编辑:看起来您也必须键入“dhcpcd eth0”,具体取决于您的互联网提供商。我在3个地方中有2个没有使用它,但可能需要。

    1

    如果您想在Windows 7操作系统的VirtualBox中运行Android x86,那么您不需要对任何内容进行移植。

    创建一个新的虚拟机,硬盘大小为8MB,视频内存为8MB(请参阅VirtualBoxHowTo页面以获取更多VirtualBox设置)。然后,将eeepc ISO附加到虚拟机并通过在Oracle BIOS屏幕上按F12键从CD-ROM驱动器启动。接下来,使用箭头键选择“安装”并按Enter键。

    按照过程(有很多教程),关闭虚拟机,删除ISO文件并启动虚拟机。

    我刚刚写了几段关于Android x86的注意事项,因此您可能需要查看博客文章。我不知道在这里包含链接是否会被视为垃圾邮件,因此如果您需要URL,请留言。

    安装Android x86的示例教程:http://brunocosta.com/blog/pt/2011/11/02/speeding-up-android-development-with-android-x86-and-virtualbox/


    你所描述的过程适用于Android 2.3和其他版本。问题在于当我尝试在Honeycomb上使用互联网时!在回答之前,你有尝试安装3.2版本吗? - Vito Gentile
    不,但我认为在 Android x86 的不同版本之间保持如此基本的东西不变是合理的。显然我错了,谢谢你让我知道。我会继续寻找使互联网连接正常工作的方法。 - Zian Choy
    你的VirtualBox网络设置是什么?从busybox中netcfg的输出是什么? - Zian Choy
    这是netcfg的输出: lo UP 127.0.0.1/8 0x00000049 00:00:00:00:00:00 eth0 DOWN 0.0.0.0/0 0x00001002 08:00:27:1b:cf:23我选择了NAT和桥接模式,并尝试了所有可能性,但没有成功... - Vito Gentile
    @ZianChoy 我正在尝试在VirtualBox虚拟机上为Android 2.3设置网络,但我的问题是netcfg只返回lo(127.0.0.1)接口...你可以帮我吗?(https://dev59.com/zmox5IYBdhLWcg3wWjHQ) - davioooh
    @DavidC。你应该为此开始一个新的StackOverflow问题。 - Zian Choy

    1

    检查内核中编译的驱动程序。那一定是原因。如果我没记错,你必须在内核中(或作为模块)编译VirtualBox的驱动程序才能使其正常工作。由于据Google称Honeycomb很混乱,我不怀疑内核没有这种支持。我会尽快自己检查并相应更新这个答案。


    好的,我在等一些消息...谢谢 ;) - Vito Gentile

    -1

    在我的情况下,我有本地网络,所以我的路由器充当dhcp服务器

    因此,在VirtualBox中,

     set network to bridge
     PCNET Fast III (may be others work I have not tested)
    

    切换到控制台请按Ctrl + F1

    然后在命令行中输入

    setprop net.dns1 dnsserveraddress
    

    在我的情况下,我做了如下操作

    setprop net.dns1 8.8.8.8
    

    8.8.8.8 是 Google DNS ..

    之後它就可以運作了


    网页内容由stack overflow 提供, 点击上面的
    可以查看英文原文,
    原文链接