1、先从github clone下来
git clone https://git.openwrt.org/openwrt/openwrt.git
如果比较慢或者不能clone可以换成:
git clone git://git.openwrt.org/openwrt/openwrt.git
2、在完成clone之后。然后在openwrt目录下
./scripts/feeds update -a
./scripts/feeds install –a
注:./scripts/feeds 这个脚本只是使软件包出现在 make menuconfig 配置菜单中, 而并不是真正的安装或者编译软件。
此过程比较慢,建议提前下载好 dl 和 feeds 文件,拷贝到对应目录下,然后进行后续操作。
3、然后选择硬件对应的平台
make menuconfig
4、编译
make V=99 或者 make V=s
在这里个人不建议在第一次编译的时候使用多线程编译,容易出问题,如果实在想走出自己的风格,可以使用多线程进行编译
make V=99 -jn # n为使用的线程数,比如 1线程就使用 j1
然后确保联网没问题,慢慢等着就行了。
1、如果在下载的过程中出现过早的文件结束符(EOF)
fatal: The remote end hung up unexpectedlyB | 44.00 KiB/s
fatal: 过早的文件结束符(EOF)
fatal: index-pack failed
解决:
git config --global http.postBuffer 1048576000
git config --global http.lowSpeedLimit 0
git config --global http.lowSpeedTime 999999 # 单位 秒
最主要的是:
ssh-keygen -t rsa
回车、回车、再回车
如果还不行,则可以查看一下大神的记录,这是传送门:使用 git 克隆 github 上的项目失败
2、在进行 make menuconfig 的时候保证终端不要太小,不然也会出现问题的,我正好也经历过。
3、编译过程中
configure: error: you should not run configure as root (set FORCE_UNSAFE_CONFIGURE=1 in environment to bypass this check)
解决:
export FORCE_UNSAFE_CONFIGURE=1
source /etc/profile
然后:
su –root # 切换到root账号
make V=99 # 编译
则开始往下进行了。
4、如果出现
scripts/config/mconf: error while loading shared libraries: libncurses.so.5: cannot open shared object file: No such file or directory
/home/song/openwrt.cpy/include/toplevel.mk:136: recipe for target 'menuconfig' failed
make: *** [menuconfig] Error 127
那么可以先用ldd查看一下:
ldd libncurses.so.5
ldd: ./libncurses.so.5: No such file or directory
安装 libncrurses 即可,类似的问题应该会很多,类似的办法即可。
sudo apt-get install libncrurses
5、Openwrt在编译过程出现
mipsel_24kc_musl/linux-ramips_mt76x8/tmp/openwrt-ramips-mt76x8-cudy_wr1000-squashfs-factory.bin": No such file or directory
实际上导致此问题的原因是:
Image file /home/song/openwrt/openwrt/build_dir/target-mipsel_24kc_musl/linux-ramips_mt76x8/tmp/openwrt-ramips-mt76x8-cudy_wr1000-squashfs-factory.bin is too big
提示的错误为
可以看出来:
openwrt-ramips-mt76x8-cudy_wr1000-squashfs-factory.bin is too big
但是实际我们需要编译的是 MT7628 的文件,这个实际上与我们需要的没有多大的关系,可以修改 mt76x8.mk。
vi target/linux/ramips/image/mt76x8.mk
第一种方法:不知道后遗症,但是肯定不影响 MT7628 相关的文件
下载测试生成的内核文件,没有任何问题
第二种方法:删掉与cudy_wr1000相关的部分的内容(慎重删除,如果不需要则直接删除还能省空间)
基于第二种方法,发现删除不相关的内容之后(由于在编译的过程中出现了很多类似的问题),编译明显的快了不少,所以,在mt76x8.mk中只保留了两三个选项。
上面的基本上都是在编译的过程中出现的问题,在openwrt这个修身养性的漫漫长路上,记得要控制好脾气,毕竟绳命要紧!