小编jan*_*ver的帖子

如何检测显示器何时插入或拔出?

是否有任何当我插上或缩小外部监视器到我的笔记本电脑的DisplayPort的所触发的事件?ACPID 和 UDEV 根本没有反应。

我在英特尔芯片上使用板载图形。是一个类似的讨论,已经有几年了。

我不想使用轮询,但我需要一些配置,根据显示器是否连接自动设置显示设置。

udev acpi multi-monitor monitors

56
推荐指数
4
解决办法
7万
查看次数

如何在 Linux 上以非 root 用户身份维护一个单独的(较新的)glibc / gcc / ... 堆栈

我们的计算集群运行一个非常旧的 CentOS 版本,有一个旧的内核(2.6.18),当然还有旧的库和二进制文件。因为更新整个事情需要在所有节点上进行大量工作,所以这不是一个选项。

我正在尝试编译和使用一个需要C++11更新版本gcc(和/或clang)的程序。因为我根本不想弄乱系统,所以我想在某些本地目录树中以非 root 用户身份执行此操作。

问题是,这gcc需要一个glibc比机器上存在的新的。因此,我需要保持一个独立的,新版本glibc在我的本地lib/所描述的树,可能是在这里

我迷失的地方是,如何将本地库的路径“硬编码”为所有必需的二进制文件,即gccg++等等?将 LD_LIBRARY_PATH 设置为我的本地lib/树会导致所有系统二进制文件不再工作(ELF file OS ABI invalid),因为他们想使用我的新libm.so/libc.so尚未编译它们。

所以,把它包起来:什么是保持一个较新的,局部的开发堆栈(含适当的方式glibcgcc并行等)旧系统没有乱搞的根源?

作为一个附带问题:当涉及到单独的glibc. 对我来说,当我尝试执行任何系统二进制文件(如ls)时,它会导致上述错误。怎么来的?我做错了什么还是这是预期的行为?

libraries centos software-installation not-root-user

10
推荐指数
1
解决办法
8529
查看次数

使笔记本电脑通过键盘和鼠标唤醒

将笔记本电脑(HP Elitebook 8460p)从挂起状态唤醒的唯一方法是按下电源按钮。内置键盘/鼠标和外部键盘/鼠标(通过 USB 连接)都不会唤醒笔记本电脑。

我已经尝试过的事情:

  • /proc/acpi/wakeup.
  • 检查引导日志以找出 USB 鼠标/键盘的 /dev 路径,然后:

    udevadm info -a -p $(udevadm info -q path -n /dev/input/mouse2)
    
    Run Code Online (Sandbox Code Playgroud)

    然后我使用以下命令检查列表中的每个设备:

    cat /sys/devices/.../power/wakeup
    
    Run Code Online (Sandbox Code Playgroud)

    如果可以启用它,如果可以,我会这样做。

  • 我在 BIOS 中启用了 USB 唤醒。

这里有一些你可能需要的输出:

$ uname -a

Linux oliarch 2.6.38-ARCH #1 SMP PREEMPT Tue May 10 08:05:04 CEST 2011 x86_64 Intel(R) Core(TM) i5-2540M CPU @ 2.60GHz GenuineIntel GNU/Linux
Run Code Online (Sandbox Code Playgroud)

# lsusb

Bus 001 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 …
Run Code Online (Sandbox Code Playgroud)

usb laptop suspend

7
推荐指数
1
解决办法
3076
查看次数

解析具有多个子网的 dnsmasq 服务器的服务器主机名

我有一个运行 dnsmasq 的自制 Linux 路由器。它有两个不同的 NIC,通过它们连接客户端;其中一个有子网192.168.1.,一个有子网192.168.2.。我的/etc/dnsmasq.conf看起来像这样:

except-interface=enp1s0
dhcp-range=interface:wlp2s0,192.168.1.10,192.168.1.25,255.255.255.0,48h
dhcp-range=interface:enp0s29f7u4,192.168.2.10,192.168.2.25,255.255.255.0,48h
Run Code Online (Sandbox Code Playgroud)

解析客户端在子网之间工作,但我不能从两个子网解析服务器本身的主机名。如果我使用添加静态规则,address=/name/IP我必须选择一个子网并且 ping(除其他外)在其他子网中不起作用。例如,如果我设置

address=/name/192.168.1.1
Run Code Online (Sandbox Code Playgroud)

然后我可以从192.168.2.子网解析主机名,但 ping 没有应答。我该如何解决这种情况?我希望不必桥接接口或类似的东西。

networking dns dnsmasq

7
推荐指数
1
解决办法
4961
查看次数

通过 ssh 上传文件并在远程机器上执行命令

我试图找到使用 ssh 上传文件的最简单方法,然后在同一 ssh 会话中的远程机器上运行命令进行一些后期处理,这样我就不需要再次登录了。如果可能,上传应该显示一些进度指示器。

到目前为止,我研究了 scp 和 rsync,它们都不能运行任何钩子。(我可以使用--rsync-path参数rsync之前执行一些脚本)但我想做后处理。有没有办法打开 ssh 会话、上传、执行命令并再次关闭它?

ssh file-copy

6
推荐指数
2
解决办法
4139
查看次数

无法填充逻辑卷映射

所以我这里有一个大问题。在我们的服务器上,有一个 LVM 突袭,其中包含一个名为raid. 它包含两卷,securedunsecured和一些未分配空间。今天,我尝试unsecured使用所有剩余的可用空间来删除并重新创建它。我运行了以下命令

lvremove unsecured raid
lvcreate -l 100%FREE -n unsecured raid
Run Code Online (Sandbox Code Playgroud)

它说

logical volumes cannot contain more than 65534 extents.
  logical extent (0) already mapped.
  Couldn't fill logical volume maps.
  logical extent (0) already mapped.
  Couldn't fill logical volume maps.
  logical extent (0) already mapped.
  Couldn't fill logical volume maps.
  logical extent (0) already mapped.
  Couldn't fill logical volume maps.
  Volume group for uuid not found: GC3toI0uhKos5KLH0OJ6uMFppc9pSSyl00000000000000000000000000000001
  Failed to activate …
Run Code Online (Sandbox Code Playgroud)

raid lvm

6
推荐指数
0
解决办法
342
查看次数

防止 XFCE 在关闭/打开笔记本电脑盖时显示显示设置

当我关闭或打开笔记本电脑盖时,xfce 会执行xfce4-display-settings --minimal。我想停下来,但是怎么办?我在/etc/xdg/xfce4.config/xfce4下的设置中没有发现任何内容。

display-settings xfce

5
推荐指数
1
解决办法
1416
查看次数

如何为动态双显示器设置配置 Xorg

我通常有一台笔记本电脑(!)连接到外部显示器。现在我想配置(如果可能,没有任何脚本和/或 xrandr)xorg 使得

  • 如果连接了外接显示器并且笔记本电脑盖打开 -> 两个显示器都扩展
  • 如果外接显示器已连接且笔记本电脑已关闭 -> 仅外接
  • 如果未连接外接显示器 -> 笔记本电脑显示器。

现在,我的/etc/X11/xorg.conf.d/10-monitor.conf看起来像 Arch wiki 中提出的那个现在,我有以下问题:

  • 关闭笔记本电脑盖后启动后,两台显示器仍然处于活动状态(即使我无法将鼠标移出外部桌面)
  • 当我打开盖子时,外部显示器变黑,而我可以将鼠标移出笔记本电脑屏幕。使用 xrandr 关闭和打开外部显示器使其再次工作。
  • 当我打开笔记本电脑,外部显示器变黑并再次关闭笔记本电脑时,X 崩溃了,我不得不重新启动笔记本电脑。(键盘组合不再起作用,我在外部屏幕上只看到一个不动的鼠标箭头)

显示器不能自动正常工作,这很烦人。它是一个英特尔芯片(板载),外部显示器通过 DisplayPort 连接。

我真的不知道在哪个日志文件中寻找什么,所以也许你可以帮我。

xorg laptop multi-monitor

5
推荐指数
0
解决办法
3738
查看次数

如何指定要使用的 libstdc++.so.6

我正在尝试编译我的程序,该程序需要C++11功能和boost比目标机器上安装的更新版本。因此,我使用所有依赖项和 binutils 的树内构建编译并安装gcc 4.9到某个本地目录 ( /secured/local)。然后我下载boost 1.55并运行./boostrap.sh --prefix=/secured/local && ./b4 install安装boost。两种编译都运行良好,gcc -std=c++11也运行良好。

我的程序是使用 cmake 和FindXX.cmake查找文件的常用程序构建的。我正在像这样运行 cmake:

cmake ../source/ -DBOOST_ROOT=/secured/local -DCMAKE_EXE_LINKER_FLAGS='-Wl,-rpath,/secured/local/lib'
Run Code Online (Sandbox Code Playgroud)

它成功地找到了我的新 boost 安装和新版本的 gcc。编译和链接都可以完美地工作。但是,在执行我的程序时,我收到以下错误:

$ ./surface
./surface: /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.20' not found (required by ./surface)
./surface: /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.11' not found (required by ./surface)
./surface: /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.9' not found (required by ./surface)
./surface: /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.19' not found (required by ./surface)
./surface: /usr/lib64/libstdc++.so.6: version …
Run Code Online (Sandbox Code Playgroud)

libraries gcc linker cmake

5
推荐指数
1
解决办法
3万
查看次数

脚本在被 acpi 和 udev 事件调用时行为不正常

我在/etc/acpi/events和 中有以下文件/etc/udev/rules.d

  • /etc/acpi/events/lidclose

    # Pass all events to our one handler script
    event=button/lid
    action=/etc/acpi/monitors.sh
    
    Run Code Online (Sandbox Code Playgroud)
  • /etc/udev/rules.d/80-monitor.rules

    # change monitor settings when monitor is plugged in or o$
    ACTION=="change", SUBSYSTEM=="drm", HOTPLUG=="1", RUN+="/etc/acpi/monitors.sh"
    
    Run Code Online (Sandbox Code Playgroud)
  • 现在,(可执行并由 root 拥有) /etc/acpi/monitors.sh

    #!/bin/sh
    
    # default monitor is LVDS1
    STATE=internal
    INTERNAL=LVDS1
    EXTERNAL=HDMI3
    
    # functions to switch from LVDS1 to VGA and vice versa
    function internal {
        echo "Switching to internal"
        xrandr --output $EXTERNAL --off --output $INTERNAL --auto
        STATE=internal
    }
    function external {
        echo "Switching to …
    Run Code Online (Sandbox Code Playgroud)

udev xrandr acpi

4
推荐指数
1
解决办法
2889
查看次数