首页 > 其他分享 >openwrt编译

openwrt编译

时间:2022-12-15 14:34:45浏览次数:44  
标签:svn -- 编译 openwrt 固件 OpenWrt


    openwrt是嵌入式设备上运行的linux系统。OpenWrt 的文件系统是可写的,开发者无需在每一次修改后重新编译,是目前比较流行的路由器系统,编译后3-4M左右。编译服务器最好选用Ubuntu,以下在Ubuntu12.10下编译成功。

 

1. 安装基础软件



sudo apt-get install subversion libtool autoconf automake gcc-multilib bison screen gcc g++ binutils patch bzip2 flex make gettext unzip libc6 git-core git build-essential libncurses5-dev zlib1g-dev gawk quilt asciidoc libz-dev



 

2. 下载源码



svn co svn://svn.openwrt.org.cn/dreambox/trunk openwrt



  

3. 安装扩展


cp feeds.conf.default feeds.conf     #配置软件源
./scripts/feeds update -a #更新软件源
./scripts/feeds install -a #安装软件源



  

4. 内核定制

make V=s defconfig                    #测试编译环境

错误:undefined reference to `kconf_id_lookup'

Ubuntu15内核太新,导致出现该错误,建议选用ubuntu12进行编译。

 

make menuconfig                        #定制编译环境

 

选择编译项:

#Target

Target System  -- Atheros AR7xxx/AR9xxx

Target Profile -- TP-LINK TL-WR842N/ND

 

#SDK

Build OpenWrt SDK                  #SDK

Build OpenWrt Toolchain        #工具包,开发程序

 

#LuCI

LuCI -- Collections -- luci                          #web管理界面(Lua configuration interface),lua编写的

LuCI -- Translations -- luci-i18n-chinese            #中文包

LuCI -- Applications -- luci-app-ddns                #添加ddns

 

#Sys

Base System    -- block-mount                                #USB挂载

Kernel modules -- Filesystems -- kmod-fs-ext4                #硬盘支持

Kernel modules -- USB Support -- kmod-usb-storage-extras     #USB扩展支持

Utilities -- Filesystem -- badblocks                         #自动挂载工具

 

5. 编译

make 或 make V=99(推荐)

 

错误:

1. Could not resolve hostname `svn.nomi.cz'

该源被墙了,无法访问到该域名。

vi package/hotplug2/Makefile

PKG_SOURCE_URL:=http://svn.nomi.cz/svn/isteve/hotplug2 该域名不存在。搜索发现可通过googlecode下载hotplug2,地址:http://hotplug2.googlecode.com/svn/trunk。该地址被墙了,需FANQIANG下载到本地,搭建自己的SVN服务器。修改Makefile指向本机,修改PKG_VER=1即可。

 

生成的固件在 bin/ar71xx目录下,名称为:

ar71xx/openwrt-ar71xx-generic-tl-wr842n-v1-jffs2-factory.bin

ar71xx/openwrt-ar71xx-generic-tl-wr842n-v1-squashfs-factory.bin

jffs2适合断电的系统

squashfs把ROM压缩到一个文件进路由器,官方推荐squafs,因为这种格式就算配置乱了还可以恢复刷机后的出厂设置,二是压缩后节省空间。

手里的路由是原版固件需要刷OpenWrt需要选用XXX-factory.bin固件,如果路由已经刷了OpenWrt,选用升级固件XXXX-sysupgrade.bin,在升级界面升级即可。

 

6. 烧录固件

web管理界面上传固件,并更新。注:家用路由器大部分都不支持刷openwrt,因为flash等配置较低所致。笔者TP-LINK WR720N就成砖了。

首次安装OpenWrt后,需要设置密码才可以使用SSH登录,方法是使用telnet登录或者Web登录设置密码。

方法一:telnet

telnet 192.168.1.1   

passwd#设置root密码

方法二:管理界面,修改页面   

system->administration->SSH Access。开启SSH后,telnet默认关闭

 

终端登录:

ssh [email protected]

 

openwrt编译_openwrt

还能终端操作,简直就是个小电脑,兴奋的感觉有木有,拿来做傻瓜路由器大材小用了。

  

7. 安装程序

scp hello [email protected]:/root

 

8. 包管理器

opkg 是openWrt提供的软件包管理器。

opkg update | install | remove    #安装删除软件包

opkg install hello.ipk                   #处理.ipk后缀的软件包

 

9. 自定义管理页面

luCI 是路由器的web管理界面,如果对原生的页面不满意,可随意定制。管理页面是Lua语言编写的CGI服务。

 

主目录:/www

修改OpenWrt版本信息: 

/etc/openwrt_release/version.lua         

内容模板:

/view/themes/openwrtcn/header.htm     修改map

/view/themes/openwrtcn/footer.htm     修改footer

Logo:

/luci-static/openwrtcn/logo.jpg  Logo替换

 

下图是从某宝上淘的路由器

 

openwrt编译_固件_02

 

 

 

 

 

标签:svn,--,编译,openwrt,固件,OpenWrt
From: https://blog.51cto.com/u_1923895/5939834

相关文章

  • 问题解决系列:IDEA引入@Slf4j使用log变量,编译之后报log cannot be resolved
    问题场景IDEA引入@Slf4j使用log变量,编译之后报logcannotberesolved。本篇博客主要是针对此种情况进行解决。问题环境软件版本JDK1.8问题原因主要会有以下几方面的问题:未......
  • 对于编译错误*((void*)& pulse +16)的理解
    问题声明一个pulse对象classPulse{public:voidUpdate(){if(!updated_){//...}}private:doubletim......
  • HelloWorld编写与编译
    HelloWorld1.随便新建一个文件夹,存放代码2.新建一个Java文件文件后缀名为.javaHello.java【注意】系统可能没有显示文件后缀名,我们需要手动打开3.编写代码p......
  • 推荐一款采用 .NET 编写的 反编译到源码工具 Reko
    今天给大家介绍的是一款名叫Reko的开源反编译工具,该工具采用C#开发,广大研究人员可利用Reko来对机器码进行反编译处理。我们知道.NET7有了NativeAOT的支持,采用NativeAOT......
  • Android Studio Gradle编译输出信息乱码
    有时候AndroidStudioGradle编译时输出的信息是乱码,这是因为输出信息和信息的窗口不统一。首先,我们先修改设置里的文件编码Settings->Editor->FileEncodings打开都改......
  • linux centos 编译luabind-0.9.1 动态库 静态库
    编译步骤一.需先编译好lua,编译好静态库即可,编译lua的具体步骤如下:  1.lua5.1.5下载地址注意:貌似使用lua5.2版本来编译luabind会出现各种奇怪的报错,所以拿lua5.1做测......
  • jsoncpp在linux和windows下的编译及使用详解
    一:摘要1.JSON是一种轻量级的数据传输格式,全称为:JavaScriptObjectNotation,官方网址:​​​http://www.json.org/json-zh.html​​​3.JSONCPP是......
  • Wallys|wifi6 Qualcomm IPQ8072A 4T4R support QCN9074/QCN6024 MOUDLE OPENWRT 802.1
    DR8072V01NetworkSBCbasedonQualcommIPQ8072Acommunicationprocessorwithtwo10GbEinterfaces.OneoftheseinterfacesisimplementedthroughanSFPracka......
  • 编译原理LR分析
    LR(0)分析存在问题及解决办法当LR(0)含有互相冲突的项目时,则需要向前展望符号串,检查下一个输入符号的状态例项目集I={X→α·bβ,A→α·,B→α·}当面临输入符号b......
  • 编译原理导论
    1.1什么是编译程序编译程序的必要性:计算机只能识别机器语言,但是编程语言有很多编译程序概念:最初定义:高级语言——>汇编语言或机器语言程序设计语言源程序的两种......