- Linux
- Windows
- Android
General Things on Raspbian
First step for Raspberry OS
Flash Raspberry Pi OS 1) β ingredients: Raspberry Pi OS & BalenaEtcher
Booting with flashed OS & login with pi / raspberry (default ID/password)
Execute sudo raspi-config to setup initial configuration.
Setup raspbi-config
1. Change User Password β Change password for user pi
2. Network Options
N1 Hostnameβ Change hostname for serverN2 Wireless LANβ Setup wireless region, SSID and passphrase for wireless networkN3 Network interface namesβ predictable network interface name such asenx78e7d1ea46davs. traditional name such aswlan0N4 Network proxy settingsβ if necessary
3. Boot Options
B1 Desktop / CLIβ Desktop GUI or Command Line Interface for operationCLIB2 Wait for Network at Bootβ Booting sequences are not completed without network connection if yesB3 Splash Screenβ Choose your taste
4. Localisation Options
I1 Change Localeβ Default value isen_GB.UTF-8 UTF-8, Set bothen_US.UTF-8 UTF-8&ko_KR.UTF-8 UTF-8I2 Change Time Zoneβ Asia/Seoul or your placeI3 Change Keyboard Layoutβ if necessary but usually passI4 Change WLAN Countryβ if necessary
5. Interfacing Options
- Disable:
P1 Camera,P3 VNC(if use CLI) ,P4 SPI,P5 I2C,P6 Serial,P7 1-Wire,P8 Remote GPIO - Enable:
P2 SSH
6. Overclock β Simply pass over
7. Advance Options
A1 Expand FilesystemA3 Memory Splitβ32for console user. less than 32 can cause problem
Manage accounts
Change password for root
sudo passwd root
Create active userid
pi user is build-in account, which means weak point of security. Therefore creating personal userid is recommended.
sudo adduser //userid//
Append sudoer privilege for userid
Edit /etc/sudoers
# User privilege specification root ALL=(ALL:ALL) ALL userid ALL=(ALL) NOPASSWD: ALL
Copy all files from /home/pi to /home/userid if necessary (e.g.: .profile .bashrc)
Reboot system and login with userid
Delete pi user
sudo deluser pi sudo rm -rf /home/pi
Update and Upgrade
sudo apt update && sudo apt dist-upgrade -y && sudo apt autoremove
or enjoy every single step
sudo apt update sudo apt dist-upgrade -y sudo apt autoremove
Update kernel and VideoCore firmware
sudo rpi-update
Mount external disk(s)
Check attached or plugin devices using
sudo blkid
Format the disk with ext4
sudo mkfs.ext4 /dev/sdXY
Mount NTFS formatted disk
NTFS format has little advantage under Linux system but could mount it as well
sudo apt-get install ntfs-3g
Formatting disk with NTFS
mkfs.ntfs -Q -L diskLabel /dev/sdXY
Disk mount at booting
Edit /etc/fstab
Append line(s) with device's UUID or location path /dev/sdXY. strongly prefer UUID with mount pointing
UUID="dd7c1879-68c5-e9b9-bad6-789d3b8db984" /(path)/Storage ext4 defaults 0 0
Reboot the system and check the disk mounted.
Configure wireless connection
Under review
- Check wireless & configuration
sudo iwconfigto find wireless is available. - Change proper configuration with editing
/etc/network/interfaces
Since Stretch, /etc/network/interfaces is not useless unless stop dhcpcd service. Use /etc/dhcpcd.conf instead.
# Do not use in Stretch
allow-hotplug wlan0
iface wlan0 inet static
address 192.168.abc.xyz
netmask 255.255.255.0
gateway 192.168.abc.1
dns-nameservers 8.8.8.8 8.8.4.4
wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf
Edit /etc/dhcpcd.conf for static IP address
# Here is an example which configures a static address, routes and dns. # define static profile profile static_eth0 static ip_address=192.168.1.23/24 static routers=192.168.1.1 static domain_name_servers=192.168.1.1 # fallback to static profile on eth0 interface eth0 fallback static_eth0
This configuration is static (fixed) IP with assigned DNS servers. fallback option is possible to configure a static profile within dhcpcd and fall back to it when DHCP lease fails.
- Edit
/etc/wpa_supplicant/wpa_supplicant.conf
country=US ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev update_config=1 network={ ssid="YOUR_SSID" psk="YOUR_PRESHARED_KEY_FOR_WIRELESS" key_mgmt=WPA-PSK }
- Gear wireless up
sudo ip link set wlan0 down sudo ip link set wlan0 up
Set Google Public NTP
Under review
Use either systemd-timesyncd or ntp service. If you wish to use ntp
apt-get install ntp systemctl stop systemd-timesyncd systemctl disable systemd-timesyncd β (sudo) /etc/init.d/ntp stop β (sudo) /etc/init.d/ntp start
Edit /etc/ntp.conf and append the following near server part.
server time1.google.com iburst server time2.google.com iburst server time3.google.com iburst server time4.google.com iburst
restart NTP daemon
sudo service ntp reload
Maintenance & Operation
Useful packages
Initially install the following packages for convenience.
treeβ The tree is a tiny, cross-platform command-line program used to recursively list or display the content of a directory in a tree-like format.
vimβ vim is a text editor. It can be used for editing any kind of text and is especially suited for editing computer programs.
iftopβ iftop is a real time console-based Linux network bandwidth monitoring
Time stamp prompt
Edit ~/.bashrc and change PS1 line
if [ "$color_prompt" = yes ]; then PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]: \[\033[01;33m\]\D{%T}\[\033[00m\] \[\033[01;37m\]\w\$\[\033[00m\] ' else PS1='${debian_chroot:+($debian_chroot)}\u@\h: \D{%T} \w\$ ' fi
Save and load .bashrc
source ~/.bashrc
Modify login message
Edit /etc/motd
Create 20-disks (arbitrary name) and edit in /etc/update-motd.d/
#!/bin/sh printf "\n" df -h /dev/sd* --out=target,fstype --output=size,used,avail,pcent --type=ext4 printf "\n"
Script shows the information of the attached disks, which also reminds whether disk is mounted or not.
Mounted on Type Size Used Avail Use% /home/userid/disk1 ext4 917G 338G 533G 39% /home/userid/disk2 ext4 458G 307G 128G 71%
Move directories & files using rsync
Under review
rsync is useful command to transfer data from source to destination.
rsync -av --ignore-existing --remove-source-files /.. /source_directory/ TARGET.DOMAINS:/.. /destination_direcotry/ && \ find /../source_directory/ -depth -type d -empty -delete;
βremove-source-files sender removes synchronized files (non-dirs)
βignore-existing skip updating files that already exist on receiver
After running rsync command, find command runs to find and delete empty directories.
Upgrade Raspbian from Jessie to Stretch
Upgrade video guide | Upgrade Guide
sudo apt update sudo apt dist-upgrade
Check for any system inconsistencies. Perform database sanity and consistency checks for partially installed, missing and obsolete packages
sudo dpkg -C
If no issues are reported, check what packages are held back.
sudo apt-mark showhold
Packages showing On Hold will not be upgraded.
Replace Jessie to Stretch in distribution sources.
sudo sed -i 's/jessie/stretch/g' /etc/apt/sources.list
And update & upgrade with stretch sources. Reboot & check distribution information.
lsb_release -a
Upgrade Raspbian from Stretch to Buster
Preparing upgrade with keeping up latest
sudo apt update sudo apt dist-upgrade -y
Update Raspberry Pi's firmware,
sudo rpi-update
After rebooting, modify source list with buster Edit /etc/apt/source.list
deb http://raspbian.raspberrypi.org/raspbian/ buster main contrib non-free rpi
Edit /etc/apt/sources.list.d/raspi.list
deb http://archive.raspberrypi.org/debian/ buster main
To optimize upgrading process, remove apt-listchanges package
sudo apt-get remove apt-listchanges
Run update and upgrade for buster and it takes a long time.
sudo apt update sudo apt dist-upgrade
Optional remove (or possible these are supposed to be removed) the followings
sudo apt purge timidity lxmusic gnome-disk-utility deluge-gtk evince wicd wicd-gtk clipit usermode gucharmap gnome-system-tools pavucontrol
Clean and purge repository for update and reboot finally.
sudo apt autoremove -y sudo apt autoclean sudo reboot
