[網絡]openwrt的阿里雲編譯

不知道有沒有感覺搭建linux編譯openwrt困難的,此篇選擇租個雲服務器編譯。

以下我編譯之旅

註冊服務器

  • 阿里雲登錄,選擇ECS產品


[網絡]openwrt的阿里雲編譯


  • 選擇地區美國(硅谷)(其實選國內的也是可以的,這邊為了演示方便,買個海外的,順便測測海外編譯速度),服務器類型選擇共享型(這個類型是最便宜的便宜)
[網絡]openwrt的阿里雲編譯

  • 選擇服務器版本ubuntu 18.04 64位,時長一週即可
[網絡]openwrt的阿里雲編譯

  • 最後,支付,我這邊選擇下來,一週共18元。
[網絡]openwrt的阿里雲編譯

如果想選擇雲服務編譯,且學習linux知識,可以在每年雙十一看看各大雲服務商有沒有優惠。不一定選擇海外服務器,國內服務器的基本上很便宜。一年100以下的很多。

增加非root用戶

openwrt默認不能用root編譯,所以需要增加非root用戶,並且最好設置sudo權限。

  • 添加用戶

useradd test #增加名字為test的用戶

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

  • 設置用戶信息,在/etc/passwd中,設置工作目錄和shell執行器,如下:
[網絡]openwrt的阿里雲編譯

  • 增加sudo權限,在/etc/sudoers中,參考root的設置,設置自己新增用戶的sudo權限
[網絡]openwrt的阿里雲編譯

  • 以新增用戶重新登錄,如果發現工作目錄沒有權限。輸入以下命令修改權限

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路由器,如下
[網絡]openwrt的阿里雲編譯

  • 增加luci,luci是web頁面,方便路由配置
[網絡]openwrt的阿里雲編譯

  • 其他需要增加工具自行研究

編譯

開始編譯之前,分享一個工具,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目錄中,燒錄方法,各個路由器不同,可以自行搜索一下。


分享到:


相關文章: