16

对于程序员们来说,一台多功能的路由器是提升生产力的有力武器。

 3 years ago
source link: https://www.freebuf.com/sectool/249572.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

前言

对于程序员们来说,一台多功能的路由器是提升生产力的有力武器。

除了某些网站的加速之外,还可以在路由器上运行Frp/Ngrok、组建NAS、挂机BT下载/百度云下载等等。

这些功能,在普通的家用路由器上是无法实现的。要享受它们,就得使用 “软路由”了。

一般来说,“软路由”是特指将x86 PC或服务器通过特定软件实现路由功能。但本文的内容广泛一点。为了便于表达,我们暂且把所有可以运行自定义系统的路由器称为软路由吧。可以自行安装OpenWRT、DD-WRT的设备,我们都称为软路由。

本文来讨论一下软路由的系统、应用程序,还有常见的路由器硬件,尤其是近几年很火的“矿渣”路由器。

Part 1:基础知识

软路由是什么

路由器各位Freebufer应该非常熟悉了。提起这个,您的第一反应可能是TP-Link、腾达、水星等品牌的家用路由器。它们有一个特点:路由器的系统是由厂商基于Vxworks等系统,自行开发的嵌入式系统。一般来说,只能使用原厂的系统,而且功能不多。腾达的路由,要刷个水星的系统,是不可能的。

ruuYFrb.jpg!mobile

经典的TP-Link路由器系统

但是,有这么一类操作系统,由社区开发维护,可以支持多种硬件平台。也就是说,您可以在不同的路由器上,甚至x86 PC上运行它。最令人兴奋的是,这些系统上的应用程序也可以跨平台使用,而且应用程序非常丰富,提供了传统路由器无法企及的功能。

将一台路由器,“刷”上这一类操作系统,就变成了软路由。

常见的软路由系统

著名的软路由系统有OpenWRT、潘多拉、梅林(午餐肉)、DD-WRT、Tomato,还有国内较为著名的iKuai等。

OpenWRT应该是其中的佼佼者了,项目在2004年启动。曾经分支出LEDE,后又合并。它所支持的应用程序是上面这几种系统中最多的。而且硬件支持最为广泛,支持很多小众的芯片,添加新平台的支持也较为简单。

ErYBri3.jpg!mobile

OpenWRT的Logo

笔者私以为OpenWRT是对开发者最友好,文档和支持最多的系统,因此,本文后面主要围绕着OpenWRT展开。

还值得一提的是iKuai,一个国产的软路由系统。它上面的软件非常少,而且只支持x86平台。但胜在操作简单,几乎不需要任何教程就能上手,如果您只是需要x86软路由强大的性能,不妨考虑一下。 Nj2AN3q.jpg!mobile

iKuai固件

为什么要用软路由

软路由最著名的优点当然是前文提到的:可以安装各类自定义软件。

其中最多人使用的,当属科学上网。在国内由于某些原因,github等网站不能正常访问。对于程序员来说,在没有梯子的情况下,凡是涉及服务器在外网的下载、更新,都会令人痛苦不已。OpenWRT有非常强大的科学上网工具,而且全局无感知。在路由器上挂好后,PC、手机都可以随时访问外网,甚至连启动相关软件都不需要。

常见的应用程序还有去广告、远程下载、NAS、私人云盘之类的网络应用。例如在软路由上搭建BT下载服务器、搭建私人云、甚至部署php+mysql来搭建博客。而且,可以通过frp一类的服务将内网的应用转发到外网上,方便远程访问。 EbIVziv.jpg!mobile

OpenWrt的部分应用

事实上,对于熟练的开发者而言,软路由系统其实和Linux一样。很多软件都可以被交叉编译到路由器上。

例如,如果需要捕获APP的网络流量进行分析,一般需要自建代理服务器,然后修改手机的Wi-Fi设置实现截获通讯。但如果您使用的是软路由,OpenWRT系统上自带的TcpDump等一系列程序,可以帮助您直接抓包。

更有趣的是,OpenWRT上甚至还有AirCrack-ng套件和Reaver等用于渗透测试的工具。如果您路由器的网卡支持,甚至可以用路由器破解Wi-Fi网络加密。著名的Wi-Fi攻击工具:Wi-Fi大菠萝,事实上也就是一个特制的OpenWRT路由器。 nYRZji.jpg!mobile

