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