此文在www.openwrt.org.cn首发,个人不主动在其它地方转发,没任何版权问题,有兴趣的网友随便复制转发,但机于对本论坛的尊重,应该注明原出处URL,但没必要强调是谁写的。

我也搞不懂为什么,我想玩编译的时候,搜来搜增没搜到什么菜鸟教程,没玩过LINUX的一般会觉得很难,就跟我一样,我也是从未玩过LINUX。也许也因 为并不难,所以网上比较少详细的教程,就连官方WIKI也都是比较简要地说明而已,所以感觉难的人看了过于简要的教程后,只会觉得更难。

所以我才写了这篇“扩展”版的简要教程,其实也真的是很简要,没什么突出之处,只是起码在文字上让人能更容易看懂。高手可以回避了,因为你不会在本文学到任何东西,因为我也是新手,只是以菜鸟的角度看待本文的主题。下面开始正文:

1、安装Ubuntu,到 http://www.ubuntu.org.cn/desktop/get-ubuntu/download/ 下载,版本随便,我选的是10.10 32位版。安装过程就不说了,图形化安装,而且是中文版,连安装都搞不定的,可以关闭本页面了。可以安装在虚拟机里,也可以安装在物理机了,官方建议有条 件的最好安装在物理机上,大概是说虚拟机有时会有不可预料的情况,但装在虚拟机里的人多得是了。题外话:安装过程中某一步设置用户名密码时,我是选择了自 动登录,因为懒得每次都输密码登录,反正只是编译用的系统又没什么秘密。

2、安装好后,在左上角“系统”菜单的“首选项”中选择“屏幕保护程序”,然后去掉左下角的“计算机空闲时激活屏幕保护程序”,然后按“关闭”,这个窗口 是没有“应用”或“确定”之类的,直接关闭它就会保存。用惯了WINDOWS的用户注意了。为什么要做这步呢? 因为整个编译过程中有些步骤要等一段时间的,老是自动启用屏幕保护程序,然后还要重新输密码才能退出,也是麻烦事。

3、选左上角的菜单“应用程序”-“附件”-“终端”,进入命令行,然后输入sudo –sH,注意大小写,然后输入装系统时设置的用户密码,就能切换到root(提示:输入密码的时候不会有*之类的显示的,是完全不显示,部分人不必惊 慌)。切换到root是为了安装或升级部分必要的组件,有些组件需要root权限。

4、切到root后,顺序输入:

apt-get install g++

apt-get install libncurses5-dev

apt-get install zlib1g-dev

apt-get install bison

apt-get install flex

apt-get install unzip

apt-get install autoconf

apt-get install gawk

apt-get install make

apt-get install gettext

apt-get install gcc

apt-get install binutils

apt-get install patch

apt-get install bzip2

apt-get install libz-dev

apt-get install asciidoc

apt-get install subversion

每一行回车后都会马上检测安装或升级那个组件,官方WIKI用的是单一条命令,我分开了,因为这样更容易查看每一个组件的安装是否成功。一行命令的话,一 大堆东西连续出来,懒得拖滚动条回头看了。一个个分开执行方便看一些。个人喜好了。当中最后面的asciidoc组件是需要下载400多MB东西的,慢慢 等了。下载东西之前会有提示本次要下载多少M的东西,问是否的,按y然后回车让它下载就行了。提示:假如它提示找不到软件包的话,那麻烦你再看清楚命令中 的软件名名称,因为有时是字母中间冒个数字1出来之类的,很容易错看成字母L。

5、上述安装完成后,这一步很重要,就是执行Exit命令退出root。如果不退出root的话,那后面会出现晕人的情况,下一步是下载源码,以root 身份下载源码后,在后续操作中有些会提示不能以root身份操作,但源码已经以root身份下载了,所有文件的“所有者”都是root,退出root后再 操作,又会提示没有权限,因为文件是root的,普通用户无法访问,结果只能用命令修改文件所有者,比较麻烦。所以这里就要退出root,以普通用户身份 执行下面的下载源码命令。其实一开始安装组件的时候可以在命令前加上sudo来达到临时用root身份,执行完后又回到普通权限的目的,但对于新手来说, 不必过于追求这些了,有个可行的方法就凑合着先用吧。

6、来到这里,操作系统部分完全准备好了,建议如果用虚拟机的朋友先做一个快照,后面编译部分出了问题大不了恢复快照重新来过。不知道什么是快照的话,当我没说过这一条。

7、下载源码,分两种,一种是最新版但不是最稳定,也就是trunk版,一种是相对稳定版,backfire版。源码下载命令分别是:

先创建文件夹:

Mkdir openwrt

Cd openwrt

Trunk版下载命令:svn co svn://svn.openwrt.org/openwrt/trunk/

Backfire下载命令:svn co svn://svn.openwrt.org/openwrt/branches/backfire/

选择你想要的版本就行了。然后又是等待下载…

8、开始准备编译

Cd Trunk或者Cd backfire

如果不是刚下载的代码,为了保持代码为最新状态,应该定期运行Svn up更新代码,什么时候有变你是不知道的

然后是更新软件包:

./scripts/feeds update –a

./scripts/feeds install –a

如果不更新软件包的话,你会发现后面是看不到很多软件包的,也就无法集成那些看不到的包了。然后是make defconfig,再make menuconfig进入定制界面,慢慢选了,里面可选只编译指定设备的固件,一定要注意选对自己的设备类型,然后可以指定该类型下的具体哪一款。配置比 较多,不慢慢说了,其实我也不是很懂,自己进去撞几回就差不多了,有些软件包你不懂的,就表示你不需要了,有些软件包你装官网版本后要另外装的,你见到 了,就可以选上让它集成,要让它前面括号里出现*才表示集成。配置完成后退出记得选保存。如果你想修改源码,应该在此时进行,比如支持大容量Flash之 类的修改,自己上网查到修改什么文件什么地方后,就在Ubuntu图形界面上进去找到文件,双击打开文本编辑器修改保存。如果想集成中文包或其它非官方包 的话,那我也帮你不到了,因为我也还不会。

9、最后就执行make正式开始编译,首次编译必然是漫长的等待。如果是双核CPU,使用Make –j 2命令可以加快速度,但有人却不建议使用,官方WIKI也没说这点,我也不知道有没有好处。但我是4核CPU,使用Make –j 4命令,发现CPU占用率并没有明显提高,看了帮助,发现可以不加数字,不加数字默认就是不限制同时进行的任务数,我用了Make –j不限同时任务数后,CPU居然100%了,但整个编译过程的占用率都会有波动,刚开始是100%,后面有段时间是25%左右(也就是只用单核了),然 后有时又会40%到50%(差不多用了双核),有时甚至几乎没有操作,CPU占用很低。但首次编译是特别慢的,第一次之后的都相对快很多了。悲剧的是,我 第一次用Make –j编译结果是失败,然后再一次Make不用参数才成功,也许就是有人不建议使用的原因,但因为有前一次的编译,所以第二次是很快的。也就是说,假如用j 参数能加速的话,虽然有可能会失败,但因为第二次不会花很长时间,所以也许加j参数还是能在第一次编译中加速的。不过我没有对比加不加-j参数花的时间区 别。有兴趣的朋友自己对比吧。

10、编译完成后会出现bin文件夹,进去找你需要的BIN刷吧。

11、BIN如何传出? 我是用FTP,甚至是用Firefox上网进邮箱都能传出,对于一个不懂LINUX的人来说…

openwrt 遍译php_完全新手教程:编译openwrt全过程相关推荐

  1. openwrt 遍译php_【教程笔记】用OpenWRT单独编译ipk插件

    hahaya说道: 你好 看了你的视频 请教下单独编译rosy遇到的问题 整体编译可以 单独编译包如下错误 求指导 make package/luci-theme-rosy/compile V=99 ...

  2. openwrt 遍译php_[OpenWrt Wiki] OpenWrt编译 – 说明

    Menuconfig拥有一个文本界面,它包括选择要处理的目标平台,要编译的软件包,要被包含进固件文件的软件包和一些内核设置等. make menuconfig 这会自动更新你现在存在的配置的依赖,方便 ...

  3. openwrt 遍译php_OpenWrt CI 在线集成编译环境使用教程

    Copy link 我的workflow一直显示 (Unnamed workflow),不知道为啥,GitHub官方问题?? Copy link Contributor Author 我的workfl ...

  4. openwrt 遍译php_openwrt安装编译

    官网安装编译推荐: 1. host 32位主机 ~$uname -a Linux yuxi-T530 3.13.0-66-generic #108-Ubuntu SMP Wed Oct 7 15:21 ...

  5. android代码apkxiazai1,Android基础新手教程——1.10 反编译APK获代替码amp;资源(示例代码)...

    Android基础新手教程--1.10 反编译APK获代替码&资源 标签(空格分隔): Android基础新手教程 本节引言: "反编译Apk".看上去好像好像非常高端的样 ...

  6. openwrt开发教程之下载配置编译openwrt(MT7621A)

    什么是openwrt? openwrt可以被描述为一个嵌入式Linux发行版,openwrt的包管理器提供了一个完全可写的文件系统. openwrt是使用框架来构建应用程序的,对于用户来说,这意味着其 ...

  7. python完全新手教程-Python完全新手教程

    Python完全新手教程 更新时间:2007年02月08日 00:00:00 作者: Python入门教程FROM:http://www.cnblogs.com/taowen/articles/112 ...

  8. ROS探索总结(一)(二)(三):ROS总体框架 ROS总体框架 ROS新手教程

    ROS探索总结(一)--ROS简介 一.历史 随着机器人领域的快速发展和复杂化,代码的复用性和模块化的需求原来越强烈,而已有的开源机器人系统又不能很好的适应需求.2010年Willow Garage公 ...

  9. mysql openwrt 编译_如何编译OpenWrt

    (!文末,附加人生如戏写的编译OPENWRT的TXT内容,可直接跳至末尾,有例子) Openwrt 官方正式的发行版是已编译好了的映像文件(后缀名bin或trx.trx2),此映像文件可从Openwr ...

最新文章

  1. Java8 详解Lambda表达式
  2. Pinpoint【环境搭建 01】JDK\HBase\Pinpoint Collector+Web 最新版 2.3.3 安装配置运行验证及脚本文件分享(避坑指南捷径指北)
  3. javaSE各阶段练习题--面向对象-多态-抽象类-接口
  4. 简谈“开放平台”设计中的一些感悟
  5. Java学习日报—注解、Hash、Lombok—2021/12/02
  6. Java类的域初始化_Java域的初始化
  7. Unity:一键移除所有预制体上的Missing脚本
  8. 计算机专业考信息安全研究生,我是计算机科学与技术专业的学生,想考信息安全的研究生,我们本专业涉及的知识主要是计算机的组成原理,...
  9. 恋爱策略:“没女”也能胜美女
  10. iPhone微信聊天记录误删怎么办?怎么恢复微信删除的记录
  11. 创建简单的Nape刚体
  12. 小米更新到MIUI13版本后,进行android调试,出现无法实现USB下载安装的问题
  13. 使用a标签时不用href=““调转页面
  14. Kali Linux 2016.1 x86 x64 安装 wine QQ
  15. python boxplot 多组_Matlab boxplot for Multiple Groups(多组数据的箱线图)
  16. Unity问答——请教一下NGUI的图片转换问题
  17. 机器学习技法8-Adboost算法
  18. vue——VM对象和基础指令
  19. java生成图片(文字图片)
  20. 【计算机网络课程设计】2019-智能家居协议设计

热门文章

  1. python教程笔记(详细)
  2. conda 命令和创建tensorflow环境
  3. 从源码分析DEARGUI之add_tree_node
  4. jQuery 之 serialize() serializeArray()
  5. String 中的hashCode方法
  6. Python图片爬取方法总结
  7. 第十六周项目3:max带来的冲突
  8. React学习(1)——JSX语法与React组件
  9. Java8读文件仅需一行代码
  10. R-error: 错误: nul character not allowed (line 1)