Pinebook

Posting ini tentang PineBook, laptop Arm murah dari pembuat Pine A64. Harga laptop ini 99 USD (versi 14 inch), dengan ongkos kirim via DHL 29 USD, dan pajak 15 USD (pajak di Thailand, di negara lain tentunya beda). Spesifikasi laptop ini: Prosessor ARM AllWinner A64 1,1 Ghz, RAM 2GB (tidak bisa diupgrade), eMMC 16 GB (bisa diupgrade). Ada dua pilihan ukuran layar, 14 inch dan 11.6 inch, keduanya memiliki resolusi sama 1366×768 pixel, versi yang 11.6 inch lebih murah 10 USD (89 USD). Versi 14 inch beratnya 1.26 kg dan versi 11.6 inch beratnya 1.04 kg.

Laptop ini sudah diumumkan sejak tahun lalu, dan siapapun bisa mendaftar preorder tanpa uang muka. Baru 5 April saya mendapatkan email kesempatan untuk memesan. Jika saya segera memesan maka akan diproses duluan. Setelah dipertimbangkan beberapa hari, akhirnya saya memesan tanggal 10 April. Tanggal 21 April laptopnya sampai. Saya termasuk batch awal yang menerima laptop ini.

Sebelum bercerita tentang laptop ini, saya ceritakan sedikit tentang pembuat PineBook ini. Sebelum membuat Pinebook mereka sudah membuat Pine A64, sebuah single board computer (SBC) seperti Raspberry Pi. Bedanya mereka dari awal memilih ARM 64 Bit (Allwinner A64), membuat harga yang murah (versi termurah 19 USD dan versi paling mahalnya 29 USD), memiliki RAM 2GB (Raspberry Pi hanya 1GB) dan memiliki ethernet gigabit.

Pine A64 sukses di Kickstarter dengan semboyan Superkomputer 64 bit, tapi ternyata dari sisi hardware dan software sangat mengecewakan. Hardwarenya gampang overheating dan tidak ada heatsinknya. Tidak ada LED yang bisa dipakai untuk indikasi booting sukses. Di versi awal juga ada bug fatal karena salah design, voltage ripple menyebabkan port gigabitnya tidak bisa mencapai kecepatan maksimal, bahkan dalam mode gigabit akan jadi lebih lambat dari fast ethernet. Mengutip dari review di Armbian:

Pine64 is not a ‘Super Computer’ but most probably the slowest 64-bit ARM board around due to A64 being limited regarding maximum cpufreq and overheating issues (40nm process being responsible for) and lack of fast IO interconnections (only one real USB 2.0 host port present, no eMMC option possible, no SD card implementation using the faster modes). If you then combine the high expectations with a rather clueless kickstarter crowd (many of them not even getting that they did not buy products but backed a project) and the hardware flaws it’s pretty obvious why their forums are full of complaints and why they receive so much boards as being DOA that work flawlessly in reality.

Sampai saat ini software untuk board Pine A64 terutama untuk desktop masih mengecewakan. Meskipun SoC yang dipakai memiliki GPU Mali 400, tapi tidak disupport dengan baik di Linux. Board ini juga bisa diinstall Android, dan sepertinya fitur grafik berjalan lebih baik di Android (bahkan bisa menjalankan Netflix meski hanya dalam resolusi SD). Sebagai server board ini cukup baik, memorinya relatif besar dibanding SBC lain, dan kernel Linux juga sudah cukup stabil. Saat ini board Pine A64+ yang saya miliki hanya saya gunakan sebagai server dan untuk testing portabilitas software yang saya buat.

Selain SBC tersebut, mereka juga merilis PADI. PADI adalah board microcontroller ARM dengan WIFI yang berusaha menyaingin ESP8266. PADI ini hanya rebranding dari board yang sudah ada. Sepertinya produk yang ini kurang sukses.

Saya tidak berharap banyak dari Pinebook mengingat sejarah SBC mereka, dan Pinebook ini designnya menggunakan SoC yang sama. Ketika sampai, power adaptornya bengkok (tapi bisa diluruskan), untungnya batere dalam keadaan penuh. Bagian depan luarnya putih polos seperti kertas putih. Merk Pinebook hanya terlihat setelah dibuka.

