你好,游客 登录 注册 搜索
背景:
阅读新闻

如何在 Android 手机上安装 Ubuntu 13.04

[日期:2013-05-08] 来源:oschina.net  作者:myliuliulo, a5516322, 志强android, -V-, super0555 [字体: ]

在农村,一切都是相对的。

长话短说,我已经厌倦了我们在农村做的一个小小的突破。

我本该去放松,读了一大堆东西涉及到自然语言的处理。但是因为我这些天一直在修改LXC和chroot的时候,我决定将我的Android手机(又叫做我的口袋服务器)升级到Ubuntu13.04.

(如果你错过了这个职位,我将使用Complete Linux Installer去运行一个服务器沙箱关掉一个旧的Xperia Arc S,尽管它对我来说这个网站运行一个实例已经足够好了——除了更多。)

从12.10版本到12.04版本做发布、升级工作详细到步骤,但是完整的Linux安装程序提供的图像都是用armel创建的,而13。04版本已经转移到专门的armhf上了——所以之后确认我的Xperia可以运行armhf的二进制文件viamultiarch(这里顺便说一下,做了一点快捷的事情),我决定重新开始创建一个新的影像。

遗憾的是有很少的信息如何去执行,除了一些零散的论坛帖子,所以我决定记录下这一过程。这一切都相当简单提供您使用的是完整的Linux安装的应用程序已经有Ubuntu的框中得心应手(我敢说它可以于手机本身做简单的情况下)。

首先,在这里您可以使用Intel的机器得到这个更一般的情况,你需要设置QEMU和ARM二进制以及asdebootstrap支持的:

sudo apt-get install debootstrap qemu-user-static qemu-system git \

gcc-arm-linux-gnueabihf binfmt-support

现在,创建文件系统本身(这是为2GB图片)和它挂载在/ mnt目录中。由于我们并不需要所有的钟声和口哨声ofext3/ext4(毕竟,最终的结果将要运行的文件内),我们将建设里面的一切anext2filesystem:

dd if=/dev/zero of=ubuntu.img bs=1024 count=2097152

mkfs.ext2 ubuntu-armhf.ext2.img

sudo mount -o loop ubuntu-armhf.ext2.img /mnt

接下来,使用debootstrap来部署基础环境(这里给出了主要的设置):

HOSTNAME=ubuntu-armhf sudo debootstrap --variant=minbase --foreign \

--arch armhf raring /mnt

现在在即将完成的chroot设备里部署qemu-arm-static:

sudo cp /usr/bin/qemu-arm-static /mnt/usr/bin/

并用它完成剩下的部署工作:

LANG=C sudo chroot mnt /usr/bin/qemu-arm-static -cpu cortex-a9 /bin/bash

./debootstrap/debootstrap --second-stage

一旦上面的工作完成了,我们需要安装apt源。(你也可以选择性的安装deb-src,不过我现在还不需要它):

echo "deb http://ports.ubuntu.com raring main restricted universe" > /etc/apt/sources.list

apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 428D7C01

然后,你就可以安装一些必需的工具(我觉得这些都是必需的):

(译注:wget,vim这些当成必需可以理解,怎么golang和git-core也成必需了?)

apt-get update

apt-get install sudo apt-utils dialog less wget vim net-tools openssh-server \

htop tmux build-essential libevent-dev python-dev python-setuptools \

python-lxml sqlite3 nodejs npm golang git-core

如果你的手机电力够用,你也可以安装VNC服务(和一个迷你的X11设置):

apt-get install --no-install-recommends tightvncserver

你可能需要运行QEMU,所以你应该多安装几个终端,尽管这不是Android chroot必需的:

cp /etc/init/tty1.conf /etc/init/ttyAMA0.conf

sed -i "s/tty1/ttyAMA0/" /etc/init/ttyAMA0.conf

这还没完,你还需要一个拥有sudo权限的用户:

adduser ubuntu

usermod -aG sudo ubuntu

重启你的chroot设备:

exit

现在我们对已经完成安装的Linux做下调整,复制init.sh脚本能放到/root/init.sh,确保其可执行, 添加上下面这些挂载点:

sudo cp init.sh /mnt/root/init.sh

sudo chmod +x /mnt/root/init.sh

sudo rm /mnt/usr/bin/qemu-arm-static

sudo mkdir /mnt/sdcard

sudo mkdir /dev/shm

sudo umount /mnt

现在复制图片到 Ubuntu图片在你SD卡上的位置,替换原来的.(如果你想保存Ubuntu的图片,压缩后大概有400MB).

我已经试着运行了 Postgres  — 关闭了TCP和UNIX套接字,这样它就不会和网络设置混淆.

  1. 事实上这比你想象的要普通的多——我曾经在一台Mac mini型号PowerPC里运行了一个仿真Intel chroot设备,并且曾经忘了做这个。
  2. 注意完整版Linux安装程序(Complete Linux Installer)脚本强调将用户添加到admin用户组,而这个组在Ubuntu上却实际不存在。
  3. 我实际上将真实使用的做了一些变动,因为我需要/dev/shmto工作目录。而且我希望它们把文档配置文件放在了某个地方——我也希望客制化的文件加载不需要将它们搬到脚本里就可以运行。

更多Ubuntu相关信息见Ubuntu 专题页面 http://www.linuxidc.com/topicnews.aspx?tid=2

更多Android相关信息见Android 专题页面 http://www.linuxidc.com/topicnews.aspx?tid=11

linux
相关资讯       Android安装Ubuntu 13.04 
本文评论   查看全部评论 (2)
表情: 表情 姓名: 字数

       

评论声明
  • 尊重网上道德,遵守中华人民共和国的各项有关法律法规
  • 承担一切因您的行为而直接或间接导致的民事或刑事法律责任
  • 本站管理人员有权保留或删除其管辖留言中的任意内容
  • 本站有权在网站内转载或引用您的评论
  • 参与本评论即表明您已经阅读并接受上述条款
第 2 楼
* 匿名 发表于 2013/6/1 17:23:53
一看就是用软件翻译过来的啊...
第 1 楼
* 匿名 发表于 2013/5/9 17:04:08
这翻译,让我哭了。。。