OpenWRT上的AirCrack-ng套件

Part 2:硬件选择

软路由硬件的选择有大学问:不同的芯片性能相差巨大,不同的设计有会有不同的信号。很多时候并不是一分钱一分货,智商税的成分很大。本章我们来分析一下常见的路由器处理器和几种不同型号的路由器。

路由器的Flash、RAM大小是最容易看得到的数据,越大越好,这个没有过多的讨论价值。但是CPU就不一样了:厂商和型号众多,令人应接不暇。

我们先分析一下市面上主流的,有较好OpenWRT固件支持的路由器芯片。

厂商

芯片名

核心(个)

主频(MHz)

说明

联发科

MT7620

1

580

性能较差,且只支持百兆,不够搭建梯子。但二手的核心板、主板量大价优,适合折腾研究。

MT7628

1

580

MT7688

1

580

MT7621

2

880

双核全千兆,中端性能的高性价比之选

博通

BCM47189

1

900

较MT7621稍差

高通

IPQ4018/4019

4

700

矿渣路由器中的最常见四核

英特尔

N270

1核2线程

1600

英特尔的x86处理器。性能较强,且可以自由扩展内存、硬盘。可以运行ESXi甚至Windows系统。但是功耗发热略大。

D525

2核4线程

1800

D2550

2核4线程

1860

J1900

4核4线程

2000-2420

Atheros

AR9331

1

400

Wi-Fi大菠萝的芯片,可以刷大菠萝固件

树莓派、香橙派之类的卡片电脑

2-4核,256M-4G内存

价格较低廉,可以做旁路由。但是往往网口性能较差。

以上并不是全部,只是笔者较为熟悉的芯片。

您可能已经发现,笔者较为熟悉的价位大概在50-200元左右。如果您需要一些高阶功能,如Wi-Fi 6、mesh组网等等,笔者太穷,相关的硬件鲜有接触。可能还得您自行查阅相关资料。

接下来我们讲讲现在比较常见的一些路由器。作为图拉丁吧驻Freebuf办公室的贴子,笔者最喜欢的当然是矿渣路由器。也就是前几年区块链很火的时候,那些厂商弄出来割韭菜的产品。

例如竞斗云,美其名曰电竞路由器,其实主要卖点是可以“挖矿”,获得现金收益。暴雷之后1500多元的路由器直接跌倒100元,韭菜们血本无归,最后的鸡毛由我们这些垃圾佬负责接盘。

您可以在闲鱼、转转、贴吧和论坛等地购买这些产品。如果是全新或者挖矿淘汰的,很多成色都非常新。

斐讯K2p

斐讯作为矿渣路由器的祖师爷(那个时候的套路还不是挖矿),当然要第一个介绍。K2P作为玩家最多的路由器之一,固件支持非常完善。硬件设计合理,无线信号好。缺点是价格略贵,而且由于某些原因,咸鱼下架了这个产品。

配置:MT7621AT 双核,128MB DDR3内存,16MB闪存,五千兆网口。

iI7zieq.jpg!mobile

新路由 3

新3也是MT7621的主力军,存货量大,价格较低。还有个没有什么卵用的512M内存。但是质量一般,2.4G无线信号较差,有漏油的问题,拿到手可能要拆机。

配置:MT7621AT 双核,512MB DDR3内存,32MB闪存,五千兆网口,一个USB3.0 Qv2a2aB.jpg!mobile

极路由 B70

极路由是Freebuf的老朋友了,较高的可玩性和较低的价格,当年极1S的时候好多大佬发折腾的文章。

金属机身,有两个USB口,无线信号较好。比新3贵,但是我觉得比新3香,起码不用折腾。

配置:MT7621A 双核,256MB DDR3内存,128MB闪存,4千兆网口,一个USB3.0,一个USB2.0

eqy2qu.jpg!mobile

小娱路由器

这玩意是个奇葩,没有Wi-Fi,只能当路由器,还得自己配一个AP。优点是存货量大,随时可以买到成色好的。而且C1/C5版本有SATA,可以折腾NAS。不过价格略高。

配置:MT7621A 双核,512MB DDR3内存,32MB闪存,5千兆网口,一个USB3.0. URjM3un.jpg!mobile

竞斗云2.0

上面几个全是联发科芯片的,再讲下去有厂商奸细的嫌疑。下面来讲个高通4核的。

