未知狐 发布的文章

准备工作

一个Canokey Pigeon,本地gpg密钥。(推荐主密钥+子密钥,仅将子密钥转移到Canokey里。)
如果你还没有准备好GPG密钥,请参考使用GPG 生成SSH密钥替代密码进行SSH登录认证 & 续期GPG密钥

阅读官方文档/社区案例

CanoKeys 使用文档
Canokey 签名和认证应用指南——Dejavu’s Blog
我在Debian12上使用非root账户 依赖systemd,因此需要创建并修改以下文件:

sudo nano /etc/udev/rules.d/69-canokeys.rules
# GnuPG/pcsclite
SUBSYSTEM!="usb", GOTO="canokeys_rules_end"
ACTION!="add|change", GOTO="canokeys_rules_end"
ATTRS{idVendor}=="20a0", ATTRS{idProduct}=="42d4", ENV{ID_SMARTCARD_READER}="1"
LABEL="canokeys_rules_end"

# FIDO2/U2F
# note that if you find this line in 70-u2f.rules, you can ignore it
KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTRS{idVendor}=="20a0", ATTRS{idProduct}=="42d4", TAG+="uaccess", GROUP="plugdev", MODE="0660"

# make this usb device accessible for users, used in WebUSB
# change the mode so unprivileged users can access it, insecure rule, though
#SUBSYSTEMS=="usb", ATTR{idVendor}=="20a0", ATTR{idProduct}=="42d4", MODE:="0666"
# if the above works for WebUSB (web console), you may change into a more secure way
# choose one of the following rules
# note if you use "plugdev", make sure you have this group and the wanted user is in that group
#SUBSYSTEMS=="usb", ATTR{idVendor}=="20a0", ATTR{idProduct}=="42d4", GROUP="plugdev", MODE="0660"
SUBSYSTEMS=="usb", ATTR{idVendor}=="20a0", ATTR{idProduct}=="42d4", TAG+="uaccess"

修改后
sudo udevadm control --reload-rules && sudo udevadm trigger

安装必要的依赖

sudo apt install libpcsclite1 pcscd scdaemon
否则在执行:gpg --card-status 查看智能卡状态时会出现如下错误
gpg: 从 ‘scdaemon’ 获取版本时出现错误: 没有智能卡守护进程gpg: OpenPGP 卡不可用:没有智能卡守护进程

依赖正常安装后先查看本地密钥列表
xfox@JiaoLoong5-76s:~$ gpg --list-keys

/home/xfox/.gnupg/pubring.kbx

pub rsa4096 2022-10-09 [SC] [有效至:2028-01-31]

  7CF9D5312AC4AF470A6F83E052DD030D36987CE3

uid [ 未知 ] x fox mailto:axfox@foxmail.com
sub rsa4096 2022-10-09 [E] [有效至:2025-10-08]
sub ed25519 2024-02-01 [A] [有效至:2028-01-31]

开始转移

转移后的本地计算机的密钥将消失,如果你希望他仍然存在必须提前导出备份)
gpg --expert --edit-key yourmail@mail.com/指纹
key 1 # 勾选第一个子密钥(勾选后回显内容里可见被勾选密钥前有一个*
keytocard #写入以上勾选的一个密钥
key 1 # 取消勾选
重复以上操作将你需要转移到Canokey的所有子密钥迁移进去。
此时输入save 即可保存你的操作。

特别注意 LOOK at ME!

官方文档要求你修改~/.gnupg/scdaemon.conf 但是,你不应该完全按照docs写的那样操作!

pcsc-driver /usr/lib/libpcsclite.so #Debian用户无需此行!系统缺省路径即为正确路径,如果一定要填写,务必按照你的硬件架构填写正确的库文件路径!
card-timeout 5 #你不写也不是不能用
disable-ccid  #Debian12/13无需此行!仅在GnuPG版本超过2.4的发行版上启用!

省流: Debian用户别去改~/.gnupg/scdaemon.conf

为什么要使用Wine

因为我打算使用网易云音乐,但是他的Linux客户端已经没人维护里,Debain12无法安装也无法启动。隔壁QQ音乐是可安装但是和提供的Appimage一样打开就闪退。
暂时还不能完全离开这些专有服务,只能去用wine了。

开始安装

有个惊喜,不知道是不是维护者看到了我发的帖子,总之Wine官网的下载安装页面更新了,简中Wiki的万年遗留错误也修了。

现在官方文档很清楚,我不再重复。
参见:Debian-Ubuntu安装 WineHQ 安装包

解决证书问题

有的人会卡在第二步:


xfox@JiaoLoong5-76s:~$  sudo wget -O /etc/apt/keyrings/winehq-archive.key https://dl.winehq.org/wine-builds/winehq.key
--2024-09-15 00:21:18--  https://dl.winehq.org/wine-builds/winehq.key
正在解析主机 dl.winehq.org (dl.winehq.org)... 2a04:4e42:8c::729, 146.75.114.217
正在连接 dl.winehq.org (dl.winehq.org)|2a04:4e42:8c::729|:443... 已连接。错误: “dl.winehq.org” 的证书不可信。

如果你去搜索,恐怕很容易找到这样的内容: 使用--no-check-certificate参数 ,特别是*SDN的垃圾帖子。
但是,这是非常危险且不被推荐的!这意味着你和服务器的通信可能不知不觉的受到中间人篡改。

手动信任证书

浏览器打开https://dl.winehq.org/ 在证书详情页面选择导出,接下来

sudo cp _.winehq.pem /usr/local/share/ca-certificates/winehq.crt
sudo update-ca-certificates
Updating certificates in /etc/ssl/certs...
rehash: warning: skipping ca-certificates.crt,it does not contain exactly one certificate or CRL
1 added, 0 removed; done.
Running hooks in /etc/ca-certificates/update.d...
done.

然后继续执行即可。

额外的

证书验证失败也可能是你的本地设备时间偏差过大导致的。
timedatectl #查看当前时间处于什么状态,是否偏差过大 ,Windows+Linux双系统易出此问题
sudo apt update
sudo apt install systemd-timesyncd
sudo systemctl enable systemd-timesyncd
sudo systemctl start systemd-timesyncd
sudo systemctl status systemd-timesyncd
sudo timedatectl set-local-rtc 0 #设置本地时间为UTC时间
timedatectl #检查时间

原委

今天下班回家一开mumble发现有延迟数值正常显示但是连不上服务器:连接服务器失败:远端主机关闭了这个连接。

排查问题

ssh home.xfox.fun 有EN经典报错:网络不可达
我还以为又宕机了,但是经过检查我的J3160活得好好的 ssh -4 -p 22022 home.xfox.fun一连就上了。
这时候再对比JiaoLoong5 nslookup回报的IPv6地址和J3160上执行ip addr返回的地址确定是DDNS出问题了,没有更新最新的ipv6地址。
看过我之前文章的同学应该知道我在使用Podman替代Docker部署NewFuture/DDNS实现ipv6 DDNS,但是在不久前更新过容器镜像后我发现服务不稳定,因为容器会自动停止运行。
自从我使用这个容器,日志里一直存在警告:
WARNING:root:Cache file is out of dated.
我不确定这是否对容器稳定性造成了影响,但是在我设定了restart=always的情况下容器还是停止了那可太玄学了。
所以我这次放弃了容器部署,直接本地从官方源码仓库部署。

开始部署

git clone https://github.com/NewFuture/DDNS

仓库文件会存储在当前目录下的DDNS文件夹里。

cd DDNS 
pyhton run.py

然后你可能得到提示:-bash: python: 未找到命令
这是因为Debain12默认安装了Python3但是默认没有将python命令软链接到pyhon3

为了解决这个问题你可以使用apt安装一个软件包:python-is-python3 (这是很久之前闲来无事apt search 发现的,没想到今天就又用上了。)如果你不想优雅的解决问题那就自己手动创建链接吧=-=。
这一步是必须的,因为NewFuture/DDNS/blob/v3.0.2/systemd.sh里写死了命令行:
ExecStart=/usr/bin/env python /usr/share/DDNS/run.py -c /etc/DDNS/config.json
所以你要么去修改源码加个3,要么....就像我现在教你的一样。
接下来执行:

sudo ./systemd.sh install

即可利用systemd注册一个名为ddns的服务。
但是需要注意一个小坑,git clone 拉下仓库文件后默认没有config.json
所以直接执行install的时候systemd.sh里的cp config.json /etc/DDNS/config.json这行压根就不会生效。
你的/etc/DDNS/里就不会有config.json
为了避免这个问题,你最好下拉仓库后先执行python run.py 让ddns脚本先在DDNS仓库文件里生成一个config.json

修改配置文件

先参考配置参数表再修改官方生成的示例配置文件。

启用服务

sudo systemctl enable ddns
sudo systemctl restart ddns

检查状态

sudo systemctl status ddns

参考内容:Force SSH Client to Use IPv4 or IPv6

假设我要连接的主机为:home.xfox.fun

两种方案

  1. 命令行直接使用特定参数指定使用ipv4/6
  2. 编辑配置文件对特定主机指定使用ipv4/6

    命令行参数

指定使用ipv4连接: ssh -4 home.xfox.fun
指定使用ipv6连接:ssh -6 home.xfox.fun

编写配置文件

对于配置文件闻之亦有两种选择:

  1. 全局用户生效 /etc/ssh/ssh_config
  2. 当前用户生效 ~/.ssh/config

Host home.xfox.fun
AddressFamily inet6 #对于ipv4 写为inet即可

之前用的是fcitx-rime,也就是基于fcitx4的,大致流程是一致的,但是需要注意配置文件路径有所改变。

安装并配置环境变量

sudo apt install fcitx5-rime
im-config
点击“是” 选择启动小企鹅输入法(即使在Wayland下你也应该这么做,否则开机后可能需要手动启动fcitx5.)
nano .bash_profile

export XMODIFIERS=@im=fcitx
export GTK_IM_MODULE=fcitx
export QT_IM_MODULE=fcitx

保存

配置rime

cd ~/.local/share/fcitx5/rime/
touch default.custom.yaml
nano default.custom.yaml

# default.custom.yaml
# 用户  输入法配置
patch:  
  schema_list:  # 输入方案列表
    - schema: luna_pinyin_simp  # 不使用其它输入方案, 只保留明月拼音-简化字输入方案
  menu:
    page_size: 5  # 候选词为5个

重启即可

你应当优先阅读NvidiaGraphicsDrivers

启用非自由软件源

安装驱动程序

sudo apt install nvidia-driver
sudo systemctl reboot


展开查看日志

xfox@loong5-76s:~$ sudo apt install nvidia-driver
将要安装:                                     
  nvidia-driver

