openwrt怎么选择编译版本 openwrt怎么编译自己定制的版本

openwrt\u7f16\u8bd1 \u600e\u4e48\u9009\u62e9cpu \u578b\u53f7

openwrt \u5b98\u65b9\u6b63\u5f0f\u7684\u53d1\u884c\u7248\u662f\u5df2\u7f16\u8bd1\u597d\u4e86\u7684\u6620\u50cf\u6587\u4ef6\uff08\u540e\u7f00\u540dbin\u6216trx\u3001trx2\uff09\uff0c\u6b64\u6620\u50cf\u6587\u4ef6\u53ef\u4eceopenwrt\u5b98\u65b9\u7f51\u7ad9\u7684\u4e0b\u8f7d\u9875\u9762\u4e2d\u8f7b\u677e\u83b7\u53d6\u5230\uff0c\u8fde\u63a5\u5730\u5740\u4e3a openwrt\u5b98\u65b9\u7f51\u7ad9\u3002\u8fd9\u4e9b\u7f16\u8bd1\u597d\u7684\u6620\u50cf\u6587\u4ef6\u662f\u57fa\u4e8e\u9ed8\u8ba4\u7684\u914d\u7f6e\u8bbe\u7f6e\uff0c\u4e14\u53ea\u9488\u5bf9\u53d7\u652f\u6301\u7684\u5e73\u53f0\u6216\u8bbe\u5907\u7684\u3002\u56e0\u6b64\uff0c\u4e3a\u4ec0\u4e48\u8981\u6253\u9020\u4e00\u4e2a\u81ea\u5df1\u7684\u6620\u50cf\u6587\u4ef6\uff0c\u7406\u7531\u6709\u4ee5\u4e0b\u56db\u70b9\uff1a
\u60a8\u60f3\u62e5\u6709\u4e00\u4e2a\u4e2a\u6027\u5316\u7684\u914d\u7f6eopenwrt\uff08\u5f70\u663e\u4e2a\u6027\uff0c\u5728\u670b\u53cb\u5708\u5b50\u91cc\u663e\u6446\u663e\u6446\uff0c\u5f00\u4e2a\u73a9\u7b11\uff09\uff1b
\u60a8\u60f3\u5728\u5b9e\u9a8c\u6027\u7684\u5e73\u53f0\u4e0a\u6d4b\u8bd5openwrt\uff1b
\u60a8\u53c2\u4e0e\u6d4b\u8bd5\u6216\u53c2\u4e0e\u5f00\u53d1openwrt\u7684\u5de5\u4f5c\uff1b
\u6216\u8005\uff0c\u6700\u7b80\u5355\u7684\u76ee\u7684\u5c31\u662f\u4e3a\u4e86\u4fdd\u6301\u81ea\u5df1\u7684openwrt\u4e3a\u6700\u65b0\u7248\u672c\uff1b
\u3000\u82e5\u60f3\u5b9e\u73b0\u4e0a\u8ff0\u76ee\u7684\uff0c\u5176\u5b9e\u5f88\u7b80\u5355\uff0c\u6309\u4e0b\u8ff0\u6587\u5b57\u5373\u53ef\u6210\u529f\u7f16\u8bd1\u51fa\u4e00\u4e2a\u60a8\u7684openwrt\u6765\u3002
\u51c6\u5907\u5de5\u4f5c
\u5728\u5f00\u59cb\u7f16\u8bd1openwrt\u4e4b\u524d\u9700\u8981\u60a8\u505a\u4e9b\u51c6\u5907\u5de5\u4f5c\uff1b\u4e0e\u5176\u4ed6\u7f16\u8bd1\u8fc7\u7a0b\u4e00\u6837\uff0c\u7c7b\u4f3c\u7684\u7f16\u8bd1\u5de5\u5177\u548c\u7f16\u8bd1\u73af\u5883\u662f\u5fc5\u4e0d\u53ef\u5c11\u7684\uff1a
\u4e00\u4e2a\u6784\u5efaopenwrt\u6620\u50cf\u7684\u7cfb\u7edf\u5e73\u53f0\uff0c\u7b80\u5355\u8bf4\u5c31\u662f\u51c6\u5907\u4e00\u4e2a\u64cd\u4f5c\u7cfb\u7edf\uff08\u6bd4\u5982Ubuntu\u3001Debian\u7b49\uff09\uff1b
\u786e\u4fdd\u5b89\u88c5\u4e86\u6240\u9700\u7684\u4f9d\u8d56\u5173\u7cfb\u5e93\uff0c \uff08\u5728debian\u7cfb\u7edf\u4e2d\u5c31\u662f\u5b89\u88c5\u5404\u79cd\u9700\u8981\u7684\u8f6f\u4ef6\u5305\uff09
openwrt\u6e90\u4ee3\u7801\u526f\u672c
\u9996\u5148\uff0c \u5f00\u673a\u767b\u9646\u5230\u652f\u6301\u7f16\u8bd1openwrt\u7684\u64cd\u4f5c\u7cfb\u7edf\uff08\u5e9f\u8bdd\u4e86\uff09\u3002\u5b9e\u4f53\u673a\u6216\u8005\u865a\u62df\u673a(Vmware \u6216\u8005 Qemu)\u91cc\u7684\u64cd\u4f5c\u7cfb\u7edf\u90fd\u884c\uff0c\u8fd9\u91cc\u63a8\u8350\u4f7f\u7528Linux\u7cfb\u7edf\u3002 bsd\u548cmac osx\u7cfb\u7edf\u4e5f\u53ef\u4ee5\u7f16\uff0c\u4f46\u4e0d\u63a8\u8350\uff0c\u4e14\u672a\u9a8c\u8bc1\u662f\u5426\u53ef\u7f16\u8bd1\u6210\u529f\u3002\u4e0b\u6587\u5047\u5b9a\u60a8\u4f7f\u7528\u7684\u662fDebian\u64cd\u4f5c\u7cfb\u7edf\uff0c\u4f7f\u7528 apt-get \u6765\u7ba1\u7406\u5305. \u66ff\u4ee3\u7684\u9009\u62e9\u662f Ubuntu (\u5206\u652f Kubuntu, Xubuntu \u7b49\u5373\u53ef)\u3002
\u7b2c\u4e8c\u6b65, \u5c31\u662f\u5b89\u88c5\u6240\u9700\u8981\u7684\u5404\u79cd\u8f6f\u4ef6\u5305, \u5305\u62ec\u7f16\u8bd1\u5668,\u89e3\u538b\u5de5\u5177,\u7279\u5b9a\u7684\u5e93\u7b49. \u8fd9\u4e9b\u5de5\u4f5c\u53ef\u4ee5\u7b80\u5355\u7684\u901a\u8fc7\u952e\u5165\u4ee5\u4e0b\u547d\u4ee4 (\u901a\u5e38\u9700\u8981root \u6216\u8005\u662f sudo \u6743\u9650)\uff0c\u4ee5root\u6743\u9650\u5b89\u88c5\u4e0b\u5217\u8f6f\u4ef6\u5305(\u53ef\u80fd\u5e76\u4e0d\u5b8c\u6574\uff0c\u4f1a\u6709\u63d0\u793a\uff0c\u63d0\u793a\u7f3a\u5c11\u5373\u88c5\u5c31\u53ef\u4ee5\u4e86\uff09:
32\u4f4d(x86)\u8bf7\u6267\u884c\u4e0b\u5217\u547d\u4ee4:
# apt-get install build-essential asciidoc binutils bzip2 gawk gettext \
git libncurses5-dev libz-dev patch unzip zlib1g-dev

64\u4f4d(x86_64)\u8bf7\u6267\u884c\u4e0b\u5217\u547d\u4ee4\uff08\u591a\u88c5\u4e86\u54ea\u4e9b\u5e93\u6216\u8f6f\u4ef6\u5305\u5462\uff1f\u8bf7\u60a8\u4ed4\u7ec6\u770b\u4e00\u770b\u54e6\uff09:
# apt-get install build-essential asciidoc binutils bzip2 gawk gettext \
git libncurses5-dev libz-dev patch unzip zlib1g-dev ia32-libs \
lib32gcc1 libc6-dev-i386

\u53c2\u8003 \u672c\u5217\u8868\u4e2d \u6240\u5217\u7684\u7f16\u8bd1\u73af\u5883\u6240\u9700\u8981\u8f6f\u4ef6\u5305\u6216\u5e93\u3002
\u67d0\u4e9b\u4f9d\u8d56\u7684\u4e3a\u5e93\u6216\u8f6f\u4ef6\u5305\u4e5f\u8bb8\u64cd\u4f5c\u7cfb\u7edf\u4e2d\u5df2\u7ecf\u5b89\u88c5\u8fc7\uff0c\u6b64\u65f6apt-get\u4f1a\u4f5c\u51fa\u63d0\u793a\uff08\u63d0\u793a\u60a8\u5ffd\u7565\u6216\u91cd\u65b0\u5b89\u88c5\u7684\uff09\uff0c\u522b\u7d27\u5f20\uff0c\u653e\u8f7b\u677e\u4e9b\uff0c\u7f16\u8bd1openwrt\u4e0d\u4f1a\u50cf\u7f16\u8bd1DD\uff0dWRT\u90a3\u6837\u96be\u7684\uff08\u81f3\u5c11\u672c\u4eba\u662f\u4f53\u4f1a\u5230\u4e86\u7f16\u8bd1DD\uff0dWRT\u7684\u96be\uff09\u3002
\u6700\u540e\u4e0b\u8f7d\u4e00\u4efd\u5b8c\u6574\u7684 openwrt \u6e90\u7801\u5230\u7f16\u8bd1\u73af\u5883\u4e2d\u3002\u5173\u4e8eopenwrt\u7684\u6e90\u4ee3\u7801\u4e0b\u8f7d\uff0c\u9014\u5f84\u6709\u4e8c\uff0c\u4e00\u662f\u901a\u8fc7 svn \uff0c\u4e00\u662f\u901a\u8fc7 git\uff0c\u5efa\u8bae\u4f7f\u7528 svn \uff0c\u56e0\u4e3aopenwrt\u4e3b\u8981\u4ee5 svn \u6765\u7ef4\u62a4openwrt\u7cfb\u7edf\u7684\u7248\u672c\u3002\u53e6\u5916\uff0c\u8bf7\u6ce8\u610fopenwrt\u4e2d\u4e0d\u540c\u7684\u5206\u652f\u7248\u672c\uff0c\u4e00\u4e2a\u662f\u7528\u5f97\u8f83\u591a\u7684\u5f00\u53d1\u5feb\u7167\uff0c\u4fd7\u79f0 trunk\uff0c\u4e8c\u662f\u7a33\u5b9a\u7248\uff0c\u4fd7\u79f0 backfire\u3002
\u5b89\u88c5Subversion
\u82e5\u4f60\u60f3\u901a\u8fc7svn\u4e0b\u8f7d\u6e90\u4ee3\u7801,\u4f60\u9700\u5b89\u88c5 Subversion\u3002Subversion,\u6216\u79f0SVN, \u662fopenwrt\u7684project\u4e2d\u7528\u6765\u63a7\u5236\u7248\u672c\u7684\u7cfb\u7edf,\u5b83\u975e\u5e38\u7c7b\u4f3c\u7684 cvs\u7684\u754c\u9762\u548c\u4f7f\u7528\u6761\u6b3e\u3002 \u6267\u884c\u4e0b\u8ff0\u547d\u4ee4\u5373\u53ef\u5b89\u88c5SVN\uff0c\u5f88\u5bb9\u6613\u7684\uff1a
# apt-get install subversion

Subversion\u5b89\u88c5\u5b8c\u6bd5\uff0c\u901a\u8fc7SVN\u547d\u4ee4\u53ef\u83b7\u53d6\u5f97\u5230\u4e00\u4efdopenwrt\u7eaf\u51c0\u6e90\u4ee3\u7801\u3002\u60a8\u8fd8\u5f97\u521b\u5efa\u4e00\u4e2a\u76ee\u5f55\u4ee5\u4fbf\u5b58\u653e\u83b7\u53d6\u5f97\u5230\u7684openwrt\u6e90\u4ee3\u7801\uff0c\u8981\u83b7\u53d6\u6e90\u4ee3\u7801\u4f60\u8fd8\u5f97\u8f93\u5165subversion\u547d\u4ee4\u6765\u83b7\u53d6 (svn\u91cc\u8fd9\u79cd\u64cd\u4f5c\u79f0\u4e4b\u4e3a'check out') \u3002\u547d\u4ee4\u5f88\u7b80\u5355\u7684\uff0c\u7ee7\u7eed\u770b\u4e0b\u53bb\u5c31\u80fd\u89c1\u5230\u4e86\uff0c\u522b\u7740\u6025\uff0c\u8010\u5fc3\u70b9\u513f\u3002
\u7f16\u8bd1\u6d41\u7a0b
\u7f16\u8bd1\u4e13\u5c5e\u4e8e\u60a8\u7684\u8bbe\u5907\u7684\u7279\u5b9aopenwrt\u56fa\u4ef6\u4ee5\u4e00\u4e0b\u4e94\u4e2a\u6b65\u9aa4\uff1a
\u901a\u8fc7Subversion\u547d\u4ee4\u83b7\u5f97\u6e90\u4ee3\u7801\uff1b
\u66f4\u65b0(\u6216\u5b89\u88c5) package feeds\u3014package feeds\u65e0\u6cd5\u786e\u5207\u7ffb\u8bd1\uff0c\u5f85\u8bd1\u5427\uff09\uff1b
\u521b\u5efa\u4e00\u4e2a\u9ed8\u8ba4\u914d\u7f6e\u4ee5\u68c0\u67e5\u7f16\u8bd1\u73af\u5883\u662f\u5426\u642d\u5efa\u597d\u4e86 (\u5047\u5982\u9700\u8981\u7684\u8bdd)\uff1b
\u7528Menuconfig\u6765\u914d\u7f6e\u5373\u5c06\u7f16\u8bd1\u751f\u6210\u7684\u56fa\u4ef6\u6620\u50cf\u6587\u4ef6\u7684\u914d\u7f6e\u9879\uff1b
\u6700\u540e\u5f00\u59cb\u7f16\u8bd1\u56fa\u4ef6\uff1b
\u4e0b\u8f7d\u6e90\u4ee3\u7801
\u6700\u540e\uff0c\u4e0b\u8f7d\u4e00\u4efd\u5b8c\u6574\u7684openwrt\u6e90\u4ee3\u7801\u3002\u4f60\u53ef\u9009\u62e9\uff1a
\u4e0b\u8f7d\u7a33\u5b9a\u53d1\u884c\u7248\uff0c\u6216
\u4e0b\u8f7d\u5f00\u53d1\u7248 (\u4fd7\u79f0"trunk"\u7248)\u3002
\u4f7f\u7528\u53d1\u884c\u7248\u7684\u6e90\u7801
\u622a\u6b62\u672c\u6587\u65f6, openwrt\u516c\u5f00\u53d1\u884c\u7684\u7a33\u5b9a\u7248\u4e3a openwrt 10.03 "backfire"\u3002\u6b64\u7248\u672c\u662f\u6700\u7a33\u5b9a\u7684\uff0c\u4f46\u4e5f\u8bb8\u4e0d\u5305\u62ec\u6700\u65b0\u66f4\u65b0\u7684\u8865\u4e01\u6216\u6700\u65b0\u7f16\u5199\u7684\u51fa\u7684\u65b0\u529f\u80fd\u3002
\u4e0b\u8ff0\u4ee3\u7801\u5373\u4e3e\u4f8b\u8bf4\u660e\u4e86\u901a\u8fc7svn\u4ecebrandkfire\u83b7\u5f97backfire\u6e90\u4ee3\u7801\uff08\u6b64\u7248\u672c\u610f\u601d\u662f\u4ecetrunk\u5206\u652f\u7684\u8865\u4e01\u4e5f\u5728backfire\u7248\u672c\u4e2d\u4e86\uff0c\u5373\u5305\u542b\u4fee\u590d\u8865\u4e01\uff09\uff1a
# mkdir openwrt/
# cd openwrt/
# svn co svn://svn.openwrt.org/openwrt/branches/backfire

\u6ce8\u89e3: \u4e0a\u8ff0svn\u547d\u4ee4\u5c06\u5728\u5f53\u524d\u76ee\u5f55\u521b\u5efa\u4e00\u4e2a openwrt/backfire/ \u5b50\u76ee\u5f55\uff0c\u6b64\u76ee\u5f55\u5305\u542b\u6b64\u547d\u4ee4\u83b7\u53d6\u5230\u7684\u6e90\u4ee3\u7801\u3002
\u60a8\u4e5f\u53ef\u4ee5\u901a\u8fc7\u4e0b\u8ff0\u547d\u4ee4\uff0c\u4e0b\u8f7d\u4e0d\u542b\u4fee\u590d\u8865\u4e01\u7684backfire\u7684\u539f\u7248\u6e90\u7801\uff1a
# svn co svn://svn.openwrt.org/openwrt/tags/backfire_10.03

\u4f7f\u7528\u5f00\u53d1\u7248\u6e90\u4ee3\u7801
\u5f53\u524d\u7684\u5f00\u53d1\u7248\u672c\u5206\u652f(trunk)\u5df2\u5305\u542b\u6700\u65b0\u7684\u5b9e\u9a8c\u8865\u4e01\u3002\u6b64\u5206\u652f\u6216\u8bb8\u8fd8\u7a81\u7834\u4e86openwrt\u539f\u6765\u6240\u4e0d\u652f\u6301\u7684\u786c\u4ef6\u8bbe\u5907\u7684\u9650\u5236\u54e6\uff0c\u60ca\u559c\u7684\u540c\u65f6\u4e5f\u6709\u98ce\u9669\u5b58\u5728\u3002\u56e0\u6b64\uff0c\u7f16\u8bd1trunk\u7248\uff0c\u614e\u4e4b\uff5e
# mkdir openwrt/
# cd openwrt/
# svn co svn://svn.openwrt.org/openwrt/trunk/

\u66f4\u591a\u8be6\u7ec6\u8d44\u6599\u8be6\u89c1\uff1a https://dev.openwrt.org/wiki/GetSource.
\u8ddf\u8fdb\u5e76\u66f4\u65b0\u6e90\u4ee3\u7801
\u56e0openwrt\u7684\u6e90\u4ee3\u7801\u968f\u65f6\u90fd\u4f1a\u53d8\u52a8\uff0c\u6545\u6b64\u547d\u4ee4\u5c06\u786e\u4fdd\u60a8\u6240\u83b7\u53d6\u5f97\u5230\u7684\u6e90\u7801\u7684\u6700\u65b0\u6027\u3002\u4e0b\u8ff0\u5047\u8bbe\u60a8\u7528\u7684\u662fbackfire\u7248\u672c\u7684\u6e90\u7801\uff1a
## Here, backfire is the directory name of the current release branch you're tracking
# cd openwrt/backfire/
# svn up

'svn up' \u547d\u4ee4\u7528\u4e8e\u66f4\u65b0SVN\u4e0a\u66f4\u65b0\u4e86\uff0c\u4f46\u672c\u5730\u5c1a\u672a\u66f4\u65b0\u7684\u8fd9\u90e8\u5206\u6e90\u4ee3\u7801\uff08\u672c\u4eba\u5b9e\u8df5\u8bc1\u660e\u6b64\u547d\u4ee4\u4f1a\u5c06\u672c\u5730\u6e90\u7801\u4e0eSVN\u4e0a\u7684\u6e90\u7801\u5148\u6bd4\u8f83\uff0c\u82e5SVN\u6709\u66f4\u65b0\u624d\u4f1a\u4e0b\u8f7d\u66f4\u65b0\u7684\u90e8\u5206\uff0c\u5f88\u5b9e\u7528\u7684\u4e00\u4e2a\u547d\u4ee4\uff09\u3002\u5982\u679c\u672a\u6307\u5b9a\u76ee\u6807\u8def\u5f84\uff0c\u5219\u6b64\u547d\u4ee4\u5c06\u66f4\u65b0\u5f53\u524d\u76ee\u5f55\u53ca\u5f53\u524d\u76ee\u5f55\u7684\u5b50\u76ee\u5f55\u5185\u7684\u6e90\u7801\u3002
Feeds\u4e0b\u8f7d
Feeds\u5373\u4e3a\u5305\u542b\u5230\u4f60\u7684openwrt\u73af\u5883\u4e2d\u7684\u989d\u5916\u8f6f\u4ef6\u5305\u7684\u7d22\u5f15\u4e4b\u7c7b\u7684\u3002\uff08feed\u8bd1\u540d\u5f88\u591a\uff0c\u83ab\u8877\u4e00\u662f\uff0c\u81f32008\u5e74\u5e95\u4e3a\u6b62\uff0c\u8fd8\u6ca1\u6709\u4e00\u4e2a\u5341\u5206\u901a\u7528\u800c\u5907\u53d7\u8ba4\u53ef\u7684\u4e2d\u6587\u8bd1\u540d\uff1b\u6240\u4ee5\u6b64\u6587\u5f53\u4e2d\u6211\u4eec\u7528\u82f1\u6587feed\u6765\u79f0\u547c\uff09\u3002 \u6700\u4e3b\u8981\u7684Feeds\u6709\u4ee5\u4e0b\u4e09\u4e2a\uff1a
'packages' - \u8def\u7531\u7684\u57fa\u672c\u529f\u80fd,
'LuCI' - openwrt\u9ed8\u8ba4\u7684gui\uff08WEB\u7ba1\u7406\u754c\u9762\uff09, \u53ca
'Xwrt' - \u5176\u4ed6\u7684gui\u3002
\u4e00\u822c\u60c5\u51b5\uff0c\u4f60\u81f3\u5c11\u9700\u8981\u542b 'packages' \u548c 'LuCI'\u4e24\u4e2aFeeds\u3002
\u4e0b\u8f7d\u5b8cfeeds\u4e4b\u540e\uff0c (\u4e3a\u7f16\u8bd1openwrt\u7684recipies\u989d\u5916\u7684\u9884\u5b9a\u4e49\u5305) \u60a8\u53ef\u4ee5\u68c0\u67e5\u54ea\u4e9bfeeds\u8981\u5305\u62ec\u5728\u5185\u3002\u7f16\u8f91\u5728\u4f60\u7684\u7f16\u8bd1\u73af\u5883\u7684\u6839\u76ee\u5f55\u4e0b\u7684'feeds.conf.default'\u6587\u4ef6\u3002
\u7136\u540e\u4f7f\u7528\u4e0b\u5217\u547d\u4ee4\u5f00\u59cb\u4e0b\u8f7d\uff08\u6ce8\uff1a\u53ef\u80fd\u4f60\u9700\u8981\u5148\u8fd0\u884ccd trunk\u8fdb\u5165trunk\u76ee\u5f55\u624d\u80fd\u6210\u529f\u6267\u884c\u4e0b\u5217\u547d\u4ee4\uff09\uff1a
# ./scripts/feeds update -a

\u5728\u6b64\u4e4b\u540e\uff0c\u4e0b\u8f7d\u7684\u8f6f\u4ef6\u5305\u9700\u8981\u5b89\u88c5\u3002\u4ea6\u5373\u6307\u7684\u4e0b\u8fb9\u7684\u547d\u4ee4\u5566\u3002\u82e5\u8def\u8fc7\u4e0b\u8fb9\u7684install\u547d\u4ee4\u5219\u540e\u7eedmake menuconfig\u5c06\u65e0\u6cd5\u6210\u529f\u6267\u884c\uff01\uff08\u6ce8\uff1a\u53ef\u80fd\u4f60\u9700\u8981\u5148\u8fd0\u884ccd trunk\u8fdb\u5165trunk\u76ee\u5f55\u624d\u80fd\u6210\u529f\u6267\u884c\u4e0b\u5217\u547d\u4ee4\uff09\uff1a
# ./scripts/feeds install -a

\u53ea\u9700\u7f16\u8f91Feeds\u7684\u914d\u7f6e\u6587\u4ef6\u6216\u8fd0\u884c\u66f4\u65b0\u547d\u4ee4\uff0c\u5373\u53ef\u5f88\u65b9\u4fbf\u5730\u66f4\u65b0\u6216\u6dfb\u52a0\u65b0\u7684\u5b9e\u9a8c\u6027\u7684packages\u5230\u6e90\u7801\u4e2d\u5e76\u7f16\u8bd1\u5230openwrt\u56fa\u4ef6\u53bb\u3002
\u6ce8\u610f\uff1a\u8bf7\u8001\u575b\u53cb\u53ca\u65e7\u7684\u65b0\u95fb\u7ec4\u6210\u5458\u4eec\u6ce8\u610f\u4e86\uff0c\u8fd9\u4e00\u6b65\u53d6\u4ee3\u4e86\u521b\u5efa\u7b26\u53f7\u94fe\u63a5symlinks\u7684\u8001\u529e\u6cd5\u54e6\u3002
\u66f4\u65b0Feeds
\u8bf8\u5982\u6b64\u7c7b\u6e90\u7801,\u4f60\u5f97\u5b9a\u671f\u66f4\u65b0Feeds\u3002 \u901a\u8fc7\u5982\u4e0a\u76f8\u540c\u7684\u547d\u4ee4:
# ./scripts/feeds update -a
# ./scripts/feeds install -a

\u6ce8\u610f:\u82e5\u4f60\u6e05\u695a\u5730\u77e5\u9053\u4f60\u4e0d\u9700\u6dfb\u52a0\u65b0\u7684packages\u5230menuconfig\u4e2d\u53bb\uff0c\u90a3\u4e48\u4f60\u53ef\u5728\u66f4\u65b0Feeds\u65f6\u8df3\u8fc7\u8fd9\u4e00\u6b65\u3002
\u751f\u6210\u914d\u7f6e
You may not have to make configration always after updating sources and feeds, but making it ensures that all packages from source and feeds are correctly included in your build configuration.
Defconfig
\u4e0b\u4e00\u6b65\u662f\u68c0\u67e5\u7f16\u8bd1\u73af\u5883\uff0c\u82e5\u53ef\u8fdb\u884c\u7f16\u8bd1\u5219\u751f\u6210\u9ed8\u8ba4\u914d\u7f6e\uff1a
# make defconfig

\u82e5defconfig\u56de\u663e\u63d0\u793a\u7f3a\u5c11\u8f6f\u4ef6\u5305\u6216\u7f16\u8bd1\u5e93\u7b49\u4f9d\u8d56\uff0c\u5219\u6309\u63d0\u793a\u5b89\u88c5\u6240\u7f3a\u8f6f\u4ef6\u5305\u6216\u5e93\u7b49\u5373\u53ef\uff0c\u4e0d\u96be\u7684\uff0c\u7ec6\u5fc3\u70b9\u5c31\u884c\u3002
Menuconfig
menuconfig\u662f\u4e00\u4e2a\u57fa\u4e8e\u6587\u672c\u7684\u5de5\u5177\uff0c\u5b83\u5904\u7406\u9009\u62e9\u7684\u76ee\u6807\uff08\u9700\u8981\u8fd8\u662f\u4e0d\u9700\u8981\uff09\u3001\u7f16\u8bd1\u751f\u6210\u8f6f\u4ef6\u5305\uff08openwrt\u4e0b\u662fipkg\u683c\u5f0f\uff09\u4ee5\u53ca\u5185\u6838\u9009\u9879\uff08\u7f16\u8bd1\u6210\u6a21\u5757\u8fd8\u662f\u5185\u6838\uff09\u7b49\u7b49
# make menuconfig

\u5728\u4f60\u79bb\u5f00\u5e76\u4fdd\u5b58\u914d\u7f6e\u6587\u4ef6\uff08\u9ed8\u8ba4\u90fd\u662f.config\uff09\u540e\uff0c\u5c06\u81ea\u52a8\u914d\u7f6e\u4f9d\u8d56\u5173\u7cfb\uff0c\u8ba9\u4f60\u53ef\u4ee5\u7740\u624b\u7f16\u8bd1\u66f4\u65b0\u7684\u56fa\u4ef6\u3002
\u5927\u4f17\u53ef\u901a\u8fc7'menuconfig'\u8fd9\u4e00\u7b80\u5355\u7684\u56fe\u5f62\u5316\u7684\u914d\u7f6e\u73af\u5883\uff0c\u975e\u5e38\u8f7b\u677e\u5730\u7f16\u8bd1\u51fa\u4e13\u5c5e\u60a8\u672c\u4eba\u7684openwrt\u56fa\u4ef6\u3002
\u53ef\u4ee5\u7528'menuconfig'\uff0c\u4ee5\u5f00\u53d1\u7684\u610f\u56fe\u6765\u7f16\u8bd1openwrt\u7684\u56fa\u4ef6\uff0c\u4e3a\u81ea\u5df1\uff08\u4e2a\u4eba\uff09\u521b\u9020\u4e00\u4e2a\u7ed3\u6784\u7b80\u5355\u4f46\u662f\u529f\u80fd\u5f3a\u5927\u7684\u73af\u5883\u3002\uff08\u4e0a\u53e5\u5b9e\u5728\u96be\u7ffb\u8bd1\uff0c\u53ea\u80fd\u610f\u8bd1\u3002\u5e76\u4e14\u4e5f\u8bf7\u5927\u5bb6\u90fd\u5b66\u4e60\u4e0b\u7f16\u8bd1OP\u56fa\u4ef6\uff0c\u8ba9\u4ee5OP\u56fa\u4ef6\u76c8\u5229\u7684\u4eba\u4e22\u6389\u90a3\u80ae\u810f\u7684\u996d\u7897\uff01\uff09
Menuconfig\u6216\u591a\u6216\u5c11\u6709\u4e9b\u96be\u4ee5\u8bf4\u660e\u7684\u5730\u65b9\uff0c\u5373\u4f7f\u662f\u6700\u4e13\u4e1a\u7684\u914d\u7f6e\uff0c\u4e5f\u53ef\u4ee5\u5bfb\u6c42\u5e2e\u52a9\u5e76\u52a0\u4ee5\u89e3\u51b3\u3002 \u9700\u8981\u4f60\u6307\u5b9a\u4f55\u79cd\u76ee\u6807\u5e73\u53f0\uff0c\u8981\u5305\u542b\u7684package\u8f6f\u4ef6\u5305\u548c\u5185\u6838\u6a21\u5757\u7b49\u5747\u9700\u8981\u4f60\u6307\u5b9a\uff0c\u914d\u7f6e\u6807\u51c6\u7684\u8fc7\u7a0b\u4e2d\u4f1a\u5305\u62ec\u4fee\u6539\uff1a
\u76ee\u6807\u5e73\u53f0\uff08\u5373\u8def\u7531\u5668\u4f55\u79cd\u67b6\u6784\uff0cbcm\u5462\u8fd8\u662far\u5747\u53ef\u9009\u62e9\uff09
\u9009\u62e9\u8981\u5305\u542b\u7684package\u8f6f\u4ef6\u5305
\u6784\u5efa\u7cfb\u7edf\u8bbe\u7f6e
\u5185\u6838\u6a21\u5757
Target system is selected from the extensive list of supported platforms, with the numerous target profiles \u2013 ranging from specific devices to generic profiles, all depending on the particular device at hand. Package selection has the option of either 'selecting all package', which might be un-practical in certain situation, or relying on the default set of packages will be adequate or make an individual selection. It is here needed to mention that some package combinations might break the build process, so it can take some experimentation before the expected result is reached. Added to this, the openwrt developers are themselves only maintaining a smaller set of packages \u2013 which includes all default packages \u2013 but, the feeds-script makes it very simple to handle a locally maintained set of packages and integrate them in the build-process.
\u5047\u5982\u4f60\u9700\u8981LuCI, \u8981\u5230Administration \u83dc\u5355\u91cc,\u5728LuCI\u7ec4\u4ef6\u7684\u5b50\u83dc\u5355\u4e0b, \u5e76\u9009\u62e9: luci-admin-core, luci-admin-full, and luci-admin-mini\u7ec4\u4ef6\u5305\u3002
\u5047\u5982\u4f60\u4e0d\u9700\u8981ppp,\u4f60\u53ef\u5230Network\u83dc\u5355\u4e0b\u53d6\u6d88\u5bf9\u5b83\u7684\u9009\u62e9\uff0c\u4ee5\u4fbf\u7f16\u8bd1\u65f6\u4e0d\u5305\u542b\u6b64\u7ec4\u4ef6\u3002
Menuconfig\u7528\u6cd5: \u786e\u4fdd\u8fd9\u4e9b\u7ec4\u4ef6\u5305\u662f\u4ee5 '*'\u661f\u53f7\u6807\u8bb0\u800c\u4e0d\u662f 'M'\u6807\u8bb0\u3002
\u5982\u679c\u4f60\u662f\u4ee5\u661f\u53f7 '*'\u6807\u8bb0\u8be5\u7ec4\u4ef6\u5305, \u5219\u8be5\u7ec4\u4ef6\u5305\u5c06\u7f16\u8bd1\u8fdb\u6700\u7ec8\u751f\u6210\u7684openwrt\u56fa\u4ef6\u4e2d\u3002
\u5982\u679c\u4f60\u4ec5\u4ee5 'M'\u6807\u8bb0\u8be5\u7ec4\u4ef6\u5305, \u5219\u8be5\u7ec4\u4ef6\u5305\u5c06\u4e0d\u4f1a\u7f16\u8bd1\u8fdb\u6700\u7ec8\u751f\u6210\u7684OpenWrt\u56fa\u4ef6\u4e2d\u3002
The final step before the process of compiling the intended image(s) is to exit 'menuconfig' \u2013 this also includes the option to save a specific configuration or load an already existing, and pre-configured, version.
Exit and save.
Source Mirrors
The 'Build system settings' include some efficient options for changing package locations which makes it easy to handle a local package set:
Local mirror for source packages
Download folder
In the case of the first option, you simply enter a full URL to the web or ftp server on which the package sources are hosted. Download folder would in the same way be the path to a local folder on the build system (or network). If you have a web/ftp-server hosting the tarballs, the OpenWrt build system will try this one before trying to download from the location(s) mentioned in the Makefiles . Similar if a local 'download folder', residing on the build system, has been specified. The 'Kernel modules' option is required if you need specific (non-standard) drivers and so forth \u2013 this would typically be things like modules for USB or particular network interface drivers etc.
\u7f16\u8bd1\u56fa\u4ef6
\u4e07\u4e8b\u5177\u5907\uff0c\u53ea\u6b20\u4e1c\u98ce,\u901a\u8fc7\u4e0b\u9762\u7b80\u5355\u7684make\u547d\u4ee4\u6765\u7f16\u8bd1:
# make

\u5728\u591a\u6838\u7535\u8111\u4e2d\u7f16\u8bd1
\u5177\u6709\u591a\u6838cpu\u5904\u7406\u5668\u7684\u7535\u8111\u8fdb\u884c\u7f16\u8bd1\uff0c\u4f7f\u7528\u4e0b\u8ff0\u53c2\u6570\u53ef\u4ee4\u7f16\u8bd1\u8fc7\u7a0b\u52a0\u901f\u3002 \u5e38\u89c4\u7528\u6cd5\u4e3a \u2013 \u4f8b\u5982\u4f7f\u75283\u8fdb\u7a0b\u6765\u7f16\u8bd1 (\u5373\u53cc\u6838cpu), \u547d\u4ee4\u53ca\u53c2\u6570\u5982\u4e0b:
# make -j 3

\u540e\u53f0\u7f16\u8bd1
\u82e5\u4f60\u5728\u8fd9\u4e2a\u7cfb\u7edf\u5185\u7f16\u8bd1OpenWrt\u7684\u540c\u65f6\u8fd8\u5904\u7406\u5176\u4ed6\uff0c\u53ef\u4ee5\u8ba9\u95f2\u7f6e\u7684I/O\u53cacpu\u6765\u5728\u540e\u53f0\u7f16\u8bd1\u56fa\u4ef6 (\u53cc\u6838cpu):
# ionice -c 3 nice -n 20 make -j 2

\u7f16\u8bd1\u7b80\u5355\u7684\u57fa\u672c\u7684\u8f6f\u4ef6\u5305
\u5f53\u4f60\u4e3aOpenWrt\u5f00\u53d1\u6216\u6253\u5305\u8f6f\u4ef6\u5305,\u7f16\u8bd1\u7b80\u5355\u7684\u57fa\u672c\u7684\u8f6f\u4ef6\u5305\u53ef\u4ee5\u5f88\u8f7b\u6613\u5730\u7f16\u8bd1\u8be5\u8f6f\u4ef6\u5305 (\u4f8b\u5982\uff0c \u8f6f\u4ef6\u5305cups):
# make package/cups/compile V=99

\u4e00\u4e2a\u5728Feeds\u91cc\u7684\u8f6f\u4ef6\u5305\u5927\u7ea6\u662f\u8fd9\u6837\u5b50\u7684:
# make package/feeds/packages/ndyndns/compile V=99

\u7f16\u8bd1\u9519\u8bef
\u5982\u679c\u56e0\u67d0\u79cd\u4e0d\u77e5\u9053\u7684\u539f\u56e0\u800c\u7f16\u8bd1\u5931\u8d25,\u4e0b\u9762\u6709\u79cd\u7b80\u5355\u7684\u65b9\u6cd5\u6765\u5f97\u77e5\u7f16\u8bd1\u5230\u5e95\u9519\u5728\u54ea\u91cc\u4e86:
# make V=99 2>&1 |tee build.log |grep -i error

\u4e0a\u8ff0\u7f16\u8bd1\u547d\u4ee4\u610f\u4e3a\uff1aV99\u53c2\u6570\uff0c\u5c06\u51fa\u9519\u4fe1\u606f\u4fdd\u5b58\u5728build.log\uff0c\u751f\u6210\u8f93\u51fa\u5b8c\u6574\u8be6\u7ec6\u7684\u526f\u672c\uff08with stdout piped to stderr\uff09\uff0c\u53ea\u6709\u5728\u5c4f\u5e55\u4e0a\u663e\u793a\u7684\u9519\u8bef\u3002
\u4e3e\u4f8b\u8bf4\u660e:
# ionice -c 3 nice -n 20 make -j 2 V=99 CONFIG_DEBUG_SECTION_MISMATCH=y 2>&1 \
|tee build.log |egrep -i '(warn|error)'

The above saves a full verbose copy of the build output (with stdout piped to stderr) in build.log and outputs only warnings and errors while building using only background resources on a dual core CPU.

\u5982\u679c\u4f60\u53ea\u662f\u8981\u7f16\u8bd1\u4e00\u4e2a\u81ea\u5b9a\u4e49\u7684\u56fa\u4ef6\uff08\u9ed8\u8ba4\u5e26\u4ec0\u4e48\u8f6f\u4ef6\uff0c\u4e0d\u5e26\u4ec0\u4e48\u8f6f\u4ef6\uff0c\u81ea\u5b9a\u4e49\u9ed8\u8ba4\u7684\u914d\u7f6e\u7b49\u7b49\uff09\uff0c\u90a3\u63a8\u8350\u4f60\u7528ImageBuilder\uff0c\u7b80\u5355\u5feb\u901f\uff0c\u7701\u5fc3\u7701\u529b \u4f60\u8981\u662f\u9700\u8981\u81ea\u5df1\u5f00\u53d1\u8f6f\u4ef6\u5305\uff0c\u7528OpenWRT\u7684SDK\uff0c\u76f4\u63a5\u51faipk\u6587\u4ef6 \u8981\u5b8c\u5168\u91cd\u5199\u5c31buildroot

(!文末,附加人生如戏写的编译OPENWRT的TXT内容,可直接跳至末尾,有例子)
 Openwrt 官方正式的发行版是已编译好了的映像文件(后缀名bin或trx、trx2),此映像文件可从Openwrt官方网站的下载页面中轻松获取到,连接地址为 OpenWrt官方网站。这些编译好的映像文件是基于默认的配置设置,且只针对受支持的平台或设备的。因此,为什么要打造一个自己的映像文件,理由有以下四点:
您想拥有一个个性化的配置OpenWrt(彰显个性,在朋友圈子里显摆显摆,开个玩笑);
您想在实验性的平台上测试OpenWrt;
您参与测试或参与开发OpenWrt的工作;
或者,最简单的目的就是为了保持自己的Openwrt为最新版本;
 若想实现上述目的,其实很简单,按下述文字即可成功编译出一个您的Openwrt来。
准备工作
在开始编译Openwrt之前需要您做些准备工作;与其他编译过程一样,类似的编译工具和编译环境是必不可少的:
一个构建OpenWrt映像的系统平台,简单说就是准备一个操作系统(比如Ubuntu、Debian等);
确保安装了所需的依赖关系库, (在debian系统中就是安装各种需要的软件包)
OpenWrt源代码副本
首先, 开机登陆到支持编译Openwrt的操作系统(废话了)。实体机或者虚拟机(Vmware 或者 Qemu)里的操作系统都行,这里推荐使用Linux系统。 bsd和mac osx系统也可以编,但不推荐,且未验证是否可编译成功。下文假定您使用的是Debian操作系统,使用 apt-get 来管理包. 替代的选择是 Ubuntu (分支 Kubuntu, Xubuntu 等即可)。
第二步, 就是安装所需要的各种软件包, 包括编译器,解压工具,特定的库等. 这些工作可以简单的通过键入以下命令 (通常需要root 或者是 sudo 权限),以root权限安装下列软件包(可能并不完整,会有提示,提示缺少即装就可以了):
32位(x86)请执行下列命令:
# apt-get install build-essential asciidoc binutils bzip2 gawk gettext \
git libncurses5-dev libz-dev patch unzip zlib1g-dev

64位(x86_64)请执行下列命令(多装了哪些库或软件包呢?请您仔细看一看哦):
# apt-get install build-essential asciidoc binutils bzip2 gawk gettext \
git libncurses5-dev libz-dev patch unzip zlib1g-dev ia32-libs \
lib32gcc1 libc6-dev-i386

参考 本列表中 所列的编译环境所需要软件包或库。
某些依赖的为库或软件包也许操作系统中已经安装过,此时apt-get会作出提示(提示您忽略或重新安装的),别紧张,放轻松些,编译Openwrt不会像编译DD-WRT那样难的(至少本人是体会到了编译DD-WRT的难)。
最后下载一份完整的 Openwrt 源码到编译环境中。关于Openwrt的源代码下载,途径有二,一是通过 svn ,一是通过 git,建议使用 svn ,因为Openwrt主要以 svn 来维护Openwrt系统的版本。另外,请注意Openwrt中不同的分支版本,一个是用得较多的开发快照,俗称 trunk,二是稳定版,俗称 backfire。
安装Subversion
若你想通过svn下载源代码,你需安装 Subversion。Subversion,或称SVN, 是OpenWrt的project中用来控制版本的系统,它非常类似的 CVS的界面和使用条款。 执行下述命令即可安装SVN,很容易的:
# apt-get install subversion

Subversion安装完毕,通过SVN命令可获取得到一份OpenWrt纯净源代码。您还得创建一个目录以便存放获取得到的Openwrt源代码,要获取源代码你还得输入subversion命令来获取 (svn里这种操作称之为'check out') 。命令很简单的,继续看下去就能见到了,别着急,耐心点儿。
编译流程
编译专属于您的设备的特定Openwrt固件以一下五个步骤:
通过Subversion命令获得源代码;
更新(或安装) package feeds[package feeds无法确切翻译,待译吧);
创建一个默认配置以检查编译环境是否搭建好了 (假如需要的话);
用Menuconfig来配置即将编译生成的固件映像文件的配置项;
最后开始编译固件;
下载源代码
最后,下载一份完整的OpenWrt源代码。你可选择:
下载稳定发行版,或
下载开发版 (俗称"trunk"版)。
使用发行版的源码
截止本文时, Openwrt公开发行的稳定版为 OpenWrt 10.03 "backfire"。此版本是最稳定的,但也许不包括最新更新的补丁或最新编写的出的新功能。
下述代码即举例说明了通过svn从brandkfire获得backfire源代码(此版本意思是从trunk分支的补丁也在backfire版本中了,即包含修复补丁):
# mkdir OpenWrt/
# cd OpenWrt/
# svn co svn://svn.openwrt.org/openwrt/branches/backfire

注解: 上述svn命令将在当前目录创建一个 OpenWrt/backfire/ 子目录,此目录包含此命令获取到的源代码。
您也可以通过下述命令,下载不含修复补丁的backfire的原版源码:
# svn co svn://svn.openwrt.org/openwrt/tags/backfire_10.03

使用开发版源代码
当前的开发版本分支(trunk)已包含最新的实验补丁。此分支或许还突破了Openwrt原来所不支持的硬件设备的限制哦,惊喜的同时也有风险存在。因此,编译trunk版,慎之~
# mkdir OpenWrt/
# cd OpenWrt/
# svn co svn://svn.openwrt.org/openwrt/trunk/

更多详细资料详见: https://dev.openwrt.org/wiki/GetSource.
跟进并更新源代码
因Openwrt的源代码随时都会变动,故此命令将确保您所获取得到的源码的最新性。下述假设您用的是backfire版本的源码:
## Here, backfire is the directory name of the current release branch you're tracking
# cd OpenWrt/backfire/
# svn up

'svn up' 命令用于更新SVN上更新了,但本地尚未更新的这部分源代码(本人实践证明此命令会将本地源码与SVN上的源码先比较,若SVN有更新才会下载更新的部分,很实用的一个命令)。如果未指定目标路径,则此命令将更新当前目录及当前目录的子目录内的源码。
Feeds下载
Feeds即为包含到你的OpenWrt环境中的额外软件包的索引之类的。(feed译名很多,莫衷一是,至2008年底为止,还没有一个十分通用而备受认可的中文译名;所以此文当中我们用英文feed来称呼)。 最主要的Feeds有以下三个:
'packages' - 路由的基本功能,
'LuCI' - OpenWrt默认的GUI(WEB管理界面), 及
'Xwrt' - 其他的GUI。
一般情况,你至少需要含 'packages' 和 'LuCI'两个Feeds。
下载完feeds之后, (为编译OpenWrt的recipies额外的预定义包) 您可以检查哪些feeds要包括在内。编辑在你的编译环境的根目录下的'feeds.conf.default'文件。
然后使用下列命令开始下载(注:可能你需要先运行cd trunk进入trunk目录才能成功执行下列命令):
# ./scripts/feeds update -a

在此之后,下载的软件包需要安装。亦即指的下边的命令啦。若路过下边的install命令则后续make menuconfig将无法成功执行!(注:可能你需要先运行cd trunk进入trunk目录才能成功执行下列命令):
# ./scripts/feeds install -a

只需编辑Feeds的配置文件或运行更新命令,即可很方便地更新或添加新的实验性的packages到源码中并编译到OpenWrt固件去。
注意:请老坛友及旧的新闻组成员们注意了,这一步取代了创建符号链接symlinks的老办法哦。
更新Feeds
诸如此类源码,你得定期更新Feeds。 通过如上相同的命令:
# ./scripts/feeds update -a
# ./scripts/feeds install -a

注意:若你清楚地知道你不需添加新的packages到menuconfig中去,那么你可在更新Feeds时跳过这一步。
生成配置
You may not have to make configration always after updating sources and feeds, but making it ensures that all packages from source and feeds are correctly included in your build configuration.
Defconfig
下一步是检查编译环境,若可进行编译则生成默认配置:
# make defconfig

若defconfig回显提示缺少软件包或编译库等依赖,则按提示安装所缺软件包或库等即可,不难的,细心点就行。
Menuconfig
menuconfig是一个基于文本的工具,它处理选择的目标(需要还是不需要)、编译生成软件包(openwrt下是IPKG格式)以及内核选项(编译成模块还是内核)等等
# make menuconfig

在你离开并保存配置文件(默认都是.config)后,将自动配置依赖关系,让你可以着手编译更新的固件。
大众可通过'menuconfig'这一简单的图形化的配置环境,非常轻松地编译出专属您本人的OpenWrt固件。
可以用'menuconfig',以开发的意图来编译OpenWrt的固件,为自己(个人)创造一个结构简单但是功能强大的环境。(上句实在难翻译,只能意译。并且也请大家都学习下编译OP固件,让以OP固件盈利的人丢掉那肮脏的饭碗!)
Menuconfig或多或少有些难以说明的地方,即使是最专业的配置,也可以寻求帮助并加以解决。 需要你指定何种目标平台,要包含的package软件包和内核模块等均需要你指定,配置标准的过程中会包括修改:
目标平台(即路由器何种架构,BCM呢还是AR均可选择)
选择要包含的package软件包
构建系统设置
内核模块
Target system is selected from the extensive list of supported platforms, with the numerous target profiles – ranging from specific devices to generic profiles, all depending on the particular device at hand. Package selection has the option of either 'selecting all package', which might be un-practical in certain situation, or relying on the default set of packages will be adequate or make an individual selection. It is here needed to mention that some package combinations might break the build process, so it can take some experimentation before the expected result is reached. Added to this, the OpenWrt developers are themselves only maintaining a smaller set of packages – which includes all default packages – but, the feeds-script makes it very simple to handle a locally maintained set of packages and integrate them in the build-process.
假如你需要LuCI, 要到Administration 菜单里,在LuCI组件的子菜单下, 并选择: luci-admin-core, luci-admin-full, and luci-admin-mini组件包。
假如你不需要PPP,你可到Network菜单下取消对它的选择,以便编译时不包含此组件。
Menuconfig用法: 确保这些组件包是以 '*'星号标记而不是 'M'标记。
如果你是以星号 '*'标记该组件包, 则该组件包将编译进最终生成的OpenWrt固件中。
如果你仅以 'M'标记该组件包, 则该组件包将不会编译进最终生成的OpenWrt固件中。
The final step before the process of compiling the intended image(s) is to exit 'menuconfig' – this also includes the option to save a specific configuration or load an already existing, and pre-configured, version.
Exit and save.
Source Mirrors
The 'Build system settings' include some efficient options for changing package locations which makes it easy to handle a local package set:
Local mirror for source packages
Download folder
In the case of the first option, you simply enter a full URL to the web or ftp server on which the package sources are hosted. Download folder would in the same way be the path to a local folder on the build system (or network). If you have a web/ftp-server hosting the tarballs, the OpenWrt build system will try this one before trying to download from the location(s) mentioned in the Makefiles . Similar if a local 'download folder', residing on the build system, has been specified. The 'Kernel modules' option is required if you need specific (non-standard) drivers and so forth – this would typically be things like modules for USB or particular network interface drivers etc.
编译固件
万事具备,只欠东风,通过下面简单的make命令来编译:
# make

在多核电脑中编译
具有多核CPU处理器的电脑进行编译,使用下述参数可令编译过程加速。 常规用法为 <您cpu处理器的数目 + 1> – 例如使用3进程来编译 (即双核CPU), 命令及参数如下:
# make -j 3

后台编译
若你在这个系统内编译OpenWrt的同时还处理其他,可以让闲置的I/O及CPU来在后台编译固件 (双核CPU):
# ionice -c 3 nice -n 20 make -j 2

编译简单的基本的软件包
当你为OpenWrt开发或打包软件包,编译简单的基本的软件包可以很轻易地编译该软件包 (例如, 软件包cups):
# make package/cups/compile V=99

一个在Feeds里的软件包大约是这样子的:
# make package/feeds/packages/ndyndns/compile V=99

编译错误
如果因某种不知道的原因而编译失败,下面有种简单的方法来得知编译到底错在哪里了:
# make V=99 2>&1 |tee build.log |grep -i error

上述编译命令意为:V99参数,将出错信息保存在build.log,生成输出完整详细的副本(with stdout piped to stderr),只有在屏幕上显示的错误。
举例说明:
# ionice -c 3 nice -n 20 make -j 2 V=99 CONFIG_DEBUG_SECTION_MISMATCH=y 2>&1 \
|tee build.log |egrep -i '(warn|error)'

The above saves a full verbose copy of the build output (with stdout piped to stderr) in build.log and outputs only warnings and errors while building using only background resources on a dual core CPU.

openwrt的话,你可以下载对AA,BB,CC,trunk四个版本。每个版本对应的SVN/git地址是不一样的。OpenWrt.pro上详细的介绍。

  • openwrt鎬庝箞閫夋嫨缂栬瘧鐗堟湰?
    绛旓細鍙互鍙傝冧互涓嬫楠わ細寮鏈虹櫥闄嗗埌鏀寔缂栬瘧Openwrt鐨勬搷浣滅郴缁 2. 瀹夎鎵闇瑕佺殑鍚勭杞欢鍖 3. 32浣(x86)璇锋墽琛屼笅鍒楀懡浠: # apt-get install build-essential asciidoc binutils bzip2 gawk gettext \git libncurses5-dev libz-dev patch unzip zlib1g-dev64浣(x86_64)璇锋墽琛屼笅鍒楀懡浠: # apt-get install...
  • openwrt鎬庝箞閫夋嫨缂栬瘧鐗堟湰
    绛旓細menuconfig鏄竴涓熀浜庢枃鏈殑宸ュ叿,瀹冨鐞閫夋嫨鐨勭洰鏍(闇瑕佽繕鏄笉闇瑕)銆缂栬瘧鐢熸垚杞欢鍖(openwrt涓嬫槸IPKG鏍煎紡)浠ュ強鍐呮牳閫夐」(缂栬瘧鎴愭ā鍧楄繕鏄唴鏍)绛夌瓑 # make menuconfig 鍦ㄤ綘绂诲紑骞朵繚瀛橀厤缃枃浠(榛樿閮芥槸.config)鍚,灏嗚嚜鍔ㄩ厤缃緷璧栧叧绯,璁╀綘鍙互鐫鎵嬬紪璇戞洿鏂扮殑鍥轰欢銆 澶т紬鍙氳繃'menuconfig'杩欎竴绠鍗曠殑鍥惧舰鍖栫殑閰嶇疆鐜,...
  • 缂栬瘧openwrt鏃,鏇存敼鏌愪釜杞欢鐗堟湰
    绛旓細鏇存敼鏂瑰紡濡備笅锛1銆鍦ㄦ湇鍔″櫒涓婂畨瑁呬竴涓緝楂樼増鏈殑gcc锛屼緥濡俫cc4.8锛岄渶褰撳墠绯荤粺姝e湪浣跨敤鐨刧cc涓嶉渶瑕佸彂鐢熸敼鍙銆2銆佷慨鏀筼penwrt涓璻ule.mk鏂囦欢銆
  • openwrt鎬庝箞鍦缂栬瘧鏃舵煡鐪鐗堟湰鍙
    绛旓細1銆侀鍏坥penwrt鍦ㄧ紪璇戞椂鏌ョ湅鐗堟湰鍙烽渶瑕佸湪缂栬瘧鍓嶆寚瀹氬唴鏍哥増鏈彿銆2銆佸叾娆$敤浜岃繘鍒跺伐鍏锋墦寮class锛岀孩鑹叉涓殑34灏辨槸鐗堟湰鍙枫3銆佹渶鍚庝娇鐢╦ava鑷甫鐨勫伐鍏凤紝鏌ョ湅class缂栬瘧鏃朵娇鐢ㄧ殑缂栬瘧鍣ㄧ増鏈
  • 濡備綍缂栬瘧OpenWrt
    绛旓細鐨勪俊鎭紝鎵撳紑 openwrt/tmp/.config-package.in锛屽畾浣嶅埌瀵瑰簲琛岋紝娣讳笂涓㈡帀鐨勪竴涓紩鍙峰氨鍙互浜銆傜紪璇戦夐」锛氭墽琛 make menuconfig锛屾牴鎹矾鐢卞櫒鎯呭喌锛岄夋嫨 Target System 鍜 Subtarget銆傚鎰忎簯涓浠e拰鏋佸9S鐨 Target System 鍧囦负 Ralink RT288x/RT3xxx 銆傚浜嶴ubtarget 锛屽墠鑰呬负 MT7620n based boards 锛...
  • openwrt绯荤粺缂栬瘧鏃 target profile鎬庝箞閫夋嫨
    绛旓細棣栧厛纭畾浣犵殑璺敱鍣ㄨ姱鐗囨柟妗堟槸鍚﹀湪 target platform 鏀寔鍒楄〃鍐呫俬ttps://dev.openwrt.org/wiki/platforms 鐒跺悗鎸夌収http://wiki.openwrt.org/doc/devel/start 鏉ユ悶 杩欎釜鏄姞 target profile鐨勪緥瀛 http://blog.chinaunix.net/uid-27057175-id-4479784.html ...
  • ...鎬庝箞鏍鎵嶇煡閬缂栬瘧openwrt鐨勬椂鍊閫夋嫨浠涔堢被鍨嬬殑鑺墖?
    绛旓細棣栧厛纭畾浣犲凡缁忚濂戒竴浜涘繀瑕佺殑缂栬瘧宸ュ叿锛坓cc锛夛紝鐒跺悗make menuconfig 锛孴arget System---AR71xx/AR7240/AR913x/AR934x CPU鍨嬪彿,鐒跺悗涓嬮潰閭d釜Target Profile灏辨槸浣犲叿浣撶殑璺敱鍣ㄥ瀷鍙蜂簡
  • 濡備綍涓轰竴涓柊璺敱鍣缂栬瘧openwrt
    绛旓細鎴戣繖娈垫椂闂村湪瀛︿範openwrt鐨缂栬瘧锛屾暀绋嬬湅浜嗗嚑鍗侀亶锛岃澶囨槸hg255d锛屾垜鎯宠嚜宸变负鍏剁紪璇戜竴涓浐浠讹紝鎴戠殑缂栬瘧杩囩▼濡備笅鍥炬墍绀猴紙鐢ㄧ殑trunk鐗堬級锛氬叾浠栫殑閫夐」閮芥寜榛樿锛岀紪璇戞垚鍔熷悗锛屽湪trunk/bin/ramips/鏈夊涓嬫枃浠 鎴戦氳繃TTL绾挎妸openwrt-ramips-rt305x-uImage.bin鍒峰叆鎴愬姛鍚庯紝鍚姩濡備笅鎵绀 ...
  • 鍦openwrt涓鎬庝箞缂栬瘧鑷畾涔夌殑鍐呮牳妯″潡
    绛旓細鈥揳 鎺ョ潃灏辨槸缂栬瘧浜嗐傜紪璇戞柟娉曞涓嬶細make defconfig make menuconfig杩涘叆瀹氬埗鐣岄潰锛閫夋嫨鑷繁鐨勮澶囩被鍨嬨俶ake V=99 涓嬮潰灏辨槸澧炲姞鍐呮牳妯″潡鐨勬柟娉曚簡 杩涘叆package鐩綍锛屽垱寤烘ā鍧楃洰褰 cd backfire/package mkdir example 杩涘叆example鐩綍锛屽垱寤篗akefile鏂囦欢鍜屼唬鐮佽矾寰 cd example touch銆Makefile mkdir src ...
  • 缂栬瘧OpenWrt绯荤粺姹傚姪
    绛旓細OpenWrt缂栬瘧鐜鎼缓鍜岀紪璇戞柟娉 涓銆 鏇存柊寮鍙戠郴缁熴 瀹夎瀹寀buntu 鍚庯紝閲嶆柊寮鏈虹殑鏃跺欙紝浼氭湁涓涓猇Mware tools 瀹夎鐨勬彁绀虹晫闈紝鑰愬績绛夊緟锛岀瓑鍒癡Mware tools 瀹夎濂藉悗 鍥犱负鏇存柊绯荤粺鍜屽畨瑁呬竴浜涘伐鍏峰寘闇瑕佺敤鍒扮綉缁滐紝鎵浠ヨ繘鍏buntu鐨勭晫闈㈠悗锛 灏唘...
  • 扩展阅读:openwrt编译菜单说明 ... 编译openwrt要等几个小时 ... openwrt官网 ... openwrt 编译 国内 ... openwrt 无线未开启或关联 ... openwrt软件包列表 ... openwrt怎么挂wifi ... openwrt procd-ujail ... openwrt怎么恢复初始 ...

    本站交流只代表网友个人观点,与本站立场无关
    欢迎反馈与建议,请联系电邮
    2024© 车视网