编译服务器挂载不上_[网络]openwrt的阿里云编译

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

以下我编译之旅

注册服务器

  • 阿里云登录,选择ECS产品
69fabc893b3e7988058a7e515ab55834.png
  • 选择地区美国(硅谷)(其实选国内的也是可以的,这边为了演示方便,买个海外的,顺便测测海外编译速度),服务器类型选择共享型(这个类型是最便宜的便宜)
33a789df555db98b4a89d5a80daec299.png
  • 选择服务器版本ubuntu 18.04 64位,时长一周即可
c98b82966e8ac299fc839ced14de5701.png
  • 最后,支付,我这边选择下来,一周共18元。
4007b1c2fad0cbf28ffd6ceaead974dd.png

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

增加非root用户

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

  • 添加用户

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

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

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

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 https://github.com/openwrt/openwrt.git # -b制定分支

下载选装包

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

./scripts/feeds update -a

./scripts/feeds install -a

配置

  • 默认配置命令

make defconfig # 默认配置参数

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

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

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

编译

开始编译之前,分享一个工具,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目录中,烧录方法,各个路由器不同,可以自行搜索一下。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值