阿里云上编译lean大lede固件

2020-04-12 21:32:29 20点赞 139收藏 14评论

L大项目地址:https://github.com/coolsnowwolf/lede

这次介绍用阿里云的环境快速编译L大的openwrt和碰到的一些问题

好处:省去vm的搭建,配置可随意调整,随用随退

坏处:花钱阿里云上编译lean大lede固件

如果自己原因折腾虚拟机,还是建议自己电脑或包年的vps上搞,经济实惠点

环境部署

ECS选择:地域选择香港或新加坡,选择按量付费

购买配置:我选择了计算性4C8G内存比通用性小点,流量选择了按量1元1G,编译很费CPU,Core越多越快

购买配置购买配置

系统选择:在同一个页面选择了L大推荐的版本

系统版本选择系统版本选择

剩余一路点击下一步完成创建,这次机会秒建成功,进入控制台

ECS实例ECS实例


编译过程(L大的网页已经写的很清楚了)

1、环境准备

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.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 antlr3 gperf

2、拉源码,并进入目录lede

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

cd lede

3、编译前配置

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

这块的的配置内容有时间单写个文章介绍下,我们是给蜗牛矿渣使用选择x86版本

4、下载dl库

make -j8 download v=s 下载dl库(海外vps的好处,体现了。国内请尽量全局)

5、编译

make -j1 V=s (-j1 后面是线程数。官方推荐第一次编译推荐用单线程,我是4c的机器选择了j4)

温馨提示:这里可以使用screen命令,以防编译过程中终端终端,需要重新编译

我就在编译了1个多小时,电脑休眠了,终端断了重新来过

悲剧的中断了悲剧的中断了

4C8G的比我乞丐版的1C1G快了很多,不过感觉4线程开少了,编译过程中CPU有比较长时间没有跑到100%

6、编译过程中出现异常,需要重新配置:

rm -rf ./tmp && rm -rf .config
make menuconfig
make -j$(($(nproc) + 1)) V=s

7、编译完成后输出

路径:/lede/bin/targets

通过wscp登陆服务器,直接下载,也可以开个ftp来下载

mac可以通过scp命令直接下载

scp -r remote_username@remote_ip:remote_folder local_folder

8、二次编译

我这按量付费是一次性的没有用到这个,如果有包年的vps,长期需要编译就可以用到

cd lede
git pull
./scripts/feeds update -a && ./scripts/feeds install -a
make defconfig
make -j8 download
make -j$(($(nproc) + 1)) V=s

遇到的问题

问题1,编译用户导致报错

非root用户,非root用户,非root用户,重要事情说三遍

ubuntu的用户创建:命令 adduser 新账户名

添加sudo权限:

1、切换到超级用户:#su (然后输入root的密码,即可登录)

2、打开/etc/sudoers文件:#vi

3、修改文件

找到"root ALL=(ALL) ALL"一行,在下面插入新的一行,内容是"账户名 ALL=(ALL) ALL"

保存文件wq!

4、退出超级用户:#exit

问题2:编译内存太小报错

这个问题是买了个1C1G的ECS报错的,这次按量付费内存选了8G,没有这个问题

g++: internal compiler error: Killed (program cc1plus)
Please submit a full bug report,

主要原因大体上是因为内存不足,有点坑

通过临时使用交换分区来解决吧

sudo dd if=/dev/zero of=/swapfile bs=64M count=32 添加了2G的交换区
sudo mkswap /swapfile
sudo swapon /swapfile

编译完成后可用以下命令恢复

sudo swapoff /swapfile

sudo rm /swapfile

问题3:终端断开,导致编译停止

通过screen命令保持

安装命令sudo apt install screen

彩蛋

最后芝麻开门神秘代码 echo 0xDEADBEEF > /etc/config/google_fu_mode

展开 收起
14评论

  • 精彩
  • 最新
  • 现在都用Github的云编译,更方便

    校验提示文案

    提交
    主要是免费

    校验提示文案

    提交
    又是一个路子,去学习下 [高兴]

    校验提示文案

    提交
    还有1条回复
    收起所有回复
  • 大佬问下我配置openwrt x86联网20秒就断线,看系统还是能获取ipv4,估计是dns解析问题,请问怎么解决呢

    校验提示文案

    提交
    openwrt配置,我没碰到你说的问题。

    校验提示文案

    提交
    收起所有回复
  • 楼主,lean成品固件在哪里下载?萌新进去项目看不懂

    校验提示文案

    提交
    这个需要自己编译,成品的

    校验提示文案

    提交
    这个是要自己编译的,成品恩山论坛有很多人在维护

    校验提示文案

    提交
    收起所有回复
  • 不是公司购入。很难去自费步入一个新的生态。

    校验提示文案

    提交
  • github两个半小时出一个固件,还是免费的 [高兴] [高兴] [高兴]

    校验提示文案

    提交
  • 还是虚拟机最简单省事 [得意]

    校验提示文案

    提交
  • 呵呵,这个Github更方便啊。。

    校验提示文案

    提交
  • github云编多方便。感觉技术不行,自己编译的问题多。

    校验提示文案

    提交
提示信息

取消
确认
评论举报

相关文章推荐

更多精彩文章
更多精彩文章
最新文章 热门文章
139
扫一下,分享更方便,购买更轻松