上个系统很乱,基本系统是lfs7.7,上面应用都是基于lfs7.9,基本系统是才接触lfs时搭建的,打包保存后一直没怎么使用过,到lfs7.10快出来的时候有段时间有空就拿出来跑了一下,安装了一些软件,

所以这个系统没有任何规划总体就是拼凑出来的(比如尝试了从ext4转换到btrfs,甚至中间误删除过系统重要文件),现在还是换下系统吧,顺便将一些以前没有完成的事做掉

PS:误删的是pkg-config目录下的所有文件(按照查看的教程应该是删除临时目录下pkg-config里面的所有文件?!为什么要删这个目录???,最后删错目录了),这对编译来说完全就是灾难性的,

后来通过btrfs的快照恢复过一些,重新安装了一些软件恢复过一些,其他的是等到编译软件报错时再处理的

首先是分区, 由于采用btrfs,分区格式化操作就十分简单了

#之前挂了三个子卷,安装系统前将两个子卷及快照都删了
[root@myOS 23:49:08 sources]# btrfs subvolume list /
ID 262 gen 95727 top level 5 path lfs #好久没玩btrfs了,错误创建子卷
[root@myOS 23:49:10 sources]# mkdir /lfs
[root@myOS 23:49:40 sources]# btrfs subvolume create /lfs_8
Create subvolume '//lfs_8'
[root@myOS 23:50:33 sources]# btrfs subvolume list /
ID 262 gen 95730 top level 5 path lfs
ID 324 gen 95730 top level 262 path lfs_8 #删除刚才误创建的子卷
[root@myOS 23:50:38 sources]# btrfs subvolume delete /lfs_8
Delete subvolume (no-commit): '//lfs_8'
[root@myOS 23:51:04 sources]#
[root@myOS 23:51:07 sources]# btrfs subvolume delete -C /lfs_8
ERROR: cannot access subvolume /lfs_8: No such file or directory #上面第一步已经删除子卷了,第二步错误用法
[root@myOS 23:51:11 sources]# btrfs subvolume list /
ID 262 gen 95730 top level 5 path lfs
[root@myOS 23:51:13 sources]# #创建新的子卷用来安装新系统
[root@myOS 23:51:14 sources]# mount -t btrfs /dev/sda2 /lfs
[root@myOS 23:51:33 sources]# ls -l /lfs/
total 0
drwxr-xr-x 1 root root 172 Apr 2 23:51 lfs
[root@myOS 23:51:38 sources]# #这里的挂载看着文件名很揪心,我创建挂载点时没考虑太多
[root@myOS 23:51:38 sources]# btrfs subvolume create /lfs/lfs_8
Create subvolume '/lfs/lfs_8'
[root@myOS 23:52:01 sources]# btrfs subvolume list /
ID 262 gen 95732 top level 5 path lfs
ID 325 gen 95732 top level 5 path lfs_8
[root@myOS 23:54:47 sources]# mount -v -t btrfs -o subvol=/lfs_8 /dev/sda2 /mnt/lfs
mount: /dev/sda2 mounted on /mnt/lfs.

好了, 系统分区及挂载完成,下面就可以正式安装系统了

2017年2月底lfs8.0就出来了,虽然是大版本号更新,但是具体内容没有太大变化,至少安装过程还是一样地

基础系统的安装花费四个小时的时间,这其中我已经尽量避免做软件安装时的测试了,如果加上测试时间,另算

基础系统安装,完全按照手册进行即可, 这里需要主要的是宿主机的环境一定要在手册规定的范围内,否则可能出现各种奇怪问题

主要考虑 binutils和glibc两个版本对不对就差不错了

ld --version
ldd --version

由于我已经有可以启动的系统了,采用的引导器是grub, 原则上来说我现在不需要安装grub了

这里再说一下grub的安装, 我安装时一般选择 i386 pc模式(传统bios) + x86_64 efi模式(新的uefi),而这两个如果需要同时安装 configure的时候好像有问题, 我是采用先安装一个之后清空编译环境重新安装另一个,达到安装两个模式

安装基本到第六步走完就结束了, 第七步的配置适当进行就可以了 第八步的内核配置及引导按照往常进行

