编译环境配置(centos)

  • 硬件平台:BPI-R64 (MT7622)
  • 主机环境:centos8/WSL

软件安装

在正式编译前,我们需要在 Ubuntu 上安装以下工具,以保证编译能够正常执行:

根据 openwrt 编译指南,需要预先安装以下工具:

binutils bzip2 diff find flex gawk gcc-6+ getopt grep install libc-dev libz-dev
make4.1+ perl python3.6+ rsync subversion unzip which

yum install binutils
yum install bzip2
yum install flex
yum install gawk
yum install perl
yum install rsync
yum install subversion
yum install unzip
yum install which
yum install gcc-c++
yum install ncurses
yum install ncurses-devel
yum install git
yum install patch

编译环境配置(ubuntu)

  • 硬件平台:MT7622
  • 主机环境:Ubuntu20(windows 子系统)
  • openwrt 版本:18.06.9

软件安装

在正式编译前,我们需要在 Ubuntu 上安装以下工具,以保证编译能够正常执行:

/*获取服务器端更新的清单*/
sudo apt-get update
/*安装 git (非必要)*/
sudo apt-get install git
/*安装 g++ 编译工具*/
sudo apt-get install g++
sudo apt-get install gcc
/*GNU C Library: Development Libraries and Header Files (6.0+20160213-1ubuntu1)*/
sudo apt-get install libncurses5-dev
/*GNU C Library: Development Libraries and Header Files (1:1.2.8.dfsg-2ubuntu4.3)*/
sudo apt-get install zlib1g-dev
/*YACC-compatible parser generator*/
sudo apt-get install bison
/*fast lexical analyzer generator*/
sudo apt-get install flex
/*解压工具*/
sudo apt-get install unzip
/*automatic configure script builder*/
sudo apt-get install autoconf
/*GNU awk, a pattern scanning and processing language*/
sudo apt-get install gawk
sudo apt-get install libssl-dev
/*makefile 脚本执行工具*/
sudo apt-get install cmake
sudo apt-get install make
/*GNU Internationalization utilities*/
sudo apt-get install gettext
/*GNU assembler, linker and binary utilities*/
sudo apt-get install binutils
/*Apply a diff file to an original*/
sudo apt-get install patch
/*high-quality block-sorting file compressor - utilities*/
sudo apt-get install bzip2
/*compression library - development*/
sudo apt-get install libz-dev
/* Highly configurable text format for writing documentation [universe]*/
/*其实就是个文本编辑工具,太大,可不安装*/
sudo apt-get install asciidoc
/*Advanced version control system*/
sudo apt-get install subversion
/*Informational list of build-essential packages*/
sudo apt-get install build-essential
/*easy-to-use, scalable distributed version control system [universe]*/
sudo apt-get install mercurial

下载源码

在 GitHub 上找到 openwrt 源码,选择自己需要的版本进行下载。

编译过程

在编译前,将编译文件夹读写权限设置成可读写:

sudo chmod 777 -R openwrt-18.06.9

解压源码包

sudo unzip openwrt-18.06.9.zip

更新软件包

以下操作时为了检测编译环境工具是否齐全,如果存在 failure 字样,可以安装对应工具。

sudo ./scripts/feeds update -a

如果全部通过,则执行以下操作,安装对应软件包。

sudo ./scripts/feeds install -a

进入定制界面

sudo make menuconfig

根据所需选取响应配置。

下载所需工具包

sudo make download

后台运行

在使用服务器编译时,可以使用以下命令后台运行:

nohup cmd &
tail -f nohup.out
ps -aux | grep "make"
  • a : 显示所有程序
  • u : 以用户为主的格式来显示
  • x : 显示所有程序,不区分终端机

开始编译

sudo make -j1 FORCE_UNSAFE_CONFIGURE=1 V=s
sudo make FORCE_UNSAFE_CONFIGURE=1 V=s

为了增加成功率,首次编译所设置的线程数最好为1: -j1

之后就是漫长的编译过程。

错误解决

1

Checking 'case-sensitive-fs'... failed.

原因是文件解压保存在windows的文件夹,因为用的是WSL操作,应该要解压到linux环境的文件夹上,直接拷贝到 /home 目录就可以了。

2

cd /home/openwrt/build_dir/host/ninja-1.11.0 && CXX="g++" CXXFLAGS=" -I/home/openwrt/staging_dir/host/include " LDFLAGS="-L/home/openwrt/staging_dir/host/lib " /home/openwrt/staging_dir/host/bin/python3 configure.py --bootstrap
bash: /home/openwrt/staging_dir/host/bin/python3: No such file or directory
cd /staging_dir/host/bin
sudo rm python*
sudo ln -s /bin/python3.8 python
sudo ln -s /bin/python3.8 python3

固件烧录

在 /bin目录下找到编译好的固件,如果首次烧录时,可以将 openwrt-mediatek-mt7622-bananapi_bpi-r64-sdcard.img.gz 解压烧录到SD卡中,使用其中的 UBoot 进行相应的操作(将固件刷写到eMMC,或者刷写新的 .itb 镜像)。

脚本理解

.its 文件是给 mkimage 用的,用于生成 Image Tree Blob (.itb file)

