关于如何编译openwrt 固件,网上会有很多教程,本文存在的意义就是为使用谷歌云的朋友提供一个简明参考流程。
使用谷歌云编译openwrt 固件的意义:
- 机器配置高,网速快,没有网络环境的限制;
- 若是初次接触,本地安装虚拟机本身就有不低的硬件门槛和一定的经验,实践过程中需要解决的问题会更多,花费时间则更长,而谷歌云则可以在两分钟内配置好环境。
在谷歌云中开一台虚拟机实例,试用服务最高选8核,系统选择Ubuntu 14.04 LTS。(在这里我偏向于选择英国地区的机器)



SSH 连接虚拟机
命令行输入 sudo apt-get update 后回车,然后输入
sudo apt-get -y install build-essential asciidoc binutils bzip2 gawk gettext git libncurses5-dev libz-dev patch 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 python python2.7 perl imagemagick subversion git gcc g++ binutils autoconf automake libtool-bin make bzip2 libncurses5-dev libreadline-dev zlib1g-dev flex bison patch texinfo tofrodos gettext pkg-config realpath libstring-crc32-perl gawk libusb-dev unzip intltool libacl1-dev libcap-dev libc6-dev libglib2.0-dev unzip wget curl zip libssl-dev
后回车。
输入
git clone https://github.com/coolsnowwolf/lede
回车

然后
cd lede
./scripts/feeds update -a
./scripts/feeds install -a
make menuconfig




最后选好你要的路由,输入
make -j1 V=s
(我会直接使用make -j8 V=s, 因为这样使用到了八线程,对我来说最快,暂时没碰到问题)


cd ~/lede/bin/targets
利用ls 命令显示文件夹,利用cd 命令进入文件夹,使用pwd 命令显示当前文件夹的绝对路径

默认用户名:root 密码:password
奉上两行神秘代码,用途及用法请自行谷歌:
git checkout 2915c44a11ca0ee40b51ff5d9c18a0da1951e170
echo 0xDEADBEEF > /etc/config/google_fu_mode
如有其他问题,请留言,我会帮助你。

参考:
- https://github.com/coolsnowwolf/lede
- OpenWrt 编译 LuCI -> Applications 添加插件应用说明-L大 https://www.right.com.cn/forum/thread-344825-1-1.html
你好,我编译完到最后一步下载文件时一直提示“没有此文件”,是因为我的“完全限定文件路径:”没填对吗?希望能得到你的指导。
你好👋
如果你在目录里可以看到那个文件的话,就几乎可以确定是因为你的“完全限定文件路径”没有填对啦。你可以cd 到“/home” 然后自己一步一步去寻找那个文件,输入路径的时候可以在记事本里多确认几次再copy 过去~
其实也可以用xshell 和xftp 直接ssh 连接,我习惯这样连接谷歌云VM 的CentOS 系统,Ubuntu 应该也不难实现。
用root 和密码ssh 连接的方法:
sudo -i
vim /etc/ssh/sshd_config
如果不会使用vim, 可以搜索一下,很简单
将”PermitRootLogin” 后面改为yes
将”PasswordAuthentication” 后面改为yes
保存
sudo service ssh restart
sudo passwd root
改成你想要的密码,然后就可以用IP 和root 密码登录了!xftp 应该可以很方便地传输文件~
能否将您编译后的固件分享给我
等我有空回去找找…
朋友,还可以去恩山论坛看看,应该有人发布。
链接:https://pan.baidu.com/s/1pGpHVwDR7siQCP3lB66qCg
提取码:8nz1
怎么添加第三方ipk
将它上传到路由器root 目录,ssh 使用以下命令
opkg install /root/xxx.ipk
你好,按照教程,每次都报这个错。能否帮看看?
rc/base/bits.o.d.raw -c
In file included from ../deps/v8/src/base/bits.h:9:0,
from ../deps/v8/src/base/bits.cc:5:
/usr/include/c++/5/type_traits:38:28: fatal error: bits/c++config.h: No such file or directory
compilation terminated.
tools/v8_gypfiles/v8_libbase.host.mk:148: recipe for target ‘/home/yaoli064/lede/build_dir/target-mipsel_24kc_musl/node-v12.15.0/out/Release/obj.host/v8_libbase/deps/v8/src/base/bits.o’ failed
make[5]: *** [/home/yaoli064/lede/build_dir/target-mipsel_24kc_musl/node-v12.15.0/out/Release/obj.host/v8_libbase/deps/v8/src/base/bits.o] Error 1
Makefile:101: recipe for target ‘node’ failed
make[4]: *** [node] Error 2
make[4]: Leaving directory ‘/home/yaoli064/lede/build_dir/target-mipsel_24kc_musl/node-v12.15.0’
Makefile:150: recipe for target ‘/home/yaoli064/lede/build_dir/target-mipsel_24kc_musl/node-v12.15.0/.built’ failed
make[3]: *** [/home/yaoli064/lede/build_dir/target-mipsel_24kc_musl/node-v12.15.0/.built] Error 2
make[3]: Leaving directory ‘/home/yaoli064/lede/feeds/packages/lang/node’
time: package/feeds/packages/node/compile#3.62#1.58#6.67
package/Makefile:111: recipe for target ‘package/feeds/packages/node/compile’ failed
make[2]: *** [package/feeds/packages/node/compile] Error 2
make[2]: Leaving directory ‘/home/yaoli064/lede’
package/Makefile:107: recipe for target ‘/home/yaoli064/lede/staging_dir/target-mipsel_24kc_musl/stamp/.package_compile’ failed
make[1]: *** [/home/yaoli064/lede/staging_dir/target-mipsel_24kc_musl/stamp/.package_compile] Error 2
make[1]: Leaving directory ‘/home/yaoli064/lede’
/home/yaoli064/lede/include/toplevel.mk:225: recipe for target ‘world’ failed
首先要确保以下几点:
1. 机器为Ubuntu 64X;
2. 编译过程使用普通用户,不要使用root 用户;
3. 重新编译要把lede 文件夹删掉,重新git;
4. 虽然我说我自己常用make -j8 V=s, 但实际上我自己也经常碰到问题不得不重新单线程来一遍…
其次,我的一些经验:
1. 有的时候出错可能仅仅是由于选的插件太多,它们之间也有存在冲突的可能性;
2. 单线程编译时间很长,ssh 断线就会失败,建议使用Screen.
安装
sudo apt-get -y install screen
创建窗口
screen -S yourname
断线重连后恢复窗口
screen -ls
screen -r yourname
我的建议:
1. 使用谷歌云网页ssh 工具;
2. 重新来一次,这次先不动配置,按照lean 默认配置文件来,并且make -j1 V=s;
3. 再不行,就发邮件给我康康全过程,哈哈