龙空技术网

[网络]openwrt的阿里云编译

苦苦tt 1604

前言:

如今同学们对“automake教程”大致比较重视,同学们都需要了解一些“automake教程”的相关资讯。那么小编也在网上收集了一些关于“automake教程””的相关文章,希望姐妹们能喜欢,兄弟们快快来了解一下吧!

不知道有没有感觉搭建linux编译openwrt困难的,此篇选择租个云服务器编译。

以下我编译之旅

注册服务器阿里云登录,选择ECS产品

选择地区美国(硅谷)(其实选国内的也是可以的,这边为了演示方便,买个海外的,顺便测测海外编译速度),服务器类型选择共享型(这个类型是最便宜的便宜)选择服务器版本ubuntu 18.04 64位,时长一周即可最后,支付,我这边选择下来,一周共18元。

如果想选择云服务编译,且学习linux知识,可以在每年双十一看看各大云服务商有没有优惠。不一定选择海外服务器,国内服务器的基本上很便宜。一年100以下的很多。

增加非root用户

openwrt默认不能用root编译,所以需要增加非root用户,并且最好设置sudo权限。

添加用户

useradd test #增加名字为test的用户

passwd test #修改&添加test的密码

设置用户信息,在/etc/passwd中,设置工作目录和shell执行器,如下:增加sudo权限,在/etc/sudoers中,参考root的设置,设置自己新增用户的sudo权限以新增用户重新登录,如果发现工作目录没有权限。输入以下命令修改权限

sudo chown -R test:test ./test/ # test为你新增用户

最后,更新系统和安装编译所使用到的包。环境设置结束。

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

下载openwrt源码

这边建议下载分支版本(不要选择master),例如目前最新的19.07

git clone -b openwrt-19.07 # -b制定分支

下载选装包

除了以上源码,还有一些比较有用工具在选装包中,例如luci,可以用以下方式更新和安装

./scripts/feeds update -a

./scripts/feeds install -a

配置默认配置命令

make defconfig # 默认配置参数

make menuconfig # 菜单配置,自定义选择功能。配置结束后按两次ESC退出。

(建议全部配置完成后,再执行多次make menuconfig然后直接退出,确保配置参数保存成功)

菜单配置选择编译路由器类型,例如我们编译K3路由器,如下增加luci,luci是web页面,方便路由配置其他需要增加工具自行研究编译

开始编译之前,分享一个工具,screen,它可以让shell命令后台运行。具体参考如下:

screen -S xxx # 创建xxx工作台

ctrl+a ctrl+d # 退出工作台,或者直接关掉ssh客户端也行,screen一直确保命令后台运行

screen -d -r xxx # 恢复工作台

由于服务器内存较小,可能导致编译失败,可以增加swap分区解决,具体参考如下

# 增加swap方法

dd if=/dev/zero of=/tmp/swap bs=1M count=1024 # 设置bs*count大小swap文件

mkswap /tmp/swap # swap文件格式化

sudo swapon /tmp/swap # 挂载swap分区,主要要用sudo,输入free看是否挂载成功

# 卸载swap方法

sudo swapoff /tmp/swap

rm /tmp/swap

# 默认挂载,以上挂载下次机器重启就还需要重新输入命令挂载,参考以下方法自动挂载

sudo vi /etc/fstab

在文件末尾(最后一行)加上

/tmp/swap swap swap default 0 0

这样就算重启系统,swap分区还是有值

# 系统设置swap使用比例

sudo vi /etc/sysctl.conf

swappiness=60 # 这个是百分比

sudo sysctl -p

在screen中编译openwrt,执行make V=99即可开始编译。这个是一个漫长过程。可以先洗洗睡了。

最终编译下来(此次购买硅谷服务器),使用了两个小时,是不是很快?

固件烧录

固件生成bin目录中,烧录方法,各个路由器不同,可以自行搜索一下。

标签: #automake教程