Ketika saya nyalakan, sekiar 10 detik kemudian saya sudah sampai di layar login (user: pine64, password:pine64). Sebenarnya kita bisa menginstall Android untuk laptop ini, tapi OS default yang diberikan adalah Ubuntu Mate, dan saya saat ini belum mencoba Android di laptop ini. Percobaan awal menunjukkan bahwa aplikasi bisa dimulai dengan cepat, misalnya LibreOffice dan Scratch. Browser Firefox relatif lambat, serupa dengan SBC lain. Beberapa kali saya sempat mengalami masalah dengan Wifi yang tiba-tiba berhenti (perlu disconnect dan reconnect lagi).

Untuk mengetik pelan-pelan, keyboardnya cukup bagus, tapi ketika mengetik dengan cepat, maka mulai terasa masalahnya. Kadang kita merasa sudah menekan tombol, tapi ternyata belum tertekan. Keyboardnya terasa agak aneh, ada tombol yang gampang ditekan, ada yang sulit. Tombol kursor kadang berbunyi ketika ditekan. Saya baca review versi 11.6 inch sepertinya keyboardnya lebih bagus. Saya cukup suka dengan layarnya, walaupun hanya Twisted Nematic (TN), bukan IPS.

Trackpadnya baik-baik saja, tapi ketika diklik bunyi ‘klik’ nya cukup terdengar. Di Ubuntu Mate tidak terdeteksi sebagai trackpad/touchpad, sehingga tidak ada palm rejection, jadi ketika mengetik harus menghindari area tersebut supaya mousenya tidak bergerak.

Selain masalah WIFI, ternyata ketika layar ditutup, tidak otomatis sleep. Ini masalah software yang tidak mendeteksi hall sensor, dan akan ditangani di update berikut. Saya tidak mengetes output HDMI, tapi ternyata menurut laporan tidak jalan juga di versi saat ini. Headphone Jack juga masih belum berfungsi, walaupun bisa dijadikan serial port untuk debugging. Ketika saya membuka youtube, audio tidak keluar. Setelah berkonsultasi via IRC, ternyata masih perlu diakali supaya bisa jalan.

Kamera bisa berjalan, tapi kualitasnya sangat jelek, hanya 0.3 megapixel. Jadi jangan berharap banyak untuk bisa memakai kamera ini. Anggap saja ini cuma pajangan.

Hal paling parah saat ini adalah: driver Mali tidak jalan, sehingga semua software yang menjalankan video atau animasi akan sangat lambat. Bahkan aplikasi game sederhana seperti supertux, animasinya sangat lambat. Software editor, terminal, office atau browser bisa jalan seperti biasa dan cukup nyaman. Tapi jika Anda ingin menjalankan aplikasi multimedia, sebaiknya tunggu dulu sampai softwarenya matang.

Secara teori batere bisa bertahan lama, praktiknya saat ini cuma sekitar 3 jam saja. Ketika saya set sleep lalu charging, ternyata akan menyalakan layar dan bagian batere jadi panas. Untuk saat ini, sebaiknya matikan laptop ketika charging.

Untuk saat ini, jika Anda bukan orang yang suka ngoprek, maka saya tidak menyarankan laptop ini. Jika berbagai masalah software berhasil diselesaikan, maka laptop ini sepertinya cukup bagus untuk dibawa-bawa. Karena keyboardnya kurang enak, kemungkinan lebih bagus untuk konsumsi konten (browsing, baca ebook). Laptop ini tidak memiliki kipas (fan), jadi sunyi.

Laptop GNU/Linux berprosessor ARM

Bagian posting ini sekedar bercerita tentang sejarah Laptop Linux dengan prosessor ARM, lalu saya akhiri perbandingan Pinebook ini dengan Chromebook yang saya miliki.

Dari dulu, sebagian orang sangat menginginkan laptop Linux dengan prosesor ARM alih-alih Intel x86. Mereka tidak ingin Chromebook yang memakai kernel Linux, tapi hanya berisi browser, bukan pula Android meski bisa diroot dan diinstall Linux lengkap dalam chroot, tapi laptop ARM yang benar-benar Linux standar dengan tools dari GNU (GNU/Linux).

