Articles of Linux操作系统

Linux如何testingPCIe驱动程序?

我写了一个简单的PCIe驱动程序,我想testing它是否工作。 例如,如果可以写入和读取从设备使用的内存。 我怎样才能做到这一点? 哪些东西应该被certificate呢?

访问内核中用户空间结构的成员会给出错误的值

我看到一个怪异的,我不明白在我的代码的输出。 我有一个头文件中定义的结构。 我在用户空间填充一个结构,然后通过ioctl发送给一个内核模块。 内核模块应该从用户复制它,然后报告用户存储的值。 该结构被定义为: typedef struct Command_par { int cmd; /**< special driver command */ int target; /**< special configuration target */ unsigned long val1; /**< 1. parameter for the target */ unsigned long val2; /**< 2. parameter for the target */ int error; /**< return value */ unsigned long retval; /**< return value […]

使用.cfg文件的指针警告

我尝试使用libconfig来设置ac程序。 有example1.c: int main() { const char **channel; config_t config; config_init(&config); config_read_file(&config, "example.cfg"); if( config_lookup_string(&config,"value.channel",&channel) == CONFIG_FALSE) { printf("Failed to read fields\n"); return 1; } printf("argumente = %s\n", (char *)channel); return 0; } 和example.cfg文件 value = {channel =“hello”; } 如果我编译它 gcc example1.c -lconfig 它说: example1.c:39:3: Warning: delivery of arguments 3 from »config_lookup_string« of a incompatible […]

VirtualBox如何处理来宾Linux的中断?

我正在练习在VirtualBox guest Linux中编写简单的键盘驱动程序。 问题是,我的代码只是注册一个中断处理程序,并打印scancode到日志文件。 而且我不会将这些传入的扫描码发送到任何上层的代码,比如Linux input core 。 insmod ,我可以看到使用dmesg捕获的扫描码。 但为什么我的terminal仍然得到正确的input? terminal不应收到任何东西。 我的代码如下所示: static int __init init_simple_keyboard_driver(void) { free_irq (IRQ_1, NULL); return request_irq (IRQ_1, my_handler, …); } static irqreturn_t my_handler(int irq, void *dev_id) { unsigned char scancode = get_scancode_from_port_0x60(); printk(…scancode…); } 在insmod之后,我可以在内核日志中看到消息。 我的free_irq调用导致一些消息Can't free already freed IRQ 。 (我不知道为什么…它不应该被释放) atkbd司机抱怨说有人要求处理IRQ_1 。 那些扫描码可以正确打印。 [最奇怪的]主动控制台仍然得到正确的键盘input。 因此,我可以使用这个简单的驱动程序来执行一个rmmod 。 […]

在Eclipse的窗口之一的Bash壳

我在一台Linux机器(Ubuntu)下使用了Eclipse,当我编程时,我通常必须使用这个shell – 例如,使用源码控制,执行构build。 有没有办法让gnome-terminal(或者其他任何bashterminal)成为eclipse视图的一部分,所以我可以将它停靠在Eclipse工作区的任何地方?

生成在数据库上执行的SQL查询的日志

我有两个不同的电子商务网站,我需要将一些数据从一个转移到另一个。 两者都运行在Ubuntu的虚拟机中,主机是win7。 现在我想要做的是通过网站cms添加一些数据,并logging所有的SQL查询到数据库,以便我可以了解哪些表参与存储信息,并尝试找出一种方式来传递它。 我意识到这是一个相当普遍的问题,但我search谷歌和所以,正在努力find一种方式做到这一点,我发现一个名为mysql的文件夹,但所有的日志都是空的。 任何关于这个最好的方法的意见将是伟大的。 虚拟框设置是运行与MySQL和phpmyadmin安装的Apache

代码点火器中的多语言pipe理员的Linux权限问题

我创build了一个pipe理面板来为CI应用程序添加新的语言… 这是必要的,因为客户需要放20种语言,他提供了所有需要使用不同语言的页面的文本,而且大多数信息性文本可能会在将来改变。 所以,我创build了pipe理面板来加载Language directory中所有现有目录的列表,并且有一个简单的CRUD来创build新的语言php文件。 所有工作正常,但问题是,我在服务器上的apache user是不同于FTP user ,我无法从ftp中删除文件/文件夹。 要做到这一点,我有几件事情在脑海中: CHMOD新的文件夹和语言的PHP文件到777 {虽然我做它写,但后改为755文件后写入} 将新的语言文件夹/文件放在应用程序文件夹以外的其他地方,这样我就可以777它没有任何伤害.. {看着它,但无法find任何帮助} 不知道该怎么办… 我已经设置了777 language directory让Apache用户在目录中写入 我有一个解决scheme,将项目的所有者从ftp user to apache但是,然后将无法从ftp访问文件,所以我问我的networking人添加apache用户到同一组,所以我可以更改权限为775但是他不确定它是否会工作,并且不会改变apache用户组。 目前主要关注的是…application/language和…application/language/*/* 777是否好? 如果还有其他的select,请让我知道,如果其戈纳工作,我可以改变整个过程 问候

未定义的引用mbind

我没有升级我的Ubuntu从11.04到11.10。 在11.04这一切工作得很好: gcc -fopenmp -g -c -o test.o test.c -I../include gcc -fopenmp -g -o test test.o -lnuma -lm -L../myLib -lmyL 但现在在11.10,它给出了以下错误: ../myLib/libmyL.a (get.o): In function 'get': get.c:(.text+0xa5): undefined reference to `mbind' 其中mbind是http://www.kernel.org/doc/man-pages/online/pages/man2/mbind.2.html 你可以帮我解决这个问题吗? 或者至less告诉我哪里出了问题? 谢谢。

/ proc / slabinfo给了什么信息?

一个应用程序是cosuming内存。 被视为顶部的“内存使用”。 我想知道它的相应的驱动程序是否分配内存,而不是在应用程序退出时释放它。 请问/ proc / slabinfo帮我find了吗?

什么是开发iptables模块的最好方法

我有iptv提供商,通过使用私钥udp组播stream量encryption传递video。 这个时间stream用解码版本的udp2http代理解码。 我想开发iptables模块来“解密”数据包,因为我的电视上的iptv频道swtich在udpstream上更快,而不是http(并获得一些写iptables模块的经验)。 有两种方法可以做到这一点(我认为) 在模块本身写解密algorithm 编写模块将数据发送到用户空间,编写守护进程解密数据包,并将数据包发送回filter。 首先会更快,第二更安全的系统(因为networking堆栈的延迟可能会降低系统的整体性能),并可能有更多的function,易于debugging等。 哪种方法最好? 哪种方式有利有弊?