一半君的总结纸

听话只听一半君

tomato shibby and advancedTomato v140 中文版 on travis ci

之前把shadowsocks-libev的build放到travis上了,现在试试tomato,这样做的目的是,当lz对翻译的repo稍作修改时,可以自动更新所有这些build

  1. 首先去github上新建tomato-ci-jekyll repo用于存放自动推送的.trx固件文件
  2. 然后clone一下lz曾经试过的 so-simple模板
    git clone https://github.com/mmistakes/so-simple-theme.git tomato-ci-jekyll
    

    编辑.git/config,这是为了能把他push到上面新建的repo里,因为lz之前在搞ss的时候已经fork过这个repo了

    [remote "origin"]
    	url = git@github.com-oglopss:oglopss/tomato-ci-jekyll.git
    
    git push -u origin master
    git branch -m master gh-pages         # Rename branch locally    
    
    git push --set-upstream origin gh-pages   # Push the new branch, set local branch to track the new remote
    
    # github settings里改default branch为gh-pages
    git push origin :master                 # Delete the old branch
    
  3. 修改模板,添加相应信息, 可以在本地运行jekyll测试一下,lz遇到了一些错误,只好暂时禁用了jekyll-feed
    yum install ruby ruby-devel rubygems nodejs libyaml
    
    gem install jekyll bundler
    # 或者直接进目录运行 bundle update 即可,因为有Gemfile
    
    # 如果运气好,这样就有了, 默认在localhost:4000
    bundle exec jekyll serve --watch
    
  4. 新建 tomato-ci repo
    修改.travis.yml,travis.sh等文件

