Openwrt 编译教程

Openwrt

引言:本文档编译的lean的openwrt + ath10K

编译环境:

虚拟机: Ubuntu20.04

外部系统: win7

注意:

  1. 要用 root 用户进行编译!
  2. 国内用户编译前最好准备好梯子

操作步骤:

一:下载源码

https://github.com/compex-systems/lede     windows环境下载源码,这样比较快。

或者使用 git clone https://github.com/compex-systems/lede 命令下载好源代码,然后 cd lede 进入目录

二:更新源(Feeds)

./scripts/feeds update -a

./scripts/feeds install -a

三:镜像配置

make menuconfig

Menuconfig拥有一个文本界面,它包括选择要处理的目标平台,要编译的软件包,要被包含进固件文件的软件包和一些内核设置等。

同配置Linux内核类似,几乎每一个设置都有三个选项:y / m / n,分别代表如下含义:
* `` (按下`y`)这个包会被包含进固件镜像
* `` (按下`m`)这个包会在生成刷新OpenWrt的镜像文件以后被编译,但是不会被包含进镜像文件
* `` (按下`n`)这个包不会被编译

当你保存你的配置后,.config这个文件会按照你的配置被生成。

 

 

 

 

三:

    make -j8 download V=s 下载dl库(国内请尽量全局科上网)

          [我没科上网 就是下载慢一点 也没啥问题]

四:

    输入 make -j1 V=s (-j1 后面是线程数。第一次编译推荐用单线程)即可开始编译你要的固件了。

          [这里会有几个问题,文章后面会有解决办法]

 

五:

          编译成功后文件会保存在bin/targets文件夹下下

 

上传到板子:

tftp 0x80060000 openwrt-ar71xx-generic-wpj563-squashfs-sysupgrade.bin

erase 0x9f030000 +$filesize

cp.b $fileaddr 0x9f030000 $filesize

问题汇总:

问题:

 error: #error "Please port gnulib freadahead.c to your platform!

方法:

进入对应文件夹

sed -i 's/IO_ftrylockfile/IO_EOF_SEEN/' lib/*.c
echo "#define _IO_IN_BACKUP 0x100" >> lib/stdio-impl.h

问题解决,继续正常编译

 

问题2:

openwrt error: conflicting types for '__u64'

 

方法:

  在源码目录中查找包含“__u64”的文件,把函数类型修改一致,查找文件指令如下

         Find ./* -name “__u64”

找到后都改成unsigned long long __u64

 

posted @   江南王小帅  阅读(2205)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
点击右上角即可分享
微信分享提示