RISC-V技术william hill官网
直播中

大菠萝Alpha

3年用户 674经验值
擅长:嵌入式技术
私信 关注

【昉·星光 2 高性能RISC-V单板计算机体验】在昉·星光2上编译OpenWRT

零、简介

本文将step by step介绍从编译环境搭建、源码下载、menuconfig到编译出IMG的整个过程。

一、准备

(一)编译环境

刚开始装的是Ubuntu22,结果编译过程中有些问题,后来换回Ubuntu20就好了,所以建议稳妥点就20环境。
OP8.png

刚装完的系统,需要按照一些基本的开发套件,反正一股脑全部敲了好了。

sudo apt install build-essential
sudo apt-get install python3-distutils
sudo apt-get install gcc g++ binutils patch bzip2 flex bison make autoconf gettext texinfo unzip sharutils subversion libncurses5-dev ncurses-term zlib1g-dev subversion git-core gawk asciidoc libz-dev zlib1g-dev libssl-dev

(二)源码下载

因为国内直连官方建议的源码地址https://git.openwrt.org/openwrt/staging/wigyori.git的下载网速就2K,而且一会就断了。后来搭了个梯子,下载到WIN11系统,然后再SCP至编译主机,然后各种权限问题,加上后来绕不过feeds update的问题,于是放弃。

最后采用的是同步至gitee,然后从gitee下载源码的曲线救国方案,虽然gitee同步时常抽风,路途虽远,anyway总算下载下来了。
GITEE.png

源码git clone下来后,cd wigyori/下切换branch:

git checkout riscv-jh71x0-202308b

二、配置系统

配置OpenWRT通过在wigyori目录下执行make menuconfig命令,主要包括开发板BSP配置、LuCI网页配置和无线网络配置。
OW1.png

(零)feeds配置

feeds.conf.default文件中保存着OpenWRT的附加软件包管理器的扩展包索引目录,就是下载管理软件包的,默认的feeds下载有packages、luci、routing、telephony。常见的内容如下:

src-git packages https://git.openwrt.org/feed/packages.git
src-git luci https://git.openwrt.org/project/luci.git
src-git routing https://git.openwrt.org/feed/routing.git
src-git telephony https://git.openwrt.org/feed/telephony.git
#src-git video https://github.com/openwrt/video.git
#src-git targets https://github.com/openwrt/targets.git
#src-git oldpackages http://git.openwrt.org/packages.git
#src-link custom /usr/src/openwrt/custom-feed

因为git.openwrt.org坑爹网速,所以我们还是采用gitee同步大法,同步后的gitee地址更新至feeds.conf.default文件。

(一)板级BSP配置

因为VF2的BSP早就有大神配置好了,我们只需要在menu中选择即可。

1、选择Target System (StarFive JH71x0 (7100/7110))

2、再选择Target Profile (StarFive VisionFive 2 v1.3b) (手头的VF2是1.3b版,具体看PCB正面的版本号)
OW2.png

3、Target Image配置如下:
OW3.png

save后退出。

(二)LuCI 配置

UCI 是 Openwrt 中为实现所有系统配置的一个统一接口,英文名 Unified Configuration Interface,即统一配置接口。轻量级 LUA 语言的官方版本只包括一个精简的核心和最基本的库,这使得 LUA 体积小、启动速度快,从而适合嵌入在别的程序里。 LuCI 即是这两个项目的合体,可以实现路由的网页配置界面。先安装LuCI ,执行./scripts/feeds update packages luci & ./scripts/feeds install -a -p luci

然后行make menuconfig进行LuCI网页配置。

1、-> Network -> Web Servers/Proxies -> < *> uhttpd;

2、-> LuCI -> 1. Collections -> <* > luci

3、-> LuCI -> 2. Modules -> Translations -> <*> Chinese Simplified (zh_Hans)

4、-> LuCI -> 3. Applications -> <* > luci-app-ddns

-> LuCI -> 3. Applications -> <* > luci-app-firewall

-> LuCI -> 3. Applications -> <* > luci-app-ntpc

-> LuCI -> 3. Applications -> <* > luci-app-samba4

-> LuCI -> 3. Applications -> <* > luci-app-uhttpd

5、-> LuCI -> 4. Themes ->全选

具体截图就不附上了。

(三)无线配置

VF2板上没有WIFI模组,手头有个MT7601U的USB WiFi卡,一并加上。
OW5.png

1、配置kernel驱动

-> Kernel modules -> Wireless Driver -> < *> kmod-cfg80211

-> Kernel modules -> Wireless Driver -> < *> kmod-cfg80211

-> Kernel modules -> Wireless Driver -> < *> kmod-mt7601u
OW6.png

2、配置WirelessAPD框架

-> Network -> WirelessAPD -> < *> wpad-basic-mbedtls

-> Network -> WirelessAPD ->< *> hostapd-common

-> Network -> WirelessAPD ->< *> wpa-cli

-> Network -> WirelessAPD ->< *> hostapd-utils

三、编译OpenWRT

(一)下载软件包

下载全部选择好的软件包

./scripts/feeds update -a
./scripts/feeds install -a
make download V=s

在线下载文件包,由于网络关系导致某些文件包无法下载而中断编译过程。一方面可以重复执行make download V=s命令重新下载,另一种解决方法则是查找出错的包名,至ftp://ftp.gnu.org/gnu/手动下载对应文件包,并复制至“dl”目录后重新编译,直至全部完成。

(二)编译系统

因为我的Ubuntu机器硬件不行,所以直接make了,硬件比较高的机器可以make -j4甚至make -j8加快编译速度。

OW75.png

大约6-8小时候,终于编完了。
OW9.png

四、一些注意问题

一是https://git.openwrt.org/速度真的太慢了,本次大部分时间耗费在源码下载的解决上,gitee同步勉强能用。

二是新手编译务必按照步骤来,不要乱序,否则很多莫名其妙的问题。

三是编译环境很重要,要想少问题,直接Ubuntu20。

回帖(1)

jf_44860206

2023-11-20 17:30:59
感谢大佬分享,非常实用!
举报

更多回帖

发帖
×
20
完善资料,
赚取积分