header image

GRUB2记住最后的启动项

GRUB玩Linux的应该都不陌生,甚至有时候折腾Windows都会用到。

GRUB2在启动时会有一个超时时间,如果时间内不操作就启动到默认选项。但有时候,我们想让它记住最后一次的启动选项,下一次启动时默认进入上一次的选项。

在Ubuntu下很简单,只需要修改/etc/default/grub文件即可。

用编辑软件打开上述文件之后,可以看到如下内容:

# If you change this file, run 'update-grub' afterwards to update
# /boot/grub/grub.cfg.
# For full documentation of the options in this file, see:
#   info -f grub -n 'Simple configuration'

GRUB_DEFAULT=0
GRUB_TIMEOUT_STYLE=hidden
GRUB_TIMEOUT=10
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
GRUB_CMDLINE_LINUX=""

后面省略。

其中GRUB_DEFAULT=0表示默认为第一项,只要改成GRUB_DEFAULT=saved,然后再在下面新加一行GRUB_SAVEDEFAULT=true即可。

保存后,用如下命令更新grub配置即可:

sudo update-grub

重启即可看到效果。

来源:https://www.maketecheasier.com/set-grub-remember-last-selection/#:~:text=Change%20it%20to%20GRUB_DEFAULT%3Dsaved.%20Then%2C%20press%20the%20Enter,to%20save%20and%20%E2%80%9CCtrl%20%2B%20x%E2%80%9D%20to%20exit.

绕过限制安装Windows Subsystem for Android(WSA)

最近,Windows Subsystem for LinuxWSL)和Windows Subsystem for AndroidWSA)都正式上架微软商店了。相信有不少人都已经尝试了。

Windows 11上安装WSA的常规方法

  1. 系统设置时间和语言语言和区域中,将国家或地区改为美国

  2. 系统设置应用可选功能中,点击页面最下面的相关设置下的更多Windows功能,然后在弹出的窗口中找到并勾选Hyper-V虚拟机平台,点击确定,按提示安装并重启电脑。

  3. 点击本文一开始的WSA链接,用浏览器打开商店网页,然后点击网页中的Get in Store app,会打开并跳转微软商店应用,点击安装即可。

突破限制安装的方法

但是对一些较老电脑来说,WSA却有着安装限制,不能从微软商店直接安装。

WSA安装要求

其实方法还是有的,如这篇文章所述,我们只需要下载商店应用的安装包,然后用命令行安装即可。

  1. 打开https://store.rg-adguard.net/ ,这是一个下载微软商店应用安装包的网站。

  2. 在左边的选择框中选择ProductId,在中间的框中填入9P3395VX91NR(这个ProductId其实就在商店链接里),右边的框选择Retail表示下载正式版。然后点击最右边的对勾按钮,页面下方就会出现相关的安装包。

获取安装包

  1. 其他的都是相关的库,只有最下面一个MicrosoftCorporationII.WindowsSubsystemForAndroid才是我们需要的,下载扩展名为msixbundle的文件,保存(如保存到D:\MicrosoftCorporationII.WindowsSubsystemForAndroid_2209.40000.26.0_neutral_~_8wekyb3d8bbwe.msixbundle)。

  2. 右键单击开始按钮,然后单击终端(管理员)

以管理员权限打开终端

  1. 在终端窗口中输入如下命令,回车运行:
    Add-AppxPackage PATH\TO\msixbundle
    

    其中PATH/TO/msixbundle改为上面保存的位置,如D:\MicrosoftCorporationII.WindowsSubsystemForAndroid_2209.40000.26.0_neutral_~_8wekyb3d8bbwe.msixbundle

  2. 等待安装完成。

如何使用WSA

安装好后,我们可以在开始菜单中找到适用于Android™的Windows子系统设置,点击可以打开设置。在设置中启用开发者选项

然后就可以在微软商店中下载apk安装工具,诸如WSATools这样的。在首次使用时,会提示你选择adb保存位置,然后WSA会弹出调试模式的提示,一路确定即可。我们只需要使用工具安装一个第三方应用市场(如酷安),今后就可以像使用安卓设备一样使用WSA了。

据说WSA的性能表现不输现在流行的安卓模拟器,不知微软有没有可能把WSA搬到Xbox上,这样就能大大扩展Xbox的应用规模了。希望吧!

解决Epic Online Services安装出错失败

相信很多人都在Epic Games商城里白嫖了不少游戏了。但有一点令不少强迫症抓狂。

设置上的小黄点

就是这个设置上的小黄点,点进去是提示安装Epic Online Services(以下简称EOS)的。

提示安装Epic Online Services

然而,你点了现在安装之后,等待你的通常是一个大大的错误提示。虽然并不影响使用,但总觉得浑身难受。

怎么办?上网搜了一下,有一篇B站小伙伴的文章提到了一个方法,但试了之后并不能解决,还是出错。

经过一番探索,终于找到了解决方法。

