我几乎经常使用来自Ubuntu 内核 PPA的内核,或者我自己编译的内核,使用 Ubuntu 内核配置。
问题是当我使用股票内核时,它似乎默认使用可预测的网络接口名称(即“p4p1”),但当我使用任何备用内核时,它似乎默认使用旧方法(即“eth0”)。
虽然与这个问题并不真正相关,但我的测试计算机出现硬盘故障,并且正在重新安装 Ubuntu Server 14.04.2。
我一直无法确定内核之间有什么区别。我怀疑是内核配置参数,但一直无法确定是哪个。
我的问题:如何使可预测的网络接口名称在所有内核中一致地工作?
附加说明:我在某处看到禁用可预测的网络接口名称以将其添加到 grub:
GRUB_CMDLINE_LINUX_DEFAULT="net.ifnames=0 biosdevname=0"
Run Code Online (Sandbox Code Playgroud)
所以,我认为相反的可能会有所帮助:
GRUB_CMDLINE_LINUX_DEFAULT="net.ifnames=1 biosdevname=1"
Run Code Online (Sandbox Code Playgroud)
但它没有任何区别。实际上,无论设置如何,我都无法让非库存内核使用 biosdevname。而且我永远无法让库存内核生成/etc/udev/rules.d/70-persistent-net.rules文件(即使这不是我想要的),无论net.ifnames. 如果我有net.ifnames=1,那么至少非库存内核不会生成不正确的/etc/udev/rules.d/70-persistent-net.rules文件。
摘自/var/log/udev:
股票内核:
KERNEL[9.216730] add /devices/pci0000:00/0000:00:1c.4/0000:03:00.0/net/p4p1 (net)
ACTION=add
DEVPATH=/devices/pci0000:00/0000:00:1c.4/0000:03:00.0/net/p4p1
IFINDEX=2
INTERFACE=p4p1
SEQNUM=1945
SUBSYSTEM=net
...
UDEV [9.241073] add /devices/pci0000:00/0000:00:1c.4/0000:03:00.0/net/p4p1 (net)
ACTION=add
DEVPATH=/devices/pci0000:00/0000:00:1c.4/0000:03:00.0/net/p4p1
ID_BUS=pci
ID_MODEL_FROM_DATABASE=P8P67 and other motherboards
ID_MODEL_ID=0x8168
ID_NET_NAME_MAC=enxf46d04652d8e
ID_NET_NAME_PATH=enp3s0
ID_OUI_FROM_DATABASE=ASUSTek COMPUTER INC.
ID_PCI_CLASS_FROM_DATABASE=Network controller
ID_PCI_SUBCLASS_FROM_DATABASE=Ethernet controller
ID_VENDOR_FROM_DATABASE=Realtek Semiconductor Co., Ltd.
ID_VENDOR_ID=0x10ec
IFINDEX=2
INTERFACE=p4p1
Run Code Online (Sandbox Code Playgroud)
从 Ubuntu …
当我打开 Lutris 然后打开 LOL 客户端时,就会发生这种情况。游戏永远不会好。我尝试了很多东西,但永远无法更改打开文件限制。如何解决这个问题?
Waiting on children
Waiting on children
eventfd: Too many open files
eventfd: Too many open files
eventfd: Too many open files
esync: write: Bad file descriptor
eventfd: Too many open files
eventfd: Too many open files
eventfd: Too many open files
esync: write: Bad file descriptor
eventfd: Too many open files
eventfd: Too many open files
eventfd: Too many open files
eventfd: Too many open files
eventfd: Too many open files
eventfd: Too many open …Run Code Online (Sandbox Code Playgroud) 我是根。
ping 127.0.0.1 并返回错误;
root@sam-PC:~# ping 127.0.0.1
socket: Permission denied
root@sam-PC:~# ifconfig
eth0 Link encap:Ethernet HWaddr 00:00:ff:ff:00:00
inet addr:192.168.100.104 Bcast:192.168.100.255 Mask:255.255.255.0
inet6 addr: fe80::200:ffff:feff:0/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:36 errors:0 dropped:0 overruns:0 frame:0
TX packets:7 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:2220 (2.2 KB) TX bytes:524 (524.0 B)
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:40 errors:0 dropped:0 overruns:0 frame:0
TX packets:40 errors:0 dropped:0 overruns:0 …Run Code Online (Sandbox Code Playgroud) 我想获取 TX 和 RX 的总量,以了解服务器某一时刻正在接收或发送的数据量。
通过这个命令ip -s link我得到这个结果
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
RX: bytes packets errors dropped overrun mcast
21914963679042 3114955121 0 0 0 0
TX: bytes packets errors dropped carrier collsns
21914963679042 3114955121 0 0 0 0
2: enp3s0f0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP mode DEFAULT group default qlen 1000
link/ether d4:5d:64:40:53:ca brd ff:ff:ff:ff:ff:ff
RX: bytes packets errors dropped overrun …Run Code Online (Sandbox Code Playgroud) 对于源英文文件在 docbook xml 中的官方 Ubuntu 文档,要求仅使用 ASCII 字符。我们使用“检查器”命令行(请参阅此处)。
grep --color='auto' -P -n "[\x80-\xFF]" *.xml
Run Code Online (Sandbox Code Playgroud)
但是,该命令有一个缺陷,显然不是在所有计算机上,它都会遗漏一些带有非 ASCII 字符的行,可能会导致错误的 OK 结果。
有没有人对 ASCII 检查器命令行有更好的建议?
有兴趣的人可以考虑使用这个文件(文本文件,而不是 docbook xml 文件)作为测试用例。带有非 ASCII 字符的前三行是第 9、14 和 18 行。检查中遗漏了第 14 和 18 行:
$ grep --color='auto' -P -n "[\x80-\xFF]" install.en.txt | head -13
9:Appendix F, GNU General Public License.
330:when things go wrong. The Installation Howto can be found in Appendix A,
337:Chapter 1. Welcome to Ubuntu
359:1.1. What is Ubuntu?
394:1.1.1. Sponsorship …Run Code Online (Sandbox Code Playgroud) 我正在尝试将 perlscript 作为 cgi-Script 运行。但是,包括 perl 的 cgi-library 不起作用:
# perl -e 'use CGI::Carp qw(fatalsToBrowser);'
Can't locate CGI/Carp.pm in @INC (you may need to install the CGI::Carp module) (@INC contains: /etc/perl /usr/local/lib/x86_64-linux-gnu/perl/5.22.1 /usr/local/share/perl/5.22.1 /usr/lib/x86_64-linux-gnu/perl5/5.22 /usr/share/perl5 /usr/lib/x86_64-linux-gnu/perl/5.22 /usr/share/perl/5.22 /usr/local/lib/site_perl /usr/lib/x86_64-linux-gnu/perl-base .) at -e line 1.
BEGIN failed--compilation aborted at -e line 1.
#
Run Code Online (Sandbox Code Playgroud)
在旧服务器上,相同的命令不会产生错误消息,并且 cgi 脚本运行正常。
这似乎是 perl 问题,而不是 Apache 问题。
在我的服务器上,Carp.pm 已经安装在@INC 中给出的路径之一中:
# find /usr -iname 'Carp.pm' -ls
555093613 20 -rw-r--r-- 1 root root 20074 Aug 24 21:47 /usr/lib/x86_64-linux-gnu/perl-base/Carp.pm …Run Code Online (Sandbox Code Playgroud) 我一直在使用主线中最新的 ubuntu 5.16 kernel-ppa 软件包,因为我需要 AMD 5700g cpu 和 B550I 主板的温度监控。我需要低延迟,因为我是一名使用该系统进行录音的音乐家。我想继续跟踪最新版本,直到 5.16 或更高版本发布,以便获取安全性和 amdgpu 更新等。
最新的主线版本似乎不再包含低延迟 amd64 deb 软件包。他们会回来吗?如果没有,哪里有关于如何从主线构建自己的教程?(目前我使用的是ubuntu studio 21.10)
有人可以帮助我吗?我需要一个 bash 脚本来播放一个短声音文件,等待 30 秒,播放另一个声音文件,再等待 30 秒。
(我会以此作为提醒,在使用电动牙刷时,在牙齿的每个象限上花费 30 秒。)
mpg123 /usr/share/sounds/My_Sounds/Alarm_Clock_Sound.mp3
sleep 30
mpg123 /usr/share/sounds/My_Sounds/Alarm-sound-buzzer.mp3
sleep 30
mpg123 /usr/share/sounds/My_Sounds/facility-alarm.mp3
sleep 30
Run Code Online (Sandbox Code Playgroud)
但它只播放第一个声音文件。??
networking ×3
kernel ×2
14.04 ×1
20.04 ×1
apache2 ×1
bash ×1
command-line ×1
files ×1
perl ×1
permissions ×1
scripts ×1
ubuntu-mate ×1
udev ×1
ulimit ×1