linux 启动问题,安装问题,驱动问题,是很多linux用户特别烦恼的。但事实上,有补救的方法,那就是通过修改内核启动参数,兼容不同硬件环境下,以求进入系统进行下一步操作。
这是一个新型的显示模式,即内核在启动阶段调用更先进的图形显示技术,以达到更好的显示效果。副作用就是兼容性低。
nomodeset 或者modeset=0关闭这项功能,至少保证进入字符界面。i915.modeset=0,其中i915是intel的显示驱动,该命令可以单独关闭该驱动的KMS。很多视频驱动都是以动态模块的方式链接到内核的,内核在启动过程中会加载这些驱动。
modprobe.blacklist=nouveau 就禁止加载该模块,这可以屏蔽有问题的驱动程序。那么究竟有多少个显卡驱动,他们叫什么名字?
nvidia : /lib/modules/4.15.0-30deepin-generic/kernel/drivers/video/nvidia.ko ,nvidia官方驱动,性能棒棒的,不过默认没有安装,要自己装,对一般用户是一个挑战nvidiafb : /lib/modules/4.15.0-30deepin-generic/kernel/drivers/video/fbdev/nvidia/nvidiafb.ko ,一个老式的驱动,估计性能很差,兼容性如何还不清楚,因为我没用过。nvidia_drm : /lib/modules/4.15.0-30deepin-generic/kernel/drivers/video/nvidia-drm.ko ,DRM是“直接渲染管理器”的缩写,是一个替代“fb帧缓冲区”的现代版本,包括“GEM图形执行管理器”和“KMS内核模式设置”技术。其作用就是更好的协作多应用和多GPU。其中多GPU技术类似"Nvidia Optimus",称为"prime"。好吧,说到底就是nvidia驱动组成的一部分。nouveau : 可以理解为nvidia的第三方开源驱动,因为是第三方,所以兼容性差,性能低。因为是开源,和linux的适配度高,喜忧参半的一款驱动,也是nvidia显卡在linux的默认驱动。i915 : intel的官方驱动。radeon : 旧的amd显卡设备的开源驱动amdgpu : 新的amd显卡设备的开源驱动amdgpu-pro : 官方闭源驱动initramfs 是linux的一个纯净的启动映像环境,简而言之就是制作一个内存中的启动硬盘。
linux系统大多数通过grub来引导,即开机出现的引导菜单。出现菜单读秒时,按e进入编辑状态,按F10执行编辑后的菜单。
找到linux开始的一行,该行格式一般如下:
linux /.../vmlinuz... root=UUID=xxx ...
翻译过来就是:
“引导linux 内核文件 启动分区 内核参数”
我们要修改的就是内核参数部分。
参数格式:
modprobe 动态模块名 参数=值获取参数的方法:
/sys/module/模块名/parameters/proc/cmdline 启动参数modinfo -p 模块名常用模块:
ACPI 高级电源配置接口APIC 高级可编程中断控制器DRM 直接渲染管理器FB 帧缓冲IOMMU 设备内存相关KVM 虚拟机LOOP 回环设备i915、nvidia、nouveau等常用参数:
quiet 安静模式debug 详细信息memtest=1 测试一次内存erst_disable 解决ERST故障hest_disable 解决HEST故障nosoftlockup 禁止软死锁检测nowatchdog 禁止硬死锁检测noapic 禁止IO-APIC输入输出高级可编程中断控制器nolapic 禁止cpu-apciacpi=off 禁止acpi高级电源配置接口acpi=strict 严格的acpiacpi_backlight=vendor 使用厂家的屏幕亮度调节器acpi_os_name=\"Linux\" 告知acpi系统名称,欺骗有问题的BIOS。
\"Windows 2001\" xp\"Windows 2006\" vista\"Windows 2009\" win7\"Windows 2012\" win8\"Windows 2013\" win8.1acpi_osi="Linux" 添加字符串acpi_osi=! 删除所有字符串pnpacpi=off 关闭acpi的即插即用功能resume=/dev/swap 休眠启动的分区resume_offset=xxx 休眠文件的偏移量resumedelay=6 等待5秒启动休眠设备resumewait 等待直到休眠设备准备好kvm-amd.nested=0 关闭amd cpu的嵌套虚拟化root=xxx 启动设备或文件rootfstype=xxx 启动设备的文件系统类型rotflags=xxx 挂载选项ro 只读rw 读写init=路径 启动程序rdinit=路径 内存盘中的启动程序nomodule 禁用内核模块加载3 启动命令行和非图形界面splash 启动画面