[教程]自己编译N1 openwrt(docker版)固件

注意:

  1. 要用 root 用户 git 和编译!!!
  2. 国内用户编译前最好准备好)梯-子
  3. 默认登陆IP 192.168.1.1, 密码 password

如何给ubuntu系统做全1局1代-理

在用非root账户登录后

一般在/home/你的用户名/.bashrc

 nano .bashrc 

export http_proxy=http://你的可用局域网代-理-IP:端口/
export https_proxy=http://你的可用局域网代-理=IP :端口/
export ftp_proxy=http://你的可用局域网代-理)IP :端口/

保存,再开一个ssh窗口,试试或者重启系统

编译命令如下:

1/首先装好 Ubuntu 64bit,推荐 Ubuntu 18 LTS x64

2/更新系统

sudo apt-get update #更新系统

3/安装依赖

sudo apt-get -y install build-essential asciidoc binutils bzip2 gawk gettext git libncurses5-dev libz-dev patch python3.5 python2.7 unzip zlib1g-dev lib32gcc1 libc6-dev-i386 subversion flex uglifyjs git-core gcc-multilib p7zip p7zip-full msmtp libssl-dev texinfo libglib2.0-dev xmlto qemu-utils upx libelf-dev autoconf automake libtool autopoint device-tree-compiler g++-multilib antlr3 gperf wget #安装需要的依赖

4/新建目录

mkdir lede #新建目录
cd lede #进入目录

5/使用git clone下载源码

git clone https://github.com/coolsnowwolf/lede 

6/更新并安装

./scripts/feeds update -a
./scripts/feeds install -a

7/配置openwrt

make menuconfig #(这一步详细设置在下面,仔细看) ,具体配置见下方截图

8/下载dl库

make -j8 download V=s #下载dl库(国内请尽量全8局9科-学9上网) 

9/编译固件

make -j1 V=s #(-j1 后面是线程数。第一次编译推荐用单线程)即可开始编译你要的固件了。

整个编译过程很漫长2-4小时,也许更长

本套代码保证肯定可以编译成功。里面包括了 R20 所有源代码,包括 IPK 的。

配置前,安装s-s=r plus代码和openclash

1/作者把s+s-r-plus个注释掉了,拉到你本地机器后,把注释去掉,就好

进入lede目录,并运行

nano feeds.conf.default

去掉src-git helloworld前面的#

2/手动Clone vernesong的OpenClash项目

mkdir package/luci-app-openclash
cd package/luci-app-openclash
git init
git remote add -f origin https://github.com/vernesong/OpenClash.git
git config core.sparsecheckout true
echo "luci-app-openclash" >> .git/info/sparse-checkout
git pull origin master
git branch --set-upstream-to=origin/master master
./scripts/feeds update -a
./scripts/feeds install -a
make menuconfig

make menuconfig,N1的设置

退出配置界面,并保存.config配置文件

执行第8、9步骤进行编译

漫长等待后,完成编译后的压缩包在下图位置

制作docker版n1固件

需要使用一键生成工具

一键脚本说明

感谢恩山的@flippy,他制作了一键脚本方便生成docker镜像

在你这台编译用ubuntu上

非root用户,ssh上去

/home/用户名/新建一个目录

mkdir make_docker
cd make_docker
wget http://soft.zhujitips.com/n1/7.docker/make_opwrt_docker_img.tar.gz

解压tar.gz文件

tar -zxvf make_opwrt_docker_img.tar.gz 

拷贝编译openwrt生成的文件到/home/你的用户名/ make_docker目录下

/home/你的用户名/lede/bin/targets/armvirt/64/openwrt-armvirt-64-default-rootfs.tar.gz
#编译生成的文件在如上位置

生成docker版

outdir生成目录,可以更改,但是需要提前建好!

img_name为hub.docker上的用户名和镜像名,如果没有可以申请或别不想上传到hub.docker.com,用本地加载镜像的办法

脚本用到了pigz如果没有这个工具,需要安装

apt-get install pigz 
sudo bash build.sh tag #tag换成你要的版本号,比如2020.06.27

如上图,成功完成

可以在/opt/imgs/docker目录查看生成好的镜像文件

导入镜像

将生成好的镜像文件传输到N1,运行以下命令导入

docker load --input 镜像文件 

或者

上传到hub.docker.com

登录docker

 sudo docker login 

根据提示,输入用户名和密码

sudo docker push 用户名/镜像名:tag

在n1,armbian上pull拉取这个镜像

docker pull 用户名/镜像名:tag

具体设置看:[教程]在斐讯N1上刷Armbian,安装Docker+OpenWrt