2015年8月28日 星期五

Subversion (SVN) 1.8.10 版本不兼容,錯誤編譯 OpenWrt Attitude Adjustment 程式

Subversion (SVN) 1.8.10 版本不兼容,錯誤編譯 OpenWrt Attitude Adjustment 程式: 

筆者複製了舊電腦的 Attitude Adjustment 12.09 final20130425 SVNr36088 / r37742)在新電腦上,本來應該是沒有問題,但是都不能順利編譯固件(Firmware),尋找了很多方法,包括下載不同版本的 Attitude Adjustment,都是徒然!經過一個星期的測試和理解,才發現是 SVNSubversion) 的版本問題!

Subversion (SVN) 版本控制系統
Subversion (SVN)是一個開放原始碼的版本控制系統,使用 SVN 能提供多人共有資料的一致性,以及版本控管,適用於文件檔案或是程式碼檔案,許多方面與 CVS 十分類似。SVN 是一個檔案伺服器,使用上很類似 FTP 檔案傳輸軟體,採用了分支管理系統,是一種主從式(Client/Server)的架構,基本操作包括工作區(workspace)、取出(check out)檔案、存入/送交(check in/commit)檔案、更新(update)、衝突與合併(conflict and merge)。

Subversion (SVN) 分支管理系統
筆者在新電腦編譯不成功是因為舊電腦的 SVN 是使用 1.6.17 版本,而新電腦的 SVN 已經升級到 1.8.10 版本,Subversion 現在已經是 Apache 基金會下的軟件了,但是官網的源碼包裡最低的版本是 1.7 的,而 SVN 1.8 版本與 1.6 版本是無法兼容Incompatibility,所以舊的 Attitude Adjustment 12.09 final20130425 SVNr36088 / r37742)在新電腦上譯便失敗,如果繼續想使用舊的 Attitude Adjustment 12.09 final20130425 SVNr36088 / r37742),便需要在新電腦上安裝 SVN 1.6.17 版本。

Subversion SVN 1.6.17 版本
Subversion SVN 1.8.10 版本
步驟 1首先將新電腦內的版本移除。
# svn --version
# apt-get remove subversion
# apt-get autoremove subversion

移除SVN 1.8.17 amd64 版本
步驟 2從新安裝 SVN 1.6.17 amd64 版本,由於 SVN 1.6.17是版本,需要下載 deb 來安裝。
# dpkg -i libsvn1_1.6.17dfsg-4+deb7u10_amd64.deb

安裝 SVN 1.6.17 amd64 版本
步驟 3安裝 SVN 1.6.17 版本使用 SVN --version 本測試是否要安裝其它程式。
下載網址:https://packages.debian.org/wheezy/amd64/libsvn1/download
# svn --version
# dpkg -i subversion_1.6.17dfsg-4+deb7u10_amd64.deb
# dpkg -i libapr1_1.4.6-3+deb7u1_amd64.deb
# dpkg -i libaprutil1_1.4.1-3_amd64.deb
# dpkg -i libdb5.1_5.1.29-5_amd64.deb
# dpkg -i libgcrypt11_1.5.0-5+deb7u3_amd64.deb
# dpkg -i libgnutls26_2.12.20-8+deb7u3_amd64.deb
# dpkg -i libneon27-gnutls_0.29.6-3_amd64.deb
# dpkg -i libsvn1_1.6.17dfsg-4+deb7u10_amd64.deb
# dpkg -i libtasn1-3_2.13-2+deb7u2_amd64.deb

步驟4安裝完成 SVN 1.6.17 版本確認版本便可以使用。
完成 SVN 1.6.17 版本安裝
Subversion (SVN) 常用指令
#svn co svn://svn.openwrt.org/openwrt/trunk/  //Checkout將資料下載
#svn up  //將目前資訊更新成SVN線上最新版本
#svn diff  //自動以現在檔案跟 SVN 內最新版做 diff
#svn log -l 10  //顯示最新10Log
#svn st  //看目前檔案結構 SVN 線上的版本有哪些不同
#svn add filename svn add directory //將此檔案/目錄新增 svn
#svn ci -m "fix message" //Commit將目前所做的修改commit svn

Subversion (SVN) 測試結果
OpenWrt Branch
Last Updated
Revision
1.6.17
1.8.10
Chaos Calmer




Barrier Breaker
20150728
46516
46738
OK

Attitude Adjustment
20130807
37729
37742
OK

Backfire




 
Subversion (SVN) 功能介紹:
英文
中文
說明
check out
取出
從檔案庫中取出檔案。
commit/check in
存入
將檔案從本地端存入檔案庫。
export
匯出
把整個模組從檔案庫中取出來,取出來的檔案不包含版本控制系統的管理檔案,也就是匯出的模組將不再由 版本控制系統控管。
import
匯入
把整個目錄結構匯入檔案庫。當你要把一個新的專案放進檔案庫進行版本控管時,就需要執行這個動作。
local copy
本地複本
放在用戶端機器的工作目錄中的專案複本。
master copy
主拷貝
放在檔案庫裡的專案複本。
module
模組
一個目錄階層,通常一個專案就是一個模組。
release
發行版本
軟體產品的一個版本。為了區別產品的版本以及個別檔案的修訂版次,因此不使用 version,而用 release
repository
檔案庫
存放所有檔案(包含歷史版本)的地方,用戶端執行 check out 時就是從這裡取出檔案。
revision number
修訂版次
一個檔案的修改版本,例如:1.11.3.2.2
tag
標記
在開發過程的某個時間點上,為一組檔案提供的符號名稱。透過 tag 一群檔案,你可以很容易在某個 release 裡面找出這些檔案。
update
更新
從檔案庫中取得其他人修改的檔案,以更新本機的副本(local copy)。
workspace/
working directory
工作區/工作目錄
本機的工作目錄,又稱為沙盒(sandbox)。

