我想制作一个非常小巧、低功耗的 USB over IP 服务器。我知道 Linux 有一个“usbip”包,但它可以在 ESP32 等微控制器上使用吗?
客户端运行的是 Linux,因此usbip
客户端+服务器上的软件包应该可以轻松实现这一点。而且,客户端和服务器都将通过以太网连接。
每月一次,我发现我的一台 RedHat 9 服务器重新启动(实际上它是 AlmaLinux 9,但由于它是 RH9 的克隆,因此这个问题最好在 RH9 的环境中解决)。我试图找出导致崩溃的原因,但没有创建核心转储文件!
我已经按照这篇文章中的说明进行操作,但我的系统上似乎没有任何内容,但是当我使用以下命令触发核心转储时:
睡眠 3 并杀死 -SEGV $!
没有核心转储文件!
我确认基本设置如下:
[root@myhost ~]# cat /proc/sys/kernel/core_pattern
|/usr/lib/systemd/systemd-coredump %P %u %g %s %t %c %h
[root@myhost ~]# ulimit -c
unlimited
我必须设置其他内容才能创建转储文件吗?我怀疑是我自己的应用程序(非打包)导致了这个问题……但即使在保存应用程序的目录中也没有核心文件。
====更新====
我修改了 /etc/coredump.conf 并设置了 storage=external (其他所有内容都注释掉了),然后重新启动并运行以下命令:
[root@myhost ~]# sleep 3 & kill -SEGV $!
[1] 3583
[root@myhost ~]#
[1]+ Segmentation fault (core dumped) sleep 3
[root@myhost ~]# coredumpctl --all
TIME PID UID GID SIG COREFILE EXE SIZE
Sat 2024-10-26 12:56:46 EDT 3583 0 0 SIGSEGV none /usr/bin/bash -
[root@myhost ~]# ll /var/lib/systemd/coredump/
total 0
因此仍然没有可见的核心转储文件(请注意上面的“无”)。系统日志显示:
Oct 26 13:06:41 ngcvls1 systemd[1]: Started Process Core Dump (PID 4459/UID 0).
Oct 26 13:06:41 ngcvls1 systemd-coredump[4460]: Resource limits disable core dumping for process 4458 (bash).
Oct 26 13:06:41 ngcvls1 systemd-coredump[4460]: Process 4458 (bash) of user 0 dumped core.
因此我从命令行运行:
ulimit -c unlimited
并重复段错误测试,然后创建了一个核心文件!但重启后它就消失了。(尽管我在 coredump.conf 中设置了 storage=external)。我需要核心转储才能在重启后继续存在,否则我就不知道我的系统崩溃的原因了。越来越近了!我想让 ulimit -c 永久存在,只是不知道把它放在哪里(不喜欢其他帖子建议把它放在 .bashrc 中)
我正在运行 AlmaLinux 9(RedHat 9 克隆版),并安装了 net-snmp。我以为这会自动包含一个通用的 linux MIB。但事实并非如此,网上的信息说我应该使用我的包管理器 (DNF) 下载一个。
但我找不到!安装 net-snmp 时,包管理器是否应该安装 MIB?如果没有,我在哪里可以下载通用 Linux MIB?唯一可用的相关包如下所示:
dnf list | grep net-snmp
net-snmp.x86_64 1:5.9.1-13.el9_4.3 appstream
net-snmp-agent-libs.i686 1:5.9.1-13.el9_4.3 appstream
net-snmp-agent-libs.x86_64 1:5.9.1-13.el9_4.3 appstream
net-snmp-devel.i686 1:5.9.1-13.el9_4.3 appstream
net-snmp-devel.x86_64 1:5.9.1-13.el9_4.3 appstream
net-snmp-libs.i686 1:5.9.1-13.el9_4.3 appstream
net-snmp-libs.x86_64 1:5.9.1-13.el9_4.3 appstream
net-snmp-perl.x86_64 1:5.9.1-13.el9_4.3 appstream
net-snmp-utils.x86_64 1:5.9.1-13.el9_4.3 appstream
python3-net-snmp.x86_64 1:5.9.1-13.el9_4.3 appstream
我正在运行 AlmaLinux 9,启动时我看到警告
Warning: Deprecated Driver is detected: nft_compat will not be maintained in a future major release and may be disabled
但是加载该驱动程序的是什么?我禁用了firewalld服务。我想(正确地)消除这个警告。
附加信息:
[root@server ~]# lsmod | grep nft_compat
nft_compat 20480 14
nf_tables 278528 98 nft_compat,nft_counter,nft_chain_nat
nfnetlink 20480 2 nft_compat,nf_tables
[root@server ~]# iptables -L -n
Chain INPUT (policy ACCEPT)
target prot opt source destination
Chain FORWARD (policy ACCEPT)
target prot opt source destination
NETAVARK_FORWARD all -- 0.0.0.0/0 0.0.0.0/0 /* netavark firewall plugin rules */
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
Chain NETAVARK_FORWARD (1 references)
target prot opt source destination
ACCEPT all -- 0.0.0.0/0 10.88.0.0/16 ctstate RELATED,ESTABLISHED
ACCEPT all -- 10.88.0.0/16 0.0.0.0/0
Chain NETAVARK_ISOLATION_2 (1 references)
target prot opt source destination
Chain NETAVARK_ISOLATION_3 (0 references)
target prot opt source destination
DROP all -- 0.0.0.0/0 0.0.0.0/0
NETAVARK_ISOLATION_2 all -- 0.0.0.0/0 0.0.0.0/0
两个进程是否可以共享(混合)音频流,每个进程都尝试将音频发送到单个输出设备?
我正在运行 AlmaLinux 9,并且仅与基本 ALSA 配对。但如果需要,我可以添加(返回)管道线。
我想使用“aplay”进行测试,但该解决方案应该适用于任何进程的音频输出。
我有一个脚本,我希望每个人(世界)都能够执行。但是,脚本中的一行需要 root 权限才能正常运行。
我怎样才能让这个脚本适用于每个人,而不需要任何人输入 root 凭据?如果我在命令前面加上 sudo,那么我假设每个用户都会被提示输入 root 凭据。
#!/bin/bach
echo "works fine"
sudo rootonlycommand
echo "works fine"
我正在尝试安装一个具有各种 perl 依赖项的程序。Perl 依赖项之一 (BerkeleyDB) 在安装过程中失败。我对perl知之甚少。我(作为用户)有办法解决这个问题吗?是否有 SPAN 命令可以尝试早期版本?
cpan[49]> install BerkeleyDB
Running install for module 'BerkeleyDB'
Fetching with HTTP::Tiny:
https://cpan.org/authors/id/P/PM/PMQS/BerkeleyDB-0.65.tar.gz
Checksum for /root/.local/share/.cpan/sources/authors/id/P/PM/PMQS/BerkeleyDB-0.65.tar.gz ok
Configuring P/PM/PMQS/BerkeleyDB-0.65.tar.gz with Makefile.PL
Parsing config.in...
Looks Good.
Checking if your kit is complete...
Looks good
Warning (mostly harmless): No library found for -ldb
Generating a Unix-style Makefile
Writing Makefile for BerkeleyDB
Writing MYMETA.yml and MYMETA.json
PMQS/BerkeleyDB-0.65.tar.gz
/usr/bin/perl Makefile.PL -- OK
Running make for P/PM/PMQS/BerkeleyDB-0.65.tar.gz
cp BerkeleyDB/Hash.pm blib/lib/BerkeleyDB/Hash.pm
cp scan.pl blib/lib/scan.pl
cp BerkeleyDB.pod blib/lib/BerkeleyDB.pod
cp mkconsts.pl blib/lib/mkconsts.pl
cp BerkeleyDB/Btree.pm blib/lib/BerkeleyDB/Btree.pm
cp BerkeleyDB.pm blib/lib/BerkeleyDB.pm
Running Mkbootstrap for BerkeleyDB ()
chmod 644 "BerkeleyDB.bs"
"/usr/bin/perl" -MExtUtils::Command::MM -e 'cp_nonempty' -- BerkeleyDB.bs blib/arch/auto/BerkeleyDB/BerkeleyDB.bs 644
"/usr/bin/perl" "/usr/share/perl5/vendor_perl/ExtUtils/xsubpp" -noprototypes -typemap '/usr/share/perl5/ExtUtils/typemap' -typemap '/root/.local/share/.cpan/build/BerkeleyDB-0.65-0/typemap' BerkeleyDB.xs > BerkeleyDB.xsc
Warning: Found a 'CODE' section which seems to be using 'RETVAL' but no 'OUTPUT' section. in BerkeleyDB.xs, line 5936
Warning: Found a 'CODE' section which seems to be using 'RETVAL' but no 'OUTPUT' section. in BerkeleyDB.xs, line 5964
mv BerkeleyDB.xsc BerkeleyDB.c
gcc -c -I/usr/local/BerkeleyDB/include -D_REENTRANT -D_GNU_SOURCE -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64-v2 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fwrapv -fno-strict-aliasing -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -g -DVERSION=\"0.65\" -DXS_VERSION=\"0.65\" -fPIC "-I/usr/lib64/perl5/CORE" BerkeleyDB.c
BerkeleyDB.xs:76:10: fatal error: db.h: No such file or directory
76 | #include <db.h>
| ^~~~~~
compilation terminated.
make: *** [Makefile:349: BerkeleyDB.o] Error 1
PMQS/BerkeleyDB-0.65.tar.gz
/usr/bin/make -- NOT OK
Failed during this command:
PMQS/BerkeleyDB-0.65.tar.gz : make NO
我已经安装了 Cepstral Swift(语音测试),当我运行应该输出音频的命令时,我收到错误
oss_audio: failed to open audio device /dev/dsp
我确保还安装了 OSS:
dnf install alsa-utils alsa-plugins-oss
但仍然是同样的错误。我可以确认设备 /dev/dsp 不存在。我尝试安装 padsp 工具(将 OSS 音频路由到 PA),但该工具不适用于 AlmaLinux 9
我正在运行 AlmaLinux 9(RedHat 9 克隆)并编译了一个新的内核模块。我正在启用 UEFI 和安全启动的虚拟机中运行。当我插入模块时,出现以下错误:
insmod: ERROR: could not insert module npreal2.mod: Key was rejected by service
从其他帖子中我得出的结论是它与 UEFI/安全启动有关。所以我禁用了安全启动,然后 insmod 报告:
insmod: ERROR: could not insert module npreal2.mod: Invalid module format
我尝试在关闭安全模式的情况下重新编译,然后 insmod 工作,但随后我必须禁用安全启动。如何使该模块能够安全启动?
github上有一篇关于创建自己的 MOK 密钥的帖子,但这似乎是 DKMS 特定的。
我想将笔记本电脑上的蓝牙连接到附近提供 SPP 的设备,然后使用终端程序与该设备通话。它在 Windows 上运行良好,现在我正尝试在 Linux 上重新创建它。我已经在 Linux 中配对并信任该设备(使用 Ubuntu GUI),然后(根据我对其他帖子的理解)创建了一个本地 tty 设备,如下所示:
root@ta-ms:~# sdptool add --channel=22 SP
root@ta-ms:~# rfcomm bind /dev/rfcomm1 BC:23:E0:82:5C:6a 22
然后在该设备上启动终端程序:
root@ta-ms:~# minicom -D /dev/rfcomm1
minicom 将启动并显示一个终端窗口,但是当我键入时,任何方向都没有数据移动。
有人可以建议这里有什么问题吗?是我没有正确设置 BT+SPP+RFCOMM/TTY,还是我有其他问题?
我正在尝试创建一个简单的 Linux BASH 脚本,但请注意 bash 正在将 \r 添加到每个字符串,如果我尝试使用 'tr' 删除它,那么它只会添加一个新脚本!这是我的脚本
#!/bin/bash
OUTFILE=$(echo -n `date +"%Y-%m-%d_%H-%m-%S"`)
ASD='DDD'
echo -n "DATE [$OUTFILE]"
echo -n "DDD [$ASD]"
这是输出
bash -x backup-datadir.sh
+++ date +%Y-%m-%d_%H-%m-%S
++ echo -n 2020-03-09_13-03-44
+ OUTFILE=$'2020-03-09_13-03-44\r'
+ ASD=$'DDD\r'
' echo -n 'DATE [2020-03-09_13-03-44
' echo -n 'DDD [DDD-03-44
为什么会出现额外的 \r ?] 消失了,因为它在换行符之后被覆盖。我以前从未见过这个...
我有一个全新安装的 CentOS 8,并且 pcre 包已经安装。
但是,pcgrep 命令不可用,在文件系统上也找不到。根据 CentOS 文档,这应该在“pcre”包中。(见centos.pkgs.org)
dnf 提供 */pcregrep
dnf 提供 */pcre2grep
一无所获。顺便说一句,也安装了 pcre2,但仍然没有 pcre2grep 命令可用。
有人可以帮我找到“pcregrep”命令吗?
我有一个插入我的 Fedora 27 x64 系统的 USB 设备。它检测得很好,但是一旦我的软件开始与设备通信,dmesg 日志就会填充:
[212972.138684] usb 2-2.2: input irq status -75 received
[212972.140176] usb 2-2.2: input irq status -75 received
[212972.141657] usb 2-2.2: input irq status -75 received
[212972.143166] usb 2-2.2: input irq status -75 received
[212972.144624] usb 2-2.2: input irq status -75 received
[212972.146152] usb 2-2.2: input irq status -75 received
[212972.147663] usb 2-2.2: input irq status -75 received
[212972.149142] usb 2-2.2: input irq status -75 received
状态 -75 是什么意思?我将如何解决这个问题?日志似乎每分钟充满数百条此类消息(或更多)