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

news/2024/7/7 21:17:34 标签: elasticsearch, 大数据, 搜索引擎

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.niftyadmin.cn/n/5536810.html

相关文章

秋招突击——设计模式补充——简单工厂模式和策略模式

文章目录 引言正文简单工厂模式策略模式策略模式和工厂模式的结合策略模式解析 总结 引言 一个一个来吧&#xff0c;面试腾讯的时候&#xff0c;问了我单例模式相关的东西&#xff0c;自己这方面的东西&#xff0c;还没有看过。这里需要需要补充一下。但是设计模式有很多&…

【机器学习】连续字段的特征变换

介绍 除了离散变量的重编码外&#xff0c;有的时候我们也需要对连续变量进行转化&#xff0c;以提升模型表现或模型训练效率。在之前的内容中我们曾介绍了关于连续变量标准化和归一化的相关内容&#xff0c;对连续变量而言&#xff0c;标准化可以消除量纲影响并且加快梯度下降…

论文浅尝 | 从最少到最多的提示可在大型语言模型中实现复杂的推理

笔记整理&#xff1a;王泽元&#xff0c;浙江大学博士 链接&#xff1a;https://openreview.net/forum?idWZH7099tgfM 1. 动机 尽管深度学习已经取得了巨大的成功&#xff0c;但它与人类智慧仍然存在一些明显差距。这些差距包括以下几个方面&#xff1a;1&#xff09;学习新任…

回溯法:生成一个字符串的所有排列组合

问题&#xff1a;字符串abcd怎样获取abcd、acbd、acdb、adbc、adcb、bacd、bcad、bdac、bdca、cabd、cdba、cadb、cbda等&#xff0c;所有排列。 使用回溯法来生成一个字符串的所有排列 import java.util.ArrayList; import java.util.List;public class Permutations {publi…

.net 8 集成 MinIO文件存储服务,实现bucket管理,以及文件对象的基本操作

一、准备工作 1、本地部署MinIO服务 2、创建MinIO的Access Key 3、创建.net 项目 4、下载MinIO sdk 5、相关文档 二、编写MinIO工具类 三、管理存储桶 1、MyBucket类 &#xff08;1&#xff09;判断bucket是否存在 &#xff08;2&#xff09;新建bucket &#xff08…

Nature Communications|用于电子皮肤的自主自愈晶体管(柔性半导体器件/电子皮肤/柔性电子)

2024年4月23日,韩国庆熙大学Jin Young Oh,美国斯坦福大学鲍哲南(Zhenan Bao)和韩国嘉泉大学Tae Il Lee团队,在《Nature Communications》上发布了一篇题为“Autonomous self-healing supramolecular polymer transistors for skin electronics”的论文。论文内容如下: 一…

从OpenAI停服看中国市场:国产替代崛起的机遇与挑战

一、OpenAI 停服事件背景 OpenAI 自 2020 年推出 GPT-3 以来&#xff0c;在全球范围内引起了极大的反响。其强大的自然语言处理能力使其成为许多企业和开发者的首选工具。然而&#xff0c;2024 年 6 月 25 日&#xff0c;许多中国用户收到了一封来自 OpenAI 的邮件&#xff0c…

DFS之搜索顺序——AcWing 1116. 马走日

DFS之搜索顺序 定义 DFS之搜索顺序是指在执行深度优先搜索时&#xff0c;遍历图或树中节点的策略。具体而言&#xff0c;DFS会沿着一条路径深入到底&#xff0c;当无法继续深入时回溯&#xff0c;然后选择另一条未探索的路径继续深入。搜索顺序直接影响到搜索效率和剪枝的可能…