LFS 系列从零开始 DIY Linux 系统:基本系统配置 - Linux-3.19
Posted Lucifer三思而后行
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LFS 系列从零开始 DIY Linux 系统:基本系统配置 - Linux-3.19相关的知识,希望对你有一定的参考价值。
Linux 软件包包含 Linux 内核。
安装内核
编译内核包括以下步骤—配置、编译和安装。
首先进入到源码目录,解压软件包:
cd /sources
tar xf linux-3.19.tar.xz
cd linux-3.19
运行以下命令准备编译:
make mrproper
这将保证内核树的绝对干净。内核小组建议在每次编译之前都执行此命令,无用的代码将会在解压后删除。
配置内核的一个好的起点是运行 make defconfig
。这样会参考你的机器架构生成一份基本能用的基础配置。
想偷懒的话,可以拷贝主机系统的内核配置文件 .config(如果有的话)到解压后的 linux-3.19 目录下来跳过内核配置。
不过,我们不建议这样做。最好是探索一下整个内核配置菜单,从最开始配置内核。
编译内核映像和模块:
make
如果使用内核模块,需要 /etc/modprobe.d 文件里的模块配置。关于模块和内核配置的信息可以查看 7.3, “LFS 系统中的设备和模块控制” 以及 linux-3.19/Documentation 目录下的内核文档。 还有,modprobe.d(5) 也可以看一下。
如果内核配置里用到,需要安装模块:
make modules_install
在内核编译完成后,还需要一个额外步骤来完成安装。有些文件需要拷贝到 /boot 目录下。
内核映像文件所在的实际目录根据主机系统架构可能会不一样。下面的文件名你也可以改成你喜欢的,不过开头最好是 vmlinuz 才可以兼容下一节要讲的配置引导过程的自动设定。
下面的命令假设主机是 x86_64 架构:
cp -v arch/x86_64/boot/bzImage /boot/vmlinuz-3.19-lfs-7.7-systemd
System.map 是内核的符号文件。它映射了每一个内核 API 函数的入口,以及内核运行时的数据结构地址。是调试内核问题时的资源。运行下面的命令安装映射文件:
cp -v System.map /boot/System.map-3.19
在之前命令 make menuconfig 里生成的内核配置文件 .config 包含了当前编译的内核的所有配置。最好能保存下来留作参考:
cp -v .config /boot/config-3.19
安装 Linux 内核文档:
install -d /usr/share/doc/linux-3.19
cp -r Documentation/* /usr/share/doc/linux-3.19
需要注意一下内核源代码目录下的文件属主并不是 root。
在以 root 用户解压包的时候(我们在 chroot 环境里做的),解压出来的文件会拥有生成这个包的电脑里用户和组。在安装其他包的时候这并不是问题,因为它们的源代码在安装完后就删除了。
不过,Linux 内核的源代码经常会保留比较长时间。这样的话,就有可能会把软件包作者的用户 ID 对应到本机的某个用户上。从而这个用户就会拥有内核源代码的写权限。
如果要保留内核源代码的虎啊,对目录 linux-3.19 运行 chown -R 0:0 命令来保证所有文件属主更改为 root。
配置 Linux 模块加载顺序
虽然大多数情况下,Linux 模块自动加载就好,但是有时候需要特别指定加载顺序。modprobe 或 insmod 在加载模块时会读取 /etc/modprobe.d/usb.conf 。如果将 USB 设备(ehci_hcd、ohci_hcd 和 uhci_hcd) 编译为模块,则需要此文件,这样它们就会以正确的顺序加载。ehci_hcd 需要在 ohci_hcd 和 uhci_hcd 之前加载,否则在系统启动过程中将会输出警告。
运行以下命令建立 /etc/modprobe.d/usb.conf 文件:
install -v -m755 -d /etc/modprobe.d
cat > /etc/modprobe.d/usb.conf << "EOF"
# Begin /etc/modprobe.d/usb.conf
install ohci_hcd /sbin/modprobe ehci_hcd ; /sbin/modprobe -i ohci_hcd ; true
install uhci_hcd /sbin/modprobe ehci_hcd ; /sbin/modprobe -i uhci_hcd ; true
# End /etc/modprobe.d/usb.conf
EOF
安装完成后清理工作:
cd ..
rm -rf linux-3.19
本次分享到此结束啦~
如果觉得文章对你有帮助,点赞、收藏、关注、评论,一键四连支持,你的支持就是我创作最大的动力。
❤️ 技术交流可以 关注公众号:Lucifer三思而后行 ❤️
以上是关于LFS 系列从零开始 DIY Linux 系统:基本系统配置 - Linux-3.19的主要内容,如果未能解决你的问题,请参考以下文章
LFS 系列从零开始 DIY Linux 系统:构建 LFS 系统 - 进入 Chroot 环境
LFS 系列从零开始 DIY Linux 系统:构建 LFS 系统 - Less-458
LFS 系列从零开始 DIY Linux 系统:构建 LFS 系统 - Diffutils-3.3
LFS 系列从零开始 DIY Linux 系统:构建 LFS 系统 - Kmod-19