lfs准备使用桌面环境,首先需要构建xorg服务

xorg服务项目地址:http://www.linuxfromscratch.org/blfs/view/stable/x/xorg7.html

一.制作构建xorg包的自动化脚本

1.需要完成书中bash shell启动文件章节

bash shell启动文件项目地址:http://www.linuxfromscratch.org/blfs/view/stable/postlfs/profile.html

我的相应的操作笔记:https://www.cnblogs.com/renren-study-notes/p/10287905.html

2.在blfs-sources目录下创建xc工作目录

# mkdir xc &&
cd xc

3.创建安装前缀这里使用linux通用的/usr目录

export XORG_PREFIX="/usr"

4.创建引用设置的变量

export XORG_CONFIG="--prefix=$XORG_PREFIX --sysconfdir=/etc \
--localstatedir=/var --disable-static"

5.切换root用户创建变量脚本文件

cat > /etc/profile.d/xorg.sh << EOF
XORG_PREFIX="$XORG_PREFIX"
XORG_CONFIG="--prefix=\$XORG_PREFIX --sysconfdir=/etc --localstatedir=/var --disable-static"
export XORG_PREFIX XORG_CONFIG
EOF
chmod /etc/profile.d/xorg.sh

重启后开始编译安装xorg的每一个包

主要编译过程概述(详细步骤参照blfs总页笔记)

blfs学习笔记总页链接:https://www.cnblogs.com/renren-study-notes/p/10214504.html

1.进入xc目录 2.下载包 3.校验md5 4.解压包 5.进入包目录 6.参照书中说明编译安装配置 7.退出目录删除解压的包的文件

2.xorg常规库章节操作步骤

fontconfig包在我的这篇笔记中有相关内容:https://www.cnblogs.com/renren-study-notes/p/10288321.html

首先创建一个用于验证md5的文件

cat > lib-.md5 << "EOF"
c5ba432dd1514d858053ffe9f4737dd8 xtrans-1.3..tar.bz2
6b0f83e851b3b469dd660f3a95ac3e42 libX11-1.6..tar.bz2
52df7c4c1f0badd9f82ab124fb32eb97 libXext-1.3..tar.bz2
d79d9fe2aa55eb0f69b1a4351e1368f7 libFS-1.0..tar.bz2
addfb1e897ca8079531669c7c7711726 libICE-1.0..tar.bz2
499a7773c65aba513609fe651853c5f3 libSM-1.2..tar.bz2
eeea9d5af3e6c143d0ea1721d27a5e49 libXScrnSaver-1.2..tar.bz2
8f5b5576fbabba29a05f3ca2226f74d3 libXt-1.1..tar.bz2
41d92ab627dfa06568076043f3e089e4 libXmu-1.1..tar.bz2
20f4627672edb2bd06a749f11aa97302 libXpm-3.5..tar.bz2
e5e06eb14a608b58746bdd1c0bd7b8e3 libXaw-1.0..tar.bz2
07e01e046a0215574f36a3aacb148be0 libXfixes-5.0..tar.bz2
f7a218dcbf6f0848599c6c36fc65c51a libXcomposite-0.4..tar.bz2
802179a76bded0b658f4e9ec5e1830a4 libXrender-0.9..tar.bz2
58fe3514e1e7135cf364101e714d1a14 libXcursor-1.1..tar.bz2
0cf292de2a9fa2e9a939aefde68fd34f libXdamage-1.1..tar.bz2
0920924c3a9ebc1265517bdd2f9fde50 libfontenc-1.1..tar.bz2
b7ca87dfafeb5205b28a1e91ac3efe85 libXfont2-2.0..tar.bz2
331b3a2a3a1a78b5b44cfbd43f86fcfe libXft-2.3..tar.bz2
1f0f2719c020655a60aee334ddd26d67 libXi-1.7..tar.bz2
0d5f826a197dae74da67af4a9ef35885 libXinerama-1.1..tar.bz2
28e486f1d491b757173dd85ba34ee884 libXrandr-1.5..tar.bz2
5d6d443d1abc8e1f6fc1c57fb27729bb libXres-1.2..tar.bz2
ef8c2c1d16a00bd95b9fdcef63b8a2ca libXtst-1.2..tar.bz2
210b6ef30dda2256d54763136faa37b9 libXv-1.0..tar.bz2
4cbe1c1def7a5e1b0ed5fce8e512f4c6 libXvMC-1.0..tar.bz2
d7dd9b9df336b7dd4028b6b56542ff2c libXxf86dga-1.1..tar.bz2
298b8fff82df17304dfdb5fe4066fe3a libXxf86vm-1.1..tar.bz2
d2f1f0ec68ac3932dd7f1d9aa0a7a11c libdmx-1.1..tar.bz2
8f436e151d5106a9cfaa71857a066d33 libpciaccess-0.14.tar.bz2
4a4cfeaf24dab1b991903455d6d7d404 libxkbfile-1.0..tar.bz2
42dda8016943dc12aff2c03a036e0937 libxshmfence-1.3.tar.bz2
EOF

