目錄

一、基礎開發環境搭建

WIN10下的Linux(WLS)子系統安裝

Linux(WLS)子系統配置

子系統下git的安裝與配置

二、OpenWrt下載和環境搭建

必要庫的安裝

OpenWrt原始碼下載與配置

 


一、基礎開發環境搭建

本篇部落格以及之後所有關於OpenWrt的部落格全部基於WIN10的Linux子系統開發環境,由於子系統預設安裝在C盤而且我目前並不清楚如何更改安裝路徑,還有OpenWrt在第一次成功編譯openwrt/路徑會佔用10GB以上的硬碟空間,所以如果C盤剩餘空間太小的話非常不推薦通過子系統的方式來學習和開發OpenWrt。

    WIN10下的Linux(WLS)子系統安裝

Windows10版本號1809的Liunx子系統的安裝流程已經可以在Microsoft Store上直接下載安裝了,比之前方便了很多。

不過還是得配置一些東西。

首先,在WIN10設定介面找到並進入和安全選項,在開發者選項中選中開發人員模式。

 

然後,在小娜Cortana處搜尋控制面板並進入,點選控制面板的程式和功能選項,在彈出的對話方塊左側選擇啟動或關閉Windows功能,勾選適用於Liunx的Windosw子系統。

 

接下來,開啟Microsoft Store直接在搜尋框內搜尋Liunx,在彈出來的畫面中點選“獲取這些應用”。

 

可以看到,現在的WIN10已經可以支援5種不同的Linux發行版,在這裡我們選擇Ubuntu。因為我之前已經安裝過了,具體的安裝過程就不貼出來的,其實在Microsoft Store中已經可以自動安裝了。

 

     Linux(WLS)子系統配置

由於子系統預設不帶圖形介面,所以進入子系統後只有一個終端介面。

第一次進入子系統需要配置Ubuntu的普通使用者賬號和密碼,這個和其他liunx是一樣的就不贅述了。

配置好之後正式進入系統,需要更新一下軟體源和包:sudo apt-get update、sudo apt-get upgrade

 

WLS子系統有個很明顯的缺點,就是命令列介面的配色極其辣眼睛,雖然可以通過右鍵對話方塊來簡單的修改,但是效果還是很差,還請大佬們指點指點。不過我們可以設定一下vim的配色。

在普通使用者的家目錄下新建一個.vimrc檔案:vim .vimrc

[email protected]:~$ vim .vimrc

然後輸入下面的內容,配置一些vim的功能屬性和配色

" 設定字元編碼                                                                                                        set fileencoding=utf-8
set fileencodings=utf-8,gb2312,gb18030,latin1
set termencoding=utf-8
set encoding=utf-8

" 語法高亮
syntax on
" 深色背景
color industry
" 檢測檔案型別
filetype on
" 根據檔案型別載入對應的外掛
filetype plugin on

" 顯示行號
set number
" 高亮顯示當前行
set cursorline

" 一個tab鍵所佔的列數,linux 核心程式碼建議每個tab佔用8列
set tabstop=4
" 敲入tab鍵時實際佔有的列數。
set softtabstop=4
" shiftwidth用於設定Tab鍵寬度
set shiftwidth=4
" expandtab用於將Tab轉化為空格
set expandtab
" 設定回車後自動縮排
set autoindent
set smartindent
set cindent

最終的效果圖如下圖所示,配色方案的話有幾個官方預設的可以修改,也可以自定義配色。

 

子系統在WIN10下的路徑如下:

C:\Users\使用者名稱\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc\LocalState\rootfs

你可以直接往裡面丟檔案,不過丟進去的檔案和資料夾所有權為root賬戶,必要的檔案一定要做好使用者所有權統一,以免出現不必要的麻煩。

 

     子系統下git的安裝與配置

之所以需要用git,是因為目前最新的openwrt原始碼下載方式只有github,原來的svn已經用不了了(至少我用不了)。

具體的安裝和配置SSH公鑰的過程可以參考這篇部落格:Linux下git的安裝與使用

重要的事情說三遍,建立SSH公鑰的時候一定不要使用sudo、一定不要使用sudo、一定不要使用sudo

如果 ssh-keygen -t rsa -C "你github上面的郵箱地址"這個命令無法建立公鑰,原因之一可能是當前使用者沒有拿到使用者家目錄所有許可權,解決辦法就是用root使用者把普通使用者的家目錄的所屬使用者和使用者組全部修改成普通使用者所屬。具體操作就不贅述了,大家可以自行查閱資料。

二、OpenWrt下載和環境搭建

     必要庫的安裝

OK,扯了這麼久終於進入正題了,想要正常執行openwrt需要安裝一堆執行環境和軟體包,輸入下列命令並及時驗證是否安裝成功。

sudo apt-get install g++
sudo apt-get install libncurses5-dev
sudo apt-get install zlib1g-dev
sudo apt-get install bison
sudo apt-get install flex
sudo apt-get install unzip
sudo apt-get install autoconf
sudo apt-get install gawk
sudo apt-get install make
sudo apt-get install gettext
sudo apt-get install gcc
sudo apt-get install binutils
sudo apt-get install patch
sudo apt-get install bzip2
sudo apt-get install libz-dev
sudo apt-get install asciidoc
sudo apt-get install subversion
sudo apt-get install sphinxsearch
sudo apt-get install libtool
sudo apt-get install sphinx-common
sudo apt-get install libssl-dev
sudo apt-get install libssl0.9.8
sudo apt-get install build-essential
sudo apt-get install mercurial

 

     OpenWrt原始碼下載與配置

OpenWrt所有版本的程式碼都放在github上,各版本的下載地址可以到官網檢視https://dev.openwrt.org/wiki/GetSource

我選擇的是trunk版,即在家目錄下輸入:git clone https://github.com/openwrt/openwrt

下載完成後,進入~/openwrt/,更新和安裝feeds擴充套件。

注:如果不是剛下載的原始碼,為保持程式碼的最新版本,要定期執行git pull命令更新原始碼。

./scripts/feeds update -a
./scripts/feeds install -a

 

執行下面的命令,編譯環境中可能缺失的軟體包:

#兩個命令選一個就好,貌似都執行的話編譯會出錯,不知道為啥
make prereq
make defconfig

 

然後執行make menuconfig命令,就可以進入OpenWrt的配置介面了:

 

至此,openwrt的基礎開發環境就已經全部搭建完成。