{"id":1523,"date":"2015-03-04T16:05:59","date_gmt":"2015-03-04T08:05:59","guid":{"rendered":"http:\/\/www.51cos.com\/?p=1523"},"modified":"2015-03-04T16:05:59","modified_gmt":"2015-03-04T08:05:59","slug":"%e5%85%b3%e4%ba%8e%e5%86%85%e6%a0%b8%e7%bc%96%e8%af%91%e5%8f%8a%e9%85%8d%e7%bd%ae%e6%80%bb%e7%bb%93%e2%91%a0auto-conf%e4%b8%8e%e2%91%a1autoconf-h%e7%9a%84%e8%87%aa%e5%8a%a8%e7%94%9f","status":"publish","type":"post","link":"http:\/\/www.51cos.com\/?p=1523","title":{"rendered":"\u5173\u4e8e\u5185\u6838\u7f16\u8bd1\u53ca\u914d\u7f6e\u603b\u7ed3:\u2460auto.conf\u4e0e\u2461autoconf.h\u7684\u2018\u81ea\u52a8\u2019\u751f\u6210"},"content":{"rendered":"<h2 id=\"t_87c063060101klau\" class=\"titName SG_txta\">1.\u00a0autoconf.h\u751f\u6210\u662f\u5728make\u00a0config\u5b8c\u4e86\u4e4b\u540e\uff0c\u00a0\u7531scripts\/kconfig\/confdata.c\u751f\u6210\u7684\uff0c\u8bfb\u53d6.config\u4e2d\u7684\u914d\u7f6e\uff0c\u7136\u540e\u901a\u8fc7 header_print_symbol\u5c06=y\u7684\u5b9a\u4e49\u91cd\u7f6e\u4e3a#define\u00a0CONFIG_XXX\u00a01\u7684\u6a21\u5f0f\u5199\u5230autoconf.h\u6587\u4ef6\u5f53\u4e2d\u3002<br \/>\n2.\u00a0\u4f5c\u7528\u5c31\u662f\u4f7f\u5f97\u4f60\u5728menuconfig\u4e2d\u9009\u4e2d\u7684\u914d\u7f6e\u6210\u4e3aC\u8bed\u8a00\u5f53\u4e2d\u80fd\u8bc6\u522b\u7684\u5934\u6587\u4ef6\u683c\u5f0f\uff0c\u00a0\u4ee5\u4fbf\u5728\u4ee5\u540e\u4f7f\u7528\u7684\u65f6\u5019\u4f5c\u4e3a\u5b8f\u5b9a\u4e49\u51fa\u73b0\u3002<\/h2>\n<p>&nbsp;<\/p>\n<div><\/div>\n<div>\u4e00\u3001\u7f16\u8bd1<\/div>\n<div><\/div>\n<div>1.\u89e3\u538b\u7f29<\/div>\n<div>\u2460tar xvf linux-2.6.22.6.tar.bz2<\/div>\n<div>\u2461\u8fdb\u5165linux-2.6.22.6\u76ee\u5f55 \u00a0<wbr \/><\/div>\n<div>cd linux-2.6.22.6\/<\/div>\n<div>\u00a0<wbr \/><\/div>\n<div>\u00a0<wbr \/><\/div>\n<div>2.\u6253\u8865\u4e01<\/div>\n<div>patch -p1&lt;..\/linux-2.6.22.6_jz2440.patch\u00a0<wbr \/><\/div>\n<div>\u00a0<wbr \/><\/div>\n<div>\u00a0<wbr \/><\/div>\n<div>3.\u914d\u7f6e\u5185\u6838(\u5177\u4f53\u6765\u8bf4\u5c31\u662f:\u652f\u6301\u54ea\u4e2a\u67b6\u6784\u7684\u5355\u677f)<\/div>\n<div>-&gt;\u751f\u6210.config<\/div>\n<div>\u00a0<wbr \/><\/div>\n<div>\u2460make menuconfig<\/div>\n<div>-&gt;\u9009\u62e9\u4f60\u6240\u9700\u7684\u4e1c\u897f,\u7f16\u8fdb\u5185\u6838(\u2460\u505a\u4e3a\u6a21\u5757\u7f16\u8fdb\u5185\u6838 \u2461\u9759\u6001\u7f16\u8fdb\u5185\u6838built-in.o)<\/div>\n<div>-&gt;\u8fd9\u79cd\u65b9\u6cd5\u5f88\u590d\u6742.\u56e0\u4e3a\u914d\u7f6e\u9009\u9879\u592a\u591a.<\/div>\n<div>\u00a0<wbr \/><\/div>\n<div>\u2461\u4f7f\u7528\u9ed8\u8ba4\u7684\u914d\u7f6e,\u5728\u4e0a\u9762\u4fee\u6539<\/div>\n<div>-&gt;\u5728\u5185\u6838\u76ee\u5f55(linux-2.6.22.6\/)\u4e0b\u67e5\u627e<\/div>\n<div>find -name &#8220;*defconfig*&#8221; \u00a0<wbr \/> &#8211;&gt;\u4f1a\u641c\u7d22\u51fa\u5f88\u591a\u6587\u4ef6<\/div>\n<div>-&gt;\u8fdb\u5165 .\/arch\/arm\/configs\/ \u76ee\u5f55\u770b\u4e00\u4e0b:<\/div>\n<div>\u00a0<wbr \/>cd .\/arch\/arm\/configs\/ \u00a0<wbr \/> \u00a0<wbr \/>-&gt;&gt;\u91cc\u9762\u6709\u5f88\u591a\u914d\u7f6e\u6587\u4ef6 \u201c XXX_defconfig\u201d \u00a0<wbr \/>(XXX \u4ee3\u8868\u5f88\u591a\u7c7b\u4f3c\u7684\u6587\u4ef6\u540d)<\/div>\n<div>\u00a0<wbr \/> -&gt;&gt;\u6211\u4eec\u627e\u5230\u548c\u6211\u4eec\u76842440\u5f00\u53d1\u677f\u76f8\u4f3c\u7684\u914d\u7f6e\u6587\u4ef6 s3c2410_defconfig \u00a0<wbr \/><\/div>\n<div>-&gt;\u8fd4\u56de \/work\/system\/linux-2.6.22.6$ \u76ee\u5f55<\/div>\n<div>\u6267\u884c:make s3c2410_defconfig \u00a0<wbr \/> -&gt;&gt;\u751f\u6210\u4e86 .config\u6587\u4ef6 (\u4e5f\u5c31\u662fLinux\u5185\u6838\u7684\u914d\u7f6e\u6587\u4ef6)<\/div>\n<div>-&gt;&gt;\u6211\u4eec\u7684 make menuconfig \u547d\u4ee4\u4e5f\u662f\u53bb \u8bfb .config\u6587\u4ef6,\u7136\u540e\u51fa\u73b0\u83dc\u5355.<\/div>\n<div>-&gt;.config\u91cc\u9762\u7684\u5185\u5bb9\u5c31\u662f\u6211\u4eec\u6240\u9700\u7684\u914d\u7f6e\u5185\u5bb9,\u4e0d\u540c\u7684\u5f00\u53d1\u677f\u9700\u8981\u53bb\u505a\u76f8\u5e94\u7684\u4fee\u6539<\/div>\n<div>\u00a0<wbr \/><\/div>\n<div>\u2462\u4f7f\u7528\u5382\u5bb6\u63d0\u4f9b\u7684\u914d\u7f6e\u6587\u4ef6(\u5982:config_ok)<\/div>\n<div>-&gt;\u5382\u5546\u7ed9\u6211\u4eec\u63d0\u4f9b\u4e86\u914d\u7f6e\u6587\u4ef6config_ok \u00a0<wbr \/><\/div>\n<div>\u90a3\u6211\u4eec\u8bb2config_ok\u7684\u5185\u5bb9\u62f7\u8d1d\u5230.config\u5c31\u53ef\u4ee5\u4e86<\/div>\n<div>cp config_ok .config<\/div>\n<div>-&gt;\u6267\u884cmake menuconfig\u00a0<wbr \/><\/div>\n<div>\u51fa\u73b0\u914d\u7f6e\u83dc\u5355,\u914d\u7f6e\u5b83<\/div>\n<div><\/div>\n<div><\/div>\n<div>4.\u7f16\u8bd1<\/div>\n<div>\u2460\u7f16\u8bd1uImage<\/div>\n<div>-&gt;make uImage<\/div>\n<div><\/div>\n<div><\/div>\n<div>\u4e8c\u3001\u914d\u7f6e<\/div>\n<div>(1) \u4e3a\u4ec0\u4e48\u6211\u4eec\u5728\u7f16\u8bd1\u5185\u6838\u4e4b\u524d\u9700\u8981\u914d\u7f6e\u5462? \u539f\u56e0\u5f88\u7b80\u5355:\u9700\u8981\u54ea\u4e9b\u4e1c\u897f(\u4e5f\u5c31\u662f\u652f\u6301\u54ea\u4e9b\u4e1c\u897f)\u5c31\u914d\u7f6e\u5b83,\u8ba9\u5185\u6838\u652f\u6301\u5b83.<\/div>\n<div>\u4ece\u5185\u6838\u6e90\u7801\u7684\u89d2\u5ea6\u6765\u770b\u7684\u8bdd,\u5185\u6838\u6e90\u7801\u4e2d\u51fa\u73b0\u4e86\u5f88\u591a&#8221;\u5224\u65ad\u8bed\u53e5&#8221;(\u5b98\u65b9\u7684\u8bf4\u6cd5\u662f:\u6761\u4ef6\u6307\u793a\u7b26),\u8fd9\u6837\u5c31\u4f1a\u51fa\u73b0\u201c\u52a8\u6001\u7f16\u8bd1\u201d<\/div>\n<div>\u7684\u60c5\u51b5,\u5185\u6838\u600e\u4e48\u77e5\u9053\u9700\u8981\u628a\u54ea\u4e9b&#8221;\u6761\u4ef6\u6307\u793a\u7b26&#8221;\u6240\u5305\u542b\u7684\u5185\u5bb9 \u7f16\u8bd1\u8fdb\u5185\u6838\u5462? \u5c31\u5fc5\u987b\u4f9d\u9760\u914d\u7f6e\u6587\u4ef6(.config)\u4e86<\/div>\n<div>\u603b\u7ed3:\u914d\u7f6e\u4e3b\u8981\u4ece\u4e24\u4e2a\u65b9\u9762\u51fa\u53d1<\/div>\n<div>\u2460\u4eceMakefile\u7684\u89d2\u5ea6<\/div>\n<div>-&gt; \u9759\u6001\u7f16\u8fdb\u5185\u6838(\u76f4\u63a5\u7f16\u8fdb\u5185\u6838)<\/div>\n<div>-&gt; \u52a8\u6001\u7f16\u8fdb\u5185\u6838(\u505a\u4e3a\u6a21\u5757\u7f16\u8fdb\u5185\u6838)<\/div>\n<div>-&gt; <span style=\"color: #ff0000;\"><span style=\"text-decoration: underline;\">\u5728\/include\/config\u76ee\u5f55\u4e0b\u81ea\u52a8\u751f\u6210auto.conf \u7ed9\u9876\u5c42Makefile\u4f7f\u7528<\/span><\/span><\/div>\n<div>-&gt;&gt;\u5728\u9876\u5c42Makefile\u4e2d\u641c\u7d22auto.conf : \u53ef\u4ee5\u770b\u5230 include\/config\/auto.conf \u00a0<wbr \/> \u00a0<wbr \/> (\u5f53\u7136,\u6ca1\u6709\u914d\u7f6e\u7684\u5185\u6838\u4ee3\u7801\u662f\u627e\u4e0d\u5230 include\/\u76ee\u5f55\u4e0b\u7684config\u76ee\u5f55\u7684)<\/div>\n<div>\u5728auto.conf\u4e2d\u53ef\u4ee5\u770b\u5230\u7c7b\u4f3c\u4e8e: \u00a0<wbr \/> \u00a0<wbr \/> \u00a0<wbr \/> \u00a0<wbr \/> \u00a0<wbr \/> \u00a0<wbr \/> \u00a0<wbr \/> \u00a0<wbr \/> \u00a0<wbr \/> \u00a0<wbr \/> \u00a0<wbr \/> \u00a0<wbr \/> \u00a0<wbr \/>\u8fd9\u6837\u7684\u914d\u7f6e\u9009\u9879,\u8fd9\u662f\u63d0\u4f9b\u7ed9\u9876\u5c42Makefile\u4f7f\u7528\u7684.<\/div>\n<div><span style=\"color: #0703fe;\">\u00a0<wbr \/> \u00a0<wbr \/> \u00a0<wbr \/> \u00a0<wbr \/> \u00a0<wbr \/> \u00a0<wbr \/> \u00a0<wbr \/> \u00a0<wbr \/> \u00a0<wbr \/> \u00a0<wbr \/> \u00a0<wbr \/> \u00a0<wbr \/> \u00a0<wbr \/> \u00a0<wbr \/> \u00a0<wbr \/>ONFIG_ROOT_NFS \u00a0<wbr \/> \u00a0<wbr \/> \u00a0<wbr \/> \u00a0<wbr \/>= y \u00a0<wbr \/> \u00a0<wbr \/> \u00a0<wbr \/> \u00a0<wbr \/> \u00a0<wbr \/> \u00a0<wbr \/> \u00a0<wbr \/>\u00a0<wbr \/><\/span><\/div>\n<div><span style=\"color: #0703fe;\">\u00a0<wbr \/> \u00a0<wbr \/> \u00a0<wbr \/> \u00a0<wbr \/> \u00a0<wbr \/> \u00a0<wbr \/> \u00a0<wbr \/> \u00a0<wbr \/> \u00a0<wbr \/> \u00a0<wbr \/> \u00a0<wbr \/> \u00a0<wbr \/> \u00a0<wbr \/> \u00a0<wbr \/> \u00a0<wbr \/>CONFIG_TMPFS \u00a0<wbr \/> \u00a0<wbr \/> \u00a0<wbr \/> \u00a0<wbr \/> \u00a0<wbr \/>= y \u00a0<wbr \/> \u00a0<wbr \/> \u00a0<wbr \/> \u00a0<wbr \/> \u00a0<wbr \/> \u00a0<wbr \/> \u00a0<wbr \/> \u00a0<wbr \/>\u00a0<wbr \/><\/span><\/div>\n<div><span style=\"color: #0703fe;\">\u00a0<wbr \/> \u00a0<wbr \/> \u00a0<wbr \/> \u00a0<wbr \/> \u00a0<wbr \/> \u00a0<wbr \/> \u00a0<wbr \/> \u00a0<wbr \/> \u00a0<wbr \/> \u00a0<wbr \/> \u00a0<wbr \/> \u00a0<wbr \/> \u00a0<wbr \/> \u00a0<wbr \/> \u00a0<wbr \/>CONFIG_GENERIC_GPIO \u00a0<wbr \/> = y \u00a0<wbr \/> \u00a0<wbr \/> \u00a0<wbr \/> \u00a0<wbr \/> \u00a0<wbr \/><\/span><\/div>\n<div><span style=\"color: #0703fe;\">\u00a0<wbr \/> \u00a0<wbr \/> \u00a0<wbr \/> \u00a0<wbr \/> \u00a0<wbr \/> \u00a0<wbr \/> \u00a0<wbr \/> \u00a0<wbr \/> \u00a0<wbr \/> \u00a0<wbr \/> \u00a0<wbr \/> \u00a0<wbr \/> \u00a0<wbr \/> \u00a0<wbr \/> \u00a0<wbr \/>CONFIG_S3C2410_PM \u00a0<wbr \/> \u00a0<wbr \/> = y<\/span> \u00a0<wbr \/><\/div>\n<div>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/><\/div>\n<div>\u2461\u4ece\u5185\u6838\u6e90\u7801\u7684\u89d2\u5ea6<\/div>\n<div>-&gt;\u201c\u6761\u4ef6\u6307\u793a\u7b26\u201d\u6240\u6307\u793a\u7684&#8221;\u4ee3\u7801&#8221;\u5230\u5e95\u9700\u4e0d\u9700\u8981\u88ab\u7f16\u8fdb\u5185\u6838.<\/div>\n<div>-&gt;<span style=\"color: #ff0000;\"><span style=\"text-decoration: underline;\">\u5728include\/linux\u76ee\u5f55\u4e0b\u81ea\u52a8\u751f\u6210\u4e86autoconf.h\u8fd9\u4e2a\u5934\u6587\u4ef6<\/span><\/span> (\u5f53\u7136,\u6ca1\u6709\u914d\u7f6e\u7684\u5185\u6838\u4ee3\u7801\u662f\u627e\u4e0d\u5230 autoconf.h\u8fd9\u4e2a\u5934\u6587\u4ef6\u7684) \u00a0<wbr \/> \u00a0<wbr \/> \u00a0<wbr \/>\u00a0<wbr \/><\/div>\n<div>\u5728autoconf.h\u4e2d\u53ef\u4ee5\u770b\u5230\u7c7b\u4f3c\u4e8e: \u00a0<wbr \/> \u00a0<wbr \/> \u00a0<wbr \/> \u00a0<wbr \/> \u00a0<wbr \/> \u00a0<wbr \/> \u00a0<wbr \/> \u00a0<wbr \/> \u00a0<wbr \/> \u00a0<wbr \/> \u00a0<wbr \/> \u00a0<wbr \/> \u00a0<wbr \/> \u00a0<wbr \/>\u8fd9\u6837\u7684\u914d\u7f6e\u9009\u9879,\u8fd9\u662f\u63d0\u4f9b\u7ed9Linux\u6e90\u7801\u4f7f\u7528. \u00a0<wbr \/><\/div>\n<div><span style=\"color: #ff0000;\">\u00a0<wbr \/> \u00a0<wbr \/> \u00a0<wbr \/> \u00a0<wbr \/> \u00a0<wbr \/> \u00a0<wbr \/> \u00a0<wbr \/> \u00a0<wbr \/> \u00a0<wbr \/> \u00a0<wbr \/> \u00a0<wbr \/> \u00a0<wbr \/> \u00a0<wbr \/> \u00a0<wbr \/> #define CONFIG_CPU_S3C2410_DMA \u00a0<wbr \/> \u00a0<wbr \/> \u00a0<wbr \/> 1 \u00a0<wbr \/> \u00a0<wbr \/> \u00a0<wbr \/>\u00a0<wbr \/><\/span><\/div>\n<div><span style=\"color: #ff0000;\">\u00a0<wbr \/> \u00a0<wbr \/> \u00a0<wbr \/> \u00a0<wbr \/> \u00a0<wbr \/> \u00a0<wbr \/> \u00a0<wbr \/> \u00a0<wbr \/> \u00a0<wbr \/> \u00a0<wbr \/> \u00a0<wbr \/> \u00a0<wbr \/> \u00a0<wbr \/> \u00a0<wbr \/> #define CONFIG_CRYPTO_ECB_MODULE \u00a0<wbr \/> \u00a0<wbr \/> 1 \u00a0<wbr \/> \u00a0<wbr \/>\u00a0<wbr \/><\/span><\/div>\n<div><span style=\"color: #ff0000;\">\u00a0<wbr \/> \u00a0<wbr \/> \u00a0<wbr \/> \u00a0<wbr \/> \u00a0<wbr \/> \u00a0<wbr \/> \u00a0<wbr \/> \u00a0<wbr \/> \u00a0<wbr \/> \u00a0<wbr \/> \u00a0<wbr \/> \u00a0<wbr \/> \u00a0<wbr \/> \u00a0<wbr \/> #define CONFIG_SMDK2440_CPU2440 \u00a0<wbr \/> \u00a0<wbr \/> \u00a0<wbr \/>1\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/><\/span><\/div>\n<div><span style=\"color: #ff0000;\">\u00a0<wbr \/> \u00a0<wbr \/> \u00a0<wbr \/> \u00a0<wbr \/> \u00a0<wbr \/> \u00a0<wbr \/> \u00a0<wbr \/> \u00a0<wbr \/> \u00a0<wbr \/> \u00a0<wbr \/> \u00a0<wbr \/> \u00a0<wbr \/> \u00a0<wbr \/> \u00a0<wbr \/> #define CONFIG_KGDB_PORT_NUM \u00a0<wbr \/> \u00a0<wbr \/> \u00a0<wbr \/> \u00a0<wbr \/> 0 \u00a0<wbr \/> \u00a0<wbr \/> \u00a0<wbr \/> \u00a0<wbr \/>\u00a0<wbr \/><\/span><\/div>\n<div><span style=\"color: #ff0000;\">\u00a0<wbr \/> \u00a0<wbr \/> \u00a0<wbr \/> \u00a0<wbr \/> \u00a0<wbr \/> \u00a0<wbr \/> \u00a0<wbr \/> \u00a0<wbr \/> \u00a0<wbr \/> \u00a0<wbr \/> \u00a0<wbr \/> \u00a0<wbr \/> \u00a0<wbr \/> \u00a0<wbr \/> #define CONFIG_SERIAL_8250_SHARE_IRQ 1<\/span>\u00a0<wbr \/><\/div>\n<div>\u00a0<wbr \/><\/div>\n<div>\u00a0<wbr \/><\/div>\n<div>(2) \u4e3a\u4e86\u66f4\u597d\u7684\u8bf4\u660e\u8fd9\u79cd\u60c5\u51b5\u6211\u4eec\u6765\u770b\u4e2a\u4f8b\u5b50: \u8ba9\u5185\u6838\u652f\u6301 \u7f51\u5361(DM9000)<\/div>\n<div>\u00a0<wbr \/><\/div>\n<div>\u2460\u5728\/work\/system\/linux-2.6.22.6 \u76ee\u5f55\u4e0b\u641c\u7d22 CONFIG_DM9000<\/div>\n<div>-&gt; grep &#8220;CONFIG_DM9000&#8221; * -nR (\u641c\u7d22\u51fa\u4e00\u5806\u4e1c\u897f,\u6211\u4eec\u6765\u770b\u6211\u4eec\u6240\u9700\u7684\u4fe1\u606f)<\/div>\n<div>-&gt;&gt; config_ok:599:CONFIG_DM9000=y<\/div>\n<div>-&gt;&gt; drivers\/net\/Makefile:197:obj-$(CONFIG_DM9000) += dm9000.o<\/div>\n<div>-&gt;&gt; arch\/arm\/plat-s3c24xx\/common-smdk.c:46:#if defined(CONFIG_DM9000) || defined(CONFIG_DM9000_MODULE) \u00a0<wbr \/><\/div>\n<div>&lt;\u6ce8\u610f:CONFIG_DM9000\u5728\u539f\u59cb\u7684Linux\u5185\u6838\u6e90\u7801\u53ef\u80fd\u627e\u4e0d\u5230,\u8981\u5728\u6253\u597d\u8865\u4e01\u6216\u8005\u914d\u7f6e\u540e\u7684\u6e90\u7801\u4e2d\u624d\u80fd\u627e\u5230,\u6839\u636e\u5177\u4f53\u7684\u5382\u5546\u800c\u5b9a&gt;<\/div>\n<div>\u00a0<wbr \/><\/div>\n<div>\u2461\u6211\u4eec\u770b\u5230config_ok \u4e2d\u6709\u8fd9\u4e48\u4e00\u53e5: CONFIG_DM9000 = y \u00a0<wbr \/>(y \u7684\u542b\u4e49\u662f\u9759\u6001\u7f16\u8fdb\u5185\u6838 M \u662f\u4ee5\u6a21\u5757\u7f16\u8fdb\u5185\u6838)\u00a0<wbr \/><\/div>\n<div>\u7136\u540edrivers\/net\/\u76ee\u5f55\u4e0b\u7684 Makefile \u6587\u4ef6\u4f1a\u628a dm9000.o \u9759\u6001\u7f16\u8fdb\u5185\u6838: obj-y += dm9000.o<\/div>\n<div>\u8fd9\u662f\u7ad9\u5728Makefile\u7684\u89d2\u5ea6\u6765\u8bf4\u7684.<\/div>\n<div>&lt;\u5f53\u7136\u5b83\u8fd8\u4f1a\u81ea\u52a8\u751f\u6210\u4e00\u4e2a\u914d\u7f6e\u6587\u4ef6auto.conf(\u5728\/include\/config\u76ee\u5f55\u4e0b) \u7ed9\u9876\u5c42Makefile\u4f7f\u7528&gt;<\/div>\n<div>\u00a0<wbr \/><\/div>\n<div>\u2462\u4e0a\u9762\u7684\u4f8b\u5b50\u4e0d\u8db3\u4ee5\u8bf4\u660e.config\u5bf9\u6e90\u7801\u5c42\u6b21\u7684\u5f71\u54cd,\u6211\u4eec\u518d\u6765\u770b\u4e00\u4e2a\u6e90\u7801\u7ea7\u522b\u7684\u4f8b\u5b50.<\/div>\n<div>-&gt; \u5728s3c2410fb.c(driver\/video)\u6587\u4ef6\u4e2d\u627e\u5230\u4e86\u8fd9\u4e48\u4e00\u6bb5\u4ee3\u7801.<\/div>\n<div>\u00a0<wbr \/> \u00a0<wbr \/> \u00a0<wbr \/> \u00a0<wbr \/>\u00a0<wbr \/><\/div>\n<div>#ifdef CONFIG_FB_S3C2410_DEBUG<\/div>\n<div>static int debug \u00a0<wbr \/> = 1; \u00a0<wbr \/> \u00a0<wbr \/>\u00a0<wbr \/><\/div>\n<div>#else \u00a0<wbr \/> \u00a0<wbr \/> \u00a0<wbr \/> \u00a0<wbr \/> \u00a0<wbr \/> \u00a0<wbr \/> \u00a0<wbr \/> \u00a0<wbr \/> \u00a0<wbr \/> \u00a0<wbr \/> \u00a0<wbr \/> \u00a0<wbr \/>\u00a0<wbr \/><\/div>\n<div>static int debug \u00a0<wbr \/> = 0; \u00a0<wbr \/> \u00a0<wbr \/>\u00a0<wbr \/><\/div>\n<div>#endif \u00a0<wbr \/> \u00a0<wbr \/> \u00a0<wbr \/> \u00a0<wbr \/> \u00a0<wbr \/> \u00a0<wbr \/><\/div>\n<div>-&gt;\u6211\u4eec\u770b\u5230 CONFIG_FB_S3C2410_DEBUG \u00a0<wbr \/>\u8fd9\u4e48\u4e2a\u5b8f\u5b9a\u4e49.\u6211\u4eec\u5728\u5185\u6838\u6e90\u7801\u91cc\u9762\u662f\u641c\u7d22\u4e0d\u5230\u7684.\u5176\u5b9e\u5b83\u88ab\u5b9a\u4e49\u5728.config\u5f53\u4e2d<\/div>\n<div>(\u5f53\u7136,\u5b9a\u4e49\u5728.config\u5f53\u4e2d\u662f\u4e0d\u80fd\u88ab\u5185\u6838\u4ee3\u7801\u4f7f\u7528\u7684,\u9700\u8981\u88ab\u5b9a\u4e49\u4e3a\u5b8f\u624d\u80fd\u88ab\u5185\u6838\u4ee3\u7801\u4f7f\u7528, \u8fd9\u6837\u5c31\u5fc5\u987b\u81ea\u52a8\u751f\u6210 XXX.h\u6587\u4ef6)<\/div>\n<div>-&gt;\u6211\u4eec\u5728\u5185\u6838\u6e90\u7801\u76ee\u5f55\u4e0b\u641c\u7d22CONFIG_FB_S3C2410_DEBUG : \u00a0<wbr \/> grep &#8220;CONFIG_FB_S3C2410_DEBUG&#8221; * -nR<\/div>\n<div>\u00a0<wbr \/> \u00a0<wbr \/> \u00a0<wbr \/> \u00a0<wbr \/>arch\/arm\/configs\/s3c2410_defconfig:929:# CONFIG_FB_S3C2410_DEBUG is not set<\/div>\n<div>\u00a0<wbr \/> \u00a0<wbr \/> \u00a0<wbr \/> \u00a0<wbr \/>config_ok:948:# CONFIG_FB_S3C2410_DEBUG is not set \u00a0<wbr \/> \u00a0<wbr \/> \u00a0<wbr \/> \u00a0<wbr \/> \u00a0<wbr \/> \u00a0<wbr \/> \u00a0<wbr \/> \u00a0<wbr \/> \u00a0<wbr \/> \u00a0<wbr \/> \u00a0<wbr \/> \u00a0<wbr \/>\u00a0<wbr \/><\/div>\n<div>\u00a0<wbr \/> \u00a0<wbr \/> \u00a0<wbr \/> \u00a0<wbr \/>drivers\/video\/s3c2410fb.c:109:#ifdef CONFIG_FB_S3C2410_DEBUG \u00a0<wbr \/> \u00a0<wbr \/> \u00a0<wbr \/> \u00a0<wbr \/> \u00a0<wbr \/> \u00a0<wbr \/> \u00a0<wbr \/>\u00a0<wbr \/><\/div>\n<div>\u00a0<wbr \/> \u00a0<wbr \/> \u00a0<wbr \/> \u00a0<wbr \/>\u901a\u8fc7\u4e0a\u9762\u641c\u7d22\u7684\u4fe1\u606f,\u6211\u76f8\u4fe1\u5927\u5bb6\u53ef\u4ee5\u660e\u767d .config(config_ok)\u7684\u914d\u7f6e\u5bf9 \u201c\u6e90\u7801\u201d\u7ea7\u522b\u7684\u5f71\u54cd\u4e86.<\/div>\n<div>\u00a0<wbr \/> \u00a0<wbr \/> \u00a0<wbr \/> \u00a0<wbr \/><\/div>\n<div>\u00a0<wbr \/> \u00a0<wbr \/> \u00a0<wbr \/>-&gt;\u6ce8\u610f:\u5f53\u7136\u8fd9\u4e2a\u548c\u201c\u5b8f\u201d\u8fd8\u662f\u6709\u533a\u522b\u7684,\u5b8f\u53ea\u80fd\u5728 XX.h\u4e2d\u5b9a\u4e49, Linux\u4e2d include\/linux\/autoconfig.h \u662f<span style=\"color: #ff0000;\"><span style=\"text-decoration: underline;\">\u81ea\u52a8\u751f\u6210<\/span><\/span>\u7684,<span style=\"text-decoration: underline;\"><span style=\"color: #3bff10;\"><i>\u6362\u53e5\u8bdd\u8bf4,\u662f\u6839\u636e.config\u751f\u6210\u7684.<\/i><\/span><\/span><\/div>\n<div>\u00a0<wbr \/> \u00a0<wbr \/> \u00a0<wbr \/> include\/linux\/autoconfig.h \u4e2d\u7684\u5185\u5bb9\u5c31\u6765\u6e90\u4e8e .config \u6362\u53e5\u8bdd\u8bf4,include\/linux\/autoconfig.h \u4e2d\u7684\u5185\u5bb9\u662f\u6839\u636e<\/div>\n<div>\u00a0<wbr \/> \u00a0<wbr \/> \u00a0<wbr \/> .config \u4e2d\u7684\u5185\u5bb9\u800c\u751f\u6210\u7684.<\/div>\n<div>\u00a0<wbr \/> \u00a0<wbr \/> \u00a0<wbr \/> \u00a0<wbr \/><\/div>\n<div>(3)\u603b\u7ed3<\/div>\n<div>\u00a0<wbr \/> \u00a0<wbr \/> \u00a0<wbr \/> \u00a0<wbr \/> \u00a0<wbr \/> \u00a0<wbr \/> \u00a0<wbr \/> \u00a0<wbr \/> \u00a0<wbr \/> \u00a0<wbr \/> \u00a0<wbr \/> \u00a0<wbr \/> \u00a0<wbr \/> \u00a0<wbr \/> \u00a0<wbr \/> \u751f\u6210.config<\/div>\n<div>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<\/div>\n<div>\u00a0<wbr \/> \u00a0<wbr \/> \u7f16\u8bd1\u5185\u6838: \u00a0<wbr \/> \u00a0<wbr \/> \u00a0<wbr \/> \u00a0<wbr \/> \u00a0<wbr \/> \u00a0<wbr \/> \u00a0<wbr \/> \u00a0<wbr \/> make uImage<\/div>\n<div>\u00a0<wbr \/>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<\/div>\n<div>\u81ea\u52a8\u751f\u6210-&gt; \u00a0<wbr \/> \u2460 <span style=\"color: #ff0000;\"><b>auto.conf<\/b><\/span>\u00a0<wbr \/> \u00a0<wbr \/> \u00a0<wbr \/> \u00a0<wbr \/> \u00a0<wbr \/> \u00a0<wbr \/> \u00a0<wbr \/> \u00a0<wbr \/> \u00a0<wbr \/>\u2461<span style=\"color: #0618fd;\"><b>autoconf.h(\u5b8f)<\/b><\/span> \u00a0<wbr \/>\u00a0<wbr \/><\/div>\n<div>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<\/div>\n<div>\u00a0<wbr \/> \u00a0<wbr \/> \u00a0<wbr \/> \u2460\u63d0\u4f9b\u7ed9\u9876\u5c42Makefile\u4f7f\u7528 \u00a0<wbr \/> \u00a0<wbr \/> \u00a0<wbr \/> \u00a0<wbr \/> \u00a0<wbr \/> \u00a0<wbr \/> \u00a0<wbr \/> \u00a0<wbr \/> \u00a0<wbr \/> \u00a0<wbr \/> \u2461\u63d0\u4f9b\u7ed9\u5185\u6838C\u6e90\u7801\u4f7f\u7528<\/div>\n<div>\u00a0<wbr \/> \u00a0<wbr \/>(\u5982: <span style=\"color: #ff0000;\"><span style=\"text-decoration: underline;\">-include include\/config\/auto.conf<\/span><\/span> \u00a0<wbr \/>) \u00a0<wbr \/> \u00a0<wbr \/> \u00a0<wbr \/> \u00a0<wbr \/> \u00a0<wbr \/>(\u5982\uff1a <span style=\"color: #0205fb;\">include &#8220;<b>autoconf.h<\/b>&#8220;<\/span>)<\/div>\n<div>\u00a0<wbr \/> \u00a0<wbr \/> \u00a0<wbr \/><\/div>\n<div><\/div>\n<div>(4)<b>autoconf.h<\/b>\u7684\u8eab\u5f71<\/div>\n<div>\u00a0<wbr \/> \u00a0<wbr \/>\u4e0d\u4ec5\u5728.C\u6587\u4ef6\u4e2d\u80fd\u591f\u770b\u5230<span style=\"color: #0618fd;\"><b>autoconf.h<\/b><\/span>\u7684\u8eab\u5f71,\u5728GCC\u7684\u7f16\u8bd1\u89c4\u5219\u4e2d\u4e5f\u80fd\u4f53\u73b0\u51fa\u6765,\u4e0b\u9762\u6211\u4eec\u6765\u770b\u4e00\u4e2a.C\u6587\u4ef6\u7684\u2018\u4f9d\u8d56\u6587\u4ef6\u2019(\u8fd9\u4e2a\u4f9d\u8d56\u6587\u4ef6\u662f\u81ea\u52a8\u751f\u6210\u7684).\u00a0<wbr \/>drivers\/leds\/\u76ee\u5f55\u4e0b\u7684 .led-core.o.cmd\u00a0<wbr \/>\u6587\u4ef6<\/div>\n<div>\n<div>cmd_drivers\/leds\/led-core.o := arm-linux-gcc <span style=\"color: #ff0000;\"><span style=\"text-decoration: underline;\">-Wp,-MD,drivers\/leds\/.led-core.o.d<\/span><\/span> \u00a0<wbr \/><\/div>\n<div>-nostdinc -isystem \/work\/tools\/gcc-3.4.5-glibc-2.3.6\/lib\/gcc\/arm-linux\/3.4.5\/include\u00a0<wbr \/><\/div>\n<div>-D__KERNEL__ -Iinclude \u00a0<wbr \/>-include <span style=\"text-decoration: underline;\"><span style=\"color: #ff0000;\">include\/linux\/<\/span><b><i><span style=\"color: #4bff03;\">autoconf.h<\/span><\/i><\/b><\/span>\u00a0<wbr \/><\/div>\n<div>-mlittle-endian\u00a0<wbr \/><\/div>\n<div>-Wall -Wundef -Wstrict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common -Os -marm -fno-omit-frame-pointer\u00a0<wbr \/><\/div>\n<div>-mapcs -mno-sched-prolog -mapcs-32 -mno-thumb-interwork\u00a0<wbr \/><\/div>\n<div>-D__LINUX_ARM_ARCH__=4 -march=armv4t -mtune=arm9tdmi -malignment-traps -msoft-float\u00a0<wbr \/><\/div>\n<div>-Uarm -fno-omit-frame-pointer -fno-optimize-sibling-calls -g \u00a0<wbr \/>-Wdeclaration-after-statement \u00a0<wbr \/> \u00a0<wbr \/>\u00a0<wbr \/><\/div>\n<div>-D&#8221;KBUILD_STR(s)=\\#s&#8221; -D&#8221;KBUILD_BASENAME=KBUILD_STR(led_core)&#8221; \u00a0<wbr \/>-D&#8221;KBUILD_MODNAME=KBUILD_STR(led_core)&#8221;\u00a0<wbr \/><\/div>\n<div><b><span style=\"color: #ff0000;\">-c -o<\/span><\/b> drivers\/leds\/led-core.o drivers\/leds\/<span style=\"color: #55ff06;\"><b><span style=\"text-decoration: underline;\">led-core.c<\/span><\/b><\/span><\/div>\n<\/div>\n<div><\/div>\n<div>\u8fd9\u662f\u4e00\u4e2a\u81ea\u52a8\u751f\u6210\u7684\u4e34\u65f6\u6587\u4ef6(\u91cc\u9762\u8bb0\u5f55\u4e86led-core.c \u7684\u4f9d\u8d56\u89c4\u5219)<\/div>\n<div><\/div>\n<div>\u6216\u8bb8\u4f60\u4f1a\u95ee:\u4e3a\u4ec0\u4e48<span style=\"text-decoration: underline;\"><b><i><span style=\"color: #4bff03;\">autoconf.h<\/span><\/i><\/b><\/span>\u00a0<wbr \/>\u4f1a\u51fa\u73b0\u5728\u8fd9\u4e2aGCC\u547d\u4ee4\u884c\u91cc\u9762,\u51fa\u73b0\u5728\u8fd9\u4e2a\u4f9d\u8d56\u6587\u4ef6\u91cc\u9762\uff1f<\/div>\n<div>\u7b54\u6848\u5176\u5b9e\u5f88\u7b80\u5355,\u524d\u9762\u8bf4\u8fc7, .C\u6587\u4ef6\u4e2d \u5e38\u5e38\u542b\u6709 \u7c7b\u4f3c\u4e0e\u00a0<wbr \/>CONFIG_FB_S3C2410_DEBUG \u8fd9\u6837\u7684\u5b8f,\u5728\u5185\u6838\u88ab\u7f16\u8bd1\u4e4b\u524d,CONFIG_FB_S3C2410_DEBUG\u8fd9\u6837\u7684\u5b8f\u662f\u6ca1\u6709\u5b9a\u4e49\u7684.\u5b83\u88ab\u5b9a\u4e49\u5728<span style=\"text-decoration: underline;\"><b><i><span style=\"color: #4bff03;\">autoconf.h<\/span><\/i><\/b><\/span>\u00a0<wbr \/>\u6587\u4ef6\u4e2d, \u800c<span style=\"text-decoration: underline;\"><b><i><span style=\"color: #4bff03;\">autoconf.h<\/span><\/i><\/b><\/span>\u00a0<wbr \/>\u6587\u4ef6\u9700\u8981\u5148\u914d\u7f6e\u597d\u5185\u6838\u624d\u80fd\u81ea\u52a8\u751f\u6210(\u5177\u4f53\u914d\u7f6e\u770b\u662f\u4ec0\u4e48\u82af\u7247\/\u5e73\u53f0,\u524d\u9762\u5df2\u7ecf\u8bb2\u8fc7\u4e86).<\/div>\n<div>\u6b63\u56e0\u4e3a.C\u6587\u4ef6\u6709\u8bb8\u591a\u2018\u5b8f\u2019\u5728\u00a0<wbr \/><span style=\"text-decoration: underline;\"><b><i><span style=\"color: #4bff03;\">autoconf.h<\/span><\/i><\/b><\/span>\u00a0<wbr \/>\u4e2d,\u6240\u4ee5\u4f9d\u8d56\u80af\u5b9a\u4f1a\u5305\u542b\u8fd9\u4e2a\u2018\u81ea\u52a8\u751f\u6210\u7684\u5934\u6587\u4ef6\u2019.<\/div>\n<div><\/div>\n<div><\/div>\n<div><\/div>\n<div>\n<div class=\"article_title\">\n<h1><span class=\"link_title\"><a href=\"http:\/\/blog.csdn.net\/yuhaibin168\/article\/details\/7470301\"> \u5206\u6790\u5185\u6838\u7684\u914d\u7f6e\u4e0e\u7f16\u8bd1\u8fc7\u7a0b<\/a><\/span><\/h1>\n<\/div>\n<div id=\"article_content\" class=\"article_content\">\n<div class=\"tpc_content\">\n<div id=\"ads_r_tpc\" class=\"fr\"><\/div>\n<div id=\"read_tpc\" class=\"f14\"><strong>\u5bf9\u5185\u6838\u7684\u64cd\u4f5c\u5206\u4e3a\u4e24\u7c7b\uff1a<br \/>\n\u4e00.\u914d\u7f6e\u5185\u6838<br \/>\n\u4e8c.\u7f16\u8bd1\u5185\u6838<\/p>\n<p>\u4e00.\u914d\u7f6e\u5185\u6838\u7684\u8fc7\u7a0b\u5982\u4e0b\uff1a<br \/>\nmake menuconfig\u65f6\u53ef\u4ee5\u4fee\u6539\u914d\u7f6e\u9879\uff0c\u8fd9\u4e3b\u8981\u662fKconfig\u7684\u529f\u80fd\uff0c<br \/>\n\u7136\u540e\u6700\u7ec8\u7684\u914d\u7f6e\u7ed3\u679c\u4f1a\u4fdd\u5b58\u5728.config\u6587\u4ef6\u4e2d\u3002\u4e0b\u6b21\u518d\u6267\u884cmake menuconfig\u65f6<br \/>\n\u56de\u53bb\u8bfb\u53d6\u8fd9\u4e2a\u6587\u4ef6\u3002\u8fd9\u662f\u5185\u6838\u914d\u7f6e\u7684\u8fc7\u7a0b\u3002<\/p>\n<p>\u4e8c.\u7f16\u8bd1\u5185\u6838\u7684\u8fc7\u7a0b\uff08\u5373make uImage\u7684\u8fc7\u7a0b\uff09\u5982\u4e0b\uff1a<br \/>\n1.\u67e5\u770b\u5185\u6838\u914d\u7f6e\u6587\u4ef6.config\uff1a<\/p>\n<p># Automatically generated make config: don&#8217;t edit<br \/>\n# Linux\/arm 2.6.38 Kernel Configuration<br \/>\n# Mon Jul 18 11:42:55 2011<br \/>\nCONFIG_ARM=y<br \/>\nCONFIG_SYS_SUPPORTS_APM_EMULATION=y<br \/>\nCONFIG_GENERIC_GPIO=y<br \/>\nCONFIG_ARCH_USES_GETTIMEOFFSET=y<br \/>\nCONFIG_HAVE_PROC_CPU=y<br \/>\nCONFIG_NO_IOPORT=y<br \/>\nCONFIG_STACKTRACE_SUPPORT=y<br \/>\n\u3002\u3002\u3002<br \/>\n\u4e3b\u8981\u7684\u5185\u5bb9\u5c31\u662f\u4e00\u5806\u914d\u7f6e\u9879\uff1aCONFIG_XXX=y\/CONFIG_XXX=m\/ CONFIG_XXX=n<br \/>\n=y\u8868\u793a\u7f16\u8fdb\u5185\u6838\uff0c=m\u8868\u793a\u7f16\u8bd1\u6210\u6a21\u5757,=n\u8868\u793a\u4e0d\u53c2\u4e0e\u7f16\u8bd1<\/p>\n<p>2.make uImage\u7684\u524d\u671f\u5de5\u4f5c<br \/>\n\u901a\u8fc7grep &#8220;CONFIG_XXX&#8221; * -nwr\u53ef\u77e5\uff0c\u4e00\u51714\u7c7b\u6587\u4ef6\u5728\u4f7f\u7528\u8fd9\u4e9b\u914d\u7f6e\u9879\uff1a<br \/>\n&lt;1&gt;Makefile<br \/>\n&lt;2&gt;c\u6e90\u7801<br \/>\n&lt;3&gt;\/include\/config\/auto.conf<br \/>\n&lt;4&gt;include\/generated\/autoconf.h<br \/>\n\u5f53make uImage\u521a\u5f00\u59cb\u65f6\uff0c\u5185\u6838\u4f1a\u6839\u636e.config\u81ea\u52a8\u751f\u6210auto.conf\u548cautoconf.h\u8fd9<br \/>\n\u4e24\u4e2a\u6587\u4ef6\u3002\u5176\u4e2dautoconf.h\u662f\u4f9bc\u6e90\u7801\u4f7f\u7528\uff08\u5b8f\u5f00\u5173\uff09\uff0c\u800cauto.conf\u4f9bMakefile\u4f7f<br \/>\n\u7528\uff08\u662f\u5426\u88ab\u7f16\u8bd1\uff09\u3002<br \/>\nauto.conf\u548c.config\u5185\u5bb9\u5f88\u7c7b\u4f3c\uff0c\u90fd\u662f\u4e0b\u9762\u8fd9\u79cd\u683c\u5f0f:<br \/>\nCONFIG_CRC32=y<br \/>\nCONFIG_I2C_BOARDINFO=y<br \/>\nCONFIG_HAVE_AOUT=y<br \/>\nCONFIG_MINI6410_SD_CH0=y<br \/>\n\u800cautoconf.h\u6709\u70b9\u4e0d\u540c\uff0c\u5728.config\u4e2d\u88ab\u5b9a\u4e49\u4e3am\/y\u7684\u914d\u7f6e\u9879\u5728autoconf.h\u88abdefine<br \/>\n\u4e3a1\uff0c\u5728.config\u4e2d\u88ab\u5b9a\u4e49\u4e3an\u7684\u914d\u7f6e\u9879\u5728autoconf.h\u88abdefine\u4e3a0\u3002\u5b83\u7684\u683c\u5f0f\u5982\u4e0b\uff1a<br \/>\n#define CONFIG_TOUCHSCREEN_MINI6410 1<br \/>\n#define CONFIG_HAS_DMA 1<br \/>\n#define CONFIG_USB_SERIAL_VISOR 1<br \/>\n#define CONFIG_SCSI 1<br \/>\n\u3002\u3002\u3002<br \/>\n3.\u5206\u6790Makefile<br \/>\n\u901a\u8fc7\u5206\u6790makefile\uff0c\u6211\u4eec\u53ef\u4ee5\u5f7b\u5e95\u660e\u767dmake uImage\u505a\u4e86\u4ec0\u4e48\u3002<br \/>\n\u6211\u628a\u6574\u4e2a\u5185\u6838\u7684makefile\u5206\u6210\u4e09\u7c7b\uff1a<br \/>\n&lt;1&gt;\u5404\u7ea7\u5b50\u76ee\u5f55makefile\uff08\u6bcf\u4e2a\u5b50\u76ee\u5f55\u90fd\u6709makefile\uff09<br \/>\n&lt;2&gt;\/arch\/arm\/Makefile\uff08\u67b6\u6784\u76f8\u5173\u7684makefile\uff09<br \/>\n&lt;3&gt;\u9876\u5c42\u76ee\u5f55makefile\uff08auto.conf\u548c\/arch\/arm\/Makefile\u88ab\u5305\u542b\u5728\u5176\u4e2d\uff1ainclude<br \/>\ninclude\/config\/auto.conf<br \/>\n\u548cinclude <span class=\"katex math inline\">(srctree)\/arch\/<\/span>(SRCARCH)\/Makefile\uff09<br \/>\n\u968f\u4fbf\u6253\u5f00\u4e00\u4e2a\u5b50\u76ee\u5f55makefile\uff0c\u53ef\u4ee5\u770b\u5230\u7c7b\u4f3c\u7684\u5185\u5bb9\uff1a<br \/>\nobj-<span class=\"katex math inline\">(CONFIG_BFIN_JTAG_COMM)\u00a0\u00a0\u00a0\u00a0+= bfin_jtag_comm.o<br \/>\nobj-<\/span>(CONFIG_MVME147_SCC)\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 += generic_serial.o vme_scc.o<br \/>\nobj-<span class=\"katex math inline\">(CONFIG_MVME162_SCC)\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 += generic_serial.o vme_scc.o<br \/>\nobj-<\/span>(CONFIG_BVME6000_SCC)\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0+= generic_serial.o vme_scc.o<br \/>\nobj-<span class=\"katex math inline\">(CONFIG_ROCKETPORT)\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0+= rocket.o<br \/>\n\u3002\u3002\u3002<br \/>\n\u5f88\u663e\u7136\uff0c<br \/>\n\u5728auto.conf\u4e2dCONFIG_XXX=y\uff0c\u5bf9\u5e94\u7684\u6e90\u7801\u6587\u4ef6\u4f1a\u88abMakefile\u7f16\u8bd1\u8fdb\u5185\u6838\uff1b<br \/>\n\u5728auto.conf\u4e2dCONFIG_XXX=m\uff0c\u5bf9\u5e94\u7684\u6e90\u7801\u6587\u4ef6\u4f1a\u88abMakefile\u7f16\u8bd1\u6210\u6a21\u5757\uff1b<br \/>\n\u5728auto.conf\u4e2dCONFIG_XXX=n\uff0c\u5bf9\u5e94\u7684\u6e90\u7801\u6587\u4ef6\u4e0d\u4f1a\u88abmakefile\u7f16\u8bd1\uff1b<\/p>\n<p>\u7ee7\u7eed\u5206\u6790<br \/>\n\u5f53\u5728\u9876\u5c42\u76ee\u5f55\u6267\u884cmake uImage \u65f6\uff0c\u76ee\u6807\u662fuImage\uff0c\/arch\/arm\/makefile\uff08\u8be5<br \/>\nmakefile\u88ab\u9876\u5c42makefile\u6240\u5305\u542b\uff09\u4e2d\u53ef\u4ee5\u627e\u5230\u76f8\u5173\u6761\u76ee\uff1a<br \/>\nzImage Image xipImage bootpImage uImage: vmlinux<\/span>(Q)<span class=\"katex math inline\">(MAKE)<\/span>(build)=<span class=\"katex math inline\">(boot) MACHINE=<\/span>(MACHINE) <span class=\"katex math inline\">(boot)\/<\/span>@<br \/>\n\u53ef\u4ee5\u770b\u51fa\uff0cuImage\u4f9d\u8d56\u4e8evmlinux,<br \/>\n\u7ee7\u7eed\u5206\u6790\uff0cvmlinux\u7684\u4f9d\u8d56\u5728\u9876\u5c42makefile\u4e2d\uff0c\u5982\u4e0b\uff1a<br \/>\nvmlinux: <span class=\"katex math inline\">(vmlinux-lds)<\/span>(vmlinux-init) <span class=\"katex math inline\">(vmlinux-main) vmlinux.o<\/span>(kallsyms.o)<br \/>\n\u5176\u4e2d<br \/>\nvmlinux-lds\uff1a\u94fe\u63a5\u811a\u672c<br \/>\nvmlinux-init\uff1a\u521d\u59cb\u5316\u76f8\u5173\u7684\u4ee3\u7801<br \/>\nvmlinux-main\uff1a\u6838\u5fc3\u4ee3\u7801<\/p>\n<p>\u7ee7\u7eed\u67e5\u770b\u4f9d\u8d56\uff0c\u5728\u9876\u5c42makefile\u4e2d\u4e0a\u8ff0\u4e09\u8005\u7684\u4f9d\u8d56\u5982\u4e0b\uff1a<br \/>\nvmlinux-init := <span class=\"katex math inline\">(head-y)<\/span>(init-y)<br \/>\nvmlinux-main := <span class=\"katex math inline\">(core-y)<\/span>(libs-y) <span class=\"katex math inline\">(drivers-y)<\/span>(net-y)<br \/>\nvmlinux-lds\u00a0\u00a0:= arch\/<span class=\"katex math inline\">(SRCARCH)\/kernel\/vmlinux.lds<\/p>\n<p>\u9010\u4e2a\u5206\u6790\uff1a<br \/>\n\uff081\uff09vmlinux-init<br \/>\nhead-y\u5728\/arch\/arm\/makefile\u4e2d\u5b9a\u4e49\uff1a<br \/>\nhead-y\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0:= arch\/arm\/kernel\/head<\/span>(MMUEXT).o\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 arch\/arm\/kernel\/init_task.o<br \/>\nMMUEXT\u6ca1\u4eba\u5b9a\u4e49\uff0c\u6240\u4ee5head-y\u5c31\u662f\u7531head.o\u548cinit_task.o\u4e24\u4e2a\u6587\u4ef6\u7ec4\u6210<br \/>\ninit-y\u5728\u9876\u5c42makefile\u4e2d\u5b9a\u4e49\uff1a<br \/>\ninit-y\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0:= init\/<\/p>\n<p>\uff082\uff09vmlinux-main<br \/>\ncore-y\u3001libs-y\u3001drivers-y\u3001net-y\u5747\u5728\u9876\u5c42makefile\u4e2d\u5b9a\u4e49\uff1a<br \/>\ncore-y\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0:= usr\/(\u5373\u6e90\u7801\u6811\u4e2d\u7684\/usr\u76ee\u5f55\uff0c\u4e0b\u9762\u7c7b\u4f3c)<br \/>\ncore-y\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0+= kernel\/\u00a0\u00a0mm\/\u00a0\u00a0fs\/\u00a0\u00a0ipc\/\u00a0\u00a0security\/\u00a0\u00a0crypto\/\u00a0\u00a0block\/<br \/>\nlibs-y\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0:= lib\/<br \/>\ndrivers-y\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 := drivers\/\u00a0\u00a0sound\/\u00a0\u00a0firmware\/<br \/>\nnet-y\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 := net\/<\/p>\n<p>\u5728\u9876\u5c42makefile\u4e2d\u8fd8\u6709\u4e0b\u9762\u8fd9\u51e0\u53e5\u8bdd\uff1a<br \/>\ninit-y\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0:= <span class=\"katex math inline\">(patsubst %\/, %\/built-in.o,<\/span>(init-y))<br \/>\ncore-y\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0:= <span class=\"katex math inline\">(patsubst %\/, %\/built-in.o,<\/span>(core-y))<br \/>\ndrivers-y\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 := <span class=\"katex math inline\">(patsubst %\/, %\/built-in.o,<\/span>(drivers-y))<br \/>\nnet-y\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 := <span class=\"katex math inline\">(patsubst %\/, %\/built-in.o,<\/span>(net-y))<br \/>\nlibs-y1\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 := <span class=\"katex math inline\">(patsubst %\/, %\/lib.a,<\/span>(libs-y))<br \/>\nlibs-y2\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 := <span class=\"katex math inline\">(patsubst %\/, %\/built-in.o,<\/span>(libs-y))<br \/>\nlibs-y\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0:= <span class=\"katex math inline\">(libs-y1)<\/span>(libs-y2)<\/p>\n<p>patsubst\u662fmakefile\u7684\u4e00\u4e2a\u51fd\u6570\uff0c\u5b83\u7684\u610f\u601d\u662f\u8bf4init-y,core-y,drivers-y,net-y,libs-y<br \/>\n\u6240\u5bf9\u5e94\u7684\u6bcf\u4e00\u4e2a\u76ee\u5f55\u4e0b\u7684\u6240\u6709\u6d89\u53ca\u7684\u6587\u4ef6\u6700\u7ec8\u90fd\u4f1a\u88ab\u7f16\u8bd1\u5408\u6210\u4e00\u4e2abuilt-in.o\u6587\u4ef6\uff0c\u5373<br \/>\ninit-y\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0:= init\/built-in.o<br \/>\ncore-y\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0:= usr\/built-in.o\u00a0\u00a0kernel\/<br \/>\nbuilt-in.o\u00a0\u00a0mm\/built-in.o\u00a0\u00a0fs\/built-in.o\u00a0\u00a0ipc\/built-in.o\u00a0\u00a0security\/built-in.o\u00a0\u00a0crypto\/built-in.o\u00a0\u00a0block\/built-in.o<br \/>\nlibs-y\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0:= lib\/built-in.o\u00a0\u00a0lib\/lib.a<br \/>\ndrivers-y\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 := drivers\/built-in.o\u00a0\u00a0sound\/built-in.o\u00a0\u00a0firmware\/built-in.o<br \/>\nnet-y\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 := net\/built-in.o<br \/>\n\u5404\u7ea7\u7684\u5b50\u76ee\u5f55\u7684makefile\u4f1a\u88ab\u4e0a\u4e00\u7ea7\u7684makefile\u6240\u8c03\u7528\uff0c\u5728\u5b50\u76ee\u5f55\u4e2dmakefile\u4e5f\u4f1a<br \/>\n\u5c06\u6d89\u53ca\u7684\u6587\u4ef6\u7f16\u8bd1\u6210built-in.o\u6587\u4ef6\uff0c\u8fd9\u4e9b\u5b50\u76ee\u5f55\u4e2d\u7684built-in.o\u4f1a\u88ab\u4e0a\u4e00\u7ea7\u76ee\u5f55\u7684<br \/>\nbuilt-in.o\u6240\u5305\u542b\u3002\u6700\u7ec8\uff0cinit-y,core-y,libs-y,net-y\u5bf9\u5e94\u76ee\u5f55\u4e0b\u7684built-in.o\u6587\u4ef6\u7ec4\u6210<br \/>\n\u5185\u6838\u3002<\/strong><\/div>\n<\/div>\n<\/div>\n<\/div>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>1.\u00a0autoconf.h\u751f\u6210\u662f\u5728make\u00a0config\u5b8c\u4e86\u4e4b\u540e\uff0c\u00a0\u7531scripts\/kconfig\/conf [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-1523","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"http:\/\/www.51cos.com\/index.php?rest_route=\/wp\/v2\/posts\/1523","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/www.51cos.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.51cos.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.51cos.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/www.51cos.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1523"}],"version-history":[{"count":0,"href":"http:\/\/www.51cos.com\/index.php?rest_route=\/wp\/v2\/posts\/1523\/revisions"}],"wp:attachment":[{"href":"http:\/\/www.51cos.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1523"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.51cos.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1523"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.51cos.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1523"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}