系统安装记录 install OS
上个系统很乱,基本系统是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百度看下能不能正常上网了, 网络环境依个人情况而定,大伙的和我并不一样,不详讲
我所安装的组件
- wayland 想尽快进入图像界面可以考虑先不安装xwayland支持,那样就少很多依赖可以快速进入图形化系统 就可以愉快的复制粘贴了
- awesome 这是我使用的windos manager, 4.x版本和之前的3.x版本改动很大, 感觉现在就是一个完整的图形环境了
- mpfc 音乐播放器
- mpv 视频播放器
- fcitx 输入法程序这个blfs里面好像没有, blfs里面有ibus,所以简单的话可以直接考虑使用ibus
- google-chrome chrome57版本的flash挺坑的,可以参考chromium的启动脚本添加 --paapo-path 等参数启动(启用flash后cpu占用轻松达到25%), blfs8里面其实自带了chromium, 看到SBU达到90我就放弃了,渣本估计需要接近5个小时才能编译完成
- wps 金山的软件,不喜欢,人品都被败光了,只是为了测试安装试下
- 其他的一些必须的软件, 比如解压就可直接使用的Telegram等
遇到的坑
- 因为我打算完全禁用nvidia显卡(鸡肋,甚至鸡肋都算不算的东西,如果不是焊死在主板上,早就拿下来了),安装软件的时候无脑进行,导致安装了 libvdpau这个库文件,最后导致ffmpeg及mplayer默认使用vdpau的模块,在我电脑上播放视频犹如
幻灯片,最后去掉这个库文件,重新编译ffmpeg mplayer mpv gst等软件才完全剔除这个影响 - fcitx,安装时无脑,就安装了个fcitx就认为可以输入汉字了,调了好久发现没装输入法啊,我只装了一个输入法框架而已,安装libgooglepinyin后可以正常调用输入法(怕libpinyin依赖太多,就没装, sunpinyin依赖不是很多可以考虑)
- google-chrome 之前讲了启动脚本的问题,现在还有一个问题是google-chrome好像调用某个系统调用经常失败,导致系统日志里面都是 audit chrome。。。。, 无奈,没搜到好的解决办法,把内核的audit功能关了,眼不见心不烦,顺便还能减小100K的内核大小
- 还是显卡的问题,之前禁用不完整,导致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).
待完善的地方
- 打算安装teamviewer的,这样我就基本可以实现迁移到linux上工作了(qq用手机版就行,本来也是不常用的东西,聊天有telegram及irc),可是teamviewer依赖wine才能跑,需要安装很多32位库,暂时没有解决这个问题,留待之后进行
[通过复制arch的32位库, teamviewer已经基本可以使用] - awesome及weston个性化定制,由于不是经常使用这个linux,所以个性化的定制没有进行,期待以后有时间完善这个
- 内核编译时间越来越久了,大小已经达到5.4M了,需要优化下, 其他需要使用的软件,可能因为各种原因没有安装,期待之后有时间多使用这个Linux系统吧,不要一直吃灰了
系统安装记录 install OS的更多相关文章
- Ubuntu 14.04 16.04 17.10 + Win10 双系统安装记录 + 分区大小选择办法
安装了N遍,重要的东西在此记录. 参考了 http://www.libinx.com/2017/five-steps-win10-ubuntu-dual-boot/ 忠告:为了让日后喘气能匀呼些,要选 ...
- 【bug记录】OS Lab4 踩坑记
OS Lab4 踩坑记 Lab4在之前Lab3的基础上,增加了系统调用,难度增加了很多.而且加上注释不详细,开玩笑的指导书,自己做起来困难较大.也遇到了大大小小的bug,调试了一整天. 本文记录笔者在 ...
- 【bug记录】OS Lab3 踩坑记
OS Lab3 踩坑记 Lab3在之前Lab2的基础上,增加了进程建立.调度和中断异常处理.其中测试包括进程建立以及进程调度部分. 由于是第一次做bug记录,而且是调试完bug后再做的记录,所以导致记 ...
- 记录Mac OS下编译Thrift库
方法一:brew管理工具安装Homebrew是Mac开发包管理工具,类似于Linux的apt-get之类的,实它相当于开发软件界的 Appstore.借助该管理工具,可以自动化地安装软件包,它会自动安 ...
- Android记录10--android.os.NetworkOnMainThreadException异常解决办法
2013年11月1日小光棍节 有一段时间没有发表新的博客了,最近一直在忙着开发新浪微博客户端遇到很多问题比较头痛,比如说本篇博客要讲的NetworkOnMainThreadException这个异常, ...
- Deepin深度Linux系统安装记录
测试设备:小米游戏本,最新版15.6进入安装后发现黑屏,所以使用15.5安装 Deepin 15.5 官方介绍页 官方下载 百度云下载 下载后得到文件夹15.5 Release 将里面的ISO镜像文件 ...
- win7 xp 双系统安装记录
原机win7 64 增加xp x86 win7在c盘,xp装h盘 1.老毛桃pe,雨林木风gho,蓝屏,0000007b 2.通用pe.雨林木风gho,蓝屏,00000007b 3.pe设置h盘为系统 ...
- install OS from usb
https://unetbootin.github.io/ https://rufus.akeo.ie/
- mac os x 记录 转载
转载:远景网友(手机锋友t5sd3sf):http://bbs.feng.com/read-htm-tid-10434256.html 一个命令制作 OS X 原版安装U盘 1.要保证下载的原版安装包 ...
随机推荐
- Linux Mint (应用软件— 虚拟机:Virtualbox)
近期想自己折腾一下Linux系统本身.比方Linux裁减或者移植.裁减或者移植Linux是一件麻烦的事情.而且出错后会影响到当前的系统.怎样才干不影响当前机器上的系统呢,于是便想到了虚拟机.在当前系统 ...
- github上比較好的开源项目(持续更新)
1:https://github.com/Skykai521/StickerCamera 实现相机功能 实现对图片进行裁剪的功能 图片的滤镜功能 能为图片加入贴纸(贴纸可移动,放大,旋转) 能为图片加 ...
- URL重写:Rewirte模块原理详解
Apache+PHP+MySQL Rewirte主要的功能就是实现URL的跳转和隐藏真实地址,基于Perl语言的正则表达式规范.平时帮助我们实现拟静态,拟目录,域名跳转,防止盗链等.本文将针对mod_ ...
- oracle中的minus数据比对
1.要有唯一索引或者主键作为前提,减少数据冲突的数量,如示例标红的地方: 2.当有in查询的时候,尽量用exists,这样能提高查询效率: create table TF_F_USER_DIFF1 ...
- android 常用方法总结
public class Toolkit { /** * * Role:Telecom service providers获取手机服务商信息 <BR> * * 需要加入权限<uses ...
- 如何开启Apache Rewrite功能
一.Ubuntu默认未开启Rewrite支持 apche模块加载工作已分散到不同的配置文件,这样看起来似乎更为合理,管理起来也非常方便.下面看一下如何开启Rewrite模块,当用户需使用301重定向. ...
- 在Windows 10中开启开发者模式
及以上)的电脑上使用Visual Studio来开发Windows 10或者Windows 8.1的应用,你可能会遇到下面的问题,要求你开启开发者模式. 于是你跑到设置里面,把开发者模式打开: 结果你 ...
- PHP SOCKET编程 .
1. 预备知识 一直以来很少看到有多少人使用php的socket模块来做一些事情,大概大家都把它定位在脚本语言的范畴内吧,但是其实php的socket模块可以做很多事情,包括做ftplist,http ...
- 使用Office 365前,企业必须要知道的10件事
目前的市场上充斥着很多关于微软Office 365的炒作,相信厂商.客户或者企业的都有自己不同的考虑.Office 365是微软云版本的Office,用户可以通过互联网创建一个帐户,付款.下载应用安装 ...
- 基于镜像安装mysql
准备目录 cd /opt mkdir -p mysql/data mysql/logs mysql/conf 查找MySql镜像版本 docker search mysql 安装指定版本的mysql镜 ...