openwrt 23.05.2 稳定版本 导入树莓派4B

openwrt 23.05.2 稳定版本 导入树莓派4B

强烈建议新手使用稳定版本

这里真的非常感谢这篇博客提供了大量支持,本文有大量篇幅抄袭。
https://blog.csdn.net/qq_44730817/article/details/135258664

编译系统(Build system usage)

下载源代码(Downloading sources)

Clone the Git repository using the following command.

	git clone https://git.openwrt.org/openwrt/openwrt.git [<buildroot>]
	//如果直接下载到当前路径[<buildroot>]可以省略
	//如果不想到当前目录,其中 [] 替换为你的编译目录,比如我的为 ~/tmp/build/openwrt/
	![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/fa2d9e4b2010495c9a1636e75f9faa9b.png)

选择一个指定稳定版本 v23.05.2

	git branch -a
	git tag
	git checkout v23.05.2
	//这里其实是git切换分支到子仓库

更新 Feed

	./scripts/feeds update -a
	./scripts/feeds install -a
	//如果运行显示找不到可以先运行下面的
	apt search qemu-img   --- 查找文件名
	apt install qemu-utils   -- 得到文件名,install

因为网络环境的问题,建议重复执行上面的命令直到能够看到完全正常为止,正常如下
重复运行 ./scripts/feeds update -a 直到显示如下

shenyanwu@shenyanwu:~/tmp/build/openwrt$ ./scripts/feeds update -a
Updating feed 'packages' from 'https://git.openwrt.org/feed/packages.git^8e3a1824645f5e73ec44c897ac0755c53fb4a1f8' ...
Updating feed 'luci' from 'https://git.openwrt.org/project/luci.git^7739e9f5b03b830f51d53c384be4baef95054cb3' ...
Updating feed 'routing' from 'https://git.openwrt.org/feed/routing.git^83ef3784a9092cfd0a900cc28e2ed4e13671d667' ...
Updating feed 'telephony' from 'https://git.openwrt.org/feed/telephony.git^9746ae8f964e18f04b64fbe1956366954ff223f8' ...
Create index file './feeds/packages.index' 
Create index file './feeds/luci.index' 
Create index file './feeds/routing.index' 
Create index file './feeds/telephony.index' 
shenyanwu@shenyanwu:~/tmp/build/openwrt$

重复运行 ./scripts/feeds install -a 直到显示如下

shenyanwu@shenyanwu:~/tmp/build/openwrt$ ./scripts/feeds install -a
Collecting package info: package/feeds/packages/udp-broadcast-relay-redux-openwr
Collecting package info: done
Installing all packages from feed packages.
Installing all packages from feed luci.
Installing all packages from feed routing.
Installing all packages from feed telephony.
shenyanwu@shenyanwu:~/tmp/build/openwrt$ 

我的版本是 23.05.2,树莓派4B
如果你的设备不是树莓派,你可以在官方的下载目录去找到与你设备芯片对应的配置文件链接: 传送门

编译镜像配置

	make menuconfig

运行此命令后等待片刻则会出现配置选择,通过上下方向键 ↑ ↓ 进行选择,回车键 ↵ 进入,空格键 Space 选择,其中选项前面的 表示编译为独立的包,即类似安装包,不会在编译好的系统中存在,需要另外安装, <*> 表示编译为内建包,即相当于直接编译至系统内部,不需要另外再安装,连续按下两次退出键 ESC 返回上一级目录,最后保存好的配置文件将会在当前的 OpenWrt 目录下生成一个名为 .config 的隐藏文件
我们在上一步已经导入了官方的config配置文件,这一步可以不执行,但是可以进去看看学习参考。
在编译命令之前,可以运行一个检查命令,用来检查你的依赖项,包的一些先决条件等是否满足要求,还会从中删除过时的项目,例如对不存在的软件包或配置选项的引用

	make defconfig

我的运行如下图所示:

shenyanwu@shenyanwu:~/tmp/build/openwrt$ make defconfig
tmp/.config-package.in:33826:error: recursive dependency detected!
tmp/.config-package.in:33826:	symbol PACKAGE_python3-pymysql depends on PYTHON3_PYMYSQL_SHA_PASSWORD_SUPPORT
feeds/packages/lang/python/pymysql/Config.in:4:	symbol PYTHON3_PYMYSQL_SHA_PASSWORD_SUPPORT depends on PACKAGE_python3-pymysql
For a resolution refer to Documentation/kbuild/kconfig-language.rst
subsection "Kconfig recursive dependency limitations"

#
# configuration written to .config
#
shenyanwu@shenyanwu:~/tmp/build/openwrt$

此处检测到发生了一个依赖错误,通过查询 OpenWrt 官方 Github 的 issues,找到解决方案,链接 issues #22668

问题在于 feeds/packages/lang/python/pymysql 路径下 Makefile 里面的依赖冲突,该 issues 给出了解决方案,对 Makefile 文件修改如下,其中段落前面的 - 代表需要删除的部分, + 代表需要增添的部分

 #
 # Copyright (C) Alexandru Ardelean <ardeleanalex@gmail.com>
 #
 # This is free software, licensed under the GNU General Public License v2.
 # See /LICENSE for more information.
 #

 include $(TOPDIR)/rules.mk

 PKG_NAME:=pymysql
 PKG_VERSION:=1.0.2
-PKG_RELEASE:=1
+PKG_RELEASE:=2

 PYPI_NAME:=PyMySQL
 PKG_HASH:=816927a350f38d56072aeca5dfb10221fe1dc653745853d30a216637f5d7ad36
 PKG_MAINTAINER:=Alexandru Ardelean <ardeleanalex@gmail.com>
 PKG_LICENSE:=MIT
 PKG_LICENSE_FILES:=LICENSE
 PKG_CONFIG_DEPENDS:=CONFIG_PYTHON3_PYMYSQL_SHA_PASSWORD_SUPPORT
 include ../pypi.mk
 include $(INCLUDE_DIR)/package.mk
 include ../python3-package.mk

-define Package/python3-pymysql
+define Package/python3-pymysql/Default
   SUBMENU:=Python
   SECTION:=lang
   CATEGORY:=Languages
   TITLE:=Pure Python MySQL Client
   URL:=https://pymysql.readthedocs.io/
-  DEPENDS:=+python3 +PYTHON3_PYMYSQL_SHA_PASSWORD_SUPPORT:python3-cryptography
 endef

-define Package/python3-pymysql/config
-  source "$(SOURCE)/Config.in"
+define Package/python3-pymysql
+$(call Package/python3-pymysql/Default)
+  DEPENDS:=+python3
 endef

 define Package/python3-pymysql/description
   This package contains a pure-Python MySQL client library, based on PEP 249.
 endef

+define Package/python3-pymysql-sha-pwd
+$(call Package/python3-pymysql/Default)
+  TITLE+=w/ SHA256 password auth
+  DEPENDS:=+python3-pymysql $(RUST_ARCH_DEPENDS) +PACKAGE_python3-pymysql-sha-pwd:python3-cryptography
+endef

+define Package/python3-pymysql-sha-pwd/description
+  This is a meta-package installing python3-pymysql and python3-cryptography
+  packages to be able to use pymysql with “sha256_password” or
+  “caching_sha2_password” for authentication.
+endef
+
+define Package/python3-pymysql-sha-pwd/install
+  true
+endef

 $(eval $(call Py3Package,python3-pymysql))
 $(eval $(call BuildPackage,python3-pymysql))
 $(eval $(call BuildPackage,python3-pymysql-src))
+$(eval $(call BuildPackage,python3-pymysql-sha-pwd))

修改后的完整文件如下

#
# Copyright (C) Alexandru Ardelean <ardeleanalex@gmail.com>
#
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
#

include $(TOPDIR)/rules.mk

PKG_NAME:=pymysql
PKG_VERSION:=1.0.2
PKG_RELEASE:=2

PYPI_NAME:=PyMySQL
PKG_HASH:=816927a350f38d56072aeca5dfb10221fe1dc653745853d30a216637f5d7ad36

PKG_MAINTAINER:=Alexandru Ardelean <ardeleanalex@gmail.com>
PKG_LICENSE:=MIT
PKG_LICENSE_FILES:=LICENSE

PKG_CONFIG_DEPENDS:=CONFIG_PYTHON3_PYMYSQL_SHA_PASSWORD_SUPPORT

include ../pypi.mk
include $(INCLUDE_DIR)/package.mk
include ../python3-package.mk

define Package/python3-pymysql/Default
  SUBMENU:=Python
  SECTION:=lang
  CATEGORY:=Languages
  TITLE:=Pure Python MySQL Client
  URL:=https://pymysql.readthedocs.io/
endef

define Package/python3-pymysql
$(call Package/python3-pymysql/Default)
  DEPENDS:=+python3
endef

define Package/python3-pymysql/description
  This package contains a pure-Python MySQL client library, based on PEP 249.
endef

define Package/python3-pymysql-sha-pwd
$(call Package/python3-pymysql/Default)
  TITLE+=w/ SHA256 password auth
  DEPENDS:=+python3-pymysql $(RUST_ARCH_DEPENDS) +PACKAGE_python3-pymysql-sha-pwd:python3-cryptography
endef

define Package/python3-pymysql-sha-pwd/description
  This is a meta-package installing python3-pymysql and python3-cryptography
  packages to be able to use pymysql with “sha256_password” or
  “caching_sha2_password” for authentication.
endef

define Package/python3-pymysql-sha-pwd/install
  true
endef

$(eval $(call Py3Package,python3-pymysql))
$(eval $(call BuildPackage,python3-pymysql))
$(eval $(call BuildPackage,python3-pymysql-src))
$(eval $(call BuildPackage,python3-pymysql-sha-pwd))

修改完成后重新运行 make defconfig,结果如下

	shenyanwu@shenyanwu:~/tmp/build/openwrt$ make defconfig
	Collecting package info: done
	#
	# configuration written to .config
	#
	shenyanwu@shenyanwu:~/tmp/build/openwrt$

下载相关源以及多核编译的依赖(Download sources and multi core compile)

	make download

此命令将会预先下载你依赖的所有源代码,同时开启支持多核编译的功能,这样你才可以成功编译,并且使用多核编译提升编译速度

编译镜像(Building images)

	make -j $(($(nproc)+1))

这个命令属于多核编译开启,使用你所有的核心进行编译,当然如果你想使用指定核心数量编译,请在 -j 命令后指定核心数,例如单核编译

	make -j1

当然你要是不放心之前下载的相关源以及多核编译的依赖,你可以执行下面的代码,在编译前重新下载一次,然后自动开始编译

	make -j $(nproc) download world

你可能在别的教程里面见过在命令后面还有 V=sc 或者 V=s,这是打开日志显示,在你编译出错排错时,会在终端进行显示错误信息,对于排除错误很有用,比如以下命令会输出很多日志提供错误帮助

	make -j1 download world V=s

建议在第一次编译时,如果你不确定你的配置项都满足编译要求,可以使用单核,日志输出编译 make -j1 V=s 来确保出错后进行排除。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/762769.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

每日复盘-20240701

今日关注&#xff1a; 20240701 六日涨幅最大: ------1--------301182--------- 凯旺科技 五日涨幅最大: ------1--------300977--------- 深圳瑞捷 四日涨幅最大: ------1--------300977--------- 深圳瑞捷 三日涨幅最大: ------1--------300461--------- 田中精机 二日涨幅最…

迈阿密色主题学科 HTML5静态导航源码

源码介绍 迈阿密色主题学科 HTML5静态导航源码&#xff0c;源码直接上传可用&#xff0c;有技术的可以拿去写个后端搜索调用百度接口&#xff0c;也可用于做引导页下面加你网址添加一个A标签就行了&#xff0c;很简单&#xff0c;需要的朋友就拿去吧 界面预览 源码下载 迈阿…

nginx限制特定国家或地区的访问

一、查看 1. 先查看本地nginx是否有ngx_http_geoip2模块&#xff08;如果有的同学有该模块可以直接跳到下面直接配置nginx服务&#xff09; nginx -V 二、安装 1. 安装所需依赖 yum install -y libmaxminddb-devel pcre-devel zlib-devel gcc gcc-c make git 2. 下载ngx_h…

Docker 镜像导出和导入

docker 镜像导出 # 导出 docker 镜像到本地文件 docker save -o [输出文件名.tar] [镜像名称[:标签]] # 示例 docker save -o minio.tar minio/minio:latest-o 或 --output&#xff1a;指定导出文件的路径和名称[镜像名称[:标签]]&#xff1a;导出镜像名称以及可选的标签 dock…

Web2Code :网页理解和代码生成能力的评估框架

多模态大型语言模型&#xff08;MLLMs&#xff09;在过去几年中取得了爆炸性的增长。利用大型语言模型&#xff08;LLMs&#xff09;中丰富的常识知识&#xff0c;MLLMs在处理和推理各种模态&#xff08;如图像、视频和音频&#xff09;方面表现出色&#xff0c;涵盖了识别、推…

修改element-ui日期下拉框datetimePicker的背景色样式

如图&#xff1a; 1、修改背景色 .el-date-picker.has-sidebar.has-time { background: #04308D; color: #fff; border: 1px solid #326AFF } .el-date-picker__header-label { color: #ffffff; } .el-date-table th { color: #fff; } .el-icon-d-arrow-left:before { color: …

【机器学习】基于层次的聚类方法:理论与实践

&#x1f308;个人主页: 鑫宝Code &#x1f525;热门专栏: 闲话杂谈&#xff5c; 炫酷HTML | JavaScript基础 ​&#x1f4ab;个人格言: "如无必要&#xff0c;勿增实体" 文章目录 基于层次的聚类方法&#xff1a;理论与实践引言1. 层次聚类基础1.1 概述1.2 距离…

新质生产力最新测算(Shp/dta/xcel格式,2012-2022年)

数据简介&#xff1a;参考学者蔡湘杰、贺正楚的做法、我们通过收集数据构建了如下所示的衡量新质生产力的指标体系&#xff0c;但部分数据由于收集难度以及未公布等问题&#xff0c;部分数据有缺少&#xff0c;下面展示了部分原始数据&#xff0c;便于大家进行分析。 数据来源…

自动测域名延迟的导航页面源码

好看导航页面可自动测域名延迟&#xff0c;该源码是html源码&#xff0c;可以做个引导页面&#xff0c;需要的朋友可以下载使用 自动测域名延迟的导航页面源码

如何优化前端性能:提高网页加载速度的实用技巧

我们在前端开发中&#xff0c;性能优化是提高用户体验的关键因素。网页加载速度直接影响用户的满意度和留存率。本文将介绍几种优化前端性能的实用方法&#xff0c;帮助你提高网页加载速度。 问题描述 &#xff1a; 首先前端性能优化涉及多个方面&#xff0c;包括减少HTTP请…

QueryClientProvider is not defined

QueryClientProvider is not defined 运行一个svelte的项目&#xff0c;报错如上&#xff0c;前后查找解决不了&#xff0c;然后没办法&#xff0c; 本来是用yarn 安装的依赖&#xff0c;改用npm install&#xff0c;再次运行就成功了

全国产化飞腾模块BIOS下修复系统启动文件

1、背景介绍 全国产飞腾模块采用麒麟信安操作系统&#xff0c;当系统下面的grub.cfg文件被用户误操作导致无法启动时&#xff0c;可以在BIOS下通过U盘中备份的grub.cfg替换硬盘上原来的grub.cfg文件&#xff0c;从而实现启动。 2、操作步骤 首先进入BIOS命令行模式&#xff…

【Linux系列】Fedora40安装VMware Workstation Pro报错

问题描述 由于Fedora 40使用的Linux内核是6.9,导致安装VMware Workstation Pro 时&#xff0c;安装依赖无法成功&#xff0c;具体报错如下 ..................CC [M] /tmp/modconfig-a8Fcf5/vmnet-only/smac.oCC [M] /tmp/modconfig-a8Fcf5/vmnet-only/vnetEvent.oCC [M] …

【避雷实测】宠物空气净化器怎么选?希喂、小米、安德迈谁更值得入手!

不知道家里养猫的朋友们有没有注意到&#xff0c;每逢春夏季节&#xff0c;无论是户外还是室内&#xff0c;我们的鼻子常常感到痒痒的。户外的痒感往往是因为那些飘散的杨柳絮&#xff0c;而在室内&#xff0c;这种痒感很可能是由于猫主子的毛发飘浮在空气中所引起的。 为了能…

3D Gaussian Splatting代码中的Gaussian_Module和Cameras两个类的代码解读

Gaussian_model 讨论Gaussian_model这个类&#xff0c;是因为里面包含了三维高斯分布的基本信息&#xff0c;里面定义了各种参量的构建方式、用于优化学习的激活函数、学习率设置方法和高斯点优化过程中的增加与删除方式及对应优化器的处理方法。这个类定义在scene文件夹中的g…

UE5(c++)开发日志(3):将前面写的输出日志的方法进行封装

Public下新增一个c类&#xff1a; 选择无属性&#xff0c;因为不需要添加任何东西进去, 也不需要借助里面任何东西。 创建一个命名空间Debug&#xff0c;可以在命名空间内写一点静态方法 &#xff1a; namespace Debug{} static void Print(const FString& message, con…

41、web基础和http协议

web基础与http协议 一、web web&#xff1a;就是我们所说得页面&#xff0c;打开网页展示得页面。&#xff08;全球广域网&#xff0c;万维网&#xff09; world wide webwww 分布式图形信息系统 http&#xff1a;超文本传输协议 https&#xff1a;加密的超文本传输协议…

身边的故事(十二):阿文的故事:消失

那以后就再也没有任何阿文的消息。刚开始还打过几次电话&#xff0c;他都没接。后来也就慢慢的淡忘了&#xff0c;为自己的工作生活而奔波&#xff0c;时间冲淡一切。在那几年里&#xff0c;阿文就像消失了一样。直到2021的某一天&#xff0c;电话那端传来了熟悉但是有点陌生的…

Ubuntu DNS服务配置 深度解析

测试方法 resolvectl status dig alidns.com 修改实践 直接用接口配置&#xff0c;没用 /etc/resolv.conf&#xff0c;有效 /etc/netplan/01-network-manager-all.yaml,无效 /etc/systemd/resolved.conf&#xff0c;见link&#xff0c;为全局配置 [Resolve] DNS1.1.1.1 Fa…

基于SpringBoot扶农助农政策管理系统设计和实现(源码+LW+调试文档+讲解等)

&#x1f497;博主介绍&#xff1a;✌全网粉丝10W,CSDN作者、博客专家、全栈领域优质创作者&#xff0c;博客之星、平台优质作者、专注于Java、小程序技术领域和毕业项目实战✌&#x1f497; &#x1f31f;文末获取源码数据库&#x1f31f; 感兴趣的可以先收藏起来&#xff0c;…