7

Özel kartım için Gingerbread çekirdeği adapte ediyorum. Çip üzerinde ADC denetleyicisi (Samsung'dan S5PV210 işlemci) kullanan dayanıklı dokunmatik ekranı değiştirmeye çalışıyorum. Tasarımımda, eGalaxyTouch sürücüsü tarafından desteklenen bir kapasitif denetleyiciye ihtiyacım var. USB'ye bağlı. Sürücü, "make xconfig" menüsünden kolayca etkinleştirilebilir. Seri konsolda bazı izler eklediğimden ve kernel önyüklemesi sırasında yüklemeyi görebildiğimden biraz işe yaradı ve USB kablosunu takarken/çıkarırken onu takıp kaldırarak görüyorum. Ama Android kullanıcı arayüzünde hiçbir şey yapmıyor. Bu bir HID tipi cihazdır. Sorun, uygun Android dokunmatik ekran katmanına bağlanmadığıdır. Bir şey özlemiş olmalıyım. Bu HID'nin dokunmatik ekranı yöneten başka bir yazılım katmanına bağlanmasını zorlamak için başka bir şey olmalıdır.Android'de Dokunmatik ekran sürücüsünü değiştirme Kernel

Dokunmatik ekran sürücüleri çekirdek/sürücüler/giriş/dokunmatik ekranlarda bulunur. Çekirdek/sürücüler/girişte de bazı kodlar vardır.

Bu HID aygıtını Android Dokunmatik Ekran katmanına nasıl bağlayacağınız hakkında ipuçları var mı? Ben eski dirençli nasıl yaptıkları bakmak ve bir HID ile yapılmaz çünkü bu, CPU'yu entegre eden ve USB üzerinden geçmeyen ADC'lere sahip bir "custom made" cihazdır.

cevap

9

Dokunmatik ekran sürücüsünü bütünleştirmeyi başardım. Burada, aynı tür bir problemle karşı karşıya gelecek olan insanlar için nasıl çalıştığına dair bir fikir vermek için adımların kaba bir fikri var.

İlk (Make xconfig) çatışmayı önlemek için orijinal dokunmatik ekran sürücüsünü kaldırmak

Başlangıçta, bu dokunmatik ekran üreticisi tarafından sağlanan satışlardaki çalışmayan bir sürücü vardı. Kernel ağacında zaten eGalax dokunmatik ekran sürücüsünü denemeye karar verdim. Bu bir modül sürücüsüdür. xconfig dosyasında "modül aygıt sürücülerini" etkinleştirmek için yeterli değildir. Evet, .ko dosyalarını derlemek için izin verecektir. ancak bu dosya betiğini file.ko ile ne yapacağını söylemeyecek ve hedef sistemdeki çekirdeğe gitmeyeceklerdir. Bu yüzden, yapı betiğine bir şeyler ekleyerek eylemi gerçekleştirmeli veya file.ko dosyasını uygun kök/modül konumuna manuel olarak kopyalamanız ve modülün yüklenmesini init içindeki "insmod /modules/file.ko" komutuyla eklemelisiniz. rc dosyası. Chmod komutu ile/modules ve/file.ko modüllerine uygun ayrıcalıklı ayarlamayı unutmayın. Bundan sonra, temel olarak, bu soruyla ilgili olmayan bazı küçük problemler haricinde çalıştı (sürücü, farklı yerleştirilmiş bitlerle biraz farklı bir çip içindi, düzeltilmesi kolaydı).

+0

Cihazın çekirdeğini nasıl değiştirebileceğimi/değiştirebileceğinizi söyleyebilir misiniz ?, benim de aynı gereksinime sahip –

+0

İlk olarak, kullandığınız kartın çekirdeğinin tam kaynak koduna sahip olmalısınız. Aksi halde, sıfırdan başlayıp, sahip olduğunuz donanımın her bir parçası için sürücüleri entegre etmeniz gerekecektir. Çok uzun bir görev. Kendi CPU kartınızı yaptıysanız, büyük olasılıkla, bir referans tasarımından, tekerleği yeniden icat etmemeye başladınız. Tasarımın temel aldığı referans tasarım için kullanılan aynı çekirdek kaynağı ve araç yapılandırmasıyla başlamalısınız. Her şeyi tek başına yapmak istiyorsanız, piyasaya zaman ayırın ... Kernel 30 000 + dosya –