因为工作需要,我一个安卓程序开发,做了很多关于openwrt相关的内容,也不说喜不喜欢吧,反正应该对得起自己的工资。废话不多说,进入主题吧!
前面我写了一篇在Windows10上搭建Ubuntu子系统的博文,虽然自己看都觉得写的不是很好,还是应该能用,也希望假借多写博客,提高自己的写作水平吧!接下来,本篇博客将就使用win10上的Ubuntu搭建openwrt环境进行开发,当然如果你使用的是虚拟机,也可以借鉴借鉴,还没那么多麻烦,只可惜我的笔记本电脑性能有限,使用虚拟机卡的不行。
搭建Windows10子系统
这个就不多说了,请看我的另一篇博客:
教你如何在Win10上利用子系统运行Ubuntu & 处理代码
子系统位置
安装的Ubuntu的位置就在系统的软件appdata目录里面,如果没改的话就在C盘了,例如我的就在下面的目录,可以创建一个快捷方式便于访问。
C:\Users\user\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc\LocalState\rootfs
访问本地文件
可以在Ubuntu的 /mnt/ 文件夹下访问 Windows 的文件目录,使用 gcc 什么的都是没问题的。也可以使用一个符号链接,把需要使用的目录放到 ~ 目录下:
#可以看到像C盘、D盘之类的
ls /mnt/
#使用软链接做快捷方式
ln -s 源文件 目标文件
下载openwrt安装包
如果不需要什么特别的东西的话,直接从GitHub上下载源码吧!
我使用的是联发科的一款芯片(MT7628 + MT7612e),用的是特别版的SDK。这个SDK好久没更新了,网上应该都能找到(就是20160324那个),如果说和原版有什么不同的话,应该就是加了点芯片的驱动,具体我也就就没深究了。
安装依赖库
编译openwrt源码需要用到很多库,在Ubuntu上输入
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 device-tree-compiler
我这也是从网上复制的,如果却什么库,后面看报错再补。
有的说要安装openjdk-8-jdk这个包会,并且会安装失败,这种情况在15版本以下的Ubuntu中会出现,有需要的话看看这个博客吧!
编译固件
接下来就是重头戏了,也是比较复杂的部分,很多博客强烈建议使用非root用户编译,还说别用git,我是发现用Ubuntu没什么问题,安装好给的就不是root账户(输入行前是$符就是非root,如果是#就是root账户了)。所以我们不需要管这些,直接编译的去就好。
如果你看了我之前的博客,应该注意在设置用户名和密码的时候不能关闭窗口,如果关了那后面就是root用户登录了,这样就会出问题,可以手动添加用户和设置默认登录账户或者重置、重装子系统解决。
首先更新脚本
在编译之前先更新下脚本