首页 > 其他分享 >openwrt编译记录

openwrt编译记录

时间:2024-01-12 21:56:21浏览次数:31  
标签:记录 make 编译 export https PATH openwrt

最近在做openwrt的开发,因此这里记录一下过程:

这里我用的编译环境是wsl2,虚拟机时ubuntu20.04,因为wsl可以更充分的使用电脑性能,这样编译的快点,实测我编译rk3568的openwrt固件大概就花了三个小时的样子。下面记录下步骤:

1、配置上网环境

这个步骤是必须的,不然会极大概率失败,我之前失败了不知道多少次,配置完之后一次就成了,这个还是很重要,不然浪费时间不说,还编不过,大家时间都是有限的,没必要浪费。

进入后这两个都要打开

image

之后编译的时候建议选择relu的模式,不然有些包也下载不下来,会报openssl的错误

image

之后就是wsl的配置了,进入虚拟机,编辑环境变量.bashrc,加入下面的内容

image

原内容为:(这里的端口配制成自己的)

host_ip=$(cat /etc/resolv.conf |grep "nameserver" |cut -f 2 -d " ")
export http_proxy="http://$host_ip:7890"
export https_proxy="http://$host_ip:7890"

之后输入source ~/.bashrc保存之前的修改,然后输入wget www.google.com,可以看到配置成功
image

这里需要注意,就是wsl因为是和windows公用的,所以他的环境变量里面有些windows的路径,这个部分需要修改,具体参考:
https://www.right.com.cn/FORUM/thread-8212637-1-1.html

如下所示:
image

也可以像我一样,在barsh里面加一下过滤

export PATH=$(echo $PATH | sed -e 's|:[^:]*WindowsApps[^:]*||g')
export PATH=$(echo $PATH | tr ':' '\n' | grep -v NVIDIA | tr '\n' ':')
export PATH=$(echo $PATH | tr ':' '\n' | grep -v 'Files' | paste -sd ':' -)
export PATH=$(echo $PATH | tr ':' '\n' | grep -v 'VS' | paste -sd ':' -)
export PATH=$(echo $PATH | tr ':' '\n' | grep -v '/mnt/' | paste -sd ':' -)

如下所示:
image

2、编译Lubancat的镜像

这里我编译过鲁班猫的,也编译过树莓派的,都差不多,比较建议鲁班猫的,主要参考这个网页
https://doc.embedfire.com/openwrt/user_manal/zh/latest/index.html

首先还是拉代码:

git clone https://github.com/LubanCat/LubanCatWrt.git

这里直接用这个默认的分支即可,下面是他的分支说明:

image
之后是安装一些依赖包,安装就行了(更新软件源的问题这里就不赘述了)

sudo apt install -y subversion g++ zlib1g-dev build-essential git python rsync man-db
sudo apt install -y libncurses5-dev gawk gettext unzip file libssl-dev wget zip time aria2

之后进入到openwrt的目录,执行下面的命令

./mk-fire.sh

选择1,就是更新软件包
image
如果执行成功会有打印,执行不成功大概率是网络问题,请检查自己的网络环境

之后开始进行编译的控制make menuconfig,第一次用默认的就行,改一下板卡
image

这里也是,选择自己的板卡
image

首先进行多线程编译(这样是因为可以编的快点)
make V=s -j56

遇到编译错误,尝试单线程编译
make V=s -j1

单线程编译报错软件包通过之后,Ctrl+C打断编译,继续使用多线程编译
make V=s -j56

最后编译好的软件就在这个路径下
image

之后用rk的工具进入烧录模式,准备烧固件(注意编译出来的镜像是压缩包,需要解压后在烧录)
image

这里是uboot和镜像一起烧录
image

烧录完成就这样了
image

3、编译树莓派openwrt镜像

主要参考:
https://blog.csdn.net/m0_52364631/article/details/117428408
https://zhuanlan.zhihu.com/p/661462395

这里我两个都试过了,lede编出来的东西多点,但是相应的编译时间也更长
image

基本上差不多,以lede为例,也是先拉代码:

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

之后更新dl的包

./scripts/feeds update -a && ./scripts/feeds install -a

开始配置信息

make menuconfig

改下面三个
image

之后进入Target Images,再改一下分区大小
image

之后设置一下USB部分
image

按下esc就可以退出,之后按照提示进行保存,并输入make -j8 download V=s来下载需要的包

之后输入make -j$(($(nproc) + 1)) V=s进行编译,如果编译错误,就输入make -j1 V=s编译这样往复,最后结果如下:

image

image

标签:记录,make,编译,export,https,PATH,openwrt
From: https://www.cnblogs.com/lx2035/p/17961653

相关文章

  • 迅为RK3568开发板编译Android12源码包-修改编译线程数
    在编译 Android 系统时,可以通过调整线程数来控制并行编译的任务数量,使用多线程可以加快构建速度。要注意根据 Ubuntu 的处理器内核总数以及内存大小来设置合适的线程数。过高的线程数可能导致系统资源的竞争,过低的线程数则不能充分利用系统的并行处理能力。找到合适的线程数可......
  • 基于6ULL-Nand核心板|提取并反编译设备树
    本文基于HD6UL-IOT评估板进行验证。HD6UL-IOT 基于HD6UL-CORE 工业级核心板设计(双网口、双 CAN、7 路串口),接口丰富,采用 3.5 寸工控板标准尺寸,适用于工业现场应用需求,亦方便用户评估核心板及 CPU 的性能。 1.查看dtb文件分区使用cat /proc/mtd命令查看dtb设备树文件在nand......
  • Spring学习记录之GoF之代理模式
    Spring学习记录之GoF之代理模式前言这篇文章是我第二次学习b站老杜的spring相关课程所进行的学习记录,算是对课程内容及笔记的二次整理,以自己的理解方式进行二次记录,其中理解可能存在错误,欢迎且接受各位大佬们的批评指正;关于本笔记,只是我对于相关知识遗忘时快速查阅了解使用,至......
  • MySQL记录锁、间隙锁、临键锁(Next-Key Locks)加锁过程
    innodb一定存在聚簇索引,默认以主键作为聚簇索引有几个索引,就有几棵B+树(不考虑hash索引的情形)聚簇索引的叶子节点为磁盘上的真实数据。非聚簇索引的叶子节点还是索引(id主键值),指向聚簇索引B+树。锁类型:共享锁(S锁):假设事务T1对数据A加上共享锁,那么事务T2可以读数据A,不能修......
  • 迅为RK3588开发板编译 Buildroot单独编译图形化界面三
    第三步:编译 Recovery首先在 linux 源码目录下输入以下命令进入编译的 UI 界面,进入之后如下所示:./build.sh然后将光标移动到第四个 recovery,点击回车即可开始 recovery 的编译,编译过程如下所示:编译完成如下图所示:第四步:编译 buildroot关注下一章节,迅为RK3588开发板......
  • 随笔记录-mysql 导入
     mysql-hlocalhost-utest-P3306-p 459 mysql-h192.168.1.12-utest_user2312-P3306-pLOADDATALOCALINFILE'/home/hctest/load_41_10.txt'INTOTABLEt15fieldsterminatedby',';[root@localhosthctest]#catuid_mysql.sh#!/bi......
  • pyside2 一些记录
    QComboBox是一种常见的Qt控件,用于显示一个下拉列表,并提供用户选择。QComboBox提供了多个信号选项,用于在用户与下拉列表交互时触发。下面是一些常用的QComboBox信号选项以及它们的区别:currentIndexChanged(int):当当前选项的索引改变时触发。参数是新的索引值。这个信号在任何情况......
  • java实体类中给引用类型对象直接赋值报错记录
    实体类TestModel,Attachment类也是一个实体类packagecom.sinochem.it.model;importcom.alibaba.fastjson.JSONObject;publicclassTestModel{intage;Stringname;JSONObjectobj;Attachmentattachment;publicAttachmentgetAttachment(){......
  • linux环境编译 TPC-H tools
    上传压缩包复制修改makefile文件make-fmakefile可以看到dbgen和qgen是新生成的......
  • 一次生产 KubeSphere 日志无法正常采集事件解决记录
    作者:宇轩辞白,运维研发工程师,目前专注于云原生、Kubernetes、容器、Linux、运维自动化等领域。前言2023年11月7号下午,研发同事反馈,项目线上日志平台某个服务无法查看近期的日志。我登上KubeSphere平台进行查看,发现日志收集展示停留在10月15号那天,而其它的服务是正常......