Ada beberapa alasan mengapa orang ingin memakai laptop dengan prosesor ARM. Alasan yang dulu sering dikemukakan adalah pemakaian daya yang rendah, tapi sekarang manajemen daya Intel juga sudah bagus (contohnya Macbook bisa dipakai belasan jam). Sebagian orang muak terhadap dominasi Intel dan ingin memakai prosesor lain.

Memakai prosesor yang kurang mainstream sedikit lebih aman, karena banyak malware dirancang untuk prosesor Intel. Memakai prosesor lain juga bisa memaksa kita belajar arsitektur prosesor tersebut. Apapun alasannya, banyak orang masih tetap ingin laptop dengan prosesor ARM.

Sebagian orang cukup puas dengan membeli hardware Android atau Chromebook dan menimpanya dengan GNU/Linux. Biasanya ada berbagai masalah dengan pendekatan ini, kadang masalah WIFI, masalah sound, masalah grafik (tidak bisa memakai hardware acceleration), dsb. Masalah-masalahnya seperti jaman awal Linux di Laptop x86.

Sebagian tetap ingin Laptop GNU/Linux saja, bukan hasil konversi Android ataupun Chromebook. Hacker Andrew Huang bahkan sudah merancang sendiri laptop ARM dari tahun 2012 dan berhasil merilis tahun 2014. Tapi laptop ini masih sangat mahal, jadi banyak orang berganti keinginan: Laptop Linux ARM yang murah.

Ketika Raspberry Pi dirilis tahun 2013, sebagian orang langsung berpikir untuk membuat semacam case berbentuk laptop. Sebagian membuat sendiri “laptop” raspberry pi dengan menempelkan berbagai komponen (seperti contohnya ini). Sebagian cukup puas dengan Motorolla Lapdock, yang tadinya ditujukan sebagai lapdock untuk ponsel.

Tapi karena Lapdock sudah dihentikan produksinya, ada yang membuat case baru sejenis (misalnya Pi Top). Sayangnya Pi Top ini cukup mahal, masih di atas 200 USD.

Saat ini saya sudah memakai Chromebook yang saya install ArchLinux dengan spesifikasi serupa dengan Pine64 yang 11.6 inch, tapi prosessornya RockChip 3288 (Arm 32 bit). Tadinya saya memakai Crouton supaya Linux dan Chrome bisa berdampingan, tapi setelah update terakhir, selesai memakai Crouton, chromebooknya akan selalu whitescreen. Jadi saya putuskan dual boot saja ArchLinux dan ChromeOS.

Saya sudah cukup berusaha “mengoprek” benda ini, bahkan sudah mengcompile modul kernel ekstra driver usb serial CH340 yang tidak tersedia di kernel default. Saat ini saya masih belum bisa memakai driver Mali di Chromebook Linux saya (hang jika dipaksa), tapi selain itu semua hardware bekerja dengan baik.

Chromebook yang saya miliki harganya tidak jauh berbeda dari Pinebook. Meski dijual oleh perusahaan lokal sini, Chromebook saya memiliki FCC ID Hisense Chromebook. Ketika saya beli harganya 4200 baht (122 USD), lebih murah dari Pinebook karena saya tidak perlu membayar ongkos kirim.

Kalau dibandingkan dengan berbagai Chromebook, Pinebook ini prinsipnya lebih terbuka. Chip eMMC pada Pinebook bisa diupgrade sampai 64 gb (dan mungkin bisa lebih di masa depan), dan jack audio bisa dijadikan serial port untuk keperluan debugging. Sementara kebijakan Chromebook adalah hardware yang tertutup dan sangat ditujukan untuk end user, bahkan output serial port dimatikan dan tidak tersedia di hampir semua Chrome OS/Chromebook.

The kernel team has been working to remove cruft from the Chromium OS kernel configs. Since there are no Chromebooks with a serial port, serial port drivers were removed from the stock configuration, which is a minor inconvenience for those who still do a lot of debugging using the serial port.