错误们

  • 测试某些build时,编译nano时出现
    specified for parameter 'swab'
    /home/travis/tomato/tools/brcm/K26/hndtools-mipsel-uclibc-4.2.4/bin/../lib/gcc/mipsel-linux-uclibc/4.2.4/../../../../mipsel-linux-uclibc/sys-include/unistd.h:1106: error: storage class specified for parameter 'ctermid'
    In file included from browser.c:28:
    ../lib/unistd.h:1183: error: storage class specified for parameter '_gl_cxxalias_dummy'
    ../lib/unistd.h:1183: error: redefinition of parameter '_gl_cxxalias_dummy'
    ../lib/string.h:1007: error: previous definition of '_gl_cxxalias_dummy' was here
    ../lib/unistd.h:1185: error: storage class specified for parameter '_gl_cxxalias_dummy'
    ../lib/unistd.h:1185: error: redefinition of parameter '_gl_cxxalias_dummy'
    ../lib/unistd.h:1183: error: previous definition of '_gl_cxxalias_dummy' was here
    browser.c:30: error: old-style parameter declarations in prototyped function definition
    /usr/include/ncursesw/curses.h:267: error: parameter name omitted
    browser.c:30: error: expected '{' at end of input
    make[7]: *** [browser.o] Error 1
    make[7]: Leaving directory `/home/travis/tomato/release/src/router/nano/src'
    

    lz使用了个脑残法,事先把ncursesw的include文件给删了

    sudo rm -rf /usr/include/ncursesw
    
  • The log length has exceeded the limit of 4 MB (this usually means that the test suite is raising the same exception over and over).
    
    The job has been terminated
    

    所以lz干脆把log输出给隐藏了,测试时候再打开

    make V1=RT-N5x-CN- V2=-140 $TT_BUILD >/dev/null &
    
Notes
    • 不知道为何,mysql编译过程中总是发生configure -recheck, 虽然Makefile里已经touch过stamp文件了,在本机编译时没有发生,所以lz有修改configure.in的一些地方,放在了travis branch里
    • 有些build会产生多个.chk或者.bin文件,lz把他们压缩了下,放进了tomato-.tar.gz里
    • hg320编译参数对应lz自定义的max版固件, hg320用, hg32064k是 64k nvram版,所谓自定义,其实就是比AIO略小,比MAX大,打开了USB支持,而且尽可能多的加入模块的一个自选模块的版本,具体哪些模块详见Makefile, 或者参考这里

lz只做了mips版本的汉化,如果是arm版本,感觉还需要像lz这样手动merge一遍,因为他们不在同一个repo里而且www文件夹不一定完全一样,lz没有去比较,因为lz没有arm的路由器,所以没搞,对于advancedTomato-arm也是一样,首先要去看看arm的www是不是和mips的一样,如果基本一样就好办多了,万一不一样,就要费些体力手动merge了

update 09/12/2017:
lz增加了 K26RT-AC 的固件,包含shibby主页里提到的 RT-N66U, RT-AC66U, R6300v1 and Tenda W1800R, 还有其他几个Makefile里有的,但是没提到的,如wndr4500

此外,lz看了下tomato-arm的www文件夹,基本和mipsel的一致,只有少数几个文件不同,这意味着可以很容易的得到arm机型的中文版,因为lz没有arm的路由器,所以暂时没有制作,如果有人有空,可以把lz的tomato-gui repo中的文件直接覆盖tomato-arm中一样的文件,手动merge这几个不同的文件,然后再使用和lz同样的方法,放到一个tomato-arm-gui的repo里,要注意的是最好把汉化过的文件放在新的branch里,这样下次更新就容易了。 然后可以和lz一样,把编译放到travis ci上

同理advancedTomato也可以如此操作, 当141出现以后,更新的方法应该是
tomato

  1. 从上游tomato repo pull tomato-shibby-RT-AC branch changes
    merge changes到q3 branch 和 travis branch
  2. 拷贝新版的www文件夹到 tomato-gui 的 master branch, commit之后,新建v141 branch, 然后把v140 branch merge 到 v141里, 然后做出相应修改

advancedTomato

  1. 从上游advancedTomato repo pull advancedtomato-ac branch changes
    merge changes到fedora branch 和 travis branch
  2. 从上游advancedtomato-gui
    repo pull 更新,( lz 只汉化了 RT-N branch, commit之后,新建v3.x-141 branch, 然后把v3.4-140 branch merge 到 v3.x-141里, 然后做出相应修改

有时lz在测试build,所以github pages的下载页面经常变动,不过lz把最近一次的成功build结果放在了mega网盘里

repo地址:
https://github.com/oglopss/advancedTomato-ci
https://github.com/oglopss/tomato-ci

github pages 固件下载地址:

https://oglopss.github.io/tomato-ci-jekyll/
https://oglopss.github.io/advancedTomato-ci-jekyll/

lz也备份了下文件到mega网盘(不幸的是,依然需要科学上网才能访问):
advancedTomato:
mega网盘地址: https://mega.nz/#F!0PIlGYaD
Decryption key: !9qd0egRdD3Bb8DE5P41Www

tomato:
mega网盘地址: https://mega.nz/#F!YeR1nYRJ
Decryption key: !Ta36rcZvDm4fedtPxep0Vg

几种其他下载方法
  • 借助svn,以tomato固件为例
    svn export https://github.com/oglopss/tomato-ci-jekyll/trunk/download tomato
    
  • 借助svn,以tomato固件为例
    # 下载全部固件到tomato文件夹
    svn export https://github.com/oglopss/tomato-ci-jekyll/trunk/download tomato
    
    # 当然你下载以前可以看下这个文件夹里有哪些文件
    svn ls https://github.com/oglopss/tomato-ci-jekyll/trunk/download
    
  • DownGit (Credits to Minhas Kamal)
    输入地址 https://github.com/oglopss/tomato-ci-jekyll/tree/gh-pages/download

tomato效果
tomato_status_overview

advancedTomato效果, 下途中1000M 全双工那里已修正,lz没有重新截图,1000M后面加了个换行
advancedTomato-cn

支持的 ARM 机型

ASUS RT-N18U/AC56U/AC68U(R/P)/AC56S
DLINK DIR868L
NETGEAR R7000/R6300v2/R6250
R6400/R7000/R6250/R6300v2/R6400
Xiaomi R1D
HUAWEI WS880
BUFFALO WZR-1750DHP
LINKSYS EA6700/EA6500v2/EA6900

支持的 MIPS 机型

ASUS RT-N10U, RT-N12B1/C1/D1, RT-N15U, RT-N53,RT-N66U
Linksys E-Series with 4MB Flash E1000v2/v2.1/E1200v1
Linksys E-Series with 60k Nvram E1550/E2000/E2500/E2500v3/E3000/E3200/E4200
Linksys E-Series with 64k Nvram/8MB Flash E800/E900/E1200v2/E1500
Routers with wl_high module Asus RT-N53
Linksys E2500/E2500v3/E3200
Tenda N6/N60
Netgear WNDR3400/3400v2/3700 (shibby标注未经测试)
WNR3500Lv2 (128MB Flash)
WNDR4500v1/v2
R6300v1
磊科 q3 (lz自定义版本)
烽火 hg320 (lz自定义版本)
Routers with AC mode support
(Broadcomm wireless driver 6.x)
ASUS RT-AC66U RT-N66U
Netgear R6300v1 WNDR4500v1/v2
Tenda W1800R/N80
BELKIN F7D3301/3302/4302/8235v3 (shibby标注未经测试)

参考:
如何把travis ci的build结果保存到github pages / tomato适用的shadowsocks libev 自动build
run travis ci locally for ss builds and tomato builds
tomato shibby v140 界面中文化及乱搞(烽火hg320 / 磊科Q3 / Asus N66U / AC66U)
advancedTomato 3.4 v140 界面中文化 及乱搞 (Asus RT N16 / N66U / AC66U )
tomato shibby v140 AIO 或 其他版本的汉化思路
更新磊科q3和烽火hg320自定义版tomato shibby到v140

Serious “Page Build Failure Occur” Recently
Jekyll & Liquid Cheatsheet
Download a single folder or directory from a GitHub repo

Advertisements

2 responses to “tomato shibby and advancedTomato v140 中文版 on travis ci

  1. patricktam 十一月 10, 2017 @ 9:29 下午

    大神,有没有wndr4500v1的advancedTomato固件。在你下载的页面里没有

发表评论

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / 更改 )

Twitter picture

You are commenting using your Twitter account. Log Out / 更改 )

Facebook photo

You are commenting using your Facebook account. Log Out / 更改 )

Google+ photo

You are commenting using your Google+ account. Log Out / 更改 )

Connecting to %s

%d 博主赞过: