Cuma, Mayıs 04, 2012

WDTV Live ile FTP Server Kurmak

Bu yazıda, WDTV Live üzerine kurulmuş "WDLXTV Firmware" üzerinden nasıl FTP servisi veririz bunu anlatmaya çalışağım. Aslında WDLXTV kurulduğu anda hiçbirşey yapmasanızda ftp servisi aktif olarak geliyor. Lokal ağınız içinde root kullanıcısının şifresi ile ftp bağlantısı kurabilir, bağlı diskinize erişebilirsiniz.

Burada yapmak istediğimiz 2 konu var :
  1. Farklı bir kullanıcı tanımlayıp bu kullanıcıya diskimizin sadece belirli bir klasörü altına erişmesini sağlamak. 
  2. Internet üzerinden herhangi bir ftp client (ör: filezilla) ile wdtv üzerindeki diskimize erişmek.
WDTV Live
Burada anlatılanlar sadece bilgi amaçlı olduğunu ve uygulamadan kaynaklanan olası problemlerden sorumlu olmadığımı belirtip başlayabiliriz.

Şimdi kullanıcı adı ftpk şifresi qwer12 olan bir kullanıcı oluşturalım. Bu kullanıcı, diskimizin kök dizini üzerinde açtığımız pub isimli klasörün altını görsün ve başka bir yere erişemesin.

Önce putty ile konsola bağlanıp aşağıdaki komut satırı ile ftp servisini durduruyoruz.

#/etc/init.d/S75pure-ftpd stop

Aşağıdaki komut ile kullanıcı adımızı tanımlayıp göreceği path i belirliyoruz. (Path bilgisi sizin diskinize ve takılı olduğu porta göre değişebilir.) Bu şekilde istedimiz kadar kullanıcı tanımlayabiliriz. Komutu yazın Enter a basınca sizden Password soracak. Buraya belirlediğimiz kullanıcı şifremizi giriyoruz. (Örneğimizde qwer12) Sonra aynı şifreyi tekrar girip işlemi tamamlıyoruz.

#pure-pw useradd ftpk -u nobody -D /tmp/media/usb/USB2/60EEE98DEEE95BB2/pub -f /conf/pureftpd.passwd

Kullanıcı tanımlarımız bitince aşağıdaki komut satırı yardımı ile oluşturduğumuz kullanıcı bilgilerimizi pdb dosyasına dönüştürmemiz gerekiyor.

#pure-pw mkdb /conf/pureftpd.pdb -f /conf/pureftpd.passwd

pureftpd.pdb dosyamız /conf altında oluştu. ftp servisini açmadan önce bu dosyayı servisimizin görmesini ve kullanmasını sağlamak için aşağıdaki komut satırını giriyoruz.

#config_tool -c FTPD_OPTIONS='-l puredb:/conf/pureftpd.pdb -p 50000:50400 -A'

Burada farklı 2 parametre daha görüyorsunuz. -p parametresi passive mode ftp kullanabilmemiz için port aralığı belirlememizi sağlıyor. -A parametresi ise tanımladığımız kullanıcının belirttiğimiz path in dışına çıkamamasını sağlıyor. Bu parametreyi kullanmazsanız kullanıcı sizin belirlediğiniz path ile bağlanır ama isterse kök dizine kadar çıkabilir.

Şimdi artık ftp servisimizi aşağıdaki komut ile tekrar başlatabiliriz.

#/etc/init.d/S75pure-ftpd start

Filezilla üzerinden hemen bağlanmayı deneyebilirsiniz. Android telefon/tablet üzerinden bağlanmak için AndFTP programını  tavsiye edebilirim. (Dosya isimlerinde Türkçe karakterlerde sorun görürseniz bağlantı ayarlarından karakter setini UTF8 olarak değiştirmeniz yeterlidir)
WDLXTV, ftp servisi olarak PureFTPD yi kullanmaktadır. PureFTPD nin kendi dokümantasyon sayfasını inceleyerek daha farklı konfigurasyonlarda kurabilirsiniz. Bu anlattıklarım sadece benim ihtiyaçlarım kapsamında kurduğum konfigurasyondur.

Şimdi gelelim "internet üzerinden ftp server'ımıza nasıl erişebiliriz?" sorusuna.

Herşeyden önce bir adrese veya IP numarasına ihtiyacımız var. Statik IP sahibi olmadığınızı varsayıyorum. Bildiğim kadarıyla hemen hemen tüm modemlerde dinamik dns imkanı bulunuyor. Modeminizin desteklediği dinamik dns servislerinden birine üye olup oradan kendinize uygun bir domain adı alıyorsunuz. Örn: ozgur.homedns.org gibi..Modeminizde, dinamik dns tanımlanan yere oradan aldığınız üyelik bilgilerinizi giriyorsunuz. Bu sayede "ozgur.homedns.org" adresini girdiğinizde kendi modeminize kadar ulaşırsınız.

Modeminize ulaşırsınız ancak modem üzerinde herhangi bir yönlendirme kuralı olmadığı için orada kalırsınız. Modemin NAT(Port Yönlendirme) ayarlarından 21 nolu porta gelen istekleri WDTV Live ın IP numarasına yönlendir demeniz lazım. (Nasıl yapılacağı ile ilgili internette birçok bilgi var. Kendi modeminize göre araştırabilirsiniz.) Burada önemli olan nokta WDTV Live ın hep aynı IP ye sahip olması. Bunun için ya WD ye sabit IP verebilir yada DHCP Reservation ile hep aynı IP yi almasını sağlayabilirsiniz. (Ben 2.sini kullanıyorum.)

Son olarak da modeminizin güvenlik ayarlarından 50000-50400 portlarını açmalısınız. Böylece passive mod için tanımladığımız portlar açılacak ve dışarıdan içeriye ftp yapabilmemiz için gerekli tüm zincir tamamlanacaktır.

Hepsi bu kadar. 

Pazartesi, Nisan 30, 2012

WDTV Live ile DLNA Server Kurmak

Uzun süredir blogda birşey yazmadığımın farkındayım. Ama yazmış olmak için yazmakda istemiyorum açıkçası.  Son günlerde keşfedip uyguladığım ve keyifle kullandığım, WDTV Live sahiplerinin ilgisini çekeceğini düşündüğüm  iki konu var. Birincisi ve bu yazının konusu olan WDTV Live' ı evdeki DLNA destekli cihazların kullanabileceği bir sunucu olarak kurmak... Diğeri ise WDTV Live' ı internet erişimi olan herhangi bir yerden erişebileceğiniz bir FTP Sunucusu olarak kurmak ki bu da diğer yazının konusu.

WDTV Live
Herşeyden önce WDTV ye Custom Firmware olan WDLXTV yüklemememiz gerek. Custom Firmware in ne olduğunu daha önce şurada bahsetmiştim. Nasıl yükleneceğinin detayına ise burada girmeyeceğim. Bu konuya ilgi duyup uygulamak isteyenlerin belli bir teknik bilgi sahibi olduğunu varsayıyorum. Uygulaması çok zor değil zaten. Burada anlatılanlar sadece bilgi amaçlıdır. Uygulamadan kaynaklanan olası problemlerden sorumlu olmadığımı belirteyim.

miniDLNA kurulumuna başlamadan önce bazı path bilgilerinide not almanızda fayda var. Çünkü burada ekran görüntüleri ile örnekleyeceğim bazı ayarlar sizin bağlı olan diskinize göre farklılıklar gösterecektir.

Bu noktada; WD üzerine takılı olacak diskin sürekli tak-çıkar yapmayacağınız bir disk olması oldukça önemli. Paylaşacağımız medya dosyalarımız ve miniDLNA servisinin oluşturacağı veritabanının bu disk üzerinde olması nedeniyle diski takıp çıkartmak doğal olarak kararsız çalışmaya neden olacaktır.

putty veya benzer bir telnet client ile WDTV ye bağlanıp kullanmayı planladığınız diskin path ini bir yere not edin. Ben diskimi cihazın arkasında bulunan USB porta bağlı olarak kullanıyorum.
Bu portu WDTV USB2 olarak görür. Sizde buna göre path inizi yapılandırabilirsiniz. Resimde gördüğünüz HEX kod benim diskime ait olan kod. Siz kendi diskiniz için burada başka bir kod göreceksiniz. Bu koda ileride ihtiyacımız olacak. Diski değiştirmediğiniz sürece bu kod değişmez.

Şimdi WDTV nin web arayüzünden "Addons Manager" bölümüne girip "Applications" tabında "miniDLNA" yı ve "ffmpeg" i buluyoruz ve "State" ini "On Sda1" yapıyoruz.



Tekrar ana ekrana gelerek bu sefer "WDLXTV Config" bölümüne giriyoruz. Burada "Apps" tabına geçtiğimizde "miniDLNA" nın ayarlarını görebilirsiniz. Aslında konsoldan baktığınızda minidlna.conf dosyasının içeriğidir burası.

Ayarları buradan kolayca yapabiliriz.
MINIDLNA_DIRS bölümü ilk kurulumda boştur. Benim konfigurasyonumda 3 satır görüyorsunuz. V=Video, A=Audio, P=Picture/Photo anlamına geliyor. Siz sadece video paylaştıracaksanız bir satır kullanabilirsiniz. Tamamen kendi kurgunuza bağlı. Path lerin hep usb2 üzerindeki diske göre konumlandırılmış olduğuna dikkat ediniz. MINIDLNA_INOTIFY ve MINIDLNA_NOTIFY_INT parametreleri belirttiğiniz medya klasörlerine kopyaladığınız/sildiğiniz dosyaları takip edip veritabanını güncellemesini sağlar. 900 değeri  saniye cinsinden 15dakikaya karşılık gelir.

Konfigurasyonu tamamladıktan sonra ; hani dedik ya bu konfigurasyon aslında "minidlna.conf" dosyasının içeriğidir diye. Bu dosya varsayılan olarak /tmp altındadır. /tmp her WDTV yi reboot ettiğinizde sıfırlanır. Dolayısıyla her reboot ta ayarlarınız gider. Bunu önlemek için dosyayı /conf altına taşımalıyız. putty ile konsolu açıp sadece şunu yazmamız yeterli :

cp /tmp/minidlna.conf /conf

Sonra WDTV yi reboot ediyoruz. (Aslında o da şart değil sadece servisi restart edebiliriz ama genel kontrol olsun)

Herşey yolunda gittiyse DLNA deskteleyen bir cihazdan (TV, Windows Media Player, Akıllı Telefon) kontrol edebilirsiniz. Video - Photo - Music bölümlerinin geldiğini göreceksiniz. Herhangi bir sorun varsa log dosyasına bakıp sorunu görebilirsiniz. (log dosyasının yerini konfigurasyonu yaparken vermiştik.)

Ben arka odada ki ağa bağlı Samsung TV üzerinden bağlandığımda film/dizi leri altyazılarıyla birlikte izleyebiliyorum. (Altyazı dosyası adı film dosyası adı ile aynı olmalı) Aynı şekilde K-Lite Codec kurulu Windows7 de Media Player ile yine altyazıları ile tek merkezden film/dizi izleyebiliyorum.

Eğer müzik paylaşacaksanız tavsiyem; paylaşıma dahil ettiğiniz tüm müziklerinizin tag bilgilerini doldurmanız. Bunu mp3Tag programı ile kolayca yapabilirsiniz. Böylece müziklerinize ister türüne, ister sanatçıya, isterseniz albüme göre indeksli olarak erişebilirsiniz. Olmazsada şart değil, eski usul Folder seçeneğide var.

Kısacası herşeyde olduğu gibi buradada ne verirseniz onu alırsınız.

Bir sonraki yazıda internet üzerinden WDTV ye bağlı diskinize FTP ile nasıl erişebiliriz onu anlatacağım.

Görüşmek üzere ...

Perşembe, Ocak 26, 2012

Custom Firmware'in Dayanılmaz Hafifliği

Önce bilmeyenler için Custom Firmware in anlamını biraz açalım. Bildiğiniz gibi artık kullandığımız hemen her elektronik gerecin(tv, telefon, fotoğraf makinası, player vs.) içinde bir işletim sistemi çalışmaktadır. Bu işletim sistemi üretici firma tarafından bu cihaza göre özelleştirilmişlerdir ve belirli aralıklarla yine üretici firma tarafından güncellenirler. Bu güncellemelerin amacı hata düzeltmek olabileceği gibi yeni özellikler eklemek de olabilir. Ancak bir süre sonra gerek satış stratejilerinden gerekse donanımın yeni ihtiyaçlar için yetersiz kalmasından dolayı üretici bu desteği keser. Eğer kullanılan cihaz popüler bir cihaz ise bir grup gönüllü yazılım uzmanı, farklı yöntemlerle bu yazılımları geliştirmeye, iyileştirmeye çalışırlar. Bu yazılımlar "custom firmware" olarak anılırlar. Uygulanması kesinlikle kendi sorumluluğunuzdadır ve ne yaptığınızı bilmiyorsanız cihazı çalışmaz hale getirebilirsiniz. O nedenle son kullanıcılar için pek uygun değildir. Özellikle teknik detaylarla uğraşmaya meraklı kullanıcılar için dipsiz bir kuyudur. Ne istediğini bilenler için ise harika seçenekler mevcuttur. iPhone iOS' daki Jailbreak, Android' deki Cynamod, WDTV' deki WDLXTV buna bir örnektir.

Ben, kullandığım cihazlarda üretici desteği kesildikten sonra bu yolu tercih edenlerdenim. Örnekse, Apple' ın iOS4 ün çıkışı ile birlikte resmen iPhone3G nin içine ettiğini kullananlar bilir. Donanım yetersizliği nedeniyle telefon resmen sürünür. Eşimin kullandığı bu telefona birkaç gün önce whited00r yükledim. Telefon resmen yeniden doğdu desem yeridir. Whited00r aslında iOS 3.1.3 üzerine modifiye. Ama iOS5 özelliklerinide seçenekli olarak içinde barındırıyor ve o kadar başarılı ki inanamadım. Üstelik şarj süreside gözle görülür biçimde arttı.

Media Player olarak WDTV Live kullanıyorum. Yasal son sürümüm 1.05.04_V idi. Aslında birkaç ay önce 1.06.15 de WD tarafından yayınlandı ama güncellediğimde alet resmen çöktü. Diskleri tanımıyor. Menülerde saçmalıyor vs. Forumlara baktığımda birçok kişi aynı dertten yakınıyordu. Eski versiyona geri döndüm. Bekledim, sorunu düzelttsinler diye ama nafile. Bu arada yeni WD modelleri çıktı ama buna herhangi bir güncelleme gelmedi.

WD nin yasal firmware inden ümidi kesince gözüm WDLXTV ye kaydı. Bu oluşum, aynı iPhone da olduğu gibi mevcut bir yasal sürümün üzerine ekstra özellikler koyarak geliştirilmekte.

Neler mesela:

WDTV Live networke ve internete bağlı bir alet. İşletim sistemi busybox tabanlı bir linux. Dolayısıyla teorik olarak bu cihazı bir bilgisayar gibi kullanabilmek mümkün. Pratikte tabiki WD bunu kısıtlıyor. WDLXTV bu kilitleri açıyor işte. :) Telnet üzerinden erişmek, ftp, nfs, gibi servisleri kullanarak dosya transferleri yapmak, torrent çalıştırıp download yapmak, web arayüzünden den cihazı yönetmek, webserver ve php çalıştırmak mümkün. Hatta android marketten uygun programı yükleyerek telefonunuzdan da kumanda edebiliyorsunuz. Plugin desteği ile RSS, Picasa, Vimeo, Southcast gibi yeni web hizmetleri eklemek mümkün. Mesela yasal firmware de youtube da sadece SD videoları izleyebiliyorsunuz. HD leri izleyemiyorsunuz (Neden?!?, anlamak mümkün değil.) WDLXTV bu kilidide açıyor. Artık 1080P Youtube videoları izleyebiliyorsunuz.

Kurulum zor değil prosedürü uyguladığınızda çok kolay bir şekilde kuruluyor.
Ama en başta dediğim gibi teknik bilgi sahibi olmanız ve linux kullanmaya aşina olmanız bence önemli.

İlginizi çekerse daha detay bilgilere aşağıdaki adreslerden ulaşabilirsiniz.

http://wiki.wdlxtv.com/Main_Page
http://www.fatihaytac.com.tr/kategori/wdtv-gelistirme-anlatimlari