下载并校验所有软件包

mkdir lib &&
cd lib &&
grep -v '^#' ../lib-.md5 | awk '{print $2}' | wget -i- -nc \
-B https://www.x.org/pub/individual/lib/ &&
md5sum -c ../lib-.md5

切换root用户并配置as root脚本

su
as_root()
{
if [ $EUID = ]; then $*
elif [ -x /usr/bin/sudo ]; then sudo $*
else su -c \\"$*\\"
fi
} export -f as_root

创建一个出错时退出的bash

#bash -e

运行以下命令安装所有软件包

#for package in $(grep -v '^#' ../lib-.md5 | awk '{print $2}')
do
packagedir=${package%.tar.bz2}
tar -xf $package
pushd $packagedir
case $packagedir in
libICE* )
./configure $XORG_CONFIG ICE_LIBS=-lpthread
;; libXfont2-[-]* )
./configure $XORG_CONFIG --disable-devel-docs
;; libXt-[-]* )
./configure $XORG_CONFIG \
--with-appdefaultdir=/etc/X11/app-defaults
;; * )
./configure $XORG_CONFIG
;;
esac
make -j8
#make check >& | tee ../$packagedir-make_check.log
as_root make install
popd
rm -rf $packagedir
as_root /sbin/ldconfig
done

退出之前启动的bash

exit

3. Mesa的依赖关系图

4.编译安装curl最后的小测试运行提供的命令查看有没有下载文件

5.编译安装cmack测试时的命令bin / ctest -j <N>-O cmake-3.12.1-test.log(<N>参数为cpu核心数)

6.安装mesa时选择对应自己显卡型号的驱动程序

i915:intel显卡

r300,r600,radeonsi:amd显卡

nouveau:n卡

二.安装xorg应用程序

创建md5目录

