win11+ubuntu20.04.5
1. BIOS设置
开机长按F2进入bios设置,修改advanced参数:
- boot -> 关闭fast boot
- security -> 关闭secure boot
- 设置VMD controller为Disabled(其他电脑是修改硬盘的SATA和ACHI模式)。但是改了之后windows可能就进不去了。所以要先进入windows,按Win+R,输入MSCONFIG,回车运行并在 【引导】 页面勾选“安全引导”后确定。重启时长按F2进入BIOS修改VMD controller为Disabled,保存后进入windows系统(此时是安全模式),进桌面后再运行一次MSCONFIG取消掉勾选的“安全引导”,再重启即可。
之后插入做好镜像的u盘,开机长按ESC选择启动盘为U盘。
华硕ROG枪神配置Ubuntu双系统_rog双系统_GRF-Sunomikp31的博客-CSDN博客
Win10和Ubuntu18.04双系统安装,AHCI/RAID导致系统无法进入的问题及解决_TGold_C的博客-CSDN博客_raid改成ahci无法进入系统
2. 屏幕、触控板、麦克风、扬声器驱动
uname -r
uname -a
查看安装的内核版本,我装的系统默认内核是5.15.46 generic。这个版本屏幕无法调节刷新率,触控板不能用,麦克风和扬声器都不能用。但是键盘的Fn键以及背光是正常的。解决办法:
屏幕显卡驱动:
混合模式下笔记本内部屏幕连接在cpu的intel集显上,独显模式下则连接在nvidia的GPU上,占用GPU的显存和算力。无论哪种显卡,ROG枪神7plus笔记本的外部hdmi、dp口(雷电typeC)都是连接的独显。因此要使用外部连接屏幕时,必须将笔记本切换到独显模式,否则只有内屏会亮。目前nvidia的535驱动不支持笔记本内部屏幕用集显,外部屏幕用独显(至少我没试成功,修改xorg.conf也没用)。
我的windows中设置的屏幕驱动是混合模式(还有独显和集显模式)。只有将windows下通过华硕控制中心调成独显模式下时(或者在bios里设置屏幕显示为dGPU独显,原先是dynamic动态),ubuntu里才能正常安装nvidia的驱动(softwareupdate -> additional drivers里面选择nvidia的驱动)并且能够工作(只是可以调244Hz高刷,不能调节屏幕亮度)。安装完显卡驱动后可以再切换回混合模式,有可能会黑屏,下面我会讲怎么解决。
我目前安装的是ubuntu20.04,RTX4070显卡安装 NVIDIA driver metapackage from nvidia-driver-535(proprietarty)
如果安装nvidia驱动导致开机黑屏(一般是由于屏幕仍然连接在集显上):
sudo rm /etc/X11/xorg.conf # 对我的电脑没用,当然你也可以先试试
方法一:
可以Ctrl+Alt+F1~7进入控制台,输入帐号密码后,切换显卡模式为intel集显:
nvidia-smi #确认nvidia驱动安装了
sudo prime-select query #目前的显卡驱动模式
sudo prime-select intel #切换集显
# sudo prime-select nvidia #切换独显
在可以进入图形界面的情况下也可以进入nvidia-settings中切换独显和集显。
nvidia-settings
但这时候独显的驱动也被禁用了,nvidia-smi无法输出显卡信息,也用不了cuda。
方法二(推荐):
更好的解决方法是仍然用nvidia on-demand模式,但是修改 nvidia-drm modeset=0 (命令行模式下,gedit可以替换为vim或者vi)
sudo gedit /lib/modprobe.d/nvidia-kms.conf
# 注释掉 options nvidia-drm modeset=1 或者修改为
options nvidia-drm modeset=0
这种方法只是临时更改了modeset,一旦nvidiaf切换performance mode或者intel mode时又可能恢复原先的值,所以更彻底的方法是:(命令行模式下,gedit可以替换为vim或者vi)
sudo gedit /etc/default/grub
# 修改下面这一行,添加nvidia-drm.modeset=0
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash nvidia-drm.modeset=0"
sudo update-grub
方法三:
解决黑屏的另一种方法是,干脆卸载nvidia驱动:
sudo apt purge nvidia-*
独显模式下屏幕亮度无法调节,可以参考我的另一篇博文安装brightnessUI解决:GPU独显下ubuntu屏幕亮度不能调节解决方法-CSDN博客
pip3 install brightnessUI # from PyPI
brightness-ui-install # install desktop and application menu shortcuts
下文更新内核到v5.18.19版本以上后,只能用默认的 nouveau 开源驱动,此时如要切换回 nvidia-driver-530 会报错无法安装缺少依赖 xserver-xorg-video-nvidia-530 。强行安装这个依赖后再更新nvidia驱动,会使得ubuntu的桌面、wifi和蓝牙驱动、浏览器等软件被删除!!!这估计还是因为安装5.18.19内核版本时sources.list中添加了ubuntu22.10的源,导致安装的驱动是需要适配ubuntu22的,因此很多本机已经安装的软件被认为不满足版本适配关系而被删除或者重装升级。如果把/etc/apt/sources.list 里ubuntu22.10的源去掉再安装nvidia-530驱动,则会报错nvidia-530驱动不支持5.18.19这个内核:
sudo apt install nvidia-driver-530
## 报错
DKMS: install completed.
Building initial module for 5.18.19-051819-generic
ERROR (dkms apport): kernel package linux-headers-5.18.19-051819-generic is not
supported
Error! Bad return status for module build on kernel: 5.18.19-051819-generic (x86
_64)
这是因为目前最新的ubuntu20.04.6LTS内核刚更新到5.15,即使是ubuntu22.04.2LTS内核也才到5.15 / oem版本是5.17,只有ubuntu22.10这种最新的非长周期支持版本的内核才到了5.19。因此nvidia的驱动还没有适配5.18版本的linux内核也很正常,等待nvidia之后的更新吧。
网卡、蓝牙、触控板(需内核5.18.19以上)、麦克风(需内核5.15.60以上):
网卡和蓝牙:在内核5.15.46以上都没问题(ubuntu20.04.5LTS以上);
触控板:升级到ubuntu22.10的5.18.19以上内核才行,ubuntu20则只能等待以后的内核升级到超过5.18才能修复这个驱动(目前最新的ubuntu20.04.6LTS内核刚更新到5.15,即使是ubuntu22.04.2LTS内核也才到5.15 / oem版本是5.17,只有ubuntu22.10这种最新的非长周期支持版本的内核才到了5.19)。
麦克风:ubuntu20.04的5.15.60内核以上才能用(我现在是ubuntu20.04.6LTS的5.15.73内核)
查看目前ubuntu各版本release及其linux kernel内核版本情况:Releases - Ubuntu Wiki
ps:如果只是在ubuntu20的5.15内核版本中进行升级,比如从5.15.46升级到5.15.73,用ubuntu自带的software updater检查更新就行。如果要升级到ubuntu20目前不支持的5.15内核版本以上,则需要自己下载内核手动安装(不建议)。
这些驱动没装,有可能是装系统时没有选择安装WIFI和其他驱动。可以后期安装,我的wifi网卡和蓝牙都没问题(5.15.60版本内核)。比如我想安装5.15.0-60的内核及其驱动,可以直接用apt:
#找出系统已经安装的内核版本
dpkg --get-selections|grep linux
sudo apt install linux-image-5.15.0-60-generic # 内核镜像
sudo apt install linux-modules-5.15.0-60-generic
sudo apt install linux-headers-5.15.0-60-generic
sudo apt install linux-modules-extra-5.15.0-60-generic # 其他驱动
apt中能够列出来的都是该系统能装的。
ps:
# 查看本机内核版本
uname -rs
uname -a
# 重启声卡驱动
sudo alsa force-reload
更大的可能是linux内核版本低,不包括这些驱动,因此可能需要手动更新内核版本(我尝试了v5.15.60以上的才修复了麦克风,v5.18.19以上才修复了触控板)。但是手动安装的v5.17版本以上内核又会出现点击“设置”闪退的问题,也许可以参考Ubuntu20.04安装完毕出现打开设置闪回登录界面问题_linux循环登陆闪回登录界面_VIMQQZS的博客-CSDN博客解决。
注意:目前ubuntu20官方支持的最新内核只到5.15.0-73-generic (ubuntu 20.04.6LTS),更高版本的内核可能只适配于ubuntu22,因此最好不要盲目升级到5.18.19 (ubuntu 22.10)。建议还是等ubuntu20官方更新5.15.0的内核,然后用ubuntu software updater推送的更新来升级内核。即使手动更新了内核到5.18.19,也没法安装nvidia驱动(还没适配这个内核)。
以下是我手动升级更高版本内核的过程:
如果只是在原系统中,更新内核,可以下载后手动dpkg安装。以安装v6.2内核为例(安装v5.18.19就够修复麦克风和触控板了,但是无法安装nvvidia显卡驱动了):
Index of /~kernel-ppa/mainline
Index of /~kernel-ppa/mainline/v6.2
把这四个deb包下载到一个文件夹里面,然后在这个文件夹里面用dpkg安装:
sudo apt-get install unity-control-center # 安装v5.17以上内核会出现点击设置闪退回登陆界面的问题,需要安装这个unity相关的东西
sudo dpkg -i *.deb # 用dpkg安装所有下载下来的包
可能会报一些安装error(一些依赖安装失败):
按照提示安装libssl3和更新libc6(它们其实ubuntu22上才有的默认模块):
# 在/etc/apt/sources.list 中加入:
deb http://security.ubuntu.com/ubuntu kinetic-security main
deb http://cz.archive.ubuntu.com/ubuntu kinetic main
# apt安装
sudo apt update
sudo apt install libssl3 libc6
安装libssl3等完成后一定要在 /etc/apt/sources.list 中删除新加的两行deb(因为那是ubuntu22.10的源)。否则后续apt安装软件包时都会按照ubuntu22的标准来(比如apt upgrade就会更新所有包到ubuntu22需要的版本号,危险!)
参考:https://blog.csdn.net/qq_37529822/article/details/83661155
Ubuntu – Package Download Selection -- libssl3_3.0.5-2ubuntu2.1_amd64.deb
Ubuntu – Package Download Selection -- libc6_2.36-0ubuntu4_amd64.deb
如果安装时遇到apt要fix的问题,可以fix,这会删掉刚才安装失败的linux-image:
sudo apt --fix-broken install
由于我开了nvidia的显卡驱动,这在安装v6.2内核时会遇到dkms的问题:
在softeware&update中关掉nvidia驱动,用默认的nouveau就行。
重启(grub界面里面选advanced,可以看到新安装的内核,选择新的内核进入)。
然而进入新内核的系统后,触控板可以使用,但此时出现了新问题:点击“设置”时会闪退重新登陆。
如果重启,grub界面里面选择新的内核的recovery mode进入,则不会出现闪退。
解决办法参考:Ubuntu20.04安装完毕出现打开设置闪回登录界面问题_linux循环登陆闪回登录界面_VIMQQZS的博客-CSDN博客
# 在更新内核前:
sudo apt-get install unity-control-center # 会安装一些东西
sudo apt-get install gnome-control-center # 已经安装
虽然5.18.19版本以上内核才能用触控板,但是好像ubuntu20.04支持的内核版本只到v5.15.0,在往上升级会遇到很多依赖不满足,版本过低的情况。以上安装过程中的libssl3和libc6就是一个例子。
多余内核可以不删,想删除可以参考我的另一篇博文:解决ubuntu网卡失效-更换内核版本_集智飞行的博客-CSDN博客
期间我也试过原系统里面用
sudo apt-get upgrade linux-image-generic
来更新内核,但是好像内核版本不会变,没有作用。
升级 Ubuntu Linux 内核的几种不同方法 | Linux 中国 - 知乎
扬声器驱动(未解决)
插上耳机孔,耳机声音正常。但是自带的扬声器始终没有声音,即使内核升级到了v6.2也不行。
# 查看声卡驱动
# 我的是card 0: PCH [HDA Intel PCH], device 0: ALC294 Analog [ALC294 Analog]
aplay -l
我这台的声卡是realtek的ALC294,参考[Ubuntu 20.04]Realtek ALC294无声音解决_CatTomCSDN的博客-CSDN博客修改options snd-hda-intel model=asus-zenbook
也没用。windows下这个扬声器显示是麦克风阵列,驱动是realtek HDA。
3. 同步windows和ubuntu时间
在Ubuntu里把时间改为和Windows一样的LocalTime机制:
sudo apt install ntpdate
sudo ntpdate time.windows.com
# sudo ntpdate -u ntp.api.bz
sudo hwclock --localtime --systohc
重启,进入windows就好了