d(¬,¬)b

GNU, Linux, Arch, Matematik, Fizik

Eclipse, xrandr, radeon, fglrx ve Dahasi

leave a comment »

Eclipse’le bir sorun yasiyorum, surada bahsettim: http://stackoverflow.com/questions/15165485/scrollbar-in-eclipse-gui-doesnt-exist

Soyle bir ozet geceyim:

Eclipse’i kullanirken (gerek depodakinde gerekse ADT icindekinde) bazi pencerelerde scrollbar olmadigi icin asagidaki secenekleri goremiyorum. Bunun Eclipse’in GNU/Linux surumlerinde ve 1366×768 cozunurlukte (ve tabii ki daha dusuk cozunurluklerde) genel bir sorun oldugunu ogrendim. Ilk denedigim sey Tweak Tool araciligi ile yazi tipi boyutlarini kucultmek idi ancak bu degisiklik bahsettigim (link’teki gorseldeki) pencereyi pek etkilemedi. Daha sonra “Yahu ben neden cozunurlugu degistirmiyorum?” diye dusundum. Sistem ayarlarinin bana sundugu en yuksek cozunurluk elbette ki 1366×768 idi ancak GNU/Linux’ta cozunurlugu xrandr ile degistirebiliyoruz. Simdi buradan sonra anlatacaklarim teknik ayrintilara giriyor, yaptigim her islemi buraya yazacagim ki benim gibi bu sorunla karsilasan biri varsa denesin ve basarili olursa lutfen asagiya bir yorum birakmayi unutmasin.

Gecenlerde de yazdigim uzere AMD’nin open source surucusunden resmi surucuye (proprietary driver) gecmistim. O yuzden asagida denediklerimi ilk olarak fglrx'le denedim.

Cozunurlugu degistirmek icin oncelikle bilmemiz gereken seylerden biri ekranin ne kadar cozunurlugu destekledigi.

xrandr

Bu komutla ekranin hangi cozunurluk araligini kabul ettigine bakiyoruz, bendeki cikti su:

Screen 0: minimum 320 x 200, current 1366 x 768, maximum 1600 x 1600
LVDS connected primary 1366x768+0+0 (normal left inverted right x axis y axis) 344mm x 194mm
1366x768 59.6*+
1360x768 59.6
1280x768 59.6
1280x720 59.6
1024x768 59.6
1024x600 59.6
800x600 59.6
800x480 59.6
640x480 59.6
DFP1 disconnected (normal left inverted right x axis y axis)
CRT1 disconnected (normal left inverted right x axis y axis)

3. satirdan itibaren gorulen cozunurluk degerleri, sistem ayarlarinda da gorebildigimiz degerler. LVDS dedigimiz seye ekranin adi diyelim. Bunu kullanacagiz. Ilk satirda da gordugumuz uzere benim ekranim 320 x 200’den 1600 x 1600’e kadar destekliyor cozunurlugu. (Bu degerler kullandiginiz ekran karti surucusune gore degisir. Ekran cozunurlugunu sistem ayarlarinda gorebildiginiz “desteklenen” degerlerden baska bir degere ayarlamak istiyorsaniz o degeri hem donanimin hem de surucunun desteklediginden emin olmaniz gerekiyor.) Ben ekran cozunurlugunu 1600 x 900 yapmak istedim. Bunun icin oncelikle “modeline”in ne oldugunu bulmam gerekiyor.

cvt 1600 900 60

Bu komutla istedigimiz degerlerdeki (60 = refresh rate, LCD ekran icin) modeline’i aliyoruz. Cikti su:

# 1600x900 59.95 Hz (CVT 1.44M9) hsync: 55.99 kHz; pclk: 118.25 MHz
Modeline "1600x900_60.00" 118.25 1600 1696 1856 2112 900 903 908 934 -hsync +vsync

Simdi bir mode eklememiz gerekiyor, modeline’i burada kullanacagiz. Bunu da su kodla yapiyoruz:

xrandr --newmode "1600x900_60.00" 118.25 1600 1696 1856 2112 900 903 908 934 -hsync +vsync

Bu asamada tekrar xrandr komutunu girdigimizde en asagida ekledigimiz mode’u gorebiliyoruz. Simdi bu mode’u eklememiz gerekiyor. Bunu da addmode secenegi ile yapiyoruz. O da soyle:

xrandr --addmode LVDS 1600x900_60.00

Iste saatlerdir beni ugrastiran problem de tam da burada basladi. Cunku bu asamada aldigim hata elimi kolumu bagliyor ve Google’daki hicbir aramam sonuc getirmedi. Ama daha sonra bu problemin ekran karti surucusuyle alakali oldugunu ogreniyorum cunku radeon modulu ile bu komutta sorun yasamiyorum. fglrx moduluyle ise aldigim hata su:

X Error of failed request: BadMatch (invalid parameter attributes)
Major opcode of failed request: 141 (RANDR)
Minor opcode of failed request: 18 (RRAddOutputMode)
Serial number of failed request: 39
Current serial number in output stream: 40

Eger bu hatayi almasaydim su komutla ekran cozunurlugunu degistirebilecektim:

xrandr --output LVDS --mode 1600x900

Oldukca basit anlattiysam ve birileri bu adimda basarili olduysa o birileri cok sansli ancak ben degildim. O sebeple sansimi bir de radeon ile denemek istedim ve open source surucuye geri donus yaptim. Tabii ki bu geri donus kolay olmuyor. Bu adimdan sonrasi fglrx‘i (catalyst) AUR’dan yaourt ile catalyst-hook olarak yukleyen ve GRUB2 kullanan 64-bit Arch Linux kullanicilarini ilgilendiriyor. (Oldukca spesifik bir kullanici tanimi oldu ama catalyst‘i manuel yukleyen arkadaslarin yolu degil bu yol.)

catalyst-hook‘u sistemden kaldirmak su sekilde ilerliyor, seri ozet geciyorum.

Oncelikle, desteklenmeyen KMS’yle ilgili yaptigimiz ayari duzeltiyoruz:

nano /boot/grub/grub.cfg

Kernel satirinda nomodesetting'i bul ve sil.

Daha sonra /etc/modprobe.d ve /etc/modules-load.d altindaki conf dosyalarini duzenliyoruz:

nano /etc/modprobe.d/radeon.conf

radeon'un basindaki comment'i veya blacklist'i kaldir.

nano /etc/modules-load.d/fglrx.conf

fglrx'in basina comment veya blacklist ekle.

/etc/mkinitcpio.conf‘u duzenliyoruz:

nano /etc/mkinitcpio.conf

<HOOKS satirindan fglrx'i kaldir.

catalyst-hook‘u yukledigimizde aticonfig --initial ile bir xorg.conf dosyasi olusturmustuk. Bunu yedekleyip silmemiz gerekiyor:

cd /etc/X11

cp xorg.conf xorg.conf.fglrx

rm xorg.conf

Son olarak catalyst-hook‘u kaldiriyoruz.

yaourt -R catalyst-hook

Sonra bi’ reboot cakiyoruz ve VESA surucusu yukluyse GNOME Shell fallback modunda aciliyor. Tabii ki X’i baslatmadan once open source surucuyu yukluyoruz.

pacman -S xf86-video-ati ati-dri mesa-libgl

Daha sonra asil amacimiz cozunurlukle ugrasmak oldugu icin /etc/X11/xorg.conf.d altina radeon ile ilgili bir conf dosyasi atiyoruz:

nano /etc/X11/xorg.conf.d/20-radeon.conf

Buraya da sunlari ekleyip kaydediyoruz:

Section "Device"
Identifier "Radeon"
Driver "radeon"
EndSection

