2 puan yazan GN⁺ 2024-08-05 | 1 yorum | WhatsApp'ta paylaş
  • Kindle Paperwhite 3’te macOS ekranını yakalayıp aktarma ve gösterme yöntemiyle 3,5 fps e-ink monitör demosu gerçekleştirildi
  • Kindle üzerinde 8000 portunda görüntü alan bir Go listener sunucusu çalışıyor; alınan JPG, yerleşik yardımcı araç eips ile ekrana çiziliyor
  • macOS tarafında screencapture, ImageMagick ve netcat birleştirilerek ekran yakalama, dönüştürme ve usbnet üzerinden aktarım yapılıyor
  • Her karede JPG’nin tamamı gönderildiği için, metin düzenleyici gibi az değişen ekranlarda aktarım israfı yüksek ve iyileştirme alanı geniş
  • Ayrı bir codec ya da VNC uygulaması olmadan, yalnızca mevcut araçların birleşimiyle e-ink yardımcı monitör denemesinin hızlıca yapılabileceğini gösteriyor

Jailbreak ve root shell elde etme

  • İlk adım, Kindle’a jailbreak uygulayıp herhangi bir yolla root shell erişimi elde etmek
  • İlgili kaynaklar mobileread.com üzerinde bulunabilir; LanguageBreak thread içindeki talimatlardan yararlanılabilir
  • Uygulayan kişi LanguageBreak talimatlarını birebir izlememiş olsa da, hata ayıklamada LanguageBreak GitHub deposundan faydalanmış
  • Jailbreak yönteminin kendisinden daha önemli şart, Kindle üzerinde root shell elde etmek

Kindle listener sunucusu ve eips çıktısı

  • Kindle tarafı için 8000 portunda dosya alan bir Go programı yazıldı
  • Listener, gelen JPG’yi kaydettikten sonra Kindle’ın yerleşik ekran çıktı yardımcı aracı eips’i çağırıyor
  • Örnek akış:
    • Go programı JPG dosyasını alır
    • /tmp/img.jpg konumuna kaydeder
    • Aşağıdaki komutla ekrana çizer
eips -g /tmp/img.jpg -w gc16 -x 128 -y 0
  • Bu komut görüntüyü partial update ile gösterir
  • Full update iyi sonuç vermemiş; eips bayraklarının anlamı eips wiki üzerinden görülebilir
  • İlk kareden önce ekran eips -c ile temizlenebilir
  • Go kaynak kodu kaybolmuş olsa da, 30 satırdan kısa basit bir koddu

macOS ekran yakalama ve görüntü dönüştürme

  • macOS’ta ekran screencapture ile tekrar tekrar yakalanıp PNG dosyası olarak kaydediliyor
  • Yakalanan görüntü ImageMagick ile Kindle ekranına uyacak şekilde döndürülüyor, yeniden boyutlandırılıyor ve gri tonlamaya dönüştürülüyor
  • Dönüştürülen JPG, netcat ile usbnet üzerinden Kindle listener sunucusuna gönderiliyor
/usr/sbin/screencapture -C -x /tmp/orig.png
convert /tmp/orig.png -rotate 270 -resize '810x1448!' -type GrayScale -depth 8 -colors 256 /tmp/gray.jpg
cat /tmp/gray.jpg | nc -w 0 192.168.15.244 8000
  • screencapture -C -x, ekranı /tmp/orig.png olarak yakalar
  • convert, görüntüyü 270 derece döndürür, 810x1448 boyutuna yeniden boyutlandırır ve ardından 8 bit gri tonlamalı, 256 renkli JPG’ye dönüştürür
  • nc, dönüştürülen /tmp/gray.jpg dosyasını 192.168.15.244:8000 adresine gönderir
  • Çözünürlük kullanılan Kindle cihazına göre değiştirilmeli; port da Kindle listener sunucusunun ayarıyla eşleşmelidir

Performans ve kullanılabilirlik sınırları

  • Bu uygulama, önceki gece eğlence için hızlıca yapılmış bir hack; hem performans hem de kullanılabilirlik açısından iyileştirme alanı büyük
  • Her karede JPG dosyasının tamamını göndermek oldukça israfçı bir yöntem
  • Ardışık kareler arasındaki değişim miktarı çoğu zaman küçük ve sıkıştırılması kolay olabilir
    • Özellikle metin düzenleyici gibi ekranın yalnızca bir bölümünün değiştiği kullanımlarda bu özellik daha belirgin olabilir
  • h.264 gibi bir codec ya da VNC gibi bir protokolü sıfırdan oluşturmadan, mevcut araçlarla hızlıca iyileştirme yapılabileceği düşünülüyor

Kaynaklar

