您现在的位置是:首页 >技术教程 >我家云使用OpenWRT踩过的坑,解决OpenWRT软件源与核心版本、系统构架不兼容不匹配问题网站首页技术教程
我家云使用OpenWRT踩过的坑,解决OpenWRT软件源与核心版本、系统构架不兼容不匹配问题
解决OpenWRT软件源与核心版本、系统构架不兼容不匹配问题
初步接触OpenWRT
本人最近踩了一下矿坑,70米自购了一个我家云,RK3328处理器Cortex-A53架构,想自己折腾个私有云下载器,卖家自己推荐使用宏创网络的粒子云套件,本人装后自己觉得插件太多,想安装纯净版的omv7,但苦于找不到能用的镜像,自己又不会编译,后面找到了一个OpenWRT镜像,装上后可以正常启动,界面也十分友好,还有iStore插件,安装插件也十分方便,于是决定使用该系统。
这里感谢大佬提供的镜像:https://www.znds.com/tv-1248154-1-1.html
如果无法下载镜像的可以联系本人,本收到消息可分享下载链接。
装机
使用我家云装机套件正常装机,不会的可以自行参考宏创网络给出的教程,只需把img镜像文件换成大佬提供的img镜像即可。
这里分享下宏创网络提供的刷机教程:http://x9pc.com/firmware/wojiayun/。
注意:bin文件作为引导文件,需要和镜像同时写入。
安装成功后开机的界面如下:
注意避坑:这位大佬提供的镜像不支持DHCP自动获取ip地址,插入网线无法从路由器看到设备上线,这样可以直接用网线将设备和电脑直接连接,浏览器输入IP地址(192.168.23.1,端口就是80端口)登录WEB进行管理。默认用户是root,初始密码为password。即OpenWRT系统默认用户密码。
这里不要问我为啥IP是192.168.23.1,我是通过拆机连接HDMI接口到屏幕才能看到的地址。
登录后因为该设备只有一个网口,所以不能用网络向导页面配置网络,只能通过“网络→网口配置“”自行配置。配置好后连接路由器就可以看到设备上线和连接互联网了,后面就可以用路由分配的地址访问了(端口还是80端口)。
愉快的使用
连接网络后就可以愉快使用了!!!
其实使用过程并不愉快。
软件源的配置
虽然界面提供了软件源的修改配置功能。但实际无法使用,不知道是系统问题还是我不会操作。
后面只能通过编辑系统文件进行修改。
本人通过搜索国内可使用的软件源,直接复制粘贴,后面发现问题太多,各种报错,在更新软件包和安装docker中就遇到很多问题,各种找不到软件或者找到该软件但跟你当前配置的构架不兼容等问题。
报错代码无非如下:
Packages for kmod-nf-ipt found, but incompatible with the architectures configured
Cannot find dependency kernel
各种搜索,有的大佬提供单独安装需要版本的方式,一般安装软件包会有很多依赖包,一个个安装本就不现实,而且出现这种问题应该不是个例,肯定是软件源配置问题。经过大量搜资料后,发现大佬们都只是提供自己的软件源地址,对软件源地址的核心版本和构架等都没有说清楚,直接复制粘贴各种配置都不行,对新手小白很不友好。后面本人只通过恶补OpenWRT系统软件源配置资料,才终于发现了问题,大佬们使用的软件源跟我的CPU构架和版本都不匹配。踩过的坑无数啊…
正确配置软件源
推进我用的软件源地址
本人使用的是中科大的软件源:
这里提供中科大软件源地址:https://mirrors.ustc.edu.cn/openwrt/releases/
也可以使用阿里云的软件源:https://mirrors.aliyun.com/openwrt/releases/
了解OpenWRT软件源配置文件格式
cat /etc/opkg/distfeeds.conf
你会发现有几行类似的代码,都是以src/gz开头的。
src/gz openwrt_core https://mirrors.ustc.edu.cn/openwrt/releases/23.05.5/targets/armsr/armv8/packages/
这里除了src/gz以外,后面跟着的名称和地址都需要自行选择和修改,建议通过文本编辑器修改后粘贴到配置文件。
至于怎么使用ssh访问配置文件和使用root登录系统不作说明,网上很多教程,本人使用的Windows系统,所以使用的是PuTTY这个工具,小巧方面好用。
了解自己的系统内核版本和构架以及软件源仓库
查询自己的系统信息
输入以下命令直接获取板卡信息:
ubus call system board
这里主要关心这几个参数,23.05.1是选择的软件源版本。5.15.137是核心版本,ARMv8是架构,ARMv8有AArch64 和AArch32。具体区分可用uname -a查看。
uname -a
这里会返回以下信息。
Linux OpenWrt 5.15.137-flippy-86+o #257 SMP PREEMPT Thu Oct 26 18:12:38 CST 2023 aarch64 GNU/Linux
这里的acch64就是我的设备的构架。
输入以下命令,查看系统版本信息。
cat openwrt_version
会输出以下信息。
DISTRIB_ID='ImmortalWrt'
DISTRIB_RELEASE='23.05.1'
DISTRIB_TARGET='armsr/armv8'
DISTRIB_ARCH='aarch64_generic'
DISTRIB_TAINTS='no-all'
DISTRIB_REVISION='R24.3.9'
DISTRIB_DESCRIPTION='OpenWrt '
这里DISTRIB_ARCH='aarch64_generic’就是自己要的软件源版本。
了解软件源仓库
浏览器直接访问中科大软件源地址:
https://mirrors.ustc.edu.cn/openwrt/releases/
这里选择你自己的版本,要跟查询到的自己的设备版本匹配,我这里是23.05.1。
这里有两个目录,两个都可以自行点开看看有怎么目录,这个目录基本是按版本和构架分开的,要找到匹配自己构建的软件源,我这里点packages,能找到符合aacrh64 cortex-a53架构的版本。
这里能看到aarch64有三个目录,我这里需要的是刚刚查询到的aarch64_generic这个目录。打开这个目录有几个目录和文件,到这里就可以开始自己软件源配置文件的编辑了。
软件源配置文件的编辑
软件原地址格式为src/gz+名称+地址,中间需要用空格分开。
src/gz <example> <url>
按这个格式将packages目录下5个目录的所有链接编辑好。
名称可以自己填,这里推荐使用原来配置的名称,我这里配置如下:
src/gz openwrt_base https://mirrors.ustc.edu.cn/openwrt/releases/23.05.1/packages/aarch64_generic/base
src/gz openwrt_luci https://mirrors.ustc.edu.cn/openwrt/releases/23.05.1/packages/aarch64_generic/luci
src/gz openwrt_packages https://mirrors.ustc.edu.cn/openwrt/releases/23.05.1/packages/aarch64_generic/packages
src/gz openwrt_routing https://mirrors.ustc.edu.cn/openwrt/releases/23.05.1/packages/aarch64_generic/routing
src/gz openwrt_telephony https://mirrors.ustc.edu.cn/openwrt/releases/23.05.1/packages/aarch64_generic/telephony
src/gz openwrt_core https://mirrors.ustc.edu.cn/openwrt/releases/23.05.1/targets/armsr/armv8/packages
这里的openwrt_core是我把targets目录下的armsr下的ARMv8下的软件包也配置到配置文件中。
将编辑好的配置写入配置文件
这里建议修改前大家做个备份,万一改废了还可改回来。
备份配置文件的命令:
cp /etc/opkg/distfeeds.conf /etc/opkg/distfeeds.conf.bak
使用vi、nano、vim都可以编辑配置文件,我个人习惯用vi,大家可以按自己的习惯来。
vi /etc/opkg/distfeeds.conf
输入i进入编辑模式,方向键定位光标,粘贴上面编辑好的配置。esc下输入:wq保存退出。我用的PuTTY工具可以按鼠标右键粘贴,不知道其他工具如何。
真正愉快的使用
重启,更新软件包。这下可以真正的愉快使用了。
reboot
opkg update