关于安装 archlinux 的一些记录
安装设备:笔记本,联想 YOGA3 pro 1370,
主要是写踩的一些坑和一些问题的解决方法,这是安装后写的,安装时候的一些已经想不起来了,后面可能会再补充吧
安装时网络的问题
上来联网就出了问题,无法链接 wifi,然后 ip link
查询出来只有一个 lo
设备
也不能插网线,所以就拿手机 usb 共享手机网络了(在手机上先允许共享),这个应该几乎没有不支持的,wifi 的事安好以后再说。插上手机的线再 ip link
就能看到了
安好以后,从网上查到我这个网卡是 Broadcom 4352,需要安装 broadcom-wl
包,然后再使用 modprobe wl
加载模块,可以看这个贴
移动home
安装后往里放文件的时候,才发现安装的时候忘记挂载,home 和跟用的一个分区的空间。。。
于是使用这篇文章的 bind mount 的方法,先把创建的 new_disk
文件挂在到正确的分区上:https://segmentfault.com/a/1190000014282921
记得在挂在 new_disk
后,要重新生成一遍 /etc/fstab
,我是又拿安装盘启动来生成的,不然即使用 sudo
也提示权限不够,不知道为什么
然后再继续那篇文章的方法
终端字体过宽
安装字体:wqy-bitmapfont wqy-zenhei
来自:https://blog.csdn.net/0210/article/details/104532339
音视频播放器
我使用的 mplayer,但只安装 mplayer 后打开视频也无法播放(解码器已经有了),后来又下了 smplayer,才能正常用的
同时支持音频、视频
安上 smplayer 以后 mplayer 也能用了,可能还是因为之前一些东西没装全吧
但进去以后发现,如果播放分辨率较大的视频,窗口会变得很大(视频分辨率大小),大于了屏幕大小,然后如果缩小或者全屏的话,就只能看到一部分,应该是个比较常见的问题,找了半天,在这找到了答案:https://blog.csdn.net/roofwei/article/details/5273480
声音问题
安装 alsa-utils
后可以使用工具 alsamixer
来调整音量,当然桌面应该也会自带音量控制功能,用 sudo
执行,执行完以后再 sudo alsactl store
来保存设置
首先看一下驱动是不是最新,如果不是按照网上教程先更新(不过一般刚装好的都应该是最新了)
已经是最新了,那就是设置问题了
- 修改默认声卡(需要让真正能用的那张是默认声卡,否则不能发声):编辑 /etc/asound.conf,例如让 card 1 作为默认:defaults.pcm.card 1 defaults.ctl.card 1
- 不出声可以使用这篇文章的方法(前提是扬音器有声,或这耳机有声扬音器没声),然后重启:https://blog.csdn.net/u013504720/article/details/84311084#commentBox
- 有电流声,于是用 wiki 上这个方法,它说调整 Internal 就行,但我这还需要将另外几个声道调小才能有效果(反正就各个声道多试试,按 F5 显示所有,然后前三个是控制音量的,喇叭和耳机等,后面的可以都调调看,每个具体是控制什么的也没完全弄清。。。)
- 如果在耳机把插时出现噪音,用 这个方法调整 Mic 至零,不过我这样调整是能说有了改善,仍没能完全解决
- 如果出现喇叭和耳机同时发声的情况,那么在
alsamixer
中打开Auto-Mute
,参见这个wiki,所以说翻 wiki 真的比直接去网上搜有用 - 我这里播放音频的时候声音还会不时的夹杂着嗡嗡声,就像是有东西震动一样,但用耳机听却没事,所以感觉是音响硬件的事,
只能先这样了 - 一定记得
sudo alsactl store
保存修改
禁用命令行滴滴声
编辑 /etc/inputrc 文件,取消注释 “#set bell-style none”
来自:https://blog.csdn.net/dinglingran/article/details/42395585#:~:text=107-,关掉linux文本模式下的滴滴声,none将前面的#
开机或唤醒时屏幕有概率发生闪烁
显卡是 Intel Corporation HD Graphics 5300,这个问题仍未解决
已经试了无数种方法了,包括调整分辨率,改加速方式,通过 grub 向内核传参数,禁用 3D 加速,开机时只用电池/用电源线,这个 wiki 和网上的一些方法几乎都试了
但依然没用。。。
而且它不是每次都闪,而是有概率的,似乎电量低的时候用电池开机闪的概率会大很多,所以感觉跟电源有关,后来又一通排查感觉电源并没问题。。。
然后又送到电脑售后那修,拆装一遍,啥用没有,然后就又要给我装回 win。。。。没装
经过前面这一通折腾,目前闪的概率似乎低了一点,但仍未完全解决,如果有可能能起到作用的方法欢迎在评论区说一声,感谢!
若干周后更新:经过不断折腾,虽然没有解决,但成功把我弄烦了,于是便不管他直接开始用了,结果,它居然不再闪了!!!!
至今不知道是为什么,就很迷((
现在觉得似乎一开始就没有闪烁的问题,只是我频繁重启或其他原因造成的
虚拟机问题
我用的 virtualbox,报错 ns_error_failure
(大概是这个,具体当时怎么样忘了),进 bios 用了这个方法解决了:https://blog.csdn.net/jql1994/article/details/50409801
使用 qq
可以用 wine,但由于我配置 wine 过程中出了各种问题,懒得搞了,而且我对 win 的软件常用的需求似乎也只有 qq 一个,所以就去这里下载了一个 Appimage 版本的 tim:https://github.com/askme765cs/Wine-QQ-TIM
不过他给的链接现在并不能用,要从这里下:https://sourceforge.net/projects/wine-qq-tim/files/latest/download
另外,如果中文字体被显示为竖线,则需要安装这些字体:wqy-microhei,wqy-zenhei
如果还不行(在我这里是不行的),将 Windows 字体文件夹中的 msyh.ttf
复制进 ~/.TIM.unionfs/drive_c/windows/Fonts/
中
vimrc
配置的比较简单,只有括号匹配和高亮什么的基本功能,放在这只是为了再用到时方便,因为重装和换电脑等原因,我已经重写了三遍 vimrc 了。。。。
set wildmenu
set omnifunc=cppcomplete
"基础
syntax on
set showmode
set showcmd
set encoding=utf-8
set t_Co=256
filetype indent plugin on
"缩进
set autoindent
set tabstop=4
set shiftwidth=4
set noexpandtab
"外观
set number
"set cursorline
"set linebreak
set wrapmargin=2
set laststatus=1
set ruler
set textwidth=1000
"搜索
set showmatch
set hlsearch
set incsearch
set ignorecase
"编辑
set nobackup
set swapfile
set directory=~/.vim/swap
set undofile
set undodir=~/.vim/undodir
set noerrorbells
set novisualbell
set history=500
set autoread
"补全括号
inoremap ' ''<LEFT>
inoremap " ""<LEFT>
inoremap ( ()<LEFT>
inoremap [ []<LEFT>
inoremap {<CR> {<CR>}<ESC>O
inoremap { {}<LEFT>
inoremap <c-l> <Right>
inoremap <c-k> <Up>
inoremap <c-j> <Down>
inoremap <c-h> <Left>
""inoremap <c-o> <Backspace>
noremap <c-s> :w<CR>
noremap <c-y> yyp
inoremap <c-s> <Esc>:w<CR>
noremap <c-c> G$vgg
inoremap <c-d> <Esc>ddi
inoremap <c-y> <Esc>yypi
"自动插入文件头
autocmd BufNewFile *.* exec ":call SetTitle()"
func SetTitle()
if &filetype == 'c'
call setline(1,"#include<stdio.h>")
endif
if &filetype == 'cpp'
call setline(1,"#include<cstdio>")
call append(line("$"),"#include<algorithm>")
call append(line("$"),"#include<cmath>")
call append(line("$"),"#include<cstring>")
endif
if (&filetype == 'cpp')+(&filetype == 'c')
call append(line("$"),"#define INT_INF ((int)0x3f3f3f3f)")
call append(line("$"),"#define LL_INF ((long long)0x3f3f3f3f3f3f3f3f)")
call append(line("$"),"inline int read(){")
call append(line("$")," register int x=0;register int y=1;")
call append(line("$")," register char c=getchar();")
call append(line("$")," while(c<'0'||c>'9'){if(c=='-') y=0;c=getchar();}")
call append(line("$")," while(c>='0'&&c<='9'){x=x*10+(c^48);c=getchar();}")
call append(line("$")," return y?x:-x;")
call append(line("$"),"}")
call append(line("$"),"int main(){")
call append(line("$")," return 0;")
call append(line("$"),"}")
normal G
normal kk
endif
endfunc
"Compile
func CompileWithoutOptimization()
if &filetype == 'cpp'
exec "!echo exec: g++ -Wall -Wextra -fsanitize=address -fsanitize=leak -fsanitize=undefined -Wstrict-overflow -O0 -g -std=c++11 -o %< && g++ % -Wall -Wextra -fsanitize=address -fsanitize=leak -fsanitize=undefined -Wstrict-overflow -O0 -g -std=c++11 -o %<"
" exec "!g++ % -Wall -Wextra -fsanitize=address -fsanitize=leak -fsanitize=undefined -Wstrict-overflow -O0 -g -std=c++11 -o %<"
elseif &filetype == 'c'
exec "!echo gcc % -Wall -Wextra -fsanitize=address -fsanitize=leak -fsanitize=undefined -Wstrict-overflow -O0 -g -o %< && gcc % -Wall -Wextra -fsanitize=address -fsanitize=leak -fsanitize=undefined -Wstrict-overflow -O0 -g -o %<"
" exec "!gcc % -Wall -Wextra -fsanitize=address -fsanitize=leak -fsanitize=undefined -Wstrict-overflow -O0 -g -o %<"
endif
endfunc
func Compile()
if &filetype == 'cpp'
exec "!echo exec: g++ -Wall -Wextra -fsanitize=address -fsanitize=leak -fsanitize=undefined -Wstrict-overflow -O2 -g -std=c++11 -o %< && g++ % -Wall -Wextra -fsanitize=address -fsanitize=leak -fsanitize=undefined -Wstrict-overflow -O2 -g -std=c++11 -o %<"
" exec "!g++ % -Wall -Wextra -fsanitize=address -fsanitize=leak -fsanitize=undefined -Wstrict-overflow -O2 -g -std=c++11 -o %<"
elseif &filetype == 'c'
exec "!echo gcc % -Wall -Wextra -fsanitize=address -fsanitize=leak -fsanitize=undefined -Wstrict-overflow -O2 -g -o %< && gcc % -Wall -Wextra -fsanitize=address -fsanitize=leak -fsanitize=undefined -Wstrict-overflow -O2 -g -o %<"
" exec "!gcc % -Wall -Wextra -fsanitize=address -fsanitize=leak -fsanitize=undefined -Wstrict-overflow -O2 -g -o %<"
endif
endfunc
func ExecProgram()
exec "!time ./%<"
endfunc
func DebugProgram()
exec "!gdb %<"
endfunc
noremap <F12> :call Compile()<CR>
noremap <F11> :call CompileWithoutOptimization()<CR>
noremap <F10> :call ExecProgram()<CR>
noremap <F9> :call DebugProgram()<CR>