Skip to content

Liddy’s Linux 11.2 编译日志 Day2

…因为调整时间的原因,今日继续循着LFS编译Liddy’s Linux…目标是基本系统全部编译完毕,并且进行备份,随后…休息一段时间之后,9月9日继续按着BLFS编译各种环境及库,程式包等。

这次依旧跳过基于BIOS启动的GRUB的编译与安装,因为有openSUSE,暂且依赖于openSUSE的GRUB进行启动,随后再编译安装基于EFI(UEFI)启动的GRUB。

题外话:昨日最开始编译Binutils(确定SBU的长度)时将固态硬盘盒插入了USB2.0槽当中,今日插入了USB3.0槽,发现编译安装速度快了数倍不止(硬盘读写变快的缘故),这样算下来1SBU大概也就1分钟多一些,甚至少于1分钟…看起来这次编译需要耗费的时间将会大大降低不少。总之继续。

「备注」:注意一下libffi的编译。没有进行任何编译设置的更改,但日后若是出现依赖libffi的应用程序的错误的话,需要重新编译。

https://www.linuxfromscratch.org/lfs/view/stable/chapter08/libffi.html

…算了,还是更改为这样,以防万一:–with-gcc-arch=x86-64。

编译Groff时将页面尺寸设置为了A4:

PAGE=A4 ./configure --prefix=/usr

跳过了LFS第八章GRUB的安装。

命令行文本编辑器…使用了Nano代替了Vim。

根据LFS的指引进行了调试符号的清理(直接复制粘贴命令,以防打错字…)。

删除了为测试软件包临时创建的用户tester。

使用以下命令进行了自动网络配置:

bash /usr/lib/udev/init-net-rules.sh

这次自动配置好的/etc/udev/rules.d/70-persistent-net.rules文件内容如下:

SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="fc:34:97:3b:7a:0b", ATTR{dev_id}=="0x0", ATTR{type}=="1", NAME="enp4s0"

顺带一提,咱的网络配置只有有线连接(无wifi)。日后出了什么问题的话,再重新配置一遍即可。

暂且没有光驱,日后有之后再配置(若是需要配置USB光驱的话)。

基本延续Liddy’s Linux ver11.0编译时的设置进行网络设置。以下是/etc/resolv.conf文件内容:

domain google-public-dns-a.google.com
nameserver 8.8.8.8
nameserver 8.8.4.4

/etc/sysconfig/ifconfig.enp4s0内容,希望能够管用…

ONBOOT=yes
IFACE=enp4s0
SERVICE=ipv4-static
IP=192.168.1.2
GATEWAY=192.168.1.1
PREFIX=24
BROADCAST=192.168.1.255

然后运行了这个,确定主机名称:

echo "liddyslinux" > /etc/hostname

使用了LFS默认的/etc/inittab配置,日后编译启动之后的用户登录界面之时…算了,现在就将id:3:initdefault:更为id:5:initdefault:。

/etc/sysconfig/clock中UTC依旧设置为了0,为了避免与Microsoft Windows等系统的时间不兼容。

终端键盘设置依旧保持默认。

/etc/profile的内容为:

export LANG=zh_CN.utf8

重新登陆之后,bash环境顺利显示中文。

循着LFS配置了/etc/inputrc以及/etc/shells文件。

…该是最熟悉不过的/etc/fstab文件的编辑了,必须的环节是Liddy’s Linux完全编译好之后需要想办法能够在不进行每一次都更新/etc/fstab的前提之下,令Liddy’s Linux在不同存储设备间能够正常开机工作——那时候研究一下Ubuntu Linux等优秀的Linux发行版是怎么做到的罢。

总之,这一次的/etc/fstab文件如下:

UUID=e15e2558-c1f4-4c3d-998f-22fb135d5641 / ext4 defaults 1 1
proc /proc proc nosuid,noexec,nodev 0 0
sysfs /sys sysfs nosuid,noexec,nodev 0 0
devpts /dev/pts devpts gid=5,mode=620 0 0
tmpfs /run tmpfs defaults 0 0
devtmpfs /dev devtmpfs mode=0755,nosuid 0 0

随后是内核编译,在默认配置的基础之上新增了如下配置:

https://www.linuxfromscratch.org/blfs/view/11.2/multimedia/alsa-lib.html#alsa-lib-kernel

https://www.linuxfromscratch.org/blfs/view/11.2/x/x7driver.html#xorg-vmware-driver-kernel

https://www.linuxfromscratch.org/blfs/view/11.2/x/x7driver.html#xorg-nouveau-driver-kernel

https://www.linuxfromscratch.org/blfs/view/11.2/x/x7driver.html#xorg-intel-driver-kernel

https://www.linuxfromscratch.org/blfs/view/11.2/x/x7driver.html#xorg-amdgpu-driver-kernel

https://www.linuxfromscratch.org/blfs/view/11.2/basicnet/wpa_supplicant.html#wpa_supplicant-kernel

https://www.linuxfromscratch.org/blfs/view/11.2/basicnet/wireless_tools.html#wireless-kernel

https://www.linuxfromscratch.org/blfs/view/11.2/general/libusb.html#libusb-kernel

https://www.linuxfromscratch.org/blfs/view/11.2/pst/sane.html#sane-kernel

https://www.linuxfromscratch.org/blfs/view/11.2/x/qtwebengine.html#qtwebengine-kernel

https://www.linuxfromscratch.org/blfs/view/11.2/postlfs/ntfs-3g.html#ntfs3-kernel

https://www.linuxfromscratch.org/blfs/view/11.2/postlfs/ntfs-3g.html#ntfs-3g-kernel

https://www.linuxfromscratch.org/blfs/view/11.2/basicnet/networkmanager.html#NetworkManager-kernel

https://www.linuxfromscratch.org/blfs/view/11.2/postlfs/lvm2.html#lvm2-kernel

https://www.linuxfromscratch.org/blfs/view/11.2/basicnet/iw.html#iw-kernel

https://www.linuxfromscratch.org/blfs/view/11.2/postlfs/fuse.html#fuse-kernel

https://www.linuxfromscratch.org/blfs/view/11.2/postlfs/dosfstools.html#dosfstools-kernel

https://www.linuxfromscratch.org/blfs/view/11.2/pst/cups.html#cups-kernel

https://www.linuxfromscratch.org/blfs/view/11.2/postlfs/btrfs-progs.html#btrfs-progs-kernel

https://www.linuxfromscratch.org/blfs/view/11.2/general/bluez.html#bluez-kernel

https://www.linuxfromscratch.org/blfs/view/11.2/x/x7driver.html#xorg-wacom-driver-kernel

https://www.linuxfromscratch.org/blfs/view/11.2/postlfs/grub-setup.html#uefi-kernel

另外还启用(编入内核)了Virtual Box Graphics Card,MMC/SD/SDIO card support,exFAT filesystem support,CONFIG_INPUT_TABLET之下所有设备,Wacom W8001 penabled serial touchscreen,Wacom Tablet support (I2C),Multimedia support之下大部分设备,ATI Radeon,Intel GMA500/600/3600/3650 KMS Framebuffer,Bootup Logo,更改了默认主机名为liddyslinux,还有这些(为了能够令LFS于USB设备间顺利启动):

参照:https://www.linuxquestions.org/questions/linux-from-scratch-13/lfs-7-8-setting-up-grub-to-boot-from-flash-drive-4175572965/

内核顺利编译完成…将权限锁定于root用户,日后可能还会再编译内核罢…若是有模块或是功能需要再进行编译之时。

循着这里创建了有关于Liddy’s Linux标识及LFS标识的文件:

https://www.linuxfromscratch.org/lfs/view/stable/chapter11/theend.html

创建了普通用户liddy与cireo,皆为群组liddy中(使用groupadd与useradd创建),密码同root的密码。

循着BLFS创建了这些bash shell启动时加载的文件:

https://www.linuxfromscratch.org/blfs/view/11.2/postlfs/profile.html

还有这里,initramfs是必要的…否则一旦更换计算机,将无法启动。

https://www.linuxfromscratch.org/blfs/view/11.2/postlfs/initramfs.html

按照11.0的发行说明对/usr/share/mkinitramfs/init.in文件进行了修改,添加了sleep 1。若不添加,则会因为硬盘/优盘等相应过快而无法顺利启动。另外制作initramfs需要两个程式包提前编译完毕,其中的madam需要添加一些支持功能,需要重新编译内核…哎,应该时间不会太长——果然很短。

