openwrt编译 -- 搭建属于本身的openwrt的开发环境

系统版本:ubuntu 16.04 LTS 64bits

零、流程化、标准化的步骤,光明的大道往前走

一、先从github clone下来linux

HTTPS : git clone https://git.openwrt.org/openwrt/openwrt.git

若是比较慢或者不能clone能够换成:git

SSH: git clone git://git.openwrt.org/openwrt/openwrt.git

二、在完成clone以后。而后在openwrt目录下github

1 ./scripts/feeds update -a 2 ./scripts/feeds install –a

注:./scripts/feeds 这个脚本只是使软件包出如今 make menuconfig 配置菜单中, 而并非真正的安装或者编译软件。ubuntu

此过程比较慢,建议提早下载好 dl 和 feeds 文件,拷贝到对应目录下,而后进行后续操做。多线程

三、而后选择硬件对应的平台app

make menuconfig

四、编译ssh

make V=99 或者 make V=s

在这里我的不建议在第一次编译的时候使用多线程编译,容易出问题,若是实在想走出本身的风格,可使用多线程进行编译post

make V=99 -jn # n为使用的线程数,好比 1 线程就使用 j1

而后确保联网没问题,慢慢等着就好了。测试

1、记录下在这条宽阔又光明的大道上驰骋的时候填的那些被莫名其妙的坑

一、若是在下载的过程当中出现过早的文件结束符(EOF)ui

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 上的项目失败

二、在进行 make menuconfig 的时候保证终端不要过小,否则也会出现问题的,我正好也经历过。

三、编译过程当中

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 # 编译

则开始往下进行了。

四、若是出现

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

五、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这个修身养性的漫漫长路上,记得要控制好脾气,毕竟绳命要紧!

相关文章
相关标签/搜索