既然是这个EOS出错,那就上EOS的网站上看看。结果是一个提供在Epic上发布游戏的服务的网站,并没有单独的软件包下载。

Epic开发者网站

点击右上角的DEV PORTAL,登录之后,会出现开发者门户。然后看到了一个下载SDK的按钮,也许在SDK有这个包呢?于是下载了SDK。

进入Dev Portal后,下载SDK

SDK类型我选择了C# SDKC SDK应该也是有的,iOS SDKAndroid SDK就不知道了。

版本默认最新,下载之后得到一个zip压缩包。经过一番搜索,果然在压缩包里的SDK/Tools路径下找到了EpicOnlineServicesInstaller.exe文件,解压安装之后,问题终于解决。

希望对各位能有所帮助。

隐藏Ubuntu Dock上的磁盘挂载图标

在Ubuntu的Dock栏上,未挂载的磁盘的磁盘分区会一致在那里占着位置,不仅难看,还可能会误点。如果我要挂载其他分区,我自己会挂载的,根本不需要你多此一举!

当然,隐藏的方法是有的,只要打开终端(可用Ctrl+Alt+T来打开),输入如下命令即可(不需要root权限):

gsettings set org.gnome.shell.extensions.dash-to-dock show-mounts false

恢复也很简单,把最后的false改成true即可。

Ubuntu 22.04安装AMD显卡驱动

不久之前,AMD发布了给Linux发布了最新的22.20驱动,并且明确写了支持Ubuntu 22.04。

但是,这个包质量十分糟糕,依赖Ubuntu 22.04上并不存在的python包,还依赖旧版的libstdc++-devlibgcc-dev包,导致实际上无法安装。下面就来解决这个问题。

解决方案来自ROCm fails to install from APT repository in 22.04 #1713下面的 @jacodt ,感激不尽。

  1. 在AMD官网下载并安装deb包。这个包只是安装工具,并没有依赖问题。

  2. 安装好之后运行sudo amdgpu-install就会出现依赖无法满足的错误提示。

    dpkg: 依赖关系问题使得 rocm-llvm 的配置工作不能继续:
     rocm-llvm 依赖于 python;然而:
      未安装软件包 python。
     rocm-llvm 依赖于 libstdc++-5-dev | libstdc++-7-dev;然而:
      未安装软件包 libstdc++-5-dev。
      未安装软件包 libstdc++-7-dev。
     rocm-llvm 依赖于 libgcc-5-dev | libgcc-7-dev;然而:
      未安装软件包 libgcc-5-dev。
      未安装软件包 libgcc-7-dev。
     rocm-llvm 依赖于 rocm-core;然而:
     未安装软件包 rocm-core。
    
    dpkg: 处理软件包 rocm-llvm (--install)时出错:
     依赖关系问题 - 仍未被配置
    在处理时有错误发生:
     rocm-llvm
    

    可以见到是rocm-llvm这个包出问题,所以接下来我们就要处理它。

  3. 最好新建一个目录在其中操作。首先,将rocm-llvm下载下来。执行如下命令:

    apt download rocm-llvm
    
  4. 将上一步下载的包解包出来:
    ar x rocm-llvm_14.0.0.22204.50200-65_amd64.deb
    
  5. 将其中的control.tzr.xz解包:
    tar xf control.tar.xz
    
  6. 用你喜欢的编辑器编辑解包出来的control文件。如:
    vim control
    

    找到如下一行:

    Depends: python, libc6, libstdc++6|libstdc++8, libstdc++-5-dev|libstdc++-7-dev, libgcc-5-dev|libgcc-7-dev, rocm-core
    

    改为如下内容:

    Depends: python3, libc6, libstdc++6|libstdc++8, libstdc++-5-dev|libstdc++-7-dev|libstdc++-10-dev, libgcc-5-dev|libgcc-7-dev|libgcc-10-dev, rocm-core
    

    其中python改为python3,并增加了|libstdc++-10-dev|libgcc-10-dev两处内容。修改完之后保存。

  7. 重新打包control.tar.xz

    tar c postinst prerm control | xz -c > control.tar.xz
    
  8. 重新打包为deb文件,文件名可自定,后面各文件顺序不能变:
    ar rcs rocm-llvm.deb debian-binary control.tar.xz data.tar.xz
    
  9. 前面已经修改完了,接下来是安装了。先安装各依赖:
    sudo apt install libstdc++-10-dev libgcc-10-dev rocm-core
    
  10. 安装我们修改好的软件包:
    sudo dpkg -i rocm-llvm.deb
    
  11. 继续官方工具安装:
    sudo amdgpu-install
    

    到这里应该正常安装完了。

警告!!!以下步骤可能会破坏你的系统,如果你不知道怎么修复,请不要操作!

当然,还有可能出现提示缺少firmware,可以克隆linux-firmware的git仓库,然后将缺少的文件放到对应的目录下。

git clone git://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git

至此AMD显卡驱动就搞定了。