Sayangnya Chromebook berbasis ARM tidak punya slot mini PCI untuk debugging, jadi sangat merepotkan jika ingin melakukan development kernel di Chromebook. Jika tertarik development low level, maka Pinebook lebih baik. Untuk pemakaian sehari-hari, Chromebook (dengan ChromeOS) jauh lebih mudah.

Sebelum menutup artikel ini, saya bandingkan dengan beberapa laptop lain di rumah kami. Sebenarnya saya jarang bepergian dengan laptop, karena lebih sering bekerja di kantor atau rumah. Mac Book pro adalah laptop Risna. Acer saya pakai jika ada pekerjaan di luar yang butuh layar besar dan prosessor yang powerful (Core i7). Kedua laptop ini menurut saya cukup berat, jadi malas membawa keduanya untuk jalan-jalan, apalagi jika ditambah perlu menggendong anak.

Laptop/tablet Lenovo dulu saya beli di Bangkok, karena tidak menyangka ada pekerjaan singkat yang hasilnya lumayan sedangkan saya tidak membawa laptop. Jadi saya beli laptop seadanya yang kecil dan mudah dibawa. Sejak beli laptop ini yang saya bawa untuk liburan atau perjalanan singkat lain ke luar kota. Keyboard laptop/tablet ini sangat tidak nyaman untuk mengetik. OS-nya Windows 10, sehingga bisa menjalankan software apapun yang saya butuhkan (termasuk juga menjalankan Virtual Box meski sangat terbatas karena memorinya hanya 2GB). Di rumah ini menjadi tablet saya untuk membaca eBook PDF.

Saya tadinya berharap Chromebook akan cukup menggantikan Lenovo, tapi ternyata masih banyak software yang tidak jalan atau kurang optimal di ARM. Padahal benda ini cukup ideal: mengetik dengan benda ini cukup nyaman, keyboardnya lebih bagus dari Lenovo, layar 11.6 inch sudah cukup besar, dan relatif ringan (1.04 kg).

Jika Anda butuh laptop bagus untuk development, belilah Macbook Pro atau laptop high end lain. Jika ingin laptop untuk sekedar browsing dan Anda punya koneksi Internet yang bagus, belilah Chromebook (tidak perlu memikirkan malware karena Chromebook ini relatif aman). Jika Anda masih memakai aplikasi Windows dan butuh laptop biasa, ada banyak laptop Windows murah, sebagian sekaligus bisa menjadi tablet.

Saat ini Pinebook lebih cocok untuk orang yang suka mengoprek/hardware hacking, mungkin di masa depan jika softwarenya semakin matang, ini bisa jadi alternatif untuk dipakai sehari-hari. Saya akan mencoba memberikan update di blog ini jika softwarenya sudah semakin bagus.

Mini PC Router

Posting ini membahas Mini PC yang baru saya beli untuk menjadi router/firewall/web server di rumah. Ini adalah mini PC bermerk Qotom seri Q190G4, tanpa WIFI (untuk access point saya memakai Xiao Mi). Benda ini saya beli dari AliExpress.

Ketika membeli, kita bisa mengkonfigurasi jumlah memori dan SSD. Qotom yang saya beli memiliki spesifikasi: memori 4 GB DDR3L , mSATA SSD  32 GB dan bisa ditambah SSD biasa.  Prosessornya Celeron J1900 (2 Ghz). Ada 4 port gigabit dengan chip controller Intel, sebuah port VGA, 3 USB 2.0 dan 1 USB 3.0.

Karena outputnya hanya VGA sedangkan monitor saya tidak lagi mendukung VGA, saya memakai monitor plus modul LCD controller. Modul ini saya beli tujuannya memang untuk berbagai eksperimen, karena memiliki input VGA, HDMI, dan Composite. Layar yang dipakai di sini adalah LCD dari laptop.

Modulnya sendiri (teorinya) cukup generik dan bisa dihubungkan ke berbagai jenis LCD, bukan cuma yang ini.

Sepuluh tahun lalu waktu kecepatan internet masih 1mbps down/512kbps up, WRT54GL sudah cukup menjadi router dan WIFI access point (memori cuma 16 Mb). Lima tahun kemudian, saya sudah mengganti dengan ASUS RT-N16 dengan debwrt (memori 128 Mb). Sekarang kecepatan Internet di rumah sudah sangat bagus, jadi sudah saatnya menguprade router. Continue reading “Mini PC Router”

