只是为了学习经验,我用不同的选项重新编译了 Linux 内核,从它安装和启动。这既具有指导意义又直截了当。然而,我被大量可用的选择所淹没。
我的问题是:
我想按内容搜索整个服务器。(文本文件)
当我尝试 grep -rl "text here" 时,它冻结了。
你会怎么做?
以及通常需要多长时间?
我有进程的pid。我想知道当前进程中运行的线程数。我知道我可以阅读 /proc/pid/stat 以获取此信息,但我不确定如何从 stat 中具体获取线程数。任何人都可以帮忙吗?
谢谢!
我知道可以通过执行ifconfig lo down. 但是是否有可能将 lo 接口配置为根本不可用的内核?请注意,我不想删除内核源代码或禁用整个 tcp/ip 堆栈。
请注意,这完全是一个技术问题。我知道一个人需要接口,我的机器会发生很多不好的事情。但我仍然想知道这是否可能。
前几天我进入了我的BIOS,没有改变任何东西,然后重新启动。在此之后,我的wifi被硬阻止了。我在网上寻找解决方案,并了解了 rfkill 命令。但我得到
rfkill: command not found
Run Code Online (Sandbox Code Playgroud)
但是,在启动消息中,我看到 rfkill 被调用以执行某些操作。我想,也许出于某种原因,它不在路径中。我确定是。(今晚我会仔细检查一下。)
我尝试在闪存驱动器上运行 Linux Mint,并且 rfkill 命令告诉我我的 wifi 被硬阻止了。除了wifi硬块,我可以解锁所有东西。
我的电脑上没有wifi开关。键盘上有一个 wifi 按钮(F12),但它什么也不做。
我想知道如何解决这个问题,但我也想知道为什么会发生这种情况。
更新!2014.10.5 我已经做了一些调查,我想分享它,以防有人发现可以解决这个问题的东西。
我仔细阅读了初学者指南,结果如下:
识别无线接口名称
$ iw dev
wlp3s0
Run Code Online (Sandbox Code Playgroud)
使用 wifi-menu 连接到网络
# wifi-menu wlp3s0
Scanning for networks... failed
No networks found
Run Code Online (Sandbox Code Playgroud)
调出界面
# ip link set wlp3s0 up
RTNETLINK answers: Operation not possible due to RF-kill
# rfkill list
bash: rfkill: command not found
Run Code Online (Sandbox Code Playgroud)
我在启动消息中看到提到了 rfkill,但在 dmesg 中没有。rfkill 适用于 Linux Mint 闪存驱动器。当我运行它时,它将更改除硬块之外的所有块。没有硬件开关。
显示加载的模块:
# lsmod
Run Code Online (Sandbox Code Playgroud)
产生大名单,其中包括:
rfkill 18867 4 …Run Code Online (Sandbox Code Playgroud) linux wireless-networking arch-linux linux-kernel wifi-configuration
我有一个基于 debian mint 的系统,我在其中插入了 16 个 USB 设备。内核是: 3.11.0-12-generic 在大约 10 个左右的设备之后,我开始遇到连接新设备的问题。可以在 dmesgs 中找到一个这样的设备的错误,如下所示(最后两行不同)
[新更新:变通方法] 我发现此问题特定于 xhci。在我的 bios 中,我实际上能够禁用 xhci 并强制 linux 回退到 ehci(大概)。现在我所有的设备都运行良好!当然,这对我来说意味着没有 USB3 设备。幸运的是,我的即时申请不需要它们。我不知道这是英特尔问题还是 linux 问题。离开这个页面会很好,因为其他人很想找到它。
dmesg | grep -i 3-5.1
Run Code Online (Sandbox Code Playgroud)
工作装置:
[ 1.883505] hub 3-5:1.0: USB hub found
[ 1.883733] hub 3-5:1.0: 4 ports detected
[ 3.370272] usb 3-5.1: new full-speed USB device number 17 using xhci_hcd
[ 3.387126] usb 3-5.1: New USB device found, idVendor=03eb, idProduct=2045
[ 3.387129] usb 3-5.1: New USB device strings: Mfr=0, Product=0, …Run Code Online (Sandbox Code Playgroud) 我有一些与 IPsec 的 Linux 内核实现及其用户空间接口相关的问题(问题)。
我已经有几年没有编译过 Linux 内核了,现在我又开始这样做了,我发现模块默认安装有调试符号,除非INSTALL_MOD_STRIP=1传递给make modules_install,这使得它们如此庞大,以至于我的 initrd 映像增长到了数百个兆字节。
我只是在谷歌INSTALL_MOD_STRIP搜索了相当多的时间后才找到了这个选项,即使这样,也只是在论坛帖子中,人们问为什么他们的模块如此大。
所以我想知道,当我使用预编译内核时,这种变化的原因是什么?是否有一个原因是模块现在默认安装有调试符号(即使二进制发行版仍然将它们剥离)?在内核中使用调试符号似乎相当深奥,而且在安装大小方面显然有很大的缺点。
基本上,我应该只考虑INSTALL_MOD_STRIP作为标准内核编译公式的一部分吗?从 ~2.6.25 开始,构建过程还有其他我应该注意的变化吗?
我试图了解将 Alpine 安装介质制作为只读类型 (LiveCD) 和标准磁盘模式(可以保存操作系统状态)有什么区别。modloop当本文的作者 ( https://wiki.alpinelinux.org/wiki/Create_UEFI_boot_USB ) 为 UEFI 启动模式配置加载程序条目时,我已经看到了该选项:
Contents of loader/entries/alpine.conf
title Alpine Linux
linux /boot/vmlinuz-hardened
initrd /boot/initramfs-hardened
options modloop=/boot/modloop-hardened modules=loop,squashfs,sd-mod,usb-storage quiet
Run Code Online (Sandbox Code Playgroud)
问题是本节modloop=/boot/modloop-hardened modules=loop,squashfs,sd-mod中列出的选项如何相互关联,它们的含义是什么?
linux-kernel ×10
linux ×4
kernel ×2
alpine-linux ×1
arch-linux ×1
boot ×1
c ×1
compile ×1
debian ×1
dmesg ×1
ip ×1
iproute2 ×1
ipsec ×1
performance ×1
proc ×1
ubuntu ×1
usb ×1