Deteksi Hardware

  • Uploaded by: muhammad fadli
  • 0
  • 0
  • June 2020
  • PDF

This document was uploaded by user and they confirmed that they have the permission to share it. If you are author or own the copyright of this book, please report to us by using this DMCA report form. Report DMCA


Overview

Download & View Deteksi Hardware as PDF for free.

More details

  • Words: 2,757
  • Pages: 5
Ulasan CD | Klinik | Ulasan | Linux Ready | Utama | Bisnis | Feature | Tutorial

TUTORIAL Deteksi Hardware

Deteksi Hardware dengan discover Bertahun-tahun lamanya masalah pengenalan hardware di Linux menghantui calon pengguna atau bahkan pengguna Linux sekalipun. Sekarang tidak lagi. Anda ingin bukti? Mari kita buat frontend untuk discover agar deteksi perangkat keras menjadi jauh lebih mudah.

B

ukan cerita baru kalau orang menanyakan apakah hardware yang dimiliki dapat dikenali baik oleh Linux. Bukan cerita baru pula orang tidak berani menginstal Linux hanya karena ketakutan kalau-kalau hardwarenya ternyata belum didukung. Dan sudah cerita lama kalau hal yang satu ini digunakan oleh para saingan Linux untuk menjelek-jelekkan Linux. Dan kita tidak akan membiarkan itu terjadi, Sekali lagi, tidak akan!

Sekilas cerita untuk plug and play Beberapa tahun yang lalu, setelah melewati usaha yang cukup rumit, akhirnya tibalah seperangkat komputer dengan CPU Intel Pentium 133 MHz di kamar penulis. Masih teringat bahwa RAM yang terpasang hanyalah 8 MB. Dan karena sistem operasi Microsoft Windows 95 sangat umum dipakai oleh teman-teman (beberapa sekolah masih berjaya dengan MSDOS 6 dan Microsoft Windows 3.1), maka penulis pun segera meminjam CD-ROM installer sistem operasi tersebut. Ada satu istilah yang sangat menarik: pnp atau plug and play. Teorinya, tancapkan saja hardware Anda dan hardware tersebut akan langsung bekerja. Karena ingin menikmati suara dan saat itu tidak memiliki sound card, maka langkah menghemat uang jajan pun segera dilakukan. Akhirnya, sebuah sound card pun nongol di komputer penulis dan rasa bahagia pun menyelimuti ketika pada akhirnya game Street Fighter yang menjadi idola saat itu mulai bisa

bersuara. Istilah plug and play benarbenar dapat dipercaya! Penulis bahkan hanya perlu memasukkan sebuah disket berisi driver. Dan semuanya selesai! Betapa mudahnya hidup. Di saat itu, sistem operasi Windows benar-benar pujaan. Penulis bahkan sempat sinis ketika melihat sebuah iklan tempel OS/2. Lebih sinis lagi ketika beberapa mahasiswa bertandang ke sekolah dan menawarkan Linux. Bahkan, saking sinisnya, penulis sempat berjanji setia untuk tidak akan menggunakan Linux. Alasannya? Karena Windows bisa plug and play. Waktu pun berlalu. Saatnya kuliah dan meninggalkan kampung halaman. Tidak lupa komputer pun diangkut. Sampai di Jakarta, penulis pun segera memilih Mangga Dua sebagai tempat wisata kali pertama. Keliling sana sini, akhirnya penulis kembali menemukan Linux. Linux lagi , Linux lagi! Dengan pengenalan hardware yang menjijikkan, begitulah pemikiran waktu itu. Setengah tahun kemudian, penulis pun mencoba Linux karena kabarnya yang cukup santer terdengar, sekadar iseng, dan rupanya masih sama juga, kurang ramah dengan hardware. Waduh! Sampai sekarang pun, isu bahwa Linux kurang ramah dengan hardware masihlah tedengar.

