wrtoy(wrtoy构建玩具)最后更新2015.04.28 增加hard_manage.sh配置的project_name属性.补丁工具功能优化 安装使用问题加群290045468,可以在线解答 写在前面的话(2015.0228)非常郁闷,因为联想笔记本电脑linux驱动的问题,这个Readme写了5次,每次写了两三百字就死机,也不保存写过的信息。实在没有心情更新帮助了。 因为原有的构建脚本被废弃了,这里简单说说使用方法 安装openwrt编译环境先安装ubuntu-utils shell工具集 mkdir -p /works/utilscd /works/utilsgit clone https://git.oschina.net/darcyg/ubuntu-utils.git cd ubuntu-utils/ubuntu_install_script./install_base_lib.sh./install_cppide.sh./install_utils.shcd ../vpnssh_proxy./install_proxy.shcd ../ubuntu_install_script./install_env.sh 以上操作,将安装大量的编译工具,都是linux下openwrt或其他开发不可或却的库与工具即便最小编译固件用不到相关库,也会某些特定功能开发而用到. 建议安装install_proxy.sh,将安装基于sock5的代理服务.其中需要用户自己申请一下ssh或shadowsocks代理帐号,并修改相关配置代码(在vpnssh_proxy/bin目录的shadowsocks用config.json和vpn.sh中) 安装proxy非常关键,部分库通过代理才能下载.配置好以后.通过vpn.sh或svpn.sh开启代理服务使用proxychains [cmd]来保证,下载通过代理服务器进行. 有兴趣的人,可以安装一下install_git.sh,主要提供*git的短命令(具体看源码)*配置自动登录git服务器的~/.netrc,这个对在私有git上部署的库的下载访问很有用 mkdir -p /works/openwrtcd /works/openwrtgit clone http://git.oschina.net/darcyg/wrtoycd wrtoy
安装所有编译openwrt所需各种程序库执行脚本后会有提示。如果需要编译全部packages的库,请选y 代表安装全部工具和依赖程序库,否则选n 只安装一般必备工具和程序库。 ./install_openwrt_hostlib.sh *** 桌面版本建议手工安装Beyond Compare 3.x For Linux的源码比较工具 *** 开启中文信息模式 echo 1 > .zh_cn./build -h 同步openwrt源码到本地,建立工作目录树 打mtall开发板的目标平台补丁到openwrt 打mtall项目的应用补丁到openwrt 升级openwrt,仓库feed包 执行make menuconfig 开启tftp服务,并编译固件,拷贝固件到tftp目录 ./build --tftp./build -bj 8 -c 本项目构建四个基本程序 build 构建常用操作 openwrt_synchro 从源同步数据到本地(build会自动处理) hardware_manage 硬件方案的配置工具 publish 固件提交到统一服务器(通过scp传数据)
安装完之后,openwrt默认工作路径为: /works/openwrt
工作目录结构+ /works/openwrt + dl # packages 中各种编译用源码包下载路径 + staging_dir # 软链到openwrt目录下的staging_dir,减少更新主项目时重新build工具链的时间 + build_dir # 软链到openwrt目录下的build_dir,减少更新主项目时重新build工具链的时间 + nfs # nfs目录配置 直接软链openwrt软链目录下的bin/ramips目录中的文件 + tftproot # tftp目录配置 直接软链openwrt软链目录下的bin/ramips目录中的文件 + openwrt.git # openwrt的官方git代码,不再此版本下工作 + works # openwrt导出的不同分支版本的源码目录 + 2014-06-25_cb592a3 # 2014-06-25的 分支版本 (工作目录) + 2014-06-25_cb592a3.orig # 2014-06-25的 分支版本 (用于生成patch的目录) + openwrt # 当前openwrt工作目录,此为一个软link,如直接指到works/2014-06-25_cb592a3目录下的分支路径 + thirdparty_libs # 第三方编译库,解决某些HOST编译时,系统缺乏相关依赖库的问题 . lastgit # 最后的git提交版本 . usegit # 当前使用git提交版本(openwrt的软link) + openwrt-script # 本脚本工具库
以下说明废弃掉openwrt-script 脚本库功能配置更新- 增加rt5350库新设备配置更新(2014.07.08)- 增加lan/wan共口的配置更新(2014.07.08) install_openwrt.sh本脚本用于新安装环境和更新已有环境中openwrt源码到最新版本更新openwrt.git,也更新其他第三方feeds/packages最新版本,不造成编译链工具重新制作 update_openwrt.sh本脚本仅更新已有环境中openwrt源码中的feeds中的包到最新版本不更新openwrt.git,只更新其他第三方feeds/packages最新版本,不造成编译链工具重新制作 patch_openwrt.py应用在projs目录下的所有相关补丁到/works/openwrt/openwrt的当前工作用的源码中 base和common目录中是每次补丁都会操作 proj_*的目录,在patch_openwrt.py是指定项目名,会选择应用 ./patch_openwrt.py proj -p 5350 -w 上述例子中5350 即项目名称,脚本会自动应用projs/proj_5350中的补丁 帮助应用补丁(虚拟)./patch_openwrt.py proj -p 5350 应用补丁(写入补丁,同时删除测试补丁产生的文件*.fix)./patch_openwrt.py proj -p 5350 -w 补丁测试生成(写入*.fix测试补丁,不会修改原文件,用来测试补丁脚本)./patch_openwrt.py proj -p 5350 -f 补丁的格式补丁采用yaml格式(类json)* 最新支持单YAML文件,多条配置补丁* 字符替换std和正则替换模式regex,orig字段支持单或多条规则 具体参考projs/base中的示例 这里仅对单条补丁中的模式表示说明:mode - std # 或不填mode项目,为标准字符串替换(允许多条规则,仅替换第一条匹配成功)- std+ # 或不填mode项目,为标准字符串替换(允许多条规则,全部匹配替换)- regex # 匹配多条正则规则的一条,匹配正确进行替换(仅替换第一条匹配成功)- regex+ # 匹配多条正则规则,匹配正确进行替换(全部匹配替换)- add # 在文件最后或某行后面增加一行,不会重复添加- debug # 打印详细一点的信息- source # 显示源字串和替换字串- copy # 拷贝文件- del # 删除文件- skip # 跳过这一项 build.sh辅助编译命令行工具,直接对/works/openwrt/openwrt目录下进行操作,减少目录切换的必要 命令格式./build.sh [f/m/b/d/j/j2/j4/j8/c/set/down/down+/clear/clear_tmp] - f feeds 更新feeds- m menuconfig 从菜单选择配置- b build 编译固件- d debug 显示详细编译信息- j[j2/j4/j8] 编译中多线程的使用- c copy 将目标目录生成的文件拷贝到tftpboot目录,并建立软链便于下载- set 设置开发板信息(用于-c参数文件拷贝)- down[down+] 下载源码或通过代理下载- clear 清除工作目录中的文件- clear_tmp 清除tmp目录下的临时文件 设置开发板信息(用于c复制参数)输入boardname(板名),platform(方案),chipname(芯片名),tftplink(tftp软链)4个参数 升级feeds,并启动menuconfig,配置好以后编译(详细显示d,j参数),并更新到tftpboot目录中的5350软链工作目录结构+ /works/openwrt/openwrt-script + common # 共享脚本程序库 + extra # 第三方packages库(手工安装)此目录被禁止提交 + projs # 项目本地patch库 + base # openwrt基本补丁 . 001-open-wireless.yaml # 打开无线补丁 . 002-set-chinese.yaml # 中文语言配置用补丁(特别注意) + common # openwrt共享补丁 + demo # 补丁功能测试用例 + proj_5350 # 5350通用补丁 + proj_7620n # 7620n通用补丁 + proj_7620a # 7620a通用补丁 + proj_7620a # 7620a通用补丁 + proj_mediastation # 媒体基站项目用补丁 + proj_smarthomegate # 智能家居项目用补丁 + tools # 额外工具脚本目录 + utils # python程序库 . extra.sh # 未来用来刷新第三方package库的脚本,暂空 . install_openwrt.sh # 安装或切换最新分支源码到openwrk软链的工具 . install_openwrt_hostlib.sh # HOST编译源码所需依赖库工具库安装 . patch_openwrt.py # 给当前openwrt打内核补丁 . update_openwrt.sh # 升级当前openwrt的软链下的feeds/packages . README.md # 本说明文件 |
请发表评论