virtual box Ubuntu 连接手机

本文介绍如何在Ubuntu虚拟机中通过VMware连接Android手机进行调试,包括配置步骤和解决权限问题的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

引自:http://blog.163.com/squall_smile/blog/static/603498402013741005176/

ubuntu 12.10的vmware虚拟机中连接android手机设备调试  

手机是盛大bambook s1,系统大约是android 2.3.5左右。
win7 64位版上安装的vmware 8.0,装了ubuntu 12.10系统(来自于python for android的 kivy镜像盘,由原来的vdi(virtual box)格式转化而来(即vmdk格式)。
    用kivy库开发python for android程序时,由于kivy的显示依赖于opengl es图形库,而本机上安装的android虚拟机设定使用主机gpu时,总是起动不起来(vmware3D加速已打开,也不行。据说新版的kivy对虚拟机调试有所改善。稍后再研究这个问题),这样导致android虚拟机不可能有gpu硬件,从而kivy程序打包成apk上传至虚拟机时,根本无法显示。所以想到将手机连至虚拟机上,直接用手机硬件调试kivy程序。
查了一下相关资料,大致如下过程完成设置:
1 将手机数据线插到电脑上(win7 64位),当然手机usb调试要打开,这个不用说。
2 确认ubuntu虚拟机的usb选项打开正确。确保将usb连至虚拟机(即disconnected from host)。
3 此时启动ubuntu 12.10,在终端窗口中查看:lsusb
kivy@kivy-VirtualBox:~/android/android-sdk-linux/platform-tools$ lsusb
Bus 001 Device 002: ID 230b:0100  
Bus 002 Device 002: ID 0e0f:0003 VMware, Inc. Virtual Mouse
Bus 002 Device 003: ID 0e0f:0002 VMware, Inc. Virtual USB Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
kivy@kivy-VirtualBox:~/android/android-sdk-linux/platform-tools$ ./adb devices
List of devices attached 
可看到有5个usb设备,而adb devices并未发现android设备。
4 拔去手机,再次用lsusb查看:
kivy@kivy-VirtualBox:~/android/android-sdk-linux/platform-tools$ lsusb
Bus 002 Device 002: ID 0e0f:0003 VMware, Inc. Virtual Mouse
Bus 002 Device 003: ID 0e0f:0002 VMware, Inc. Virtual USB Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
可看出,Bus 001 Device 002: ID 230b:0100  此行正是盛大bambook s1手机的usb设备,大约由于此手机过于山寨,并未显示任何厂标。
5 cd /etc/udev/rules.d
vi 50-Android.rules
输入:
SUBSYSTEM=="usb", SYSFS{"High Tech Computer Corp."}=="230b", MODE="0666"
注意这里随便输入了个htc的公司名称,而"230b"是最重要的,在Bus 001 Device 002: ID 230b:0100 中可找到。
保存,chmod a+rx 此文件。
sudo /etc/init.d/udev restart
6 直接重启动ubtuntu得了。
7 重启后,再用adb devices查看,发现:
kivy@kivy-VirtualBox:~/android/android-sdk-linux/platform-tools$ ./adb devices
* daemon not running. starting it now on port 5037 *
* daemon started successfully *
List of devices attached 
????????????    no permissions
好,发现东西了,只是权限不对。
8 杀掉adb服务,重新用sudo权限启动之:
kivy@kivy-VirtualBox:~/android/android-sdk-linux/platform-tools$ ./adb kill-server
kivy@kivy-VirtualBox:~/android/android-sdk-linux/platform-tools$ sudo ./adb start-server
[sudo] password for kivy: 
* daemon not running. starting it now on port 5037 *
* daemon started successfully *
kivy@kivy-VirtualBox:~/android/android-sdk-linux/platform-tools$ ./adb devices
List of devices attached 
0123456789ABCDEF0123456789ABCDE    device
终于,找到了名为0123456789ABCDEF0123456789ABCDE   这个古怪名字的设备。
9 编译打包kivy程序:
kivy@kivy-VirtualBox:~/android/python-for-android/dist/default$ ./build.py --package org.test.SwitchMT --name "SwitchMT" --version 1.0 --dir ~/myprogs/SwitchMT debug installd
注意最后安装apk到手机的部份:
install:
     [echo] Installing /home/kivy/android/python-for-android/dist/default/bin/SwitchMT-1.0-debug.apk onto default emulator or device...
     [exec] 851 KB/s (6801828 bytes in 7.798s)
     [exec]     pkg: /data/local/tmp/SwitchMT-1.0-debug.apk
     [exec] Success

installd:

BUILD SUCCESSFUL
安装是成功的。
查看手机,SwitchMT的图标出现了。
### 如何在VirtualBox中使用Ubuntu的QCOW2镜像文件 为了使QCOW2格式的磁盘映像能够在VirtualBox环境中运行,需要将其转换成适用于VirtualBox的VDI、VMDK或其他支持的格式。可以利用QEMU工具来进行此操作。 #### 转换QCOW2到VMDK格式 通过命令行执行如下指令来完成转换过程: ```bash qemu-img convert -f qcow2 -O vmdk input.qcow2 output.vmdk ``` 上述命令中的`input.qcow2`代表原始的QCOW2文件路径名,而`output.vmdk`则是目标VMDK文件名称[^1]。 #### 创建新的虚拟机并附加硬盘 启动VirtualBox图形界面或采用命令行方式创建一个新的虚拟设备,并指定之前转化得到的`.vmdk`作为其主要存储介质之一。如果倾向于CLI,则可参照virt-install的一般形式构建新实例,不过需要注意的是这里的选项会有所不同,因为这是针对VirtualBox而非直接关联Linux KVM环境下的配置[^2]。 对于基于命令行的方式,在安装有VirtualBox的情况下,可以通过 VBoxManage 工具添加已有的磁盘图像至某台特定虚机关联列表里去: ```bash VBoxManage modifymedium "output.vmdk" --type normal VBoxManage storageattach "Your VM Name" --storagectl SATA --port 0 --device 0 --type hdd --medium "output.vmdk" ``` 这里假设已经有一个名为 `"Your VM Name"` 的虚拟机存在;如果不是这样则需先建立一台新机器再做相应设置。 关于硬件加速方面,虽然提到 `/dev/vboxdrv` 和 `/dev/kvm` 可能都是提供给不同平台访问底层CPU扩展特性的接口实现方案,但是它们之间并不通用互换。因此当涉及到具体应用层面时应当依据所选模拟器的要求来做适当调整[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值