su
cat > app-.md5 << "EOF"
3b9b79fa0f9928161f4bad94273de7ae iceauth-1.0..tar.bz2
c4a3664e08e5a47c120ff9263ee2f20c luit-1.1..tar.bz2
18c429148c96c2079edda922a2b67632 mkfontdir-1.0..tar.bz2
987c438e79f5ddb84a9c5726a1610819 mkfontscale-1.1..tar.bz2
e475167a892b589da23edf8edf8c942d sessreg-1.1..tar.bz2
2c47a1b8e268df73963c4eb2316b1a89 setxkbmap-1.3..tar.bz2
3a93d9f0859de5d8b65a68a125d48f6a smproxy-1.0..tar.bz2
f0b24e4d8beb622a419e8431e1c03cd7 x11perf-1.6..tar.bz2
f3f76cb10f69b571c43893ea6a634aa4 xauth-1.0..tar.bz2
d50cf135af04436b9456a5ab7dcf7971 xbacklight-1.2..tar.bz2
9956d751ea3ae4538c3ebd07f70736a0 xcmsdb-1.0..tar.bz2
b58a87e6cd7145c70346adad551dba48 xcursorgen-1.0..tar.bz2
8809037bd48599af55dad81c508b6b39 xdpyinfo-1.3..tar.bz2
480e63cd365f03eb2515a6527d5f4ca6 xdriinfo-1.0..tar.bz2
249bdde90f01c0d861af52dc8fec379e xev-1.2..tar.bz2
90b4305157c2b966d5180e2ee61262be xgamma-1.0..tar.bz2
f5d490738b148cb7f2fe760f40f92516 xhost-1.0..tar.bz2
6a889412eff2e3c1c6bb19146f6fe84c xinput-1.6..tar.bz2
12610df19df2af3797f2c130ee2bce97 xkbcomp-1.4..tar.bz2
c747faf1f78f5a5962419f8bdd066501 xkbevd-1.1..tar.bz2
502b14843f610af977dffc6cbf2102d5 xkbutils-1.0..tar.bz2
938177e4472c346cf031c1aefd8934fc xkill-1.0..tar.bz2
5dcb6e6c4b28c8d7aeb45257f5a72a7d xlsatoms-1.1..tar.bz2
4fa92377e0ddc137cd226a7a87b6b29a xlsclients-1.1..tar.bz2
e50ffae17eeb3943079620cb78f5ce0b xmessage-1.0..tar.bz2
723f02d3a5f98450554556205f0a9497 xmodmap-1.0..tar.bz2
eaac255076ea351fd08d76025788d9f9 xpr-1.0..tar.bz2
4becb3ddc4674d741487189e4ce3d0b6 xprop-1.2..tar.bz2
ebffac98021b8f1dc71da0c1918e9b57 xrandr-1.5..tar.bz2
96f9423eab4d0641c70848d665737d2e xrdb-1.1..tar.bz2
c56fa4adbeed1ee5173f464a4c4a61a6 xrefresh-1.0..tar.bz2
70ea7bc7bacf1a124b1692605883f620 xset-1.2..tar.bz2
5fe769c8777a6e873ed1305e4ce2c353 xsetroot-1.1..tar.bz2
558360176b718dee3c39bc0648c0d10c xvinfo-1.1..tar.bz2
11794a8eba6d295a192a8975287fd947 xwd-1.0..tar.bz2
9a505b91ae7160bbdec360968d060c83 xwininfo-1.1..tar.bz2
79972093bb0766fcd0223b2bd6d11932 xwud-1.0..tar.bz2
EOF

创建app目录并下载包到app目录

mkdir app &&
cd app &&
grep -v '^#' ../app-.md5 | awk '{print $2}' | wget -i- -nc \
-B https://www.x.org/pub/individual/app/ &&
md5sum -c ../app-.md5

切换root用户并配置as root脚本

su
as_root()
{
if [ $EUID = ]; then $*
elif [ -x /usr/bin/sudo ]; then sudo $*
else su -c \\"$*\\"
fi
} export -f as_root

启动一个出错时自动退出的bash

bash -e

运行以下命令安装所有app包

for package in $(grep -v '^#' ../app-.md5 | awk '{print $2}')
do
packagedir=${package%.tar.bz2}
tar -xf $package
pushd $packagedir
case $packagedir in
luit-[-]* )
sed -i -e "/D_XOPEN/s/5/6/" configure
;;
esac ./configure $XORG_CONFIG
make -j8
as_root make -j8 install
popd
rm -rf $packagedir
done

退出之前创建的bash

exit

删除已损坏的未记录脚本

as_root rm -f $XORG_PREFIX/bin/xkeystone

三.安装xorg字体

添加MD5文件

cat > font-.md5 << "EOF"
23756dab809f9ec5011bb27fb2c3c7d6 font-util-1.3..tar.bz2
0f2d6546d514c5cc4ecf78a60657a5c1 encodings-1.0..tar.bz2
6d25f64796fef34b53b439c2e9efa562 font-alias-1.0..tar.bz2
fcf24554c348df3c689b91596d7f9971 font-adobe-utopia-type1-1.0..tar.bz2
e8ca58ea0d3726b94fe9f2c17344be60 font-bh-ttf-1.0..tar.bz2
53ed9a42388b7ebb689bdfc374f96a22 font-bh-type1-1.0..tar.bz2
bfb2593d2102585f45daa960f43cb3c4 font-ibm-type1-1.0..tar.bz2
6306c808f7d7e7d660dfb3859f9091d2 font-misc-ethiopic-1.0..tar.bz2
3eeb3fb44690b477d510bbd8f86cf5aa font-xfree86-type1-1.0..tar.bz2
EOF

