Arm环境下编译Openwrt
Arm环境下编译Openwrt
Last edited 2023-3-13
password
type
Post
status
Published
date
Feb 3, 2023
slug
OpenWrt
summary
Openwrt
tags
工具
开发
N1
ARM
A20
category
技术分享
icon
OpenWrt编译教程,在linux(debian/ubuntu/centos)下编译OpenWrt - 玩机技巧
有些时候,我们可能需要自己编译openwrt系统,比如有些特殊上网需求的朋友。 再比如经常重装系统的朋友,每次重装都要再次安装上自己要用的插件,比较麻烦。 自己编译系统会是个很好的选择,因为可以将插件直接编译进系统,重装系统时插件、中文包就都自带了。 编译openwrt之前,首先要准备一个操作系统,根据官方文档,openwrt编译支持GNU/Linux、BSD 或 MacOSX 系统(需要区分大小写的文件系统)。 以下操作以linux系统为例。 因为是路由系统,关乎到网络稳定,所以建议还是选用稳定版系统,而非最新的测试版系统。 在openwrt官网( https://openwrt.org/)我们可以看到稳定版系统版本号。 在openwrt项目的tags目录,能看到所有openwrt版本,虽然有些版本并不是官网公布的稳定版,但通常这个目录下的版本稳定性都还不错。 https://github.com/openwrt/openwrt/tags 选择版本之前需要关注自己需要的插件支持的系统版本,比如有些插件可能只兼容openwrt18,有些可能只兼容openwrt19,而并没有支持最新的21系统。 我选择的是编译最新的稳定版本:v21.02.1,因为我确定我需要的插件支持21系统。 源码我们可以直接下载,上传到linux。 也可以直接在linux上下载 #下载 wget https://github.com/openwrt/openwrt/archive/refs/tags/v21.02.1.zip #解压 unzip v21.02.1.zip 官方文档直接给出了各系统安装依赖的命令,直接安装即可。 CentOS / Fedora sudo dnf --setopt install_weak_deps=False --skip-broken install bash-completion bzip2 gcc gcc-c++ git make ncurses-devel patch rsync tar unzip wget which diffutils python2 python3 perl-base
OpenWrt编译教程,在linux(debian/ubuntu/centos)下编译OpenWrt - 玩机技巧

坑1

checking whether mknod can create fifo without root privileges... configure: error: in `/home/linux/myopenwrt/openwrt/build_dir/host/tar-1.28':
configure: error: you should not run configure as root (set FORCE_UNSAFE_CONFIGURE=1 in environment to bypass this check) See config.log' for more details make[3]: *** [/home/linux/myopenwrt/openwrt/build_dir/host/tar-1.28/.configured] Error 1 make[3]: Leaving directory /home/linux/myopenwrt/openwrt/tools/tar' make[2]: *** [tools/tar/compile] Error 2 make[2]: Leaving directory /home/linux/myopenwrt/openwrt' make[1]: *** [/home/linux/myopenwrt/openwrt/staging_dir/target-mips_34kc_musl-1.1.14/stamp/.tools_install_yynyynynynyyyyyyynyyyyyyyyyyyyynyyyyynnyynynyyyynnnyy] Error 2 make[1]: Leaving directory /home/linux/myopenwrt/openwrt' make: *** [world] Error 2
以下是解决方法(不一定能起效果,反正我试过可行):
$ sudo make FORCE_UNSAFE_CONFIGURE=1或
$ sudo make FORCE_UNSAFE_CONFIGURE=1 -j1 V=s # 可以使用-j1 -j2 -j4 -j8
 

坑2

使用非root用户编译
使用sudo命令
 
  • 工具
  • 开发
  • N1
  • ARM
  • A20
  • Bing每日图片JetBrains全家桶
    Catalog