Linux dulu dan sekarang Kalau ada lirik lagu yang menyatakan bahwa “Aku masih seperti yang dulu”, maka Linux sepertinya tidak setia-setia amat, tentunya dalam arti yang positif. Linux masih setia dengan keandalannya,

www.infolinux.web.id

Linux masih setia dengan kebebasannya, Linux masih setia dengan komitmen untuk terus maju. Tapi Linux tidak setia untuk kurang ramah pada hardware. Linux kini jauh lebih ramah kalau berhubungan dengan hardware. Kernel 2.6 yang akan keluar jelas akan lebih ramah lagi dengan hardware. Anda mungkin mengalami apa yang pernah penulis alami ketika hardware yang telah dibeli dengan uang tabungan ternyata belum didukung oleh Linux. Tapi itu dulu. Sekarang, lihatlah dukungan vendor. Lihatlah OSDL tempat Linus sekarang bekerja penuh. Lihatlah siapa yang mendukung OSDL. Lihatlah seberapa banyak hacker Linux yang bekerja pada perusahaan hardware terkemuka. Dan sebagai hasilnya, seberapa sering Anda membutuhkan driver ketika Anda menambahkan hardware baru? Penulis tidak pernah menambahkan driver tertentu hanya supaya sebuah hardware dapat bekerja. VGA card, sound card, ethernet, dan lain sebagainya. Apa yang penulis lakukan adalah mencari dukungan kernel (umumnya telah ada), melakukan kompilasi ulang kernel atau modul kalau perlu dan meminta kepada Debian agar load modul tersebut pada saat boottime. Semua beres. Di penyimpanan CD-ROM milik penulis, tidak ada satupun CD-ROM driver dari vendor. Semuanya hanyalah CD-ROM data , CD-RW, CD-R kosong, dan Debian Woody/Sarge. Kadangkadang tentunya ada juga beberapa VCD. Linux mungkin belum mengenali semua hardware. Akan tetapi, masih tegakah seseorang berpendapat bahwa Linux tidak ramah dengan hardware?

Pendeteksian hardware Prinsip pengenalan hardware sebenarnya bersumber pada kernel. Pada sistem operasi closed source seperti Microsoft Windows, kernel mereka telah dilengkapi dengan berbagai modul (lebih dikenal dengan istilah driver) yang mereka buat sendiri atau disumbangkan oleh vendor hardware. Apabila ternyata hardware baru dirilis ketika sistem operasi telah

INFOLINUX SEPTEMBER 2003

55

TUTORIAL

Ulasan CD | Klinik | Ulasan | Linux Ready | Utama | Bisnis | Feature | Tutorial

dirilis dan digunakan banyak orang, maka umumnya hardware tersebut datang dengan CD-ROM Driver. Pengguna tetap butuh untuk menginstal driver yang terdapat di dalam CD-ROM tersebut. Dan dengan demikian, pihak marketing lantas menyebutnya sebagai plug and play. Suatu pujian untuk pihak marketing. Namun terkadang, istilah plug and play tersebut dapat juga bertransformasi menjadi plug and pray (tancapkan dan berdoalah agar bisa bekerja). Pada sistem operasi open source seperti Linux, kernel umumnya juga telah dilengkapi dengan berbagai modul untuk dukungan hardware. Modul-modul tersebut umumnya dibuat oleh para kernel hacker di seluruh dunia ataupun disumbangkan oleh perusahaan tertentu. Sangat wajar pula apabila suatu hardware dirilis ketika kernel Linux tersebut telah dirilis dan digunakan oleh orang banyak. Apabila vendor tidak menyediakan driver (modul)-nya, maka kita masih punya harapan karena sistem rilis bazaar yang dianut oleh komunitas free software menyebabkan suatu kernel Linux bisa dirilis dalam tempo yang sangat cepat. Kita pun dapat menikmati hardware baru. Rasa-rasanya, kita tidak perlu khawatir. Pada dasarnya, ketika Anda menggunakan kernel terbaru, maka hampir kebanyakan hardware telah didukung. Apabila belum, Anda mungkin perlu melakukan kompilasi ulang kernel atau modul. Untuk hardware, cukup gunakan saja Xserver terbaru. Rasarasanya semuanya akan beres. Untuk printer, gunakan saja CUPS. Pada saat artikel ini ditulis, rekan penulis baru saja menguji printer Lexmark E323 dan bekerja dnegan sangat mulus.

Deteksi hardware dari sisi pengguna Permasalahannya, apakah orang yang baru saja menggunakan Linux perlu sibuk melakukan kompilasi kernel atau modul kernel? Atau perlukan seorang pemula mengutak atik /proc untuk mendapatkan informasi real time kernel? Atau katakanlah seseorang membeli ethernet X dan tahu persis bahwa ethernet X tersebut telah

56

INFOLINUX SEPTEMBER 2003



Deteksi Hardware

Interface

disco

didukung oleh kernel. Lantas apakah beliau harus berbengong ria untuk mencari tahu apa yang harus dilakukan agar ethernet tersebut bekerja, karena ketika ditancapkan ethernet tersebut belum bisa digunakan? Saat ini, beberapa pendeteksi hardware seperti Kudzu (oleh Red Hat), Detect (MandrakeSoft), dan Discover (Progeny, berbasis pada Detect) memang cukup diandalkan. Secara umum, Kudzu sudah sangat memuaskan. Lantas, bagaimana dengan Discover? Untuk fleksibilitas, Discover dijalankan pada Command Line Interface. Di artikel ini, kita akan menjadikan Discover jauh lebih indah dan mudah untuk digunakan.

Menggunakan discover Discover, merujuk ke situsnya, http:// hackers.progeny.com/discover/, adalah program pendeteksi hardware yang menggunakan modul-modul kernel dalam pendeteksiannya. Discover dapat Anda gunakan untuk mendeteksi hardware di sistem Anda. Penulis mencoba Discover pada berbagai perangkat yang berbeda, dan secara umum memberikan hasil yang sangat memuaskan. Sebelum kita membuat interface yang ramah dengan Discover, kita akan melihat bagaimana menyenangkannya

www.infolinux.web.id

menggunakan Discover. Anda dapat men-download Discover di http:// archive.progeny.com/progeny/discover/. Bagi pengguna Debian, Anda dapat menginstal Discover dengan memberikan perintah: apt-get install discover. Untuk menjalankan Discover, berikanlah perintah sebagai berikut: discover Discover dapat mengenali bus dengan tipe berikut ini: pci, isa, pcmcia, usb, ide, scsi, parallel, dan serial. Untuk device, Discover dapat mendeteksi bridge, cdrom, ide, scsi, usb, ethernet, modem, sound, dan video. Selain itu, Discover dapat pula menampilkan informasi seputar vendor, model, modul kernel, nama device, dan xserver serta modul untuk xserver. Luar biasa, bukan? Berikut ini adalah beberapa contoh penggunaan Discover yang penulis coba di komputer redaksi InfoLINUX.

Pendeteksian VGA card: # discover —vendor video ATI Technologies, Inc. # discover —model video 3D Rage IIc [264GT2c GV]

TUTORIAL

Ulasan CD | Klinik | Ulasan | Linux Ready | Utama | Bisnis | Feature | Tutorial

Deteksi Hardware

# discover —xserver video XFree86 # discover —xdriver video ati

Pendeteksian ethernet: # discover —vendor ethernet Compaq Computer Corporation # discover —model ethernet ProLiant Integrated Netelligent 10/100

Dengan demikian, dengan Discover, kita bagaikan seorang Sherlock Holmes. Luar biasa! Khusus untuk video, tentunya kita tidak mendeteksi modul kernel. Demikian pula kita tidak akan mendeteksi xserver dan modul untuk xdriver pada ethernet.

Interface Discover yang lebih ramah Discover sendiri telah datang dengan interface yang sangat memudahkan, terutama ketika Anda menggunakannya dalam pembuatan instalasi distro. Sayangnya, bagi pengguna akhir yang ingin melihat informasi hardware, interface CLI seperti ini akan sedikit merepotkan. Sekarang, bagaimana kalau kita membuatnya lebih ramah? Pada prinsipnya, kita akan menampilkan segala hal yang dapat dideteksi oleh Discover pada interface utama kita. Kita akan menampilkan pendeteksian bridge, cdrom, ide, scsi, usb, ethernet, modem, sound, dan video. Setelah pengguna memilih salah satunya, kita akan melakukan pendeteksian semua hal yang berhubungan dengan device-device tersebut, mulai dari informasi seputar vendor, model, modul kernel, nama device, dan xserver serta modul untuk xserver. Tentunya, untuk mempersingkat waktu deteksi, kita hanya akan mendeteksi informasi yang relevan saja. Sebagai contoh, kita tidak akan mendeteksi xserver untuk ethernet. Andaikata apa yang berhasil kita deteksi

58

INFOLINUX SEPTEMBER 2003



# discover —module ethernet tlan

Hasil deteksi Discover

ternyata memiliki modul kernel, maka kita akan menanyakan kepada user untuk memasukkan modul tersebut ke dalam kernel. Dan idealnya, apabila apa yang berhasil kita deteksi adalah VGA card, maka kita akan menyusun sebagian isi dari file konfigurasi X Server. Sayangnya, yang terakhir ini tidak akan dibahas di artikel ini. Kita akan segera mulai. Berikut ini adalah langkah-langkah pembuatannya:

1. Variabel-variabel penting Berikut ini adalah beberapa variabel penting yang didefinisikan: PROGNAME=”Disco” VERSION=”0.1a” COPYRIGHT=”$PROGNAME $VERSION, (c) Noprianto, July 2003. GPL” alias dialog=”dialog —backtitle \”$COPY RIGHT\”” TEMP=/tmp/$$.disco ALL=”bridge cdrom ide scsi usb ethernet modem sound video”

2. Pengecekan ketersediaan program dan prasyarat lain Apa yang akan kita periksa adalah user yang menjalankannya, ketersediaan program dan status /proc. Kita akan menuangkannya dalam fungsi-fungsi:

www.infolinux.web.id

Kita mulai dengan fungsi checkUser(): function checkUser() { superuser=$(grep -e :0:0: /etc/ passwd | cut -d: -f1) test -z $superuser && superuser=”super user” who=$(id -u) if [ $who -ne 0 ] then echo “You are not $superuser. Please login as $superuser first” exit 1 fi } Fungsi ini akan memeriksa apakah user yang menjalankan adalah root atau bukan. Ada baiknya program ini dijalankan oleh root. Oleh karena itu, kita perlu memeriksanya terlebih dahulu. superuser=$(grep -e :0:0: /etc/ passwd | cut -d: -f1) test -z $superuser && superuser=”super user” who=$(id -u) Baris yang pertama akan mencoba untuk mendapatkan nama user root (terkadang, ada pengguna yang tidak menggunakan root sebagai super user,

TUTORIAL

Ulasan CD | Klinik | Ulasan | Linux Ready | Utama | Bisnis | Feature | Tutorial

Deteksi Hardware

dan lebih memilih nama user lain misalnya. Dan disinilah kita akan memeriksannya). Umumnya, baik user dan group root memiliki id 0. Maka kita mengambil informasinya dari /etc/ passwd. Andaikata group dari root bukanlah 0, maka kita tidak akan mendapatkan apapun juga. Dengan demikian, kita mengasumsikan nama dari user root adalah “super user”. Baris terakhir berguna untuk memeriksa apakah user yang sedang aktif adalah root (super user) atau bukan. Fungsi kedua adalah pemeriksaan ketersediaan program dan status /proc: function checkDeps() { w_discover=$(which discover) if [ -z $w_discover ] then echo “I cant find discover. Sorry.” exit 1 fi w_dialog=$(which dialog) if [ -z $w_dialog ] then echo “I cant find dialog. Sorry.” exit 1 fi m_proc=$(grep -w proc /etc/mtab| tr -d [:space:]) if [ -z $m_proc ] then echo “/proc is not mounted. Sorry.” exit 1 fi

} Secara umum, kita menggunakan which untuk memeriksa ketersediaan program. Untuk itu, Anda dapat saja mengatur $PATH. Program-program yang kita periksa ketersediaannya pun belum lengkap karena kita tidak memeriksa ketersediaan modprobe yang akan kita gunakan nanti. Untuk memeriksa apakah /proc di mount atau tidak, kita akan membaca informasi dari /

etc/mtab. Apa yang kita lakukan di sini mungkin bukan cara terbaik. Akan tetapi, dalam sebagian besar kasus, cara seperti ini cukup memadai.

del }

for i in $ALL do MENUITEMS=”$MENUITEMS $i

Pertama-tama, kita akan memeriksa user yang menjalankan dan berbagai prasyarat lain, Setelah itu, kita akan membuat menu untuk program dialog. Kemudian, pada interface program dialog, kita akan mengulang sampai pengguna memilih tombol cancel. Untuk setiap pilihan yang user tentukan, sebelum melewatkannya ke fungsi lain, kita akan menampilkan informasi tunggu terlebih dahulu karena proses pendeteksian cukup memakan waktu. Setelah fungsi detect() melaporkan hasilnya ke dalam file, maka kita akan menampilkannya kepada user. Setelah itu, kita akan memanggil fungsi configureDevice untuk memeriksa apakah ada yang bisa dilakukan untuk device tersebut. Load modul kalau ada modul kernel yang tersedia, atau pembuatan file konfigurasi X Server yang saat ini belum tersedia.

done

5. Fungsi detect()

3. Pembuatan fungsi pembantu function del() { rm -rf $TEMP rm -rf /tmp/*.disco } Fungsi del tersebut berfungsi untuk mempersingkat pengetikan.

4. Pembuatan fungsi utama function main() { checkUser checkDeps

$i”

while [ 1 ] do dialog —menu “Select device” 20 40 10 $MENUITEMS 2>$TEMP test $? -eq 1 && break SELECTED=‘cat $TEMP‘ del tput reset tput cup 10 10 echo -n “Please wait [$SE LECTED detection in progress] ...”

function detect() { bridge=”model vendor module” cdrom=”model vendor device module” ide=”model vendor device module” scsi=”model vendor device module” usb=”model vendor device module” ethernet=”model vendor module” modem=”model vendor device module” sound=”model vendor module” video=”model vendor xserver xdriver”

dialog —textbox $TEMP 20 60

pretest=$(discover $1 2>/dev/null) if [ -z “$pretest” ] then echo -n “[not found] “ echo “NOT FOUND” >> $TEMP return fi

configureDevice $SELECTED

echo -n “[found] “

echo “Information for $SE LECTED” > $TEMP echo >> $TEMP detect $SELECTED

del done

www.infolinux.web.id

case $1 in bridge) for i in $bridge do echo -n “$i “

INFOLINUX SEPTEMBER 2003

59

TUTORIAL

Ulasan CD | Klinik | Ulasan | Linux Ready | Utama | Bisnis | Feature | Tutorial

Deteksi Hardware

temp=$(discover —$i $1

temp=$(discover —$i $1

2>/dev/null)

2>/dev/null)

test ! -z “$temp” && echo “$i: $temp” >> $TEMP done ;; cdrom) for i in $cdrom do echo -n “$i “ temp=$(discover —$i $1 2>/dev/null) test ! -z “$temp” && echo “$i: $temp” >> $TEMP done ;; ide) for i in $ide do echo -n “$i “ temp=$(discover —$i $1 2>/dev/null) test ! -z “$temp” && echo “$i: $temp” >> $TEMP done ;; scsi) for i in $scsi do echo -n “$i “ temp=$(discover —$i $1 2>/dev/null) test ! -z “$temp” && echo “$i: $temp” >> $TEMP done ;; usb) for i in $usb do echo -n “$i “ temp=$(discover —$i $1 2>/dev/null) test ! -z “$temp” && echo “$i: $temp” >> $TEMP done ;; ethernet) for i in $ethernet do echo -n “$i “ temp=$(discover —$i $1 2>/dev/null) test ! -z “$temp” && echo “$i: $temp” >> $TEMP done ;; modem) for i in $modem do echo -n “$i “

test ! -z “$temp” && echo “$i: $temp” >> $TEMP done ;; sound) for i in $sound do echo -n “$i “ temp=$(discover —$i $1 2>/dev/null) test ! -z “$temp” && echo “$i: $temp” >> $TEMP done ;; video) for i in $video do echo -n “$i “ temp=$(discover —$i $1 2>/dev/null) test ! -z “$temp” && echo “$i: $temp” >> $TEMP done ;; esac }

60

INFOLINUX SEPTEMBER 2003

Fungsi yang satu ini jelas tidak efisien dari sisi pemrograman. Apabila menggunakan associative array, tentunya tidak akan perlu menjadi sepanjang ini. Prinsip kerjanya, pertamatama kita mendefinisikan terlebih dahului apa-apa saja yang akan diperiksa yang relevan dengan device. Penulis mungkin membuat kesalahan dan untuk itu penulis memohon maaf. Setelah itu, kita akan mencoba untuk mendeteksi keberadaan device secara umum. Apabila device tersebut tidak ditemukan, maka kita akan segera keluar dari fungsi ini. Apabila device ditemukan, barulah kita mendeteksi apa-apa saja yang telah ditentukan dan relevan dengan device tersebut. Setiap pemeriksaan akan ditulis ke dalam suatu file sementara dan akan dilaporkan.

6. Fungsi configureDevice() function configureDevice() { module=$(grep module: $TEMP | awk ‘{print $2}’) xdriver=$(grep xdriver: $TEMP | awk

www.infolinux.web.id

‘{print $2}’) if [ ! -z $module ] then dialog —yesno “Configure $1?” 10 40 if [ $? -eq 0 ] then modprobe $module 1>/ dev/null 2>&1 if [ $? -ne 0 ] then RESULT=”failed” else RESULT=”succeded” fi dialog —msgbox “Configure $RESULT” 10 40 fi

fi

if [ ! -z $xdriver ] then dialog —msgbox “X Server configuration is not implemented at this time. sorry.” 10 40 fi

} Apa yang dilakukan oleh fungsi ini adalah memeriksa apa saja yang bisa dilakukan dengan device tersebut, Untuk saat ini, ada dua hal yang akan diperiksa. Ketersediaan modul kernel atau modul untuk xserver. Apabila kita menemukan bahwa device tersebut memiliki modul kernel, kita akan meminta konfirmasi kepada user untuk memasukkannya ke dalam kernel. Demikianlah, kini Discover menjadi lebih meriah dan murah digunakan. Ganti dialog dengan gdialog (kemudian berikan beberapa perubahan) dan tampilan Anda akan jauh lebih menyenangkan. Walau, masih terdapat banyak sekali kekurangan pada program ini. Berniat untuk mengembangkannya? Noprianto ([email protected])

Related Documents

Deteksi Hardware
June 2020 19
Hardware
December 2019 51
Hardware
April 2020 37
Hardware
November 2019 45
Hardware
June 2020 20
Hardware
July 2020 19

More Documents from ""

Komputer Dna
June 2020 23
Tips-trick
June 2020 30
Konsep Dasar Tcp
June 2020 28
Apakah Wimax Itu
June 2020 33