竞斗云的外观,个人认为是这几款中最好的。而且内置IPQ4019四核处理器,性能家用绰绰有余。质量可以但是信号一般,据说有个批次还有暗病。

如果你喜欢折腾,有个好消息就是它有minipcie插槽,虽然是缺少电阻的。补齐后可以安装硬盘、4G网卡等等。

如果你不喜欢折腾,有个坏消息就是,它现在已经不能免拆机刷机了。亲测之前的方法全部失效,一定要拆机通过ttl接口刷机。没有相关经验的话,建议买刷好了的。

配置:IPQ4019四核,512MB DDR2内存,128MB闪存,5千兆网口,1个USB2.0(虽然是蓝色,但是2.0) yyeEb2Y.jpg!mobile

X86架构的软路由

X86架构的软路由,无疑是性能之王,理论上性能无上限。不仅CPU性能强,内存和硬盘可以自己添加。可以同时安装多块硬盘,组建NAS。而且折腾简单,不用考虑bootloader怎么刷的问题。这一类软路由都不带无线,需要搭配AP使用。

低端的X86软路由。D525之类的凌动芯片,可以找到很多小主机。比如银行淘汰的瘦客户端。注意挑选双千兆网口的,单网口或者百兆就没意思了。

高端的,可以用i3、i5做软路由,很多网吧甚至用的双路E5。这些可以不单单做路由器了。装上ESXi虚拟化,可以在一台机子上配置OpenWRT、NAS等等服务,充分利用性能。 ZzIbmyy.jpg!mobile

D525小主机

树莓派一类的卡片电脑

树莓派、香橙派等卡片电脑,也是可以刷OpenWRT的。而且CPU性能和内存大小比较优异。笔者之前做项目,往OpenWRT上移植程序的时候,用树莓派4装OpenWRT环境编译程序,比MT7628开发板什么舒服不要太多。

但真要当路由器,它们是不大合适的:绝大多数卡片电脑的网口比较差,很多是单口百兆。用USB网卡也无济于事,因为USB和网口的带宽是共享的。树莓派4的设计好了很多,但除此之外,笔者没有见过适合当路由器的卡片电脑。

如果要使用它们,一般的思路是用单网口做旁路由:装上OpenWRT后,关闭树莓派的DHCP,将它连接到主路由器上。需要使用软路由的设备,把网关设置成树莓派的IP。即可实现通过OpenWRT上网,流量会经过软路由再转发给主路由。当然,也可以关闭主路由的DHCP,开启树莓派的DHCP,可实现默认通过树莓派上网。

如果是搭建NAS、ftp等服务器的话还可以。要用于上网的话,流入流出的流量都挤一个百兆网口,着实有点可怜。 ZrE3E3z.jpg!mobile

香橙派Zero

Part3:OpenWRT刷机入门

折腾一台软路由的第一步,当然是把它刷上软路由系统。也就是OpenWRT。

Bootloader

路由器刷系统和电脑装系统不太一样。给电脑装系统的时候,进入主板的BIOS或者UFEI中,调整启动顺序,从带有系统安装镜像的U盘启动即可。

但是路由器的“BIOS”,也就是负责在上电后负责加载和引导系统的程序,称为Bootloader。可不能像计算机的BIOS那样随意设置。为了更方便的刷机,同时为了在系统损坏时可以进入Bootloader重新刷机,我们第一步要将路由器刷上第三方Bootloader,俗称“不死”(因为刷坏了系统也能重新刷)。

常见的Bootloader有Uboot、Breed、OpBoot等等,玩家多的路由器型号,在网上很容易找到定制的Bootloader。 FNn2Arf.jpg!mobile

Breed

至于刷入的方法,每台机器各有不同。一言蔽之就是要通过漏洞获得路由器的Root Shell,然后解锁Bootloader区并且刷入。这个漏洞可能是Web管理页面的命令执行,也可能要拆开机器外壳,连接PCB上的UART调试串口。

玩家多的路由器大多有前人栽树,网上可以找到教程或者工具。当然,最简单的方法,还是找淘宝卖家帮忙刷好。这一部分因为每台路由器的方法都不一样,笔者就不在此叙述了。·

OpenWRT固件的类型

刷好了Bootloader,就可以刷入OpenWRT系统了。

