简介
LEDE(Linux Embedded Development Environment),LEDE可能大家不太熟悉,但是OpenWRT应该如雷贯耳。LEDE和OpenWRT的渊源颇深。
关于OpenWRT的发展史这里不做详细描述了,由于OpenWRT的一些规则过于老套。有人想试试新的规则和方法,然后就有了LEDE。LEDE是16年5月从OpenWRT fork出来的,并继承原OpenWRT的开发目标。如今LEDE支持很多协议和硬件设备,可以直接编译和安装使用,如文字提到的树莓派4B。2018年1月LEDE和OpenWRT正式宣布合并,合并后的项目使用OpenWrt的名字、LEDE的源代码。
拓扑图
使用软路由可以让家庭中众多设备都具备软路由带来的便利,如电视、家人所有的手机、游戏机等。
编译
注意:
1.不用使用root用户进行编译;
2.由于编译过程需要下载代码,国内的用户大家都懂;
3.默认登录IP:192.168.1.1 密码:password
本文编译环境采用Ubuntu 20.04 LTS x64。
如前说明了OpenWRT和LEDE的关系,先使用github coolsnowwolf 最新的代码编译支持树莓派4B的LEDE固件。
- 下载源码
git clone git@github.com:coolsnowwolf/lede.git
- 安装编译环境
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
- 下载 feeds 源中的软件包源码
./scripts/feeds update -a
feeds 是扩展的软件包,独立于 OpenWrt 源码之外,所以需要单独进行拉取和更新。
- 安装 feeds 中的软件包
./scripts/feeds install -a
- 需要国外网站如GitHub加速
echo 'src-git helloworld https://github.com/fw876/helloworld'>>./feeds.conf.default
./scripts/feeds update -a && ./scripts/feeds install -a
- 调整 OpenWrt 系统组件
make menuconfig
首次编译建议只选择架构,其它都不要动,这样编译成功率会更高。如果不打算调整组件则输入make defconfig,它会检测编译环境并生成默认的编译配置文件。这里会选择树莓派4B。
这里选择树莓派4B固件,配置如下:
- 预下载编译所需的软件包
make download -j8 V=s
下载dl库(这里很慢,国内用户懂得)
- 开始编译
make -j1 V=s
(-j1 后面是线程数。第一次编译推荐用单线程)即可开始编译你要的固件了。
本套代码保证肯定可以编译成功。
注意:
编译时间很长,可以午休或者出去喝n杯咖啡。但是右面可以使用多线程编译,根据cpu性能编译很快。
编译后的固件在“bin/targets/bcm27xx/bcm2711/”目录。固件如下,使用烧录软件讲固件烧录到SD卡启动。插入网线可以看到网口的led灯在闪烁,并且pc拿到1网段地址说明启动OK。
openwrt-bcm27xx-bcm2711-rpi-4-ext4-factory.img.gz # 烧录固件
openwrt-bcm27xx-bcm2711-rpi-4-ext4-sysupgrade.img.gz # 升级固件
开启usb网卡
由于树莓派4B是单网卡,要使用树莓派4B当软路由只有两中方法:
- 树莓派4B以旁路由的形式从在(旁路由的原理和配置拓扑这里不详说)
- 使用USB 千兆网卡为树莓派4B增加一个网卡。
第一种方法这里不做详说。第二种方法需要讲打开kernel module中相关模块,建议usb相关全部打开。编译后升级即可。开机启动后讲添加的usb网卡当WAN口。
至此一台软路由就可以正常工作了,lede里面方便的app可以自己挖掘发现。。。。