小编ele*_*tro的帖子

Python:检查/ dev/disk设备是否存在

我正在尝试编写python脚本以查明/ dev中是否存在磁盘设备,但它总是产生False.还有其他办法吗?

我试过了

>>> import os.path
>>> os.path.isfile("/dev/bsd0")
False
>>> os.path.exists("/dev/bsd0")
False

$ ll /dev
...
brw-rw----   1 root disk    252,   0 Nov 12 21:28 bsd0
...
Run Code Online (Sandbox Code Playgroud)

python

7
推荐指数
2
解决办法
7213
查看次数

在块层/设备上绕过4KB块大小限制

我们正在开发一种ssd类型的存储硬件设备,它可以一次接收大块大小> 4KB的读/写请求(即使是MB大小).我的理解是linux及其文件系统会将文件"砍掉"成4KB的块大小,这些块大小将被传递给块设备驱动程序,这需要用来从设备中物理填充块(例如,用于写入)

我也知道内核页面大小在此限制中起作用,因为它设置为4KB.

对于实验,我想知道是否有办法实际增加这个块大小,这样我们将节省一些时间(而不是多次4KB写入,我们可以用更大的块大小来做).

有没有FS或任何现有的项目我可以看看这个?如果没有,那么做这个实验需要什么 - 需要修改linux的哪些部分?试图找出所需的困难和资源水平.或者,如果甚至不可能这样做和/或我们甚至不需要这样做的任何原因.任何评论表示赞赏.

谢谢.

linux filesystems linux-device-driver linux-kernel

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

启动时将参数传递给 pyqt 线程

有什么办法可以在线程启动时将参数传递给 QThread (.start) 吗?

我找到了一个在 stackoverflow 中使用 pyqt 线程的示例,但我想知道如何传递参数,以防我希望工作线程处理我传递给它的 run() 函数的数据。

我参考的帖子:用 PyQt 进度条表示忙

编码:

class MyCustomWidget(QtGui.QWidget):

    def __init__(self, parent=None):
        super(MyCustomWidget, self).__init__(parent)
        layout = QtGui.QVBoxLayout(self)       

        self.progressBar = QtGui.QProgressBar(self)
        self.progressBar.setRange(0,100)
        button = QtGui.QPushButton("Start", self)
        layout.addWidget(self.progressBar)
        layout.addWidget(button)

        button.clicked.connect(self.onStart)

        self.myLongTask = TaskThread()
        self.myLongTask.notifyProgress.connect(self.onProgress)


    def onStart(self):
        self.myLongTask.start()

    def onProgress(self, i):
        self.progressBar.setValue(i)


class TaskThread(QtCore.QThread):
    notifyProgress = QtCore.pyqtSignal(int)
    def run(self):
        for i in range(101):
            self.notifyProgress.emit(i)
            time.sleep(0.1)
Run Code Online (Sandbox Code Playgroud)

我想在调用 .start 时传递一个变量,例如

self.myLongTask.start(myvar)
.
.
def run(self, myvar):
Run Code Online (Sandbox Code Playgroud)

但当然,pyqt 不允许这样做。

python pyqt pyqt4 qthread

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

读取 GRUB2 调试日志

我想查看 grub_dprintf() 生成的 GRUB2 调试日志,例如,在 mmap.c:

  grub_dprintf ("mmap", "EFI memory region 0x%llx-0x%llx: %d\n",
        (unsigned long long) desc->physical_start,
        (unsigned long long) desc->physical_start
        + desc->num_pages * 4096, desc->type);
Run Code Online (Sandbox Code Playgroud)

经过一番研究,我发现启用此日志的方法是在 grub 菜单中设置 debug env 变量(我在 grub.cfg 上更改了它,可能不应该这样做)

set debug=all
Run Code Online (Sandbox Code Playgroud)

如何查看日志?grub 日志在启动过程中滚动得如此之快,以至于很难检查。也许有办法在内核启动后检查日志?

我正在使用 CENTOS 7。

grub grub2

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

在 Git 存储库中查找早于特定日期的文件

我正在尝试查找早于过去特定日期的文件,例如,在 Git 存储库中 2 个月未修改的 cpp 源文件。

如果我使用 Linux findshell 命令,我将无法找到它,因为我工作区中的文件标有“git sync”-ed 的日期。

我怎样才能做到这一点?

git

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

pyinstaller:更改应用程序图标

第一次使用pyinstaller,我运行了pyinstaller appname.py --icon ='myicon.ico'。图标文件使用convertico.com进行了转换,并且位于我运行pyinstaller的同一目录中

在dist / appname /目录中,可执行的appname图标仍未更改。我做错什么了吗?规格文件为:

# -*- mode: python -*-

block_cipher = None

a = Analysis(['appname.py'],
         pathex=['/home/admin/appname'],
         binaries=None,
         datas=None,
         hiddenimports=[],
         hookspath=None,
         runtime_hooks=None,
         excludes=None,
         win_no_prefer_redirects=None,
         win_private_assemblies=None,
         cipher=block_cipher)
pyz = PYZ(a.pure, a.zipped_data,
         cipher=block_cipher)
exe = EXE(pyz,
      a.scripts,
      exclude_binaries=True,
      name='appname',
      debug=False,
      strip=None,
      upx=True,
      console=True , icon='myicon.ico')
coll = COLLECT(exe,
           a.binaries,
           a.zipfiles,
           a.datas,
           strip=None,
           upx=True,
           name='appname')
Run Code Online (Sandbox Code Playgroud)

python pyinstaller

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

使用 GCC 为 Linux 设备驱动程序编译 Intel AVX 内在函数

我在 corei7 上的 ubuntu 上运行 gcc 版本 4.8.2。

从谷歌搜索中找到了有关 AVX 内在函数的信息,但我不确定这组内在函数是否可以用于 Linux 设备驱动程序并对其进行编译。

如果可以,这里的任何人都可以告诉我什么是 makefile 的正确设置以及在 c 源中包含哪些头文件以使用 gcc 编译这个 avx?

谢谢。

gcc intel linux-device-driver linux-kernel avx

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

hadoop hdfs块大小与linux文件系统块大小的交互

我知道 hadoop 块大小是 64MB,linux FS 是 4KB。我从阅读中的理解是 hadoop hdfs 在 linux FS 本身之上工作。

hadoop 文件系统如何与 linux 4KB 块大小一起工作?例如,在写入操作期间,64MB 块是否会分解为 4KB 块并保存到磁盘?

hadoop hdfs

2
推荐指数
1
解决办法
444
查看次数

任何 PyQt 圆形进度条?

有人知道如何在 PyQt 上实现循环进度条吗?

另外,我发现了一个现有的代码:http : //sourceforge.net/projects/qroundprogressbar/

但是,它在 C++ 中如何。如何将它用于 PyQt?

更新:使用下面的 QRoundProgressBar 实现,我创建了一个完整的演示应用程序,带有开始按钮来演示 QRoundProgressBar。将 QroundProgressBar 保存在 circleprogressbar.py 中,并在同一目录中为下面的代码创建一个新文件。希望它可以帮助其他人。

from circularprogressbar import QRoundProgressBar
import sys
from PyQt4.QtGui import *
from PyQt4 import QtCore, QtGui, Qt
from time import sleep


class TstWidget(QtGui.QWidget):
    def __init__(self):
        super(type(self), self).__init__()

        self.bar = QRoundProgressBar()
        self.bar.setFixedSize(300, 300)

        self.bar.setDataPenWidth(3)
        self.bar.setOutlinePenWidth(3)
        self.bar.setDecimals(1)
        self.bar.setFormat('%v | %p %')
        # self.bar.resetFormat()
        self.bar.setNullPosition(90)
        self.bar.setBarStyle(QRoundProgressBar.StyleDonut)
        self.bar.setDataColors([(0., QtGui.QColor.fromRgb(255,0,0)), (0.5, QtGui.QColor.fromRgb(255,255,0)), (1., QtGui.QColor.fromRgb(0,255,0))])
        self.bar.setMaximun(100)
        self.bar.setMinimun(0)
        self.bar.setRange(0, 100)
        self.bar.setValue(0)

        button = QtGui.QPushButton("Start", self)

        button.clicked.connect(self.on_start)

        lay = QtGui.QVBoxLayout() …
Run Code Online (Sandbox Code Playgroud)

python pyqt

0
推荐指数
1
解决办法
7046
查看次数