潇洒萍 發表於 2023-8-31 00:00:00

Ubuntu12.04建立内核树实现过程详解

<p>
        先查看自己使用的内核版本</p>
<blockquote>
        <p>
                lin@lin-virtual-machine:~$ uname -r<br>
                3.2.0-23-generic</p>
</blockquote>
<p>
        如果安装系统时,自动安装了源码。在 /usr/src 目录下有对应的使用的版本目录。</p>
<blockquote>
        <p>
                lin@lin-virtual-machine:~$ cd /usr/src<br>
                lin@lin-virtual-machine:/usr/src$ ls<br>
                linux-headers-3.2.0-23 linux-headers-3.2.0-23-generic</p>
</blockquote>
<p>
        查看一下可一下载的源码包</p>
<blockquote>
        <p>
                lin@lin-virtual-machine:/usr/src$ apt-cache search linux-source<br>
                linux-source - Linux kernel source with Ubuntu patches<br>
                linux-source-3.2.0 - Linux kernel source for version 3.2.0 with Ubuntu patches</p>
</blockquote>
<p>
        我这里选择所以“linux-source-3.2.0 - Linux kernel source for version 3.2.0 with Ubuntu patches”直接 install</p>
<p>
        <code>lin@lin-virtual-machine:/usr/src$ sudo apt-get install linux-source-3.2.0</code></p>
<p>
        下载完成后,在/usr/src下,文件名为:linux-source-3.2.0.tar.bz2,是一个压缩包,解压缩既可以得到整个内核的源代码。</p>
<p>
        使用pwd来查看当前路径</p>
<p>
        ls来查看文件夹中有哪些文件</p>
<blockquote>
        <p>
                lin@lin-virtual-machine:/usr/src$ pwd<br>
                /usr/src<br>
                lin@lin-virtual-machine:/usr/src$ ls<br>
                linux-headers-3.2.0-23 linux-source-3.2.0<br>
                linux-headers-3.2.0-23-generic linux-source-3.2.0.tar.bz2</p>
</blockquote>
<p>
        解压缩</p>
<p>
        <code>lin@lin-virtual-machine:/usr/src#sudo tar jxvf linux-source-3.2.0.tar.bz2</code></p>
<p>
        进入该目录(cd linux-source-3.2.0)</p>
<blockquote>
        <p>
                lin@lin-virtual-machine:/usr/src$ cd linux-source-3.2.0/<br>
                lin@lin-virtual-machine:/usr/src/linux-source-3.2.0$ pwd<br>
                /usr/src/linux-source-3.2.0</p>
</blockquote>
<p>
        开始配置内核 选择最快的原版的配置(默认)方式</p>
<p>
        <code>lin@lin-virtual-machine:/usr/src/linux-source-3.2.0$ sudo make oldconfig</code></p>
<p>
        make需要等一个小时多。。。</p>
<p>
        <code>lin@lin-virtual-machine:/usr/src/linux-source-3.2.0$ sudo make</code></p>
<p>
        数小时后</p>
<div class="jb51code">
        <div>
                <div class="syntaxhighlighterbash" id="highlighter_553252">
                        <div class="toolbar">
                                <span>?</span>
</div>
                        <table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
                                                        <div class="line number1 index0 alt2">
                                                                1</div>
                                                        <div class="line number2 index1 alt1">
                                                                2</div>
                                                        <div class="line number3 index2 alt2">
                                                                3</div>
                                                        <div class="line number4 index3 alt1">
                                                                4</div>
                                                        <div class="line number5 index4 alt2">
                                                                5</div>
                                                        <div class="line number6 index5 alt1">
                                                                6</div>
                                                        <div class="line number7 index6 alt2">
                                                                7</div>
                                                        <div class="line number8 index7 alt1">
                                                                8</div>
                                                        <div class="line number9 index8 alt2">
                                                                9</div>
                                                        <div class="line number10 index9 alt1">
                                                                10</div>
                                                        <div class="line number11 index10 alt2">
                                                                11</div>
                                                </td>
                                                <td class="code">
                                                        <div class="container">
                                                                <div class="line number1 index0 alt2">
                                                                        <code class="bash plain">...System is 4826 kB</code>
</div>
                                                                <div class="line number2 index1 alt1">
                                                                        <code class="bash plain">CRC d5a51584</code>
</div>
                                                                <div class="line number3 index2 alt2">
                                                                        <code class="bash plain">Kernel: arch</code><code class="bash plain">/x86/boot/bzImage</code> <code class="bash plain">is ready (</code><code class="bash comments">#1)</code>
</div>
                                                                <div class="line number4 index3 alt1">
                                                                        <code class="bash spaces"> </code><code class="bash plain">Building modules, stage 2.</code>
</div>
                                                                <div class="line number5 index4 alt2">
                                                                        <code class="bash spaces"> </code><code class="bash plain">MODPOST 3304 modules</code>
</div>
                                                                <div class="line number6 index5 alt1">
                                                                        <code class="bash plain">ERROR: </code><code class="bash string">"__modver_version_show"</code> <code class="bash plain"> undefined!</code>
</div>
                                                                <div class="line number7 index6 alt2">
                                                                        <code class="bash plain">WARNING: modpost: Found 4 section mismatch(es).</code>
</div>
                                                                <div class="line number8 index7 alt1">
                                                                        <code class="bash plain">To see full details build your kernel with:</code>
</div>
                                                                <div class="line number9 index8 alt2">
                                                                        <code class="bash string">'make CONFIG_DEBUG_SECTION_MISMATCH=y'</code>
</div>
                                                                <div class="line number10 index9 alt1">
                                                                        <code class="bash functions">make</code><code class="bash plain">: *** Error 1</code>
</div>
                                                                <div class="line number11 index10 alt2">
                                                                        <code class="bash functions">make</code><code class="bash plain">: *** Error 2</code>
</div>
                                                        </div>
                                                </td>
                                        </tr></tbody></table>
</div>
        </div>
        <div class="codetool" id="codetool">
                <div class="code_n">
                        <textarea></textarea>
</div>
        </div>
</div>
<p>
        解决方法:来自http://ubuntuforums.org/showthread.php?t=1931029</p>
<p>
        <code>lin@lin-virtual-machine:/usr/src/linux-source-3.2.0$ sudo gedit .config</code></p>
<p>
        估计是RTS5139驱动的问题.反正没有使用这个驱动,不要加入编译, 编辑.config, 将</p>
<p>
        CONFIG_RTS5139=m</p>
<p>
        修改成如下的形式:</p>
<p>
        CONFIG_RTS5139=n</p>
<p>
        继续make</p>
<p>
        编译压缩形式的内核</p>
<p>
        make bzImage</p>
<p>
        编译模块:</p>
<p>
        make modules</p>
<p>
        安装模块:</p>
<p>
        make modules_install</p>
<p>
        执行结束之后,会在/lib/modules下生成新的目录</p>
<blockquote>
        <p>
                lin@lin-virtual-machine:/lib/modules$ ls<br>
                3.2.0-23-generic 3.2.79</p>
</blockquote>
<p>
        成功后重启。</p>
<p>
        以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。</p>
<p>
        原文链接:https://www.cnblogs.com/libra13179/p/9359925.html</p>
頁: [1]
查看完整版本: Ubuntu12.04建立内核树实现过程详解