Mencoba Microsoft Edge Dev Pada openSUSE Leap

Panduan ini dicoba pada openSUSE Leap 15.2. Langkahnya:

  1. Tambahkan kunci dari Microsoft
     sudo rpm --import https://packages.microsoft.com/keys/microsoft.asc
    
  2. Tambahkan repositori Microsoft Edge Dev
     sudo zypper ar https://packages.microsoft.com/yumrepos/edge microsoft-edge-dev
    
  3. Segarkan repositori
     sudo zypper refresh
    
  4. Pasang Microsoft Edge Dev
     sudo zypper install microsoft-edge-dev
    

Selamat mencoba!

Mengkompilasi Ulang Kernel di openSUSE Tumbleweed

Catatan ini berisi bagaimana melakukan compilasi ulang kernel yang sudah terpasang, karena ada beberapa perbaikan driver perangkat. Dalam hal ini modifikasi LVDS di Thinkpad X330 saya.

Studi Kasus:

  • Sistem operasi: openSUSE Tumbleweed 20201005
  • Kernel baru dipasang: 5.8.10-1-default
  • Kernel lama dan sedang digunakan: 5.6.11-1-default

Persiapan Perkakas

sudo zypper install kernel-default kernel-source kernel-devel

Perintah diatas dilakukan untuk pemasangan kernel terbaru 5.8.10 bawaan dari lumbung openSUSE Tumbleweed, kemudian juga mengunduh kernel-source (kode sumber) dan kernel-devel untuk versi 5.8.10.

Mengkompilasi Kernel

Sebelum melakukan kompilasi, batalkan pengaturan sleep dan hibernate agar ketika sedang kompilasi dan sudah dalam batas waktu tidak ada aktifitas, laptop tidak tiba-tiba sleep atau hibernate. Hal ini bisa menyebabakan proses berhenti dan nanggung.

Lakukan sebagai user root, kemudian berpindah ke alamat kode sumber kernel terbaru berada.

sudo su
ls -al /usr/src/
cd /usr/src/linux

Salin konfigurasi kernel baru yang terakhir.

cp /boot/config-5.8.10-1-default .config

Lakukan modifikasi driver sesuai kebutuhan. Seperti dalam berkas diff saya. Kemudian dilanjutkan dengan proses kompilasi kernel. Siapkan cemilan, mulai dan tunggu. Proses ini memakan waktu hingga tiga jam. Saya pilih opsi untuk menggunakan semua core yang tersedia. Kemudian setelah selesai kompilasi kernel dan modul, saya langsung melakukan pemasangan. Terakhir ditutup dengan memperbaharui daftar kernel pada saat boot (GRUB).

make -j $(nproc) && make modules_install && make install -j $(nproc) && mkinitrd

Bersih-Bersih Sampah Pasca Kompilasi

Setelah kompilasi selesai, biasanya meninggalkan berkas sampah kompilasi yang cukup besar, kisaran hampir 5GB. Makanya butuh dihapus.

sudo su
cd /usr/src/linux
make clean

Bersih-Bersih Kernel Kembar

Setelah itu, ketika memeriksa alamat /boot/ biasanya kita akan menemukan kernel kembar dengan nama berkas *.old. Lakukan penghapusan, kemudian nyala ulang untuk menggunakan kernel yang baru.

sudo su
rm -rf /boot/*.old
mkinitrd
reboot

Bersih-Bersih Kernel Lama dan Teman-Temannya

Lakukan penghapusan kernel lama, jika sudah sangat yakin, kernel itu tidak mau disimpan. Saya menyarankan agar menjaga minimal 2 kernel. 1 kernel lama yang stabil, 1 kernel yang baru dipasang.

Konfigurasi: latest,latest-1,running

Daftar Kernel yang disimpan
sudo zypper purge-kernels
sudo zypper remove kernel-devel kernel-source
sudo zypper addlock kernel-default

Konfigurasi Tambahan

Setelah berganti kernel, biasanya ada beberapa perangkat lunak yang butuh dikonfigurasi ulang, seperti VirtualBox dan Vagrant. Lakukan pengaturan seperlunya.

Demikian. Semoga bermanfaat.
Estu~

Run openSUSE Kubic – Like (K8s, Podman & CRI-O) on Alibaba Cloud

openSUSE Kubic is Certified Kubernetes distribution & container-related technologies built by the openSUSE community. There is specific iso for openSUSE Kubic.

But sadly. As I am a cloud provider user. There are not many cloud provider who have feature upload ISO Image if I want to upload openSUSE Kubic ISO. And next problem, there is very limited kind cloud provider who have openSUSE distribution for image flavor when launch Virtual Machine. Cloud like AWS and GCP only provide SLES version.

Fortunately, Alibaba Cloud have openSUSE Leap distribution. Alibaba Cloud have openSUSE Leap 42.3, 15.1 and 15.2 beside SLES version. It is help me lot of.

Prepare Virtual Machine for Master and Node

I created two virtual machine with spec:

  • 2 VM openSUSE Leap 15.2 (hostname: master-01,node-01)
  • 2 Core, 2 GB RAM | ecs.t5-c1m1.large
  • Security Group (open port TCP: 22,80,443,6443,30000)

Upgrade to openSUSE Tumbleweed

After created vm, ssh to each server, run upgrade to tumbleweed:

ssh root@ip-server
mkdir /etc/zypp/repos.d/old
mv /etc/zypp/repos.d/*.repo /etc/zypp/repos.d/old
zypper ar -f -c http://download.opensuse.org/tumbleweed/repo/oss repo-oss
zypper ar -f -c http://download.opensuse.org/tumbleweed/repo/non-oss repo-non-oss
zypper ar -f -c http://download.opensuse.org/tumbleweed/repo/debug repo-debug
zypper ar -f -c http://download.opensuse.org/update/tumbleweed/ repo-update
zypper dup

Install Kubernetes Stuff

This step will be doing and each virtual machine.
After upgrade, do power off and power on. Then lets start install Kubernetes stuff:

  1. Config network option
  2. Add config to /etc/sysctl.conf and reload
  3. Install kubeadm, cri-o and podman
modprobe overlay
modprobe br_netfilter
echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.conf 
echo "net.ipv4.conf.all.forwarding = 1" >> /etc/sysctl.conf
echo "net.bridge.bridge-nf-call-iptables = 1" >> /etc/sysctl.conf
sysctl -p
zypper in cri-o cri-tools kubernetes-kubeadm kubernetes-client podman
systemctl enable kubelet
systemctl start kubelet

Initialize Kubernetes Cluster on master-01

After done install Kubernetes stuff, lets start initialize Kubernetes cluster:

kubeadm config images pull
kubeadm init

This process will create cluster. Save output command for join cluster. We need this token for next step. And copy kubeconfig for Kubernetes Client.

mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config

Setup Network Plugins on master-01

I using project calico for network plugins. It is more better then weave for me.

curl https://docs.projectcalico.org/manifests/calico.yaml -O
kubectl apply -f calico.yaml

Join Cluster on node-01

After created cluster, now we configure node-01 to join cluster. We use command from output kubeadm init at previous command.

kubeadm join 172.31.167.254:6443 --token jqeu4g.34rglub8wkgb9i5x \
    --discovery-token-ca-cert-hash sha256:5d2cbc7a79287228b90b188b4c99626f461a57d13b7a006dfe2265da0d0a9356

Verify Kubernetes Cluster

Do this command on master-01 after node-01 joined cluster.

kubectl get nodes
kubectl get pods --all-namespaces

Create Simple Deployment

I testing cluster using simple app nginx, and service using node port. Here the snippet for nginx-dpy.yaml:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: hello-deployment
spec:
  selector:
    matchLabels:
      app: hello
  replicas: 2
  template:
    metadata:
      labels:
        app: hello
        env: staging
    spec:
      containers:
        - name: hello
          image: tuanpembual/hello
          imagePullPolicy: Always
          ports:
            - name: http
              containerPort: 80
              protocol: TCP
---

apiVersion: v1
kind: Service
metadata:
  name: hello-service
  labels:
    app: hello
spec:
  type: NodePort
  selector:
    app: hello
  ports:
    - name: http
      nodePort: 30000
      port: 80
      targetPort: 80
---

Then deploy this yaml:

kubectl apply -f nginx-dpy.yaml
curl localhost:30000

The apps can be access to using master_01_ip_public:30000/. That all from me.

References

I hope it will give you more idea. Thank you
Estu~

Run openSUSE Kubic – Like (K8s, Podman and CRI-O) on Alibaba Cloud

openSUSE Kubic is Certified Kubernetes distribution & container-related technologies built by the openSUSE community. There is specific iso for openSUSE Kubic.

But sadly. As I am a cloud provider user. There are not many cloud provider who have feature upload ISO Image if I want to upload openSUSE Kubic ISO. And next problem, there is very limited kind cloud provider who have openSUSE distribution for image flavor when launch Virtual Machine. Cloud like AWS and GCP only provide SLES version.

Fortunately, Alibaba Cloud have openSUSE Leap distribution. Alibaba Cloud have openSUSE Leap 42.3, 15.1 and 15.2 beside SLES version. It is help me lot of.

Prepare Virtual Machine for Master and Node

I created two virtual machine with spec:

  • 2 VM openSUSE Leap 15.2 (hostname: master-01,node-01)
  • 2 Core, 2 GB RAM | ecs.t5-c1m1.large
  • Security Group (open port TCP: 22,80,443,6443,30000)

Upgrade to openSUSE Tumbleweed

After created vm, ssh to each server, run upgrade to tumbleweed:

ssh root@ip-server
mkdir /etc/zypp/repos.d/old
mv /etc/zypp/repos.d/*.repo /etc/zypp/repos.d/old
zypper ar -f -c http://download.opensuse.org/tumbleweed/repo/oss repo-oss
zypper ar -f -c http://download.opensuse.org/tumbleweed/repo/non-oss repo-non-oss
zypper ar -f -c http://download.opensuse.org/tumbleweed/repo/debug repo-debug
zypper ar -f -c http://download.opensuse.org/update/tumbleweed/ repo-update
zypper dup

Install Kubernetes Stuff

This step will be doing and each virtual machine.
After upgrade, do power off and power on. Then lets start install Kubernetes stuff:

  1. Config network option
  2. Add config to /etc/sysctl.conf and reload
  3. Install kubeadm, cri-o and podman
modprobe overlay
modprobe br_netfilter
echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.conf 
echo "net.ipv4.conf.all.forwarding = 1" >> /etc/sysctl.conf
echo "net.bridge.bridge-nf-call-iptables = 1" >> /etc/sysctl.conf
sysctl -p
zypper in cri-o cri-tools kubernetes-kubeadm kubernetes-client podman
systemctl enable kubelet
systemctl start kubelet

Initialize Kubernetes Cluster on master-01

After done install Kubernetes stuff, lets start initialize Kubernetes cluster:

kubeadm config images pull
kubeadm init

This process will create cluster. Save output command for join cluster. We need this token for next step. And copy kubeconfig for Kubernetes Client.

mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config

Setup Network Plugins on master-01

I using project calico for network plugins. It is more better then weave for me.

curl https://docs.projectcalico.org/manifests/calico.yaml -O
kubectl apply -f calico.yaml

Join Cluster on node-01

After created cluster, now we configure node-01 to join cluster. We use command from output kubeadm init at previous command.

kubeadm join 172.31.167.254:6443 --token jqeu4g.34rglub8wkgb9i5x \
    --discovery-token-ca-cert-hash sha256:5d2cbc7a79287228b90b188b4c99626f461a57d13b7a006dfe2265da0d0a9356

Verify Kubernetes Cluster

Do this command on master-01 after node-01 joined cluster.

kubectl get nodes
kubectl get pods --all-namespaces

Create Simple Deployment

I testing cluster using simple app nginx, and service using node port. Here the snippet for nginx-dpy.yaml:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: hello-deployment
spec:
  selector:
    matchLabels:
      app: hello
  replicas: 2
  template:
    metadata:
      labels:
        app: hello
        env: staging
    spec:
      containers:
        - name: hello
          image: tuanpembual/hello
          imagePullPolicy: Always
          ports:
            - name: http
              containerPort: 80
              protocol: TCP
---
apiVersion: v1
kind: Service
metadata:
  name: hello-service
  labels:
    app: hello
spec:
  type: NodePort
  selector:
    app: hello
  ports:
    - name: http
      nodePort: 30000
      port: 80
      targetPort: 80
---

Then deploy this yaml:

kubectl apply -f nginx-dpy.yaml
curl localhost:30000

The apps can be access to using master_01_ip_public:30000/. That all from me.

References

I hope it will give you more idea. Thank you
Estu~

openSUSE + LibreOffice Virtual Conference

openSUSE dan LibreOffice menggabungkan konferensi tahunannya pada tahun 2020. Konferensi bersama ini digabungkan untuk merayakan 10 tahun Proyek LibreOffice dan 15 tahun Proyek openSUSE. Acara semula akan diselenggarakan di Nuremberg, Jerman. Namun karena situasi pandemi, acara bergeser menjadi sebuah acara daring yang akan berlokasi di https://oslo.gonogo.live. Pendaftaran di https://oslo.gonogo.live diperlukan untuk berpartisipasi dalam acara ini. Tanggal konferensi telah dijadwalkan ulang menjadi 15 – 17 Oktober 2020. Konferensi ini adalah acara komunitas yang bebas dan terbuka. Jadwal lengkap konferensi dapat dilihat pada tautan https://events.opensuse.org/conferences/oSLO/schedule. Harap perhatikan bahwa waktu yang tertera adalah UTC.

Beberapa pembicara dari Indonesia turut meramaikan openSUSE + LibreOffice Virtual Conference tahun ini, antara lain:

  1. Kuliax: Is GNU/Linux distribution for higher education still relevant? oleh Iwan Setiawan
  2. Podman on Kubernetes Cluster Production Grade – Kubernetes on Hard Way oleh Estu Fardani
  3. Building Upstream Contribution in Local FOSS Community – Based on openSUSE and LibreOffice Community in Indonesia oleh Kukuh Syafaat
  4. IT Risk Management Based on ISO 31000 and OWASP Framework using OSINT (Case Study: Election Commission of X City) oleh Anak Agung Bagus Arya Wiradarma

 

Oct 6th, 2020

Memasang VSCodium di openSUSE

Free/Libre Open Source Software Binaries of VSCode

Kode sumber Microsoft vscode adalah sumber terbuka (berlisensi MIT), tetapi produk yang tersedia untuk diunduh (Visual Studio Code) dilisensikan di bawah lisensi bukan FLOSS dan berisi telemetri/pelacakan.

Proyek VSCodium ada sehingga Anda tidak perlu mengunduh + build dari sumber. Proyek ini menyertakan skrip build khusus yang mengkloning repo Microsoft vscode, menjalankan perintah build, dan mengunggah binari yang dihasilkan untuk pengguna. Binari ini dilisensikan di bawah lisensi MIT. Telemetri dinonaktifkan.

Cara memasangnya di openSUSE adalah sebagai berikut.

  1. Tambahkan kunci gpg
    sudo rpm --import https://gitlab.com/paulcarroty/vscodium-deb-rpm-repo/raw/master/pub.gpg
    
  2. Tambahkan repo VSCodium
    printf "[gitlab.com_paulcarroty_vscodium_repo]\nname=gitlab.com_paulcarroty_vscodium_repo\nbaseurl=https://paulcarroty.gitlab.io/vscodium-deb-rpm-repo/rpms/\nenabled=1\ngpgcheck=1\nrepo_gpgcheck=1\ngpgkey=https://gitlab.com/paulcarroty/vscodium-deb-rpm-repo/raw/master/pub.gpg" |sudo tee -a /etc/zypp/repos.d/vscodium.rep
    
  3. Pasang VSCodium
    sudo zypper in codium
    

Battery Charge Thresholds dan Power Management di openSUSE dengan TLP

Baterai termasuk elemen penting dalam keberlangsungan pekerja remot. Dan sudah selayaknya mendapat perlakuan khusus untuk memperpanjang usia pakai. Salah satunya dengan mengatur Battery Charge Thesholds.

Battery Charge Thesholds adalah mekanisme pemutusan pengecasan sebelum benar-benar penuh dan menyambung kembali ketika sudah mulai kosong. Dengan tidak pernah mengisi daya baterai hingga 100% kan membuat usia pakai baterai lebih lama. Secara teorinya alurnya seperti ini. Putuskan pengisian daya, jika kapasitas baterai sudah 85% dan kembali isi jika baterai sudah 75%. Nilai persen ini bisa kita atur sesuai keinginan.

START_CHARGE_THRESH_BAT0="75"
STOP_CHARGE_THRESH_BAT0="85"

START_CHARGE_THRESH_BAT1="75"
STOP_CHARGE_THRESH_BAT1="85"

Fitur Power Management ini cukup lengkap ketika menggunakan ThinkVantage di Sistem Operasi Windows. Jelas, ThinkVantage merupakah fitur khas di jajaran laptop kelas atas Thinkpad. Termasuk Thinkpad X230 yang saya miliki. Tapi perangkat lunak dari ThinkVantage tidak tersedia di sistem operasi GNU/Linux. Jadi ya kudu pake cara lain.

Salah satu aplikasi yang bisa melakukan tugas pengaturan Battery Charge Thresholds adalah TLP. Perangkat lunak ini sudah tersedia di beberapa lumbung distribusi GNU/Linux. Dulu saya menggunakan ini sejak di Slackware, BlankOn, hingga kini openSUSE.

Instalasi TPL

Merujuk pada situs resmi TLP pada tautan https://linrunner.de/tlp/, langkah instalasinya dan menjalankannya cukup mudah. Berikut stepnya:

sudo zypper in tlp-rdw
sudo systemctl enable tlp

Konfigurasi TPL

Konfigurasi TLP dilakukna dengan mengubah-suai berkas TLP pada alamat: /etc/tlp.conf. Silahkan gunakan editor teks favorit anda. Berikut konfigurasi yang saya lakukan:

--- TLP 1.3.1 --------------------------------------------
+++ Configured Settings:
/etc/tlp.conf L0026: TLP_ENABLE="1"
/etc/tlp.conf L0038: TLP_PERSISTENT_DEFAULT="0"
/etc/tlp.conf L0050: DISK_IDLE_SECS_ON_AC="0"
/etc/tlp.conf L0051: DISK_IDLE_SECS_ON_BAT="2"
/etc/tlp.conf L0056: MAX_LOST_WORK_SECS_ON_AC="15"
/etc/tlp.conf L0057: MAX_LOST_WORK_SECS_ON_BAT="60"
/etc/tlp.conf L0100: CPU_ENERGY_PERF_POLICY_ON_AC="balance_performance"
/etc/tlp.conf L0101: CPU_ENERGY_PERF_POLICY_ON_BAT="balance_power"
/etc/tlp.conf L0128: SCHED_POWERSAVE_ON_AC="0"
/etc/tlp.conf L0129: SCHED_POWERSAVE_ON_BAT="1"
/etc/tlp.conf L0135: NMI_WATCHDOG="0"
/etc/tlp.conf L0150: DISK_DEVICES="sda"
/etc/tlp.conf L0158: DISK_APM_LEVEL_ON_AC="254 254"
/etc/tlp.conf L0159: DISK_APM_LEVEL_ON_BAT="128 128"
/etc/tlp.conf L0198: SATA_LINKPWR_ON_AC="med_power_with_dipm max_performance"
/etc/tlp.conf L0199: SATA_LINKPWR_ON_BAT="med_power_with_dipm min_power"
/etc/tlp.conf L0219: AHCI_RUNTIME_PM_TIMEOUT="15"
/etc/tlp.conf L0264: WIFI_PWR_ON_AC="off"
/etc/tlp.conf L0265: WIFI_PWR_ON_BAT="on"
/etc/tlp.conf L0270: WOL_DISABLE="Y"
/etc/tlp.conf L0276: SOUND_POWER_SAVE_ON_AC="0"
/etc/tlp.conf L0277: SOUND_POWER_SAVE_ON_BAT="1"
/etc/tlp.conf L0283: SOUND_POWER_SAVE_CONTROLLER="Y"
/etc/tlp.conf L0291: BAY_POWEROFF_ON_AC="0"
/etc/tlp.conf L0292: BAY_POWEROFF_ON_BAT="0"
/etc/tlp.conf L0302: RUNTIME_PM_ON_AC="on"
/etc/tlp.conf L0303: RUNTIME_PM_ON_BAT="auto"
/etc/tlp.conf L0323: USB_AUTOSUSPEND="1"
/etc/tlp.conf L0342: USB_BLACKLIST_PHONE="0"
/etc/tlp.conf L0354: USB_BLACKLIST_WWAN="0"
/etc/tlp.conf L0374: RESTORE_DEVICE_STATE_ON_STARTUP="0"
/etc/tlp.conf L0442: NATACPI_ENABLE="1"
/etc/tlp.conf L0443: TPACPI_ENABLE="1"
/etc/tlp.conf L0444: TPSMAPI_ENABLE="1"
/etc/tlp.conf L0032: TLP_DEFAULT_MODE="AC"
/etc/tlp.conf L0076: CPU_SCALING_GOVERNOR_ON_AC="powersave"
/etc/tlp.conf L0077: CPU_SCALING_GOVERNOR_ON_BAT="powersave"
/etc/tlp.conf L0425: START_CHARGE_THRESH_BAT0="80"
/etc/tlp.conf L0426: STOP_CHARGE_THRESH_BAT0="90"
/etc/tlp.conf L0431: START_CHARGE_THRESH_BAT1="80"
/etc/tlp.conf L0432: STOP_CHARGE_THRESH_BAT1="90"

Menjalankan TLP

Setelah melakukan konfigurasi secukupnya, TLP siap dijalankan

sudo systemctl restart tlp
sudo tlp start #untuk memulai tlp
sudo tlp-stat -s #untuk menampilkan status tlp
sudo tlp-stat -c #untuk melihat konfigurasi apa yang berjalan

TLP UI

Update: Ternyata ada yang nulis antarmuka TLP dengan GTK (GNOME). Cara pasang bisa merujuk ke https://github.com/d4nj1/TLPUI. Saya tidak memasang TLP UI karena lagi pakai KDE.

Bahan Bacaan:

  1. https://www.tecmint.com/tlp-increase-and-optimize-linux-battery-life/

Cukup. Semoga bermanfaat.
Estu~

Minimal/custom install KDE

Setelah selesai melakukan minimal/custom install openSUSE dan membuat fitur factory reset, langkah selanjutnya adalah memasang Desktop Environment/Window Manager, Display Manager, aplikasi-aplikasi pendukung dan modul-modul YaST yang diperlukan. Tapi sayangnya saya cuma punya satu laptop, sehingga tidak bisa mencoba banyak Desktop Environment atau Window Manager. Jadi yang saya tuliskan di sini apa yang biasa saya gunakan saja, sesuai dengan judul tulisan.

Memasang paket dari installer

Ketika belum terhubung ke internet, jika kita tidak mematikan repositori online saat baru selesai instalasi openSUSE, zypper akan komplain bahwa repositori-repositori tersebut gagal diperbarui. Jadi sebaiknya kita matikan dahulu:

su -c "zypper modifyrepo -dt"

Lalu hidupkan repositori installer:

su -c "zypper modifyrepo -el"

Setelah itu masukkan piringan DVD atau flashdisk yang digunakan untuk instalasi openSUSE. Lalu pasang semua paket yang diperlukan dengan perintah:

su -c "zypper install <nama-paket>"

Paket-paket yang mungkin perlu adalah:

  • plasma5-session atau plasma5-session-wayland: Desktop Environment. Perbedaan dari kedua paket tersebut adalah, jika memasang plasma5-session-wayland akan ikut membawa plasma5-session sebagai dependensi, tapi tidak sebaliknya. Jika memasang plasma5-session kita hanya bisa login ke sesi X11 saja, tapi plasma5-session-wayland, selain bisa ke X11, juga bisa ke sesi Wayland dan Full Wayland.
  • sddm: Display Manager. Setelah memasang paket ini saya bisanya mengganti service display-manager.service dengan sddm.service dengan perintah: su -c "systemctl disable display-manager.service && systemctl enable sddm.service". Jika perlu login otomatis, ubah parameter DISPLAYMANAGER_AUTOLOGIN di /etc/sysconfig/displaymanager dengan perintah: su -c "sed -i 's/DISPLAYMANAGER_AUTOLOGIN=\"/DISPLAYMANAGER_AUTOLOGIN=\"$USER/' /etc/sysconfig/displaymanager".
  • plasma-nm5: NetworkManager applet.
  • plasma5-pa: Volume Manager applet.
  • dolphin: File Manager.
  • konsole: Terminal Emulator.
  • kate: Text Editor.
  • okular: Document Viewer.
  • gwenview5: Image Viewer.
  • spectacle: Screen Capture, untuk mengambil screenshot desktop.
  • ark: Archive Manager, untuk membuka file .zip, .tar, dan lain-lain.
  • vlc: Multimedia Player, untuk memutar video dan musik.
  • MozillaFirefox: Web Browser.
  • libreoffice-writer: Word Processor LibreOffice.
  • libreoffice-calc: Spreadsheet LibreOffice.
  • libreoffice-impress: Presentation LibreOffice.
  • libreoffice-qt5: Antarmuka Qt LibreOffice, supaya serasi dengan tampilan KDE.

Paket-paket pelengkap

  • kernel-firmware atau di Tumbleweed ada kernel-firmware-<perangkat>. Paket ini tergantung pada hardware yang digunakan. Jika ada hardware yang membutuhkan kernel-firmware biasanya saat booting muncul peringatan seperti fail to load firmware brcm/bcm43xx-0.fw (ini yang muncul di laptop saya), atau bisa juga diperiksa dengan perintah dmesg | grep -i 'firmware'. Dari peringatan tersebut kita bisa menentukan firmware apa yang dibutuhkan dengan perintah zypper search --provides bcm43xx-0.fw. Dari hasil perintah tersebut akan muncul kernel-firmware atau kernel-firmware-brcm (tergantung apakah Anda menggunakan Leap atau Tumbleweed). Maka pasang paket tersebut.
  • glibc-locale atau glibc-locale-base. Ini adalah paket locale. Untuk menghilangkan peringatan -bash: warning: setlocale: LC_BLABLA: cannot change locale (BLABLA): No such file or directory saat masuk mode CLI yang dibahas di tulisan minimal/custom install openSUSE dan peringatan Failed to set local. Fix your system. saat menjalankan perintah snapper yang dibahas di tulisan membuat fitur factory reset. Jika Anda akan menggunakan bahasa selain Inggris (US), pasang glibc-locale. Tapi jika Anda hanya akan menggunakan bahasa Inggris standar sistem, cukup pasang glibc-locale-base. Jika Anda memilih memasang glibc-locale-base tapi lebih suka format 24 jam daripada AM/PM dan/atau lebih suka format tanggal bulan tahun daripada bulan tanggal tahun, Anda bisa mengubah bahasa dari en_US.UTF-8 ke C.UTF-8 dengan perintah su -c "localectl set-locale LANG=C.UTF-8".
  • ca-certificates-mozilla. Untuk mengakses jaringan aman, termasuk repositori https.
  • deltarpm. Jika menggunakan openSUSE Leap. Supaya ukuran file yang diunduh ketika update lebih kecil.
  • btrfsmaintenance. Jika menggunakan Btrfs, untuk scrub, balance dan trim otomatis dalam jangka waktu tertentu.
  • alsa-plugins-pulse. Tanpa ini PulseAudio tidak bisa memutar suara dari lebih dari satu sumber secara bersamaan.
  • usb_modeswitch, ModemManager dan mobile-broadband-provider-info. Jika Anda menggunakan modem mobile broadband (operator selular atau sejenisnya). Bisa juga ditambahkan modem-manager-gui jika perlu.
  • kdeconnect-kde. Untuk menghubungkan komputer dengan smartphone Android dan perangkat lain. Jangan lupa untuk memasang openssh untuk bisa membuka tempat penyimpanan Android dari Dolphin.
  • kio-extras5. Komponen tambahan KIO. Salah satu fungsinya supaya bisa menampilkan preview file di File Manager Dolphin atau Konqueror.
  • ffmpegthumbs. Untuk menampilkan preview file video.
  • libqt5-qtimageformats. Beberapa format gambar, seperti .webp, tidak bisa dibuka di Gwenview tanpa paket ini.
  • xdg-desktop-portal-kde. Supaya open/save dialog jadi serasi di aplikasi non KDE.
  • upower. Untuk manajemen daya yang nantinya bisa diatur dari System Settings.
  • tlp-rdw. Otomatis membawa paket tlp sebagai dependensi. Untuk manajemen daya.
  • smartmontools. Monitor perangkat SMART (Self-Monitoring, Analysis and Reporting Technology System).
  • grub2-branding-openSUSE. Jika ingin menu Grub bling-bling. Tanpa paket ini tampilan Grub hanya layar hitam dengan tulisan putih.
  • grub2-snapper-plugin. Supaya bisa boot ke read-only snapshot melalui menu Grub.
  • plymouth. Jika ingin layar booting bling-bling. Tanpa ini, saat booting hanya layar hitam.
  • command-not-found. Untuk mempermudah mencari paket yang harus dipasang. Ketika kita menjalankan suatu perintah mendapat respon bash: command not found, cara termudah mencari paket yang harus dipasang adalah dengan perintah cnf <perintah> lewat paket ini.
  • udisks2. Untuk mempermudah mounting perangkat internal atau eksternal (seperti flashdisk) dari File Manager Dolphin.
  • ntfs-3g. Jika ada partisi dengan filesystem NTFS.
  • man. Untuk membaca Manual.
  • xdg-utils. Perintah xdg-open, xdg-su dan beberapa perintah xdg-<sesuatu> lainnya ada di paket ini.
  • xdg-user-dirs. Untuk manajemen direktori standar (seperti Documents, Music, Videos, dll) di $HOME.
  • fonts-config. Setelan antialiasing, hinting, mengatur default fonts Sans, Serif dan Monospace diatur lewat paket ini. Pengaturannya ada di /etc/sysconfig/fonts-config. Setelah mengubah isi dari file tersebut, jalankan su -c "fonts-config".
  • Font pelengkap. Bisa coba dengan noto*fonts atau google*fonts. Tanda * supaya semua paket dengan awalan noto atau google dan akhiran fonts ikut dipilih untuk dipasang.
  • plasma5-addons. Tambahan koleksi Widget Plasma.
  • vim atau nano. Jika butuh teks editor CLI.
  • sudo. Untuk mengganti su -c "perintah" dengan sudo perintah, jika Anda lebih terbiasa atau lebih nyaman dengan sudo.
  • Modul-modul YaST. Cari dengan perintah zypper search yast. Pasang sesuai dengan kebutuhan. Jangan lupa untuk memasang libyui-qt-pkg* dan/atau libyui-ncurses-pkg* jika tidak otomatis ikut terpasang. Ganti * dengan nomor yang sesuai dengan hasil pencarian menggunakan zypper search libyui. Setelah memasang YaST, jangan lupa untuk mengubah parameter USE_SNAPPER di /etc/sysconfig/yast2 menjadi no dengan perintah su -c "sed -i 's/USE_SNAPPER=\"yes/USE_SNAPPER=\"no/' /etc/sysconfig/yast2". Karena jika tidak diubah, YaST akan membuat Snapshot di konfigurasi root setiap kali kita membuka modul YaST yang akan membuat nomor Snapshot menjadi tidak serasi antara konfigurasi root dengan konfigurasi lainnya.
  • Dan lain-lain. Silakan cari dengan perintah zypper search <keyword> jika ada paket yang dibutuhkan yang ada dalam installer.

Setelah semua paket yang dibutuhkan yang ada dalam installer dipasang, cabut/keluarkan piringan DVD atau flashdisk installer. Lalu matikan kembali repositori installer tersebut:

su -c "zypper modifyrepo -dl"

Hidupkan kembali repo-oss, repo-non-oss, repo-update dan repo-update-non-oss. Untuk repo-update-non-oss ini hanya ada di Leap, sedangkan di Tumbleweed tidak ada:

su -c "zypper modifyrepo -e repo-oss repo-non-oss repo-update repo-update-non-oss"

Tambahkan repositori Packman

Setelah selesai dengan semua proses instalasi paket dari installer, jalankan ulang (reboot) komputer, lalu hubungkan ke internet. Lanjutkan dengan menambahkan repositori Packman.

Untuk openSUSE Leap 15.2 (untuk Leap selain 15.2, sesuaikan angka versinya):

su -c "zypper addrepo --name 'Packman Repository' https://repo.opensuse.id/packman/openSUSE_Leap_15.2/ repo-packman"

Untuk openSUSE Tumbleweed:

su -c "zypper addrepo --name 'openSUSE-Tumbleweed-Packman' https://repo.opensuse.id/packman/openSUSE_Tumbleweed/ repo-packman"

Nama setelah opsi --name silakan ubah sesuai keinginan supaya mudah diingat atau supaya cocok dengan penamaan repositori lainnya. Untuk melihat daftar repositori, gunakan perintah zypper repos.

Jika tidak mau repositori otomatis melakukan refresh, tambahkan opsi --no-refresh. Untuk melakukan refresh secara manual, jalankan perintah su -c "zypper refresh".

Jika ingin paket yang diinstall tidak otomatis terhapus setelah paket terpasang, tambahkan opsi --keep-packages. Semua file paket ada di /var/cache/zypp/packages.

Untuk opsi-opsi lainnya silakan jalankan perintah zypper help addrepo.

Setelah repositori Packman ditambahkan, update paket ke repositori tersebut:

su -c "zypper dup --from repo-packman"

Setelah selesai, coba VLC untuk memainkan berbagai format audio/video. Seharusnya proses ini sudah cukup untuk menjalankan berbagai format standar audio/video, seperti .mp3 atau .mp4, tanpa harus memasang lagi codec khusus.

Pasang paket lain yang tidak tersedia di installer

Paket-paket yang mungkin perlu ditambahkan:

  • opi. Untuk memasang paket dari OBS. Pastikan untuk memasang sudo juga jika memasang paket ini. Cara mencari dan memasang paket dari OBS dengan opi adalah dengan perintah opi <keyword>, lalu ikuti petunjuknya.
  • falkon. Jika tidak suka dengan Firefox.
  • mpv. Jika Anda menganggap VLC terlalu bloated atau terlalu overkill.
  • elisa atau clementine. Jika ingin memisahkan player musik dengan player video. Jangan lupa untuk memasang gstreamer-plugins-libav, gstreamer-plugins-good, gstreamer-plugins-bad dan gstreamer-plugins-ugly jika Anda memasang clementine, jika paket-paket tersebut tidak otomatis ikut terpasang sebagai dependensi.
  • Dan lain-lain. Silakan cari dengan perintah zypper search <keyword> jika ada paket yang dibutuhkan yang tidak ada di dalam installer.

Untuk pengguna Desktop Environment atau Window Manager lain

Jika Anda ingin menggunakan Desktop Environment atau Window Manager lain, buat semua paket yang ada di sini sebagai acuan dan ganti dengan alternatif di Desktop Environment/Window Manager yang Anda gunakan. Misalnya ganti dolphin dengan nautilus atau thunar dan seterusnya.

Untuk pengguna Plasma 5 pun tidak perlu mengikuti daftar ini, karena saya juga tidak memasang semua yang ada di sini. Anda bisa bereksperimen dengan mengurangi atau menambahkan paket lainnya sesuai kebutuhan. Jika ada yang salah atau dirasa kurang pas, lakukan factory reset dan mulai lagi dari awal sampai menemukan setelan yang pas dengan selera pribadi. “No pain, no gain.”

Jika ada paket penting yang tidak tercantum di sini, kabari saya.


Tulisan ini dapat dibaca juga di: https://kikisyahadat.github.io/2020/09/07/minimal-custom-install-kde.html