下载包并校验md5

mkdir font &&
cd font &&
grep -v '^#' ../font-.md5 | awk '{print $2}' | wget -i- -c \
-B https://www.x.org/pub/individual/font/ &&
md5sum -c ../font-.md5

切换root用户并配置as_root脚本

su
as_root()
{
if [ $EUID = ]; then $*
elif [ -x /usr/bin/sudo ]; then sudo $*
else su -c \\"$*\\"
fi
} export -f as_root

创建一个出错时自动退出的bash

bash -e

自动编译安装所有包

for package in $(grep -v '^#' ../font-.md5 | awk '{print $2}')
do
packagedir=${package%.tar.bz2}
tar -xf $package
pushd $packagedir
./configure $XORG_CONFIG
make -j8
as_root make install
popd
as_root rm -rf $packagedir
done

退出之前启动的bash

exit

配置fontconfig

install -v -d -m755 /usr/share/fonts                               &&
ln -svfn $XORG_PREFIX/share/fonts/X11/OTF /usr/share/fonts/X11-OTF &&
ln -svfn $XORG_PREFIX/share/fonts/X11/TTF /usr/share/fonts/X11-TTF

四.xorg-service依赖关系图

构建xorg-service过程中,pm-utils包的构建安装问题

1.首先它的第一个运行时的依赖vbetool很让人头疼,书籍中没有安装说明,资料也不完整

vbetool的官方网站:http://www.codon.org.uk/~mjg59/vbetool/

官方只介绍了他使用的两个依赖:libx86和libpci

libx86的官方地址:http://www.codon.org.uk/~mjg59/libx86/

首先解决这两个依赖

一.libx86包,它的作者不更新了,所以直接在这个包的官网下载的包,不能顺利编译安装,报出各种错误,我的解决思路有两个:

https://pkgs.org/这个linux包的检索网站可以找到一些linux发行版本所使用的包

1.在以上网站找到它的源码包,在它的源码包里面找patch文件,也就是这些发行版本为这个包写的补丁文件,把他加载到官方包里面,在对官方包进行编译安装

2.在以上网站找到它的二进制包,对照官方包里面Makefile文件里面,install一项,看都需要那几个二进制文件,并在发行版本的二进制包中找到,放在官方包里面安装

我只找到了二进制包,这些发行版本并没有提供源码包的补丁,下面贴出我找到的二进制文件打包完的链接

https://files.cnblogs.com/files/renren-study-notes/libx86.tar

具体操作步骤:

1.下载libx86官方包,解压,进入官方包

#wget http://www.codon.org.uk/~mjg59/libx86/downloads/libx86-1.1.tar.gz
#tar -xvf     libx86-1.1.tar.gz
cd libx86-1.1

2.下载并解压我提供的二进制包

#wget https://files.cnblogs.com/files/renren-study-notes/libx86.tar

#tar -xvf libx86.tar

3.执行安装命令

#make install

第二个依赖libpci的问题

首先blfs中提供了pciutils这个包,而需要的依赖包时libpci,这个原因是libpci是一些linux发行版本将pciutils包的静态库文件libpci.a单独构成的一个包

所以即使安装了blfs的pciutils包,在编译安装vbetool的过程中也会报错如下

/usr/lib/libpci.a 缺少构建此文件的工具

这里我并没有查到构建libcpi.a文件的工具是哪个,但是我查到了rpm包中构建vbetool所需的依赖

pciutils-devel  (blfs书中的pciutils包)
pciutils -devel-static (rpm包中libpci.a的二进制文件)
libx86-devel (前文中的libx86)

于是我就下载了rpm包中的libpci.a文件,放到/usr/lib目录下,没有lib目录可以手动创建,继续编译vbetool包就会提示已经有libpci.a这个文件了,就可以继续安装vbetool包了。

具体操作步骤如下:

libpci.a文件的下载链接:https://files.cnblogs.com/files/renren-study-notes/libpci.tar

pciutils项目地址:http://www.linuxfromscratch.org/blfs/view/stable/general/pciutils.html

1.根据blfs书中的pciutils项目内容编译安装pciutils包(书中都有介绍,节省篇幅不写了)