參考網址:
※ Apache Subversion 1.8 Release Notes

相關網址:
※ 在 Linux Debian 8.1 系統安裝及編譯 OpenWrt Trunk 程式
※ 在 Linux Debian 8.1 系統編譯 OpenWrt Trunk 8MB 固件程式
※ 如何將 OperWrt 8MB 固件程式寫入 8MB 閃存(Flash Memory)

※ 在 Linux Debian 8.1 系統安裝及編譯 OpenWrt Attitude Adjustment 程式
※ Subversion (SVN) 1.8.10 版本不兼容,錯誤編譯 OpenWrt Attitude Adjustment 程式

相關網址:
※ 微星(MSI)GS60 2QD Ghost 龍魂電競筆電(Gaming Notebook)- Debian(八)
※ 測試 Debian 8.1 Linux 系統的網絡功能設置
※ 修改 Debian 8.1 Linux 系統的 GRUB 和 80×25 文字解像度

※ 安裝 OpenSSH 在 Debian 8.1 Linux 系統
※ 在 Debian 8.1 Linux 系統讀寫 USB 手指

2015 年 8月 28日 天氣報告
氣溫:26.9@ 21:40
相對濕度:百分之 81%
天氣:微雨

2015年8月27日 星期四

在 Linux Debian 8.1 系統安裝及編譯 OpenWrt Attitude Adjustment 程式:

Linux Debian 8.1 系統安裝及編譯 OpenWrt Attitude Adjustment 程式 

TP-Link TL-WR703N 路由器使用了 Chaos Calmer 15.05 RC320150816 SVNr46572)   8MB 固件,發現程式大,還有很多問題,如這版本是預設 HTTPS SSL,雖然這是加強了路由器的安全性能,但筆者反為感覺以前的版本比較方便,OpenWrt 版本的 Attitude Adjustment 12.09 final20130425 SVNr36088 / r37742),所以決定再次使用舊版本來作 DIY

Make menuconfig Error 錯誤
步驟 1首先將 PC 電腦內的整個版本壓縮和合併為一個檔案,方便 Copy 到新電腦上。
# tar zcvf aa_37742.tar.gz ./trunk/.  <<壓縮檔案

步驟 2使用 WinSCP Copy 到移動硬碟上,作為備份和中介點,再將程式 Copy 到新電腦上。
WinSCP Copy 到移動硬碟上
步驟 3解壓檔案。
# tar zxvf aa_37742.tar.gz  <<解縮檔案

步驟 4Copy 到其他 Directory
# cp –avr ./aa_37742/ /home/alpha/  <<複製檔案

步驟 5Make menuconfig
$make clean   <<刪除目錄bin build_dir
$ make dirclean   <<刪除目錄包含 /staging_dir /toolchain
$ make menuconfig   <<整體設定
$ make V=99 -j 3   <<多核心編譯

理論上 Attitude Adjustment 的程式並沒有更改,應該是會順利編譯,但發現在 make menuconfig 後,已見 ERROR 出現!
 
Attitude Adjustment 的程式 ERROR 出現
下載官網源碼:
 OpenWrt 主要源碼選擇:(-r 版本號可獲取指定版本源碼)
SVN checkout 方式: 
1    svn co svn://svn.openwrt.org/openwrt/trunk  
2    svn co svn://svn.openwrt.org/openwrt/branches/barrier_breaker barrier_breaker 
3    svn co svn://svn.openwrt.org/openwrt/branches/attitude_adjustment attitude_adjustment 
4    svn co -r 37742 svn://svn.openwrt.org/openwrt/branches/attitude_adjustment aa_r37742  
5    svn co svn://svn.openwrt.org.cn/openwrt/branches/backfire
backfire

GIT 方式: 
1    git clone git://git.openwrt.org/openwrt.git  
2    git clone git://git.openwrt.org/14.07/openwrt.git  
3    git clone git://git.openwrt.org/12.09/openwrt.git 
4   git clone git://git.openwrt.org/10.03/openwrt.git 
5   http://git.openwrt.org/
 
相關網址:
※ 在 Linux Debian 8.1 系統安裝及編譯 OpenWrt Trunk 程式
※ 在 Linux Debian 8.1 系統編譯 OpenWrt Trunk 8MB 固件程式
※ 如何將 OperWrt 8MB 固件程式寫入 8MB 閃存(Flash Memory)

※ 在 Linux Debian 8.1 系統安裝及編譯 OpenWrt Attitude Adjustment 程式
※ Subversion (SVN) 1.8.10 版本不兼容,錯誤編譯 OpenWrt Attitude Adjustment 程式

相關網址:
※ 微星(MSI)GS60 2QD Ghost 龍魂電競筆電(Gaming Notebook)- Debian(八)
※ 測試 Debian 8.1 Linux 系統的網絡功能設置
※ 修改 Debian 8.1 Linux 系統的 GRUB 和 80×25 文字解像度

※ 安裝 OpenSSH 在 Debian 8.1 Linux 系統
※ 在 Debian 8.1 Linux 系統讀寫 USB 手指

2015 年 8月 27日 天氣報告
氣溫:26.9@ 20:30
相對濕度:百分之 77%
天氣:微雨