1 poin oleh GN⁺ 2025-05-25 | 1 komentar | Bagikan ke WhatsApp
  • Rotary Phone Dial Linux Kernel Driver adalah modul kernel yang mengubah telepon putar lawas menjadi perangkat input evdev di Linux
  • Proyek ini juga sangat berguna untuk tujuan pendidikan dan pengujian karena menyediakan driver contoh sederhana dan lingkungan pengembangan berbasis mesin virtual
  • Pengembangan dan pengujian dapat dilakukan bahkan tanpa perangkat keras nyata, dan mendukung simulasi GPIO
  • Mendukung hampir semua pengaturan keymapping, serta mampu menangani berbagai skema pengodean pulsa dari berbagai negara
  • Karena merupakan modul kernel standar, proyek ini mudah diperluas dan diintegrasikan ke sistem Linux

Gambaran umum Rotary Phone Dial Linux Kernel Driver

  • Proyek ini adalah modul kernel yang mengubah dial telepon putar lawas menjadi perangkat input standar pada sistem Linux (misalnya keypad numerik)
  • Pengguna yang mungkin tertarik menggunakannya antara lain
    • mereka yang ingin memasukkan angka lewat proses dialing yang lambat
    • pengguna yang ingin membawa telepon analog lama ke era digital
    • pendidik yang membutuhkan contoh driver kernel dan lingkungan pengembangan/pengujian virtual tanpa perangkat keras nyata
    • serta untuk berbagai eksperimen kreatif lainnya

Cara menghubungkan rangkaian

  • Dial putar pada dasarnya terdiri dari dua sakelar: BUSY (keadaan terbuka) dan PULSE (keadaan tertutup)
    • Kedua sakelar ini dihubungkan ke pin GPIO pada sistem yang mendukung embedded Linux dengan resistor pull-up
  • Saat dial diputar, sakelar BUSY berubah ke keadaan tertutup, dan selama dial kembali ke posisi semula, sakelar PULSE berulang kali membuka/menutup
  • Karena sambungan dan penataan pin berbeda-beda menurut negara atau produsen, disarankan menguji respons sakelar dengan multimeter
  • Duty cycle sinyal pulsa (waktu terbuka/tertutup) dan metode decoding juga berbeda menurut negara dan produsen
    • Contoh: di Jerman, terbuka 62 ms dan tertutup 38 ms per pulsa
    • Umumnya satu hingga sembilan pulsa berarti 1–9, dan sepuluh pulsa berarti 0 (ada pengecualian seperti Swedia)
  • Jika ragu, periksa label pada dial atau lakukan pengujian

Cara penggunaan

  • Driver ini adalah modul kernel eksternal standar (out-of-tree kernel module)
  • Ringkasan langkah-langkahnya
    • tambahkan node rotary-dial ke device tree, lalu petakan pulse-gpios dan busy-gpios ke pin yang sesuai
    • bila perlu, ubah peta keycode melalui properti linux,keycodes
    • tetapkan jalur sumber kernel (KDIR) sebagai variabel lingkungan, lalu build, instal, dan muat modulnya
  • Setelah modul kernel dimuat, perangkat input akan dibuat dan berfungsi sebagai keypad numerik
  • Properti perangkat input dan event dial dapat dipantau dengan alat evemu

Mesin virtual (VM) untuk pengembangan dan pengujian

  • Disediakan lingkungan mesin virtual untuk pengembangan driver dan pengujian end-to-end
    • VM ini menyertakan patch devicetree dengan busy/pulse GPIO yang disimulasikan menggunakan gpio-sim
    • GPIO dapat dikendalikan dari user space untuk membuat skenario pengujian
  • VM dapat di-build dan dijalankan setelah mengaktifkan manajer paket Nix dan fitur flakes
  • Di dalam VM, pengguna langsung masuk ke shell pengembangan
  • Setelah driver di-build, pemuatan dan pelepasan modul juga didukung
  • Alat rotary_dialer dapat digunakan untuk mensimulasikan jumlah pulsa tertentu guna menguji input dial
    • (misalnya, dalam lingkungan pengodean ala Swedia, 3 pulsa dikenali sebagai angka 2)

Pengujian

  • Driver ini juga menyediakan test suite yang komprehensif
  • Di lingkungan VM, kasus otomatis dapat dijalankan dengan make test
    • berbagai situasi dapat diperiksa, seperti verifikasi perilaku perangkat input, memastikan keycode yang benar dipancarkan saat angka didial, serta penanganan input yang salah

Apakah akan masuk mainline

  • Pengembang menyebutkan secara bercanda bahwa ia optimistis terhadap masa depan dial putar, meski Linus Torvalds mungkin tidak sependapat

1 komentar

 
GN⁺ 2025-05-25
Komentar Hacker News
  • Membagikan kenangan saat pada akhir 1970-an membuat sendiri pemutar nomor telepon putar dengan kalkulator HP41C, menghubungkan relay reed non-kontak ke buzzer piezo dan saluran telepon, lalu memanfaatkan “synthetic programming” (perintah yang tidak terdokumentasi) untuk menghasilkan bunyi bip singkat sehingga membentuk pulsa dial, menggunakan cara memasukkan nama (dengan dukungan alfabet) untuk mencari nomor dan langsung meneleponnya, serta berbagi anekdot ketika bertemu Keith Jarrett di kantor 10 tahun lalu dan orang-orang sering bingung apakah dia musisi itu, sementara dirinya justru bertanya apakah dia penulis HP-41C Synthetic Programming Manual, yang membuatnya terkejut sekaligus senang; melampirkan info buku dan info synthetic programming
    • Penasaran apakah program seperti itu dibuat langsung di kalkulator, sambil membanggakan bahwa dirinya juga pernah menulisnya langsung di hp49g, dan berpendapat 41c dengan layar satu baris pasti merupakan tantangan yang jauh lebih besar
  • Membagikan pengalaman memodifikasi telepon putar menjadi headset Bluetooth sepenuhnya, sehingga nomor juga bisa ditekan lewat dial, mengaku respons di HN kurang meriah tetapi bangga karena sempat diperkenalkan di hackaday, serta melampirkan tautan proyek terkait dan posting blog pribadi, dan berpikir mode numpad putar Bluetooth juga akan mudah dibuat meski sedang kekurangan waktu
    • Sekarang ESP32 jelas pilihan yang jauh lebih ekonomis, tetapi ia memang sangat ingin membuat driver kernel Linux sehingga memilih mengimplementasikannya sendiri
  • Membagikan pengalaman saat iPhone masih sebatas rumor, ketika ia mengusulkan akan lucu jika click wheel iPod dipakai untuk meniru dial putar, tetapi ditolak semua orang, dan kini terpikir ingin menyiapkan Linux box demi nuansa dial putar klasik
    • Menegaskan bahwa ia ternyata tidak sendirian; memang Apple mendaftarkan paten dial putar berbasis touch wheel dan Steve Jobs juga tercantum sebagai penemu, sementara dirinya dan rekan di Apple juga mengajukan paten yang hampir sama, tetapi akhirnya patennya kedaluwarsa dan hanya paten Steve yang tersisa; ia bercerita bahwa saat sedang minum-minum di SF, ia mendapat ide membuat dial dengan touch wheel, dengan physics engine dari game pinball sebagai inspirasi penting, dan ide itu diakui oleh komite paten; menurutnya meski ada perbedaan dengan paten Steve, mungkin juga ada strategi untuk menambah jumlah paten iPhone
    • Berandai-andai bahwa kalau iPod dirilis hanya dengan tambahan jaringan seluler, mungkin akan tercipta sejarah alternatif yang menarik, sambil memperkenalkan tautan video mengetik efisien
    • Menduga pasti ada aplikasi untuk menelepon dengan dial putar di layar sentuh
  • Senang karena akhirnya sepertinya ada seseorang yang mencoba menamatkan Dark Souls dengan telepon putar
    • Jadi teringat kenangan memainkan Soul Calibur dengan kontroler pancing Dreamcast
  • Ini mengingatkannya pada Sarah dari Connections Museum di Seattle, yang membuat driver untuk memungkinkan pulse signaling pada sentral telepon lama dengan menghubungkannya ke soft PBX Asterisk, sambil memperkenalkan tautan video penjelasan
  • Saat melihat implementasi driver minimalis seperti ini, ia terkesan bahwa kode driver sebenarnya bisa sangat sedikit, tetapi flag dan metode kernel yang harus diketahui ternyata sangat banyak, dan ia pernah ingin mengimplementasikannya ulang dengan Rust namun kecewa karena binding yang diperlukan belum siap; menurutnya menulis posting blog tentang pendekatan dan kesulitan yang dialami juga akan menarik
    • Mengakui bahwa saat ini hanya sedikit API subsistem yang didukung binding Rust sehingga belum bisa melangkah cukup jauh, dan berharap bisa mencoba lagi tahun depan saat dukungannya lebih matang lalu membagikan pengalamannya
  • Mengenang bahwa pada modem kompatibel Hayes, dial pulsa putar bisa dilakukan dengan perintah ATDP alih-alih ATDT
  • Memperkenalkan fakta sejarah menarik bahwa pada telepon putar di Selandia Baru, angka dan jumlah pulsa dipetakan secara terbalik; memang menggunakan sistem pulsa 10 digit
    • Menjelaskan alasan teknisnya: pada peralatan sentral telepon mekanis awal, yaitu rotary exchange, ada masalah keausan clutch pad, sehingga untuk mengurangi keausan total muncul gagasan desain terbalik seperti digit 1 menghasilkan 9 pulsa; ide ini bermula di Selandia Baru, dan setahunya Norwegia juga mengadopsi cara yang sama; melampirkan tautan Wikipedia tentang rotary system
  • Menyebut perlunya versi konversi DTMF (touch-tone); di Australia ada contoh pembuatan kotak kecil bertenaga line power yang mengubah pulsa putar menjadi touch-tone, sehingga dulu telepon biasa masih bisa dipakai lama, meski kini banyak gedung baru bahkan tidak lagi memiliki saluran telepon, sesuatu yang disayangkan
    • Masih bisa dipakai sebagai telepon voip dengan menghubungkannya ke FXS/ATA, dan bahkan telepon candlestick dari tahun 1920-an pun masih dipakai berkat cara ini
  • Merasa kebetulan ini lucu karena tepat saat membaca tulisan ini ia sedang membongkar telepon putar di meja dan memutar pegasnya
    • Penasaran sudah berapa lama telepon itu benar-benar tergeletak terbongkar di atas meja; merasa senasib karena miliknya juga mungkin sudah sekitar 2 tahun