2022年1月1日 星期六

Linux mint crash frequently with AMD CPU/GPU

自從換了Asrock Deskmini A300 + AMD 2400G之後
很常碰到系統hang住的狀況
可能是Hang住,隔了一下子畫面綠屏,再隔一下子系統自動重啟
也可能就單純hang住,系統還活著,可以從其他機器ssh連回這台機器,登入後看dmesg或journalctl,看看是什麼原因
也可能hang住,系統就死了

當發生問題時,觀察dmesg或journalctl,常可以看到amdgpu的異常訊息,例如下面這樣的訊息
(不是固定一種類型,可能會有幾種訊息)
Oct 14 23:23:17 A300 kernel: amdgpu 0000:38:00.0: [mmhub0] retry page fault (src_id:0 ring:0 vmid:4 pasid:32769, for process Xorg pid 897 thread Xorg:cs0 pid 963)
Oct 14 23:23:17 A300 kernel: amdgpu 0000:38:00.0:   in page starting at address 0x00008001016e0000 from client 18
Oct 14 23:23:17 A300 kernel: amdgpu 0000:38:00.0: VM_L2_PROTECTION_FAULT_STATUS:0x00440051
Oct 14 23:23:17 A300 kernel: amdgpu 0000:38:00.0:          MORE_FAULTS: 0x1
Oct 14 23:23:17 A300 kernel: amdgpu 0000:38:00.0:          WALKER_ERROR: 0x0
Oct 14 23:23:17 A300 kernel: amdgpu 0000:38:00.0:          PERMISSION_FAULTS: 0x5
Oct 14 23:23:17 A300 kernel: amdgpu 0000:38:00.0:          MAPPING_ERROR: 0x0
Oct 14 23:23:17 A300 kernel: amdgpu 0000:38:00.0:          RW: 0x1
或是
Oct 12 23:33:19 A300 kernel: amdgpu 0000:38:00.0:          RW: 0x1
Oct 12 23:33:19 A300 kernel: [drm:amdgpu_job_timedout [amdgpu]] *ERROR* ring sdma0 timeout, signaled seq=328615, emitted seq=328617
Oct 12 23:33:19 A300 kernel: [drm:amdgpu_job_timedout [amdgpu]] *ERROR* Process information: process Xorg pid 949 thread Xorg:cs0 pid 960
Oct 12 23:33:19 A300 kernel: amdgpu 0000:38:00.0: GPU reset begin!
Oct 12 23:33:19 A300 kernel: amdgpu 0000:38:00.0: GPU reset succeeded, trying to resume

從網路上找到的資料可以發現,發生問題的Kernel版本,從4.19一直到5.x都有發生
所以應該是跟Kernel無關
比較具體的分析,大多是說Linux調整CPU的C-state時,可能會踩到CPU的Bug或啥的

所以
有的文章建議在BIOS內修改C-State相關設定
但我在A300的BIOS內找不到相關的設定,所以這個方法我沒辦法測試

有的文章建議 Write "high" into /sys/class/drm/card0/device/power_dpm_force_level
去避免GPU進入省電模式啥的,但這個我調整了還是碰到Crash

有的文章建議在kernel cmdline參數加上idle=nomwait amdgpu.noretry=0,避免kernel頻繁重啟gpu,具體原因是啥我不清楚
這個方式最初我有調整過,但後來一段時間後又復發,因此我不太確定這個作法到底有沒有效

最近我找到這兩篇文章
https://community.amd.com/t5/graphics/solved-random-reboots-and-crashes-ryzen-and-amd-gpu-under-linux/td-p/441637
https://bugzilla.kernel.org/show_bug.cgi?id=206903#c135

文章建議在kernel cmdline加上amdgpu.ppfeaturemask=0xffffbffd
讓kernel禁用特定電源管理功能
詳細的bitmask定義在kernel.org那篇文章中有介紹

我的kernel版本,目前是5.4.0-91-generic
修改ppfeaturemask後,到目前大概接近三個星期,當機的機率有明顯改善
所以來寫一下作法跟來源,留個紀錄

修改/etc/default/grub,加上紅字的ppfeaturemask參數
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash amdgpu.ppfeaturemask=0xffffbffd"
編輯之後, sudo update-grub 更新grub conf
update-grub會重建一次所有grub的設置,把預設參數帶進去

接著重新啟動系統,進入系統後,cat /proc/cmdline觀察當下kernel的參數
確認參數已經生效,修改就完成了

最後就是放上一包乖乖,希望他可以順順利利(crossfinger)

2021年5月16日 星期日

How to disable GUI on armbian (revert the Desktop to server)

  1. Check which Display manager that you're using currently
    cat /etc/X11/default-display-manager
    nodm should be default if you're choose auto login when setting by armbian-config
    but you're change it with lightdm or sddm, so check the display manager first.

  2. Disable current display manager
    if you're using nodm
    sudo systemctl disable nodm
    if you're using lightdm
    sudo systemctl disable lightdm
    if you're using sddm
    sudo systemctl disable sddm

  3. Reboot the system
    sudo reboot

  4. It's should be great now~

2021年2月17日 星期三

how do i fix an error with libc6-dev-armhf-cross in linux mint upgrade

先前升級公司用的工作機碰到這個問題
Log就不貼了,我手邊也沒有,可以參考下列連結

https://askubuntu.com/questions/1079797/how-do-i-fix-an-error-with-libc6-dev-armhf-cross-in-ubuntu-18-04-when-trying-to

不確定我是不是曾經裝過cross compiler,總之升級的時候碰到了類似的狀況
網路上能找到的方案不多,主要能參考的就是上述那一篇問答
建議是刪除重新安裝有問題的package

但實際上我重新安裝,調整順序或啥的,始終出現Package相依性錯誤

最後的解決方法是
sudo dpkg -P --force-depends <Package name>
這個方式,忽略相依性,強制移除套件

接著把libc6-dev-armhf-cross,以及相依的所有套件都移除
不建議用在一般套件上,除非不得已加上你很清楚你要移除的套件
但因為cross compiler的相依性主要以cross compiler相關為主
基本上不影響系統運作


移除乾淨後,透過下列指令修復套件的相依性
順利的話可以回到乾淨的狀態,如果有cross compiler套件沒有移除乾淨,則回到前一個步驟繼續刪

  • Clean the package cache:
    sudo apt clean
  • Update the package listing:
    sudo apt update
  • Fix broken dependencies (should automatically install two of the removed packages):
    sudo apt -f install
都完成之後就可以繼續嘗試dist-upgrade或do-release-upgrade或mint-upgrade

Racknerd可不可以升級?搬VPS?搬遷的Step by Step (Racknerd 2024 Black Friday 新方案)

 先附上Racknerd 2024 Black Friday 新方案 RAM CPU core 空間 流量 頻寬 價格 1   G 1核 20G 1.5T/月 1Gbps $10.99/年 2.5G 2核 40G 3.0T/月 1Gbps $18.93/年 3   G 2核 60...