1. Download https://www.raspberrypi.org/downloads/raspbian/
2. Check SDCard mount point
$ lsblk
...
...
...
sdb 8:16 1 7.4G 0 disk <-- Example: sdb
├─sdb1 8:17 1 43.2M 0 part /media/johnnychu/boot
└─sdb2 8:18 1 7.4G 0 part /media/johnnychu/rootfs
3. Use dd to build image
$ sudo dd bs=1M if=2018-06-27-raspbian-stretch.img of=/dev/sdb conv=fsync status=progress
1822425088 bytes (1.8 GB, 1.7 GiB) copied, 210 s, 8.7 MB/s
4823449600 bytes (4.8 GB, 4.5 GiB) copied, 748 s, 6.4 MB/s
4600+0 records in
4600+0 records out
4823449600 bytes (4.8 GB, 4.5 GiB) copied, 919.787 s, 5.2 MB/s
4. Autohiding the Mouse Pointer
$ sudo apt-get install unclutter
$ vim ~/.config/lxsession/LXDE-pi/autostart
autostart
++ @unclutter -display :0 -idle 3 -root -noevents
5. Changed Screen Resolution to 800x480
$ sudo vim /boot/config.txt
config.txt
# uncomment if hdmi display is not detected and composite is being output
-- # hdmi_force_hotplug=1
++ hdmi_force_hotplug=1
# uncomment to force a specific HDMI mode (here we are forcing 800x480!)
-- # hdmi_group=2
++ hdmi_group=2
-- # hdmi_mode=4
++ hdmi_mode=87
++ hdmi_cvt=800 480 60 6 0 0 0
6. Install NVM for NodeJS
$ wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.33.11/install.sh | bash
$ nvm install 8.11.4
$ nvm use 8.11.4
https://learn.adafruit.com/adafruit-5-800x480-tft-hdmi-monitor-touchscreen-backpack/raspberry-pi-config
https://github.com/MichMich/MagicMirror/wiki/Configuring-the-Raspberry-Pi
https://www.raspberrypi.org/downloads/raspbian/
https://www.raspberrypi.org/documentation/installation/installing-images/linux.md