基本系统安装结束可以考虑继续blfs了

首先的问题是需要网络连接

我的有线网卡内核自带驱动,比较好解决(之前安装系统都是先插上网线安装的)

这次我打算直接使用无线网卡 (bcm43228), 我的这个无线网卡内核其实也是自带驱动b43驱动可以使用,但是b43驱动经常无缘无故掉线,很烦,不如直接wl驱动

所以在有网络环境的时候先下载好 wpa_supplicant 及 broadcom 的驱动程序 dhcp程序可以考虑之后安装也行

安装好无线网卡驱动 利用ip配置好ip地址, 写好dns地址, 设置好路由 就可以ping百度看下能不能正常上网了, 网络环境依个人情况而定,大伙的和我并不一样,不详讲

我所安装的组件

  1. wayland 想尽快进入图像界面可以考虑先不安装xwayland支持,那样就少很多依赖可以快速进入图形化系统 就可以愉快的复制粘贴了
  2. awesome 这是我使用的windos manager, 4.x版本和之前的3.x版本改动很大, 感觉现在就是一个完整的图形环境了
  3. mpfc 音乐播放器
  4. mpv 视频播放器
  5. fcitx 输入法程序这个blfs里面好像没有, blfs里面有ibus,所以简单的话可以直接考虑使用ibus
  6. google-chrome chrome57版本的flash挺坑的,可以参考chromium的启动脚本添加 --paapo-path 等参数启动(启用flash后cpu占用轻松达到25%), blfs8里面其实自带了chromium, 看到SBU达到90我就放弃了,渣本估计需要接近5个小时才能编译完成
  7. wps 金山的软件,不喜欢,人品都被败光了,只是为了测试安装试下
  8. 其他的一些必须的软件, 比如解压就可直接使用的Telegram等

遇到的坑

  1. 因为我打算完全禁用nvidia显卡(鸡肋,甚至鸡肋都算不算的东西,如果不是焊死在主板上,早就拿下来了),安装软件的时候无脑进行,导致安装了 libvdpau这个库文件,最后导致ffmpeg及mplayer默认使用vdpau的模块,在我电脑上播放视频犹如

    幻灯片,最后去掉这个库文件,重新编译ffmpeg mplayer mpv gst等软件才完全剔除这个影响
  2. fcitx,安装时无脑,就安装了个fcitx就认为可以输入汉字了,调了好久发现没装输入法啊,我只装了一个输入法框架而已,安装libgooglepinyin后可以正常调用输入法(怕libpinyin依赖太多,就没装, sunpinyin依赖不是很多可以考虑)
  3. google-chrome 之前讲了启动脚本的问题,现在还有一个问题是google-chrome好像调用某个系统调用经常失败,导致系统日志里面都是 audit chrome。。。。, 无奈,没搜到好的解决办法,把内核的audit功能关了,眼不见心不烦,顺便还能减小100K的内核大小
  4. 还是显卡的问题,之前禁用不完整,导致nvidia一直是全功率运行的,发热量巨大,笔记本放在哪不动风扇都呼呼的转,参考这个解决Hybrid graphics
Fully Power Down Discrete GPU
You may want to turn off the high-performance graphics processor to save battery power, this can be done by installing the acpi_call package.
Tip: For kernels not in the Official repositories, the acpi_call-git-dkmsAUR is an alternative. See also DKMS.
Once installed load the kernel module:
# modprobe acpi_call
With the kernel module loaded run the following:
# /usr/share/acpi_call/examples/turn_off_gpu.sh
This script will go through all the known data buses and attempt to turn them off. You will get an output similar to the following:
Trying \_SB.PCI0.P0P1.VGA._OFF: failed
Trying \_SB.PCI0.P0P2.VGA._OFF: failed
Trying \_SB_.PCI0.OVGA.ATPX: failed
Trying \_SB_.PCI0.OVGA.XTPX: failed
Trying \_SB.PCI0.P0P3.PEGP._OFF: failed
Trying \_SB.PCI0.P0P2.PEGP._OFF: failed
Trying \_SB.PCI0.P0P1.PEGP._OFF: failed
Trying \_SB.PCI0.MXR0.MXM0._OFF: failed
Trying \_SB.PCI0.PEG1.GFX0._OFF: failed
Trying \_SB.PCI0.PEG0.GFX0.DOFF: failed
Trying \_SB.PCI0.PEG1.GFX0.DOFF: failed
Trying \_SB.PCI0.PEG0.PEGP._OFF: works!
Trying \_SB.PCI0.XVR0.Z01I.DGOF: failed
Trying \_SB.PCI0.PEGR.GFX0._OFF: failed
Trying \_SB.PCI0.PEG.VID._OFF: failed
Trying \_SB.PCI0.PEG0.VID._OFF: failed
Trying \_SB.PCI0.P0P2.DGPU._OFF: failed
Trying \_SB.PCI0.P0P4.DGPU.DOFF: failed
Trying \_SB.PCI0.IXVE.IGPU.DGOF: failed
Trying \_SB.PCI0.RP00.VGA._PS3: failed
Trying \_SB.PCI0.RP00.VGA.P3MO: failed
Trying \_SB.PCI0.GFX0.DSM._T_0: failed
Trying \_SB.PCI0.LPC.EC.PUBS._OFF: failed
Trying \_SB.PCI0.P0P2.NVID._OFF: failed
Trying \_SB.PCI0.P0P2.VGA.PX02: failed
Trying \_SB_.PCI0.PEGP.DGFX._OFF: failed
Trying \_SB_.PCI0.VGA.PX02: failed
See the "works"? This means the script found a bus which your GPU sits on and it has now turned off the chip. To confirm this, your battery time remaining should have increased. Currently, the chip will turn back on with the next reboot to get around this we do the following:
Note: To turn the GPU back on just reboot.
Add the kernel module to the array of modules to load at boot:
/etc/modules-load.d/acpi_call.conf
#Load 'acpi_call.ko' at boot. acpi_call
To turn off the GPU at boot we could just run the above script but honestly that is not very elegant so instead lets make use of systemd's tmpfiles.
/etc/tmpfiles.d/acpi_call.conf w /proc/acpi/call - - - - \\_SB.PCI0.PEG0.PEGP._OFF
The above config will be loaded at boot by systemd. What it does is write the specific OFF signal to the /proc/acpi/call file. Obviously, replace the \_SB.PCI0.PEG0.PEGP._OFF with the one which works on your system (please note that you need to escape the backslash).

待完善的地方

  1. 打算安装teamviewer的,这样我就基本可以实现迁移到linux上工作了(qq用手机版就行,本来也是不常用的东西,聊天有telegram及irc),可是teamviewer依赖wine才能跑,需要安装很多32位库,暂时没有解决这个问题,留待之后进行

    [通过复制arch的32位库, teamviewer已经基本可以使用]
  2. awesome及weston个性化定制,由于不是经常使用这个linux,所以个性化的定制没有进行,期待以后有时间完善这个
  3. 内核编译时间越来越久了,大小已经达到5.4M了,需要优化下, 其他需要使用的软件,可能因为各种原因没有安装,期待之后有时间多使用这个Linux系统吧,不要一直吃灰了