OpenWRT的固件可以在网上下载,也可以选择自行编译。在网上搜索一下,应该可以找到大佬们自编译的镜像,一般都内置了相当丰富的应用。

如果比较冷门的路由器型号,可能会找不到,这个时候就要考虑自行编译或者使用官方镜像了。不过官方镜像的话,内置的软件非常少,web界面都需要手工安装,要通过telnet才能管理。不用担心,安装软件和编译固件后文都有教学。

OpenWRT固件的名字可能像是这样:

asus_rt-ac58u-squashfs-sysupgrade.bin

其中的asus_rt-ac58u代表固件适用的硬件型号,即华硕的ac58u路由器。

squashfs代表固件区的文件系统,请注意这里仅仅是固件区的,所以即使是squashfs的镜像,也是可以保存对系统的更改的。Squashfs因为高压缩率和可减少Flash芯片擦写的优点,是最为常见的文件系统。

sysupgrade代表更新包。OpenWRT常见的包类型有sysupgrade和factory。后者比前者更加完整,包含了Flash中的固件区和后面的内容,前者只有固件区内容。因此前者刷机的时候可以选择不刷新系统配置。但在比较底层的途径刷机,如TTL刷机时,就只能用factory包了。

刷写系统

在Bootloader和OpenWRT的Web界面都可以刷机。这一步不需要敲什么命令,一般都是连上路由器,打开对应的页面,上传固件即可。

在OpenWRT的Web界面-系统-备份/升级,可以上传sysupgrade包更新固件。

ZFfIVvF.jpg!mobile

通过Bootloader刷机,一般要在关机状态下,按住路由器的reset按钮,然后插电开机,数十秒后松开,连上电脑后访问 http://192.168.1.1/ 。即可上传固件刷机了。

Part4:常用设置与软件管理

将电脑或者手机连接到路由器,在浏览器中访问 http://192.168.1.1 ,不出意外的话,OpenWRT低调沉稳而不失霸气的管理页面已经展现在了你的面前。

使用默认用户名root,默认密码password,登录管理页面,就可以看到OpenWRT的所有菜单了。

系统状态

在状态页面,可以查看到系统的配置、信息、占用率和已连接的DHCP客户端。 2ARZ3ee.jpg!mobile

在状态-实时信息页面,可以看到更详细的CPU占用率等数据。纵轴是占用率,每个CPU线程的最大值为1。例如笔者这里是4核的路由器,最大值应该是4,图中平均占用率在1.7左右,也就是不到50%。如果15分钟负载超过了路由器的核心数,那说明这台路由器难以支撑现在的网络需求。特别是开启了梯子,对性能要求会比较大,如果经常负载过高,就要考虑换更好的路由器了。 IZreeyu.jpg!mobile

网络设置

在网络菜单下,可以调整各项网络设置。

一般来说,家用路由器需要进入网络-接口-WAN的配置下,配置PPPoE拨号。 viAfYnF.jpg!mobile

再进入网络-无线,修改Wi-Fi的SSID和密码。其分别在接口配置的ESSID一栏和无线安全选项卡中。 qaYRVvF.jpg!mobile

OpenWRT的功能非常丰富,对于新手来说可能要研究一下。一旦您上手了,OpenWRT可以满足您对网络的所有需求!

Web界面管理软件

在OpenWRT的Web管理界面,系统-软件包页面中,您可以配置系统的软件包。卸载已安装的软件包,或者安装新的。

在使用在线软件包之前,需要更新软件包列表才可正常搜索。如果您的网络环境不佳,使用官方软件源可能会很慢,可以在 配置 页面的发行版软件源处更换国内的镜像源。

例如,使用北京外国语大学的镜像,则将原配置文件中的” http://downloads.openwrt.org/ ”,修改为”  https://mirrors.bfsu.edu.cn/openwrt/ ”。修改后如图所示: 7nuaIfY.jpg!mobile

接下来回到 动作 页面,点击 更新软件包 按钮,即可更新软件包列表。稍作等待后,您就可以在过滤器中搜索并安装需要的软件包了。 R3MRZju.jpg!mobile

SSH中管理软件

通过Web界面管理软件,虽然简单,但是只能使用官方软件源的包。如果您要安装一些第三方软件,或者是自己编译的软件,就要用SSH手动安装了。

OpenWRT内置了OPKG软件管理器,和我们熟悉的apt、yum有点像,它也可以安装、卸载软件包。OPKG的软件安装包,是.ipk格式的。