2.下载我提供的libpci.a文件,创建/usr/lib目录,将下载的文件解压后放到该目录

3.编译安装vbetool

1.下载vbetool包及补丁包

#wget http://ftp.de.debian.org/debian/pool/main/v/vbetool/vbetool_1.1.orig.tar.gz

#wget http://ftp.de.debian.org/debian/pool/main/v/vbetool/vbetool_1.1-2.diff.gz

2.解压vbetool包及补丁包

#gunzip vbetool_1.-.diff.gz

#tar -xvf vbetool_1..orig.tar.gz 

3.进入vbetool的解压目录并添加补丁文件

cd vbetool_1.

#patch -i ../vbetool_1.-.diff

4.编译安装vbetool包

#./configure --prefix=/usr
#make
#make install

编译安装ethtool包

1.下载包,解压包,进入包目录

# wget https://mirrors.edge.kernel.org/pub/software/network/ethtool/ethtool-4.19.tar.xz

#tar -xvf ethtool-4.19.tar.xz

cd ethtool-4.19

2.配置,测试,编译,安装

#./configure --prefix=/usr
#make
#make check
#make install

编译安装pm-utils包

它的内核设置不用更改,已经存在于默认配置了

只需要在grub.cfg中加入内核配置项

#vim /boot/grub/grub.cfg

在root=xxx ro 后面加入resume = / dev / <swap_partition>这里更换为你的swap的地址

五.选择编译安装xorg驱动程序

这个章节需要自己选择适合自己计算机的驱动程序

以下是我制作的xorg驱动的依赖关系图,标注红色1的是需要更改内核配置的包

建议此图使用方法:

1.找到自己机器需要的驱动

2.看自己需要的驱动需不需要重新编译内核,如果有,把需要重新编译内核的几个配置列出来,重新编译加入这些配置并安装内核

3.按照依赖关系安装包

4.这里使用查看固件加载命令查看加载错误的固件

dmesg | grep -i firmware

这里提示我缺少的固件是

failed to load firmware "radeon/HAINAN_pfp.bin

所以参照这个网站的表格

https://wiki.gentoo.org/wiki/Radeon#Firmware

将这个显卡的几个固件加载进内核,具体操作参考我的blfs笔记首页注意事项中的固件加载

blfs笔记首页链接:https://www.cnblogs.com/renren-study-notes/p/10214504.html

六.xterm中的等宽字体处理方法

1.下载字体包

# wget https://files.cnblogs.com/files/renren-study-notes/dejavu-fonts-ttf-2.37.tar.gz

2.解压并进入包

# tar -xvf dejavu-fonts-ttf-2.37.tar.gz

cd dejavu-fonts-ttf-2.37

3.复制fontconfig和ttf文件夹下的内容至/usr/share/fontconfig和/usr/share/fonts/X11-TTF文件夹下

# cp ttf/*  /usr/share/fonts/X11-TTF/
# cp fontconfig/* /usr/share/fontconfig/

七.启动测试配置xorg

1.重建库并启动xorg服务

这里要退出远程连接使用实体机运行下面的命令
#startx

运行startx后的效果

