• 系统安装记录 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百度看下能不能正常上网了, 网络环境依个人情况而定,大伙的和我并不一样,不详讲

    我所安装的组件

    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系统吧,不要一直吃灰了
  • 相关阅读:
    使用docker-client创建NFS挂载
    递归遍历JSON树
    electron-builder中NSIS相关配置
    nodejs调试基础【转载】
    node-java模块
    NodeJs中使用jQuery?
    如何实现electron多页面间通信
    转载:【知乎Live】狼叔:如何正确的学习Node.js
    js对象替换键值名称
    Eclipse 调试 darknet 代码
  • 原文地址:https://www.cnblogs.com/mikeguan/p/6660546.html
Copyright © 2020-2023  润新知