<?xml version="1.0" encoding="koi8-r"?>
<rss version="0.91">
<channel>
    <title>OpenForum RSS: Помогите разобраться с драйвером!</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID9/9792.html</link>
    <description>Добрый день!&lt;br&gt;Попал мне в лапы драйвер клавиатуры на архитектуре Intel.&lt;br&gt;Ниже привела исходники, которые нам выдал преподаватель.&lt;br&gt;Задание состоит в том, чтобы изменить код, написанный под старое второе ядро, так, чтобы драйвер компилировался, как модуль ядра, и работал правильно на новых версиях (3.2, например).&lt;br&gt;Даже не знаю,с чего начать, может, здесь есть люди, которые в этом понимают?)&lt;br&gt;Заранее очень благодарна.&lt;br&gt;&lt;br&gt;/*&lt;br&gt; *  intrpt.c - Обработчик прерывании&amp;#774;.&lt;br&gt; *&lt;br&gt; *  Copyright (C) 2001 by Peter Jay Salzman&lt;br&gt; */&lt;br&gt;/*&lt;br&gt; * Standard in kernel modules&lt;br&gt; */&lt;br&gt;#include &amp;lt;linux/kernel.h&amp;gt;    /* Все-таки мы работаем с ядром! */&lt;br&gt;#include &amp;lt;linux/module.h&amp;gt;    /* Необходимо для любого модуля */&lt;br&gt;#include &amp;lt;linux/workqueue.h&amp;gt; /* очереди задач */&lt;br&gt;#include &amp;lt;linux/sched.h&amp;gt;     /* Взаимодеи&amp;#774;ствие с планировщиком&lt;br&gt;*/&lt;br&gt;#include &amp;lt;linux/interrupt.h&amp;gt; /* определение irqreturn_t */&lt;br&gt;#include &amp;lt;asm/io.h&amp;gt;&lt;br&gt;#define MY_WORK_QUEUE_NAME &quot;WQsched.c&quot;&lt;br&gt;static struct workqueue_struct *my_workqueue;&lt;br&gt;/*&lt;br&gt; * Эта функция вызывается ядро</description>

<item>
    <title>Помогите разобраться с драйвером! (ubob)</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID9/9792.html#45</link>
    <pubDate>Thu, 16 Jul 2015 14:41:06 GMT</pubDate>
    <description>&amp;gt; скажите, по какой причине может быть такое, что ничего не выводится в &lt;br&gt;&amp;gt; syslog во время тестирования этого кода?&lt;br&gt;&lt;br&gt;посмотрите в dmesg&lt;br&gt;</description>
</item>

<item>
    <title>Помогите разобраться с драйвером! (linina)</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID9/9792.html#44</link>
    <pubDate>Mon, 29 Jun 2015 05:55:38 GMT</pubDate>
    <description>Надеюсь, Вы еще обитаете на этом форуме&lt;br&gt;скажите, по какой причине может быть такое, что ничего не выводится в syslog во время тестирования этого кода? &lt;br&gt;</description>
</item>

<item>
    <title>Помогите разобраться с драйвером! (pavlinux)</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID9/9792.html#43</link>
    <pubDate>Wed, 25 Dec 2013 15:48:14 GMT</pubDate>
    <description>&amp;gt;&amp;gt;&amp;gt;&amp;gt; #define SA_SHIRQ IRQF_SHARED &lt;br&gt;&amp;gt;&amp;gt;&amp;gt; Интересный способ портирования устаревших флагов...&lt;br&gt;&amp;gt;&amp;gt; http://lxr.free-electrons.com/source/drivers/staging/rt2860/rt2860.h?v=2.6.32#L232 &lt;br&gt;&amp;gt; http://lxr.free-electrons.com/ident?v=3.0;i=SA_SHIRQ &lt;br&gt;&amp;gt; ну и? если кто-то так сделал (в 2.6.32 при чем, в 3.0 &lt;br&gt;&amp;gt; уже такого безобразия нет), это не значит, что так делать правильно &lt;br&gt;&lt;br&gt;#define - это как косметика, может украсить, а может хелловин получиться. :) &lt;br&gt;&lt;br&gt;&lt;br&gt;</description>
</item>

<item>
    <title>Помогите разобраться с драйвером! (skb7)</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID9/9792.html#42</link>
    <pubDate>Wed, 25 Dec 2013 13:10:21 GMT</pubDate>
    <description>&amp;gt; rmmod kod &lt;br&gt;&amp;gt; &#091;code&#093; &lt;br&gt;&amp;gt; Trying to free already-free IRQ 1 &lt;br&gt;&amp;gt; Fixing recursive fault but reboot is needed!&lt;br&gt;&amp;gt; &#091;/code&#093; &lt;br&gt;&lt;br&gt;Да, я об этом тоже писал. Ну тогда сойдёмся на четверке :)&lt;br&gt;</description>
</item>

<item>
    <title>Помогите разобраться с драйвером! (skb7)</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID9/9792.html#41</link>
    <pubDate>Wed, 25 Dec 2013 13:07:33 GMT</pubDate>
    <description>&amp;gt;&amp;gt;&amp;gt; #define SA_SHIRQ IRQF_SHARED &lt;br&gt;&amp;gt;&amp;gt; Интересный способ портирования устаревших флагов...&lt;br&gt;&amp;gt; http://lxr.free-electrons.com/source/drivers/staging/rt2860/rt2860.h?v=2.6.32#L232 &lt;br&gt;&lt;br&gt;http://lxr.free-electrons.com/ident?v=3.0;i=SA_SHIRQ&lt;br&gt;&lt;br&gt;ну и? если кто-то так сделал (в 2.6.32 при чем, в 3.0 уже такого безобразия нет), это не значит, что так делать правильно&lt;br&gt;</description>
</item>

<item>
    <title>Помогите разобраться с драйвером! (skb7)</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID9/9792.html#40</link>
    <pubDate>Wed, 25 Dec 2013 13:04:49 GMT</pubDate>
    <description>&amp;gt; Всё равно при rmmod глюкать будет, нужно  функциям request_irq и free_irq &lt;br&gt;&amp;gt; вместо NULL &lt;br&gt;&amp;gt; передавать указатель на обработчик..&lt;br&gt;&amp;gt; return request_irq(1, kbd2_isr, IRQF_SHARED, &quot;kbd2&quot;, (void *)kbd2_isr); &lt;br&gt;&amp;gt; free_irq(1, (void *)kbd2_isr); &lt;br&gt;&lt;br&gt;да, всё верно, не досмотрел&lt;br&gt;</description>
</item>

<item>
    <title>Помогите разобраться с драйвером! (pavlinux)</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID9/9792.html#39</link>
    <pubDate>Wed, 25 Dec 2013 10:46:19 GMT</pubDate>
    <description>Всё равно при rmmod глюкать будет, нужно  функциям request_irq и free_irq вместо NULL&lt;br&gt;передавать указатель на обработчик.. &lt;br&gt;&lt;br&gt;return request_irq(1, kbd2_isr, IRQF_SHARED, &quot;kbd2&quot;, (void *)kbd2_isr);&lt;br&gt;free_irq(1, (void *)kbd2_isr);&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;</description>
</item>

<item>
    <title>Помогите разобраться с драйвером! (pavlinux)</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID9/9792.html#38</link>
    <pubDate>Wed, 25 Dec 2013 10:20:20 GMT</pubDate>
    <description>&amp;gt;&amp;gt; Скажем так, препод на тебя забил (как вариант - добрый и понимающий).&lt;br&gt;&amp;gt; Ну, вспоминая ваши слова: &lt;br&gt;&amp;gt;&amp;gt; Думаю на трояк если модуль скомпилиться, на 4 если будет глюкать, и на 5 если за работает. :) &lt;br&gt;&amp;gt; то таки 5 :) ибо на новом ядре компилится и работает. я &lt;br&gt;&amp;gt; бы сказал 4 -- потому что схитрила и выкинула WQ (хотя &lt;br&gt;&amp;gt; тут надо смотреть, какое было задание), плюс портирование кривое. Но таки &lt;br&gt;&amp;gt; догадалась, как можно сделать, и таки работает.&lt;br&gt;&lt;br&gt;rmmod kod &lt;br&gt;&lt;br&gt;&#091;code&#093;&lt;br&gt;------------&#091; cut here &#093;------------&lt;br&gt;WARNING: CPU: 0 PID: 2659 at kernel/irq/manage.c:1342 __free_irq+0x84/0x1b0()&lt;br&gt;Trying to free already-free IRQ 1&lt;br&gt;Modules linked in: kod(O-) usbhid ehci_pci uhci_hcd ehci_hcd usbcore usb_common intel_agp vmxnet3 intel_gtt&lt;br&gt;CPU: 0 PID: 2659 Comm: rmmod Tainted: G        W  O 3.12.3-rt4 #1&lt;br&gt;Hardware name: VMware, Inc. VMware Virtual Platform/440BX Desktop Reference Platform, BIOS 6.00 07/31/2013&lt;br&gt; 00000009 c14332ca f0ca1f0c c1038255 c150244c f0ca1f24 00000a63 c14ffff8&lt;br&gt; 0000053e c106ed74 c106ed74 00000000 f60</description>
</item>

<item>
    <title>Помогите разобраться с драйвером! (pavlinux)</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID9/9792.html#37</link>
    <pubDate>Wed, 25 Dec 2013 09:39:16 GMT</pubDate>
    <description>&amp;gt;&amp;gt; #define SA_SHIRQ IRQF_SHARED &lt;br&gt;&amp;gt; Интересный способ портирования устаревших флагов...&lt;br&gt;&lt;br&gt;http://lxr.free-electrons.com/source/drivers/staging/rt2860/rt2860.h?v=2.6.32#L232&lt;br&gt;</description>
</item>

</channel>
</rss>