U-Boot firmware supports the booting of images in the Flattened Image Tree (FIT) format.
The FIT format uses a device tree structure to describe a kernel image, device tree blob, ramdisk, etc.
This script creates an Image Tree Source (.its file) which can be passed to the'mkimage' utility to generate an Image Tree Blob (.itb file).
The .itb file can then be booted by U-Boot (or other bootloaders which support FIT images).
See doc/uImage.FIT/howto.txt in U-Boot source code for additional information on FIT images.

openWrt编译步骤(BPI-R64)相关推荐

  1. 【物联网】OpenWrt编译和修改基础--预科

    该文章讲解一下在AR9331上使用Openwrt的编译修改方法,前面先介绍一下硬件平台特点,为后面的代码修改做铺垫,然后描述一下Openwrt的编译烧写流程,最后再重点讲述编译配置.代码修改细节. 1 ...

  2. openwrt编译固件流程

    openwrt编译固件分为环境配置以及固件编译两个部分,下面将按步骤介绍编译固件的方法流程 1.环境配置 编译固件需要先配置环境,自己所需的环境在官网中可以找到.选择适合自己的分支,默认的分支为mas ...

  3. OpenWRT编译失败问题解决(一)

    最近在做OpenWRT相关的项目,按照步骤在编译时报错,提示增加编译选项 -j1 V=s 查看详细报错信息. make -j1 V=s 之后看到打印信息,gcc-linaro-4.8-2014.04. ...

  4. 记一次软路由折腾记录(Esxi封装驱动、OpenWrt编译与DDNS、Truenas)

    目录 前言 方案选择 软件系统 硬件选择 Esxi 封装驱动 安装Vmware PowerCli 封装驱动 硬件直通 OpenWrt 编译 阿里云DDNS DDNS开机不启动的问题 TrueNas 设 ...

  5. FFmpeg简介及在vc2010下编译步骤

    FFmpeg是一个开源的多媒体库,最新版本是2.4.3,它的License是LGPL或GPL.FFmpeg可以用来记录.转换数字音频.视频,并能将其转换为流的开源计算机程序.它包括了音/视频编码库li ...

  6. OpenSSL简介及在Windows、Linux、Mac系统上的编译步骤

    OpenSSL介绍:OpenSSL是一个强大的安全套接字层密码库,囊括主要的密码算法.常用的密钥和证书封装管理功能及SSL协议,并提供丰富的应用程序供测试或其它目的使用. SSL是SecureSock ...

  7. 最新版OpenWrt编译教程,解决依赖问题

    最新版OpenWrt编译教程,解决依赖问题 参考文章: (1)最新版OpenWrt编译教程,解决依赖问题 (2)https://www.cnblogs.com/jzssuanfa/p/7400840. ...

  8. 简单实例讲解linux的module模块编译步骤

    简单实例讲解linux的module模块编译步骤 (2014-10-24 10:19:17) 标签: module linux 分类:Linux/Unix 本文将直接了当的带你进入linux的模块编译 ...

  9. weka源码编译步骤

    weka源码编译步骤 1 安装JDK环境和Java开发环境,我用的是MyEclipse. 2 安装WEKA(安装不带JRE的WEKA即可). 3 重新编译: 3.1 创建工作目录.新建一个WEKA-R ...

最新文章

  1. ACL最佳论文提出最新NLP模型测试方法,最佳论文提名也不可小觑
  2. SignalR实现服务器与客户端的实时通信
  3. HarmonyOS之AI能力·分词
  4. java解压zip异常_java解压zip文件示例
  5. 谷歌返华或联手腾讯;华为否认5G专利收费;滴滴外挂让车费翻倍 | 极客头条...
  6. Arcgis自带世界矢量图
  7. 使用Python破解pdf文件密码
  8. 树木分形迭代图 matlab,园林设计中分形理论的引入
  9. 谈谈对计算机网络的了解,对计算机网络的认识和了解
  10. 超全面整理fastAPI(从入门到运用),进来看十秒钟再走不迟
  11. mysql 纯真ip 导出dat_3步搞定纯真IP数据导入到MySQL详解
  12. 分布式时序数据库作为工业物联网数据后台的7大优势
  13. 214 情人节来袭,电视剧 《点燃我温暖你》李峋同款 Python爱心表白代码,赶紧拿去用吧
  14. CTFHub题解-技能树-Misc-流量分析-数据库类流量【MySQL流量、Redis流量、MongoDB流量】
  15. Cisco路由器和交换机型号
  16. 团队任务3每日立会(2018-10-26)
  17. CSS技巧之向下箭头
  18. storyboard搭建项目_Swift - 使用storyboard创建表格视图(TableViewController)
  19. 秋招小结:感受+面经(CV算法岗)
  20. keydown与keypress的区别,组合键

热门文章

  1. C语言中attribute的应用
  2. 神策军丨我的转岗故事:舒适区的逃离与突破
  3. 登录邮箱怎么填,企业个人邮箱登录注册
  4. 【致远】安装软件过程中:提示环境检查不通过,安装程序无法继续运行。
  5. 蓝牙mesh——————Provisioning流程
  6. 众安保险云原生之旅:贯通行业数字化转型“快车道”
  7. Sleep、SleepEx
  8. 委内瑞拉总统宣布监管基于石油的加密货币“Petro”
  9. pwn暑假训练(五) 哇哇好久没打了
  10. 【uniapp】 限时秒杀scroll-view商城秒杀倒计时