美文网首页
华为magicbook2018安装ubuntu的血泪史

华为magicbook2018安装ubuntu的血泪史

作者: 会转圈儿的冷冷凉 | 来源:发表于2021-09-13 18:32 被阅读0次

    首先介绍下这台电脑的配置情况

    操作系统类型: 64-位
    图形平台: X11
    处理器: 8 × AMD Ryzen 5 2500U with Radeon Vega Mobile Gfx
    内存: 6.7 GiB 内存
    图形处理器: AMD Radeon™ Vega 8 Graphics
    
    死机的姿势 (2021.08.08到2021.09.13)

    1.鼠标突然不能动,屏幕卡住,别想着瞅根烟回来再看是不是恢复了 没戏...
    2.鼠标能动,但是什么都做不了,键盘无反应 什么tty 尝试想不按电源键就恢复系统 都是浮云
    3.鼠标渐动,随后卡住 按电源吧 少年
    4.频率:一天三四次吧 好像最多一次 一天死6次 心疼破电脑

    0.最开始,我使用vmware安装了虚拟机

    这个虚拟机的ubuntu镜像占用了我ssd中的一块区域,让我不是很爽
    本身就内存不大的这台笔记本,开了虚拟机,使平时的工作更加损耗内存
    于是,我准备备份后安装ubuntu,随便网上找一篇,即可开始U盘安装
    ps 由于同事推荐 我安装的ubuntu版本是16.04(他是写ruby的 告诉我公司的ruby环境这个版本安装最合适)

    1.整个安装过程很快,也就15分钟

    当我正寻找IEDA并自己制作快捷图标和研究输入法时,死机了
    magicbook自带的windows系统,3年内就死过一次机,使用ubuntu后,没多久竟然就死了一次,
    网上搜索了一下,都是针对显卡驱动的适配问题,于是,我来到了AMD官网,开始了我的搜索驱动之旅:
    amd官网驱动地址

    image.png

    AMD并没有为集成显卡的magicbook配置Linux版本的显卡,所以你只能拥有Ubuntu自带的通用显卡驱动 amdgpu

    2.作为程序员?我们不想看到内核是如何报错的吗?

    我们进入var/log看系统日志:


    image.png

    相信我 尽管你记住了随机死机的时间,并且想去各种日志里查看他们都发生了什么,但是 你总是会一无所获,因为每次死机的日志都不尽相同

    3.首次对抗崩溃,我把系统从16.04升级到了18.04 仍然死机

    整整一周,我们的18.04都没有出现问题,偶尔有系统崩溃的信息弹出来,有idea的,google的,firfox的,但是,没有死,我以为事情过去了,但是 死机仍然存在
    ps:后来回想起来,那一周我忙得要死,平均一天出4个接口 持续了7个工作日左右

    4.再次对抗崩溃,我把系统从18.04升级到了20.04

    升级完成后,仍然随机死机,于是我开始网上一通搜,零零散散的发现了这些:
    1.这台机器压根就没做linux适配
    2.有人联系过华为工程师,他们没办法
    3.华为的花粉论坛有关magicbook升级ubuntu的帖子已经被和谐了,百度快照是个好东西

    4.重大发现:我找到了组织:https://ld246.com/article/1590416180659#comments

    这位仁兄高中刚刚毕业 已经和死机问题抗争了两年
    从这位兄台的回复中 我们得到了两点信息:

    系统启动参数中增加 nowait
    vim /etc/default/grub
    GRUB_CMDLINE_LINUX_DEFAULT="acpi_osi=\"Windows 2015\" reboot=kbd ivrs_ioapic[32]=00:14.0 amd_iommu=on idle=nomwait amdgpu.vm_fragment_size=9 initrd=/boot/amd-ucode.img"
    

    上面的意思是 让cpu不要尝试去自行控制电源来达到节能的目的
    后来想想 没有死机的那礼拜是不是因为电脑一直火力全开 没有节能的 触发时机...

    idle=nomwait 
    

    虽然起了作用,这不能完全解决死机的问题,但是解决了我1和3的问题
    至于作者提到的关闭c6,我的ubutu没有搞定那个开机自启动的python脚本,一直没有权限往cpu的msr文件中写东西,尽管权限我已经都给了最高。后来发现是ubuntu某个版本后 ,对于设备的写入加了权限,无所谓啦 反正c6是个可选项,我就选了nomwait
    至于OpenGl的版本 对于我也没有什么作用,因为我本身就是2.0.0

    4.这时的我,把注意力集中到了UI上,Gnome 下岗

    因为仅仅鼠标能动,UI卡死,我觉得是Gnome不稳定,于是我更新了
    KDE Plasma 版本: 5.21.4
    KDE 框架版本: 5.80.0
    太像Windows了,竟然都支持刷新、创建文件了...
    用了没多久...还是死...
    绝望的我开始想着做系统回到windows,后来我发现这个kde竟然自带了日志系统,多了一个KSystemlog 能看Journald日志:

    5.我找到规律啦,每次死机Journald都是这个错误!!!
    [ 1667.379288] amdgpu 0000:03:00.0: [gfxhub0] retry page fault (src_id:0 ring:0 vmid:3 pasid:32782, for process chrome pid 2609 thread chrome:cs0 >
    [ 1667.379289] amdgpu 0000:03:00.0: amdgpu:   in page starting at address 0x0000800102a2e000 from client 27
    [ 1667.379291] amdgpu 0000:03:00.0: amdgpu: VM_L2_PROTECTION_FAULT_STATUS:0x00301031
    [ 1667.379292] amdgpu 0000:03:00.0: amdgpu:      Faulty UTCL2 client ID: TCP (0x8)
    [ 1667.379293] amdgpu 0000:03:00.0: amdgpu:      MORE_FAULTS: 0x1
    [ 1667.379295] amdgpu 0000:03:00.0: amdgpu:      WALKER_ERROR: 0x0
    [ 1667.379296] amdgpu 0000:03:00.0: amdgpu:      PERMISSION_FAULTS: 0x3
    [ 1667.379297] amdgpu 0000:03:00.0: amdgpu:      MAPPING_ERROR: 0x0
    [ 1667.379298] amdgpu 0000:03:00.0: amdgpu:      RW: 0x0
    [ 1667.379303] amdgpu 0000:03:00.0: amdgpu: [gfxhub0] retry page fault (src_id:0 ring:0 vmid:3 pasid:32769, for process chrome:cs0 pid 2350 thread chrome:cs0:cs0 pid 2352)
    [ 1667.379305] amdgpu 0000:03:00.0: amdgpu:   in page starting at address 0x0000800102a16000 from client 27
    [ 1667.379306] amdgpu 0000:03:00.0: amdgpu: VM_L2_PROTECTION_FAULT_STATUS:0x00301031
    [ 1667.379308] amdgpu 0000:03:00.0: amdgpu:      Faulty UTCL2 client ID: TCP (0x8)
    [ 1667.379309] amdgpu 0000:03:00.0: amdgpu:      MORE_FAULTS: 0x1
    [ 1667.379310] amdgpu 0000:03:00.0: amdgpu:      WALKER_ERROR: 0x0
    [ 1667.379312] amdgpu 0000:03:00.0: amdgpu:      PERMISSION_FAULTS: 0x3
    [ 1667.379313] amdgpu 0000:03:00.0: amdgpu:      MAPPING_ERROR: 0x0
    [ 1667.379314] amdgpu 0000:03:00.0: amdgpu:      RW: 0x0
    [ 1668.860184] [drm:amdgpu_job_timedout [amdgpu]] *ERROR* ring gfx timeout, but soft recovered
    

    虽然每次都指向 chrome 但是我觉得浏览器是无辜的,我不能一直憋着不用chrome,前面的amdgpu是元凶无疑

    4.老外联想的本使用2700U 也这操行

    顺着amdgpc的错误 我又在不认识的论坛找到了一篇帖:
    https://bbs.archlinux.org/viewtopic.php?pid=1989604

    I installed same firmware on August 15 and since than never had this issue on Ryzen 2700U pro (thinkpad). I'm also using the lts kernel (5.10.60-1)
    

    这句话就可以解决我们的 amdgpu问题
    两个方案:
    1.更新固件firmware
    帖子的固件讨论是一帮老外,他们用的是arch直接更firmware。这对ubuntu的我行不通,上面的帖子里有个连接是关于firmware源码维护的
    https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/log/
    这个对我来说是个盲区,kernel的内核中竟然有一项是对firmware的维护版本,并且我查看了提交记录

    image.png
    好多个2021.08月针对amdgpu的提交,这让我很兴奋,下一步 我们就需要更新固件firmware
    那么问题来了,更新内核版本会让固件中的firmware一起跟着升级吗
    根据我现在了解的,不要以为内核更新内核 firmware(固件)也会更新,我们需要分别更新,编译源码的方法更新我是没有想过的,我曾经尝试下载bin文件,手动替换firmware文件夹,但是失败了,千万记得备份哈,于是,我又找到了个编译好deb的固件包下载地址:
    https://launchpad.net/ubuntu/+archive/primary/+files/linux-firmware_1.197.3_all.deb
    更新后键盘暂时失灵,不要慌,注销下即可(可能你的现象和我并不一样)
    我试过 仅仅更新固件并不能解决amdgpu
    2.更新内核版本到5.10以上
    这个更新到21.04就可以 因为内核自带的是5.11
    其实笔者也尝试自行下载更新内核(我的是5.4.x)
    但是每次都被一个libc6版本依赖不对劝退了
    5.两天满负荷或空负荷运转已经过去了 死机消失了

    有点空虚,不用每天查这个死机的问题
    我玩了会儿一晚上红警95 发现能虐电脑 哈哈
    也暂时为magicbook的 ubuntu版本划上了一个句号,不过这都不是我收获最大的
    其它的还有:

    linux版本很复杂,很多人都喜欢archlinux这个滚动更新的邪教
    如果喜欢ubuntu 硬件支持很重要 品牌dell和thinpad 对他们的支持就很好
    ubuntu版本一直都有个动物的简称
       16.04   Xenial Xerus (好客的非洲地松鼠)
       18.04  Bionic Beaver(仿生海狸)
       20.04  Focal Fossa (叫点我?????????焦点窝)
       21.04 Hirsute Hippo  (多毛河马)
    
    国产系统deepin也很吸引我
    windows的广告没了。开机不用占用40%的内存了
    IDEA很快 比windows上快,启动就很明显,秒起
    bash体验真好 scp上传真好
    非LTS版天天特么的更新

    相关文章

      网友评论

          本文标题:华为magicbook2018安装ubuntu的血泪史

          本文链接:https://www.haomeiwen.com/subject/siufgltx.html