1. 程式人生 > >Centos6下編譯lede

Centos6下編譯lede

根據 git 特殊字符 免編譯 編譯失敗 pan defcon strong 安裝

準備工作

1. 安裝依賴軟件

這是官方文檔提供的依賴列表

yum install subversion binutils bzip2 gcc gcc-c++ gawk gettext flex ncurses-devel zlib-devel zlib-static make patch unzip perl-ExtUtils-MakeMaker glibc glibc-devel glibc-static quilt ncurses-libs sed sdcc intltool sharutils bison wget git-core openssl-devel xz

除此以外, 建議加上 glib2-devel

2. 編譯升級gcc

Centos6自帶的gcc版本只到4.4.7, 不支持c++11, 必須升級. 參考 這篇文章 升級到gcc 6.4.0

3. 導出最新源碼

例如在home下的用戶目錄下, 新建一個lede目錄, 然後在此目錄下執行, 然後將source目錄更名為 source_master

git clone https://git.lede-project.org/source.git

註意: 編譯將在此目錄下執行, 根據官方文檔的要求, 路徑中要避免出現空格等特殊字符, 以免編譯失敗

配置工作

1. 當git代碼庫有更新時, 更新源碼

git pull

2. 更新組件源

# 更新組件源
.
/scripts/feeds update -a # 安裝所有組件, 安裝後, 在make menuconfig中才可以選擇 ./scripts/feeds install -a # 安裝指定組件 ./scripts/feeds install <PACKAGENAME>

3. 設置編譯目標設備以及包含的組件, 主要是兩個命令

# 重置默認的設備和組件
make defconfig
# 進入配置界面
make menuconfig

使用make menuconfig時, 需要註意的

  • 常用的mt7620/7621芯片所屬的target位於 Target System -> MediaTek Ralink MIPS
  • 設置之後, 除了save到.config_[device name]以外, 還需要設置到.config, 否則編譯時因為.config沒變, 你的設置不會生效

a

開始編譯

1. 執行編譯命令行

make -j2 V=s TARGET_DEVICES=hc5761
# -j2 表示用2核, 根據當前機器配置而定
# V=s 表示顯示詳細輸出

2. 如果需要後臺進行, 使用

nohup make -j2 V=s TARGET_DEVICES=hc5761 > ~/lede/logs/20171011.log 2>&1 &

常見問題

1. 編譯時因網絡問題下載失敗

自行下載文件後放到dl目錄下

2. 編譯transmission時出現 config.status: error: cannot find input file: `po/Makefile.in.in‘ 錯誤

這是因為沒安裝glib2-devel

Centos6下編譯lede