lfs(systemd版本)学习笔记:https://www.cnblogs.com/renren-study-notes/p/10385401.html

一名linux爱好者,记录构建Beyond Linux From Scratch的过程

博客园-骏马金龙前辈介绍,开始接触学习lfs,用博客记录学习笔记,如有写的不恰当的地方,望多多指正。
笔记中只是记录一些问题和书中表述不清晰的内容的处理办法以及我的解决思路,仅做参考。

要实际构建blfs请结合blfs官方的书籍操作

一.lfs系列概述

1.lfs:Linux From Scratch(LFS)是一个项目,为您提供完全从源代码构建自己的自定义Linux系统的分步说明

2.blfs:Beyond Linux From Scratch(BLFS)是一个继续LFS书籍完成的项目。它通过提供在基本LFS系统之上安装和配置各种软件包的广泛说明,帮助用户根据需要开发系统。

3.alfs:Automated Linux From Scratch (ALFS)是一个为可扩展系统构建器和程序包安装程序创建通用框架的项目。(自动化创建LFS系统的过程)

4.clfs:Cross Linux From Scratch(CLFS)是一个使用其他架构从源代码构建自己的定制Linux系统的分步说明

5.hlfs:Hardened Linux From Scratch (HLFS)是一个为您提供从源完全构建您自己的定制和强化Linux系统的分步说明。基于LFS,该项目还将包含BLFS的部分内容。与这些其他项目的主要区别在于处理安全配置问题的文本数量,以及修补或替换许多用于提高安全性的软件包。

6.livecd:LFS LiveCD专门用于提供可靠的主机系统,以便构建Linux From Scratch。因此,它可能不是您想象的“完美”Linux系统。但是,它应该为您提供足够舒适的环境,以便您可以反过来建立自己的“完美”系统

二.lfs版本说明

1.lfs系列每本书籍都有两个版本

一个版本是安装并使用systemv的版本

我的学习笔记地址:https://www.cnblogs.com/renren-study-notes/p/10214504.html

另一个版本是安装并使用systemd的版本

我的学习笔记地址:https://www.cnblogs.com/renren-study-notes/p/10385413.html

本篇笔记使用的是systemd版本书籍。

三.构建blfs过程中使用到的网站:

blfs书籍原版(英文)下载链接:http://www.linuxfromscratch.org/blfs/downloads/stable-systemd/blfs-book-8.3-systemd-html.tar.bz2
文件镜像网站汇总:http://www.linuxfromscratch.org/mirrors.html

blfs的固件下载网站:http://anduin.linuxfromscratch.org/BLFS/linux-firmware/

四.使用的机器信息,系统信息,书籍信息

使用的机器型号:Thinkpad-L450
使用主机操作系统:deepin-15.9
使用blfs书籍版本blfs-book-8.3-systemd(官网英文版)

五.书中单元介绍

blfs全书分为十三个单元,分别是:

1.导言

2.构建完lfs后的配置和额外软件

3.常规库和实用程序

4.网络

5.服务器

6.x窗口和显示管理器

7.kde

8.gnome(桌面及应用程序)

9.xfce

10.lxde

11.软件

12.多媒体

13.打印、扫描和排版

六.单元的选择问题

1.其中2和4单元是必须要选择的,其他单元根据爱好选择

2.如果选择桌面环境则要先完成第6单元内容

4.第三单元内容不需要都完成,软件包需要那个依赖在软件包页面的依赖项目中都有链接。

七.具体操作问题

因为直接使用lfs系统操作不方便,可以选择从主机挂载lfs操作或远程连接进行操作。

具体挂载方法链接:https://www.cnblogs.com/renren-study-notes/p/10204516.html

远程连接操作方法:https://www.cnblogs.com/renren-study-notes/p/10390834.html

八.构建完lfs后进行一些文件的整理

1.进入/sources目录,创建lfs-sources目录,移动构建lfs过程中的软件包到该目录(这些软件包不建议删除,如果在使用lfs过程中出现问题还可以使用相应的软件包重新编译安装)

cd /sources
mkdir lfs-sources
mv * /lfs-sources

2.在sources目录下创建blfs-sources目录,用来存放构建blfs时用的软件包文件

cd /sources

mkdir blfs-sources

3.在blfs-sources目录下创建用来验证MD5的文件md5sums

vim md5sums

4.每次在校验软件包md5前打开md5sums文件添加相应的md5值,格式例如:

2db6f03d655041f82eb64b8c8a1fa7da wget-1.19.5.tar.gz
1f0176c4fa89274971b2826a97f303f7 make-ca-0.8.tar.gz

九.学习构建blfs的注意事项

1.如果包下载地址无效则去文件镜像网站汇总的网页去寻找,我的学习笔记中会贴出我使用的软件包链接

2.有些软件包需要安装blfs提供的启动脚本则流程如下

blfs脚本下载地址:https://mirror-hk.koddos.net/blfs/8.3/b/blfs-systemd-units-20180105.tar.bz2

cd $LFS/sources/blfs-sources
tar -xvf blfs-systemd-units-20180105.tar.bz2
cd blfs-systemd-units-20180105
这里添加为每一个包准备的安装脚本的命令
cd $LFS/sources/blfs-sources
rm -rf blfs-systemd-units-20180105

进入脚本存放目录,解压脚本文件,安装相应脚本,退出目录,删除解压文件

3.blfs学习笔记中有部分的软件包没有写编译安装的详细过程,如果都写的话篇幅过长,书上面都有按着操作就可以了,相关笔记只贴出我制作的软件包的相关依赖图。

4.依赖关系图中标注红色1的为需要更改内核配置的包

5.重新编译安装linux内核配置的相关问题

1.每次需要在内核中加入新的配置都需要去lfs-sources目录下解压并进入linux内核包

2.准备编译

make mrproper

3.载入正在使用中的内核配置或手动添加以前的配置(这里推荐直接从boot目录载入)

cp -iv /boot/config-4.18.5 .config

4.打开设置界面,添加需要添加的配置

make menuconfig

5.编译并安装内核模块

#make -j8
#make modules_install

6.复制相应的文件到boot

cp -iv arch/x86/boot/bzImage /boot/vmlinuz-4.18.-lfs-8.3-systemd

cp -iv System.map /boot/System.map-4.18.

cp -iv .config /boot/config-4.18.

7.退出目录并删除解压的linux包目录

cd ..
#rm -rf linux-4.18.5

8.遇到需要加载固件的解决办法

1.知道是哪个固件的去固件网站下载放到/lib/firmware/文件下

2.不知道固件具体名称的可以先编译安装完内核包后重启看启动的输出那几个固件加载出错了,他会显示需要什么名字的固件文件,再去固件网站找,下载到/lib/firmware/文件,重启后输出没问题即可。

3.在自己机器上面安装的其他linux发行版本查看它为设备加载的固件是哪个,其固件网站下载放到/lib/firmware/文件下

4.查看已经加载的固件及加载错误的固件的命令

dmesg | grep -i firmware

5.将固件构建至linux内核

Device Drivers  --->
Generic Driver Options --->
Firmware loader --->
-*- Firmware loading facility
() Build named firmware blobs into the kernel binary(CONFIG_EXTRA_FIRMWARE)
(/lib/firmware) Firmware blobs root directory(CONFIG_EXTRA_FIRMWARE_DIR)

十.所有构建笔记链接

1.前几章节的脚本配置链接:https://www.cnblogs.com/renren-study-notes/p/10390598.html

2.编译安装gnome桌面系统:https://www.cnblogs.com/renren-study-notes/p/10395137.html

3.构建gnome桌面系统后的配置及安装的应用:https://www.cnblogs.com/renren-study-notes/p/10427776.html

blfs(systemd版本)学习笔记-总页的更多相关文章

  1. blfs(systemv版本)学习笔记-总页

    我的邮箱地址:zytrenren@163.com欢迎大家交流学习纠错! lfs(systemv版本)学习笔记:https://www.cnblogs.com/renren-study-notes/p/ ...

  2. 操作系统学习笔记(二) 页式映射及windbg验证方式

    页式映射 本系列截图来自网络搜索及以下基本书籍: <Windows内核设计思想> <Windows内核情景分析> <WINDOWS内核原理与实现> 一个32位虚拟地 ...

  3. react-router 4.0版本学习笔记

    Router 所有路由组件的底层接口,一般情况都不使用,而是使用更加高级的路由. 最常用的有两种<BrowserRouter>.<HashRouter> <Browser ...

  4. java学习笔记总略

    二.正文(一)Java1.接口和抽象类的区别①抽象类里可以有构造方法,而接口内不能有构造方法.②抽象类中可以有普通成员变量,而接口中不能有普通成员变量.③抽象类中可以包含非抽象的普通方法,而接口中所有 ...

  5. OpenGL编程指南第版本学习笔记 --- OpenGL程序实现过程(win32 + OpenGL)

    1. 先上代码 头文件glCommon.h #include <GL/glew.h> #include <GL/GL.h> #include <GL/GLU.h> ...

  6. thinkphp 3.2.3版本学习笔记

    2.开启调试模式,有什么作用?(默认关闭,在ThinkPHP.php 33行左右) (1)非法调用的时候,有详细的报错信息,便于调试 (2)APP_DEBUG为true并且缓存文件存在,走缓存文件,否 ...

  7. pyecharts v1 版本 学习笔记 饼图,玫瑰图

    饼图: 普通案例 from example.commons import Faker from pyecharts import options as opts from pyecharts.char ...

  8. pyecharts v1 版本 学习笔记 折线图,面积图

    折线图 折线图 基本demo import pyecharts.options as opts from pyecharts.charts import Line c = ( Line() .add_ ...

  9. pyecharts v1 版本 学习笔记 散点图

    散点图 基本案例 from example.commons import Faker from pyecharts import options as opts from pyecharts.char ...

随机推荐

  1. iOS安装包瘦身的那些事儿

    在我们提交安装包到App Store的时候,如果安装包过大,有可能会收到类似如下内容的一封邮件: 收到这封邮件的时候,意味着安装包在App Store上下载的时候,有的设备下载的安装包大小会超过100 ...

  2. 压测工具之JMeter之环境配置及运行

    一.下载JMeter 地址:http://jmeter.apache.org/download_jmeter.cgi 系统:win7 x64 在 Binaries 目录下选择一个合适自己系统的版本,不 ...

  3. MySQL 组提交(group commit)

    目录 前言 改进 原理 实现 参数 注意 前言 操作系统使用页面缓存来填补内存和磁盘访问的差距 对磁盘文件的写入会先写入道页面缓存中 由操作系统来决定何时将修改过的脏页刷新到磁盘 确保修改已经持久化到 ...

  4. Liferay7 BPM门户开发之6: Activiti数据库换为mysql

    第一步: 在mysql中创建数据库名字叫 'activiti' 执行D:\activiti-5.21.0\database\create下的脚本 第二步: 打开=> apache-tomcat/ ...

  5. django权限管理(Permission)

    什么是权限管理 权限管理,一般指根据系统设置的安全规则或者安全策略,用户可以访问而且只能访问自 己被授权的资源 权限管理好比如钥匙,有了钥匙就能把门打开,但是权限设置是有级别之分的,假如这个 系统有多 ...

  6. Flask源码复习之路由

    构建路由规则 一个 web 应用不同的路径会有不同的处理函数,路由就是根据请求的 URL 找到对应处理函数的过程. 在执行查找之前,需要有一个规则列表,它存储了 url 和处理函数的对应关系.最容易想 ...

  7. Comparable接口和Comparator接口的不同用法

    两者都可用来在定义比较方法,然后用在排序中. Comparable是类本身继承的接口 Comparator实在类外定义一个排序的类 比较而言,觉得Comparator更灵活一些,但是Comparabl ...

  8. python之装饰器(decorator)

    python的装饰器如果用得好,那是大神,用的不好最好别用... 装饰器(decorator)主要包含俩大属性: 1.不能改变原有函数的调用方式 2.不能改变原有函数的代码 第一个表示,我不需要改变原 ...

  9. curl: (7) Failed connect to 172.16.100.199:9200; 没有到主机的路由

    没有到主机的路由这种问题很常见,多数是由机器的防火墙没有关闭. Ubuntu 查看防火墙状态 ufw status 关闭防火墙 ufw disable centos6 查看防火墙状态 service ...

  10. 使用webpack将es6 es7转换成es2015

    第一步:安装模块化包 cnpm install --save-dev babel-core babel-loader babel-preset-es2015 babel-preset-react 第二 ...