这里我们以luci-app-commands_git-20.194.72626-2aaac38_all.ipk为例,演示通过SSH安装软件包。

首先需要使用SCP将安装包上传到路由器上。SSH的用户名和密码与Web界面相同,默认为root:password。在Linux上可以直接使用SCP命令,在Windows上可以使用WinSCP。 FFjEJfB.jpg!mobile

登录后将安装包上传到路由器上,接下来使用Putty或者其它SSH软件登录。通过以下命令安装:“opkg install 软件包路径”: 7BneA3a.jpg!mobile

如图所示,就成功安装了一个软件包。

OPKG对比起常用的包管理器,比较“简洁”,对依赖的处理不是很好,如果出现缺少依赖文件,则可能需要您一个个的手动安装。如果出现包或者文件的冲突,则可能需要添加“-nodeps”参数强制安装。

Part5:常用软件介绍

OpenWRT的软件包非常之多。本章介绍一些笔者常用的软件。

如果软件包的名字有luci的前缀,这说明它们是依赖在OpenWRT的Web界面下的(luci就是OpenWRT的Web管理界面)。换句话说,就是有图形界面,比较方便使用。

luci-app-filetransfer

用于在Web页面上传并安装ipk软件包,可以省去使用SSH的麻烦。同时提供了从路由器上下载文件的功能。

不过要是安装过程稍微复杂一点的话,还是得老老实实用SSH。

luci-app-ssr-plus

某神奇软件,可以实现全内网无感知科学上网。它不仅支持原生酸酸乳,还可以支持v2和trojan等新技术。可以配置多种白名单、黑名单,自动更新网站列表。比常见的客户端高到不知道哪里去了,一个软件满足你的所有需求!

luci-app-aria2

著名的下载工具,安装了它之后就可以在OpenWRT上挂着下载任务了,而不需要把电脑开机挂着下载。不过当然得有U盘或者硬盘,才能使用它。

luci-app-frpc

内网穿透工具,可以转发内网的远程桌面、FTP、Web服务等到外网。现在很多家用宽带已经没有公网IP了,在公网的服务器上搭建frp,然后在内网通过frpc进行外网穿透是很好的解决方法。OpenWRT还支持Ngrok,如果有公网IP也可以使用DDNS。笔者使用frp转发远程桌面,很香。

luci-app-unblockmusic

网易云音乐辅助工具,可以用QQ音乐等的链接替换无版权歌曲,实现无视版权限制。

luci-app-samba

samba共享工具,可以共享路由器上的目录。配合U盘可以实现共享文件。比如放点电影电视剧,手机上用es文件浏览器之类的工具可以直接在线播放。

luci-app-vsftpd

ftp服务器,同上,也是文件共享工具。

luci-app-vlmcsd

KMS服务器,用于激活Windows和Office。

Web服务器套件

OpenWRT上可以安装nginx、php、mysql等组件,但是对路由器的性能要求会比较高。如果使用的是比较高级的设备,可以在上面配置这三个软件包,并部署Web服务。

例如部署KodExplorer,就可以构建一个私人云平台了。在线管理文件、处理简单的工作都很方便。

附加章节:OpenWRT的编译

在文章的最后,我们增加一章,简述一下OpenWRT的编译。

一般来说,用编译好的固件是最方便的。不过,当遇到一些比较小众的硬件平台,或者需要自己添加一些应用程序的时候,就只能自己编译了。而且自己编译的固件,可以自己选择需要的软件包,只添加想要的功能,节约空间和性能。同时也可以保证软件包最新。

手动编译固件是高级玩家的必备技能,而且OpenWRT的编译机制已经相当成熟了,编译并不复杂。一般来说,只要网络没有问题,都能一次成功。本章我们来简述一下编译OpenWRT的流程。

构建编译环境

编译OpenWrt需要在Linux环境中进行,物理主机或虚拟机中均可。不推荐使用Windows的Linux子系统进行编译。

笔者采用的是在VirtualBox上安装Ubuntu操作系统。

首先我们去Ubuntu的官网下载桌面版的Ubuntu。笔者使用的版本是18.04,一般而言系统版本不会影响编译。

地址: https://ubuntu.com/download/desktop

同时我们还需要VirtualBox虚拟机,可以在此处下载:

https://www.virtualbox.org/wiki/Downloads

安装完VirtualBox后,配置一个新的虚拟机。请按照您机器的配置调整虚拟机的CPU、内存大小。

请注意,编译OpenWrt所需的硬盘空间较大,考虑到扩容虚拟机硬盘镜像较为复杂,推荐在创建虚拟机时就配置大于100G的硬盘空间。

N7bUniQ.jpg!mobile

安装Ubuntu的过程并不复杂,并且网上有大量的详细教程,这里就不再赘述。

Ubuntu完成后修改软件源为国内的服务器以加快软件包的下载速度。

在应用菜单中运行“Software & Updates”,修改其中的“Download From”到CN的服务器。笔者这里选择了阿里云的镜像服务器。

BjUvmiI.jpg!mobile

接下来我们打开终端,使用 “sudo apt-get update” 命令更新软件列表。sudo的密码为Ubuntu安装时填写的密码。

编译过程所需的各项软件,可以通过以下命令一键安装:

sudo apt-get -y install build-essential asciidoc binutils bzip2 gawk gettext git libncurses5-dev libz-dev patch python3.5 unzip zlib1g-dev lib32gcc1 libc6-dev-i386 subversion flex uglifyjs git-core gcc-multilib p7zip p7zip-full msmtp libssl-dev texinfo libglib2.0-dev xmlto qemu-utils upx libelf-dev autoconf automake libtool autopoint device-tree-compiler g++-multilib linux-libc-dev:i386

到此为止,我们配置好了编译OpenWrt所需要的系统环境。

配置OpenWrt源码

我们开始下载OpenWrt源码。新建一个目录,并修改它的权限为777:

cd ~ 

mkdir openwrt 

sudo chmod 777 openwrt 

cd openwrt  

接下来要下载OpenWRT的源码,这里强烈推荐使用国人lean修改的版本。软件丰富,且更新及时。

git clone https://github.com/coolsnowwolf/lede.git

cd openwrt

OpenWrt包含了称之为feeds的一系列第三方软件包,我们还需要更新它们,更新feeds的命令如下:

./scripts/feeds update -a 

./scripts/feeds install -a    

配置编译参数

这一切结束后,我们可以开始编译了。

我们先要运行 make menuconfig命令调整编译的参数。首先是目标的硬件架构。OpenWRT支持非常之多的硬件架构,我们以X86为例。

操作方法如下:

  • 输入 make menuconfig 进入编译选项。通过上下左右和回车键可以在菜单中跳转。
  • 选择Target System -> x86
  • 选择Subtarget -> x64 64bit

vAziqyI.jpg!mobile

选择软件

在菜单中有非常多的软件可供安装,LuCI-Applications菜单下的软件是最为常用的,它们都有Web界面,易于使用。

我们进入这个菜单下,按空格键可以调整软件的状态,m代表编译但不加入固件,*代表编译且加入固件。每选定一个软件,OpenWRT会自动添加所有依赖文件。第一次编译时不推荐添加太多软件,可能会产生依赖文件的冲突。

作为演示,我们这里添加SSR-Plus软件,同时还添加v2和trojan的支持。 6zUjuiZ.jpg!mobile

最后保存并退出配置菜单。

开始编译

到现在为止,我们已经完成了所有配置,可以开始编译了。

由于OpenWrt项目中部分的软件包的下载服务器在国外,受网络环境的限制,可能会造成下载速度很慢,或者下载失败的情况,最好用路由器挂上全局科学上网。如果不能挂全局,就要手动设置curl、git、wget的代理设置了,ubuntu的全局代理其实没用。(所以有软路由是真的香)

编译的命令是:

make V=s  

输入这个命令之后,OpenWrt就会开始自动编译了,不出意外的话,小睡一会,就可以得到系统镜像了。

顺带一提,通过增加编译时的线程数,可以加快编译的速度,命令如下:

make V=s -j4  

其中的4代表使用4线程,读者可以依据自己电脑的配置进行调整。

不过,第一次编译时,不推荐使用多线程,可能会导致依赖文件的编译顺序出错,造成编译失败。

结果

编译结束后,在 /bin/targets/目标硬件架构/ 目录下可以找到编译生成的系统镜像。在该目录下的packages文件夹可以找到所有软件的安装包。

ZFjyyii.jpg!mobile


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK