安卓系统上安装.net运行时 mono runtime
感谢以下博主:
ubuntu指南 http://dawndiy.com/archives/229/
img大小调整 http://zebinj.blog.163.com/blog/static/206290199201412114912137/
mono 编译 http://www.linuxdot.net/bbsfile-3090
最近闲来无事,翻出了我雪藏已久的安卓小平板,别小看我这个7存的小平板,怎么说还能开一两个网页,卡卡的看下视频...
废话不多说,no pictrue i don't say:
需要准备的工作:
- 设备需要root权限
- Android Terminal Emulator (终端模拟器) :用于运行 shell 脚本 Google Play
- BusyBox :用于提供 shell 命令的支持 Google Play
- Ubuntu 12.04 的映像文件:用于安装 Ubuntu 的映像文件 选择下载: Full、Small、Core
- ubuntu.sh :Ubuntu 的安装脚本 下载
- bootscript.sh:Ubuntu 的启动脚本 点这里下载
中途安装 BusyBox出了点意外,大家留意一下,如果你也出现重新开机还原的问题,请重新安装BusyBox到system/bin目录下
1.安装文件下载
首先就是下载必要的文件,上面讲到的需要的 Ubuntu 12.04 的映像文件,这个是在 sourceforge.net 上的一个叫 Linux-on-Android 的项目。我上面给的地址中有三个包可供下载:
其实下面就有英文的介绍,我就在这里简单介绍一下:
- full 映像包含了完整的 Ubuntu 系统,其中包括 Unity 桌面,还有很多如GIMP等常用软件,非常齐全。需要 3.5G 以上空间。
- small 映像包含了的基本的 Ubuntu 系统,其中包括 LXDE 桌面,需要 2G 以上空间。
- core 映像包含了基础的 Ubuntu 系统,不过这个没有GUI的,也就是没有桌面只有命令行。
上面下载的就是待安装的 Ubuntu 12.04 的映像文件,然后我们安装还需要安装脚本,也就是上面说的 ubuntu.sh ,还有安装后的启动脚本 bootscript.sh 。有了这些文件后我们在手机的SD卡的根目录,新建一个文件夹取名为 ubuntu ,然后把这里我们刚才下载好的文件放到这个文件夹里面,到这里 ubuntu 文件夹里就分别有 ubuntu.img、ubuntu.sh、bootcript.sh 这三个文件了。
2.安装软件
先展示一下我们需要的三个软件,如图:
首先需要的是 Terminal 这个软件,也就是一个终端,通过终端我们可以用来执行很多命令和脚本。上面我给出了Google Play的地址,这个在很多地方都有的下的,还有Android VNC Viewer也可以在 Google Play 里面找到安装。
在 这里我要说一下BusyBox,它使得你可以在 Terminal 中运行很多命令,现在很多 Android 的 Rom (我用的MIUI_v4_2.8.10也是) 的终端中很多命令都不能运行,比如 cp、mv、cut 等,但是这些都是我们脚本里面需要用到的,如果不能运行这些命令而执行脚本的话,会提示 **: not found 这样的提示。所以安装 BusyBox 可以使得这些命令都能够在终端里面执行。如果你的Rom本来够强大已经包含了BusyBox的新版本,能够运行基本的shell命令的话,那也可以不用装 这个。
当然安装BusyBox以及后面我们在Terminal中都需要 root 权限,如果是MIUI系统的话则可以直接在 授权管理 > ROOT权限管理 里面打开该选项,然后需要root权限的时候允许就可以了。其他的系统我没用过,不过可以直接用 一键ROOT工具 来操作。
安装BusyBox,安装好后,打开BusyBox点击 Install 开始安装,如果弹出需要ROOT权限,点下一步允许就行,如图:
3.安装 ubuntu 12.04
首先,打开 终端模拟器(Terminal) ,在光标处输入 “cd /sdcard/ubuntu”(不包括引号,注意cd后有空格)然后回车,这样就来到了刚才我们在SD卡里面新建的目录了,如图:
然后我们可以输入命令 “ls” 然后回车,我们就可以看到当前目录下的所有文件了,看一下里面是不是我们需要的三个文件,如图:
接下来我们就要开始运行 ubuntu.sh 这个安装脚本了,但在这之前我们需要使用 root 用户来运行这个脚本,在终端中使用命令 “su” 来切换至 root 用户权限,如果弹出授权信息点击下一步允许就行了,或者直接用 一键ROOT 来开启终端重复上面操作,成功后如图之前的“$”变成了“#”,这就说明已经获得Root权限了,如图:
然后运行安装脚本,输入命令 “sh ubuntu.sh”,进行安装,如图:
然后脚本为你建立了一个名字为“ubuntu”的帐号,这里提示你需要为你的帐号设置一个密码,这个密码会在以后你操作 Ubuntu 的时候一些授权应用到,比如我在这里设置密码为:“ubuntu”,这里注意的是在终端里面输入密码是不会显示出来的,你看见光标没有动静,但实际上你已经输入进去了。回车后提示再次输入密码以保证你两次密码一样,如图:
密码设置完成后,提示是否启动VNC服务和SSH服务,我们只要输入“y”然后回车,开启了这两个服务后我们才能通过远程连接来连上系统,如图:
然后提示我们输入设备屏幕的尺寸,我的屏幕是854×480的,所以我输入“852×480”(小米手机注意:小米手机是854×480的,但是后面用Android VNC 连接的时候有问题,在右边会显示一条线,所以小米手机用户最好设置成“852×480”,其他手机没有测试过,在设置的时候请注意!)。注意:这里两个数字之间的不是乘号,而是字母“xyz”的“x”,输错了不能远程连接的,
在vnc viewer下登录
192.168.1.107:1
输入密码
ubuntu
ok,可以看见熟悉的界面了,默认是root用户
安装一下编译的依赖包
# apt-get update
# apt-get upgrade
# apt-get install build-essential
# apt-get install automake autoconf
# apt-get install bison gettext libtool libglib2.0-dev libfreetype6-dev libfontconfig-dev gettext
下载mono source
# cd ~/
# wget http://download.mono-project.com/sources/mono/mono-3.4.0.tar.bz2
# tar jxvf mono-3.4.0.tar.bz2
下载3.4.0缺失的文件 (这里感谢 any):
cd mono-3.4.0/mcs/tools/xbuild/targets/
wget https://raw.githubusercontent.com/mono/mono/master/mcs/tools/xbuild/targets/Microsoft.Portable.Common.targets
呼~~,准备就绪,开始编译,我安装到/usr目录下,这样比较方便
# cd ~/mono-3.4.0
# ./configure --prefix=/usr
...........漫长的config之后
GC: no
缺失libgc,嗯....
# apt-get install libgc*
我懒了,抱歉...
然后
# ./configure --prefix=/usr
# make
......我在这里等了一天
# make install
......我在这里等了两天
ok,安装成功!
安装失败的可能,磁盘空间不足,解决方法:
去到ubuntu.img目录
cd ~/Desktop/sdcard/ubuntu
ubuntu@localhost:~$ mono -V
Mono JIT compiler version 2.10.8.1 (Debian 2.10.8.1-1ubuntu2)
Copyright (C) 2002-2011 Novell, Inc, Xamarin, Inc and Contributors. www.mono-pro
ject.com
TLS: __thread
SIGSEGV: normal
Notifications: epoll
Architecture: armel,soft-float
Disabled: none
Misc: softdebug
LLVM: supported, not enabled.
GC: Included Boehm (with typed GC and Parallel Mark)
可以看到(我用ssh登陆的),安装完毕了,真是一波三折啊....
总的来说,我的小平板运行桌面还是很流畅的,甚至网页都可以多开好几个了,赞一个。
刚刚装了jexus,有时间搭建一个网站看看如何。
最后:monodevelop跑不起来?不解