Bug: file version control yang bisa diakses via web

Untuk orang awam: saya menemukan bahwa beberapa situs yang cukup besar (beberapa di antaranya: Kompas  dan Tempo) memiliki kesalahan konfigurasi (misconfiguration) sehingga memungkinkan saya mendownload source code web tersebut. Saya akan membahas bagian teknisnya, tapi sebelumnya saya akan berusaha jelaskan untuk orang awam.

Nilai sebuah source code bisa beragam. Ibaratnya di depan rumah seseorang saya menemukan ada dokumen lengkap tentang sebuah bangunan. Di situ tercantum berbagai informasi, denah lengkap rumahnya, sampai merk kunci yang digunakan.

Nah jika rumah itu ada celahnya, maka dengan mudah saya tinggal membacanya, tanpa perlu mengelilingi rumah untuk mencari kelemahannya, dokumen itu nilainya penting, karena jadi komponen penting untuk bisa masuk. Tapi jika rumah itu memang aman, tidak ada celahnya, maka dokumen itu tidak terlalu bernilai. Jadi memiliki source code, tidak berarti kita selalu akan bisa masuk.

Lalu apa hasil temuan dari beberapa situs besar yang saya temukan? Salah satu situs ada yang ternyata memiliki password rahasia yang memungkinkan kita bisa login ke account manapun (password ini memang ditanam oleh developernya). Ada situs yang memiliki API Key dalam source code. Continue reading “Bug: file version control yang bisa diakses via web”

Catatan Hosting 2017

Setiap beberapa tahun saya pindah hosting atau upgrade ke server yang lebih baik. Saya menuliskan catatan teknis ini sebagai pengingat di masa depan mengenai berbagai solusi hosting yang pernah saya coba, dan perkembangannya dari masa ke masa. Bisa dilihat di arsip blog ini kategori hosting, dari mulai paket hosting 5000 rupiah sebulan waktu blog ini dimulai, sampai sekarang memakai server sekitar dengan biaya sekitar 30 Euro/bulan.

Terakhir kali pada tahun 2015 saya menyewa dedicated server di online.net, dan sejauh ini semua berjalan dengan baik. Di awal tahun ini saya masih memakai provider hosting yang sama (online.net), tapi saya mengupgrade ke server yang lebih baik: 1x Intel® Xeon® D-1531 dengan RAM 32 GB dan SSD 2 x 250 GB (30 euro per bulan). Untuk keperluan hosting web saja, sebenarnya ini agak berlebihan. Saya memakai server ini juga untuk keperluan lain: hosting git, server VPN, server untuk pentest, server untuk Jupyter Notebook, dll.

Salah satu software yang banyak bugnya adalah WordPress dan berbagai extension dan themenya. Karena web ini dan berbagai situs yang saya miliki hanyalah situs pribadi, saya tidak melakukan hardening karena sebagian besar membuat situs menjadi kurang nyaman dipakai. Contohnya: halaman login bisa disembunyikan, tapi akan memperumit setting beberapa software untuk blogging dari desktop.

Server ini cukup powerful, jadi saya bisa menjalankan beberapa Virtual Machine. Sebagai kompromi antara keamanan dan kenyamanan, saya membuat satu VM khusus untuk semua website saya. Tiap website diisolasi  dengan menggunakan Docker (satu domain menggunakan satu container). Dengan docker, jika satu website ternyata jebol, maka  tidak akan mempengaruhi website lain. Untuk menambah keamanan, saya juga memakai cloudflare (versi gratis).

Continue reading “Catatan Hosting 2017”

Sega Pico

Di Chiang Mai ada beberapa toko yang menjual barang bekas dari Jepang. Barang-barangnya dijual 300 baht per kilogram. Kadang kami iseng ke sana, biasanya mencari mainan. Seminggu lalu ketika pergi ke sana ada satu benda yang menarik perhatian saya.