Bu asamadan sonra X’i baslatip en bastaki kisma geri donebiliriz. Oncelikle xrandr ciktim ilkine gore farkliydi. Maksimum cozunurluk degerleri 8000’lerde geziyordu. xrandr ile yazdigim 3 satir kodun 3’u de sorunsuz bir sekilde calisti fakat cozunurlugu 1600 x 900 yaptigimda ekranda hicbir sey goremez oldum. Yani ISE YARAMADI.

Bunun disinda baska bircok secenek daha denedim xrandr ile. Mesela mode eklemek yerine, istedigim cozunurlugu direkt olarak verebiliyorum.

xrandr --fb 1600x900

Ama bu kodun yaptigi tek sey cozunurlugu ekrana sigdirmadan buyutmek, yani bilgisayar ekraninin boyutu -dogal olarak- ayni kalirken sanal ekran genisliyor ve ekranin disina tasiyor. Eclipse’te goremedigim secenekleri gorurken bu sefer de pencerenin altini goremiyorum.

radeon‘la bu kadar cok sey denemedim aslinda. Mesela ekran cozunurlugunu 1600 x 900 yapmak yerine 1366 x 900 yapmayi radeon‘la denemedim cunku sonucun degismeyeceginden emin gibiydim. Tek ihtiyacim olan sey 900 aslinda, 1366 aynen kalabilirdi ama su an hicbir sekilde cozunurlugu istedigim degere getiremiyorum, getirsem de ekranin disina tasiyor.

Elbette bu denemelerden sonra isik hiziyla tekrar catalyst-hook‘a dondum. Cunku radeon sag olsun, bilgisayar 68 dereceyle acilisi yapiyor. Su an arka planda video acik oldugu halde sicaklik 59 derece, pretty cool.

Gece boyu ugrasip kafami siktigim bu mesele maalesef cozumsuz kaldi, o sebeple “Sorun – Çözüm” kategorisine gitmiyor. Simdilik pes etmis olsam da baska bir zaman, baska bir yerde bu isin pesini birakmayacagim kesin. Ama simdilik sunu yapabilecegimi dusunuyorum. Bir pencerede cozunurluk yuzunden tum secenekleri goremezsem xrandr --fb 1366x900 ile secenekleri gorup xrandr --fb 1366x768 ile ozgun cozunurluge geri donerek pencerenin en altindaki next’e tiklayabilecegim. Pretty pretty much amelelik ama beni bunlarla ugrastiranlar utansinlar diyorum ve yazinin basinda da dedigim gibi, eger birileri bu adimlardan birinde bile basarili olursa lutfen asagiya kucuk bir not biraksin. Terzi kendi sokugunu dikemezmis ama bilgi paylasa paylasa cogalir, sorunlar da bu sekilde cozulur. Inada bindim, bir kisiyi bile bu dertten kurtarirsam kendimi dondurmayla odullendirecegim. Tabi benden baska gerizekali varsa 6 saat boyunca bununla ugrasan, ona da bir dondurma ismarlamam icap eder. Sevgiyle ve bas agrisiyla kalin.

radeon‘dan fglrx‘e reverse engineering ile donuyoruz, isik hiziyla.

Screenshot from 2013-03-02 06:43:34

Written by jeaquares

02 Mart 2013 08:00

Arch Linux, Donanım, GNU/Linux, Yazılım kategorisinde yayınlandı

Bir Cevap Yazın

Aşağıya bilgilerinizi girin veya oturum açmak için bir simgeye tıklayın:

WordPress.com Logosu

WordPress.com hesabınızı kullanarak yorum yapıyorsunuz. Log Out / Değiştir )

Twitter resmi

Twitter hesabınızı kullanarak yorum yapıyorsunuz. Log Out / Değiştir )

Facebook fotoğrafı

Facebook hesabınızı kullanarak yorum yapıyorsunuz. Log Out / Değiştir )

Google+ fotoğrafı

Google+ hesabınızı kullanarak yorum yapıyorsunuz. Log Out / Değiştir )

Connecting to %s

%d blogcu bunu beğendi: