感谢以下博主:

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 的映像文件    选择下载: FullSmallCore
  • 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

dd if=/dev/zero of=bot.img bs=1M count=512
    创建一个512M大小的空镜像文件botbrew.img
cat botbrew.img >> ubuntu.img
e2fsck -f ubuntu.img
 
这里可能会提示文件无法写,因为那个目录不存在.... mkdir xxxx
 
resize2fs ubuntu.img
 
漫长的等待....
 
ok,继续编译
 

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跑不起来?不解

安卓系统上安装.net运行时 mono runtime的更多相关文章

  1. windows系统上安装与使用Android NDK r5 (转)

    windows系统上安装与使用Android NDK r5  很早就听说了android的NDK应用,只是一直没有时间去研究,今天花了点时间在windows平台搭建了NDK环境,并成功运行了第一个简单 ...

  2. 安卓手机上安装 谷歌 play 商店

    安卓手机上安装 谷歌 play 商店 安卓(Android)就是现在流行的智能手机系统,它是由Google公司和开放手机联盟领导及开发.由于安卓系统的底层代码(AOSP)是开源的,以GPL和Apach ...

  3. CentOS 6.5系统上安装SVN服务器端的方法及步骤

    VN其实就是Subversion,分为服务器端和客户端.之前在网上搜了很多方法,都有各种问题,经过自己搜集整理以及实际尝试,总算有个比较靠谱的方法.本文主要介绍CentOS 6.5系统上安装SVN服务 ...

  4. 在Vista或Windows 7系统上安装Sharepoint 2007

    在Vista或Windows 7系统上安装Sharepoint 2007 2010-03-05 18:53:19|  分类: 技术文章|字号 订阅     SharePoint 2007 不能直接安装 ...

  5. 在windows系统上安装VMware Workstation虚拟机,然后在虚拟机VMware Workstation上安装linux系统,在linux系统安装xshell的服务端,在windows系统上安装xshell。用windows系统上的xshell连接到linux

    第一步:安装xshell: 去百度   xshell ,然后安装一下就可以了.就是普通的软件安装,在这里不做过多的接收. 第二步:安装虚拟机VMware Workstation 百度安装,不做过介绍 ...

  6. 如何在64位系统上安装SQL Server 2000

    如何在64位系统上安装SQL Server 2000? 现在用SQL Server 2000数据库的人少了吧?大都是SQL Server 2005/2008了.不过还是有需求的,今天一朋友就让我在他的 ...

  7. Linux Centos 系统上安装BT客户端 Transmission

    Linux Centos 系统上安装BT客户端 Transmission   Transmission是一种BitTorrent客户端,特点是一个跨平台的后端和其上的简洁的用户界面,以MIT许可证和G ...

  8. 在VMware的Linux系统上安装Redis

    在VMware的Linux系统上安装Redis 具体过程如下: 下载,解压和编译: 在执行make的时候报错,具体报错信息如下: zmalloc.o: In function `zmalloc_use ...

  9. 在64位Ubuntu系统上安装32位程序包

    在64位Ubuntu系统上安装32位的程序包 $sudo apt-get install package_name:i386 例如: $sudo apt-get install openjdk-7-j ...

随机推荐

  1. 44. 普通对象建一个用户方法,提交时报:失败:建立业务逻辑对象失败:业务逻辑定义更新到数据库失败:ORA-00904: "DEFVERSION": 标识符无效

    LBBIZPROCESSDEFSLBHISTORYBIZPROCESSDEFSLBHISTORYMULTIWFDEFSDESIGNLBHISTORYWORKFLOWDEFSDESIGNLBMULTIW ...

  2. linux vim 替换指定字符为回车

    有个问题,想要知道逗号分隔的字符串  example: aaa,bbb,ccc 分隔后的个数 1 将   aaa,bbb,ccc 替换成 aaa bbb ccc 方法: :%s/,/^M/g ^M是用 ...

  3. HttpUtility.UrlEncode

  4. free pascal 错误代码表

    free pascal 错误代码表 为了方便对照检查运行时错误代码,这里把所有的错误代码的含义整理出来.(最大序号为232,中间不一定连续.user.pdf P175) Run-time errors ...

  5. Nginx编译参数大全 configure参数中文详解

    ./configure --help--help 显示本提示信息--prefix=PATH 设定安装目录--sbin-path=PATH 设定程序文件目录--conf-path=PATH 设定配置文件 ...

  6. 【原】JS原型的动态性及实例与原型的关系

    今天再读了<JS高程>的第六章,有了些深入的感悟和理解,总结分享一下. 创建对象的方式有很多,有一种是动态原型模式,最实用的是构造函数与原型组合的模式,原型的动态性在这两个模式里都有所体现 ...

  7. jquery table 拼接集合

    1html: <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <ti ...

  8. NetBios 的结构体详解(网络控制块NCB)

    对之前网络基础编程用到控制块NCB进行介绍(补充): 在Win32环境下,使用VC++6.0进行NetBIOS程序开发时, 需要用到nb30.h文件和netapi32.lib静态链接库.前者定义了Ne ...

  9. Spring 通过FactoryBean配置Bean

    1.实现FactoryBean接口 import org.springframework.beans.factory.FactoryBean; public class CarFactoryBean ...

  10. Redis过期时间

    上次开发用了redis后效果不错,后来在进阶的开发中查询到,如果redis一直不释放也会占用内存,于是就想着给redis加上个过期时间. 具体操作很简单,只要在设置redis的时候加上exp就可以了, ...