#12 2010-04-26 20:08:37
Re: [Tomato USB] v1.27.8745 ND vpn3.6 編譯測試
Aven 提到:
參考 twtomato 及 hippo 兄編譯流程
昨晚熬夜編譯的成果...我的 RT-N16 已經可以吃中文化番茄了。
蕃茄(Tomato)韌體版本1.27.0000 K26 USB VPN 中文化韌體
https://digiland.tw/uploads/2_tomato_12 … hinese.gif
请问大大,这个蕃茄(Tomato)韌體版本1.27.0000 K26 USB VPN 中文化韌體
那里能下?
離線
#14 2010-04-26 23:45:26
Re: [Tomato USB] v1.27.8745 ND vpn3.6 編譯測試
hippo 提到:
再次謝謝站長驗證流程, 也恭喜站長編譯成功. 不知站長是使用tar或git下載? 若使用git方式, 是否有顯示次版本? 也就是1.27.xxxx中的xxxx.
CQY 提到:
请问大大,这个蕃茄(Tomato)韌體版本1.27.0000 K26 USB VPN 中文化韌體
那里能下?中文化這件事, 會牽涉一些版權問題. 建議自己動手編譯.
我也是抓tar檔下來編譯的,無顯示次版本。
關於版權問題,我再跟 twtomato 詢問一下,希望還是透過既有的下載平台讓大家可以下載使用。
技術問題請於論壇上集眾人之力公開討論,感恩
離線
#15 2010-05-30 22:29:45
Re: [Tomato USB] v1.27.8745 ND vpn3.6 編譯測試
之前使用Git下載原始檔不順遂, 最近才好些. 補上git下載方式.
泰迪熊分別有tomato-ND-USBmod, tomato-RT二個程式庫, 分屬核心2.4, 2.6, 可分別建立二個目錄, 區分原始碼來源. 以下使用tomato-ND-USBmod舉例.
1. 安裝git相關套件後, 下載原始碼. 指定建立tomato-ND-USBmod目錄.
$ git clone git://repo.or.cz/tomato.git tomato-ND-USBmod
Initialized empty Git repository in /home/hippo/Source/Tomato/TeddyBear/tomato-ND-USBmod/.git/
remote: Counting objects: 118773, done.
remote: Compressing objects: 100% (64631/64631), done.
remote: Total 118773 (delta 50094), reused 118773 (delta 50094)
Receiving objects: 100% (118773/118773), 389.83 MiB | 81 KiB/s, done.
Resolving deltas: 100% (50094/50094), done.
warning: remote HEAD refers to nonexistent ref, unable to checkout.
2. 檢視分支
$ cd tomato-ND-USBmod
$ git branch -r
origin/Tomato-1.27-Toastman-RT
origin/ipmac-limit
origin/linksys
origin/lzo
origin/minidlna
origin/ntfs-3g
origin/openssl-AES
origin/openvpn
origin/p910nd
origin/tomato
origin/tomato-1.25-ND-RAF
origin/tomato-1.25-ND-Toastman
origin/tomato-1.25-RAF
origin/tomato-1.27-ND-Toastman
origin/tomato-1.27-RAF
origin/tomato-1.27-Toastman-RT
origin/tomato-FS-patches
origin/tomato-K26-USB-patches
origin/tomato-K26-WL
origin/tomato-K26-kernel
origin/tomato-K26-toolchain-upd
origin/tomato-K26-usbmod-base
origin/tomato-ND
origin/tomato-ND-USBmod
origin/tomato-ND-USBmod-VPN
origin/tomato-ND-WL-4.150.10.29
origin/tomato-ND-WL-4.150.10.5
origin/tomato-ND-WL-4.158.4.0
origin/tomato-ND-fixes
origin/tomato-ND-kernel-patches
origin/tomato-ND-kernel-update
origin/tomato-ND-speedmod
origin/tomato-ND-usbmod-base
origin/tomato-ND-usbmod-mix
origin/tomato-ND-usbmod-mixvpn
origin/tomato-ND-usbmod-vpn
origin/tomato-RAF
origin/tomato-RAF-USB
origin/tomato-RT
origin/tomato-USB-patches
origin/tomato-bb-e2fsprogs
origin/tomato-fixes
origin/tomato-httpd-cgi
origin/tomato-jffs1
origin/tomato-miniupnpd
origin/tomato-misc
origin/tomato-miscset
origin/tomato-ray123
origin/tomato-sdhc
origin/tomato-slodki
origin/tomatovpn
origin/tomatovpn-ND
origin/vpngui
origin/vsftpd
3. 下載tomato-ND-USBmod分支原始碼
$ git checkout -b tomato-ND-USBmod origin/tomato-ND-USBmod
warning: You appear to be on a branch yet to be born.
warning: Forcing checkout of origin/tomato-ND-USBmod.
Checking out files: 100% (27692/27692), done.
Branch tomato-ND-USBmod set up to track remote branch refs/remotes/origin/tomato-ND-USBmod.
Switched to a new branch 'tomato-ND-USBmod'
4. 檢查
$ ls
COPYING make_all.sh make.sh README.TXT release toolchain tools
好了, 有原始碼了. 我保持這個目錄內容不動, 若要編譯, 則將內容複製到別處, 中文化後, 再編譯.
5. 日後更新檢查
$ git pull
remote: Counting objects: 36, done.
remote: Compressing objects: 100% (16/16), done.
remote: Total 17 (delta 11), reused 3 (delta 0)
Unpacking objects: 100% (17/17), done.
From git://repo.or.cz/tomato
094c2e3..7bfc102 tomato-ND-USBmod -> origin/tomato-ND-USBmod
+ 388037b...8bd1c7b tomato-RT -> origin/tomato-RT (forced update)
Updating 094c2e3..7bfc102
Fast forward
.../busybox/util-linux/volume_id/volume_id.c | 26 +++++--------------
1 files changed, 7 insertions(+), 19 deletions(-)
版本顯示與svn不同, 不是全數字.
這是我目前對git的認識而採行的方法, 所以分存二個目錄, 但實際占用較多硬碟空間. 如果有更好方法能改善, 請指教.
離線
#16 2010-07-28 11:07:05
Re: [Tomato USB] v1.27.8745 ND vpn3.6 編譯測試
泰迪熊或站長釋出的韌體, 若無法塞入flash memory, 例如: WRT54G, WHR-HP-G54等. 又或者需要更大的JFFS空間, 只得自己編譯.
相同功能的中文化韌體會比英文版韌體大一些. K26韌體也大於K24.
# make help
a A build (standard)
b B build (standard minus SSH)
c C build (standard minus CIFS)
d D build (standard minus Samba server)
m M build (standard plus extra utilities and NTFS support)
e E build (standard plus VPN, extra utilities and NTFS support)
s S build (no USB support)
f F build (no USB support minus JFFS and CIFS)
v V build (VPN with no USB support)
r2m MIPS Release 2 M build (standard plus extras)
r2e MIPS Release 2 E build (standard plus VPN and extras)
r2v MIPS Release 2 V build (VPN with no USB support)
r2s MIPS Release 2 S build (no USB support)
...
MIPS R1(K24/K26) 有九種選擇; MIPS R2(K26) 可有十三種選擇?
例如, 泰迪熊釋出的tomato-K26-1.28.9048MIPSR2-beta18-Mini.rar, 應屬於F build, 檔名: xxx-Mini.trx(無MIPS R2機器, 無法驗證). 若使用K24 tomato-ND-USBmod編譯F build, 約2.6M.
所以, 先知道機器是否有USB, 是否需要USB, 再決定核心使用K24(tomato-ND-USBmod)或K26(tomato-RT), 再依需要的功能, 選擇不同的編譯參數作編譯. 依需要自行編譯後的韌體, 才有機會塞入flash memory.
離線
#17 2010-09-07 00:56:20
Re: [Tomato USB] v1.27.8745 ND vpn3.6 編譯測試
以下的script是直接由tomato.git下載原始碼壓縮檔, 中文化, 編譯.
編譯環境的建立, 可參考twtomato的Tomato_WebGUI_Script081219.rar檔案內說明.
因原始碼壓縮檔約130MB, 使用aria2, 可多線下載. 若時常自行編譯韌體, 建議使用git方式.
解壓縮後, 參閱CHANGELOG, VERSION等說明.
因中文翻譯檔由twtomato經svn取得, 所以要自行安裝svn套件. 請參考這篇. 當然, 若不喜歡翻譯內容, 也可以自行修改.
指定/opt/brcm連結Toolchain, 需要root權限. 可先建立連結, 再由使用者執行script. 或直接由root執行.
編譯參數含版本號碼與韌體種類. 版本號碼有V1, V2, VPN; 韌體種類有a, b, c...r2m, r2e... 參考這篇. 例如: tomato-K26USB-1.28.9050MIPSR2-beta20-vpn3.6.trx, 則編譯參數為V1=9050 V2=-beta20 VPN=vpn3.6 r2e. 一次編譯流程, 可同時產生不同種類韌體.
#!/bin/sh
echo "============================================="
echo "[1] 泰迪熊(K24) tomato-ND-USBmod"
echo "[2] 泰迪熊(K26) tomato-RT"
echo "[3] 土司超人(K24) tomato-1.28-Toastman-K24"
echo "[4] 土司超人(K26) tomato-1.28-Toastman-RT"
echo "============================================="
read -p "選擇衍生版本: " Choice
case $Choice in
1)
Branch=tomato-ND-USBmod
;;
2)
Branch=tomato-RT
;;
3)
Branch=tomato-1.28-Toastman-K24
;;
4)
Branch=tomato-1.28-Toastman-RT
;;
*)
echo "選擇錯誤!"
exit 1
;;
esac
read -p "下載原始碼(Y/n)? " Choice
if [ "$Choice" = "Y" ]; then
Source=http://repo.or.cz/w/tomato.git/snapshot/$Branch.tar.gz
if [ -x /usr/bin/aria2c ]; then
aria2c $Source
else
wget -c $Source
fi
fi
read -p "解壓縮原始碼(Y/n)? " Choice
if [ "$Choice" = "Y" ]; then
[ -d tomato ] && rm -fr tomato/*
[ -f $Branch.tar.gz ] && tar -xzvf $Branch.tar.gz
fi
doTranslate() {
Folder=$LangFolder/$Name/$Lang
if [ -d $Folder ]; then
for File in `ls en_US/*.asp`; do
sed -f $Folder/webui.sed $File > $Lang/$(basename $File)
done
for File in `ls en_US/*.js`; do
sed -f $Folder/javascript.sed $File > $Lang/$(basename $File)
done
fi
}
read -p "中文化(Y/n)? " Choice
if [ "$Choice" = "Y" ]; then
Lang=zh_TW
LangUrl=http://twtomato.googlecode.com/svn/trunk/digiland_tw
LangFolder=twtomato-digiland_tw
if [ -x /usr/bin/svn ]; then
if [ -d $LangFolder/.svn ]; then
cd $LangFolder
svn up
cd -
else
svn co $LangUrl $LangFolder
fi
else
for Name in Tomato TeddyBear Toastman; do
Folder=$LangFolder/$Name/$Lang
[ -d $Folder ] || mkdir -p $Folder
for File in webui.sed javascript.sed; do
wget -c -P $Folder $LangUrl/$Name/$Lang/$File
done
done
wget -c -P $LangFolder/Tomato/$Lang $LangUrl/Tomato/$Lang/svg.sed
fi
if [ -d en_US ]; then
rm -f en_US/*
else
mkdir en_US
fi
if [ -d $Lang ]; then
rm -f $Lang/*
else
mkdir $Lang
fi
WWW=tomato/release/src/router/www
mv $WWW/*.asp en_US
mv $WWW/*.js en_US
mv $WWW/*.jsx en_US
mv $WWW/*.svg en_US
Name=Tomato
doTranslate
Folder=$LangFolder/$Name/$Lang
if [ -d $Folder ]; then
sed -f $Folder/javascript.sed en_US/status-data.jsx > $Lang/status-data.jsx
for File in `ls en_US/*.svg`; do
sed -f $Folder/svg.sed $File > $Lang/$(basename $File)
done
fi
case $Branch in
tomato-ND-USBmod | tomato-RT)
mv -f $Lang/*.asp en_US
mv -f $Lang/*.js en_US
Name=TeddyBear
doTranslate
echo "泰迪熊中文化完成!"
;;
tomato-1.28-Toastman-K24 | tomato-1.28-Toastman-RT)
for Name in TeddyBear Toastman; do
mv -f $Lang/*.asp en_US
mv -f $Lang/*.js en_US
doTranslate
done
echo "土司超人中文化完成!"
;;
esac
mv $Lang/* $WWW
fi
read -p "編譯(Y/n)? " Choice
if [ "$Choice" = "Y" ]; then
ln -sf $(pwd)/tomato/tools/brcm /opt/brcm
PATH=/opt/brcm/hndtools-mipsel-linux/bin:/opt/brcm/hndtools-mipsel-uclibc/bin:$PATH
case $Branch in
tomato-ND-USBmod | tomato-1.28-Toastman-K24)
cd tomato/release/src
;;
tomato-RT | tomato-1.28-Toastman-RT)
cd tomato/release/src-rt
;;
esac
make help
read -p "輸入編譯參數: " Parameter
make $Parameter
ls -l image
cd -
fi
下載tomato.sh後, 變更為可執行.
若理解整個流程之後, 建議自行修改, 來符合自己的需求.
修改:
1. 變更土司超人來源檔案.
2. 可用wget下載.
tomato.git已不提供snapshot, 所以無法直接下載原始碼. 請用git.
最後修改: hippo (2011-02-26 01:13:52)
附件:
tomato.sh, 大小: 3,282 bytes, 下載: 16
離線
#19 2010-09-19 21:41:48
Re: [Tomato USB] v1.27.8745 ND vpn3.6 編譯測試
站長謬讚了, 我只不過是把手橄麵變快餐罷了, 沒啥技巧可言.
因原先上傳的tomato.sh不能刪除, 而且土司超人的heads也時常變更合併, 所以就直接修改code內容, 提供參考. 理解流程之後, 就可自己修改tomato.sh. 目錄架構也一併在這篇修改說明.
近日發現中文sed檔, 除了使用svn下載, 也可直接下載. 例如:
$ wget http://twtomato.googlecode.com/svn/trunk/digiland_tw/Tomato/zh_TW/webui.sed
如此一來, Linux端就未必要安裝svn套件. 同樣的, 再自行修改tomato.sh內容.
泰迪熊版本是中文化後無法編譯, 還是英文原始碼就無法編譯? 原始碼是git下載, 還是snapshot下載?
K24版本, 我維持用Mandriva編譯; K26版本, 我得在Mandriva chroot到Debian, 才能編譯成功.
若在已編譯過的目錄內重新編譯, 可先make clean, 再執行編譯.
離線
相關討論主題
主題 | 回覆 | 點閱 | 最後發表 |
---|---|---|---|
置頂 |
33 | 85113 | 2024-10-23 08:28:27 作者 huiduo |
置頂 |
1625 | 3031552 | 2024-04-28 12:35:05 作者 s87311 |
|
155 | 348120 | 2022-12-08 17:08:17 作者 dir868l |
置頂 |
54 | 207368 | 2022-09-15 12:25:01 作者 chiachu |
|
222 | 502758 | 2022-09-14 14:54:52 作者 chiachu |