在Debian9.4.0操作系统下编译openwrt
- 一、编译环境搭建
- 二、下载openwrt
- 三、(可选)进入openwrt目录,下载并安装所有可用的feeds
- 四、运行menuconfig命令检查编译环境中缺失的软件包
网上很多的编译openwrt的教程是在Ubuntu14或16的desktop版本下,因为用习惯了debian系统,因此我这次使用的是Debian9.4.0操作系统,内核版本号Linux debian 4.9.0-6-amd64,安装在虚拟机下。debian9.4.0稳定版默认desktop会安装xfce,这里也建议取消安装desktop,使用ssh远程登录,文字命令一样可以编译openwrt,这样就不需要联网下载xfce,安装debian操作系统更快速。
一、编译环境搭建
- 安装debian9.4.0,不安装desktop,步骤略。
- 更新debian系统,安装编译openwrt的必要软件。
sudo apt-get upgrade
sudo apt-get update
sudo apt-get install git-core build-essential libssl-dev libncurses5-dev unzip subversion mercurial zlib1g-dev gawk time
最后一个time软件,官方网站上没有说,这个可能是Debian自身没有安装,需要自己安装,不然后面编译openwrt会不通过。
附安装sudo方式
因为openwrt官方建议是使用非root用户来编译,若没有sudo工具,则需要进入su后,安装sudo>su apt-get install sudo
安装完成后,直接输入命令>
visudo
这个命令,vi与sudo之间没有空格,打开后直接在最后一行添加代码,%username改为你自己的用户名>
%username ALL=(ALL) ALL`
保存并退出:
提示:执行visudo,默认是使用nano编辑器,所以保存退出的时候需要通过快捷键的方式来完成 保存 执行“Ctrl+O”* 回车
执行完“Ctrl+O”后,会输出”File Name to Write sudoers.tmp”,在tmp后执行回车* 退出
执行“Ctrl+X”*安装完成后,退出root用户。
安装sudo方式 end =============================
二、下载openwrt
可在usr中新建一个目录myopenwrt,使用git下载openwrt源码,最新的版本。
cd /usr
sudo mkdir myopenwrt
cd myopenwrt
sudo git clone https://git.openwrt.org/openwrt/openwrt.git
下载时间取决于网速,下载完成后,会有一个openwrt根目录,我们所有的编译操作都在此目录下。若网速太慢,可以直接进入github网站,使用迅雷下载openwrt源码的zip压缩文件,然后上传解压到该目录即可。
修改openwrt文件目录所有者信息,官方也有提示,这一步相当重要,不然在Debian下会编译失败。
sudo chown -R user:user /openwrt/
三、(可选)进入openwrt目录,下载并安装所有可用的feeds
cd openwrt
./scripts/feeds update -a
./scripts/feeds install -a
四、运行menuconfig命令检查编译环境中缺失的软件包
make menuconfig
运行menuconfig后,若检查全部通过,会进入配置页面,就可以进行路由器编译前的配置了。注意,ssh登录窗口开大一点,直接全屏就好,不然就会提示窗口显示行列不够。
此时,就可以根据路由器硬件版本型号来配置了。配置完成后,输入命令
make V=99
开始编译,命令含义就不解释了,自行百度。第一次编译过程中,会从网上下载依赖的软件,因此时间会非常漫长,做好心理准备。第一次编译建议默认配置就行了,确保编译不出错。编译完成后,会在/openwrt/bin/targets/~~下生成编译好的固件,然后就可以愉快的刷机了。