Suatu hari penulis berkunjung ke rumah seorang teman dan melihat sebuah webcam bermerk Logitech dengan konektor USB. Saat ditanya apa tipenya teman saya menjawab tidak tahu. Menurut teman saya itu, webcam ini tidak bisa dipakai dan kemungkinan sudah rusak. Dia meminjamkan webcam tersebut kepada saya untuk dicoba dipasang di Linux.
Sebetulnya saya sendiri ragu untuk mencobanya. Bukankah di Linux akan lebih sulit? Jangankan di Linux, di Windows XP yang teman saya pakai saja webcam ini tidak bisa berfungsi! Itulah yang saya pikirkan saat itu.
Berhubung penulis tidak mempunyai PC maka keesokan harinya webcam tersebut dibawa ke kantor. Setibanya dikantor, karena PC yang penulis gunakan tidak pernah dimatikan maka langsung saja buka terminal dan menjalankan perintah (sebagai root):
# tail -f /var/log/messages
Kemudian webcam tersebut saya pasang ke port USB yang ada dan hasil dari perintah diatas menampilkan baris baru:
Apr 11 15:49:47 poetih kernel: usb 1-1: new full speed USB device using uhci_hcd and address 3
Masih penasaran, saya coba lagi dengan perintah:
# dmesg usb 1-1: new full speed USB device using uhci_hcd and address 3
Hmmm, ternyata terdeteksi ada hardware baru di PC saya. Langkah selanjutnya adalah mencari driver untuk webcam ini dengan cara googling karena produsen webcam ini tidak menyediakan driver untuk Linux. Penulis menggunakan driver qc-usb-0.6.2 yang bisa didownload di http://qce-ga.sourceforge.net. (Lebih baik gunakan driver terbaru jika ada).
Tentang Driver qc-usb-0.6.2
Driver ini dapat digunakan untuk kamera USB dengan VendorId 0×46d dan ProductId 0×840, 0×850, or 0×870. Untuk melihat VendorId dan ProductId gunakan masukkan perintah lsusb di konsol (sebagai root). Contoh:
# lsusb Bus 002 Device 002: ID 0424:0140 Standard Microsystems Corp. Bus 002 Device 001: ID 0000:0000 Bus 001 Device 003: ID 046d:0840 Logitech, Inc. QuickCam Express Bus 001 Device 001: ID 0000:0000
Beberapa kamera tipe baru dari Logitech QuickCam Express dan Labtec dengan ProductId 921 atau 920 tidak dapat menggunakan driver ini. Disarankan untuk menggunakan experimental driver yang ada di http://home.tiscali.dk/tomasgc/labtec/.
Driver ini dapat digunakan untuk tipe webcam seperti dibawah ini:
- Logitech Quickcam Express (tipe lama, seperti yang penulis coba)
- Logitech Quickcam Web
- LegoCam
- Dexxa Webcam
- Labtec Webcam (model lama)
- Logitech QuickCam Notebook (model tertentu)
Beberapa produk webcam lainnya dari Logitech dapat digunakan di Linux tapi dengan menggunakan driver terpisah. Berikut ini adalah webcam Logitech yang tidak kompatibel dengan driver ini tetapi bisa menggunakan driver yang dapat dicari di Internet:
- Logitech Quickcam 3000 Pro
- Logitech QuickCam 4000 Pro
- Logitech QuickCam Notebook Pro
- Logitech QuickCam Notebook
- Logitech QuickCam Zoom
- Logitech Clicksmart
- Logitech Quickcam VC (USB and Parallel)
- Older Logitech (formally Connectix) Quickcams (Parallel Port)
Driver ini membutuhkan kernel versi 2.2.x (x >= 18), 2.4.x, atau 2.6.x. dengan dukungan USB dan Video4Linux yang telah diaktifkan. Penulis mencoba driver ini menggunakan distro Slackware 10.1 dengan kernel bawaan versi 2.4.29 dan 2.6.10.
Instalasi Driver
Setelah mendownload drivernya (nama file qc-usb-0.6.2.tar.gz, berukuran 145 Kb), langsung diekstrak:
$ tar zxf qc-usb-0.6.2.tar.gz $ cd qc-usb-0.6.2
Instalasi driver dapat dilakukan secara manual atau dengan menggunakan wizard melalui skrip yang telah disediakan. Disarankan untuk menjalankannya sebagai user biasa tetapi Anda tetap harus mengetahui root password karena pada tahap tertentu Anda diwajibkan untuk memasukkan root password tersebut. Pada kesempatan ini penulis memutuskan untuk menginstall dengan menggunakan wizard. Berikut ini adalah tahap-tahap instalasi driver:
Tahap 1
Pada tahap ini, hubungkan webcam ke PC (jika belum) kemudian jalankan skrip instalasi (quickcam.sh) yang ada di direktori qc-usb-0.6.2 sebagai user biasa dengan parameter direktori source Linux Anda (biasanya /usr/src/linux atau /usr/src/linux-[versi kernel]:
$ ./quickcam.sh LINUX_DIR=/usr/src/linux
Eksekusi skrip diatas akan menampilkan petunjuk instalasi seperti dibawah ini:
-=- Logitech QuickCam USB camera driver installer -=- Hello! I am the (hopefully) easy-to-use, fully automated qc-usb driver installation script. At the moment, this is experimental, and if it doesn't work, don't hesitate to quit this with Ctrl+C and install the driver manually. The driver is provided in source code form, so it has to be compiled. This should happen automatically, but it does mean that there are some steps required before installation. You also need to know "root" user password to test and install the driver. Basically you need only to keep hitting Enter whenever you see this prompt: --->. Sometimes you're asked root password. Pay special attention to lines beginning with [!]. It means that some trouble has been detected. To most important location is the path to your kernel source or headers. This can be guessed, but you can specify it by giving it as an argument to this script like this: ./quickcam.sh LINUX_DIR=/usr/src/linux If you haven't done it yet, now it would be a good moment to take a look at file README. Argument found: LINUX_DIR=/usr/src/linux Next I'm going to check if you have some important programs installed and if they and the kernel are of suitable version. Press Ctrl+C to quit, Enter to continue --->
Tekan Enter untuk melanjutkan ke tahap berikutnya.
Tahap 2
Pada tahap ini skrip instalasi akan memeriksa program-program yang dibutuhkan:
/usr/bin/whoami /bin/su /usr/bin/ls /usr/bin/cat /usr/bin/gcc /usr/bin/gcc /usr/bin/make /usr/bin/grep /usr/bin/egrep /usr/bin/awk /usr/bin/sed /usr/bin/tail /usr/bin/head /usr/bin/install /usr/bin/ld /usr/bin/uname /usr/bin/tr /usr/bin/xawtv /usr/bin/xdpyinfo /bin/dmesg /usr/bin/wc /usr/bin/readlink gcc version: gcc version 3.3.4 gcc version: gcc version 3.3.4 Make version: GNU Make 3.80 Linker version: GNU ld version 2.15.92.0.2 20040927 Kernel compiler: gcc version 3.3.4 Looking for more necessary programs... Found program /bin/depmod Found program /sbin/insmod Found program /sbin/rmmod Found program /sbin/modprobe Found program /bin/mount Found program /sbin/lsusb depmod version: module-init-tools 3.1 insmod version: module-init-tools version 3.1 rmmod version: module-init-tools version 3.1 modprobe version: module-init-tools version 3.1 Checking whether we're root... oeban Checking for driver source code... Checking for write permission... Previous round done. Now checking if you have kernel source installed. Press Ctrl+C to quit, Enter to continue --->
Jika hasil dari tahap ini menampilkan hasil seperti dibawah ini:
which: no xawtv in (/usr/local/bin:/usr/bin:/bin:/usr/X11R6/bin:/usr/games:.) Warning: xawtv missing /usr/bin/xdpyinfo /bin/dmesg /usr/bin/wc [!] Some important programs can not be found on default path. Probably they aren't installed. You should install them, for example, by using apt-get or rpm. WARNING: If you press Enter, I'll try to continue anyway, but this probably will fail. You SHOULD press Ctrl+C now.
Sebaiknya batalkan dahulu dengan menekan CTRL-C karena bisa menyebabkan kegagalan. Instal dahulu program yang diminta kemudian setelah terinstal jalankan lagi skrip instalasi drivernya. Pada contoh diatas, penulis belum mempunyai program xawtv (http://linux.bytesex.org/xawtv/). Berhubung penulis menggunakan distro Slackware 10.1 dan ternyata tidak disertakan dalam CDnya maka penulis mencari dan mendownloadnya dari www.linuxpackages.net. Untuk instalasi program xawtv ini silahkan baca dokumentasi yang disertakan dalam programnya atau cari di CD masing-masing distro yang digunakan. Setelah program-program yang dibutuhkan telah tersedia maka ulangi lagi langkah pertama.
Tahap 3
Selanjutnya skrip instalasi akan memeriksa keabsahan nilai parameter LINUX_DIR yang diberikan pada saat dijalankan.
Kernel source directory: /usr/src/linux Detected kernel version is 2.6.x. Kernel version name: 2.6.10 Kernel source version code: 132618 Driver file name: quickcam.ko Module install directory: /lib/modules/2.6.10 Driver source directory (PWD): /home/adrian/download/qc-usb-0.6.2 Kernel source directory (LINUX_DIR): /usr/src/linux Module install directory (MODULE_DIR): /lib/modules/2.6.10 Utility install directory (PREFIX): /usr/local User options (USER_OPT): Driver file name (use with insmod): quickcam.ko Kernel version code: 132618 The QuickCam driver requires other drivers from kernel. I'll now check if those seem to be loaded. Press Ctrl+C to quit, Enter to continue --->
Tahap 4
Modul kernel yang dibutuhkan seperti USB dan Video4Linux harus ada pada kernel yang digunakan dan sudah diaktifkan. Pada tahap ini keberadaan modul-modul kernel yang dibutuhkan akan diperiksa.
Modules loaded into the kernel: bttv tuner snd_pcm_oss snd_mixer_oss ipv6 ohci_hcd ehci_hcd intel_agp hw_random shpchp i2c_i801 uhci_hcd snd_intel8x0 snd_ac97_codec snd_pcm snd_timer snd soundcore snd_page_alloc nvidia video_buf firmware_class i2c_algo_bit v4l2_common btcx_risc i2c_core videodev ne2k_pci 8390 agpgart evdev reiserfs Next round: let's see if you have a supported QuickCam. Please plug in your USB camera before continuing. Press Ctrl+C to quit, Enter to continue --->
Tahap 5
Pada tahap ini webcam yang terpasang pada port USB akan diperiksa keberadaannya.
I can find the following probably compatible devices: Bus 001 Device 003: ID 046d:0840 Logitech, Inc. QuickCam Express Another round done. Let's now compile the driver, it takes a while. This step will also clear old unnecessary files from the directory. Press Ctrl+C to quit, Enter to continue --->
Pada contoh diatas, webcam yang terpasang teridentifikasi sebagai Logitech, Inc. QuickCam Express dengan VendorId 046d dan ProductId 0840.
Tahap 6
Tahap ini adalah tahap kompilasi modul driver.
rm -f *.o qcset show *~ .\#* .*.cmd *.mod.c *.ko rm -rf .tmp_versions make -C "/usr/src/linux" SUBDIRS="/home/oeban/download/qc-usb-0.6.2" modules V=1 USER_OPT="" make[1]: Entering directory `/usr/src/linux-2.6.10' mkdir -p /home/oeban/download/qc-usb-0.6.2/.tmp_versions make -f scripts/Makefile.build obj=/home/oeban/download/qc-usb-0.6.2 gcc -Wp,-MD,/home/oeban/download/qc-usb-0.6.2/.qc-driver.o.d -nostdinc -iwithprefix include -D__KERNEL__ -Iinclude -Wall -Wstrict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common -O2 -fomit-frame-pointer -pipe -msoft-float -mpreferred-stack-boundary=2 -march=i486 -Iinclude/asm-i386/mach-default -DNOKERNEL -DMODULE -DKBUILD_BASENAME=qc_driver -DKBUILD_MODNAME=quickcam -c -o /home/oeban/download/qc-usb-0.6.2/qc-driver.o /home/oeban/download/qc-usb-0.6.2/qc-driver.c - [dipotong] - ld -m elf_i386 -r -o /home/oeban/download/qc-usb-0.6.2/quickcam.ko /home/oeban/download/qc-usb-0.6.2/quickcam.o /home/adrian/download/qc-usb-0.6.2/quickcam.mod.o make[1]: Leaving directory `/usr/src/linux-2.6.10' gcc -Wall -O2 -s qcset.c -o qcset -lm -rw-r--r-- 1 oeban users 81770 2005-04-12 08:44 quickcam.ko Now everything should be well and the driver compiled. Let's then try actually loading the fresh driver and testing if it works. Press Ctrl+C to quit, Enter to continue --->
Tahap 7
Tahap ini adalah tahap persiapan untuk meload modul kernel yang baru saja dikompilasi. Anda akan diarahkan untuk masuk pada root mode dan masukkan password yang diminta.
To load the driver, I need to know the root password. Password: === Entering root mode === Now I finally will try to load the module. If you're unlucky, your computer might crash right now!!!! Consider long if you really want to continue. Press Ctrl+C to quit, Enter to continue --->
Tahap 8
Modul kernel hasil kompilasi akan dicoba untuk diload, jika berhasil maka akan terlihat hasil seperti dibawah ini:
You decided to do it, here we go... === Leaving root mode === The driver detected the following supported cameras: quickcam: QuickCam USB camera found (driver version QuickCam USB $Date: 2004/07/29 18:12:39 $) quickcam: Kernel:2.6.10 bus:1 class:FF subclass:FF vendor:046D product:0840 quickcam: Sensor HDCS-1000/1100 detected quickcam: Registered device: /dev/video1 I will be using /dev/video1, if there are more cameras I'll not test them. Press Ctrl+C to quit, Enter to continue --->
Setelah modul kernel berhasil diload, webcam yang penulis gunakan ternyata dikenali sebagai QuickCam USB!
Tahap 9
Tahap ini akan mencoba membuat device yang akan digunakan oleh webcam, pada contoh ini device yang digunakan adalah /dev/video1 yang merupakan symbolic link dari /dev/v4l/video1. Hasilnya mungkin berbeda dengan yang Anda dapatkan.
Testing if /dev/video1 is correct. lrwxrwxrwx 1 root root 10 2005-04-12 08:46 /dev/video1 -> v4l/video1 crw-rw---- 1 root video 81, 1 2005-04-12 08:46 /dev/v4l/video1 /dev/video1 is a symbolic link to /dev/v4l/video1. [!] You don't have read/write access to /dev/video1. On many distributions, you should add yourself into the "video" group by giving command adduser oeban video and then log in again to be able to access the video. A quick alternative is just to do chmod a+rw /dev/v4l/video1 WARNING: If you press Enter, I'll try to continue anyway, but this probably will fail. You SHOULD press Ctrl+C now. Press Ctrl+C to quit, Enter to continue --->
Pada tahap ini, periksa hak akses user untuk device /dev/v4l/video1 dengan cara buka satu terminal lagi (jangan menekan Ctrl-C!). Pada terminal yang baru masukkan perintah:
$ ls -l /dev/v4l/video1 crw-r--r-- 1 root video 81, 1 2005-04-12 08:52 /dev/v4l/video1
Jika hasilnya seperti diatas maka ada dua cara yang harus dilakukan, yaitu: menambahkan group video pada user yang akan menjalankan webcam atau mengubah hak akses menjadi read/write.
Untuk menambahkan group video pada user, jalankan (sebagai root) perintah dibawah ini:
# usermod -G video oeban
Kemudian periksa kembali dengan cara masukkan perintah:
# id oeban
Jika hasilnya seperti dibawah ini berarti sudah benar:
# uid=1000(oeban) gid=100(users) groups=100(users),18(video)
Cara kedua adalah dengan mengubah hak akses device menjadi read/write dengan perintah:
# chmod a+rw /dev/v4l/video1
Untuk lebih meyakinkan, periksa kembali hak akses device tersebut dengan cara:
$ ls -l /dev/v4l/video1
Pastikan hasilnya seperti dibawah ini:
crw-rw-rw- 1 root video 81, 1 2005-04-12 08:52 /dev/v4l/video1
Setelah menjalankan salah satu dari langkah-langkah diatas, kembali ke terminal sebelumnya dan tekan tombol Enter untuk melanjutkan ke tahap berikutnya.
Tahap 10
Jika berhasil, maka pada tahap ini driver telah siap untuk digunakan.
Right now driver is loaded and should be ready to run. Let's test if user applications can see it, starting with qcset. Press Ctrl+C to quit, Enter to continue --->
Tahap 11
Modul driver berhasil diload dan telah siap digunakan! Pada tahap ini webcam Anda telah dapat digunakan dan Anda dapat menekan Ctrl-C untuk mengakhiri tahapan instalasi driver ini atau jika Xwindows telah aktif dan xawtv telah terinstall biarkan skrip instalasi untuk melakukan pengetesan.
Name : Logitech QuickCam USB If you like, you can quit now and start using the camera - you have good chances that it works, if no problems were detected. If you have X Window System running and xawtv installed, I can now run it automatically for you. You will then also have opportunity to install the driver permanently. Press Ctrl+C to quit, Enter to continue --->
Tahap 12
Pengetesan modul driver dengan menggunakan xawtv.
Launching xawtv (press q on xawtv window to quit it)... If the image is not sharp, try focusing it by turning the wheel around the camera lens. xawtv -noscale -noxv -c "/dev/video1" This is xawtv-3.94, running on Linux/i686 (2.6.10) WARNING: Your X-Server has no DGA support. seteuid(root): Operation not permitted v4l-conf had some trouble, trying to continue anyway ioctl: VIDIOC_QUERYCAP(driver="";card="";bus_info="";version=0.0.0;capabilities=0x0 []): Unknown error 515 Warning: Cannot convert string "-*-ledfixed-medium-r-*--39-*-*-*-c-*-*-*" to type FontStruct station "-noscale" not found Well, did it work, did you get a picture? If you did, you might now want to install the driver permanently. Just proceed to do that... Press Ctrl+C to quit, Enter to continue --->
Jika xawtv berhasil dijalan dan dapat menampilkan gambar yang dihasilkan oleh kamera seperti contoh dibawah ini, berarti Anda telah berhasil!
Tahap 13
Ini adalah tahap terakhir, driver (quickcam.ko) akan disalin ke (dalam contoh ini) direktori /lib/modules/2.6.10/misc/quickcam.ko dan utility qcset disalin ke /usr/local/bin/qcset. Masukkan root password yang diminta.
Just an extra warning: the driver (quickcam.ko) and the utility (qcset) will be now copied into system directories. If you have already other versions, they will be overwritten. Verify by giving root password. Password: === Entering root mode === /usr/bin/install -c -D -m 644 quickcam.ko /lib/modules/2.6.10/misc/quickcam.ko /usr/bin/install -c -D -m 755 qcset /usr/local/bin/qcset /sbin/depmod -a === Leaving root mode === Hopefully the driver is now installed and can be loaded with command modprobe quickcam as root. You can put this command into some startup script to do it always automatically at boot. The exact location depends on distribution, and this script is yet too dumb to do this automatically. Press Ctrl+C to quit, Enter to continue --->
Selesai sudah tahap instalasi driver webcam Anda!
Tunggu dulu! Selesai? Belum! Masih ada satu lagi yang akan kita buat! Kita akan membuat halaman web untuk menampilkan grambar yang dihasilkan oleh kamera agar hasilnya dapat dinikmati oleh rekan kita di Internet/Intranet melalui web browser.
Publish It!
Untuk menampilkan gambar yang dihasilkan oleh webcam di Internet/Intranet diperlukan server web dan server FTP baik secara lokal (di PC kita sendiri) atau di server utama. Untuk mempublish kita akan menggunakan utility webcam yang merupakan bagian dari xawtv. Sebelumnya kita harus membuat file konfigurasi .webcamrc (jangan lupa, ada titik didepannya).
Sebagai user biasa, buat file .webcamrc dengan editor kemudian simpan di home directory Anda, misalnya di /home/oeban
. Isi file .webcamrc adalah sebagai berikut:
[grab] # Device yang digunakan device = /dev/v4l/video1 # Teks yang muncul pada gambar, dalam contoh ini: Oeban 2005-04-12 11:07:24 text = "Oeban %Y-%m-%d %H:%M:%S" fg_red = 255 fg_green = 255 fg_blue = 255 width = 320 height = 240 delay = 3 wait = 0 input = camera norm = pal rotate = 0 top = 0 left = 0 bottom = -1 right = -1 quality = 75 trigger = 0 once = 0 [ftp] # alamat ftp server untuk mem-publish gambar Anda host = 192.168.1.10 # Username dan password user ftp yang digunakan user = usernameftp pass = passwordftp dir = /home/oeban/public_html/images file = webcam.jpeg tmp = uploading.jpeg passive = 1 debug = 0 auto = 0 local = 0 ssh = 0
Langkah selanjutnya adalah membuat file html untuk menampilkan gambar yang diupload ke server. Anda bebas untuk memberi nama file HTML, dalam contoh ini nama file tersebut adalah webcam.html dan isinya sebagai berikut:
<html> <head> <meta HTTP-EQUIV="Refresh" CONTENT="3; URL=webcam.html"> <title>Webcam Snapshot</title> </meta> </head> <body> <div align="center"> <img src="images/webcam.jpeg" alt="Webcam Snapshot"/> </div> </body> </html>
Setelah selesai, upload file webcam.html ini ke server atau simpan ke direktori /home/NamaUserAnda/public_html
. Pada contoh diatas, file HTML ini akan otomatis me-refresh setiap tiga detik. Kemudian di konsol terminal jalankan (sebagai user biasa):
$ webcam
Jika menghasilkan output seperti dibawah ini maka Anda telah berhasil!
reading config file: /home/adrian/.webcamrc ioctl: VIDIOC_QUERYCAP(driver="";card="";bus_info="";version=0.0.0;capabilities=0x0 []): Unknown error 515 ftp: lost connection ftp: connected to 192.168.1.10 video4linux webcam v1.5 - (c) 1998-2002 Gerd Knorr grabber config: size 320x240 [24 bit TrueColor (LE: bgr)] input camera, norm pal, jpeg quality 75 rotate=0, top=0, left=0, bottom=240, right=320 ftp config [ftp]: [email protected]:/home/oeban/public_html/images uploading.jpeg => webcam.jpeg ftp: connected to 192.168.1.10 ftp: connected to 192.168.1.10
Jalankan browser Anda dan masukkan alamat berikut ini:
http://localhost/~namauseranda/webcam.html
Jika berhasil maka akan tampil seperti dibawah ini dan gambar yang ditampilkan akan di-refresh setiap tiga detik.
Selamat, Anda telah berhasil mempublish hasil snapshot webcam di Internet/Intranet!
Penutup
Dalam tutorial ini gambar tidak ditampilkan secara streaming sehingga tidak terlalu membebani server tetapi hasilnya terlihat patah-patah. Hal ini wajar saja karena, gambar diupload per frame tetapi direfresh dihalaman web per tiga detik.
Pemanfaatan webcam ini sangat banyak sekali, silahkan berkreasi sesuai kebutuhan. Jika Anda telah berhasil mengembangkan pemanfaatan webcam ini, publikasikanlah agar dapat dinikmati pula oleh rekan-rekan yang lain.
Mohon maaf jika terdapat banyak kekurangan disana-sini. Harapan saya, semoga tulisan ini dapat bermanfaat bagi rekan-rekan yang lain.
Catatan:
Tutorial ini telah dimuat di Majalah InfoLinux edisi Juli 2005, halaman 66.
wah lengkap sekali nih kang, pasti suatu saat dicoba nih, wilujeng boboran siam.
Assalamu’alaikum..
makasih tutorialnya lengkap.
sy br belajar nih.. minta bantuan, gimana kalau installnya di FreeBSD?
makasih sbelumnya..
menurut saya sih sama aja prosedurnya yaitu, kenali dulu hardwarenya kemudian cari dan install driver yang sesuai. biasanya ada petunjuk instalasinya di paket drivernya atau di websitenya.
salam…
You’re so awesome! I don’t suppose I’ve read through something like this
before. So wonderful to discover somebody with a few unique thoughts
on this issue. Really.. thanks for starting this up.
This website is something that is needed on the internet, someone with a bit of originality!