系统安装记录 install OS的更多相关文章

  1. Ubuntu 14.04 16.04 17.10 + Win10 双系统安装记录 + 分区大小选择办法

    安装了N遍,重要的东西在此记录. 参考了 http://www.libinx.com/2017/five-steps-win10-ubuntu-dual-boot/ 忠告:为了让日后喘气能匀呼些,要选 ...

  2. 【bug记录】OS Lab4 踩坑记

    OS Lab4 踩坑记 Lab4在之前Lab3的基础上,增加了系统调用,难度增加了很多.而且加上注释不详细,开玩笑的指导书,自己做起来困难较大.也遇到了大大小小的bug,调试了一整天. 本文记录笔者在 ...

  3. 【bug记录】OS Lab3 踩坑记

    OS Lab3 踩坑记 Lab3在之前Lab2的基础上,增加了进程建立.调度和中断异常处理.其中测试包括进程建立以及进程调度部分. 由于是第一次做bug记录,而且是调试完bug后再做的记录,所以导致记 ...

  4. 记录Mac OS下编译Thrift库

    方法一:brew管理工具安装Homebrew是Mac开发包管理工具,类似于Linux的apt-get之类的,实它相当于开发软件界的 Appstore.借助该管理工具,可以自动化地安装软件包,它会自动安 ...

  5. Android记录10--android.os.NetworkOnMainThreadException异常解决办法

    2013年11月1日小光棍节 有一段时间没有发表新的博客了,最近一直在忙着开发新浪微博客户端遇到很多问题比较头痛,比如说本篇博客要讲的NetworkOnMainThreadException这个异常, ...

  6. Deepin深度Linux系统安装记录

    测试设备:小米游戏本,最新版15.6进入安装后发现黑屏,所以使用15.5安装 Deepin 15.5 官方介绍页 官方下载 百度云下载 下载后得到文件夹15.5 Release 将里面的ISO镜像文件 ...

  7. win7 xp 双系统安装记录

    原机win7 64 增加xp x86 win7在c盘,xp装h盘 1.老毛桃pe,雨林木风gho,蓝屏,0000007b 2.通用pe.雨林木风gho,蓝屏,00000007b 3.pe设置h盘为系统 ...

  8. install OS from usb

      https://unetbootin.github.io/ https://rufus.akeo.ie/

  9. mac os x 记录 转载

    转载:远景网友(手机锋友t5sd3sf):http://bbs.feng.com/read-htm-tid-10434256.html 一个命令制作 OS X 原版安装U盘 1.要保证下载的原版安装包 ...

随机推荐

  1. java网络编程(2)InetAddress 类及udp协议

    InetAddress 类 JDK中为开发网络应用程序提供了java.net包,该包下的类和接口差点儿都是为网络编程服务的. InetAddress:用于描写叙述IP地址的对象 InetAddress ...

  2. JavaScript的join()

    JavaScript join() 方法 JavaScript Array 对象 定义和用法 join() 方法用于把数组中的所有元素放入一个字符串. 元素是通过指定的分隔符进行分隔的. 语法 arr ...

  3. 成长这事儿,不可不说-------Day36

    事实上我一直都有一个观点,从我当年刚学抛物线那会就有:人生事实上就是一条轨迹,无非是一些点的集合.只是有些在低谷,有些在高峰,放形象了看,有些熠熠生辉,有些暗淡的几若消逝,有些人总喜欢回头数着过往的痕 ...

  4. Weka关联规则分析

    购物篮分析: Apriori算法: 参数设置: 1.car 如果设为真,则会挖掘类关联规则而不是全局关联规则. 2. classindex 类属性索引.如果设置为-1,最后的属性被当做类属性. 3. ...

  5. eclipse maven 依赖jar下载失败解决办法

    针对PC与Maven私服之间网络传输问题 打开.m2本地仓库所在目录, 通过win文件夹的搜索功能,查找 *.lastUpdated ,然后将找到的文件全部删除 重新 Maven Update Pro ...

  6. php 微信开发之新增上传/获取下载临时素材

    php 微信开发之新增上传/获取下载临时素材 代码 <?php define("AppID","");//你的id define("AppSec ...

  7. Harbor的搭建(vmware企业级docker镜像私服)

    1.下载harbor,地址https://github.com/vmware/harbor2.进入harbor-master/Deploy目录,修改harbor.cfg文件,主要修改以下信息      ...

  8. IntelliJ idea——》删除tag

    查看git上所有tag E:\eju_IdeaProjects\house-platform>git tag --11v1. 20181107周三上线 20181120周二上线 v1.0.0 v ...

  9. CentOS 没有可用软件包 libmcrypt

    [1]安装libmcrypt 提示:没有可用软件包 解决办法: 1.安装第三方yum源 1.1 wget http://www.atomicorp.com/installers/atomic 1.2 ...

  10. 源码安装Apache,报错:Cannot use an external APR with the bundled APR-util

    一般在第一次源码安装是没有问题的,在版本变化情况下在次源码安装可能会遇到此问题: apache2.0.x与apache2.2.x在apr有很大区别,前者为依赖公用apr,后者依赖于自身的apr.一般前 ...