fedora 9 help with unknown symbols in kernel -- cap_capget cap_capset_set

Skunk Worx skunkworx at verizon.net
Tue Jun 17 01:03:15 UTC 2008

stan wrote:
> Skunk Worx wrote:
>> Hello,
>> I asked over on 'users' a few days ago and no help yet. I hope you 
>> don't mind my repeating the question here.
>> We're a small company using some altera-based boards and our own 
>> driver to control them.
>> Fedora 7 was working well, but we are getting some unknown symbols 
>> while evaluating an upgrade to F9.
>> Any help, comments, suggestions are greatly appreciated.
>> ---
>> John
>> code and issues :
>>   struct sched_param param = {70};
>>   kernel_cap_t effective, inheritable, permitted, all;
>>   cap_set_full(all); // be sure we have enough permissions to call
>>                      // sched_setscheduler.
>>                      // probably only need CAP_SYS_NICE, but let's be
>>                      // "(un)safe"
>>   // save old permissions
>>   cap_capget(current,&effective, &inheritable, &permitted);
>>   // setup permissions to do this
>>   cap_capset_set(current,&all, &all, &all);
>>   // setup realtime priority
>>   ret=sched_setscheduler(current,SCHED_RR,&param);
>>   // restore permissions
>>   cap_capset_set(current,&effective, &inheritable, &permitted);
>> used to be able to do this in f7 / 2.6.23 kernel, now we get:
>> WARNING: "cap_capset_set" [/usr/CSM/src/ONI/oni_driver/oni.ko] undefined!
>> WARNING: "cap_capget" [/usr/CSM/src/ONI/oni_driver/oni.ko] undefined!
>> when building and of course:
>> oni: Unknown symbol cap_capget
>> oni: Unknown symbol cap_capset_set
>> when insmod'ing under f9 / 2.6.25
> Now if you are writing drivers you are sophisticated users.  I would 
> think you have already tried these, but just in case.

We write our own driver, there is no "oni.ko" in Fedora...we add it.

> Have you looked on Fedora 7 kernel source to see if that module is there 
> and if it has those symbols.  And read what they do.

Yes we are porting up from 2.6.23 which had them exported. They are 
still defined in F9 but apparently no longer exported. I think this is 
the right terminology.

I don't actually do the driver code, we have a VMS/*NIX system architect 
and he requested that I ask Fedora/Redhat if they recognized this issue 
or had recommendations.

> Do a find from the top of the kernel source hierarchy  on Fedora 9 to 
> see if oni is still there as a module, just a different path.
> find /usr/src -iname "oni*"

It's our source code, part of our build, so we know where it is :-)

> Do a search for ONI on the web with linux and kernel to see if you find 
> anything related to the change.

Heh, it might find our source but I doubt it.

> The linux kernel lists are archived at gmane.org and you can search them 
> there.  You might find messages as to why this was changed and what 
> replaced it or where it moved.

We've searched for the POSIX cap_* functions, and from what we can tell 
they should be exported, but for some reason no longer appear to be. I 
am not sure if this is the right language to explain the problem, but we 
can't seem to get to the symbols any more.

> Post a message on one of the linux kernel lists, preferably the one 
> relevant to your hardware, asking about this.

I think it's more the kernel API than the hardware, we had the card made 
(actually about 100 of them) and are trying to jump from F7 to F9 
(2.6.23 to 2.6.25) but something appears to have changed on the POSIX 
API or perhaps we are doing something wrong.

If I don't see any more comments I'll have to migrate over the the 
kernel lists, where they will probably ask me to go pester the distro!

Thanks Stan,

More information about the fedora-test-list mailing list