N1盒子固件编译
软路由
N1盒子固件编译

N1盒子入门到精通

N1a

N1b

N1c

N1d

N1固件下载:
https://drive.google.com/drive/folders/1d8vHLM5DZ-zfzKxV0sR5ouVrph_axsIK?usp=sharing

1.环境搭建

a.下载虚拟机软件VMware15.5

https://www.vmware.com/cn/products/workstation-pro/workstation-pro-evaluation.html
许可证密钥输入 UY758-0RXEQ-M81WP-8ZM7Z-Y3HDA

b.Ubuntu 18.04.5-LTS-桌面版-64位

http://releases.ubuntu.com/bionic/ubuntu-18.04.5-desktop-amd64.iso

c.安装 vmware tools(解决鼠标复制和桌面大小控制)

sudo ./vmware-install.pl

d.安装ssh sever(方便后期连接虚拟机下载固件和上传文件)

sudo apt-get install openssh-server

安装shell连接工具
推荐winscp https://winscp.net/eng/index.php(官网)https://www.lanzoux.com/ieldGezgdzi(绿色版)

e.替换Ubuntu源(解决update速度慢的情况,非必须,如果运行apt update速度慢再来替换)

sudo gedit /etc/apt/sources.list

用以下阿里云的地址替换源地址

deb https://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse
# deb-src https://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse
deb https://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse
# deb-src https://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse
deb https://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse
# deb-src https://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse
deb https://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse
# deb-src https://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse

2.固件编译

前言:打造一个真正的科学上网环境
软路由:打开全局
其余统一用sstap:https://github.com/FQrabbit/SSTap-Rule

a.打开终端命升级

sudo apt-get update

b.安装依赖

sudo apt-get -y install build-essential asciidoc binutils bzip2 gawk gettext git libncurses5-dev libz-dev patch python3 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 curl swig rsync

ps:如果你直接复制的是l大的代码,请加入以下代码,否则后期打包会报错

c.下载L大的源码

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

d.feeds里添加PASSWALL:

src-git kenzok https://github.com/kenzok8/openwrt-packages
src-git small https://github.com/kenzok8/small

e.下载插件包

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

f.运行命令

make menuconfig

g.N1选择

选择目标系统-- Target System (QEMU ARM Virtual) --->
选择处理器型号--Subtarget (ARMv8 multiplatform) --->

h.选择好后下载DL库

make -j8 download V=s

OpenWrt 编译 LuCI -> Applications 添加插件应用说明
https://drive.google.com/file/d/1FBuTSDb3bMGUsB-TYCpr1E7DC34yyMrQ/view?usp=sharing

i.编译

编译前可自定义默认ip

package/base-files/files/bin/config_generate

然后再编译

 make -j1 V=s

首次编译j后面填1,再编译可填你cpu最大线程,例如我的是3600+,最大线程是12,那可以输入

make -j12 V=s

ps:如果报错,而实在找不到问题,可尝试输入以下代码

PATH=$(echo "$PATH" | sed -e 's/:\/mnt.*//g')

j.编译完成后输出路径

lede/bin/targets

k.云编译(不想用自己电脑编辑的可选这个方法)

在完成f.make menuconfig后,保存生成.config后来执行
1.打开网页
https://github.com/P3TERX/Actions-OpenWrt
点use this template,起个名字
2.Add file-Upload files,上传feeds.conf.default
3.新建 ./config 把刚从虚拟机下载的.config 里的内容复制进去--commit--自动开始编译(Notepad++)
4.等待,大概2-3个小时完成编译
5.下载文件 OpenWrt_firmware (在Actions里)

二次编译
cd openwrt # 进入openwrt目录
git pull # 同步更新大雕源码
./scripts/feeds update -a && ./scripts/feeds install -a # 更新Feeds
rm -rf ./tmp && rm -rf .config # 清除编译配置和缓存
make menuconfig # 进入编译配置菜单
make -jn V=99 # 开始编译 n=线程数+1,例如4线程的I5填-j5

3.固件打包

a.新建一个opt目录

opt目录下新建imgs目录
将内核img文件拷贝至imgs
内核下载:https://www.right.com.cn/forum/thread-981406-1-3.html

b.将脚本拷贝至opt目录下

修改脚本内容(文件版本号及目录地址)
将未打包固件复制到opt/openwrt目录下

c.运行打包脚本

切换成root用户(如果密码认证失败请运行sudo passwd root)
bash 运行脚本进行打包

(压缩命令:gzip -9)

d.复制打包好的固件

打包完成的镜像在opt/openwrt/tmp目录下
tmp目录带锁文件复制不出来,请运行

sudo chmod -R 777 tmp

e.刷入U盘

下载刷U盘软件
https://www.balena.io/etcher/

f.刷入emmc

cd /root
./inst-to-emmc.sh

升级指令

./update-to-emmc.sh

4.单独编译插件ipk

1.更新

git pull

2.更新feeds

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

3.进入编译(找到想编译的插件的名字)

make menuconfig

4.开始编译

make package/(插件名)/compile V=99

N1路由器举例:
ssrplus+插件

make package/luci-app-ssr-plus/compile V=99

5.写入emmc

openwrt依赖项:(编译openwrt时需要添加的包,配合inst-to-emmc.sh update-to-emmc.sh update-beikeyun-openwrt.sh 等使用,以及cpu温度频率监测时用到)
language里的 perl、perlbase-utf8
util -> disc :  fdisk blkid lsblk
util  -> filesystem: 能选的都选上,编译不过的就不用选
util:  losetup  uuidgen  tar  gawk getopt  bash

a.写入emmc

cd /root
./inst-to-emmc.sh

b.如果出现分区失败而无法写入的,可以先还原bootloader后重启,再次运行inst-to-emmc.sh
还原bootloader的方法:

dd if=/root/u-boot-2015-phicomm-n1.bin  of=/dev/mmcblk1
reboot

c.升级新版本到emmc(不丢配置,必须是f老大系列的固件)

cd /root
./update-to-emmc.sh

相关导航