让Ubuntu和Android同时运行(Ubuntu on Android)
来源:互联网 发布:工商银行博士后 知乎 编辑:程序博客网 时间:2024/05/17 03:53
Ubuntu目前有个项目叫Ubuntu for Android(http://www.ubuntu.com/devices/android),看起来非常cool:
它的原理在http://www.ubuntu.com/devices/android并无介绍。但是我们猜测可以用chroot配合实现一个最简单的Ubuntu for Android。
我们为Andriod编写一个脚本Ubuntu.sh,在该脚本中启动Ubuntu的文件系统,透过chroot进行:
#!/system/bin/shif [ `id -u` != "0" ]thenecho -e "\033[33m Becoming root \033[0m"su -c buexit 1fiecho -e "\033[33m Setting some stuff up..\033[0m "export bin=/system/binexport mnt=/data/local/ubuntuexport PATH=$bin:/usr/bin:/usr/sbin:/bin:$PATHexport TERM=linuxexport HOME=/rootif [ ! -d $mnt ]thenmkdir $mntfiecho -e "\033[33m Mounting the Linux Image \033[0m"#replace /dev/block/mmcblk1p2 by the partition Ubuntu image is replaced#it might be a loop imagebusybox mount -t ext4 -o noatime,nodiratime /dev/block/mmcblk1p2 $mntbusybox mount -t devpts devpts $mnt/dev/ptsbusybox mount -t proc proc $mnt/procbusybox mount -t sysfs sysfs $mnt/sysecho -e "\033[33m Setting Up Networking\033[0m"sysctl -w net.ipv4.ip_forward=1echo "nameserver 8.8.8.8" >> $mnt/etc/resolv.confecho "nameserver 8.8.4.4" >> $mnt/etc/resolv.confecho "127.0.0.1 localhost" > $mnt/etc/hostsecho -e "\033[33m Mounting sdcard in /mnt/sdcard\033[0m"if [ ! -d $mnt/mnt/sdcard ]thenmkdir $mnt/mnt/sdcardfibusybox mount --bind /mnt/sdcard/ $mnt/mnt/sdcardecho -e "\033[33m Entering CHROOT \033[0m"echo " "chroot $mnt /bin/bashecho " "echo -e "\033[33m Shutting down CHROOT\033[0m"echo -e "\033[33m umount $mnt/mnt/sdcard\033[0m"busybox umount $mnt/mnt/sdcardsysctl -w net.ipv4.ip_forward=0echo -e "\033[33m umount $mnt/dev/pts\033[0m"busybox umount $mnt/dev/ptsecho -e "\033[33m umount $mnt/proc\033[0m"busybox umount $mnt/procecho -e "\033[33m umount $mnt/sys\033[0m"busybox umount $mnt/sysecho -e "\033[33m umount $mnt\033[0m"busybox fuser -k $mntbusybox umount $mnt
其中的一行:
busybox mount -t ext4 -o noatime,nodiratime /dev/block/mmcblk1p2 $mnt是为了mount Ubuntu的rootfs,我们的实验中Ubuntu的rootfs存放在/dev/block/mmcblk1p2。该文件系统通过rootstack得到:
sudo rootstock -f ubuntu -l <yourname> -p <yourpassword> -i 1G --seed linux-image-omap,build-essential,tightvncserver, lxde
将得到的tgz包解压到我们sd卡的分区2。
运行Ubuntu.sh,进入到了Ubuntu的根文件系统,并执行了bash,之后我们开一个vncserver:
export USER=rootvncserver -geometry 800x480
在Android端,通过VNCClient软件连接到127.0.0.1:5901即可。运行的视频可下载:
http://download.csdn.net/download/21cnbao/4273156
- 让Ubuntu和Android同时运行(Ubuntu on Android)
- 让Ubuntu和Android同时运行(Ubuntu on Android)zz
- Android on Ubuntu
- Ubuntu下,Android编译和模拟器运行
- android eclipse on Ubuntu 9.04
- android app on ubuntu/windows
- chroot ubuntu 16.04 on android
- 编译vlc-android(build vlc-android on ubuntu)
- ubuntu下android源码的编译和运行
- android-4.4源码 在ubuntu上编译和 模拟运行
- How to Run Android Applications on Ubuntu
- Getting Android SDK working on Ubuntu 64
- Compile JThread 4 Android On Ubuntu
- fix Android building error on ubuntu 11.10
- How to Compile Android on Ubuntu (12.04)
- ubuntu_Install Android SDK on Ubuntu 12.04 LTS
- mount android yaffs image on ubuntu
- How to Compile Android on Ubuntu (12.04)
- C++续行符(反斜杠)
- 在Android下如何使用GDB (转)
- Oracle Apex 4.1 安装
- 如何解决在安卓虚拟机中安装.apk文件时遇到的“‘adb’不是内部或外部的命令,也不是可运行的程序或批处理文件”问题
- jquery中的cookie
- 让Ubuntu和Android同时运行(Ubuntu on Android)
- QQ屏幕坐标获取器
- SVN服务器安装
- 记录服务器登录用户的历史命令
- android4.0编译 error: ‘ptrdiff_t’ does not name a type
- ThreadLocal封装connection--隔离了相关资源,防止线程安全问题
- AVPlayerLayer
- 安卓巴士Android开发神贴整理
- Excel 宏 VBA