Questions tagged «linux»

这些问题通常与Linux有关-并非特定于特定发行版。如果问题恰好在Linux环境中,请在问题正文中指定Linux发行版,但不要使用/ linux标记。

1
如何在Linux上调试无法绑定到设备的驱动程序?
我试图弄清楚为什么我的Creator CI20上的驱动程序未安装以下设备。供参考,我使用Linux内核v4.13.0并在本地进行编译: make ARCH=mips ci20_defconfig make -j8 ARCH=mips CROSS_COMPILE=mipsel-linux-gnu- uImage 从正在运行的系统中,我可以看到: ci20@ci20:~# find /sys | grep rng /sys/firmware/devicetree/base/jz4780-cgu@10000000/rng@d8 /sys/firmware/devicetree/base/jz4780-cgu@10000000/rng@d8/compatible /sys/firmware/devicetree/base/jz4780-cgu@10000000/rng@d8/name /sys/bus/platform/drivers/jz4780-rng /sys/bus/platform/drivers/jz4780-rng/bind /sys/bus/platform/drivers/jz4780-rng/unbind /sys/bus/platform/drivers/jz4780-rng/uevent 因此内核在运行时可以看到该设备,现在缺少的部分是为什么驱动程序从未绑定?我本来期望这样的事情: /sys/bus/platform/drivers/jz4780-rng/100000d8.rng 我确实找到了其他一些文章来解释如何调试正在运行的系统,例如: /programming/28406776/driver-binding-using-device-tree-without-compatible-string-in-the-driver /programming/35580862/device-tree-mismatch-probe-never-所谓 /programming/41446737/platform-device-driver-autoloading-mechanism 是否可以使用正在运行的内核的/ sys获取设备树的信息? 尽管这些帖子的信息准确无误,但对我来说却不是很有帮助。由于我是在本地构建内核(我printk在jz4780-rng驱动程序的probe函数中添加了),所以我的问题是: 我应该在编译时打开什么选项,以便内核在无法调用jz4780-rng驱动程序的probe函数时输出准确的信息? 特别是我该如何打印经过测试的总线/驱动器的完整列表driver_probe_device? 我printk可以在代码中的任何地方添加调试它。问题在于:哪个函数正在遍历设备树并调用probe / init函数? 以供参考: $ dtc -I fs -O dts /sys/firmware/devicetree/base | grep -A 1 …

2
为什么同时使用“ make clean”和“ make mrproper”?
这是写在Linux内核Makefile是 clean - Remove most generated files but keep the config and enough build support to build external modules mrproper - Remove all generated files + config + various backup files 并在arch文档中指出 要完成准备工作,请确保内核树绝对干净。 $ make clean && make mrproper 那么如果make mrproper要彻底清除,为什么make clean要用呢?
10 linux  make  gnu 

2
硬盘不会自动进入待机状态
我有一个硬盘驱动器,应在30或60分钟后自动进入待机状态。 我尝试了(测试需要3分钟): # hdparm -S 36 /dev/sda /dev/sda: setting standby to 36 (3 minutes) 即使无法访问超过5分钟,它也无法正常工作。现在我想到了一些访问数据的流程,因此我进行了测试 # hdparm -y /dev/sda /dev/sda: issuing standby command 驱动器进入待机状态并保持睡眠状态,因为您可以通过 # hdparm -C /dev/sda;date /dev/sda: drive state is: standby 轻触挂载点中的某些文件即可将其唤醒。 自动暂停为什么不起作用?据我了解,只要没有访问权限,它甚至应该关闭操作系统的硬盘驱动器。

3
通过PAM帐户配置拒绝特定用户的访问
我正在尝试为已经退出的用户设置从machineA到的无密码登录。这是我生成身份验证密钥的工作:machineBdavid david@machineA:~$ ssh-keygen -t rsa ........ david@machineB:~$ ssh-keygen -t rsa ........ 之后,我将的id_rsa.pub (/home/david/.ssh/id_rsa.pub)密钥复制machineA到machineB authorized_keys文件(/home/david/.ssh/authorized_keys)密钥中。 然后,我返回到machineA登录屏幕,并运行以下命令,它运行正常,没有任何问题。因此,我能够以machineB大卫用户身份登录而无需输入任何密码。 david@machineA:~$ ssh david@machineB 题: 现在,我创建了一个新的用户machineA,并machineB只运行此命令两者useradd golden。现在,我想将此golden用户的无密码密码转换为machineBfrom machineA。我做了与上述完全相同的步骤,但是没有用。 david@machineA:~$ sudo su - golden golden@machineA:~$ ssh-keygen -t rsa ........ david@machineB:~$ sudo su - golden golden@machineB:~$ ssh-keygen -t rsa ........ 然后,我将黄金用户的id_rsa.pub密钥/home/golden/.ssh/id_rsa.pub从复制machineA到machineB authorized_keys文件/home/golden/.ssh/authorized_keys。当我尝试ssh时,它给了我: golden@machineA:~$ ssh golden@machineB Connection closed by …
10 linux  ubuntu  ssh 

2
USB声卡上的麦克风音量非常低,snd_usb_audio选项吗?
我在Raspberry Pi上安装了C-Media USB声卡:Bus 001 Device 004: ID 0d8c:0008 C-Media Electronics, Inc.。这是一条USB电缆,另一端具有XLR端,我连接了XLR麦克风(如果有兴趣的话,可以连接Sennheiser MD 427): 将其连接到我的Mac上,我可以调高录音音量(它用德语显示“所选设备的设置”和“输入音量”) ,我从录音中获得相当好的录音(它实际上是立体声录音,但这显示了音量)水平): 现在,Linux下的相同看起来很不一样。可以识别该设备,snd_usb_audio将其加载并alsamixer显示新的记录设备,并让我一直调高“记录音量”: 但是,我可以记录的内容# AUDIODEV=hw:1 rec tmp.wav充其量是令人沮丧的: 现在,有没有一种方法可以更改内核模块设置,从而使我可以比演示的内容更多地“提高录音音量”?还是我忘记的任何其他设置? 我可以使用来“软化”录音# AUDIODEV=hw:1 rec tmp.wav gain 20,但这也会增加噪音,但仍低于Mac录音的声音。 在您问之前: # arecord -L null Discard all samples (playback) or generate zero samples (capture) default:CARD=Device C-Media USB Audio Device, USB Audio Default Audio …
10 linux  usb  audio  alsa 

2
Linux-由于不支持的可选功能而无法挂载RDWR(400)
我尝试从SD卡运行Android。此卡已准备好。有隔板:boot(FAT32),rootfs(ext4),system(ext4),cache(ext4)和usedata(ext4)。引导分区有文件来运行的u-boot: MLO,u-boot.bin和uImage。要运行它,我使用命令 mmcinit 0 fatload mmc 0 0x80000000 uImage setenv bootargs 'console=ttyO2,115200n8 mem=456M@0x80000000 mem=512M@0xA0000000 init=/init vram=10M omapfb.vram=0:4M androidboot.console=ttyO2 root=/dev/mmcblk1p2 rw rootwait rootfstype=ext4' bootm 0x80000000 比我看到Linux是如何启动的。但是在加载步骤几秒钟后,rootfs我看到一条错误消息 [ 4.015655] EXT4-fs (mmcblk1p2): couldn't mount RDWR because of unsupported optional features (400) [ 4.036499] sd 0:0:0:0: [sda] Attached SCSI removable disk [ 4.079986] List …

1
是内核线程进程和守护程序吗?
从Mauerer的Linux内核体系结构中, 内核线程是由内核本身直接启动的进程。他们将内核函数委派给一个单独的进程,并在其中与系统中的其他进程“并行”执行(实际上,与内核本身的执行并行)。内核线程通常称为(内核)守护程序。它们用于执行例如以下任务: 定期将修改的内存页面与页面所源自的块设备同步(例如,使用mmap映射的文件)。 如果很少使用内存页,则将其写入交换区域。 管理延迟的操作。 为文件系统实现事务日志。 基本上,内核线程有两种类型: 类型1-线程启动并等待直到内核请求执行特定操作为止。 类型2 —类型一旦启动,线程就会定期运行,检查特定资源的利用率,并在利用率超过或低于设置的限制值时采取措施。内核使用这种类型的线程进行连续监视任务。 由于Mauerer的书说内核线程是进程,所以我认为它们必须在用户模式而不是内核模式下运行。(或者我错了吗?一个进程可以在不同时间以用户模式或内核模式运行,还是只能以一种模式运行?) 但是Bovet的《了解Linux内核》指出,内核线程仅在内核模式下运行(请参见下面的引用)。两本书中的“内核线程”的概念是否相同? 传统的Unix系统将一些关键任务委托给间歇性运行的进程,包括刷新磁盘缓存,换出未使用的页面,为网络连接服务等。实际上,以严格的线性方式执行这些任务并不高效。如果将它们安排在后台,则它们的功能和最终用户流程都将获得更好的响应。由于某些系统进程仅在内核模式下运行,因此现代操作系统将其功能委托给内核线程,而内核线程不会受到不必要的用户模式上下文的阻碍。在Linux中,内核线程在以下方面与常规进程不同: 内核线程仅在内核模式下运行,而常规进程在内核模式和用户模式下交替运行。 由于内核线程仅在内核模式下运行,因此它们仅使用大于PAGE_OFFSET的线性地址。另一方面,常规过程在用户模式或内核模式下都使用全部四个千兆字节的线性地址。 Mauerer的书说内核线程是直接由内核启动的,似乎还说守护程序是内核线程的同义词。因此,我认为守护程序必须直接由内核启动。 但是https://unix.stackexchange.com/a/193918/674说,screen的守护进程是通过screen用户界面启动的(请参见下面的引用)。我认为screen用户界面是一个过程,而不是内核。是的概念daemon在Mauerer的书,并在链接的答复同一个概念? 首次启动时screen,实际上是在启动用户界面(ui),默认情况下会创建一个守护程序(会话管理器)。 通常,您如何理解“内核线程”,“进程”和“守护程序”的概念,它们之间的关系和差异?

4
如何设置默认网关
我正在尝试使用ifconfig在嵌入式Linux上配置网络接口: ifconfig eth0 192.168.0.101 netmask 255.255.255.0 但我不知道如何将默认网关添加为ifconfig参数, 有任何想法吗?


7
如何重命名目录中所有带有特殊字符和空格的文件?
如何重命名特定目录中的所有文件,这些文件的名称中包含空格和特殊字符($和@)? 我尝试了以下rename命令,用_替换所有空格和特殊字符: $ ls -lrt total 464 -rwxr-xr-x. 1 pmautoamtion pmautoamtion 471106 Jul 17 13:14 Bharti Blocked TRX Report Morning$AP@20150716.csv $ rename -n 's/ |\$|@/_/g' * $ ls -lrt total 464 -rwxr-xr-x. 1 pmautoamtion pmautoamtion 471106 Jul 17 13:14 Bharti Blocked TRX Report Morning$AP@20150716.csv $ 该命令有效,但不会对文件名进行任何更改,也不会返回任何错误。如何解决此问题,还有其他方法吗?

3
如何以排序顺序对文件进行tar处理?
如果tar是递归目录,则仅使用os的顺序readdir。 但是在某些情况下,最好对已排序的文件进行tar处理。 对按字母顺序排序的目录进行压缩的好方法是什么? 注意,出于这个问题的目的,在典型的Linux系统上使用gnu-tar是可以的。
10 linux  tar  sort 

2
如何并行化dd?
我目前在使用dd稀疏文件作为输入(if)和文件作为输出(of)时遇到麻烦conv=sparse。dd似乎仅使用一个CPU Intel(R) Core(TM) i7-3632QM CPU @ 2.20GHz内核(4个内核+ 4个Intel Hyperthreads)(1个内核的100%),因此我一直在想是否可以并行化dd。我去过 寻找到info dd和man dd而且似乎内置功能corutils 8.23版本 sgp_dd从sg3-utils程序包中检查(不了解它是否适​​合我的需求),但是似乎无法处理稀疏文件 dcfldd 似乎没有并行化功能 据我所知 与在多个线程中内部处理程序部分的增强版本/分支(避免上下文更改导致I / O性能下降)相比,它更可取 在parallel本地运行GNU的解决方案优先于 定制(可能未经测试)的代码片段 如何避免CPU成为I / O密集型操作的瓶颈?我想在具有Linux 3.13的Ubuntu 14.04上运行命令,并在支持稀疏文件的任何文件系统上使用它来处理稀疏文件磁盘映像(至少该解决方案不应绑定到一个特定的文件系统)。 背景:我正在尝试在zfs(zfsonlinux 0.6.4不稳定版本,可能有故障以及导致CPU瓶颈的原因(最终漏洞搜索缓慢))上创建11TB稀疏文件(包含大约2TB数据)的副本。对于如何并行化dd的问题,这应该不会有任何改变(以一种非常通用的方式)。
10 linux  dd  parallelism 

1
在Linux上将CSV转换为XLS文件
以下Perl脚本可以将CSV文件转换为XLS文件 问题是我需要在客户Linux机器上安装许多Perl模块 为了运行此Perl脚本,实际上我不能,因为Linux机器是客户机器(不允许安装模块) 所以我需要为这个Perl脚本找到其他选择 第一位客户拥有Linux红帽机器版本5.X 而且我想找到一些bash / ksh / sh / awk脚本,它们可以完成与perl脚本相同的工作 所以我想找到其他将CSV转换为XLS文件的替代方法 请咨询如何找到该脚本?或其他建议在Linux计算机上将CSV转换为XLS #!/usr/bin/perl -w ############################################################################### # # Example of how to use the WriteExcel module # # Simple program to convert a CSV comma-separated value file to an Excel file. # This is more or less an non-op …
10 linux  bash  shell-script  awk  perl 

3
我的linux系统使用哪个进程调度程序?
我不太确定是否stackoverflow或serverfault是用于此问题的论坛,但请尝试此处。 是否可以使用某些命令或可以检查的文件,以找出我在Linux系统上使用的进程调度程序?我不是在寻找I / O调度程序,而是进程调度程序,请不要参考指南或howtos来了解调度程序是什么,我只是想问的是是否存在可以运行的命令或文件/检查看看。我可以检查我的内核文档,但是我只是想知道是否有可以检查的命令或文件。 上面我可能有点多余,但这是因为我见过的帖子似乎使流程调度程序与I / O调度程序混淆,他们似乎并没有回答实际问题,仅提供指向调度程序的链接这不是我想要的,如果上述评论听起来不礼貌,请您道歉。
10 linux  scheduling 

2
以更高的压缩率压缩zip文件
我有大量使用zip命令压缩的zip文件。我想用-9标志重新压缩它们以提高压缩率。有谁知道如果不手动解压缩然后再压缩就可以做到这一点。 PS。我需要将它们保留为zip文件,因为它们是供Windows用户使用的(因此名称中包含空格)
10 linux  zip  compression 

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.