fglrx: Unknown symbol verify_area

I just upgraded to linux 2.6.14, which seems to work fine here. Finally, the ipw2200 driver got integrated, so I don’t have the possibility to forget it anymore :)

In Linux 2.6.14 though, developers have decided to finally remove verify_area(), which was deprecated since a while and superceded by access_ok(). This has the drawback of breaking ATI’s proprietary drivers, as as many proprietary vendors, they didn’t move their ass to replace the deprecated stuff they use, before it was too late. So with 2.6.14, modprob’ing fglrx gives:

fglrx: Unknown symbol verify_area

I wrote a little module that puts back this symbol, so I can still use the stupid proprietary driver. Get it there. Now ATI, please do us a favor and update your driver.

  •  
  •  
  •  
  •  
  •  

21
Leave a Reply

avatar
21 Comment threads
0 Thread replies
0 Followers
 
Most reacted comment
Hottest comment thread
19 Comment authors
BandiSimp DawgDarren ColemanmrkKarel Vanthuyne Recent comment authors

This site uses Akismet to reduce spam. Learn how your comment data is processed.

  Subscribe  
Me notifier des
Guille
Invité
Guille

Thanks for your module, it worked for me…I really hate ati drivers…I think I’ll buy a nvidia card next time.

chun
Invité

great! thanks very much for this workaround! woohoo!

chun

Colin
Invité

I think I’ll buy a nvidia card next time
I personnaly think nvidia’s drivers are worse than ATI’s ones, because nVidia’s X driver relies on the kernel driver to load. Which means no X if for some reason the kernel driver can’t load. ATI’s drivers on the other hand, still run X although with no openGL direct rendering, if the kernel driver can’t load.

Also, r300.sourceforge.net is progressing nicely and we’ll soon have free (as in freedom) drivers for ATI cards.

als
Invité
als

How do you install the patch ?
after i extract the tar and run make i get.

