Cara Mengelola Driver dan Aplikasi Pada Linux


Dimana aplikasi dan driver diinstall pada linux? – Aplikasi pada linux dikenal dengan istilah Package sedangkan  driver pada linux disebut dengan kernel modules ,lalu dinamakah file aplikasi dan driver diletakan?untuk memahami hal ini baiknya kamu memahami struktur dan hierarki filesystem pada linux.
Windows memerklukan driver yang dibuat oleh pabrikan/manufacturer sebuah hardware agar bisa bekerja.Linux dan sistem operasi lain juga memerlukan driver agar perangkat dapat bekerja,hanya saja driver pada linux dihandle dengan cara yang berbeda.
Kabar baik pengguna linux adalah, jika  hardware dipasang pada linux dan bekerja begitu saja maka kita tidak perlu melakukan apapun ,tapi jika yang terjadi sebaliknya maka kadang kita perlu menginstal driver secara manual ,tetapi ada beberapa hardware yang tidak bisa berjalan sama sekali di linux (hardware terlalu tua atau terlalu baru sehingga driver untuk linux belum dibuat)

Windows Driver vs Linux Driver

Pada Windows -Saat menginstall windows, kamu perlu menginstall driver hardware yang telah disediakan oleh pabrikan/manufacturer hardware tersebut agar hardware dapat bekerja – Seperti chipset,VGA,LanCard,SoundCard,storage controller dan lain sebagainya.
Windows sebenarnya telah mengikutsertakan driver (bundle) kedalam sistem operasi itu sendiri,namun tidak semua driver disertakan dalam paket OS dan hanya membundle driver yang masuk dalam kategori generik dan mayoritas digunakan seperti driver mouse,keyboard,chipset,vga standar,storage device dan lain sebagainya.
installasi driver otomatis pada windows
Driver juga disertakan dalam server windows update,ketika kamu memasang sebuah hardware pada windows,maka windows akan menscann dan mencari kan driver yang cocok melalui windows update dan jika driver yang sesuai tidak ditemukan maka kamu harus menginstall nya manual dengan mendownload driver di website pembuat hardware tersebut.
Pada Linux -Beberapa hal berbeda pada linux,sebagian besar driver untuk hardware bersifat opensource dan telah disertakan (include) pada linux itu sendiri.Pada dasarnya driver yang telah disertakan kedalam linux menjadi bagian dari kernel itu sendiri namun ada sebagian perangkat yang menggunakan service tertentu untuk menginstall dan mengkonfigurasi driver seperti Graphic Card yang menjadi bagian dari Xorg (Graphic system) serta printer dan scanner yang dikonfigurasi oleh CUPS service (printer and scanner system).
Dengan kata lain,sebagian besar driver yang kita perlukan telah terintegrasi dengan kernel,graphic server dan printer server.Driver ini biasanya dibuat oleh perseorangan,group bahkan oleh pembuat hardware tersebut yang ikut tergabung  dalam linux kernel projek atau projek lain.
Yang berarti kamu tidak usah repot-repot mencari/menginstall driver secara manual saat menggunakan linux agar hardware bisa bekerja,karena sebagian driver telah terintegrasi pada paket kernel dan hardware akan dikenali oleh system dan bekerja dengan sendirinya tanpa kamu harus melakukan apa-apa.Kernel ini akan sangat sering diupdate agar bisa mensupport hardware tipe baru dan meningkatkan kualitas kinerja kernel itu sendiri.
Driver pada linux disebut “kernel modules” dan menggunakan extensi *.ko untuk nama file fisik nya.

Linux Kernel dan Kernel Modules

Linux Kernel – adalah aplikasi yang dibuat untuk berjalan pada level terendah disebuah sistem yang berhadapan langsung dengan hardware komputer.Kernel diLoad pertama kali pada saat sistem operasi booting dan akan tetap ada di dalam memory samapi sistem dimatikan, oleh karena itu kernel ditempatkan di area terlindung di memory(RAM) untuk menghindari tertimpa oleh memory aplikasi lain .kernel dirancang sekecil  mungkin  agar menghemat resource (karena kernel diload di memory secara permanent begitu komputer dihidupkan).
skema cara kerja kernel dan kernel modules atau driver pada linux
Kernel bertanggung jawab dalam management resource yang dipakai oleh aplikasi seperti memory management,process dan task management serta disk management, kernel juga sebagai penghubung komunikasi  antara hardware dengan aplikasi yang ada di dalam sistem.
Kernel Modules – Linux menyertakan hampir semua hardware driver dalam paket distribusi linux jika suatu saat driver diperlukan oleh hardware tertentu maka tinggal driver diload kedalam kernel dan jika tidak diperlukan tinggal diUnload dari kernel,karena sifat flexible inilah kernel modules dikenal juga dengan sebutan Loadable Kernel Module (LKM).kernel modules didesain dengan ukuran sekecil mungkin dan hanya diload ke dalam kernel jika dibutuhkan saja.
Untuk pabrikan hardware dengan closed source driver (propriertary) kernel modules nya tidak terinstall secara default namun telah disediakan oleh pabrikan hardware tersebut.Seperti pada graphic card yang hardware nya tidak terinstall otomatis,maka kamu harus mendownload nya secara manual baik melalui official repository atau dari official website pabrikan hardware tersebut.

