linux运行在android手机或android电视棒下-泓源视野

linux运行在android手机或android电视棒下

最近寻思着弄一台低功耗 linux 服务器用,只运行一些小程序,例如 Python 写的爬虫或者定时任务。网上看了一圈,什么树莓派呀啥的,一套下来要两三百了,有点不划算。突然想到我还有一android电视,闲置着。看了一下它的配置,ac 的 wifi + 1.6GHz 4核的A9 cpu,很强啦!(比树莓派强)

装个 Ubuntu core

本安装方法基于开源项目 Linux on Android,该项目让你能够在安卓手机上运行很多 Linux 发行版。

当然了本篇文章只讲解如何安装 Ubuntu 13.10 core,也就是只有命令行的版本(作为服务器,不需要图形界面,最大化性能)

注:此方法理应适用于 android 版本大于4.2.2的手机,并且必须要 ROOT !

注2: 如果你这手机只用作服务器的话,在条件允许的情况下,建议你再把手机系统刷成AOSP(安卓官方开源项目,无任何捆绑、后台软件,最大限度释放你老手机的性能),

注3?: (没想到吧,还特么有注3。。)如果你只是轻度折腾一族,强烈建议不要刷AOSP,不然中途放弃了,就不能看下面的教程了

准备

我们需要下载的文件有这么几个:

文件名作用下载地址
ubuntu.imgUbuntu 镜像core 种子文件
ubuntu.sh安装 Ubuntu 的脚本文件百度云 密码: td75
androidterm.apk能在安卓上敲命令行的应用百度云 密码: crzy
busybox.apk增加更多命令行命令百度云 密码:tizn

当然这些我也都放在了百度盘里面,你可以打包下载 密码:tiut

下载好后,把 androidterm.apk 和 busybox.apk 安装到手机上,然后在手机存储(非外置内存卡)根目录下新建一个文件夹 ubuntu ,把 ubuntu.img 和 ubuntu.sh 都复制进去。

安装

准备工作都已经完成,开始安装吧!

  1. Busybox
    先打开 busybox 弹出的第一个窗口点叉关掉,然后在主界面中选择安装版本:1.26.2 或更高,安装位置选择为:/system/bin ,最后点击左下角的 Install (期间会弹出请求 ROOT 授权,请选择允许)等待安装完成即可;
  2. Androidterm
    等 Busybox 安装好后,我们就打开 Terminal(也叫 终端) 这个 App,出现在我们眼前的是命令行界面,我们键入 cd /sdcard/ubuntu 点击键盘上的回车按钮(或者是 确认),他将会切换目录到我们之前存放 ubuntu.img 和 ubuntu.sh 的文件目录下。然后输入 su 并确定,将会切换为 ROOT 用户,接着键入 sh ./ubuntu.sh 即可开始安装 Ubuntu 了。

安装的时候会让你输入新建的 ubuntu root 用户密码,并再次输入以确认,然后会问你是否开启 VNC 服务,我没有图形界面,则输入 n 并确定,接着他又会问你,是否开启 ssh 服务,这个必须要啊!! 输入 y 并确定,最后会问你是否将刚才的输入保存为默认,输入 y 点确定即可。

等命令行开头的部分变成:root@localhost 时,就说明安装并启动完成啦!

使用

在使用前,要确保你的手机是连接了 WiFi 网络的(不然有啥用呢),然后在手机的命令行中,输入 ifconfig ,看里面能看到你手机的 IP 地址,你在其他设备上,用 root 用户 ssh 连接这个 IP 就行了!

注意

作为服务器,是不允许机器自动挂掉的,所以,你需要将 terminal 这个程序锁住,不让系统自动关闭它,并保持着为手机充电的状态,这样,一个自带 ups 的低功耗服务器就搭建成功了。

后记

可参考脚本https://github.com/szTed/android-linux-deploy

长期更新,后记则是用作后期优化以及问题解决方案提供的一个板块

- 改 ARM 专用源

Ubuntu改源怎么操作不用这里说明了吧,下面列出两个比较快的源:

中科大源

deb http://mirrors.ustc.edu.cn/ubuntu-ports trusty main universe restricted multiverse
deb http://mirrors.ustc.edu.cn/ubuntu-ports trusty-security main universe restricted multiverse
deb http://mirrors.ustc.edu.cn/ubuntu-ports trusty-updates main universe restricted multiverse
deb-src http://mirrors.ustc.edu.cn/ubuntu-ports trusty main universe restricted multiverse
deb-src http://mirrors.ustc.edu.cn/ubuntu-ports trusty-security main universe restricted multiverse
deb-src http://mirrors.ustc.edu.cn/ubuntu-ports trusty-updates main universe restricted multiverse

清华源

deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ trusty main universe restricted multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ trusty-security main universe restricted multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ trusty-updates main universe restricted multiverse
deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ trusty main universe restricted multiverse
deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ trusty-security main universe restricted multiverse
deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ trusty-updates main universe restricted multiverse

linux运行在android手机或android电视棒下插图

因为手机andorid4.2.2比较老所以使用老版本linuxdeploy-2.2.1-243各个版本如https://github.com/meefik/linuxdeploy/tags

到这里折腾了1个晚上终于搞定了!最后解决方案,因为外置sdcard不能直接读取,所以需要把下载的ubuntu.img镜像放在手机自带的scard/ubuntu/ubuntu.img下,在内存卡下直接新建一个ubuntu文件夹,然后再使用工具linux deploy手机应用

1,android手机获得root权限,方法网上千百种,我采用下载360超级root(当贝应用市场下载)

