一 概述
比较火的树莓派运行的是定制版debian--raspbian,其实在android也可以手机平台上搭建一个debian环境,同时可以进行自由切换。利用制作debian rootfs的工具debootstrap可以轻松搭建debian rootfs。本文的实验基于ubuntu 14.04。我们知道android 的data分区是可读可写,我们将debian的rootfs烧录到data分区,使用chroot的方式切换到debian环境。可以使用现有的网络环境进行联网,轻松使用apt-get,如树莓派一样,搭建各种开发环境。
二 debootstrap 版本
由于debootstrap中存在一些bug,因此制作arm的rootfs最好使用最新的debootstrap,下载地址为https://packages.debian.org/source/sid/debootstrap,由于debootstrap是脚本文件,可以直接使用。
三 制作arm64 rootfs镜像
在下载的debootstrap目录下,运行如下命令:
$export DEBOOTSTRAP_DIR=`pwd`
$fakeroot ./debootstrap --foreign --arch=arm64 jessie jessie_root http://deb.debian.org/debian
将jessie_root制作成data分区,然后烧录到手机上。adb shell进入命令。然后
#mount --rbind /sys /data/sys/
#mount --rbind /dev /data/dev/
#mount -t proc /proc /data/proc/
#chroot /data
#export PATH=/bin:/sbin:/usr/bin:/usr/sbin:$PATH
(注:data分区一般都需要remount一下,添加dev和suid,这样可以基于data分区运行rootfs)
更改resolv.conf,添加域名服务器,8.8.8.8谷歌域名服务器,简单实用。还有/etc/apt/sources.list文件,使用https://debgen.simplylinux.ch 网址生成文件内容,一本文的jessie版本为例,选择oldstable,生成内容如下:
###### Debian Main Repos
deb http://ftp.cn.debian.org/debian/ oldstable main contrib non-free
deb-src http://ftp.cn.debian.org/debian/ oldstable main contrib non-free
运行debootstrap的--second-stage
#/debootstrap/debootstrap --second-stage
成功运行second-stage后,运行apt-get update,后面就可以使用apt-get install各种软件包了。
四 问题
4.1 ping socket: Permission denied
添加如下到:/etc/group:
inet:x:3003:root
net_raw:x:3004:root
4.2 Could not create a socket for socket (13: Permission
在/etc/passwd 下有 _apt,修改group值65534 to 3003,修改后如下:
_apt:x:100:3003::/nonexistent:/usr/sbin/nologin
添加网络的权限后,apt-get可以使用android的网络进行通信。
五 总结
我们也可以通过使用sd卡的方式,将rootfs安装的sd卡上。采用chroot的方式可以完美的利用当前的数据网络或者WIFI网络,只要配置好dns服务器,方便快捷。