编译内核
<h2>基础</h2>
<p>最小系统只需要 3 部分就可运行起来:linux 内核、根文件系统、引导。</p>
<p>官网下载 linux 内核包太慢了,网上搜索可以用清华的镜像站:</p>
<p><a href="https://mirror.tuna.tsinghua.edu.cn/kernel/v4.x/">https://mirror.tuna.tsinghua.edu.cn/kernel/v4.x/</a></p>
<p>例如本次编译的内核版本地址:<a href="https://mirror.tuna.tsinghua.edu.cn/kernel/v4.x/linux-4.9.263.tar.xz">https://mirror.tuna.tsinghua.edu.cn/kernel/v4.x/linux-4.9.263.tar.xz</a></p>
<p>解压:<code>tar xvJf linux-4.9.263.tar.xz</code></p>
<h2>编译内核</h2>
<p>参考文档:</p>
<p><a href="https://blog.csdn.net/alfiy/article/details/122568957">https://blog.csdn.net/alfiy/article/details/122568957</a>
<a href="https://cloud.tencent.com/developer/article/2121069">https://cloud.tencent.com/developer/article/2121069</a></p>
<p>环境:</p>
<p><img src="https://www.showdoc.com.cn/server/api/attachment/visitFile?sign=e1e753fe063edfbe795b78d1c2624d51&amp;file=file.png" alt="" /></p>
<p>先按照默认配置来试试:</p>
<pre><code class="language-sh">make defconfig
make bzImage</code></pre>
<p>编译很顺利:</p>
<p><img src="https://www.showdoc.com.cn/server/api/attachment/visitFile?sign=f56e20a04802abfedd07f8e648ab2d2e&amp;file=file.png" alt="" /></p>
<h2>制作根文件系统</h2>
<pre><code class="language-sh"># 先安装,不然后面编译会报错
yum install glibc-static
wget https://busybox.net/downloads/busybox-1.32.1.tar.bz2
tar jxvf busybox-1.32.1.tar.bz2
cd busybox-1.32.1
make defconfig
vim .config # 修复 CONFIG_STATIC=y
make busybox install # 注意:如果编译失败,上面参数会被还原,需要重新设置</code></pre>
<h2>创建BIOS引导</h2>
<pre><code class="language-sh">wget https://mirrors.edge.kernel.org/pub/linux/utils/boot/syslinux/syslinux-6.03.tar.gz
</code></pre>
<h2>问题</h2>
<p>centos 上执行 <code>make menuconfig</code> 失败:</p>
<p><img src="https://www.showdoc.com.cn/server/api/attachment/visitFile?sign=f249e4e4a824f597c5eea4e46e5641cb&amp;file=file.png" alt="" /></p>
<p>网上搜索提示缺少 <code>libncurses</code> 库,执行 <code>yum install ncurses-devel</code> 安装就可以了。</p>
<p><img src="https://www.showdoc.com.cn/server/api/attachment/visitFile?sign=136ac5b8bafb53754babc2f6cae2730b&amp;file=file.png" alt="" /></p>
<h2>QEMU启动提示分配内存问题</h2>
<p>低版本问题,需要重新编译安装,参考文档:<a href="https://blog.csdn.net/aixueai/article/details/115897240">https://blog.csdn.net/aixueai/article/details/115897240</a></p>