小编Cla*_*dio的帖子

了解SMBIOS中的段组,总线,设备和功能编号

目的

我正在尝试以编程方式找出特定PCIe设备连接的物理插槽.前提是我有卡的PCI-ID肯定会占用一个插槽,解决方案是找出哪一个.

请注意,我只对使用PCI Express总线感兴趣,尽管我认为设备识别/枚举过程与旧PCI相同.

尝试

SMBIOS包含可用的主板插槽信息.可以从linux命令行检查这些信息:

$ sudo dmidecode -t slot
# dmidecode 2.11
SMBIOS 2.7 present.

Handle 0x003A, DMI type 9, 17 bytes
System Slot Information
    Designation: PCIEX16_1
    Type: x16 PCI Express x16
    Current Usage: In Use
    Length: Short
    ID: 1
    Characteristics:
        3.3 V is provided
        Opening is shared
        PME signal is supported
    Bus Address: 0000:03:02.0

Handle 0x003B, DMI type 9, 17 bytes
System Slot Information
    Designation: PCIEX16_2
    Type: x8 PCI Express x8
    Current Usage: In Use …
Run Code Online (Sandbox Code Playgroud)

linux bios pci pci-e

19
推荐指数
1
解决办法
2381
查看次数

虚拟盒和Windows 7主机的Gvim重绘问题

VirtualBox中的Linux guest虚拟机上的Gvim 7.4存在严重的重绘问题:通常当我向上/向下滚动时,显示的文本被破坏(例如,空或带有一些"漏洞").我必须调整大小/重新调整以清理屏幕.我从来没有遇到过与Gvim或Virtualbox类似的问题,但它使得gvim几乎无法使用.

更多信息:

  • Virtualbox主机分发:Windows 7 64位
  • Virtualbox版本:4.3.12,添加了访客
  • Virtualbox guest分发:Linux Mint 17 Qiana 64位Cinnamon
  • Gvim包:vim-gtk(但它也发生在使用vim-gnome)

不知道如何解决这个问题?

linux gtk vim virtualbox cinnamon

17
推荐指数
2
解决办法
3569
查看次数

移动设备上的周期性网络延迟达到峰值

我从服务器每200ms左右实时接收UDP数据包,有时我甚至会在几秒钟内收到数据包.

我把我的UDP ping(从客户端)放到200ms,这使我的网络响应更快,但这都是从实验中学到的.我不清楚为什么会这样.

我想了解节能算法如何在移动设备上工作,因为我认为这就是为什么会发生这种情况.

经过一些调查,我发现到目前为止最好的事情是 http://www.crittercism.com/2014/03/200ms-the-magical-number-for-faster-response-times/

但它没有太多有关该主题的细节,也没有提及进一步阅读.

mobile networking real-time

17
推荐指数
1
解决办法
264
查看次数

克隆包含所有子模块的git仓库

我有一个工作的git存储库,包含几个子模块(通过克隆不同的存储库获得).

现在,我想通过推送或克隆将整个存储库(包含所有子模块)复制到另一台机器上的裸git 存储库中.我很好地丢失了子模块的历史(我只是想保留它们的内容).

这可能吗 ?在我的尝试中,在克隆的存储库中子模块目录为空.

PS我知道这不是正确的工作流程(请参阅创建带子模块的公共存储库),但是不可能更新原始子模块.

git git-push git-clone git-submodules

16
推荐指数
1
解决办法
9809
查看次数

我可以运行docker图像的中间层吗?

当我从存储库中获取一个docker图像时,看到它带有一些带有一些ID的图层但是当我尝试使用docker run运行它时它会告诉我它无法找到它.

我的问题是这样的,我可以运行一个docker图像的某层,我可以通过docker history <image_id>看到,就像古生物学家挖掘找到有趣的东西一样?

我做了什么:

docker pull ruby
Using default tag: latest
latest: Pulling from library/ruby
693502eb7dfb: Already exists 
081cd4bfd521: Already exists 
5d2dc01312f3: Already exists 
54a5f7da9a4f: Pulling fs layer 
168cf3f33330: Pulling fs layer 
021d84fef638: Pulling fs layer 
168c3c107cd1: Waiting 
f001b782a027: Waiting
Run Code Online (Sandbox Code Playgroud)

然后 :

docker run --rm -it 5d2dc01312f3 bash
Unable to find image '5d2dc01312f3:latest' locally
Run Code Online (Sandbox Code Playgroud)

当我拉出一个我已经构建并发布的图像时,这个问题对我有用,我可以清楚地看到一层有大约1.2go的大小,而且我从我用来构建的机器上复制了一些文件的层.图像和下一层我清理并删除了一些文件,因为我正在清理图像,但图像的总大小约为1.5go,这意味着大脂肪层是1.2go是我只是想看看我是否可以窥视那个脂肪层.

docker dockerfile

16
推荐指数
3
解决办法
4120
查看次数

DBus与其他进程间通信方式的区别

当我研究Linux进程间通信时,我知道有一些方法:管道,消息队列,套接字,信号,共享内存,信号量,并且没有名为Dbus的方法。

但是今天,当我研究 Dbus 时,我读到:“D-Bus 是一个进程间通信 (IPC) 系统”(请参阅​​该链接: https: //en.wikipedia.org/wiki/D-Bus

所以我的问题是:DBus和其他IPC方法有什么不同?

c c++ linux ubuntu dbus

15
推荐指数
2
解决办法
8861
查看次数

C++如何在启动时隐藏控制台窗口?

我想知道如何在启动时隐藏控制台窗口.

我想说实话,并告诉你这是一个键盘记录程序,但我不打算破解某人.这是我想做的一个小学校项目,以显示黑客的危险.(我觉得在学校展示这样的东西可能会很酷.)

我希望你能帮助我.

所以.这是我在谷歌上查找的代码.(不要介意关于意图的所有注释.)

#include <cstdlib>
#include <iostream>
#include <Windows.h>

using namespace std;

int main()
{
   /* Note. This program is only created to show the risk of being unaware of hackers.
    * This program should never be used to actually hack someone. 
    * Therefore this program will never be avaiable to anyone, except me.
    */

    cout << "Note. This program is only created to show the risk of being unaware of hackers." << endl;
    cout << "This program should …
Run Code Online (Sandbox Code Playgroud)

c++ windows console-application

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

preempt_rt的缺点

目标硬件平台具有有限的马力,和/或您希望实时作业将最小的开销放在系统上.这是双内核通常比本机抢占系统更好的地方.

从这里:http://www.xenomai.org/index.php/Xenomai : Roadmap#Xenomai_3_FAQ

Preempt_rt确实抢占了整个Linux.以何种方式抢占Linux会对系统造成负担?

与Xenomai相比,FAQ中讨论了preempt_rt.

linux operating-system real-time xenomai preempt-rt

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

Linux中间隔计时器的准确度是多少?

我试图描述Linux上的计时器抖动.我的任务是运行100毫秒的计时器,看看这些数字是如何运作的.

我正在研究多核机器.我使用了setitimer()的标准用户程序,以root身份运行,然后使用处理器亲和性,最后使用处理器亲和性和进程优先级.然后我使用PREEMPT_RT内核运行相同的内容,然后使用clock_nanosleep()运行示例,如PREEMPT_RT页面上的演示代码中所示.在所有运行中,计时器性能非常相似,尽管有变化,但没有真正的差异.

我们的最终目标是稳定的计时器.我经常得到的最好的最坏情况是大约200us.所有案例的直方图都显示出奇怪的行为.首先,我不希望计时器提前开火.但他们这样做.正如您在直方图中看到的那样,我在0偏移的两边都得到了低谷.这些在第二个图中的三个波段中可见.在第一个图中,X轴以微秒为单位.在第二个图中,Y轴以微秒为单位.

我跑了30s测试(即300个计时器事件)100次以生成一些数字.您可以在下图中看到它们.200us大幅下降.所有30000定时器事件时钟偏移都在第二个图表中绘制,您可以在其中看到一些异常值.

X轴以微秒为单位Y轴以微秒为单位

所以问题是,之前有其他人做过这种分析吗?你有没有看到同样的行为?我的假设是RT内核可以帮助重载系统,但在我们的例子中,它无助于消除定时器抖动.那是你的经历吗?

这是代码.就像我之前说过的,我修改了使用clock_nanosleep()函数的PREEMPT_RT站点上的示例代码,因此我不会包含我的最小更改.

#include <signal.h>
#include <stdio.h>
#include <string.h>
#include <sys/time.h>
#include <stdlib.h>

#define US_PER_SEC 1000000
#define WAIT_TIME 100000
#define MAX_COUNTER 300

int counter = 0;
long long last_time = 0;
static long long times[MAX_COUNTER];
int i = 0;

struct sigaction sa;

void timer_handler(int signum)
{
    if (counter > MAX_COUNTER)
    {
        sigaction(SIGALRM, &sa, NULL);
        for (i = 0; i < MAX_COUNTER; i++)
        {
            printf("%ld\n", times[i]);
        }
        exit(EXIT_SUCCESS);
    }

    struct timeval t;
    gettimeofday(&t, NULL);

    long long elapsed = …
Run Code Online (Sandbox Code Playgroud)

c linux real-time timer preempt-rt

13
推荐指数
1
解决办法
2071
查看次数

如何在Cygwin上安装CMake?

我使用Cygwin有些困难.我需要该编译器使用Netbrains的CLion IDE.你能解释一下如何通过cygwin-terminal安装CMake吗?谢谢 ..

windows cygwin cmake clion

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