要解決的問題跟以下這篇差不多:
https://duckfly-tw.blogspot.com/2023/09/macbook-13-2014-ubuntu.html
但還有其它問題:
1.因Macbook 2012 (A1286)有獨顯GT650M,需手動安裝nvidia-470驅動(支援GT650M的最後一版驅動),因上游驅動都變5XX系列了,ubuntu-drivers因顯卡太舊無法安裝驅動,沒安裝nvidia閉源驅動就只能用kernel內建的nouveau開源驅動,效率肯定低。
另外要特別注意的是,nvidia-driver-470只能支援到kernel 6.8.x,再上去dkms driver會無法被新的kernel載入!因此千萬別安裝6.8以上的kernel,即使裝了沒使用也不行(因為會破壞dkms tree造成其它kernel也無法正常運作),如果裝了6.8以上的kernel,務必要移除掉,並重建dkms tree:
sudo dkms autoinstall --all
# 先完全移除 nouveau(黑名單)
sudo rmmod nouveau (若出現無法缷載dkms,略過沒關係)
sudo bash -c "echo blacklist nouveau > /etc/modprobe.d/blacklist-nouveau.conf"
sudo bash -c "echo options nouveau modeset=0 >> /etc/modprobe.d/blacklist-nouveau.conf"
sudo update-initramfs -u
# 加 graphics-drivers PPA(專門放舊版驅動)
sudo add-apt-repository ppa:graphics-drivers/ppa
sudo apt update
sudo apt install nvidia-driver-470
#加裝nvidia-prime nvidia-prime-applet,這樣tool panel才會有nvidia optimus面版可以調整
sudo apt install nvidia-prime nvidia-prime-applet
# 重開機
sudo reboot
# 正確結果會顯示:NVIDIA GeForce GT 650M/PCIe/SSE2 (不再是 NVE7)
glxinfo | grep "OpenGL renderer"
2. 電源管理,安裝下面這個applesmc-next dkms,以便能設定macbook的充電上限:https://github.com/c---/applesmc-next?tab=readme-ov-file
直接複製其bash script以sudo執行後,再複製45-apple的tlp script並重開機:
sudo cp /usr/src/applesmc-next-0.1.6/45-apple /usr/share/tlp/bat.d/
並修改/etc/tlp.conf:
START_CHARGE_THRESH_BAT0=30 #何時開始充電,可能無效
STOP_CHARGE_THRESH_BAT0=80 #何時停止充電
也可以修改以下檔案,設定何時開始充電
sudo echo 80 > /sys/class/power_supply/BAT0/charge_control_end_threshold
再用 tlp-stat -b 檢查設定狀態
或可安裝如Battery Health Charging(使用gnome桌面時)或Slimbook Battery來設定電池的充電上限。
3.原來有多接了一顆hfs+格式的sata硬碟,懶得重新格式化又想在linux上繼續用(預設read only,加force,rw變可讀寫)的話,使用以下選項在fstab掛載:
/dev/disk/by-uuid/<disk-uuid> /mnt/<mount-dir> auto nosuid,nodev,nofail,x-gvfs-show,force,rw 0 0
但如果有不正常關機,導致末正確卸載,檔案系統會標記為「dirty」,下次重新掛載時會強制掛載為唯讀(使用 dmesg | grep -i hfs 檢查),解決方法:
sudo apt install hfsprogs
sudo umount /dev/sdXX (先umount)
sudo fsck.hfsplus -f /dev/sdXX # -f 強制檢查,即使是 journaled,有提示是否修復按y
4.dmesg出開以下錯誤訊息:
DMAR-IR: [Firmware Bug]: ioapic 2 has no mapping iommu, interrupt remapping will be disabled
#修改/etc/default/grub,修改開機選項
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash irqpoll intremap=off"
ref:
https://askubuntu.com/questions/767850/firmware-bug-ioapic-2-has-no-mapping-iomm-after-kernel-update
沒有留言:
張貼留言