类thinkpad笔记本安装deepinv20后启动黒屏的解决

news/2024/11/17 0:32:06/

手上有台旧的thinkpad X220,更新加装了块固态盘,便想安装deepinV20试一下,结果出了许多的问题。安装时挺顺利,一切正常,deepin 的默认安装也没有给人过多的选择。可是一重启,就好象启动不了了,过了grub阶段就暗夜黑屏卡在那不动了,过了好一阵,才又弹出drm:drm_atomic_helper_wait_for_flip_done等类型错误。就是感觉不会向下走的意思,网上查说是会启动但要等上半小时之类,我是没有功服去等的,就重启,结果还是一样,又查了下,说是接上外接显示器可以启动,试了一下还真是这样!不知什么原因。改了一下grub2的参数试了网上几个都不行!
看了很多的解决方法,然后找到了acpi_osi=! acpi_osi=‘Windows 2009’
主要是修改grub文件,在Deepin操作系统终端中输入sudo vi /etc/default/grub,输入密码后修改文件内容:GRUB_CMDLINE_LINUX_DEFAULT=“acpi_osi=! acpi_osi=‘Windows 2009’ nouveau.modeset=0 video=SVIDEO-1:0”
最后,执行一下命令更新,运行sudo update-grub命令即可。
经过这个修改后,不管是开机还是重启都非常的顺利。但是搞不清为什么这样改。
找到一个观点觉得有点道理:

引导参数acpi_osi的文档告诉:
acpi_osi= [HW,ACPI] Modify list of supported OS interface strings
acpi_osi=“string1” # add string1
acpi_osi="!string2" # remove string2
acpi_osi=!* # remove all strings
acpi_osi=! # disable all built-in OS vendor
strings
acpi_osi=!! # enable all built-in OS vendor
strings
acpi_osi= # disable all strings

                    'acpi_osi=!' can be used in combination with single ormultiple 'acpi_osi="string1"' to support specific OSvendor string(s).  Note that such command can onlyaffect the default state of the OS vendor strings, thusit cannot affect the default state of the feature groupstrings and the current state of the OS vendor strings,specifying it multiple times through kernel command lineis meaningless.  This command is useful when one do notcare about the state of the feature group strings whichshould be controlled by the OSPM.Examples:1. 'acpi_osi=! acpi_osi="Windows 2000"' is equivalentto 'acpi_osi="Windows 2000" acpi_osi=!', they allcan make '_OSI("Windows 2000")' TRUE.'acpi_osi=' cannot be used in combination with other'acpi_osi=' command lines, the _OSI method will notexist in the ACPI namespace.  NOTE that such command canonly affect the OSI support state, thus specifying itmultiple times through kernel command line is alsomeaningless.Examples:1. 'acpiosi=' can make 'CondRefOf(_OSI, Local1)'FALSE.'acpi_osi=!' can be used in combination with single ormultiple 'acpi_osi="string1"' to support specificstring(s).  Note that such command can affect thecurrent state of both the OS vendor strings and thefeature group strings, thus specifying it multiple timesthrough kernel command line is meaningful.  But it maystill not able to affect the final state of a string ifthere are quirks related to this string.  This commandis useful when one want to control the state of thefeature group strings to debug BIOS issues related tothe OSPM features.Examples:1. 'acpi_osi="Module Device" acpi_osi=!' can make'OSI("Module Device")' FALSE.2. 'acpiosi=! acpi_osi="Module Device"' can make'OSI("Module Device")' TRUE.3. 'acpiosi=! acpi_osi=! acpi_osi="Windows 2000"' isequivalent to'acpi_osi=! acpi_osi=! acpi_osi="Windows 2000"'and'acpi_osi=! acpi_osi="Windows 2000" acpi_osi=!',they all will make '_OSI("Windows 2000")' TRUE.— http://redsymbol.net/linux_boot_parameters/

该参数将”Linux”添加到内核在询问BIOS“嘿,你支持什么”时将获得的受支持操作系统列表。通过添加该字符串以后,使用ACPI的东西会说“嘿,我有一个需要ACPI的功能,我正在运行Linux – 支持哪些平台?”他们会找回一个包含Linux的列表。

通过将此设置为Linux,您基本上禁用任何检查以查看BIOS是否表示某些ACPI功能将适用于某些操作系统
告诉内核欺骗ACPI BIOS并告诉它它不是Linux(这就是为什么指定Linux是愚蠢的)。已知某些BIOS会检查它们是在Windows或特定版本的Windows下运行,如果不是,则禁用它们。这个参数让你解决这个愚蠢的问题。

附:卡在log时的参考方法:我们也可用这种方法测试效果!
开机进入引导Deepin界面时,按e键,进入grup编辑页面,在倒数第二行代码的最后【splash quiet】后边空一格添加以下代码:
acpi_osi=Linux nomodeset
备注:如果【splash quiet】后边原本有代码的也删除掉。
然后按F10自动保存重启,然后深度的显卡驱动管理器会自动启动并更新驱动,待更新完成后根据提示重启即可,此时显卡方案也切换了方案。
nouveau.modeset=0 与nomodeset 作用相同

附加:
在grub阶段可以传递内核的启动参数(内核的参数包括3类:编译内核时参数,启动时参数和运行时参数),可以传递的启动参数非常非常多,完整的启动参数列表见:http://redsymbol.net/linux-kernel-boot-parameters。这里只列出几个常用的:

init= :指定Linux启动的第一个进程init的替代程序。
root= :指定根文件系统所在分区,在grub中,该选项必须给定。
ro,rw :启动时,根分区以只读还是可读写方式挂载。不指定时默认为ro。
initrd :指定init ramdisk的路径。在grub中因为使用了initrd或initrd16命令,所以不需要指定该启动参数。
rhgb :以图形界面方式启动系统。
quiet :以文本方式启动系统,且禁止输出大多数的log message。
net.ifnames=0:用于CentOS 7,禁止网络设备使用一致性命名方式。
biosdevname=0:用于CentOS 7,也是禁止网络设备采用一致性命名方式。
:只有net.ifnames和biosdevname同时设置为0时,才能完全禁止一致性命名,得到eth0-N的设备名。
nomodeset Disable Kernel mode setting.
video= Override framebuffer video defaults.

另外,root启动参数有多种定义方式,可以使用UUID的方式指定,也可以直接指定根文件系统所在分区,如"root=/dev/sda2",
1.4.6 initrd和initrd16命令
initrd file
只能紧跟在linux或linux16命令之后使用,用于为即将启动的内核传递init ramdisk路径。
同样,基于根分区,可以使用绝对路径,也可以使用相对路径。路径的表示方法和linux或linux16命令相同。例如:
linux16 /vmlinuz-0-rescue-d13bce5e247540a5b5886f2bf8aabb35 root=UUID=b2a70faf-aea4-4d8e-8be8-c7109ac9c8b8 ro crashkernel=auto quiet
initrd16 /initramfs-0-rescue-d13bce5e247540a5b5886f2bf8aabb35.img
详细可参考:https://www.cnblogs.com/f-ck-need-u/archive/2017/06/29/7094693.html

内核参数:
http://redsymbol.net/linux-kernel-boot-parameters/


http://www.ppmy.cn/news/167317.html

相关文章

edp和lvds区别在哪里 [转载]

转自:http://www.elecfans.com/monijishu/jiekou_shizhong_PLL/599488_a.html EDP是电脑显示屏的一种通信接口,采用EDP显示接口的电脑分辨率会比LVDS接口的显示分辨率高,一般高清屏都是采用这种通信接口,也就是能实现您说的“宽视…

解决Thinkpad x220 无法待机/无法更改bios设置的问题

买了一个Thinkpad x220,一直都装的deepin系统.这个时候就有suspend(fnf12)无法唤醒的问题. 就在前几天,格盘装了一个windows之后,发现如下现象: 1. 开机到logo的时间变长. 2. 进入bios的时间变长. 3. 无法待机(sleep)/休眠(hibernate,suspend) 4. bios无法保存设置,报错”…

X220下安装WIN7和Ubuntu双系统

1、WIN7是X220原装的,略过; 2、X220仅有一个C盘,可以用Acronis Disk Director Suite进行分区修改; (以前磁盘分区通常用PQMagic,现在用的少了,貌似会损坏硬盘分区) 3、用UltraiSO将Ubuntu镜像写入U盘&am…

S905盒子应该使用的dtb包

以下这些都是基于Armbian_20.05.X_Arm-64 测试 数码视讯Q5 S905M版本 meson-gxbb-p201 数码视讯Q5 S905L版本 meson-gxl-s905x-p212 斐讯N1 meson-gxl-s905d-phicomm-n1 最后北京联通的数码视讯Q5 无论S905L还是S905M 要想进TF卡的ARMBIAN都特别简单。。。 只要插入TF卡…

x220上面安装windows7

入手X220也差不多一個多月,出廠預載的程式也都玩過一輪。實際了解那些套件我會需要,而那些我跟 本不需要。 像是人離開會自動上鎖的AutoLock 跟螢幕可轉90度讀改善閱讀體驗的功能一開始覺得很酷,可是真正用 到的次數其實很少。 我OEM OS版本…

x230笔记本使用感受

前几天入手了一台二手的X230,应该是原装的,键盘已经有油光了,笔记本有两点不满意的地方。 1是屏幕中间有一个白斑,侧着看比较明显正面看也能看出来,这个应该是不可逆的。 2是给的电源适配器应该不是笔记本自带的&…

Thinkpad X220 X201断电闪屏解决方案

x201 x220,解决插拔电源 闪屏 黑屏2秒的方法 用ThinkPad的朋友或许会遇到类似的问题,这个问题呢虽然不是啥大事,但是有点影响心情。偶找到了解决的办法,希望对同仁有些帮助。 首先一个要点,你显示器的驱动是否为设置50…

联想HINKPAD X220安装MacOS Mojave

我的联想THINKPAD X220一直很好兼容安装的苹果系统。一直10.10一步步升级到13.6版本系统。苹果系统MAC OS Mojave官方发布以来,发现版本已经删除对HD3000核心显卡的支持。观览过很多网站很快黑苹果老铁们放出破解安装大法很好支持对老爷车的安装!我也是不…