logo Hakkında


Cep Telefonları ve Linux 3

bir yorum

Ayrı kaldığım bu dönemdeki cep telefonları ve Linux tecrübelerimi olabildiğince aktarmak istiyorum:

Yeni bir platforma Linux entegredilirken nasıl bir yol izlenmelidir?

Anahatlar

  • Gerekli mi?
    • Aşağıda anahatları gösteriler konu çok pahalı ve zaman alıcı işlemler gerektirebilir bu nedenle vereceğiniz emeğin değip değmeyeceğini hesap ediniz.
    • Çoğu cep telefonu j2me, symbian gibi programlama arayüzleri sunmaktadır, bu arayüzler çoğu ihtiyacı karşılayacabilecek nitelikte olup, Linux’u port etmektense bu dilleri öğrenmek daha geniş kitleye hitap edecek ürünler ortaya koymanızı sağlar.
  • Port edeceğiniz platformu çok iyi tanıyor olmalısınız.
    • CPU tipi ARM midir yoksa nedir?
    • MMU var mı yok mu?
    • Linux’u çalıştırabilecek memory mevcut mu? (Minimum 2 MB)
    • GUI çalıştırılabilecek kadar memory mevcut mu? (Minimum 16-32 MB)
  • Port edeceğiniz platformun device driver’larının kaynak kodları genelde verilmeceği için
    • Elinizdeki eski firmware’i muhafaza etmeli,
    • Firmware’i reverse etmeli
    • Elde ettiğiniz driver kodlarıyla kernel’i patch etmelisiniz.
  • İşletim sistemlerinin nasıl çalıştığını iyi bir şekilde anlamalısınız.
    • Bootloader nasıl çalışır?
    • Hatalar nasıl anlaşılır ve debug işlemleri nasıl gerçekleştirilir?
    • Kernel ve GCC ARM platformu için nasıl derlenir?
  • Bu işe sizden önce başlayanların çalışmalarına göz atmalısınız.

Genel Bilgi

Port etmekteki en büyük amaç eski haliyle yapamadığı bazı işlemleri yapmaktır ve onu aşmaktır. Sadece alternatif oluşturmak amacıyla böyle koplike bir işe girilmemelidir. Çoğu çalışma gösteriyor ki reverse edilen sürücülerin eskilerinin yerini tam tutmması nedeniyle hardware arızaları ve pil ölümleri meydana gelebiliyor. Çalışmalarınızı yaparken gerekli korunma önlemlerinizi alınız ve özellikle cpu overclock işlemlerinde korunma gözlüğü takınız.

Port etmeden önce güzel bir fizibilite çalışması yapmanız gerekiyor. Cihazınızın donanım özelliklerini iyi tanıyın ve üretici firmalarla iletişime geçin. Bazıları cevap verme lütfunda bulunup datasheet ve driverları gönderebilir. İnandırıcılığınız arttırmak için bir domain adresi alıp bu konuda tecrübelerinizi paylaşın, güzel ve düzenli hazırlanmış bir blog lamer olmadığınızı göstermek için yeterlidir. Fakat üzgünüm ki genelde elinize geçen sadece datasheetler olacaktır çoğu firmanın driverlarını yayınlamama gibi bir politikası mevcut. Bu datasheet belgeleri sizin için çok değerlidir, iyi muhafaza edin.

Bazıları basic bootloader’ı nasıl yazmanız gerektiğinden bile bahseder. İşin en zor kısmı da herhalde bu bootloader ve görüntüyü ekrana yansıtma olayıdır. Bootloader’ı inşa ettikten sonra driver için de iletişime geçin. Bazı firmalar geliştiriciler için “developer program” adı altında sdk ve geliştirme araçları bulunan bazı olanaklar sunuyor, çoğu aylık paralı üyelikle çalışmakta. (Nokia)

Eğer driverlar konusunda olumlu bir yanıt alamazsanız bu çalışmaları hayata geçirebilmek için IDAPro gibi güçlü disassembler araçlarına ihtiyacınız olacak, disassemling işlemler işin en sıkıcı tarafı olmakla birlikte en eğitici kısmını oluşturmaktadır. Derlenmiş bir kodu tekrar kod haline getirmek bilgisayarların çalışması hakkında inanılmaz bilgiler öğrenmenize yol açabilir, javascript’le işletim sistemi göçürme hikayelerine inanmanızı sağlayabilir.

Elinize geçen kod açıklama satırları ve fonksiyon isimleri olmadığından başlangıç seviyesinde programcılar için çok anlamsız gelecektir. device driver’ları çıkardıktan sonra işletim sisteminin çalışma prensibini öğrenmeye çalışmayın çünkü bu aşamaya gelmek çok fazla zaman alıyor hemen kolları sıvayın ve driver’ları linux’la uyumlu hale getirin. Driver’ları linux’a entegre edip platformunuza göre derleyin. Kernel demişken bu konuyu açmak gerekir, vanilla kernel mi kullanacaksınız yoksa uclinux kerneli mi kullanacaksınız? Bu soruyu yanıtlamak için MMU(memory management unit)’a sahip olup olmadığınızı ve bu ünitenin linuxla uyumlu olup olmadığını bilmeniz gerekiyor. MMU kullanamayacaksanız uclinux kullanın tekerleği yeniden icaad etmeye gerek yok! En son kerneli platforma göre derleyeceksiniz ve bootloader’la açacaksınız. LCD driverını çıkarmayı başarabildiyseniz görünütüyü de alacaksınız fakat görüntüyü alamadım diye üzülmeyin Linux güçlü bir log sistemine sahiptir. var/log dizininindeki log dosyalarından nereye kadar gelebildiğinizi takip edebilirsiniz. Artık başarılı bir Bu prototipi linux listelerinde yayınlayın ve kendinize yandaş arayın.

Dual Boot

Kullanıcılara eski sistemi de yeni sistemi de kullanma olanağı sunmalıyız. Bu yüzden bootloder’da iki seçenek sunmalıyız peki linux eski işletim sistemiyle aynı partisyonu mu paylaşacak? Bu konu biraz karışık aslında. Bazıları bu yöntemin pek geçerli ve kullanışlı olmadığını söylüyorlar fakat Ubuntu’dan bileceğiniz Wubi benzeri bir yöntem gerçekten çok akılcı çünkü mmc veya sd karta linux kurulumu pil ömrüne olumsuz eetkiler yapacak ve çalışma hızını düşürecektir ayrıca bootloader’a mmc veya sd kart yazma-okuma desteği eklenmesi de cabası. Wubi deki yöntem çok güzel işliyor: Sanal bir harddisk yaratıyorsunuz ve bootloader linux imajınızı bu sanal hardiskten çağırıyor ve göreceli olarak daha hızlı ve unistall etmesi kolay bir sisteme kavuşmuş oluyorsunuz.

GCC

Bir Linux sistemi Gnu Compiler Compilatio olmadan bir hiçtir. GCC dediğimiz derleyici kütüphanesi c, c++ gibi bir çok dilde yazılmış kodu ve programı sistemimizde çalışabilir hale getirmeyi sağlıyor. İnsanların okuyabildiği kodu 01010 şeklindeki makine koduna dönüştürerek bilgisayar için anlamlı getiriyor. Bu portu başarabilirseniz yolnuz açık olsun başarıyla Linux’u port ettiniz ve yarı kullanılabilir bir prototip haline getirdiniz. Gerisini zaman gösterecek artık gui olarak yeni bir şey mi yazarsınız yoksa var olan bir sistemi port mu edersiniz bilemiyorum ama bu aşamadan sonra işiniz rahat artık komünite ilerisini getirecektir.

Kolay gelsin!

Yazar:

Şubat 14th, 2009 at 10:32 pm

Kategori: *nix

Bir Yorum to 'Cep Telefonları ve Linux 3'

  1. Proof of Concept yok mu diyorsan bak meizu m8 çatır çatır android çalışırıyor http://bit.ly/profcp Bu telefonun vergisiz maliyeti 300 lira kadar.

    echza

    11 Kas 09 at 00:08