将要安装的依赖:  firmware-nvidia-gsp      libgles1                libnvidia-glcore           nvidia-egl-common         nvidia-settings
  glx-alternative-mesa     libglx-nvidia0          libnvidia-glvkspirv        nvidia-egl-icd            nvidia-smi
  glx-alternative-nvidia   libnvcuvid1             libnvidia-ml1              nvidia-installer-cleanup  nvidia-support
  glx-diversions           libnvidia-allocator1    libnvidia-pkcs11-openssl3  nvidia-kernel-common      nvidia-suspend-common
  libcuda1                 libnvidia-cfg1          libnvidia-ptxjitcompiler1  nvidia-kernel-dkms        nvidia-vdpau-driver
  libegl-nvidia0           libnvidia-egl-gbm1      libnvidia-rtcore           nvidia-kernel-support     nvidia-vulkan-common
  libgl1-nvidia-glvnd-glx  libnvidia-egl-wayland1  nvidia-alternative         nvidia-legacy-check       nvidia-vulkan-icd
  libgles-nvidia1          libnvidia-eglcore       nvidia-driver-bin          nvidia-modprobe           update-glx
  libgles-nvidia2          libnvidia-encode1       nvidia-driver-libs         nvidia-persistenced       xserver-xorg-video-nvidia

建议安装:  nvidia-cuda-mps

推荐安装:  libcuda1:i386  nvidia-driver-libs:i386

摘要:  升级:0,安装:46,卸载:0,不升级:0
  下载大小:154 MB
  所需的空间:486 MB / 243 GB 可用
是否继续? [Y/n] y
获取:1 https://mirrors.tuna.tsinghua.edu.cn/debian testing/contrib amd64 update-glx amd64 1.2.2 [5,432 B]
获取:2 https://mirrors.tuna.tsinghua.edu.cn/debian testing/contrib amd64 glx-alternative-mesa amd64 1.2.2 [4,760 B]
获取:3 https://mirrors.tuna.tsinghua.edu.cn/debian testing/contrib amd64 nvidia-installer-cleanup amd64 20240109+1 [13.9 kB]
获取:4 https://mirrors.tuna.tsinghua.edu.cn/debian testing/contrib amd64 glx-diversions amd64 1.2.2 [7,408 B]
获取:5 https://mirrors.tuna.tsinghua.edu.cn/debian testing/contrib amd64 glx-alternative-nvidia amd64 1.2.2 [5,776 B]
获取:6 https://mirrors.tuna.tsinghua.edu.cn/debian testing/non-free amd64 nvidia-legacy-check amd64 535.183.06-1 [157 kB]
获取:7 https://mirrors.tuna.tsinghua.edu.cn/debian testing/contrib amd64 nvidia-support amd64 20240109+1 [14.8 kB]
获取:8 https://mirrors.tuna.tsinghua.edu.cn/debian testing/non-free amd64 nvidia-alternative amd64 535.183.06-1 [153 kB]
获取:9 https://mirrors.tuna.tsinghua.edu.cn/debian testing/non-free amd64 libnvidia-ptxjitcompiler1 amd64 535.183.06-1 [6,973 kB]
获取:10 https://mirrors.tuna.tsinghua.edu.cn/debian testing/non-free amd64 libnvidia-pkcs11-openssl3 amd64 535.183.06-1 [155 kB]
获取:11 https://mirrors.tuna.tsinghua.edu.cn/debian testing/non-free amd64 libcuda1 amd64 535.183.06-1 [2,999 kB]
获取:12 https://mirrors.tuna.tsinghua.edu.cn/debian testing/non-free amd64 libnvidia-glvkspirv amd64 535.183.06-1 [10.7 MB]
获取:13 https://mirrors.tuna.tsinghua.edu.cn/debian testing/non-free amd64 libnvidia-eglcore amd64 535.183.06-1 [10.6 MB]
获取:14 https://mirrors.tuna.tsinghua.edu.cn/debian testing/non-free amd64 libnvidia-glcore amd64 535.183.06-1 [10.8 MB]
获取:15 https://mirrors.tuna.tsinghua.edu.cn/debian testing/non-free amd64 libglx-nvidia0 amd64 535.183.06-1 [387 kB]
获取:16 https://mirrors.tuna.tsinghua.edu.cn/debian testing/non-free amd64 libgl1-nvidia-glvnd-glx amd64 535.183.06-1 [332 kB]
获取:17 https://mirrors.tuna.tsinghua.edu.cn/debian testing/non-free amd64 nvidia-egl-common amd64 535.183.06-1 [151 kB]
获取:18 https://mirrors.tuna.tsinghua.edu.cn/debian testing/main amd64 libnvidia-egl-wayland1 amd64 1:1.1.15-1 [31.5 kB]
获取:19 https://mirrors.tuna.tsinghua.edu.cn/debian testing/non-free amd64 libegl-nvidia0 amd64 535.183.06-1 [422 kB]
获取:20 https://mirrors.tuna.tsinghua.edu.cn/debian testing/non-free amd64 nvidia-egl-icd amd64 535.183.06-1 [151 kB]
获取:21 https://mirrors.tuna.tsinghua.edu.cn/debian testing/non-free amd64 nvidia-driver-libs amd64 535.183.06-1 [151 kB]
获取:22 https://mirrors.tuna.tsinghua.edu.cn/debian testing/non-free amd64 libnvidia-ml1 amd64 535.183.06-1 [684 kB]
获取:23 https://mirrors.tuna.tsinghua.edu.cn/debian testing/non-free amd64 nvidia-driver-bin amd64 535.183.06-1 [218 kB]
获取:24 https://mirrors.tuna.tsinghua.edu.cn/debian testing/non-free amd64 xserver-xorg-video-nvidia amd64 535.183.06-1 [2,289 kB]
获取:25 https://mirrors.tuna.tsinghua.edu.cn/debian testing/non-free amd64 nvidia-vdpau-driver amd64 535.183.06-1 [641 kB]
获取:26 https://mirrors.tuna.tsinghua.edu.cn/debian testing/non-free-firmware amd64 firmware-nvidia-gsp amd64 535.183.06-1 [38.5 MB]
获取:27 https://mirrors.tuna.tsinghua.edu.cn/debian testing/contrib amd64 nvidia-kernel-common amd64 20240109+1 [4,572 B]
获取:28 https://mirrors.tuna.tsinghua.edu.cn/debian testing/contrib amd64 nvidia-modprobe amd64 550.78-1 [21.7 kB]
获取:29 https://mirrors.tuna.tsinghua.edu.cn/debian testing/non-free amd64 nvidia-kernel-support amd64 535.183.06-1 [152 kB]
获取:30 https://mirrors.tuna.tsinghua.edu.cn/debian testing/non-free amd64 nvidia-kernel-dkms amd64 535.183.06-1 [44.9 MB]
获取:31 https://mirrors.tuna.tsinghua.edu.cn/debian testing/non-free amd64 nvidia-driver amd64 535.183.06-1 [516 kB]
获取:32 https://mirrors.tuna.tsinghua.edu.cn/debian testing/non-free amd64 libnvidia-cfg1 amd64 535.183.06-1 [241 kB]
获取:33 https://mirrors.tuna.tsinghua.edu.cn/debian testing/contrib amd64 nvidia-persistenced amd64 535.171.04-1 [27.1 kB]
获取:34 https://mirrors.tuna.tsinghua.edu.cn/debian testing/contrib amd64 nvidia-settings amd64 535.171.04-1 [767 kB]
获取:35 https://mirrors.tuna.tsinghua.edu.cn/debian testing/main amd64 libgles1 amd64 1.7.0-1+b1 [12.2 kB]
获取:36 https://mirrors.tuna.tsinghua.edu.cn/debian testing/non-free amd64 libgles-nvidia1 amd64 535.183.06-1 [171 kB]
获取:37 https://mirrors.tuna.tsinghua.edu.cn/debian testing/non-free amd64 libgles-nvidia2 amd64 535.183.06-1 [180 kB]
获取:38 https://mirrors.tuna.tsinghua.edu.cn/debian testing/non-free amd64 libnvcuvid1 amd64 535.183.06-1 [1,502 kB]
获取:39 https://mirrors.tuna.tsinghua.edu.cn/debian testing/non-free amd64 libnvidia-allocator1 amd64 535.183.06-1 [207 kB]
获取:40 https://mirrors.tuna.tsinghua.edu.cn/debian testing/contrib amd64 libnvidia-egl-gbm1 amd64 1.1.2-1 [11.8 kB]
获取:41 https://mirrors.tuna.tsinghua.edu.cn/debian testing/non-free amd64 libnvidia-encode1 amd64 535.183.06-1 [231 kB]
获取:42 https://mirrors.tuna.tsinghua.edu.cn/debian testing/non-free amd64 libnvidia-rtcore amd64 535.183.06-1 [17.5 MB]
获取:43 https://mirrors.tuna.tsinghua.edu.cn/debian testing/non-free amd64 nvidia-smi amd64 535.183.06-1 [386 kB]
获取:44 https://mirrors.tuna.tsinghua.edu.cn/debian testing/non-free amd64 nvidia-suspend-common amd64 535.183.06-1 [153 kB]
获取:45 https://mirrors.tuna.tsinghua.edu.cn/debian testing/non-free amd64 nvidia-vulkan-common amd64 535.183.06-1 [151 kB]
获取:46 https://mirrors.tuna.tsinghua.edu.cn/debian testing/non-free amd64 nvidia-vulkan-icd amd64 535.183.06-1 [151 kB]
已下载 154 MB,耗时 3秒 (52.9 MB/s)           
正在从软件包中解出模板:100%
正在预设定软件包 ...
正在选中未选择的软件包 update-glx。(正在读取数据库 ... 系统当前共安装有 340595 个文件和目录。)
准备解压 .../update-glx_1.2.2_amd64.deb  ...
正在解压 update-glx (1.2.2) ...
正在选中未选择的软件包 glx-alternative-mesa。准备解压 .../glx-alternative-mesa_1.2.2_amd64.deb  ...
正在解压 glx-alternative-mesa (1.2.2) ...
正在选中未选择的软件包 nvidia-installer-cleanup。准备解压 .../nvidia-installer-cleanup_20240109+1_amd64.deb  ...
正在解压 nvidia-installer-cleanup (20240109+1) ...
正在设置 nvidia-installer-cleanup (20240109+1) ...
正在选中未选择的软件包 glx-diversions。(正在读取数据库 ... 系统当前共安装有 340735 个文件和目录。)
准备解压 .../glx-diversions_1.2.2_amd64.deb  ...
正在解压 glx-diversions (1.2.2) ...
正在选中未选择的软件包 glx-alternative-nvidia。准备解压 .../glx-alternative-nvidia_1.2.2_amd64.deb  ...
正在解压 glx-alternative-nvidia (1.2.2) ...
正在选中未选择的软件包 nvidia-legacy-check。准备解压 .../nvidia-legacy-check_535.183.06-1_amd64.deb  ...
正在解压 nvidia-legacy-check (535.183.06-1) ...
正在选中未选择的软件包 nvidia-support。准备解压 .../nvidia-support_20240109+1_amd64.deb  ...
正在解压 nvidia-support (20240109+1) ...
正在设置 nvidia-legacy-check (535.183.06-1) ...
正在选中未选择的软件包 nvidia-alternative。(正在读取数据库 ... 系统当前共安装有 340773 个文件和目录。)
准备解压 .../00-nvidia-alternative_535.183.06-1_amd64.deb  ...
正在解压 nvidia-alternative (535.183.06-1) ...
正在选中未选择的软件包 libnvidia-ptxjitcompiler1:amd64。准备解压 .../01-libnvidia-ptxjitcompiler1_535.183.06-1_amd64.deb  ...
正在解压 libnvidia-ptxjitcompiler1:amd64 (535.183.06-1) ...
正在选中未选择的软件包 libnvidia-pkcs11-openssl3:amd64。准备解压 .../02-libnvidia-pkcs11-openssl3_535.183.06-1_amd64.deb  ...
正在解压 libnvidia-pkcs11-openssl3:amd64 (535.183.06-1) ...
正在选中未选择的软件包 libcuda1:amd64。准备解压 .../03-libcuda1_535.183.06-1_amd64.deb  ...
正在解压 libcuda1:amd64 (535.183.06-1) ...
正在选中未选择的软件包 libnvidia-glvkspirv:amd64。准备解压 .../04-libnvidia-glvkspirv_535.183.06-1_amd64.deb  ...
正在解压 libnvidia-glvkspirv:amd64 (535.183.06-1) ...
正在选中未选择的软件包 libnvidia-eglcore:amd64。准备解压 .../05-libnvidia-eglcore_535.183.06-1_amd64.deb  ...
正在解压 libnvidia-eglcore:amd64 (535.183.06-1) ...
正在选中未选择的软件包 libnvidia-glcore:amd64。准备解压 .../06-libnvidia-glcore_535.183.06-1_amd64.deb  ...
正在解压 libnvidia-glcore:amd64 (535.183.06-1) ...
正在选中未选择的软件包 libglx-nvidia0:amd64。准备解压 .../07-libglx-nvidia0_535.183.06-1_amd64.deb  ...
正在解压 libglx-nvidia0:amd64 (535.183.06-1) ...
正在选中未选择的软件包 libgl1-nvidia-glvnd-glx:amd64。准备解压 .../08-libgl1-nvidia-glvnd-glx_535.183.06-1_amd64.deb  ...
正在解压 libgl1-nvidia-glvnd-glx:amd64 (535.183.06-1) ...
正在选中未选择的软件包 nvidia-egl-common。准备解压 .../09-nvidia-egl-common_535.183.06-1_amd64.deb  ...
正在解压 nvidia-egl-common (535.183.06-1) ...
正在选中未选择的软件包 libnvidia-egl-wayland1:amd64。准备解压 .../10-libnvidia-egl-wayland1_1%3a1.1.15-1_amd64.deb  ...
正在解压 libnvidia-egl-wayland1:amd64 (1:1.1.15-1) ...
正在选中未选择的软件包 libegl-nvidia0:amd64。准备解压 .../11-libegl-nvidia0_535.183.06-1_amd64.deb  ...
正在解压 libegl-nvidia0:amd64 (535.183.06-1) ...
正在选中未选择的软件包 nvidia-egl-icd:amd64。准备解压 .../12-nvidia-egl-icd_535.183.06-1_amd64.deb  ...
正在解压 nvidia-egl-icd:amd64 (535.183.06-1) ...
正在选中未选择的软件包 nvidia-driver-libs:amd64。准备解压 .../13-nvidia-driver-libs_535.183.06-1_amd64.deb  ...
正在解压 nvidia-driver-libs:amd64 (535.183.06-1) ...
正在选中未选择的软件包 libnvidia-ml1:amd64。准备解压 .../14-libnvidia-ml1_535.183.06-1_amd64.deb  ...
正在解压 libnvidia-ml1:amd64 (535.183.06-1) ...
正在选中未选择的软件包 nvidia-driver-bin。准备解压 .../15-nvidia-driver-bin_535.183.06-1_amd64.deb  ...
正在解压 nvidia-driver-bin (535.183.06-1) ...
正在选中未选择的软件包 xserver-xorg-video-nvidia。准备解压 .../16-xserver-xorg-video-nvidia_535.183.06-1_amd64.deb  ...
正在解压 xserver-xorg-video-nvidia (535.183.06-1) ...
正在选中未选择的软件包 nvidia-vdpau-driver:amd64。准备解压 .../17-nvidia-vdpau-driver_535.183.06-1_amd64.deb  ...
正在解压 nvidia-vdpau-driver:amd64 (535.183.06-1) ...
正在选中未选择的软件包 firmware-nvidia-gsp。准备解压 .../18-firmware-nvidia-gsp_535.183.06-1_amd64.deb  ...
正在解压 firmware-nvidia-gsp (535.183.06-1) ...
正在选中未选择的软件包 nvidia-kernel-common。准备解压 .../19-nvidia-kernel-common_20240109+1_amd64.deb  ...
正在解压 nvidia-kernel-common (20240109+1) ...
正在选中未选择的软件包 nvidia-modprobe。准备解压 .../20-nvidia-modprobe_550.78-1_amd64.deb  ...
正在解压 nvidia-modprobe (550.78-1) ...
正在选中未选择的软件包 nvidia-kernel-support。准备解压 .../21-nvidia-kernel-support_535.183.06-1_amd64.deb  ...
正在解压 nvidia-kernel-support (535.183.06-1) ...
正在选中未选择的软件包 nvidia-kernel-dkms。准备解压 .../22-nvidia-kernel-dkms_535.183.06-1_amd64.deb  ...
正在解压 nvidia-kernel-dkms (535.183.06-1) ...
正在选中未选择的软件包 nvidia-driver。准备解压 .../23-nvidia-driver_535.183.06-1_amd64.deb  ...
正在解压 nvidia-driver (535.183.06-1) ...
正在选中未选择的软件包 libnvidia-cfg1:amd64。准备解压 .../24-libnvidia-cfg1_535.183.06-1_amd64.deb  ...
正在解压 libnvidia-cfg1:amd64 (535.183.06-1) ...
正在选中未选择的软件包 nvidia-persistenced。准备解压 .../25-nvidia-persistenced_535.171.04-1_amd64.deb  ...
正在解压 nvidia-persistenced (535.171.04-1) ...
正在选中未选择的软件包 nvidia-settings。准备解压 .../26-nvidia-settings_535.171.04-1_amd64.deb  ...
正在解压 nvidia-settings (535.171.04-1) ...
正在选中未选择的软件包 libgles1:amd64。准备解压 .../27-libgles1_1.7.0-1+b1_amd64.deb  ...
正在解压 libgles1:amd64 (1.7.0-1+b1) ...
正在选中未选择的软件包 libgles-nvidia1:amd64。准备解压 .../28-libgles-nvidia1_535.183.06-1_amd64.deb  ...
正在解压 libgles-nvidia1:amd64 (535.183.06-1) ...
正在选中未选择的软件包 libgles-nvidia2:amd64。准备解压 .../29-libgles-nvidia2_535.183.06-1_amd64.deb  ...
正在解压 libgles-nvidia2:amd64 (535.183.06-1) ...
正在选中未选择的软件包 libnvcuvid1:amd64。准备解压 .../30-libnvcuvid1_535.183.06-1_amd64.deb  ...
正在解压 libnvcuvid1:amd64 (535.183.06-1) ...
正在选中未选择的软件包 libnvidia-allocator1:amd64。准备解压 .../31-libnvidia-allocator1_535.183.06-1_amd64.deb  ...
正在解压 libnvidia-allocator1:amd64 (535.183.06-1) ...
正在选中未选择的软件包 libnvidia-egl-gbm1:amd64。准备解压 .../32-libnvidia-egl-gbm1_1.1.2-1_amd64.deb  ...
正在解压 libnvidia-egl-gbm1:amd64 (1.1.2-1) ...
正在选中未选择的软件包 libnvidia-encode1:amd64。准备解压 .../33-libnvidia-encode1_535.183.06-1_amd64.deb  ...
正在解压 libnvidia-encode1:amd64 (535.183.06-1) ...
正在选中未选择的软件包 libnvidia-rtcore:amd64。准备解压 .../34-libnvidia-rtcore_535.183.06-1_amd64.deb  ...
正在解压 libnvidia-rtcore:amd64 (535.183.06-1) ...
正在选中未选择的软件包 nvidia-smi。准备解压 .../35-nvidia-smi_535.183.06-1_amd64.deb  ...
正在解压 nvidia-smi (535.183.06-1) ...
正在选中未选择的软件包 nvidia-suspend-common。准备解压 .../36-nvidia-suspend-common_535.183.06-1_amd64.deb  ...
正在解压 nvidia-suspend-common (535.183.06-1) ...
正在选中未选择的软件包 nvidia-vulkan-common。准备解压 .../37-nvidia-vulkan-common_535.183.06-1_amd64.deb  ...
正在解压 nvidia-vulkan-common (535.183.06-1) ...
正在选中未选择的软件包 nvidia-vulkan-icd:amd64。准备解压 .../38-nvidia-vulkan-icd_535.183.06-1_amd64.deb  ...
正在解压 nvidia-vulkan-icd:amd64 (535.183.06-1) ...
正在设置 nvidia-support (20240109+1) ...
正在设置 libnvidia-glvkspirv:amd64 (535.183.06-1) ...
正在设置 libnvidia-eglcore:amd64 (535.183.06-1) ...
正在设置 nvidia-egl-common (535.183.06-1) ...
正在设置 nvidia-kernel-common (20240109+1) ...
正在设置 libnvidia-allocator1:amd64 (535.183.06-1) ...
正在设置 update-glx (1.2.2) ...
正在设置 nvidia-modprobe (550.78-1) ...
正在设置 libnvidia-egl-wayland1:amd64 (1:1.1.15-1) ...
正在设置 libgles1:amd64 (1.7.0-1+b1) ...
正在设置 libnvidia-glcore:amd64 (535.183.06-1) ...
正在设置 libnvidia-ptxjitcompiler1:amd64 (535.183.06-1) ...
正在设置 nvidia-vulkan-common (535.183.06-1) ...
正在设置 firmware-nvidia-gsp (535.183.06-1) ...
正在设置 libnvidia-egl-gbm1:amd64 (1.1.2-1) ...
正在设置 libnvidia-rtcore:amd64 (535.183.06-1) ...
正在设置 nvidia-suspend-common (535.183.06-1) ...
Created symlink '/etc/systemd/system/systemd-hibernate.service.wants/nvidia-hibernate.service' → '/usr/lib/systemd/system/nvidia-hibernate.service'.
Created symlink '/etc/systemd/system/systemd-suspend.service.wants/nvidia-resume.service' → '/usr/lib/systemd/system/nvidia-resume.service'.
Created symlink '/etc/systemd/system/systemd-hibernate.service.wants/nvidia-resume.service' → '/usr/lib/systemd/system/nvidia-resume.service'.
Created symlink '/etc/systemd/system/systemd-suspend.service.wants/nvidia-suspend.service' → '/usr/lib/systemd/system/nvidia-suspend.service'.
正在设置 glx-alternative-mesa (1.2.2) ...
正在设置 glx-diversions (1.2.2) ...
update-alternatives: 使用 /usr/lib/mesa-diverted 来在自动模式中提供 /usr/lib/glx (glx)
正在处理用于 mailcap (3.72) 的触发器 ...
正在处理用于 initramfs-tools (0.145) 的触发器 ...
update-initramfs: Generating /boot/initrd.img-6.10.6-amd64
正在处理用于 hicolor-icon-theme (0.18-1) 的触发器 ...
正在处理用于 libc-bin (2.40-2) 的触发器 ...
正在处理用于 man-db (2.13.0-1) 的触发器 ...
正在处理用于 glx-alternative-mesa (1.2.2) 的触发器 ...
update-alternatives: 链接组 glx 已更改次要链接,故更新候选项 /usr/lib/mesa-diverted
正在设置 glx-alternative-nvidia (1.2.2) ...
正在处理用于 glx-alternative-nvidia (1.2.2) 的触发器 ...
正在设置 nvidia-alternative (535.183.06-1) ...
正在处理用于 nvidia-alternative (535.183.06-1) 的触发器 ...
update-alternatives: 使用 /usr/lib/nvidia/current 来在自动模式中提供 /usr/lib/nvidia/nvidia (nvidia)
正在设置 libnvidia-ml1:amd64 (535.183.06-1) ...
正在设置 libnvidia-cfg1:amd64 (535.183.06-1) ...
正在设置 libglx-nvidia0:amd64 (535.183.06-1) ...
正在设置 nvidia-kernel-support (535.183.06-1) ...
正在设置 xserver-xorg-video-nvidia (535.183.06-1) ...
正在设置 nvidia-vulkan-icd:amd64 (535.183.06-1) ...
正在设置 libnvidia-pkcs11-openssl3:amd64 (535.183.06-1) ...
正在设置 nvidia-vdpau-driver:amd64 (535.183.06-1) ...
正在设置 libgl1-nvidia-glvnd-glx:amd64 (535.183.06-1) ...
正在设置 libgles-nvidia1:amd64 (535.183.06-1) ...
正在设置 libegl-nvidia0:amd64 (535.183.06-1) ...
正在设置 nvidia-settings (535.171.04-1) ...
正在设置 nvidia-smi (535.183.06-1) ...
正在设置 libgles-nvidia2:amd64 (535.183.06-1) ...
正在设置 nvidia-driver-bin (535.183.06-1) ...
正在设置 nvidia-persistenced (535.171.04-1) ...
info: 您指定的主目录 /var/run/nvpd/ 无法访问:No such file or directory

info: 从 100 到 999 中选择 UID...

info: 从 100 到 999 中选择 GID...
info: 正在添加系统用户"nvpd" (UID 116)...
info: 正在添加新组"nvpd" (GID 127)...
info: 正在将新用户"nvpd" (UID 116)添加到组"nvpd"...
info: 无法创建主目录"/var/run/nvpd/"。Created symlink '/etc/systemd/system/multi-user.target.wants/nvidia-persistenced.service' → '/usr/lib/systemd/system/nvidia-persistenced.service'.
Could not execute systemctl:  at /usr/bin/deb-systemd-invoke line 148.
正在设置 libcuda1:amd64 (535.183.06-1) ...
正在设置 nvidia-egl-icd:amd64 (535.183.06-1) ...
正在设置 nvidia-driver-libs:amd64 (535.183.06-1) ...
正在设置 libnvcuvid1:amd64 (535.183.06-1) ...
正在设置 libnvidia-encode1:amd64 (535.183.06-1) ...
正在处理用于 nvidia-alternative (535.183.06-1) 的触发器 ...
update-alternatives: 链接组 nvidia 已更改次要链接,故更新候选项 /usr/lib/nvidia/current
正在设置 nvidia-kernel-dkms (535.183.06-1) ...
Loading new nvidia-current-535.183.06 DKMS files...
Building for 6.10.6-amd64
Building initial module for 6.10.6-amd64
Done.

nvidia-current.ko.xz:
Running module version sanity check.
 - Original module
   - No original module exists within this kernel
 - Installation
   - Installing to /lib/modules/6.10.6-amd64/updates/dkms/

nvidia-current-modeset.ko.xz:
Running module version sanity check.
 - Original module
   - No original module exists within this kernel
 - Installation
   - Installing to /lib/modules/6.10.6-amd64/updates/dkms/

nvidia-current-drm.ko.xz:
Running module version sanity check.
 - Original module
   - No original module exists within this kernel
 - Installation
   - Installing to /lib/modules/6.10.6-amd64/updates/dkms/

nvidia-current-uvm.ko.xz:
Running module version sanity check.
 - Original module
   - No original module exists within this kernel
 - Installation
   - Installing to /lib/modules/6.10.6-amd64/updates/dkms/

nvidia-current-peermem.ko.xz:
Running module version sanity check.
 - Original module
   - No original module exists within this kernel
 - Installation
   - Installing to /lib/modules/6.10.6-amd64/updates/dkms/
depmod....
正在设置 nvidia-driver (535.183.06-1) ...
正在处理用于 libc-bin (2.40-2) 的触发器 ...
正在处理用于 initramfs-tools (0.145) 的触发器 ...
update-initramfs: Generating /boot/initrd.img-6.10.6-amd64
正在处理用于 update-glx (1.2.2) 的触发器 ...
正在处理用于 glx-alternative-nvidia (1.2.2) 的触发器 ...
update-alternatives: 使用 /usr/lib/nvidia 来在自动模式中提供 /usr/lib/glx (glx)
正在处理用于 glx-alternative-mesa (1.2.2) 的触发器 ...
正在处理用于 libc-bin (2.40-2) 的触发器 ...
正在处理用于 initramfs-tools (0.145) 的触发器 ...
update-initramfs: Generating /boot/initrd.img-6.10.6-amd64

启用Wayland支持

我在安装闭源驱动后发现我已经无法在登陆界面启动Wayland桌面环境了,按照GS同学的提醒,我应该在配置文件中新增一行配置。

[21:04:22] (频道)gsrc:/etc/modprobe.d/nvidia.conf
[21:04:28] (频道)gsrc:options nvidia-drm modeset=1

详情参考:https://wiki.archlinux.org/title/NVIDIA#DRM_kernel_mode_setting
如此操作后Wayland已经可以正常使用了。

Debian13 题外话 Fcitx5输入法

当你从X11切换到Wayland后,你可能面临一个问题:Fcitx5输入法在开机后不可用。
令我感到惊喜的是,这个问题的解决方案会在你尝试启用的时候弹出一个消息通知。如同下面截图显示的那样,对Fctix5开发者们贴心的设计都表示由衷的感谢。
2024-09-02T15:56:56.png

为什么我无法使用podman update container_id --restart=always ?

我猜你在阅读本文之前已经尝试过docker(podman) update了,但是很遗憾Podman update命令主要用于配置容器可用资源和,比如限制容器使用的内存数量。
以下为podman update的可用子命令: 随着podman更新,他们可能会被更改,请参考官方文档podman-update - Update the configuration of a given container

选项描述
--blkio-weight设置块设备 I/O 的权重。权重决定了在多个容器之间进行块 I/O 带宽分配时的优先级。
--blkio-weight-device为特定的块设备设置 I/O 权重。格式为“设备路径:权重”。
--cpu-period设置 CPU 周期的时间长度,单位为微秒。用于与 --cpu-quota 一起限制 CPU 的使用。
--cpu-quota设置 CPU 配额,即容器在一个 CPU 周期内可以使用的微秒数。
--cpu-rt-period设置实时 CPU 调度的周期长度,单位为微秒。用于限制实时任务的 CPU 使用时间。
--cpu-rt-runtime设置实时 CPU 调度的运行时间长度,单位为微秒。
--cpu-shares设置 CPU 权重,用于在多个容器之间分配 CPU 时间。
--cpus.container设置容器可以使用的 CPU 核心数。
--cpuset-cpus设置容器可以使用的 CPU 集合。
--cpuset-mems设置容器可以使用的内存节点集合。
--device-read-bps为特定的设备设置读取带宽限制,单位为字节/秒。格式为“设备路径:带宽”。
--device-read-iops为特定的设备设置读取 I/O 操作限制,单位为操作/秒。格式为“设备路径:I/O 操作数”。
--device-write-bps为特定的设备设置写入带宽限制,单位为字节/秒。格式为“设备路径:带宽”。
--device-write-iops为特定的设备设置写入 I/O 操作限制,单位为操作/秒。格式为“设备路径:I/O 操作数”。
--memory设置容器可以使用的内存大小。
--memory-reservation设置容器内存预留大小,确保容器启动时获得的最小内存量。
--memory-swap设置容器可以使用的总内存(包括内存和交换分区)大小。
--memory-swappiness设置容器的交换倾向性,取值范围为 0 到 100。较高的值意味着容器更倾向于使用交换分区。
--pids-limit设置容器可以创建的进程数限制。

使用Podman更新容器参数的正确做法

假设你不想删除并在重新创建该容器时丢失之前使用的参数
以正在运行的容器natfrp-service为例:

查看容器启动参数

(我使用SakuraFrp官方的脚本部署,但是我现在需要更改--restart=on-failure:5 为:--restart=always 并且我不想重新修改一些其他固定好的参数)
podman inspect natfrp-service | grep -A 15 "CreateCommand"
这里的15取决于你的容器启动参数有多少项,一般来说一项为一行,15即获取字符串“CreateCommand”后的15行。如果你发现过多导致没有完全输出,可以适当增加该值。

停止容器

sudo podman stop natfrp-service

删除容器

sudo podman rm natfrp-service

重新运行容器并添加参数

podman run --name=natfrp-service --restart=always other... natfrp.com/launcher:latest