3. MYD-JX8MMA7上构建Linux From Scratch(从源代码编译构建Linux系统) ——失败
如果把从源代码开始编译构建一个操作系统的工作当成厨师做一桌菜的话,Linux From Scratch(简称 LFS )就是一份“菜谱”。 一步一步从开源软件的源代码(大厨的“食料”)开始,基于最新版的 LFS(大厨的最新版“菜谱”)编译出能在开发板上运行的 Linux 操作系统、构建出能作为桌面日常使用的 Linux 操作系统、打包成可以安装的 Linux 操作系统。这是我们一步一步实践的过程,也是我们逐步深入学习的过程。希望在走完这个过程后,我们的技术、能力能达到为 GNU/Linux 操作系统添砖加瓦,甚至走的更远,作为一份子编制出我们自己的操作系统。
3.1. 准备工作
在系统上完成LFS用户创建、源代码下载等准备步骤之后,开始从源代码编译构建Linux体统根据LFS的第一步,
根据LFS的第一步,version-check的方式,发现系统缺少部分程序,并且通过分析yocto以及文件系统目录发现,该系统的Linux基本程序集并非完整的GNU软件包构建,而是采用的busybox构建,因此存在部分程序缺失、不兼容以及版本过低的情况。
暂且跳过,看看能否构建通过。
3.2. 第一步(依赖项不满足): binutils-2.40
make -j 4
...
MAKEINFO doc/bfd.info
/mnt/lfs/sources/binutils-2.40/missing: line 81: makeinfo: command not found
WARNING: 'makeinfo' is missing on your system.
You should only need it if you modified a '.texi' file, or
any other file indirectly affecting the aspect of the manual.
You might want to install the Texinfo package:
<http://www.gnu.org/software/texinfo/>
The spurious makeinfo call might also be the consequence of
using a buggy 'make' (AIX, DU, IRIX), in which case you might
want to install GNU make:
<http://www.gnu.org/software/make/>
对binutils的configure发现缺少必要的依赖项——makeinfo,该程序来自软件包texinfo,因此需要先构建texinfo
3.3. 第二步(依赖项不满足): texinfo-7.0.3
通过对texinfo源码进行构建,发现如下错误:
3.4. TODO
- 缺乏必须的依赖项perl及其perl模块:Encoder和Data::Dumper,
-
依赖项缺乏过多,必须先通过交叉编译,构建出完整的Linux(完整的基本程序集、GNU软件包),才能实现LFS。