编译LEDE(OpenWrt)树莓派3B+固件

你。 提交于 2020-02-26 05:52:46

网上的固件用着总有问题,这里自己编译一个,记录一下过程和遇到的问题。

LEDE原版项目地址 https://github.com/coolsnowwolf/lede

【0】遇到的问题:(解决办法都在文章中相应位置)

  1. g++: internal compiler error: Killed (program cc1plus)
  2. checking whether mknod can create fifo without root privileges
  3. 提示编译时间差异问题

 【1】首先准备环境和依赖

sudo apt update && sudo apt upgrade

sudo apt -y install build-essential asciidoc binutils bzip2 gawk gettext git libncurses5-dev patch unzip zlib1g-dev lib32gcc1 libc6-dev-i386 subversion flex node-uglify gcc-multilib p7zip p7zip-full msmtp libssl-dev texinfo libglib2.0-dev xmlto qemu-utils upx-ucl libelf-dev autoconf automake libtool autopoint gcc g++ cmake vim wget ntp ntpdate

【2】编译

从这里向后,全程不需要root用户或者sudo

#下载源码
git clone https://github.com/coolsnowwolf/lede

cd ~/lede

#更新依赖源

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

#进入配置界面

make menuconfig

这里 git 、 更新依赖源 和 后边的编译下载过程 都需要良好快速的网络环境哈,自己想办法。

【3】配置

参考 https://openwrt.club/1.html

【4】编译

#下载编译用到的东西,会非常多非常慢
make download V=s

这一段过程可能会遇到上边的问题0.2和0.3,解决办法分别是

0.2解决:checking whether mknod can create fifo without root privileges 不要用root用户或者sudo方式使用make相关命令, 添加环境变量export FORCE_UNSAFE_CONFIGURE=1  参考https://github.com/coolsnowwolf/lede/issues/200

0.3解决:安装ntpdate来同步时间,sudo apt-get install ntp ntpdate , sudo ntpdate ntp1.aliyun.com

#开始正式编译系统,单线程模式
make V=s -j1

这里可能会遇到好多问题,比如上边提到的问题0.1,解决办法是:

0.1解决:g++: internal compiler error: Killed (program cc1plus) 这个出现是内存不足,编译过程需要大量内存,我的机器只有512M内存,所以可以添加swap空间来解决之。参考https://www.cnblogs.com/liqinggai/articles/9023333.html

添加swap:
1. 创建分区文件, 大小 2G
sudo dd if=/dev/zero of=/swapfile bs=1M count=2048
2. 生成 swap 文件系统
sudo mkswap /swapfile
3. 激活 swap 文件
sudo swapon /swapfile
4.之后可以删除
sudo rm /swapfile

大功告成,编译完成的固件在 ~/lede/bin/targets/brcm2708/bcm2710

 

参考:

https://openwrt.club/1.html

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!