blfs(systemv版本)学习笔记-为桌面环境构建xorg服务的更多相关文章

  1. blfs(systemd版本)学习笔记-为桌面环境构建xorg服务

    我的邮箱地址:zytrenren@163.com欢迎大家交流学习纠错! lfs准备使用桌面环境,首先需要构建xorg服务 xorg服务项目地址:http://www.linuxfromscratch. ...

  2. Nutch1.7学习笔记:基本环境搭建及使用

    Nutch1.7学习笔记:基本环境搭建及使用 作者:雨水,时间:2013-10-31博客地址:http://blog.csdn.net/gobitan 说明:Nutch有两个主版本1.x和2.x,它们 ...

  3. Django:学习笔记(1)——开发环境配置

    Django:学习笔记(1)——开发环境配置 Django的安装与配置 安装Django 首先,我们可以执行python -m django --version命令,查看是否已安装django. 如果 ...

  4. Hadoop学习笔记(3)——分布式环境搭建

    Hadoop学习笔记(3) ——分布式环境搭建 前面,我们已经在单机上把Hadoop运行起来了,但我们知道Hadoop支持分布式的,而它的优点就是在分布上突出的,所以我们得搭个环境模拟一下. 在这里, ...

  5. ELK-6.5.3学习笔记–elk基础环境安装

    本文预计阅读时间 13 分钟 文章目录[隐藏] 1,准备工作. 2,安装elasticsearch. 3,安装logstash. 4,安装kibana 以往都是纸上谈兵,毕竟事情也都由部门其他小伙伴承 ...

  6. 【转】 Pro Android学习笔记(七八):服务(3):远程服务:AIDL文件

    目录(?)[-] 在AIDL中定义服务接口 根据AIDL文件自动生成接口代码 文章转载只能用于非商业性质,且不能带有虚拟货币.积分.注册等附加条件.转载须注明出处:http://blog.csdn.n ...

  7. 【转】 Pro Android学习笔记(七六):服务(1):local和remote

    文章转载只能用于非商业性质,且不能带有虚拟货币.积分.注册等附加条件.转载须注明出处:http://blog.csdn.net/flowingflying/ Android提供服务,服务是运行在后台的 ...

  8. [HeadFrist-HTMLCSS学习笔记]第三章构建模块:Web页面建设

    [HeadFrist-HTMLCSS学习笔记]第三章构建模块:Web页面建设 敲黑板!! <q>元素添加短引用,<blockquote>添加长引用 在段落里添加引用就使用< ...

  9. 【自动化学习笔记】_环境搭建Selenium2+Eclipse+Java+TestNG_(一)

    目录 第一步  安装JDK 第二步 下载Eclipse 第三步 在Eclipse中安装TestNG 第四步 下载Selenium IDE.SeleniumRC.IEDriverServer 第五步 下 ...

随机推荐

  1. 库函数wordcloud安装的问题

    在对python有了一定的了解之后就对python的第三方库产生了十分浓厚的兴趣,因为python的很多功能都是要依靠第三方库函数来实现的,而且在计算机二级刚刚加入的python考试中也有对第三方库的 ...

  2. 2019-4-26 css学习笔记

    CSS简介:Cascading Style Sheets(层叠样式表)的缩写,它是一种用来表现HTML或XML等文件样式的计算机语言. CSS的作用:是定义网页外观(例如,字体.背景.文本.位置.布局 ...

  3. 一个简单的C语言题背后的故事

    最近看到了一个C语言问题,是要计算出这个函数的输出: #include <stdio.h> int Test(int x,int y, int z){ printf("x,y,z ...

  4. Servlet-session简介及使用场景

  5. java开发,年薪15W的你和年薪50W的他的差距

      在这个IT系统动辄就是上亿流量的时代,Java作为大数据时代应用最广泛的语言,诞生了一批又一批的新技术,包括HBase.Hadoop.MQ.Netty.SpringCloud等等 .   一些独角 ...

  6. app自动化测试中的相关api

    这个说的api即python自动化测试中经常会使用到的一些api,具体如下: 1.find_element_by_id/find_elements_by_id 定位元素api,使用方法如下: driv ...

  7. maven-assembly-plugin的使用

    maven-assembly-plugin使用描述(拷自 maven-assembly-plugin 主页) The Assembly Plugin for Maven is primarily in ...

  8. 使用Windows的mstsc远程桌面连接到Ubuntu图形界面(AWS上安装的Ubuntu系统)

    参考文档:https://blog.csdn.net/liumaolincycle/article/details/50052619 https://www.cnblogs.com/eczhou/p/ ...

  9. Zabbix4.2.0基本配置和邮件报警

    目录 1. 修改中文 2. 添加监控本机 3. 监控本机mysql 4. 配置邮件报警 4.1 添加FTP模板 4.2 报警媒介类型 4.3 配置报警到用户 4.4 配置动作 4.5 模拟FTP故障 ...

  10. vc++开发安装程序实例

    前言 市面上有很多安装程序制作软件:但是,要实现个性化安装程序,还是自己动手来写一个更为妥当.本文介绍基本的安装程序制作的步骤. 安装程序界面: 安装程序可以分为几个功能点:1 资源的嵌入.释放.2 ...