build openWRT 编译树莓派4的openwrt固件

OpenWrt 是可用于嵌入式设备(无线路由器)的系统。OpenWrt具有路由器的全功能,同时也是易于修改的操作系统,它由更新的Linux内核提供支持。文章内容为 build 编译固件及安装,固件使用配置。

软路由和硬路由的不同:
软路由:是在设备(soc,pc等)上配合软件合成的路由解决方案。参数通过软件控制和设置,实现路由器的所有功能。扩展性强,可更换性能更强的硬件,可玩性提高。可以安装各种插件,如多拨叠加宽带提高网速,科学上网(穿墙),ap管理,内网穿透等。旧的电脑可做为软路由(网口太少,但可以设置单臂路由或添加usb扩展卡等),市面也有软路由成品。本文使用树莓派4,编译安装openwrt。
硬路由:就是我们普遍使用的路由器,厂家提供硬件和软件的解决方案。

目录:


固件的编译

流程操作:

不要用 root 用户 git 和编译,下载和首次编译时间会非常的耗时,推荐全局上网。
系统:Ubuntu 18 LTS x64

获取源码首次编译:

1
2
3
4
5
6
7
8
9
tl8517@ubuntu:~$ sudo apt update                     //更新系统
tl8517@ubuntu:~$ sudo apt-get -y install build-essential asciidoc binutils bzip2 gawk gettext git libncurses5-dev libz-dev patch python3.5 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 //安装必须的扩展
tl8517@ubuntu:~$ git clone https://github.com/coolsnowwolf/lede //下载源码
tl8517@ubuntu:~$cd lede //切换到lede目录
tl8517@ubuntu:~/lede$ ./scripts/feeds update -a //更新feeds包
tl8517@ubuntu:~/lede$ ./scripts/feeds install -a //安装feeds包
tl8517@ubuntu:~/lede$ make menuconfig //配置编译条件
tl8517@ubuntu:~$ make -j8 download v=s //下载dl库
tl8517@ubuntu:~$ make -j1 V=s //(-j1 1个线程编译)

源码的更新编译:

1
2
3
4
5
6
tl8517@ubuntu:~/lede$ git pull
tl8517@ubuntu:~/lede$ ./scripts/feeds update -a && ./scripts/feeds install -a
tl8517@ubuntu:~/lede$ make menuconfig
tl8517@ubuntu:~/lede$ make defconfig
tl8517@ubuntu:~/lede$ make -j8 download
tl8517@ubuntu:~/lede$ make -j1 V=s

清空配置重新编译:

1
2
3
4
5
tl8517@ubuntu:~/lede$ git pull
tl8517@ubuntu:~/lede$ ./scripts/feeds update -a && ./scripts/feeds install -a
tl8517@ubuntu:~/lede$ rm -rf ./tmp && rm -rf .config
tl8517@ubuntu:~/lede$ make menuconfig
tl8517@ubuntu:~/lede$ make -j$(($(nproc) + 1)) V=s

操作方法:方向键移动,enter却菜单,按Y选择,N取消选择,M模块化编译。 双击ESC退出,/为搜索。
build OpenWrt

OpenWrt Configuration
Target System:目标系统
Subtarget:子目标
Target Profile:目标类型
Target Images:目标镜像(镜像,boot分区,root分区)
Administration:管理工具
Extra packages:附加组件(自动挂载设备)
Kernel modules:内核组件(文件系统,有线网卡,USB支持,无线网卡)]
LuCI:Web 控制面板(app,主题等)
Network:网络相关选项( Aria2 的 Web 控制面板,文件传输工具,SSH等)
Utilities:实用工具(解压缩,分区,编辑器,文件系统小工具,Shell,终端工具等)

Target System:目标系统
build OpenWrt

Target Images:目标镜像(镜像,boot分区,root分区)
build OpenWrt

Administration:管理工具
监控软件Htop,top的增强版
build OpenWrt

