PDA

View Full Version : Unknown symbol __create_workqueue



valkyrie
17th August 2004, 11:18 AM
hi all,

Encountered a problem & hope someone can help me with it, many thanks.
I was writing a device driver and using the workqueue to perform the bottom half processing.
Compiling was ok (ie. the .ko file was generated). But after i "insmod", this message appears:

Unknown symbol __create_workqueue

Is there something i miss out?
Thanks.

circulus
17th August 2004, 01:51 PM
hi,

one question: has made depmod -ae before modprobe (or insmod) command ?

circulus

valkyrie
17th August 2004, 02:21 PM
hi,

i didn't perform "depmod -ae".

i using fc2 & follow the steps from the linux doc on making kernel modules for precompiled kernels. The following are the steps i used:

1. Copy configuration file of pre-compiled kernel
=================================================
cp /boot/config-`uname -r` /usr/src/linux-`uname -r`/.config


2. Copy makefile of pre-compiled kernel
=======================================
cp /lib/modules/`uname -r`/build/Makefile /usr/src/linux-`uname -r`

3. Run make to update
=====================
/usr/src/`uname -r`/make
(Stop after seeing a lot of CC.)


Should "depmod -ae" be performed and are there other missing steps.
Thank you for your help.

valkyrie
17th August 2004, 04:17 PM
Forgot to mention that i try "depmod -ae", but still NG.
Any clues would be helpful, thanks.

valkyrie
17th August 2004, 05:15 PM
hi all,

I think the problem lies with the MODULE_LICENSE() setting in my kerner driver fiile. Here is the finding:

MODULE_LICENSE("Proprietary") ===> got problem with unknown symbols
MODULE_LICENSE("GPL") ===> ok

Anybody know why the license got such an impact?
Thanks.

circulus
18th August 2004, 12:17 PM
Hi,

maybe some modules in default kernel strictly required 3rd party modules to be in MODULE_LICENCE("GPL") ? Who knows ??? :-) . Somewhat about this maybe written in /usr/src/linux-2.6.7-xx/Documentation ? I don't investigate this.

circulus

valkyrie
19th August 2004, 08:35 AM
hi,

The "create_workqueue" method is a private/internel method of the kernel and it could only be available if the license is set to GPL. I use the default workqueue and could set the license to other than "GPL". Thanks.