欢迎光临散文网 会员登陆 & 注册

安卓手机用qemu运行openwrt

2021-11-19 20:04 作者:机械硬盘  | 我要投稿

网上关于qemu运行openwrt的教程很多,但是在安卓手机上qemu运行openwrt一直找不到,为此我进行了长时间的探索学习,终于有了一些成果。

拿出我的吃灰手机 

红米note4x  3+32   安卓11 


查询得知 

高通骁龙625 8x ARM Cortex A53, Octa-core CPU,单核频率最高可达2.0GHz,14nm FinFET制程,GPU  Adreno 506   支持Cat.7 LTE网络  arm64位 也就是aarch64架构


授人与鱼,不如授人与渔,所以下面命令我都会有解释。很多时候大家可以玩出不一样的玩法

我弄懂这些都花了好几周,零零碎碎资料整合起来了

准备

本次用到的工具是termux  安卓7 (API 24) 及以上版本,旧版本系统使用本镜像可能导致程序错误。

替换国内清华源参考 https://mirrors.tuna.tsinghua.edu.cn/help/termux/


全程在手机上复制粘贴也可以的,全程只有手机复制粘贴的可以跳过看下面的正戏开始。

但是为了方便,我们可以给手机安装ssh然后在电脑上操作

更改密码(或者说设定初始密码)termux输入

passwd

会显示这样(设置密码的时候,输入不显示的):

New password:

Retype new password:

New password was successfully set.

安装openssh

当然,喜欢在手机上慢慢敲命令的可以不装


执行sshd就是打开ssh服务,就可以连接ssh了

可以再输入一条

  这样每打开终端会自动运行一次sshd

需要注意的是,我们平常开启的ssh服务端口是22,但是Termux开启的ssh服务端口是在8022

接着我们执行 ifconfig 查看自己的ip地址(若是需要连接电脑和手机需要在同一个的WiFi下)

这个每个人可能不同的,需要自己看上面显示换ip,比如我是192.168.42.129,你要把它换成你显示的手机ip

而我是拿它供网的,usb共享给路由器,也可以热点,然后电脑连上。最好是手机连路由器wifi,然后电脑连路由器,在同局域网就行,搞好以后甚至可以做给电脑做旁路由

这个时候换到电脑的终端输入了,我的电脑系统win10,自带ssh。在cmd或者powershell窗口上执行

手动输入yes回车,输入密码回车连上了

当然,后面方便用xshell了,保存一次以后双击连接。

正戏开始

带“#”开头的整行都是注释用的话,可以不复制到终端运行


命令可选参数说明:

                -M 是模拟的机器,可以执行qemu-system-aarch64 -M help查看列表,可以看到有树莓派的,所以也可以直接用树莓派的固件

                -m 是分配内存大小 我这里分配1024mb

                -kernel是指定内核

                -append cmdline 设置Linux内核命令行和启动参数

                         我这里”root=fe00“指定根的块设备是fe00,如果你没有指定这个,内核将列出可用的块设备并重新启动,之后你们自己的固件可以取消这个”root=fe00“看可用块设备列表,再修改填上。我之前在这徘徊了很久啊。

                -hda是指定硬盘镜像

                --no-reboot 就是字面意思,里面客户系统如果重启就会直接退出qemu,重启相当于关机退出qemu。可以不要这条,这样客户系统可以进行重启的操作

                -nographic 关闭qemu的图形化界面输出。也可以去掉,然后加上--vnc :1   以vnc为图像模式输出到”显示器”,并占用vnc 1端口,vnc访问手机ip:5901显示进入图像界面。-nographic与--vnc不同的是执行运行后不会立即有回显。

                   -cpu cortex-a53 模拟cortex-a53类型的处理器,因为前面查询我的骁龙625是cortex-a53类型处理器,模拟这个性能损失较小。可以输入qemu-system-aarch64 -cpu help查看可模拟列表

                -smp 核数,给cpu分配核数

                -net nic  就是快速配置网卡。后面net user,id=wan,hostfwd=tcp::7080-:80,hostfwd=tcp::7022-:22配置网卡网络模式为用户模式(nat模式,使用主机网络nat联网),分配id标识为wan,hostfwd是端口重定向参数,可以加逗号多个使用,很清晰可以自己根据需要增加和删改,这里我把主机7080端口重定向到客户系统的80端口,把主机7022端口重定向到客户系统的22端口。这两个端口分别是web网页管理地址端口、ssh端口。还有具体设置网卡可以百度搜索qemu网络模式。

执行后耐心等待跑码,看下面图

出现第一个框就可以按回车输命令了,但是不急,等第二个

出现br-lan: port 1(eth0) entered forwarding state就是启动好了(改过下面以后,第二次运行是出现8021q: adding VLAN 0 to HW filter on device eth0)

因为第一个网卡默认是分配给lan的,所以我们要改一下,分给wan(这个镜像改过一次,下次再启动就不用改了)

输入


按键盘i就可以编辑进行增删了,把config interface 'wan' 那整部分改成以下这样


编辑好了,按键盘ESC,然后按住shift再按一下键盘上的;就可以输入wq回车后保存退出(就是按esc退出后,按出冒号,wq命令保存退出)

重启网络服务

执行ifconfig看看

eth0      Link encap:Ethernet  HWaddr 52:54:00:12:34:56

          inet addr:10.0.2.15

获得了一个nat地址

现在ping一下外网


只要手机能联网,它就能联网!

因为我手机用的是4g数据,地方信号不好,延迟有点大哈别介意

开放wan的80端口

前面执行命令的时候,我们已经弄好手机7080端口重定向客户机的80端口了,所以我们在浏览器访问手机ip加7080端口,就可以进入openwrt的管理页面啦!

连上openwrt的ssh,前面执行命令的时候,我们已经弄好手机7022端口重定向客户机的22端口了,只要在openwrt开放22端口,就可以手机ip加7022连上了

你可以根据需要设置好重定向端口和开放端口,例子很明白了

现在,进行模拟x86架构的教程

X86方便一些,不需要指定内核,使用带combined字样的镜像就行了,内核打包在里面的

解压

运行

同样,改一下eth0,分给wan

输入


按键盘i就可以编辑进行增删了,把config interface 'wan' 那整部分改成以下这样


编辑好了,按键盘ESC,然后按住shift再按一下键盘上的;就可以输入wq回车后保存退出(就是按esc退出后,按出冒号,wq命令保存退出)

重启网络服务

就可以联网了。然后开放端口

浏览器访问手机ip:7080进行设置

跑分

两个都修改成2核1G内存

替换软件源为清华源,更快下载

opkg update
opkg install openssl-util

开始测试

测试完成,测试结果保存在/tmp下的sslspeed文件。


aarch64  2核1G内存

  

 X86  2核1G内存





安卓手机用qemu运行openwrt的评论 (共 条)

分享到微博请遵守国家法律