Extrapackages:附加组件(自动挂载设备)
automount:自动挂载USB 存储设备,若文件系统支持,自动挂载至设备。
autosamba:自动挂载 Samba 设备
build OpenWrt

Kernel modules:内核组件(文件系统,有线网卡,USB支持,无线网卡)
Kernel modules -> Filesystems 固件支持的文件系统
kmod-fs-exfat
kmod-fs-exportfs
kmod-fs-ext4
kmod-fs-f2fs
kmod-fs-nfs
kmod-fs-nfs-common
kmod-fs-nfs-common-rpcsec
kmod-fs-nfs-v3
kmod-fs-nfs-v4
kmod-fs-nfsd
kmod-fs-ntfs
kmod-fs-squashfs
kmod-fs-vfat
kmod-fuse
build OpenWrt
Kernel modules -> USB Support usb设备支持(usb网卡等)
build OpenWrt
Kernel modules -> Wireless Drivers 无线网卡支持
build OpenWrt

LuCI:Web 控制面板(app,主题等)
LuCI -> Applications
build OpenWrt
LuCI -> Themes 主题
build OpenWrt

Network:网络相关选项( Aria2 的 Web 控制面板,文件传输工具,SSH等)
Network -> Download Manager
Aria2 控制面板
树莓派4 openwrt
Network -> File Transfer
网络文件传输菜单
树莓派4 openwrt
Network -> File Transfer->Aria2 Configuration
添加对于aria2 支持
树莓派4 openwrt
Network -> SSH
添加 openssh-sftp-client 和 openssh-sftp-server 来启用 SFTP 客户端和服务器。
树莓派4 openwrt

Utilities:实用工具(解压缩,分区,编辑器,文件系统小工具,Shell,终端工具等)
Utilities -> Compression 压缩工具
bsdtar:tar 打包工具
gzip:gzip 压缩工具
unzip:zip 解压工具
zip:zip 压缩工具
树莓派4
Utilities -> Disc 分区工具
fdisk:MBR 分区工具
gdisk:GBT 分区工具
lsblk:磁盘设备及分区查看工具
树莓派4
Utilities -> Editors 编辑器工具
vim
树莓派4
Utilities -> Filesystem 文件系统相关的工具
f2fs-tools:开源 flash 文件系统
fstrim:回收文件系统上未使用的块工具
resize2fs:ext 分区大小工具
树莓派4
Utilities -> Shells 用户交互
Shell
树莓派4
Utilities -> Terminal 终端工具
树莓派4
双击ESC退出,保存,执行编译


安装固件及远程登陆

将固件写入到内存卡,需要用到Win32DiskImager(噗,中文版的了)

完成后将内存卡插入树莓派,接上网线同时连接电脑,连接电源开机。

Windows10打开ssh功能。

添加功能->找到openssh点击安装

终端登陆:

命令格式ssh root@192.168.1.1 ubuntu相同
默认IP:192.168.1.1 密码:password

修改局域网IP为内网同网段:option ipaddr '192.168.1.1'

1
2
3
4
5
6
7
8
9
10
11
12
13
14
config interface 'loopback'
option ifname 'lo'
option proto 'static'
option ipaddr '127.0.0.1'
option netmask '255.0.0.0'

config globals 'globals'
option ula_prefix 'fddc:df38:6a06::/48'

config interface 'lan'
option proto 'static'
option netmask '255.255.255.0'
option ip6assign '60'
option ipaddr '192.168.66.1'
浏览器登陆:

输入ip和密码登陆图形化界面

参考文档
各类插件作用:OpenWrt 编译 LuCI -> Applications 插件应用说明
各类插件olsr报错的问题:https://tl8517.com/openwrt-compile-error/
我使用的固件Onedrive点击下载
编译时的错误与解决:当时出错发的贴子连接

https://openwrt.org/
https://mlapp.cn/374.html
Openwrt官方源码固件链接:https://github.com/openwrt/openwrt
Lean-Openwrt固件源码链接:https://github.com/coolsnowwolf/lede