Saya sedang mengembangkan sistem tertanam dengan layar sentuh. Layar sentuh beroperasi sebagai input dan output, dengan keyboard "virtual" yang overlay output grafis.
Saya memiliki driver perangkat yang berfungsi yang membaca input dari sensor sentuh dan menerjemahkannya dengan benar ke penekanan tombol, yang dibuat dengan bantuan panduan ini di kernel.org . Saya ingin memperluas driver ini untuk juga menangani output gambar ke layar.
Saya ingin mendukung getty dan X, dengan duplikasi sesedikit mungkin. Saya menjalankan varian Debian minimal dengan paket cherry-pick, seperti minimal X. Perhatikan bahwa saya tidak bermaksud mencoba memasukkan driver ini ke dalam pipa repositori, meskipun saya mungkin membuangnya di repositori GitHub publik.
Meng-output gambar layar saat ini dilakukan melalui solusi ngeri: opsi boot untuk memaksa rendering ke perangkat keras grafis tertanam CPU, meskipun tidak terhubung ke layar, dan daemon yang terus-menerus menyaring goresan yang buffer, memodifikasi beberapa pra- piksel yang ditentukan untuk membuat visual keyboard, dan mendorongnya ke layar nyata.
Ini berfungsi sebagai bukti konsep, membuktikan bahwa saya benar-benar memahami bahasa yang diharapkan perangkat layar, tetapi jelas kurang optimal.
kernel.org
juga memiliki panduan untuk driver perangkat "DRM", tetapi itu kelihatannya seperti kerja keras yang serius untuk kemampuan perangkat keras saya:
Lapisan DRM Linux berisi kode yang dimaksudkan untuk mendukung kebutuhan perangkat grafik yang kompleks, biasanya berisi saluran pipa yang dapat diprogram yang cocok untuk akselerasi grafik 3D.
Tak satu pun dari perangkat keras saya memiliki sesuatu yang menyerupai akselerasi 3D, jadi saya menyimpulkan bahwa ini mungkin bukan yang saya inginkan.
Subsistem / API apa yang harus saya gunakan? Saya pikir salah satu bagian dari terminologi yang hilang adalah apa yang menahan pencarian saya, tetapi informasi lebih lanjut tentang bagaimana mencapai ini akan dihargai.
Detail perangkat keras (mungkin tidak relevan): CPU dan layar berkomunikasi melalui protokol paralel 8080-esque, yang tidak didukung CPU secara asli, jadi saya meniru itu dengan GPIO (dengan memanipulasi register melalui mmap).
Mengirim gambar layar lengkap membutuhkan sekitar 20 ms, tetapi mendapatkan salinan lengkap dari buffer grafis yang disematkan membutuhkan ~ 180 ms, jadi melewatkan langkah itu adalah tujuan yang paling penting. Perangkat keras layar menyertakan memori SGRAM yang cukup untuk menyimpan seluruh data bernilai frame, dan mendukung penulisan sub-wilayah segi empat, sehingga pengait untuk hanya memperbarui bagian layar yang telah diubah akan diinginkan.
Layar tidak khusus tentang waktu data yang masuk. Input sensor sentuh ditangani oleh IC yang dibuat khusus yang berkomunikasi dengan CPU melalui I²C , yang didukung CPU. Driver sekarang menggunakan linux/input-polldev.h
antarmuka. CPU adalah Broadcom BCM2835 , layar adalah TFT dengan tertanam Himax HX8357 controller, dekoder sensor layar sentuh adalah ST STMPE610 , dan ada pengubah level tegangan (Nexperia 74LVCH245A ) dalam permainan antara HX8357 dan BCM2835. Rincian lebih lanjut tersedia berdasarkan permintaan.