总之initramfs文件制作完毕,并且放置于/boot目录中,该是更新主系统openSUSE的GRUB配置文件,然后进入Liddy’s Linux的时候了…启动失败,虽说能够加载initramfs,但是给出以下错误:

cannot set terminal process group / inappropriate ioctl for device

稍加查找,怀疑是GRUB的配置问题,但是试了一些方法无果…试着现在就将GRUB装入Liddy’s Linux再看看。

EFI版GRUB安装完毕之后,按照这个指南将GRUB安装至了预先准备好的EFI分区:

https://www.linuxfromscratch.org/blfs/view/11.2/postlfs/grub-setup.html

…结果GRUB2能够正常运行,但是依旧无法启动…再尝试了重新安装eudev,不是这个问题(为了确认问题原因调整了sleep的时间,重新制作了initramfs,发现了与sysfs有关的问题),随后忽然想起是否为固态硬盘盒/固态硬盘的驱动未编入内核…再次试一试好了。试着添加了其他未添加的USB总设备支持(USB3.0,USB2.0,USB1.0,这样),以及USB Attached SCSI,若是还不行的话,明日再想办法…眼睛很困。

…但还不能睡。总之通过于主系统openSUSE间执行lsusb这个命令,查到了咱的固态硬盘盒型号为:

Bus 002 Device 002: ID 174c:235c ASMedia Technology Inc. AS2235
…直接查询无果。随后再经过查找,试着编入这两个模块一试:

Enclosure Services,SCSI Enclosure Support
参考资料:

http://www.jinbuguo.com/kernel/longterm-linux-kernel-options.html

无果(虽然日后有用),再试试从这里查找好了,首先搜硬件资料,随后确认应当编译什么模块:

https://linux-hardware.org/

咱的固态硬盘盒采用的芯片(或是架构)为:asmedia as2235 ==> ASM235CM…经查找无果,转而查找如何令linux支持SATA固态硬盘,得到了这个结果:

https://zhidao.baidu.com/question/1835037743815075500.html

顺带着将ext2与ext3的文件系统支持编译至内核间…另外发现关键的一点,就是/proc的支持之前未编写进内核当中,所以出现了最终错误之前的/proc/devices fopen failed以及/proc/mounts _Get_Sysfs_Dir fopen failed的错误…应该是这样,编译完毕之后再试试——结果顺利启动,果然是内核配置的问题。总之,基础系统顺利编译完毕。

那样今日就到这里,下次编译时间为2022年09月09日。

今日编译的软件包列表如下:

Pkg-config-0.29.2
Ncurses-6.3
Sed-4.8
Psmisc-23.5
Gettext-0.21
Bison-3.8.2
Grep-3.7
Bash-5.1.16
Libtool-2.4.7
GDBM-1.23
Gperf-3.1
Expat-2.4.8
Inetutils-2.3
Less-590
Perl-5.36.0
XML::Parser-2.46
Intltool-0.51.0
Autoconf-2.71
Automake-1.16.5
OpenSSL-3.0.5
Kmod-30
Libelf from Elfutils-0.187
Libffi-3.4.2
Python-3.10.6
Wheel-0.37.1
Ninja-1.11.0
Meson-0.63.1
Coreutils-9.1
Check-0.15.2
Diffutils-3.8
Gawk-5.1.1
Findutils-4.9.0
Groff-1.22.4
Gzip-1.12
IPRoute2-5.19.0
Kbd-2.5.1
Libpipeline-1.5.6
Make-4.3
Patch-2.7.6
Tar-1.34
Texinfo-6.8
Nano-6.4
Eudev-3.2.11
Man-DB-2.10.2
Procps-ng-4.0.0
Util-linux-2.38.1
E2fsprogs-1.46.5
Sysklogd-1.5.1
Sysvinit-3.04
LFS-Bootscripts-20220723
Linux-5.19.2
cpio-2.13
mdadm-4.2
libaio-0.3.113
LVM2-2.03.16
Which-2.21 and Alternatives
libpng-1.6.37
FreeType-2.12.1
Popt-1.18
mandoc-1.14.6
efivar-38
efibootmgr-18
GRUB-2.06 for EFI

Published inLiddy's Linux编译日志

Be First to Comment

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

5 × 4 =