如何自己手动编译openWRT on ubuntu server

1.前期准备

  • ubuntu linux server
  • 魔法上网环境 ( 中国大陆用户 )
  • 脑子 🧠
  • 双手 👋

2.前往Lean 仓库克隆代码

点击 Lean Openwrt仓库地址进入该项目首页, 为接下来的编译提供参考。

sudo apt update -y
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-pyelftools \
libpython3-dev qemu-utils rsync scons squashfs-tools subversion swig texinfo uglifyjs upx-ucl unzip \
vim wget xmlto xxd zlib1g-dev python3-setuptools

编译后的固件路径地址

~/lede/bin/targets/x86/64$

drwxr-xr-x 3 jackiossy jackiossy      4096 Nov 10 21:01 .
drwxr-xr-x 3 jackiossy jackiossy      4096 Sep  7 13:03 ..
-rw-r--r-- 1 jackiossy jackiossy      2995 Nov 10 20:56 config.buildinfo
-rw-r--r-- 1 jackiossy jackiossy       257 Nov 10 20:56 feeds.buildinfo
-rw-r--r-- 1 jackiossy jackiossy   5367104 Nov 10 21:00 openwrt-x86-64-generic-kernel.bin
-rw-r--r-- 1 jackiossy jackiossy 116684088 Nov 10 21:01 openwrt-x86-64-generic-squashfs-combined-efi.img.gz
-rw-r--r-- 1 jackiossy jackiossy 117112832 Nov 10 21:01 openwrt-x86-64-generic-squashfs-combined-efi.vmdk
-rw-r--r-- 1 jackiossy jackiossy 110736860 Nov 10 21:01 openwrt-x86-64-generic-squashfs-rootfs.img.gz
-rw-r--r-- 1 jackiossy jackiossy     11901 Nov 10 21:01 openwrt-x86-64-generic.manifest
drwxr-xr-x 2 jackiossy jackiossy     20480 Nov 10 20:56 packages
-rw-r--r-- 1 jackiossy jackiossy      3088 Nov 10 21:01 profiles.json
-rw-r--r-- 1 jackiossy jackiossy       873 Nov 10 21:01 sha256sums
-rw-r--r-- 1 jackiossy jackiossy        16 Nov 10 20:56 version.buildinfo

编译成功后你需要使用的固件文件是 openwrt-x86-64-generic-squashfs-combined-efi.img.gz

然后我们使用linux解压缩工具gzip进行解压,执行一下命令,得到img固件文件

gzip -dv openwrt-x86-64-generic-squashfs-combined-efi.img.gz

然后我们把解压缩后得到的文件openwrt-x86-64-generic-squashfs-combined-efi.img 传输到我们的电脑之中。

3.扩容overlay

如何扩容overlay分区, 执行命令

cfdisk

按照已有的磁盘列表分区方式,酌情进行 新建, 写入, 退出。

接下来格式化我们新建的sda3分区

mkfs.ext4 /dev/sda3

等待执行完毕,并且显示Writing superblocks and filesystem accounting information: done后, 我们继续操作, 使用一下命令挂载分区。

mount /dev/sda3 /mnt/sda3

挂载成功后我们可以执行ls命令检查文件内是否涵盖lost+found文件,如果存在, 说明我们挂载成功了。

接下来我们迁移overlay配置

cp -r /overlay/* /mnt/sda3

执行ls命令检查overlay配置是否成功复制到sda3当中

ls /mnt/sda3

如果文件内容含有 upper work 等文件夹, 说明我们复制配置成功,接下来我们去Luci网页页面去配置启动挂载点即可。

打开192.168.2.2 (路由器地址) 登录。

4.去Openwrt网页设置页面创建挂载点

1)打开浏览器登录openwrt后台, 依次从菜单进入 “系统” — “挂载点”, 点击右侧挂载点的“添加”按钮🔘。

2)点击“启用挂载点”勾选框框 ☑️ , UUID选择新建格式化的磁盘, 挂载点选择“作为外部overlay使用”。

3)点击“保存并应用” ,然后重新启动openwrt。

在编译前自定义固件相关内容