【LFS 系列】从零开始 DIY Linux 系统:(六)构建 LFS 系统 - Linux-3.19 API 头文件

2021-10-08 16:34:53 浏览数 (1)

Linux API 头文件(在 linux-3.19.tar.xz 里)会将内核 API 导出给 Glibc 使用。

Linux API 头文件的安装

Linux 内核需要提供一个应用编程接口(API)供系统的 C 库(LFS 中的 Glibc)调用。这通过整理 Linux 内核源码包中的多个 C 头文件来完成。

首先进入到源码目录,解压软件包:

代码语言:javascript复制
cd /sources
tar xf linux-3.19.tar.xz
cd linux-3.19

确保在之前的动作里没有留下旧文件和依赖关系:

代码语言:javascript复制
make mrproper

现在要从源代码里解压出用户需要的内核头文件。因为解压过程会删除目标目录下所有文件,所以我们会先输出到一个本地中间目录后再拷贝到需要的地方。而且里面还有一些隐藏文件是给内核开发人员用的,而 LFS 不需要,所以会将它们从中间目录里删除。

代码语言:javascript复制
make INSTALL_HDR_PATH=dest headers_install
find dest/include ( -name .install -o -name ..install.cmd ) -delete
cp -rv dest/include/* /usr/include

安装完成后清理工作:

代码语言:javascript复制
cd ..
rm -rf linux-3.19

Linux API 头文件内容

安装的头文件:

代码语言:javascript复制
/usr/include/asm/*.h, /usr/include/asm-generic/*.h, /usr/include/drm/*.h, /usr/include/linux/*.h, /usr/include/mtd/*.h, /usr/include/rdma/*.h, /usr/include/scsi/*.h, /usr/include/sound/*.h, /usr/include/video/*.h, 和 /usr/include/xen/*.h

安装的目录:

代码语言:javascript复制
/usr/include/asm, /usr/include/asm-generic, /usr/include/drm, /usr/include/linux, /usr/include/mtd, /usr/include/rdma, /usr/include/scsi, /usr/include/sound, /usr/include/video, 和 /usr/include/xen

简要介绍:

  • /usr/include/asm/*.h:Linux API ASM 头文件
  • /usr/include/asm-generic/*.h:Linux API ASM 通用头文件
  • /usr/include/drm/*.h:Linux API DRM 头文件
  • /usr/include/linux/*.h:Linux API Linux 头文件
  • /usr/include/mtd/*.h:Linux API MTD 头文件
  • /usr/include/rdma/*.h:Linux API RDMA 头文件
  • /usr/include/scsi/*.h:Linux API SCSI 头文件
  • /usr/include/sound/*.h:Linux API 音频头文件
  • /usr/include/video/*.h:Linux API 视频头文件
  • /usr/include/xen/*.h:Linux API Xen 头文件

本次分享到此结束啦~

如果觉得文章对你有帮助,点赞、收藏、关注、评论,一键四连支持,你的支持就是我创作最大的动力。

❤️ 技术交流可以 关注公众号:Lucifer三思而后行 ❤️

0 人点赞