Headless Macbook

Semalam ngoprek Macbook Air M1 ber-LCD rusak (dapet murah dari toped) buat dijadikan headless Macbook. Rencananya biar produktif pake MacOS, karena konon katanya orang yang pake MacOS lebih produktif daripada yang pake Windows.

‘Alaa kulli haal, akhirnya ngoprek dah semalam setelah mengikuti tutorial youtube ini.

Ngopreknya cenderung mudah, karena instruksi jelas, walaupun emang agak beda dikit karena kita nge-skip bagian pasang lcd barunya, kan emang tujuannya bikin headless Macbook.

Disassemble, checked. Copot LCD checked. Assemble ulang, checked. Daan moment of truth, sambung2 Macbook ke kabel power dan external monitor, jengjeng, tidak nyala.

Panik. Masak harga belajar ngopreknya mahal sekali. Apakah saya tidak sengaja nge-short sesuatu?

Setelah cabut pasang cabut pasang wifi dan baterai yang tidak kunjung memberikan kehidupan ke Macbook nya, akhirnya berhipotesa bahwa LCD harus dipasang lagi karena sebelumnya emang device nyala dengan LCD rusak.

Maka dimulailah siklus lagi: disassemble, pasang LCD, assemble ulang. Dan jengjreng, tetap tidak nyala. Sampe sini udah ridho. Pake charger / pake batre, Macbook nya ngga mau boot (kalo boot ada suaranya).

Pada saat sudah pasrah seperti ini dapet ilham buat nyoba ngukur watt pake kabel usb-C yang ada display buat tau apakah ada arus yang masuk / ngga ke device. Dan subhaanallaah, tiba-tiba device nyala.

Kabel yang ada LCD nya

Alhamdulillaah. Karena sudah tau triknya akhirnya dioprek ketiga kali nya : disassemble, copot LCD, assemble ulang. Dan akhirnya jadilah si headless Macbook ini.

Headless

Jadi begitulah cerita ngopreknya. Jika ada device yang tidak mau boot, bisa dicoba alirin arus pake source lain yang watt nya lebih kecil. Mudah-mudahan nyala.

Tapi btw, itu pas abis copot LCD awal, nge-charge nya pake charger MBP 2016, bukan bawaan Macbook Air M1 nya. Ngaruh gitu, makanya ngga nyala?

Pemasangan Stable Diffusion pada Ubuntu dengan GPU AMD

Satu lagi dokumen proyek akhir pekan.

Pendahuluan

GPU yang digunakan pada project ini adalah RX 6600. Ubuntu yang digunakan adalah Ubuntu 22.04 LTS

Pemasangan

Konfigurasi Python

  1. Verifikasi pemasang python3.10 terpasang menggunakan perintah python3 --version.
  2. Pasang python-is-python3 : sudo apt install python-is-python3.
  3. Verifikasi python-is-python3 : python --version
  4. Pasang python3.10-venv : sudo apt install python3.10-venv
  5. Pasang pip3 : sudo apt install python3-pip
  6. Pasang python wheel : python -m pip install --upgrade pip wheel

Pasang ROCm

  1. Unduh driver GPU dari website AMD. Pada kasus saya, saya mengunduhnya dari halaman berikut: https://www.amd.com/en/support/graphics/amd-radeon-6000-series/amd-radeon-6600-series/amd-radeon-rx-6600
  2. Pasang berkas .deb yang diunduh. Kemudian lakukan verifikasi berikut : amdgpu-install --help. Pastikan perintah amdgpu-install dikenal oleh sistem.
  3. Pasang ROCm yang dibutuhkan oleh Stable Diffusion dengan menjalankan perintah berikut: sudo amdgpu-install --usecase=rocm --no-dkms
  4. Tambahkan user Anda pada group video : sudo usermod -aG video $USER
  5. Tambahkan user Anda pada group render : sudo usermod -aG render $USER
  6. Reboot sistem
  7. Verifikasi instalasi dengan menjalankan : rocminfo. Pastikan perintah rocminfo dikenal oleh sistem.

Pasang Stable Diffusion Web-UI

  1. JIka perintah git belum terpasang, lakukan sudo apt install git
  2. Clone project Stable Diffusion Web-UI dengan menjalankan perintah: git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui
  3. Unduh model Stable Diffusion dari laman berikut : https://huggingface.co/CompVis/stable-diffusion-v-1-4-original (unduh berkas sd-v1-4.ckpt) atau https://huggingface.co/runwayml/stable-diffusion-v1-5 (unduh berkas v1-5-pruned-emaonly.ckpt) atau bisa cari sendiri
  4. Letakkan berkas model yang sudah diunduh pada folder stable-diffusion-web-ui/models/Stable-diffusion

Pasang pytorch

  1. Masuk ke folder Stable Diffusion : cd stable-diffusion-webui
  2. Buat venv untuk proyek Stable Diffusion : python -m venv venv
  3. Aktivasi venv : source venv/bin/activate
  4. Penting! Pastikan bahwa session terminal aktif pada venv (akan ada tambahan prefix (venv) di terminal) karena kita akan pasang pytorch pada venv bukan global env.
  5. Pasang pytorch untuk rocm : pip3 install torch torchvision torchaudio --extra-index-url https://download.pytorch.org/whl/rocm5.2
  6. Verifikasi pemasangan dengan menjalankan perintah: pip list | grep 'torch'. Pastikan bahwa versi torch, torchaudio, dan torchvision adalah versi rocm (ada tulisan rocm nya).

Menjalankan Program

Peluncuran Pertama

Jika Anda masih mengikuti langkah di atas, maka seharusnya Anda masih berada di folder stable-diffusion-web-ui dengan (venv) aktif.

  1. Export nilai berikut : export HSA_OVERRIDE_GFX_VERSION=10.3.0
  2. Luncurkan aplikasi dengan perintah python launch.py --skip-torch-cuda-test
  3. Ctrl+click URL yang muncul di terminal
  4. Buka browser, masukkan kata kunci yang diinginkan pada laman Stable Diffusion Web-UI, pilih Generate. Gambar akan dihasilkan
  5. Verifikasi bahwa aplikasi menggunakan GPU (bukan CPU) dengan menjalankan perintah watch -n 1 rocm-smi pada window / tab terminal baru. Jika GPU digunakan, maka akan terlihat bahwa nilai VRAM dan GPU akan tinggi. Jika ternyata CPU digunakan, maka nilai VRAM dan GPU akan tetap rendah (penggunaan CPU bisa dilihat di System Monitor Ubuntu)
  6. Selamat bereksperimen

Penjelasan

  1. Sebetulnya, untuk meluncurkan aplikasi hanya perlu perintah python launch.py saja, namun pada kasus RX 6600, aplikasi akan mengeluarkan error yang menyatakan bahwa CUDA test tidak bisa dilakukan, sehingga perlu ditambahkan skip-torch-cuda-test
  2. Perintah export digunakan untuk mengakali agar GPU dikenal oleh ROCm.

Peluncuruan Selanjutnya

  1. cd stable-diffusion-webui
  2. source venv/bin/activate
  3. export HSA_OVERRIDE_GFX_VERSION=10.3.0
  4. python launch.py --skip-torch-cuda-test

Rujukan Baca

  1. AUTOMATIC1111 Official Guide : https://github.com/AUTOMATIC1111/stable-diffusion-webui/wiki/Install-and-Run-on-AMD-GPUs
  2. Reddit Post 1 : https://www.reddit.com/r/StableDiffusion/comments/10zfnlj/novice_guide_how_to_fully_setup_linux_to_run/
  3. Reddit Post 2 : https://www.reddit.com/r/StableDiffusion/comments/zu9w40/novices_guide_to_automatic1111_on_linux_with_amd/
  4. ROCm page : https://docs.amd.com/bundle/ROCm-Installation-Guide-v5.4.3/page/How_to_Install_ROCm.html

Tutorial Flashing Stock ROM HP Sony Xperia dengan Newflasher

Another weekend project documentation.

Seharusnya bisa untuk HP Sony Xperia tipe apapun. Mengapa tidak flashtool? Terakhir ngecek, website resminya mati (flashtool.net).

Langsung saja

  1. Download xperifirm di forum xda di link ini.
  2. Buka xperifirm, download flash ROM sesuai device.
  3. Download newflasher dari xda juga, di link ini.
  4. Copy newflasher.exe ke folder tempat hasil download stock ROM nya.
  5. Matiin HP, tunggu 5 detik, tekan tombol volume down sambil disambungin ke pc menggunakan kabel USB.
  6. Jalankan aplikasi newflasher, pencet n untuk semua jawaban kecuali yang pertanyaan restart (bebas mau pilih apa).

Notes:

  1. Do with your own risk.
  2. HP tidak harus di-root / unlock dulu untuk flashing menggunakan metode ini
  3. Tipe handphone bisa diliat di body HP atau di Settings -> About Phone (kadang ini ga akurat, liat poin 4)
  4. ROM yang bisa diflash tidak harus sesuai dengan model handphone sesungguhnya. Pengalaman saya terakhir, saya dapet device yang tertulis J8110 di Setting yang ngga nyala NFC nya. Usut punya usut, ternyata ini sebabnya adalah ROM yang diinstall ga sesuai dengan device aslinya yaitu SOV40. Terus kmaren sempet nyoba juga install ROM versi J8110 versi untuk Storefront di SOV40 ternyata bisa2 aja.
  5. Usahakan download software di link yang saya kasih tadi karena itu official dari developer nya.

Semoga bermanfaat.

It works but idk why

Jadi ceritanya kemarin lagi mau reset HP Pocophone F1 oprekan kembali ke stock ROM.

Sebelum terakhir terinstall Lineage OS, dulu sempet ngoprek juga install stock ROM di HP tersebut. Karena dulu mikirnya kalo mau dijual, mending reset ke stock ROM. Saya udah nyatet step-by-step nya. Intinya kurang lebih sbb:

  1. Extract file tgz ROM image nya
  2. Buka MiFlash
  3. Run

Ingetnya sih dulu memang segampang itu. Namun ternyata saya coba jalanin gagal.

Sampe satu titik saya nyoba debug. Command adb devices aman, terus restart ke fastboot, run command fastboot devices. Loh kok error??

Singkat cerita, googling lah saya. Ternyata banyak juga yang mengalami hal serupa. Tapi sayangnya awa ngga ngoprek di linux, jadilah sekip. Hingga akhirnya mampir ke forum xda, dan banyak juga yang nanya.

Terus dicobalah berbagai macam cara. Nyoba fastboot devices di macbook ternyata aman. Berarti bukan masalah device nya dong. Coba ganti kabel tidak solving masalah. Ganti ke port USB 2.0 ngga membereskan masalah. Colok ke USB 3.0 Hub (seperti yang disarankan di forum) juga sama, masih ngga jalan.

Hingga akhirnya aing inisiatif colok ke USB 3.0 Hub via USB 2.0 dan voila! ternyata ngga muncul errornya. Flash nya juga berjalan lancar. Ngga tau kenapa begitu tapi ya jalan. Alhamdulillaah.

Udah, cuma mau cerita gitu aja. Biar nulis lagi.

Setting IFTTT (Twitter + Telegram) untuk Peringatan Gempa BMKG

Hai,

Pada kesempatan kali ini saya mau menulis setup IFTTT untuk peringatan gempa BMKG melalui Telegram. IFTTT.com (singkatan dari If This Than That) adalah sebuah situs yang memudahkan proses otomasi dari aplikasi-aplikasi yang populer di internet. Sebagai contoh, kita bisa melakukan otomasi sync file di Dropbox dan Google Drive, menyimpan tweet favorite ke Google Spreadsheet, etc.

Sebetulnya, sudah tersedia aplikasi resmi dari BMKG di Play Store dan di App Store yang menyediakan fitur peringatan gempa. Setup IFTTT ini mungkin bisa dipertimbangkan sebagai alternatif dari aplikasi tersebut.


Persiapan:

  1. Memiliki akun di IFTTT.com. Jika belum, bisa daftar.
  2. Install telegram di smartphone, kemudian register.

Setup Peringatan BMKG di IFTT.com:

  1. Buka ifttt.com
  2. Pilih My Applets.
  3. Pilih New Applets.
  4. Pada tombol +this, pilih Twitter.
  5. Jika belum terasosiasi, ifttt.com akan meminta izin untuk terhubung dengan akun Twittter.
  6. Choose trigger : New tweet from search
  7. Masukkan query berikut dalam form search : #gempa from:infobmkg
    wp
  8. Tekan Create trigger.
  9. Pada tombol +that, pilih Telegram.
  10. Jika belum terasosiasi, ifttt.com akan meminta izin untuk terhubung dengan akun Telegram.
  11. Pilih Send Message.
  12. Pilih opsi pengiriman pesan sesuai keinginan.
  13. Save.

Jika berhasil, maka setiap kali akun @infobmkg mem-posting tweet dengan tagar #gempa, IFTTT.com akan mengirimkan tweet tersebut ke Telegram kita dalam bentuk direct message.

