2011-01-28

Ethernet kartının arızasının tespiti

Bilgisayarın birinde ethernet kartı çalışmıyordu. Nedeni incelemek istedim. Önce ethernet kartının MAC adresi bana biraz garip göründü. Daha önce hiçbir MAC adresinin FF:FF ile başladığını görmemiştim. MAC adresi üreticisini sorgulamak için kullandığım şu sayfa da bana böyle bir şey olamayacağını söyledi. Sonra elimdeki kayıtlara bakarak bu bilgisayarın ağ kartının MAC adresinin ilk zamanlarda FF:FF ile başlamadığını gördüm. Eskiden 00:03 ile başlıyormuş. Windows'un ayarlarında bu değişime sebep olacak birşey bulamadım. Ama bir de bir linux dağıtımı ile duruma göz atmak istedim.

Elime geçen ilk live CD Lubuntu ile bilgisayarı açtım. İlk olarak
ifconfig -a
ile bilgisayardaki ağ arayüzlerini listeledim. Bilgisayarda iki ethernet kartı vardı ama ifconfig çıktısında arızalı kartla ilgili birşey listelenmedi. Arından lspci ile PCI veriyolundaki cihazları listeledim. Burada iki ethernet kartı için çıkş vardı, ama sorunun kaynağına götürcek önemli bir bilgiye rastlamadım.

$ sudo lspci -s 01:08.0 -v
01:08.0 Ethernet controller: Intel Corporation 82801BA/BAM/CA/CAM Ethernet Controller (rev 03)
    Subsystem: Intel Corporation Device 3013
    Control: I/O+ Mem+ BusMaster- SpecCycle- MemWINV+ VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx-
    Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
    Interrupt: pin A routed to IRQ 11
    Region 0: Memory at fe9ee000 (32-bit, non-prefetchable) [size=4K]
    Region 1: I/O ports at de80 [size=64]
    Capabilities: [dc] Power Management version 2
        Flags: PMEClk- DSI+ D1+ D2+ AuxCurrent=0mA PME(D0+,D1+,D2+,D3hot+,D3cold+)
        Status: D0 PME-Enable- DSel=0 DScale=2 PME-
    Kernel modules: e100

Bundan sonra da dmesg ile çekirdek mesajlarına baktım. İlk kullandığım filtre eth ile birşey bulamadım. Daha sonra ethernet kart(lar)ının kullandığı kernel modülü (driver) adı e100'ü kullandım.
$ dmesg | grep -i e100
[    0.147376] pci 0000:01:08.0: Firmware left e100 interrupts enabled; disabling
[    0.147414] pci 0000:01:0a.0: Firmware left e100 interrupts enabled; disabling
[    2.453617] e100: Intel(R) PRO/100 Network Driver, 3.5.24-k2-NAPI
[    2.453630] e100: Copyright(c) 1999-2006 Intel Corporation
[    2.454160] e100 0000:01:08.0: PCI INT A -> Link[LNKE] -> GSI 11 (level, low) -> IRQ 11
[    2.475976] e100: 0000:01:08.0: e100_eeprom_load: EEPROM corrupted
[    2.499144] e100 0000:01:08.0: PCI INT A disabled
[    2.499187] e100: probe of 0000:01:08.0 failed with error -11
[    2.499663] e100 0000:01:0a.0: PCI INT A -> Link[LNKG] -> GSI 11 (level, low) -> IRQ 11
[    2.523051] e100 0000:01:0a.0: PME# disabled
[    2.567253] e100: eth0: e100_probe: addr 0xfe9ef000, irq 11, MAC addr 00:02:b3:98:7f:08
Ve burada anahtar bilgiye ulaştım! Yukarıda kırmızı ile işaretlediğim yerde bir EEPROM bozulmasından bahsediyor. Demek ki MAC adresinin FF:FF ile başlamasının sebebi de buymuş. Böyle bir bilgiye Windows ile (üçüncü parti araç kullanmadan) asla ulaşamazdım. Bu, daha önce de başıma gelmişti. Bazen önemli bir donanım bileşeninin arızası bilgisayarın düzgün çalışmasını engelliyor. Ancak Windows bunu doğru bir şekilde haber vermiyor. Ama linux dmesg kayıtları bu iş için süper!

Bu ethernet kartı on-board olduğu için değiştirme şansım yok. EEPROM'u tekrar programlama şansım var mıdır acaba? Google amca'ya sormak gerek...

Ek (22.08.2011)
Denemedim ama Linux tarafında bir yarabandı çözümü varmış.
/etc/modprobe.d/options
dosyasına
options e100 eeprom_bad_csum_allow=1
satırını ekleyince ve ardından
sudo update-initramfs -u
yapınca çalışacakmış.

2011-01-17

Virtualbox sanal makinelerde Java sorunu

Virtualbox'ta Windows XP SP2 yüklü bir sanal makinede Java kullanımıyla ilgili sorun yaşıyordum. javaw.exe prosesi, %100 işlemci kullanarak java uygulamasının başlamasını engelliyordu. Bu konunun Virtualbox guest additions ile ilgisi olduğunu düşünerek Google'a yaptığım bir arama çok güzel sonuçlar verdi.

Önce konunun Virtualbox guest additions'ın deneysel 3D hızlandırmasıyla ilgili olabileceği konusunda bir fikre varılmış. Bazıları 3D desteği olmadan kurulum yapılmasını önermiş. Java gibi bir yazılımın neden DirectDraw veya Direct3D özelliklerine ihtiyaç duyduğunu bilmiyorum. Böyle bir gereksizlik sonucunda Virtualbox'ın 3D desteğini devre dışı bırakmak pek mantıklı değil. Mümkünse bu kalsın, başkası gitsin. Konunun taa en sonunda bir "uzman" görüş, 3D özelliğinden vazgeçmeden bunun yapılabilirliğini ortaya koymuş. Java'nın bir ortam değişkeni kullanarak sistemin 3D desteğini kullanmadan ne yapacaksa yapmasının bir yolu olduğunu bildirmiş. Buna göre
set J2D_D3D=false
ataması işi çözüyormuş. Peki bunu nereye yazacağız? Denetim Masası\Sistem Özellikleri\Gelişmiş\Ortam Değişkenleri sekmesinde Sistem değişkenleri alanına kısmında Yeni düğmesine basarak adı J2D_D3D değeri de false olan bir değişken yaratarak.


Denenmiş ve sonuca ulaşılmıştır.

2011-01-13

sudoers

Linux'ta hangi kullanıcının hangi işlemi (hangi makine üzerinde) kim olarak yapacağını, bu işlem için şifre girmeye gerek olup olmadığını kontrol eden mekanizma sudoers. Bu verileri tutan dosya da /etc/sudoers dosyası. Lakin bu dosyayı doğrudan düzenleyemiyoruz, visudo'yu kullanıyoruz:
sudo visudo
visudo, eskiden sudoers dosyasını vi editörüyle düzenlemek için verilmiş bir isim. Ubuntu 10.10'da artık default editor vi değil, nano. Bunu değitşrimek için şu sayfada anlatılanları uygulayabilirsiniz.

sudoers içinde alias denen bir takma ad yapısı var. user, host, runas ve command alias olarak 4 çeşit alias tanımlanabiliyor. Örneğin bir kullanıcı alias'ı oluşturmak için
User_Alias MUHASEBE=user1, user2
şeklinde bir tanımlama yapılır. Bu şekilde yapılan şey bir MUHASEBE grubu oluşturmak değil, user1 ve user2 kullanıcılarına kısaca MUHASEBE diye hitap etmek.

Benzer şekilde bir command alias tanımlaması yapmak için
Cmnd_Alias SHUTDOWN_CMDS = /sbin/shutdown, /sbin/reboot, /sbin/halt
yazılabilir. Bu şekilde shutdown, reboot ve halt komutları -daha sonra kullanılmak üzere- SHUTDOWN_CMDS ismi altında toplanmış olur. Bir tane de host alias örneği yapalım. Örneğin 192.168.2.0/255.255.255.0 subnet'inde yer alan bilgisayarları içine alacak şu tanımlamayı yazalım.
Host_Alias MUHNET = 192.168.2.0/255.255.255.0
sudoers'ın içinde bir kullanıcının özellikleri şu şekilde tanımlanıyor:
<user> <host> = <operator> <tag> <command>
Bu kurala göre aşağıdaki sudoers tanımlamasını yapabiliriz.
MUHASEBE MUHNET = NOPASSWD: SHUTDOWN_CMDS
Bunun anlamı, MUHASEBE kullanıcı alias'ına uyan kullanıcıların (user1 ve user2),  MUHNET subnetindeki bilgisayarları kapatmak ve tekrar başlatmak için yetkili olsunlar (parola istenmesin).

Benzer bir şekilde admin grubu içindeki (admin bir sistem grubu, user alias değil) içindeki kullanıcılara root yetkileri vermek için
%admin ALL=(ALL) ALL
yazılabilir.

2011-01-10

VirtualBox'ta 3D hızlandırıcıyı etkinleştirmek

VirtualBox'ın güzel özelliklerinden biri de 3D (3 boyut) sanal makinelerin hızlandırma desteğinin olması. Eğer evsahibi (asıl) makineninizin güzel bir ekran kartı varsa ve 3 boyutlu görsel efektlerin hesaplamaları için ekran kartınızı kullanıyorsanız, bunu sanal makinelerinizden de yapabilirsiniz. Bunun için yapılması gereken birkaç işlem var. Öncelikle sanal makinenin 3D hızlandırıcısının etkinleştirilmiş olması ve yeterli miktarda video belleğine sahip olması gerekir. Bu işlemler için şu adımları izlemek gerek.

Önce sanal makineniz kapalıyken, makinenin "Ayarlar" penceresini açarak "Display" kısmına gelerek "Video Memory"yi artırmak (mesela 128 MB) ve alttaki "Genişletilmiş Özellikler" bölümünden "3D Hızlandırmayı Etkinleştir" checkbox'ını işaretlemek gerek. Windows sanal makineler için "Enable 2D Video Acceleration" da  seçilebilir. Ancak Windows harici sanal makinelerde bu seçenek seçilebilir olmayacak.


Daha sonra sanal makineyi başlatarak "Misafir Eklentileri"ni kuracağız. Ancak, VirtualBox Kullanıcı El Kitabı'nda belirtildiği gibi, 3D hızlandırıcısı için Misafir Eklentileri'nin Windows sanal makineler üzerine "Güvenli Kip"te kurulması gerek. Bunun için makineyi açarken F8'e basarak güvenli kipi seçmek gerek. Windows Güvenli Kip'te açıldıktan sanal makinenin penceresinin "Aygıtlar" menüsünden "Misafir Eklentilerini (Guest Additions) yükle..." komutunu vererek kuruluma başlayabiliriz.


Bundan sonra sanal makinemize %ProgramFiles%\Oracle\VirtualBox\ klasörüün altındaki VBoxGuestAdditions.iso CD kalıp dosyası otomatik olarak bağlanacak. "İleri" tuşuna basarak devam ederken şu ekrana gelindiğinde


"Direct 3D Support (Experimental)" checkbox'ının seçilmesi gerek. İmzasız Windows sürücülerinin kurulması için onayınız istenecek. Bunları onayladıktan sonra sanal makine bir kez tekrar başlayarak (güvenli kipte olduğumuzdan değiştirilen sistem dosyasını geriye dönmek için Windows File Protection kapalı olduğundan sorun çıkmayacak).

3D desteğini denemek için sanal makineniz açıldıktan sonra Başlat\Çalıştır'a dxdiag yazıp enter'a basın. Bu komut bize DirectX diagnostic penceresini açacak. Windows XP ve DirectX v9c ve öncesi için Direct3D desteğini sınayacağımız bir sekme (Display) bulacağız. Vista ve üzerinde DirectX v10 ve sonrası için böyle bir sınama sayfası yok.


Burada "Test DirectDraw" ve "Test Direct3D" düğmeleriyle sırasıyla 2 boyutlu ve 3 boyutlu testleri yapabilirsiniz. Genellikle 2 boyutlu testler sorunsuz çalışıyor. Ancak 3 boyutlu testlerde önce DirectX v7, sonra DirectX v8 ve en son DirectX v9 yüzeyleri denenirken bazı hatalar olabiliyor. Bu da 3D desteğinin henüz deneme aşamasında olmasından kaynaklanıyor olabilir. İşte testlerden görüntüler:

DirectDraw siyah/beyaz diktörtgenler

DirectDraw zıplayan beyaz kare (tam ekran değil)

DirectDraw zıplayan beyaz kare (tam ekran)

Direct3D testleri (v7 ve v8 hatalı)

Direct3D testi, DirectX v9 yüzeyleri ile başarılı

2011-01-07

Samsung LCD televizyonlarda DTS meselesi

DTS ses izi olan filmlerin ses izlerini önce bilgisayarda AC3 veya mp3'e çevirelim, transcoding yapan bir DLNA sunucu bulalım falan derken Samsung LCD televizyonlarda DTS'li filmleri izleyememiz 2 yaşına basarken Samygo projesi sonuç verdi. Müjde!

DTS'yi çözememesinin yanısıra filmlerinin ikinci sesini de duymamıza imkan vermeyen Samsung, aldığımız günden beri bu konu ile ilgili bir firmware güncellemesi bile yapmazken, daha beter köstek olarak 3000 serisi firmware'lerle önümüzü iyice tıkamıştı.

Bu iki sorun da şu anda hallolmuş gözüküyor. Konunun ayrıntısını donanimhaber.com'daki şu başlık altında takip edebilir, ya da doğrudan sourceforge'daki şu proje sayfasına gidilebilir (artık www.samygo.tv adresi de var). Yazılanlara göre Samygo projesinin kurucusu Erdem Altınyurt, bir yarışma düzenleyerek Samsung LCD televizyonlarda DTS sorununu çözecek kişiye belli bir süre boyunca toplanacak bağışları verme hedefini koymuş. DTS olayı çözülmeden de gayet önemli bir amaca hizmet eden Samygo projesi bünyesinde Samsung televizyonlar için çok sayıda araç var.

Önce söylemek gerekir ki, çözümü uygulayabilmek için kullandığınız firmware'in 3000 serisi bir sürüm olmaması gerek. Bu uyarı bir süredir ilgili yerlerde vurgulanıyor. Bu sebeple ben de hala 1000 serisi bir firmware kullanmaktaydım. Ancak ilk denememde başarısız olunca firmware'imi 2005'e yükselttim.

DTS çözümü, Samsung'un İçerik Yönetici (Content Manager) kısmına bir oyun eklemekten ibaret. Mevcut firmware'de bir değişiklik yapmadığı gibi garanti kapsamı dışına da çıkarmıyor. Önce şu sayfadan "DCA module" başlığı altındaki v0.3 sürüm dosyayı download ettim. Sonra bu uygulamayı bir boş ve FAT32 olarak formatlanmış bir USB belleğin içine açtım. USB bellektekiğin kök dizininde şu dosyalar oldu:
clmeta.dat
libavcodec.so.52
libavcore.so.0
libavformat.so.52
libavutil.so.50
libdca.so.disabled
samygodca.png
samygodca.so
samygodca_inj.so
Burada libdca.so.disabled dosyası, devre dışı bırakılan, VLC player'da kullanılan DTS çözücüsü. DonanimHaber.com'daki başlıktan takip ettiğim kadarıyla bu kütüphane kullanıldığında fazla CPU kullanımı sebebiyle altyazılarda gecikme ve uzaktan kumandaya geç cevap verme gibi sorunlar yaşanmış. Bunun yerine ffmpeg kütüphanesi tercih edilmiş. libdca'nın çözemediği DTS'lerin olma ihtimaline karşı bu dosya tekrar etkinleştirilmek üzere bu pakete dahil edilmiş sanıyorum.

Bu haliyle USB belleği televizyona taktıktan sonra uzaktan kumandanın Content (Content Libary) tuşuna basarak İçerik Yönetimi menüsüne gelip, USB'de görülen DCA module'ünü televizyonun dahili belleğine kopyalamak gerek. Sonra da dahili bellek üzerinden bu modülü çalıştırmak gerek. Uygulanacak adımlar TV'nin modeline göre değişebilir. Bu konuda yukarıda verdiğim bağlantılardan yardım alabilirsiniz.

Şu anda DTS sese sahip bir çok filmi de sorunsuz izleyebiliyorum. Siz de Samygo projesini faydalı buluyorsanız anasayfadaki bağlantısını tıklayarak projeye destek olabilirsiniz. Her ne kadar DTS yarışması sonuçlanmış olsa da Samygo'nun ilerdeki projelerinde bu katkıya ihtiyacı olacaktır.

http://www.linuxtoday.com/developer/2010112200535NWEMDV

2010-12-31

Sonunda 64 bit Flash çıktı

Flash Square. 64 bit flash'ın deneme sürümünün kod adı. Henüz deneme aşamasında, ama olması bile birşey! Uzuun süredir çıkması beklenen, ama -muhtemelen- sırf 64 bit sürümü olmadığı için 64 bit işletim sistemlerinin 32 bit tarayıcıları varsayılan olarak seçmesine sebep olan Flash.

Bir süredir sadece Linux için 64 bit Flash mümkündü. Ama şimdi Windows ve Mac için de var. 64 bit Flash Player'ı çıkarmak neden bu kadar uzun sürdü çok merak ediyorum. Gerçekten çok uzun sürdü.Ve hala deneme aşamasında. Nihai sürümün çıkması biraz daha zaman alacak.

64 bit Windows ile hem 32 bit hem de 64 bit Internet Explorer geliyor, aşağıdaki resimde görüldüğü gibi.


Eğer Firefox yüklemek isterseniz o da 32 bit geliyor. Windows için henüz kararlı nihai sürüm 64 bit Firefox yok. Aşağıdaki resimde 64 bit Windows 7 üzerine kurulmuş bir Firefox'un 32 bit olduğu görülüyor.


Dolayısıyla 64 bit Windows bile kullanıyor olsanız, Firefox'un gördüğü  Flash plugin'iniz 32 bit olacak.Bunu Firefox adres satırına about:plugins yazarak da görebilirsiniz.



Yukarıdaki resimde Shockwave Flash plugin'inin kullandığı NPSWF32.dll dosyasının isminden 32 bit olduğu belli. Dolayısıyla Firefox'un gördüğü Flash Player da 32 bit. Version satırındaki 64 sayısı sizi yanıltmasın; o başka.

Şu adresten 64 bit IE için 64 bit Flash Player'i indirelim ve olacakları görelim. Aşağıdaki resimde de 64 bit Windows 7 üzerinde, 64 bit IE8'de çalışan Flash Player'in görüntüsü var. Görev Yöneticisi'nde iexplore.exe'nin yanında *32 olmadığı için 64 bit olduğu açık. Ayrıca FlashUtil64_10_3_162_ActiveX.exe'nin yanında da *32 olmadığından bu eklentinin çalışan proses'i de 64 bit. Ayrıca IE'nin Araçlar>Internet Seçenekleri>Programlar>Eklentileri Yönet>Araç Çubukları ve Uzantılar'da görünen Flash'ın Shockwave Flash Object'in ek bilgilerinde %systemroot%\System32\Macromed\flash klasöründeki Flash64_10_3_162.ocx dosyasının da 64 bit olduğu gözüküyor (sadece dosya adında geçen 64 ibaresinden).


Peki bundan nasıl emin olabiliriz? Visual Studio ile gelen dumpbin adında bir komut satırı aracı var. Bu iş için dumpbin önerilmiş. Üşenmedim, Windows 7 üzerine Visual Studio 2010 Express'i kurdum, Visual Studio Command Prompt'u çalıştırdım (cmd.exe ile olmuyor). Burada aşağıdaki sonuçları elde ettim:


Burada machine (x64) yazan dosyalar 64 bit mimariye göre derlenmiş dosyalar. machine (x86) yazanlarsa 32 bit mimariye göre derlenmiş olanlar. Dumpbin'in çıktısı çok ayrıntılı olduğu için findstr ile filtrelenmiş. Bu filtreyi kaldırınca ayrıca adreslenebilir bellek alanının da 64 bit dosyalar için 2 GB'ın üzerinde olduğuna dair bir ibare de çıkıyor ki bu da beklenen birşey. Unutmadan söyleyeyim, 64 bit Windows üzerinde Program Files klasörü sadece 64 bit uygulamalar için. Geriye dönük uyumluluk açısından 32 bit uygulamalar Program Files (x86) klasörüne kuruluyor. Ayrıca Windows klasörünün altındaki system32 klasörü, her ne kadar adında 32 geçse de artık 64 bit sistem dosyaları için. 32 bit sistem dosysalarının konumu SysWOW64.

64 bit Windows kullanırken 32 bit Firefox'a mı muhtacız? Henüz Firefox'un kararlı bir 64 bit sürümü yok demiştim. Ama deneme sürümlerini denemek isterseniz şu adresten indirebilirsiniz. Hemen onu da indirip kurdum ki Flash Square'i 64 bit Firefox üzerinde deneyebileyim. Firefox'un 64 bit sürümünün adı Firefox değil,  Namoraka. Görünüş aynı, hatta exe dosyası bile firefox.exe. Sadece proje adını değiştirmişler, kararlı ve deneme sürümleri karışmasın diye. İşte aşağıda 64 bit Windows 7 üzerine kurulmuş 64 bit Firefox (yani Namoraka) içinde çalışan 64 bit Flash Square plugin'i gözüküyor.


Burada görülen NPSWF64_10_3_162.dll dosyası isminden 64 bit olduğu çağrışımını yapıyor. Peki gerçekten öyle mi diye bakmak için %systemroot%\system32\Macromed\Flash klasörünün altında bulunan bu dosyanın başlıklarını dumpbin ile inceleyelim:


Aklıma gelmişken, bir uygulamanın 32 bit mi yoksa 64 bit mi olduğunu linux'ta bulmak için file komutunu kullanabiliyormuşuz. Bu komutu  bir dosyayı göstererek, ya da çalışan bir prosesin ID'sini vererek de kullanabiliyoruz. Örneğin, Ubuntu 10.10 x64 üzerinde çalışan Firefox'un gerçekten 64 bit olduğunu görmek için şunlaır yaptım:

$ file /usr/lib/firefox-3.6.10/firefox-bin
/usr/lib/firefox-3.6.10/firefox-bin: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.15, stripped

yada proses ID'sini vererek:

$ file -L /proc/1515/exe
/proc/1515/exe: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.15, stripped

Firefox'un adres satırına about:plugins yazdığımda Flash Player ile ilgili dosyanın npwrapper.libflashplayer.so olduğunu gördüm. Bu dosyayı arattığımda /var/lib/flashplugin-installer/ ve /usr/share/ubufox/plugins/ klasörlerinin altında rastladım. Fakat ikincisi bozuk bir sembolik linkti. Aslen /usr/lib/flashplugin-installer/npwrapper-libflashplayer.so'ya işaret ediyor olsa da böyle bir dosya yoktu. Onun yerine libflashplayer.so adlı bir dosya buldum. file komutu ile bunları incelediğimde ise

$ file /var/lib/flashplugin-installer/npwrapper.libflashplayer.so
/var/lib/flashplugin-installer/npwrapper.libflashplayer.so: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, stripped


ve

$ file /usr/lib/flashplugin-installer/libflashplayer.so
/usr/lib/flashplugin-installer/libflashplayer.so: ELF 32-bit LSB shared object, Intel 80386, version 1 (SYSV), dynamically linked, stripped

sonuçlarını aldım. İkinci dosya libflashplayer.so 32 bit. Ancak bu, bozuk bir sembolik bir link. Yani Firefox bu dosyayı görmüyor (aslında npwrapper.libflashplayer.so dosyasının bir kopyası buraya konarak sembolik link onarılabilir). Dolayısıyla çalışan Flash'ın 64 bit olduğu sonucuna varabiliriz.

Bunu da bulduktan sonra söyleyeceğim birşeyin kalmadığını farkettim.

2010-12-24

Samsung LCD TV'de telnet'i etkinleştirmek

DonaninHaber.com'da Samsung B650-51-52-53 Lcd Tv Serileri # Genel Konu # başlığı altında ve aslen SamyGo proje sitesinde Samsung B650 serisi televizyonlarla ilgili bazı güzel gelişmeler olmuş. Bunlardan ilki, televizyon üzerinde telnet'i etkinleştirmekle ilgili. Bu konudan başlayarak yapacaklarımı burada paylaşacağım.

Telnet benim için niye önemli? Bir süre önce bir arkadaşımın USB belleğini televizyona bağlamış, içindeki resimlere bakarken birkaç tanesini televizyonumun dahili belleğine aktarmıştım. Amacım daha sonra bu resimleri bilgisayarıma aktarmaktı. Ama garip bir şekilde dahlili bellekteki bilgilerin başka bir yere kopyalanamadığını gördüm. Televizyonun arayüzünde böyle bir komut yoktu. Resimlerim bir süredir televizyonun dahili hafızasında alınmayı bekliyordu.

Önce şu sayfayı okudum. Orada verilen link'ten SamyGo Telnet Enabler Application'ı download ettim. Bu arada elimde bir boş USB bellek hazır ettim. FAT32 ile formatladım ve download ettiğim zip dosyasını USB belleğimin içine açtım. Yalnız dikkat: bu zip dosyasını açında önce telnet-enabler diye bir klasör ve clmeta.dat ve trojan.png dosyaları çıkıyor. Bu haliyle USB belleğe attığımda televizyon görmedi. Ben de telnet-enabler klasörünün içindeki telnet klasörünün içeriğini USB'nin kök dizinine attım. USB belleğimde şu dosyalar vardı:
busybox
clmeta.dat
telnet.png
telnet.sh
telnet.so
Bu haliyle USB belleğimi televizyona bağladıktan sonra Content menüsü üzerinden İçerik Yönetimi'ne, oradan USB belleğinizin içine girdikten sonra aşağıdaki ekranla karşılaştım:


Burada sağ kısımda görünen Run this Telnet Enabler'ı seçtikten sonra kumandadan Enter tuşuna basınca Oynat, Kopyala ve Tümünü Kopyala seçenekli bir menü açıldı. Ben Kopyala komutuyla bunu televizyonun dahili belleğine kopyalamayı seçtim. Bu uygulama ihtiyaç anında çalıştırılması gereken birşey. Televizyonda kalıcı bir değişikliğie sebep olmuyor. Dolayısıyla ihtihaç anında çalıştırabilmek için televizyonun dahili belleğine kopyalamak iyi bir fikir.

Ardından Oyun kısımna gelerek aşağıdaki gibi ekrandah Run this Telnet Enabler'ı tıkladım.


Bunun sonucunda televizyonun ekranı kısa bir kapandı ve tekrar açıldı. Bilgisayarımdan Putty ile denediğimde giriş yapabildim. Kullanıcı adı olarak root kullandım, parola sormadı bile.

Bundan sonra işin zor kısmı televizyonun dahili belleğindeki resimlerin dosya sisteminde nereye denk geldiğini bulmak kaldı. Elimde bir rehber olmadığından deneme yanılma ile klasörler arasında gezindim. Televizyonun üzerindeki linux işletim sistemi de find veya locate gibi yüksek seviye linux komutlarını desteklemiyordu. Bu arada şuna dikkat: her ne kadar bu yöntemle telnet'i etkinleştirmenin televizyona bir zararı olmasa da, telnet ile bağlandıktan sonra kullanacak yanlış bir komut herşeyi mahvedebilir. Bu yüzden biraz linux tecrübesi faydalı olacaktır.

Gelelim resimleri bulduğu konuma. Resimleri
/mtd_wiselink/PHOTO001
klasörünün altında buldum. Benzer şekilde dahili bellekteki bir filmi de
/mtd_wiselink/MOVIE001
klasörünün altında buldum. Sıra geldi bunları USB'ye kopyalamaya. USB'nin mount noktasını bulabilmek için mount komutunu kullandım. Bu komutun ürettiği çıktının en son satırında
/dev/sda1 on /dtv/usb/sda1 type vfat (rw,sync,fmask=0022,dmask=0022,codepage=cp437,iocharset=utf8,shortname=mixed)
yazıyordu. Demek ki USB belleğim /dtv/usb/sda1 klasörüne bağlanmış. Sonunda aşağıdaki komutla bu dosyaları USB belleğime kopyaladım.
cp /mtd_wiselink/PHOTO001/* /dtv/usb/sda1/
Yalnız bu iş tahmin ettiğimden çok daha uzun sürdü, neden bilmiyorum. USB diskim 2.0'dı. Televizyonun da 2.0'ı desteklediğine şüphe yok. Neyse, resimlerimi bilgisayarıma aktarmanın verdiği sevinçle bu konunun üzerine fazla düşmedim.