Isinya utamanya adalah keyboard ini, dan ada sesuatu yang seperti buku, dan seperti catridge. Segera saya Googling mengenai Sega Pico (dari covernya ada tulisan “Sega Toys” dan “Pico”). Ternyata ini adalah salah satu game untuk Sega Pico. Saya cek konektor keyboard ini adalah PS/2 biasa, jadi tanpa consolenya pun pasti bisa dipakai sebagai keyboard komputer. Kasus terbaik: keyboardnya punya mapping standar untuk alfabet inggrisnya, kasus terburuk tinggal bikin mapper dengan Teensy atau microcontroller lain.

Benda ini membuat saya penasaran: apakah ada console Sega Pico juga di toko ini. Setelah mencari-cari, ternyata ada, walau ternyata sangat berat,  sekitar 3kg. Untungnya pemilik tempat ini tidak strict dengan harganya, jadi banyak yang bisa ditawar. Continue reading “Sega Pico”

Logic Analyzer

Logic analyzer adalah instrumen untuk melihat dan mencatat state dari sebuah sistem atau sirkuit digital. Penjelasan yang lebih lengkapnya ada di Wikipedia, di posting ini saya hanya ingin membahas kegunaan praktis Logic Analyzer untuk pemula elektronik.

Secara mudahnya: dengan logic analyzer kita bisa melihat di waktu t apakah sebuah signal sedang dalam kondisi on/off (high/low atau 1/0). Dengan software tertentu (atau dengan software buatan sendiri) kita bisa mendecode signal 0/1 menjadi bentuk yang bisa kita mengerti.

Debugging

Bentuk debugging paling sederhana yang bisa dilakukan dengan logic analyzer adalah ini: jika kita mengeset nilai output sebuah pin, benarkah nilainya berubah? mungkin saja kita lupa mengeset mode pin menjadi output, mungkin salah nomor pin karena lupa mengupdate kode (atau mungkin salah modifikasi library milik orang lain).

Sebaliknya kita juga bisa mendebug input: kenapa hasil pembacaan sensor digital tidak terbaca? apakah sensornya memang tidak mengirimkan apa-apa, atau kode yang telah dibuat untuk membaca ternyata masih salah? (salah pin, salah mode, dsb).

Jika kita memakai protokol seperti SPI, I2C, UART, dan memilih decode yang tepat, kita juga bisa melihat apakah data yang kita kirimkan atau yang kita terima sudah benar (misalnya dalam kasus I2C: alamat device mungkin salah).

Selain untuk mendebug data input dan output, kita juga bisa mendebug timing. Dengan software tertentu, kita bisa bisa melihat jarak waktu secara visual.

Selain untuk mendebug sebuah masalah, secara umum logic analyzer ini bisa dipakai untuk belajar. Dengan melihat langsung secara visual signal SPI atau I2C, kita akan lebih mudah mengerti protokol-protokol tersebut. Continue reading “Logic Analyzer”

Oprekan akhir pekan: RTL-SDR GPS, 3D Printer, dll

Sekarang saya akan berusaha untuk rajin menceritakan hack/oprekan tiap akhir pekan, walau kadang ada juga hal-hal yang saya lakukan di hari kerja. Kali ini saya akan menuliskan tentang menerima raw GPS signal dengan RTL SDR, 3D printer, pelajaran elektronik untuk Jonathan, dan beberapa catatan kecil.

Menerima Raw GPS signal dengan RTL-SDR

Receiver GPS sekarang ini bisa dibeli dengan harga kurang dari 10 USD. Dengan receiver seperti itu, kita akan langsung mendapatkan data (via serial/USB) dalam format NMEA yang bisa dengan mudah didecode. Meskipun data mentah ini kelihatan sebagai sesuatu yang low level, ini sebenarnya sudah sangat high level.

Saya tertarik pada signal GPS yang low level, yaitu signal langsung dari satelit. Di masa depan, saya berencana spoofing signal GPS (seperti misalnya di artikel ini), sebelum melakukan itu dengan hardware yang mahal, saya memutuskan untuk memahami dulu signal GPS. Sekarang saya memulai dengan hardware murah dari rtl-sdr.com. Harganya 25 USD termasuk ongkos kirim, ini murah dibandingkan dengan hardware SDR yang bisa transmit (>150 USD).

Continue reading “Oprekan akhir pekan: RTL-SDR GPS, 3D Printer, dll”