所以我正在使用 Ubuntu 并尝试使用一些我以前遇到过一些问题的硬件。
之前的问题是,制造我的硬件的公司将其内部零件出售给了另一家制造具有相同 ID 的不同硬件的公司。有人好心地为它制作了一个随 Ubuntu 一起提供的驱动程序,但阻止了我设备的驱动程序工作。在我的上一个系统上,我只是跟踪了内核模块并禁用了它。
我收到与我以前的机器相同的消息:
无法声明设备(Vid:0x2457,Pid:0x1002,iface:0)
但是插入设备似乎并没有像以前那样在 /dev 中创建一个条目。如何找到我的设备的所有权?我假设 dmesg:
USB 4-1:使用 ohci_hcd 和地址 16 的新全速 USB 设备
只是说它正在被检测到,并且不是 ohci 阻止了我的访问。
我一直在查看 /proc 的文档,并且“堆栈”对象是 proc 中的一个新对象,我还查看了内核提交以创建它——但是文档没有详细说明 / proc/self/stack 文件——并且因为我直觉地认为它是进程的实际堆栈——但是旧pstack工具给出了不同(并且更可信)的输出。
因此,作为 bash 堆栈的示例
$ cat /proc/self/stack
[<ffffffff8106f955>] do_wait+0x1c5/0x250
[<ffffffff8106fa83>] sys_wait4+0xa3/0x100
[<ffffffff81013172>] system_call_fastpath+0x16/0x1b
[<ffffffffffffffff>] 0xffffffffffffffff
Run Code Online (Sandbox Code Playgroud)
并且,使用 pstack
$ pstack $$
#0 0x00000038cfaa664e in waitpid () from /lib64/libc.so.6
#1 0x000000000043ed42 in ?? ()
#2 0x000000000043ffbf in wait_for ()
#3 0x0000000000430bc9 in execute_command_internal ()
#4 0x0000000000430dbe in execute_command ()
#5 0x000000000041d526 in reader_loop ()
#6 0x000000000041ccde in main ()
Run Code Online (Sandbox Code Playgroud)
地址不同,显然符号根本不一样......
有没有人对差异和/或描述 /proc-stack 中实际显示内容的文档有解释?
我在 HP Pavilion dv7 笔记本电脑上运行 Debian Wheezy,它时不时地死机,需要重新启动。有一次它甚至没有加载操作系统,但不是我在使用它,所以我不知道显示了什么错误。在以前的 Windows 7 安装中,它经常无法加载 Windows,让用户进入“尝试修复”屏幕,这会在几分钟内执行某些操作,然后说 Windows 无法解决问题。
这让我认为存在硬件问题,我想知道是否有什么/var/log地方或其他地方可以提供有关正在发生的事情的一些信息,或者是否可以运行任何测试以及我应该寻找什么。
我发出
grep -i "error" /var/log
Run Code Online (Sandbox Code Playgroud)
完整的输出在这里。我能理解的唯一一条线,我认为可能与问题有关的是
/var/log/dmesg.0:[ 11.632723] [drm:radeon_pci_probe] *ERROR* radeon kernel modesetting for R600 or later requires firmware-linux-nonfree.
Run Code Online (Sandbox Code Playgroud)
但
lspci | grep -i vga
Run Code Online (Sandbox Code Playgroud)
退货
00:02.0 VGA compatible controller: Intel Corporation 2nd Generation Core Processor Family Integrated Graphics Controller (rev 09)
01:00.0 VGA compatible controller: Advanced Micro Devices [AMD] nee ATI Whistler XT [AMD Radeon HD 6700M Series]
Run Code Online (Sandbox Code Playgroud)
并且正在使用System > …
我正在尝试调整此处、此处和此处的说明,以便在我的 Ubuntu 13.04 安装上安装 Flash 播放器的调试版本,以便 Chrome 30.0.1599.66 可以使用它。
有趣的是,我似乎已经安装了官方的 Adobe flash 插件并且可以被 Chrome 使用,所以问题从“安装 flash”变成了“用调试器版本替换常规 flash”。

所以我需要替换libflashplayer.so为从 Adobe下载的那个。听起来很简单。
我选择了这个文件(Linux Flash Player 11.2 Plugin content debugger),解压它并按照指示安装了 Flash Player Local Settings 配置文件。
然后我替换/usr/lib/flashplugin/installer/libflashplayer.so为调试器安装中包含的版本,并重新启动 Chrome。令我惊讶的是,第二个 Adobe Flash Player 列表chrome://plugins消失了!

就好像 Chrome 出于某种原因不喜欢调试器插件一样。我尝试了各种方法来让调试器插件出现,但无济于事:
chmod +rx libflashplayer.sonspluginwrapper -i libflashplayer.so(结果出错no appropriate viewer found for libflashplayer.so)mkdir /opt/google/chrome/plugins; mv libflashplayer.so /opt/google/chrome/plugins如何让 Chrome 识别 …
如果启动,找出可执行文件读取哪些(配置)文件的聪明方法是什么?例如snmpd或sshd。一种选择可能是检查手册页上的CONFIGURATION FILES或FILES部分。我认为可以使用的另一个方法是跟踪系统调用,但至少在snmpd这种情况下,这似乎不起作用:
root@vserver:~# strace 2>&1 /usr/sbin/snmpd | grep snmpd.conf
root@vserver:~#
Run Code Online (Sandbox Code Playgroud)
最后但并非最不重要的是,stat命令也无济于事,因为文件访问时间没有更新。如果它已更新,则可以通过执行find /etc/ -type f -amin 1. 还有其他方法可以找出可执行文件在启动时读取哪些(配置)文件?
我的 Linux Mint 系统(17 Cinnamon,lenovo g565)在工作期间经常挂掉(比如一天 2-4 次)。它通常看起来像一个白色或黑色的屏幕(如果盖子关闭,则关闭)。CPU在这期间似乎有点热(但我昨天清理了风扇以排除过热原因,正常工作时大约为50-55 C)。热键不起作用,我只是关闭电源。在挂起之前检查系统日志并没有给我特定的重复模式来检查。但无论如何,这里有一些(在挂起之前),在消除 nl80211 问题之前还有一些。关于这个问题,我还有两个问题 -第一,第二. UPD:这似乎不是用户软件问题 - 我在启动后离开了车站,但它仍然在几个小时内挂起。我应该怎么做才能做出更具体的诊断并消除挂起的问题?我应该检查任何日志,诊断工具?
从 Debian 的DebugPackage,我知道在/usr/lib/debug创建两部分可执行文件(即,剥离可执行文件的符号并将它们放在单独的文件中)时,可执行文件的调试信息文件会进入。
但是,符号文件将引用源文件,我看不到源文件应该放在哪里。在 Red Hat/Fedora 上,我知道它们位于/usr/src/debug(根据 Fedora 的Packaging:Debuginfo)。
在 Debian 上,我在哪里放置用于调试的源文件?
一个具体的例子是 Crypto++。我有一个补丁,它GNUMakefile添加了以下内容:
IS_DEBIAN = $(shell uname -a 2>&1 | $(EGREP) -i -c "debian|ubuntu|mint")
...
# https://wiki.debian.org/DebugPackage
ifeq ($(IS_DEBIAN),1)
DEBUG_SYM_DIR ?= /usr/lib/debug/cryptopp
DEBUG_SRC_DIR ?= /usr/src/debug/cryptopp
endif
...
Run Code Online (Sandbox Code Playgroud)
然后有一个看起来像这样的符号配方:
symbol symbols:
$(MKDIR) -p $(DEBUG_SYM_DIR) $(DEBUG_SRC_DIR)
-objcopy --only-keep-debug cryptest.exe cryptest.exe.debug
-objcopy --only-keep-debug libcryptopp.so libcryptopp.so.debug
-strip --strip-debug --strip-unneeded cryptest.exe
-strip --strip-debug --strip-unneeded libcryptopp.so
-$(CP) cryptest.exe.debug $(DEBUG_SYM_DIR)/
-$(CP) libcryptopp.so.debug $(DEBUG_SYM_DIR)/
-objcopy --add-gnu-debuglink=$(DEBUG_SYM_DIR)/cryptest.exe.debug cryptest.exe …Run Code Online (Sandbox Code Playgroud) 我在多个地方读到过(例如在这里http://elinux.org/Debugging_by_printing),您可以通过将一个整数回显到 /proc/sys/kernel/printk 来更改控制台日志级别。如果那行得通,第一个整数不应该更改为下面的 5 吗?
[root@localhost printk]# cat /proc/sys/kernel/printk
4 4 1 7
[root@localhost printk]# echo 5>/proc/sys/kernel/printk
[root@localhost printk]# cat /proc/sys/kernel/printk
4 4 1 7
Run Code Online (Sandbox Code Playgroud)
我在多个系统上尝试过这个,但在其中任何一个系统上都没有改变!
我的电路板继续显示以下消息。
终端没有任何输入。
我知道以下消息是怎么回事?(T, g, c, q ...)
造成这种现象的原因是什么?
我该如何解决这个现象?
INFO: rcu_preempt detected stalls on CPUs/tasks: { 3} (detected by 0, t=3936547 jiffies, g=367023708, c=367023707, q=1511)
INFO: rcu_preempt detected stalls on CPUs/tasks: { 3} (detected by 2, t=3972552 jiffies, g=367023708, c=367023707, q=1511)
INFO: rcu_preempt detected stalls on CPUs/tasks: { 3} (detected by 1, t=4008557 jiffies, g=367023708, c=367023707, q=1511)
INFO: rcu_preempt detected stalls on CPUs/tasks: { 3} (detected by 1, t=4044562 jiffies, g=367023708, c=367023707, q=1511)
INFO: rcu_preempt detected stalls on CPUs/tasks: { …Run Code Online (Sandbox Code Playgroud) 在 Debian 上,如何在启动期间激活额外的详细信息?我删除了quiet参数并尝试添加,debug但没有帮助。
我的问题是我的键盘需要 2-3 分钟才能激活,因此它极大地减慢了我的启动速度,因为我需要解锁一个分区。我想在我的键盘被激活时弹出消息,但删除quiet不会打印它。