Linux ATI/AMD drivers: How to get it to compile

As you may have noticed, AMD has stopped supporting their “older” cards, calling them all “legacy” even if your card is just a few years old. This leads to their software not compiling on newer kernels. It gave me hours of grief on Fedora 17..
I eventually got it to work, and I thought I’d publish my findings.. Here are the tips on how to get it to compile.

First download ATI/AMD drivers from their sites, run the “amd….run” file, which will eventually fail.

It might complain of several things (see /usr/share/ati/fglrx-install.log file)

1) that it cannot find version.h

For this, I had to type this command:
# ln -s /lib/modules/3.7.3-101.fc17.x86_64/build/include/generated/uapi/linux/version.h /lib/modules/3.7.3-101.fc17.x86_64/build/include/linux/version.h

Or, here is a version you can copy and paste:
ln -s /lib/modules/`uname -r`/build/include/generated/uapi/linux/version.h /lib/modules/`uname -r`/build/include/linux/version.h

Of course, edit the above line to your liking.. To find out your curent kernel version, do a “uname -a”

Now go into it source directory and attempt to compile it again..
# cd /lib/modules/fglrx/build_mod
# ./make.sh

2) That there was something wrong with “do_mmap” call.

For that, you need to patch a file, because apparently do_mmap and do_unmmap functions are renamed now. Download it here..

Save this patch file, and do a “patch < 3.5-do_mmap.patch" as root. It should just say "Hunk .. patched" or something. Iif it gives you errors, check the top 2 lines of the patch file to make sure they correspond to where you have your ATI driver source located - mine are at /lib/modules/fglrx. 3) It might still complain about VM_RESERVED

Well, VM_RESERVED went out the window with the new kernels.. Instead, edit that file that it cannot compile, and replace all the VM_RESERVED you see with this:
VM_DONTEXPAND | VM_DONTDUMP

so , for example,
vma->vm_flags |= VM_SHM | VM_RESERVED;
becomes:
vma->vm_flags |= VM_SHM | VM_DONTEXPAND | VM_DONTDUMP;

I just used gedit to do this.. About 12 changes altogether.

4) That struct dev_archdata’ has no member named ‘acpi_handle’

For this, you need a small patch, Download it here. Then do the usual thing, that is,
patch < fix-build-kernel-3.8.patch There.. that should do the trick.. Good luck. Now compile it again.. # cd /lib/modules/fglrx/build_mod
# ./make.sh
# cd ..
# ./make_install.sh

I hope the frustration leaves some hairs on your head after all this.. Next time, buy NVIDIA.

Linux Scanning: How to remotely scan from multi-function printer

If you have a multi-function printer, for example, I have a samsung,
and you wish to remotely scan documents placed on that machine to your linux desktop,
you first have to install all sane-backends.
Once done, go into /etc/saned.d/pixma.conf
and add this at the end:
bjnp://192.168.1.222:9100

(where 192.168.1.222 is the printer/scanner’s IP address)..

Once done, try xsane or “simple scan” and they should now find the scanner..
Enjoy..

Turkçe Harfli dosyaları uluslararası harflere çevirmek

Türkçe dosyalarla dolu bir klasör kopyaladığınızda, dosya isimlerindeki Türkçe harfler Linux da size sorun yaratabilir. Ekteki program, bu gibi dosyaları en yakın ASCII-7 harfe dönüştürür, yani, ı yı i, ğ yi g, ü yü u gibi değiştirmeler yapar.

Kurulum: path de herhangi bir yere koyun (mesela /usr/local/bin) sonra dosyaların oldugu klasöre geçin ve çalıştırın:
$ unturkish.rexx

NOT: Rexx de yazıldığından “oorexx” in kurulumunu gerektirir. Bunu Fedora ve türevlerinde kurmak için:
# yum install oorexx oorexx-devel
komutunu kullanabilirsiniz.

İndirme linki:
http://www.kalfaoglu.com/unturkish.rexx

Benim karşıma çıkan dosyaların isimlerini sorunsuz olarak değiştirmektedir. Farklı bir kodlama ile kaydedilmiş dosyalarınız varsa, lütfen bildirin.