1 yorum

 
GN⁺ 2024-08-05
Hacker News yorumları
  • Nasıl yaptığını paylaşsaydı ve bunu kısa yazı platformu olmayan bir yerde yayımlasaydı çok daha ilginç olurdu

    • Şu anda hızlıca bir GitHub gist hazırlıyorum; birkaç dakika içinde bağlantıyı buraya koyacağım
      Düzenleme: https://gist.github.com/adtac/eb639d3c707b55a28f0ee9a420aa7e...
    • Ben olsam daha sert söylerdim; oldukça yapıcı ifade etmiş. X/Twitter'a uzun yazı koyulmasından gerçekten nefret ediyorum
      Bilmeyenler için ekleyeyim: Bir tweet'e @threadreaderapp unroll diye yanıt verirseniz yeniden oluşturulmuş bir belge alabilirsiniz. Bot, açma işlemi bittikten sonra yalnızca size doğrudan yanıt verir
    • HN'yi kısa yazı platformu olarak görmesi ilginç
  • Benzer bir proje olarak HDMI girişi denemiştim
    https://hackaday.com/2021/01/08/old-kindle-shows-hdmi-video-...
    Bu yüzden OK Monitor'ü yaptım: https://barwap.com/projects/okmonitor/

    • Bu arada, doğrudan çalışan hazır bir ürün sürümü olsa para verip almak isterdim
      Ticari olarak mantıklı olduğunu sanmıyorum. Gelirin birkaç bin ila on binlerce dolar seviyesinde kalacağını düşünüyorum; kâr marjını nasıl ayarlarsanız ayarlayın, harcanan zamanı veya maliyeti çıkarmak zor olur. Yine de hobi projelerinde etki yaratmak için bazen böyle ilerlendiğini gördüm
      Bilgisayar için kablosuz bir e-ink ekran olsa güzel olurdu; ideal olarak da görüntü ve gücü birlikte alan bir USB-C dongle biçiminde. HDMI + USB güç de olur
  • Son birkaç gündür genel amaçlı bir cihaz olarak Android + Kaleido3 test ettim, Termux-X11 de kullandım
    Kaleido3 oldukça kullanılabilir. Yeni dalga biçimleri ve doğru dithering algoritmaları sayesinde sınırlı tavizlerle video izlemek bile mümkün, kare hızı da yüksek. Kodlama da gayet yapılabiliyordu; derleyici ve yorumlayıcıları Termux sağladı
    Termux-X11 kullanınca Android cihazda masaüstü Linux'u native olarak çalıştırabiliyorsunuz. Böylece e-ink'i bir monitör cihazının parçası olarak kullanmak yerine, doğrudan tabletin içindeki aktif bilgisayar ekranı gibi de değerlendirebilirsiniz

  • Kindle'ı jailbreak etmek isteyen biri için mobileread forumlarından başlamak iyi olur

  • E-ink ekranlar bir gün ucuzlayabilir mi? Artık temel patentlerin süresinin dolma zamanı gelmiş gibi

    • Rakip ürünler de hâlâ epey pahalı. Dijital takvimimde kullandığım e-paper ekran, bildiğim kadarıyla E Ink ürünü değil ama tek tek alınca yaklaşık 50 euro: https://www.waveshare.com/7.5inch-e-paper-hat.htm
      Takvimimdeki en büyük maliyet kalemi bu ve fiilen fiyat bandını zorla belirliyor: https://shop.invisible-computers.com/products/invisible-cale...
    • https://news.ycombinator.com/item?id=26143779
    • Patentlerin pek ilgisi yok. E Ink'in pahalı olmasının nedeni, ölçeği küçük niş bir ürün olması. LCD ekranlar her çeyrekte milyarlarca üretiliyor ve herkesin LCD'li birden fazla cihaza sahip olma ihtimali yüksek
      E Ink'in yaptığı işlerin çoğu LCD ile ikame edilebilir ve LCD'den pahalı olduğu için onu özellikle kullanmak isteyen yer az
      “Patent” belirgin bir dayanak olmadan ortaya atılan bir komplo teorisine daha yakın. E Ink'in rakipleri de var; örneğin DES/Display Electronic Slurry ekranlar. E Ink corp aşırı fiyat çekiyor olsaydı GoodDisplay pazarı çoktan kapmış olurdu
      Daha doğrusu, E Ink patentlerinin var olduğu iddiası komplo teorisi değil. Bazılarının süresi doldu ve E Ink corp da yenilik yaptıkça yeni patentler almaya devam ediyor. LCD patentleri de inanılmaz fazla. Komplo teorisi olan kısım, fiyat artışlarının ve yüksek fiyatların patentlerden kaynaklandığı ve bu yüzden teknolojinin yaygınlaşmasının engellendiği iddiası
  • Neden jailbreak'e kadar gidiliyor? Kindle'ın yerleşik tarayıcısıyla masaüstü ekran görüntüsü akışı yapılamaz mı?

    • Bu çok daha basit olurdu. Ama her karenin ağ → DOM → tarayıcı uygulaması belleği → framebuffer yolundan geçmesi gerekiyor; tarayıcının kullanılabilir bir kare hızını kaldıracak kadar güçlü olup olmadığından şüpheliyim
      Kindle tarayıcısı Kindle Store'u veya Goodreads'i bile zar zor idare ediyor; ama tersi kanıtlanırsa sevinirim. O zaman yeni Kindle'larda da varsayılan hâliyle çok daha kolay uygulanabilir
  • GitHub'da yazan şu: “Ne yazık ki Go kaynak kodunu kaybettim”

    • Devamında “yine de oldukça basitti ve 30 satırdan azdı” demiş
      O kadar basitse hemen yeniden yazıp GitHub'a ekleyememiş olması daha da garip
  • Bunu kolayca yapmak için Boox okuyucu üzerinde Superdisplay uygulaması kullanılabilir

  • En önemli soruya cevap vermemiş: uğraşmaya değer miydi?

    • Bunu söylemek için henüz erken. Ana monitör olarak kullanışlı değil, ama ikincil monitör olarak harika
      Mevcut hâlinde kare hızı iyi, ama gecikme korkunç. Bu yüzden yazma deneyimi kötü; fakat yazı yazmayı gerektirmeyen pek çok kullanım var
      Sohbet penceresi gibi düşük gecikmeli yazma geri bildiriminin önemli olduğu durumlarda bile giriş metin kutusunu LCD monitörde tutup, çoğunlukla statik kalan sohbet geçmişini Kindle'da gösterebilirsiniz. Oraya varmak için daha fazla iş gerekir ama şimdilik iyi bir başlangıç