前言:
最近折腾Linux上瘾了,上一篇使用CentOS 7+lightdm+Openbox+Chromium打造单功能用途电脑(大屏展示电脑)搞完之后感觉还是受限于CentOS底层设计本身就是当服务器用的,所以启动速度并不是特别理想,还是想找个更轻量的底层系统解决方案.虽然之前也折腾过不少次TinyCoreLinux,不过tcz库里面的可以直接拿来用的包真是少得可怜,而且不同版本之间还不通用,想换个桌面环境都很捉急,也就跑点简单的服务还凑活.
回到下面要开始实验的主角:ArchLinux,其实这个发行版老早以前就玩耍过了,当时也是看有很多"软文"各种安利ArchLinux有多好多好,经过N次尝试挑战+N次半途而废,这货一点都不友好好吧~最基本的系统安装连个GUI界面都尼玛没有,啥都得自己撸代码搞.好吧~我承认上次撸代码装Linux已经是10年前在学校宿舍的故事了,现在随便一个发行版都会自带图形界面安装向导了,最不济的也得是个TUI向导,显然这也把人都给惯懒了...
讲真,这次撸完ArchLinux的感觉就像当年终于耐着性子看权利的游戏前两集一样,果然那么多人都说好的东西不是没有道理的.一旦 熟耐着性子坚持两集后根本就停不下来了.ArchLinux这货确实有过人之处,基本上感觉系统安装过程就是像堆积木一样,虽然过程是麻烦了点,但是保证完全是可以按照你的想法量身打造,不带一点肥肉的精瘦系统,再加上无比强大的官方repo满足你的一切想象,用来打造单功能用途PC简直不能再合适了!
ok,闲聊结束,还是在VirtualBox里面,开始撸~
1.分区
# cfdisk
选dos(MBR)分区表类型
分两个区,一个swap,一个挂/,记得把挂/的分区设置为bootable
格式化分区
# mkswap /dev/sda1
# mkfs.ext4 /dev/sda2
挂载分区
# mount /dev/sda2 /mnt
2.配置网络
使用netctl+配置文件
# ifconfig //先查看链接名称,例如enp0s3
# ifconfig enp0s3 down //down掉当前的链接
# cp /etc/netctl/examples/ethernet-static /etc/netctl //从模板复制配置文件
# vim /etc/netctl/ethernet-static //编辑配置文件内容如下
# netctl list //查看配置文件列表
# netctl start ethernet-static //启用配置
# netctl enable ethernet-static //设置开机自动启动
3.安装基本系统
# vim /etc/pacman.d/mirrorlist
使用163的镜像源,首行插入
Server = http://mirrors.163.com/archlinux/$repo/os/$arch
# pacman -Sy //刷新缓存
# pacstrap -K /mnt base linux linux-firmware //安装base基础包
# genfstab -U -p /mnt >> /mnt/etc/fstab //生成fstab文件
# arch-chroot /mnt //切换到本地硬盘root
设置locale本地化
# vi /etc/locale.gen //反注释:zh_CN.UTF-8 UTF-8
设置时区
# timedatectl set-timezone Asia/Shanghai
开启ntp自动同步时间
# timedatectl set-ntp true
设置主机名hostname
# echo ArchLin > /etc/hostname
设置root密码
# passwd
创建普通用户
# useradd -m -g users -s /bin/bash lpwm //添加普通用户
# passwd lpwm //设置普通用户密码
安装GRUB
# pacman -S grub
# grub-install /dev/sda
# grub-mkconfig -o /boot/grub/grub.cfg
完成安装,重启进入GRUB引导程序~
4.安装自定义功能的程序包
# pacman -S openssh xorg-server openbox lightdm lightdm-gtk-greeter chromium wqy-microhei xfce4-terminal
程序包说明:
- openssh用来开启远程SSH连接管理
- xorg-server openbox lightdm用来开启图形桌面支持
- lightdm-gtk-greeter这个包是进入图形界面的登陆框组件,如果不安装的话就无法使用lightdm
- chromium不用解释了,浏览器
- wqy-microhei文泉驿的中文字体,后面xfce4-terminal里面需要用到这个字体对应的mono等宽字体
- xfce4-terminal是图形桌面里面用到的虚拟终端,不用再Ctrl+Alt+F2切换控制台了
为openbox添加xfce4-terminal菜单
# vi /etc/xdg/openbox/menu.xml
找到 <separator label="Openbox"/>
下面加入如下内容:
<item label="xfce4-terminal"><action name="Execute"><command>xfce4-terminal</command></action>
</item>
设置xfce4-terminal显示字体
默认安装完成后运行xfce4-terminal显示的字体都是挤在一起的
需要改一下字体,Edit-Preference
改完后显示正常:
设置系统启动自动登陆lpwm用户
# groupadd -r autologin //添加自动登录用户组
# gpasswd -a lpwm autologin //将用户lpwm添加到该组
# vi /etc/lightdm/lightdm.conf
在[Seat:*]节点下面找到这一行取消注释并加上用户名
autologin-user=lpwm
//添加自动登录用户组
# gpasswd -a lpwm autologin //将用户lpwm添加到该组
# vi /etc/lightdm/lightdm.conf
在[Seat:*]节点下面找到这一行取消注释并加上用户名
autologin-user=lpwm
设置系统启动自动进入GUI图形界面
# systemctl enable lightdm
5.配置SSH远程管理
# vi /etc/ssh/sshd_config
找到#PermitRootLogin prohibit-password 改为
PermitRootLogin yes
# systemctl enable sshd
# systemctl start sshd
6.设置Chromium开机自动全屏启动
# vi /etc/xdg/openbox/autostart
添加内容:
chromium --no-sandbox --disable-infobars --disable-suggestions-service --disable-save-password-bubble --incognito --kiosk http://www.baidu.com
启动Chromium的参数说明
其实上面写的有点多了,像--disable-translate这个参数在新版本的Chromium中被弃用了,目前总结真正用到的是
--no-sandbox:可以允许root用户运行Chromium
--disable-infobars:屏蔽信息栏(但是还会显示非正常关闭后的恢复提示)
--incognito:进入无痕浏览模式(不保存历史纪录等相关session信息,可以屏蔽非正常关机后的恢复提示,见下图
--kiosk:全屏显示
最后跟要访问的url地址参数就行了
关于屏蔽翻译提示框的说明:
因为在Chromium 66以上版本中屏蔽掉了之前能用的那个--disable-translate参数,所以目前的办法是在Chromium的设置中关闭这个功能:
7.开启声音支持
# pacman -S pulseaudio ponymix
默认装完后是没有启动声音后台服务的,可以直接运行下面命令开启声音支持,或者重启电脑会自动开启
# pulseaudio --start //启动声音服务后默认是静音状态,需要用ponymix来unmute一下,再increase到100
声音控制方法:
# ponymix //这个是CLI控制音量工具,直接执行显示当前声音设备和音量
# ponymix mute //静音
# ponymix unmute //取消静音
# ponymix increase 100 //加大音量100%
# ponymix decrease 50 //减小音量50%