Proprietary Driver

Beberapa pabrikan hardware tidak mendistribusikan source code drivernya secara bebas,yang berarti driver dari perangkat tersebut hanya dikembangkan dan didevelop oleh perusahaan tersebut.Ada beberapa perangkat yang tidak menyediakan driver secara opensource (proprietary) seperti Graphic card (termasuk NVIDIA dan AMD) dan beberapa pabrikan perangkat WiFi,yang artinya driver perangkat ini tidak diintegrasikan dengan kernel /belum bisa bekerja sebelum kamu menginstall drivernya secara manual.
Komunitas Linux memang telah membuat versi driver versi opensource untuk perangkat tersebut agar hardware dapat bekerja,namun performanya tidak akan sama dengan performa ketika menggunakan driver yang disediakan oleh perangkat pabrikan tersebut.
JIka kamu ingin mendapatkan performa yang maximal dari hardware dengan proprietary driver maka kamu harus menginstall nya secara manual (karena proprietary driver tidak diintegrasikan dalam linux kernel)cek bagaimana cara menginstal proprietary driver untuk GraphicCard pada linux.Propietary driver biasnaya tersedia official repository dengan sedikit penyesuaian agar kompatible dan mudah untuk diinstall oleh user dari distro masing-masing.

Mengelola Driver Pada Linux

Karena tidak semua driver hardware bersifat opensource dari pabrikan nya maka terkadang kita perlu untuk menginstall driver secara manual pada linux,manual disini bukan 100% manual ,hanya saja kita bisa memilih dan mengkonfigurasi driver yang tidak terintegrasi dengan kernel linux.

Cara Menginstall Driver/Module Pada Linux

Install– Untuk menginstall driver sama seperti menginstall aplikasi,bisa dengan cara manual atau download dan install dari official repository distro linux masing-masing ,sedangkan untuk mengkonfigurasi jenis driver tertentu seperti VGA,printer dan scanner kita menggunakan service khusus yang telah disediakan oleh linux,seperti contoh : Untuk mengkonfigurasi printer dan scanner kita menggunakan CUPS service sedangkan untuk mengkonfigurasi Graphic card kita gunakan Xorg Service.
Penginstallan driver menggunakan package manager tidak memerlukan konfigurasi secara manual, tinggal klik beres. untuk pembahasan kernel dan driver/kernel module module pada linux akan dibuat di artikel yang lain.

Cara Melihat Driver yang terinstall di Linux

seperti penjelasan sebelum nya, semua driver hardware yang opensource telah diintegrasikan dalam paket distribusi linux dan file fisik untuk driver berada di /lib/modules .File driver ini akan diaktifkan dengan cara diload ke kernel ketika dibutuhkan oleh perangkat yang sesuai. untuk melihat driver apa saja yang tersedia /terinstall pada linux kita bisa menggunakan perintah ls -R /lib/modules/`uname -r`/kernel/drivers
melihat driver yang terinstall pada linux dengan terminal emulator
untuk melihat informasi tentang driver /kernel module bisa menggunakan perintah modinfo namaDriver
melihat informasi detail driver yang terinstall pada linux

Cara Melihat Driver yang aktiv (loaded kernel modules)

Driver pada linux diload ke kernel dan dikenal dengan sebutan kernel modules ,untuk melihat kernel modules yang digunakan oleh hardware dan diload kedalam kernel kita bisa menggunakan perintah lsmod
melihat driver yang sedang aktif diload ke kernel pada linux
Kolom pertama adalah nama module/driver ,kolom kedua menunjukan jumlah memory yang dipakai oleh driver/module dan kolom terakhir menunjukan jumlah aplikasi yang sedang menggunakan driver tersebut dan mana aplikasinya. Angka nol berarti driver sedang tidak digunakan oleh aplikasi apapun.
Kmu juga bisa menggunakan perintah lspci -k untuk melihat informasi hardware dan driver yang digunakan pada linux
melihat driver yang digunakan oleh hardware pada linux

Menghapus driver pada linux

Jika  driver yang dimaksud adalah driver yang disertakan dalam paket distribusi linux ,maka  kita tidak perlu menghapusnya dan cukup memberi tahu linux untuk tidak meload driver tersebut jika kita mempunyai driver yang lebih baik,kecuali jika driver yang kamu install merupakan proprietary driver kamu bisa menghapusnya melalui package manager seperti menghapus aplikasi pada umum nya.

Mengelola Aplikasi Pada Linux

Secara umum kita menggunakan Package manager yang telah disediakan oleh masing-masing distro untuk mengelola aplikasi (install,update,upgrade,remove) pada linux.Package manager untuk setiap distro biasanya berbeda sehingga kita harus tau dulu distro apa yang sedang kita gunakan dengan mengetikan perintah uname -a atau cat /proc/version atau lsb_release -a
melihat informasi sistem operaasi linux yang sedang digunakan
Setelah kita tau distro dari linux yang kita gunakan (Ubuntu – debian pada contoh diatas ) maka kita bisa tau package manager apa yang tersedia untuk mengelola aplikasi pada linux.Berikut beberapa package manager yang digunakan oleh mayoritas distro linux:
1. YUM (Yellowdog UpdaterModified) – Red Hat Enterprise Linux(RHEL)
yum merupakan tool utama yang digunakan untuk install,update,upgrade,delete dan mengatur paket aplikasi dalam bentuk RPM dari official Red Hat Software Repository pada Red Hat Enterprise Linux (RHEL).Yum digunakan pada RHEL (Misal RHEL,FEDORA,CentOS)dari versi 5 sedangkan versi sebelum nya menggunakan up2date.yum dan rpm package RHEL
Search ,Install ,Update dan Upgrade Commandyum search keyword Mencari paket dengan keyword tertentu yang tersedia di repository
yum minstall namaPaket Untuk menginstall paket
yum update namaPaket Untuk mengupdate paket secara spesifik ,yum update digunakan untuk mengupdate semua paket
yum check-update Untuk melakukan pengecekan versi pembaruan paket yang terinstall dan memberitahumu paket manasaja yang tersedia update dari repository
yum localinstall /path/to/package.rpm Menginstall package dalam bentuk RPM package dari local folder
Management Command
yum list installed Menampilkan paket yang terinstall
yum list installed | grep “namaPaket” Mengecek apakah namaPaket terlah terinstall atau belum
yum info namaPaket Menampilkan informsi detail akan paket
Removal Command
yum remove namaPaket Menghapus paket tertentu
yum groupremove group Menghapus semua paket yang berada pada grup tertentu
2. PACMAN (package manager) – Arch Linuxpacman arch linux package manager
pacman digunakan oleh distro Arch Linux, versi GUI dari pacman adalah pamac
Install dan Update Command
pacman -Syu ,Sync dan update semua package yang terinstall di komputer gunakan
pacman -Syudd ,Sync dan update semua package yang terinstall di komputer , dan skip package dependency. opsi ini digunakan ketika kita mengalami error “pacman could not satisfy dependencies” ketika mengupdate dengan opsi -Syu
pacman -S nama_package ,Mencari dan menginstall package tertentu
Removal Command
pacman -Rs nama_Package ,Menghapus package dan dependency yang sudah tidak terpakai
pacman -Rsc nama_package ,Menghapus package,dependency dan package lain yang bergantung kepadanya
pacman -Rdd nama_package ,Menghapus package tanpa menghapus dependencies yang digunakan nya.
pacman -Sc ,menghapus cache package yang sudah tidak terinstall
3. DPKG – Debian (versi lama)
debian package manager DPGK lawas
Merupakan package manager yang digunakan oleh linux Debian family versi terdahulu, dan hanya bisa digunakan untuk menginstall package secara local.Versi baru dari dpkg dengan dukungan install secara  online dari repository adalah APT
Install Command
dpkg -i /path/to/packageName.deb Menginstall aplikasi dengan format debian package *.deb
dpkg -R --install /path/to/folder/fillWithPackage/  menginstall semua paket dalam format *.deb yang berapa di suatu folder
Management Command
dpkg -l Meilihat semua aplikasi yang terinstall
dpkg -l namaPaket Untuk mengecek apakah paket/aplikasi terinstall dan menampilkan nya dalam bentuk list sederhana
dpkg -c /path/to/namaPaket.deb Melihat isi dari paket yang akan diinstall
dpkg -s namaPaket Mengecek apakah paket terlah terinstall dan menampilkan informasi detail tentang paket tersebut
Removal Command
dpkg -r namaPaket Menghapus namaPaket dan mempertahankan konfigurasi yang dibuat oleh namaPaket
dpkg -p namaPaket Menghapus namaPaket dan semua konfigurasi yang dibuatnya
4. APT (Advanced Package Tool) – Debian
apt debian package managerAPT merupakan seperangkat tool yang digunakan untuk mengelola debian package , APT biasanya digunakan oleh linux berbasis debian seperti ubuntu. Versi GUI dari APT adalah Synaptic package manager, kita bisa menginstall aplikasi langsung dari repository secara online menggunakan APT sedangkan dpkg digunakan hanya untuk menginstall aplikasi secara local.
Install Command
apt-get install nama_package Untuk menginstall package
apt-get build-dep nama_package Untuk menginstall dependencies yang diperlukan oleh nama_package,jika nama_package tidak ditemukan di repository maka akan error.
apt-get install nama_package1 nama_package2 nama_packageN untuk menginstall package lebih dari satu sekaligus.
Maintenance Command
apt-get update ,Untuk mengupdate informasi package ,informasi inilah yang digunakan untuk pembanding dengan versi package yang terinstall di komputer kita dengan versi yang ada di repository.
apt-get upgrade ,Untuk mengupgrade semua package di komputer kita yang versinya lebih rendah dari versi repository,biasanya kita menjalankan apt-get update terlebih dahulu untuk fetch versi package dari repository ke komputer kita
apt-get dist-upgrade ,Alih-alih mengupgrade semua package yang terinstall,command ini hanya mengupgrade packge penting saja.
apt-get check ,Untuk melakukan diagnostik terhadap package yang mengalami broken dependencies
apt-get -f install ,Untuk fix broken package dependencies
apt-get autoclean ,Untuk menghapus .deb file untuk package yang sudah tidak terinstall di system,biasanya ketika kita menginstall package,linux akan menyimpan deb file di cache directory.
apt-get clean ,Menghapus semua package yang berada di directory cache tanpa pandang bulu.cache berada di /var/cache/apt/archives untuk melihat total ruang yang terpakai oleh cache bisa menggunakan perintah du -sh /var/cache/apt/archives
Search Command
apt-cache search deskripsi ,Digunakan untuk mencari package yang mengandung deskripsi yang telah kita tentukan,misalnya kita ingin mencari game balap tetapi tidak tau nama package game nya kita bisa menggunakan perintah apt-cache search racing game
apt-cache show nama_package ,digunakan untuk melihat informasi detail tentang package
apt-cache policy nama_package , Digunakan untuk mengecek apakah package telah terinstall di komputer kita.
Removal Command
apt-get remove nama_package, Untuk menghapus package tetapi tidak menghapus file setting dari aplikasi tersebut
apt-get purge nama_package ,Untuk menghapus package berikut file konfigurasi yang dibuatnya.
apt-get autoremove nama_package,Untuk menghapus package dan dependencies dari package tersebut.

Mengelola Aplikasi dengan GUI Package Manager

Cara paling mudah untuk memanage aplikasi pada linux adalah dengan menggunakan package manager versi GUI , karena kita tidak perlu menghafal dan mengetikan command. GUI Package manager pada linux sama persis fungsinnya seperti google play store, yang digunakan untuk mencari,install,update,upgrade dan hapus aplikasi. Package manager mendownload aplikasi,driver dan kernel dari official repository server pada masing-masing distro untuk menjaga integritas package/aplikasi yang diinstall agar terhindar dari infeksi malware pada package.
Malware– Menginstall aplikasi secara manual yang didownload dari website yang tidak jelas sangat tidak direkomendasikan karena berpotensi membahayakan sistem yang kita kelola, bisa saja package sudah dirubah dan ditanam backdoor malware yang secara tidak langsung kita menyerahkan akses komputer kita ketangan hacker.
GUI package manager– semua linux dengan Xwindows telah dilengkapi dengan GUI package manager, nama untuksetiap distro linux adalah berbeda, berikut nama package manager dan GUI package manager untuk distro linux yang populer:
linux GUI package manager
Debian                    versi console dpkg , apt dan untuk versi GUI nya disebut Synaptic package manager 
Arch                        versi console pacman dan untuk versi GUI diberinama pamac-manager
RHEL                      versi console yum dan versi GUI nya diberinama pirut (package management tool)

Mengelola aplikasi dengan Console Package Manager /Manual

Untuk melakukan install update dan remove menggunakan console package manager bisa dilakukan melalui terminal emulator pada desktop dan menggunakan perintah yang sudah tertera diatas,sesuai dengan jenis distro linux dan package manager yang digunakan.
Terkadang ada package special yang tidak masuk dalam repository dan kita mau tidak mau harus menginstall nya dengan cara manual tanpa menggunakan GUI package manager, yap kita menggunakan console saat menginstall 🙂
Proses update dan upgrade sama dengan proses install,jadi caranya sama dengan yang akan dijelaskan dibawah ini :
Binnary file
Merupakan format dengan suffix *.bin yang merupakan master installer dari sebuah aplikasi, untuk menginstall cukup mudah caranya :
1. Berikan atrtibut executable (+x) kepada file dengan format *.bin tersebut menggunakan perintah chmod a+x namaMasterApp.bin
2. eksekusi menggunakan perintah ./namaMasterApp.bin 
3. ikuti prosedur penginstallan nya.
Source Package
Master aplikasi ini masih berbentuk source code dan belum dicompile,biasanya dalam format compressed tarbal file bisa dengan format tar atau bz . Karena masih dalam bentuk source code dan perlu dicompile maka sebelum bisa menginstall nya kita harus mengompile nya terlebih source code app compressed file pada linuxdahuluy, dan untuk bisa mengkompile suatu source code kita memerlukan dependencies yang diperlukan oleh source package tersebut.
Proses compile bisanya memerlukan waktu yang lebih lama dari pada menginstall aplikasi yang telah dicompile (binnary),oleh karena itu jika kamu ingin menginstall aplikasi yang masih berbentuk source code kamu harus benar-benar membaca petunjuk penginstallan dari developer software tersebut, installah semua dependencies package yang diperlukan sebelum melakukan compile.
jika terjadi error saat compile maka bacalah dengan seksama,biasanya pesan error menunjukan dependencies yang diperlukan,maka install llah dependencies yang diperlukan dan jalankan lagi proses compile.
->Source code dalam format gzipped tarbal atau bzipped tarball
1. Extract menggunakan perintah tar -zxvf aplikaasiku.tar.gz jika berformat gzipped tarbal dan tar -jxvf aolikasiku.tar.bz2 jika berformat bzipped tarball
2. cd aplikasiku untuk masuk ke directory source code yang telah diextract tadi.
3. jalankan ./configure
4.jalankan make untuk memulai mengkompile
5. jalankan perintah sudo make install untuk memulai proses install
->Atau jika source code didownload menggunakan git clone atau svn maka caranya sebagai berikut:
1. download sourcecode menggunakan svn atau git
2. cd kedalam directory sourcecode dengan perintah cd namaFolderAPP
3.jalankan perintah ./autogen.sh  lalu  make lalu  sudo make install secara berurutan
Jika dalam proses compile terjadi error,maka baca pesan errornya dan install dependencies yang diperlukan dan jalankan proses compile kembali
Untuk menghapus aplikasi baik diinstall menggunakan package manger secara otomatis ataupun yang diinstall dengan cara manual kita bisa menghapusnya menggunakan package manager (GUI atau console version)

Kesimpulan:

Sebagian besar driver telah disediakan dalam package distribusi linux,dan hanya beberapa perangkat khusus yang perlu diinstall sebelum digunakan seperti Graphic card,printer dan scanner.kita tidak perlu untuk menghapus driver yang tidak diperlukan,karena driver tidak akan diload ke kernel jika tidak diperlukan.Driver/kernel module dapat didownload dan diinstall dari official repository menggunakan package manager.Official Repository dapat diakses dengan mudah menggunakan package manager,baik versi console atau GUI.
Official repository merupakan tempat untuk mendownload aplikasi,driver,kernel dengan aman. Official repository yang diakses menggunakan package manager funginya sama dengan google play store yang ada pada smart phone android,kita bisa mencari,install,update,upgrade aplikasi yang kita butuhkan dengan mudah.

0 komentar: