NanoPi R4S 编译记录

NanoPi R4S 编译记录

小琉璃

我使用 WSL2 编译,系统是 Ubuntu 22.04 LTS

首先在 WSL2 中设定好代理和环境变量, ~/.bashrc 中输入以下的代码:

#Proxy
export windows_host=`cat /etc/resolv.conf|grep nameserver|awk '{print $2}'`
export ALL_PROXY=socks5://$windows_host:Port
export HTTP_PROXY=$ALL_PROXY
export http_proxy=$ALL_PROXY
export HTTPS_PROXY=$ALL_PROXY
export https_proxy=$ALL_PROXY

if [ "`git config --global --get proxy.https`" != "socks5://$windows_host:Port" ]; then
           git config --global proxy.https socks5://$windows_host:Port
fi


#PATH
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

然后输入 source ~/.bashrc 生效。

接下来可以将以下的代码保存为 .sh,也可以每行代码手动运行,如果是脚本的话,并不是全自动的,中间需要手动进行操作,客制化编译配置。

注意最好设定为全局代理以保证网络良好

#设定环境
sudo apt update && sudo apt full-upgrade -y

sudo apt install -y ack antlr3 asciidoc autoconf automake autopoint binutils bison build-essential \
bzip2 ccache cmake cpio curl device-tree-compiler fastjar flex gawk gettext gcc-multilib g++-multilib \
git gperf haveged help2man intltool libc6-dev-i386 libelf-dev libglib2.0-dev libgmp3-dev libltdl-dev \
libmpc-dev libmpfr-dev libncurses5-dev libncursesw5-dev libreadline-dev libssl-dev libtool lrzsz \
mkisofs msmtp nano ninja-build p7zip p7zip-full patch pkgconf python2.7 python3 python3-pip libpython3-dev qemu-utils \
rsync scons squashfs-tools subversion swig texinfo uglifyjs upx-ucl unzip vim wget xmlto xxd zlib1g-dev

#拉取源码
cd ~ && git clone https://github.com/coolsnowwolf/lede && cd lede

#添加自定义源
sed -i '$a src-git kenzo https://github.com/kenzok8/openwrt-packages' feeds.conf.default && sed -i '$a src-git small https://github.com/kenzok8/small' feeds.conf.default

#清除tmp(二次编译可以直接从这里开始)
rm -rf ./tmp && rm -rf ./feeds && rm -rf .config && ./scripts/feeds update -a && ./scripts/feeds install -a

#客制化配置
!! && make menuconfig

#下载需要的文件,需要保持网络良好
make download -j$(nproc) && find dl -size -1024c -exec ls -l {} \; && find dl -size -1024c -exec rm -f {} \;

#开始编译并输出 log
{
!! && make -j$(nproc) || make -j1 || make -j1 V=s
} | tee -a compile.txt

#自动在 ~ 生成编译好的 .tar.gz 并清除 lede 目录中生成的文件,二次编译可以直接返回上面重复执行
cp -rf ~/lede/bin/targets ~/out && cd ~/out && tar czvf ~/$(basename `find -name openwrt-*.manifest` .manifest)_$(date +"%Y%m%d%H%M").tar.gz */ && cd ~/lede && rm -rf ~/lede/bin/targets && rm -f compile.txt

#清除所有配置
cd ~ && rm -rf ~/lede && rm -rf ~/out



Report Page