小编sjy*_*sjy的帖子

将额外的鼠标按钮配置为 Wayland 下的第二次中键

我使用 10 键鼠标 (Logitech M705)。在 X11 下,我能够通过修改etc/X11/xorg.conf.d.

在 Wayland 下,这不再有效。我的研究表明我需要对libinput. 我认为这将是一个常见问题,但在任何地方都找不到答案。

有人可以解释如何重新映射鼠标按钮或解释为什么不能这样做吗?

mouse wayland libinput

13
推荐指数
4
解决办法
9129
查看次数

如何在具有用户命名空间的 systemd-nspawn 容器中使用设备?

我想cryptsetup在systemd-nspawn容器内安装一个加密的图像文件。但是,我收到此错误消息:

[root@container ~]# echo $key | cryptsetup -d - open luks.img luks
Cannot initialize device-mapper. Is dm_mod kernel module loaded?
Cannot use device luks, name is invalid or still in use.
Run Code Online (Sandbox Code Playgroud)

该dm_mod内核模块被加载在主机系统上,虽然事情看起来有点容器内的怪异:

[root@host ~]# grep dm_mod /proc/modules
dm_mod 159744 2 dm_crypt, Live 0xffffffffc12c6000

[root@container ~]# grep dm_mod /proc/modules
dm_mod 159744 2 dm_crypt, Live 0x0000000000000000
Run Code Online (Sandbox Code Playgroud)

strace表示cryptsetup无法创建/dev/mapper/control:

[root@etrial ~]# echo $key | strace cryptsetup -d - open luks.img luks 2>&1 | …
Run Code Online (Sandbox Code Playgroud)

users container namespace bind-mount systemd-nspawn

12
推荐指数
1
解决办法
1410
查看次数

如何使用 USB 键盘或鼠标从挂起状态唤醒?

我在 Arch Linux 上使用 GNOME 3.36.6。默认情况下,GNOME 的自动挂起选项是启用的,它按预期工作。但是,我必须按下电源按钮才能将计算机从挂起状态唤醒。我想使用我的 USB 键盘,它默认在 Windows 上工作。

在Linux内核文档描述了如何/sys/devices/.../power/wakeup文件控制设备是否应该信号系统唤醒。根据文档:

对于大多数设备,电源/唤醒文件中的初始值是“禁用”的;主要的例外是电源按钮、键盘和以太网适配器,其 WoL(局域网唤醒)功能已通过 ethtool 设置。

在我的系统上不是这种情况。当我运行时grep . /sys/bus/usb/devices/*/power/wakeup,我可以看到所有 USB 设备都禁用了唤醒。我在 Ubuntu Stack Exchange 上发现了使用无线 USB 键盘或鼠标(适用于任何 Linux 发行版)从挂起中唤醒的问题,它解释了如何识别正确的设备/sys/bus/usb/devices并用于/etc/rc.local在启动时应用正确的配置。

所有这些看起来都非常复杂,难以记忆,而且容易出错。使用/etc/rc.local不鼓励在systemd基于分布如Debian,Ubuntu的,拱门和Fedora。研究这个问题会发现很多过时的建议(systemd 在 2015 年成为 Debian 的默认初始化系统),以及关于挂起本身多年来被破坏的问题。到 2020 年,GNOME 似乎缺乏对 USB 唤醒的用户友好配置;在 Windows 上,这可以从设备硬件属性的电源管理选项卡访问。

在基于 systemd 的现代 Linux 发行版上,为特定 USB 键盘或鼠标启用唤醒的最简单、最可靠的方法是什么?

(关于挂起和休眠的Arch Linux Wiki 页面表明答案可能是使用 自动配置适当的/sys/devices/.../power/wakeup文件 …

gnome usb power-management suspend systemd

9
推荐指数
1
解决办法
3044
查看次数

如何从 Miller (mlr) 的 DSL 中调用外部命令?

假设我有以下 CSV:

\n\n
$ cat test.csv\nid,domain\n1,foo.com\n2,bar.com\n
Run Code Online (Sandbox Code Playgroud)\n\n

使用mlr put,我可以轻松地将任何函数映射到 CSV 中的字段,只要我可以在 Miller DSL中定义它。因此,例如,mlr --csv put \'$id = $id + 1\'将增加id1。

\n\n

但是,如果我可以 \xe2\x80\x99t 在 Miller\xe2\x80\x99s DSL 中定义该函数(也许是因为它不是纯函数)怎么办?假设我想将 CSV 中的每个域映射到一个 IP 地址。我\xe2\x80\x99d 喜欢做类似的事情mlr --csv put \'$ip = shell("nslookup $domain")。是否有捷径可寻?

\n\n

目前,我正在将输入字段提取到一个单独的文件中,在单独的 shell 脚本中重写它,然后将结果添加回mlr join. 然而,这相当混乱,因为我的 CSV 充满了引号逗号和换行符,我需要自己小心处理,而不是依赖 Miller。

\n

shell csv miller

6
推荐指数
1
解决办法
765
查看次数

如何检查 btrfs 发送/接收是否正常工作?

btrfs send并且receive可用于传输数 TB 的数据,但这些命令不会产生有用的进度输出(即使使用-v)。我如何检查他们是否成功?

例如,如果我创建一个名为 的新子卷source,将 1 GB 的随机数据写入其中,并将其设为只读,以便可以发送:

# btrfs subvolume create source
# head -c 1G < /dev/urandom > source/data
# btrfs property set source ro true
Run Code Online (Sandbox Code Playgroud)

然后,使用btrfs sendand创建新子卷的副本receive,但在完成之前中断该过程:

# mkdir destination
# btrfs send source | btrfs receive destination
At subvol source
At subvol source
^C
Run Code Online (Sandbox Code Playgroud)

btrfs subvolume list 不会表示有任何问题:

# btrfs subvolume list .
ID 1216 gen 370739 top level 5 path source
ID …
Run Code Online (Sandbox Code Playgroud)

btrfs

6
推荐指数
1
解决办法
2102
查看次数

为什么网络接口在移动到不同的网络命名空间时会丢失其 IP 地址?

假设我使用ip-link(8)创建一个接口 ,test-macvlan并为其分配地址10.11.12.13:

# ip link add link eno1 name test-macvlan type macvlan
# ip address add 10.11.12.13 dev test-macvlan
# ip address show test-macvlan
10: test-macvlan@eno1: <BROADCAST,MULTICAST> mtu 1500 ...
    link/ether d2:f7:32:3f:c9:4a brd ff:ff:ff:ff:ff:ff
    inet 10.11.12.13/32 scope global test-macvlan
Run Code Online (Sandbox Code Playgroud)

然后,我使用ip-netns(8)创建网络命名空间,test-netns并使用ip-link(8)将接口分配test-macvlan给新命名空间:

# ip netns add test-netns
# ip link set test-macvlan netns test-netns
# ip netns exec test-netns ip address show test-macvlan
10: test-macvlan@if2: <BROADCAST,MULTICAST> mtu 1500 …
Run Code Online (Sandbox Code Playgroud)

iproute network-namespaces

6
推荐指数
0
解决办法
866
查看次数

4K 扇区对 SSD 存储的 LUKS2 性能提高了多少?

根据cryptsetup(8) 手册页,LUKS2 卷的扇区大小可以配置为--sector-size:

设置用于磁盘加密的扇区大小。它必须是 2 的幂并且范围在 512 - 4096 字节内。默认为 512 字节扇区。此选项仅在 LUKS2 模式下可用...将扇区大小从 512 字节增加到 4096 字节可以在大多数现代存储设备以及某些硬件加密加速器上提供更好的性能。

出于兼容性原因,保留了 512 字节的默认扇区大小。根据cryptsetup 2.0.0 的发行说明,扇区大小存储在元数据中,以后无法更改。因此,将我现有的 LUKS2 卷迁移到 4K 扇区将非常耗时。

4K 扇区对 SSD 存储的 LUKS2 性能提高了多少?哪种加密硬件最能利用 4K 扇区?

block-device luks cryptsetup

5
推荐指数
1
解决办法
4082
查看次数