#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
 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, 再執行編譯.
離線
相關討論主題
| 主題 | 回覆 | 點閱 | 最後發表 | 
|---|---|---|---|
|  置頂 | 34 | 108167 | 2025-04-24 12:16:30 作者 joeng81 | 
|  置頂 | 1630 | 3453967 | 2025-04-24 10:21:35 作者 joeng81 | 
|  | 450 | 1188970 | 2025-04-24 06:56:14 作者 joeng81 | 
|  | 155 | 409084 | 2022-12-08 17:08:17 作者 dir868l | 
|  置頂 | 54 | 232946 | 2022-09-15 12:25:01 作者 chiachu | 