2,android手机安装linux deploy  /Terminal Emulator(google应用商店)/filemager+把下载的镜像copy到sdcard/ubuntu/ubuntu.img /安装busybox(goole应用商店)

3,下载ubuntu的镜像文件ubuntu.img

https://sourceforge.net/projects/linuxonandroid/files/Ubuntu/13.10/

下载small版本2G的lxde桌面用户名ubuntu密码ubuntu

4,android手机打开usb调试模式(在手机设置关于AboutDevice里面的版本上点击5下,会打开开发者模式)

5,打开手机linux deploy点击右上角配置

chroot/Ubuntu/Architecture选armhf/xenial/source path(找一个中科院android版的源)/file/${EXTERNAL_STORAGE}/ubuntu/ubuntu.img  /3500mb/ext4/username

其他都点勾然后默认

启动模式:1,在terminal中输入su  然后再打开linuxdeploy点击开始 done好了!

接下来再电脑下连接win+r输入cmd打开命令程序输入ssh root@192.168.1.2输入密码连接

修改22端口通过外网端口转发连接,使用top查看状态。

第二步 使用BusyBox来扩展安卓命令和应用

如果你已经通过其他方式安装好了BusyBox,可以跳过这步

打开已安装的BusyBox应用,SU会提示你BusyBox请求Root权限,选择GRANT允许

进入页面,选择右下角的INSATALL安装,YES确认安装

linux运行在android手机或android电视棒下插图1

第三步 使用LinuxDeploy运行Linux

如果你已经通过其他方式安装好了Linux,可以……那你还看这篇教程干嘛

打开LinuxDeploy,界面是介样的

linux运行在android手机或android电视棒下插图2

左上角三横是对LinuxDeploy程序的一些配置,右上角三点是对Linux运行的一些操作,右下角下载图标是对Linux的配置

由于我们是首次安装,需要先配置Linux,点击右下角 选armf

linux运行在android手机或android电视棒下插图3

选择你想使用的容器 发行版本 架构 安装类型,最新的CentOS不知道为什么打不开SSH和VNC 慎用

不知道该怎么选的就像图里一样设置就行了

linux运行在android手机或android电视棒下插图4

选择你的用户名 登陆密码 区域建议如图选择,否则可能不能正确显示汉字

同样的,不知道该怎么选的就像图里一样设置就行了

linux运行在android手机或android电视棒下插图5

一些其他选项

设置完成后返回,点击右上角选择Install 安装

如果之后你更改了任何Linux的配置,需要点击Configure 配置而不是安装

SU又提示需要Root权限 允许

linux运行在android手机或android电视棒下插图6

开始安装了,耐心等待

linux运行在android手机或android电视棒下插图7

安装完成

点击START启动

linux运行在android手机或android电视棒下插图8

启动完成

第四步 使用

可以使用手机里的终端模拟器或者通过SSH连接来操作你的Linux

另:DeployLinux其他的一些设置

点击界面的左上角进入

可以配置多个Linux 可以查看受支持的Linux 可以进入终端模拟器

点击Settings设置

linux运行在android手机或android电视棒下插图9

可以根据需要开关和调整功能

以下是安装好之后的效果:

- Python3 安装

有了 Python 这服务器才像样,哈哈。

我这里选择的是安装 Python3, 以下方式进行安装:

# 安装 python3sudo apt-get install python3 # 安装 python3 对应的 pipsudo apt-get install python3-pip

- crontab 任务

应用场景:每天自动签到的爬虫程序。

经过反复测试,好像这个版本中的crontab(通过 sudo apt-get install cron 安装)无法正常执行任务,在进程列表(ps -e | grep cron)中也看不到其踪影。所以放弃之,用 python 来解决(如果你有其他解决方法,请不惜赐教):

下面例子是每秒打印一次 hello world 到标准输出

hello.py

# -*- coding: UTF-8 -*-import threading# 任务执行间隔时间,下面是 1s 也就每秒执行一次INTERVAL_TIME = 1def task(): # 在这里写下你要执行的命令,例如打印 HelloWorld print('Hello World!\n')def cron(): task() threading.Timer(INTERVAL_TIME, cron).start()# 调用 cron 函数,即开始任务cron()

执行的话就这样:

# 使用系统默认 python2.7 执行python hello.py# 使用新装的 python3 执行python hello.py

我们就能看见控制台每秒都打印出字符了。

进阶:让脚本在后台执行,_即使我们关闭当前 shell,它也执行_

# 当然这句执行后,除了返回一个 pID 啥都没有的,如果你以后的脚本要输出信息,# 就只需要将信息写入指定的 log 文件中即可nohup python ./hello.py &

以上命令执行后会返回一个 pID,如果你想结束这个后台程序,只需要这样

kill 对应的pID

如果 pID 记不得了,下面方法能帮助你:

# 如果是用 python 执行的后台程序,就输入以下命令ps -e|grep python

就能获得对应的列表,列表第一列就是 pID, kill 掉你想关的后台程序即可

- 中文乱码

应用场景:是个中国人就可能碰到。。。

嗯,这个问题我现在用的方式是:不用中文?。

理由是:

  1. 对中文输出要求不那么强烈
  2. 正则匹配中可以略过中文,牺牲一丁点性能算不了啥事儿
  3. 支持中文的话要装一大堆包,秉承能不装则不装的心态。
本文由 泓源视野 作者:admin 发表,其版权均为 泓源视野 所有,文章内容系作者个人观点,不代表 泓源视野 对观点赞同或支持。如需转载,请注明文章来源。
3

发表评论

Protected with IP Blacklist CloudIP Blacklist Cloud
您是第823488 位访客, 您的IP是:[172.70.35.22]