wp


Demikian, semoga bermanfaat. 🙂

 

Whatsapp Business API Host Demo Setup – Step by Step Guide

Hello,

A few days ago, I have a chance to attend Whatsapp Hackathon day at Facebook Indonesia office. The event itself is not really “hackathon”, it is rather a lab practice to setup a host for WhatsApp Business account.

Whatsapp Business is a feature from Whatsapp to provide a platform for business owner to use WhatsApp as their communication tools. It is useful for small to enterprise scale business. Most common usage of WhatsApp Business is for Customer Service, direct message channel to customer (shipping tracker, product broadcast, etc), advertisment, etc.

Rather than you install your company number in a dedicated smartphone, WhatsApp offers you to install your number in single or several host (cloud or on premise) that can serve more traffic. This application will act as your Whatsapp client and also serve API over HTTP. This means you can manage how you send / receive message on your own self application (e.g. CRM).

In this post, I’ll try to write some information that I got from the event. I hope you will enjoy it!


Notes : This guide is written for on-premise solution and for demo purpose only.

Prerequisite

  • You have Facebook Business Account (https://business.facebook.com).
  • You have Whatsapp Business Account available at your Facebook Business Manager. For some country, it is not available yet. How to check:
  • You have a phone number that is not associated to Whatsapp account yet. If you have your business mobile number associated to a regular WhatsApp account you can delete it.

Continue reading “Whatsapp Business API Host Demo Setup – Step by Step Guide”

Install Dokuwiki

Just a backup from this link.

If you ever encountered this error while installing DokuWiki :

DokuWiki Setup Error

The datadir (‘pages’) at ./data/pages is not found, isn’t accessible or writable. You should check your config and permission settings. Or maybe you want to run the installer?

then follow these step:

  • Go to your DokuWiki folder, for some cases it will be :
    cd /var/www/html/DokuWiki
  • Run this command :
    chmod -R 777 data/ ; chmod -R 777 lib/ ; chmod -R 777 conf

Installation page now should be accessible.

For additional info, if you want to redirect http to https for this wiki folder (thanks to this web):

  • Edit your httpd.conf file
  • Enable mod_rewrite
  • Change value of AllowOverride from none to all in <Document> section
  • Cd to your Root Document directory
  • Add these lines to .htaccess file:
    RewriteEngine On
    RewriteCond %{HTTPS} !=on
    RewriteRule ^/?DokuWiki/(.*) https://%{SERVER_NAME}/DokuWiki/$1 [R,L

Done!

 

Install Windows 7 Menggunakan USB Flashdisk

Malam ini saya baru saja menginstall Windows 7 di MSI U250 saya yang asalnya terinstall XP. Alasan pindahnya sebenarnya lebih karena ingin mengoptimalkan fitur laptop saya agar bisa berjalan di AHCI mode (untuk HDD) dan bekerja di OS 64-bit. Dan sebenrnya coba2 sih, abisnya XP saya kadang lemot.

Anyway, rencana pindah dari XP ini sebenarnya sudah agak lama. Saya sempet ada niatan pindah ke Ubuntu, tapi sepertinya sampai saat ini belum ada program murni linux yang mendukung file .vsd yang saya butuhkan untuk pengerjaan tugas akhir. BTT, tadi sore pas lagi maen ke KPRG, saya nanya ke si Amril apakah dia punya DVD eksternal yang bisa saya pinjam buat install Win7. Ternyata dia tidak punya, tapi dia meminjamkan flashdisk 8GB nya dan menyarankan saya untuk install Win7 menggunakan USB Flash Disk. Ahh, kenapa ga kepikiran sih? (Flashdisk saya cuma 2 GB soale).

Nah, jadilah saya install Win7 malam ini menggunakan flashdisk. Dari tutor2 yang beredaran di internet, saya menggunakan tools yang bernama fsBootSage. Cara kerjanya sangat mudah dan bisa berjalan di atas XP, tinggal ikuti saja instruksi yang muncul ketika menjalankan program fsBootSage itu.

PS: sebaiknya hanya satu USB yang tercolok ketika proses pembuatan bootable flashdisk, abisnya pas USB 2 GB saya nyolok, programnya mendetksi kalo file nya ngga muat untuk di-copy.

Hmm, saya kira cukup sekian, terima kasih. 🙂