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

stan eiqep_eiwo_y at cox.net
Tue Jun 17 01:53:12 UTC 2008


Skunk Worx wrote:
> 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.
>
I misunderstood.  I thought you were linking a kernel module and it 
wasn't finding symbols.

[snip]
> 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.
>
>
I think you are saying that they are no longer in a header file.  Can 
you use the hidden definition from the kernel module where they are 
defined?  That is, redefine them the same way as where they are used but 
not exported.  There shouldn't be any conflicts as you have checked that 
already.  :-)  It is a kludge, but should work well enough until you can 
get them back in a header file.
> 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.
Your description is what I meant.  As I understand it, they are very 
strict now in accountability for changes in the kernel.  You should be 
able to find who made the change and why.  Seems more likely to me that 
a change was made for another reason and this is a side effect.  Has the 
definition of POSIX changed recently?
>
> 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!
I don't follow it, but there might be a Fedora/RedHat kernel list.
>
> Thanks Stan,
> John




More information about the fedora-test-list mailing list