CC /root/verify_area/src/verify_area.mod.o
/root/verify_area/src/verify_area.mod.c:9: error: variable `__this_module’ has initializer but incomplete type
/root/verify_area/src/verify_area.mod.c:10: error: unknown field `name’ specified in initializer
/root/verify_area/src/verify_area.mod.c:10: warning: excess elements in struct initializer
/root/verify_area/src/verify_area.mod.c:10: warning: (near initialization for `__this_module’)
/root/verify_area/src/verify_area.mod.c:11: error: unknown field `init’ specified in initializer
/root/verify_area/src/verify_area.mod.c:11: warning: excess elements in struct initializer
/root/verify_area/src/verify_area.mod.c:11: warning: (near initialization for `__this_module’)
/root/verify_area/src/verify_area.mod.c:9: error: storage size of `__this_module’ isn’t known
make[3]: *** [/root/verify_area/src/verify_area.mod.o] Error 1
make[2]: *** [modules] Error 2
make[2]: Leaving directory `/usr/src/linux-2.6.14-ck1′
make[1]: *** [all] Error 2
make[1]: Leaving directory `/root/verify_area/src’
make: *** [all] Error 2

Jason Scheirer
Invité

This also fixes proprietary management modules for Dell PowerEdges! Thanks!

GF@GFcyb.org
Invité

the commands (as root) to compile and install this verify_area module is:
cd /usr/src/
make all
make install

the goal is to have a file named « verify_area.ko » into the kernel module directory « /lib/modules/2.6.14/extra/ ».
now just reboot and check if the new module get loaded on loading of the fglrx ATI Radeon driver (if not, just force-load it, adding a line in with /etc/modules ).
bye from Ferrara, Italy
GF

Perkins
Invité
Perkins

Best way to fix this is probably to update the driver yourself. Just cd to /lib/modules/fglrx/build_mod then run

perl -pi -e ‘s/verify_area/access_ok/’ firegl_public.c drm_os_linux.h

(Or just use a text editor on firegl_public.c and drm_os_linux.h and manually change verify_area to access_ok for all occurences in those files..)

.. Worked for me, anyhow.

sinister
Invité
sinister

man i just spent the past 3 days screwing with the kernel to get this work and then i finally find this.

i love you.

churib
Invité
churib

you can also change the name of the function in firegl_public.c …
maybe its easier ;)

Chady
Invité

Nice patch.

Alternatively, instead of messing with the kernel, I patched the driver itself.

since verify_area() and access_ok() have the same signature, you can change the two occurences of verify_area() to access_ok() in :

drm_os_linux.h: line 78
firegl_public.c: line 1478

and recompile the module.
Works like a charm here.

Chady
Invité

I noticed that, but since I’m not familiar with the kernel internals, I tried this at first and it worked.

but this can simply be solved, and here’s a patch for firegl_public.c:

http://chady.net/data/fglrx.patch

I also noticed that the macro in drm_os_linux.h isn’t used anywhere, so it can be skipped.

Thanx for pointing this out.

metro
Invité
metro

« Me too » – thank you, worked for me after having been confused over half an hour about the misfunction of the ATI-Thing.
regards,
w.f.

Ralf Moger
Invité
Ralf Moger

Hey everyone,

Ahh, looked all day long for the right answer. Thanks!

But I’ve one question to all ATI-users:
I’ve really hard problems with my ATI Radeon.
fglrxinfo puts out the correct vendor (ATI), render (RADEON) and version string. But everytime, when I switch to the textconsole and try to switch back to X, everything’s locked. Can’t use the mouse, keyboard and see only the half of my screen. It works fine, when I kill X and start it from the textconsole. Then, there’s no problem to switch between X and the textconsole.

I realy do not undestand that!

kernel: 2.6.13.2
CONFIG_AGP=m
CONFIG_AGP_SIS=m
CONFIG_DRM=n
CONFIG_DRM_RADEON=n

The framebuffer is off.

Can s.o. help me?

Thank you, Ralf

Ramon
Invité

Your module works excellent.
However sadly I’m missing two extra symbols that are apparently no longer present in 2.6.14

fglrx: Unknown symbol register_ioctl32_conversion
fglrx: Unknown symbol unregister_ioctl32_conversion

So for me it’s back to 2.6.13 I’m afraid
Thanx anyway,

Ramon

Karel Vanthuyne
Invité

Thanks a lot for your module!

I had trouble installing DELL’s Openmanage Server Administrator software on a server due to the missing verify_area symbol in a 2.6.15 kernel.

Installed you module and hey: it works!

Hopefully DELL will stop using this deprecated symbol soon.

Thanks,

Karel

mrk
Invité
mrk

It fixed Paragon NTFS for Linux 3.0 under gentoo 2.6.15 too!

Thanks!

Darren Coleman
Invité

Awesome, this fixes Dell OMSA 4.5 for Redhat 9.0 as well.

Thanks!

Simp Dawg
Invité
Simp Dawg

I’m excited about trying out the patch you created, but I’m a new Linux user and on the road a lot away from my users group; thus, I’m stuck. I don’t want to screw up my system when I enter the terminal mode as root. Do I need to first pull up some set of text entries to insert the patch in a specific chronology, or do I just log in as root then paste the body of the patch text in its entirety as you’ve typed it? Forgive my level of understanding. We all had to start somewhere; for me it’s with a Linux exclusive laptop. Thanks Gurus

Bandi
Invité
Bandi

I don’t think you have to blame ATI. Those guys maintaing kernel version 2.6 have no sense of responsibility at all. I’ve run into this problem many-many times that symbols present in one version are removed from the next, new symbols added, etc. So you can’t get everything working since one of your cards needs 2.6.x (exactly) and your other card needs 2.6.y.
Older kernel were much more predictable than this shit.

Thank’s for the patch anyway, I could get my USB WLAN adapter to work under 2.6.14

news for few, stuff no-one cares about