Linux’da paralel port kontrolü diğer işletim sistemlerine göre oldukça kolay. Tek bir satır C kodu ile porta değer göndermek mümkün.
Örneğin;
1 |
outb((unsigned char)255, 0x378); |
outb komutu birinci parametresi ile verilen değeri, ikinci parametresinde donanım adresi belirtilen port’a yazıyor.
Data, Status ve Control gibi pin guruplarından oluşan LPT’yi, Pardus komut satırından veya dış uygulamalardan kontrol edebilmek için aşağıdaki C kodunu kullanacağız. Kodu derledikten sonra, programa komut satırından 2 adet parametre (port adresi ve yazılacak değer) geçerek LPT’yi yöneteceğiz. Dilerseniz komutu PHP, Perl veya Phyton gibi betik dilleri ile web sayfası üzerinden de kontrol edebilirsiniz. Sonraki yazım bu konuda olacak.
LPT’yi kontrol etmek için kullanacağımız komut satırı aracının C kaynak kodu:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 |
/* * * Bu basit program PC'nin paralel portunu kontrol etmek icin yazilmistir. * Program Ozgur Koca tarafindan yazilmistir. * Tum haklari sakli degildir. Yalnizca kaynak gostererek kullanabilirsiniz. * (eposta:[email protected]) * (web:http://www.tankado.com/ * * Bu program adresi belirtilen LPT portuna * belirtilen degeri yazar. (Varsayilan LPT taban adresi * 0x378 dir.) Port adresi ve yazilacak deger parametre olarak * verilir. Port adresi ve deger onaltilik veya desimal * olarak verilebilir. * */ #include <stdio.h> #include <stdlib.h> #include <unistd.h> #include <sys/io.h> main(int argc, char **argv) { int value; int base; if (argc!=3) fprintf(stderr, "Hata: Parametre sayısı yanlis. Birinci parametre port adresi (orn:0x378) ikinci parametre deger (0..255).\n"), exit(1); if (sscanf(argv[1],"%i",&base)!=1) fprintf(stderr, "Hata: Port (base) adresi yanlis..\n"), exit(1); if (sscanf(argv[2],"%i",&value)!=1) fprintf(stderr, "Hata: Deger sayisal degil..\n"), exit(1); if (ioperm(base,1,1)) fprintf(stderr, "Hata: Porta erismek icin yetkiniz yok. %x\n", base), exit(1); outb((unsigned char)value, base); } |
Kodu derlemek için GCC derleyicisini kullanacağız. Buradan itibaren sistem yöneticisi moduna geçmeyi unutmayın. Yönetici moduna geçmek için konsoldayken aşağıdaki komutu verin root parolasını girmeniz istenecek.
sudo su
Öncelikle Pardus Sisteminizde gcc derleyicisinin yüklü olması gerekir. ayrıca yukarıdaki kodu derleyebilmek için gerekli C kütüphanelerini içereni geliştirici paketlerinin de kurulu olması gerekir. Aksi haldekütüphane bulunamadı hatası almanız olasıdır. Gcc ve geliştirici kütüphanelerini sisteme yüklemek için aşağıdaki komutları verin.
pisi it gcc -y
pisi it -c system.devel -y
Gerekli paketleri de yükledikten sonra artık yukarıdaki C kodumuzu derleyebiliriz. Bunun için aşağıdaki komutu verin.
gcc lptout.c -o lptout
Program derlendiğinde bulunduğunuz dizinde lptout isminde bir program dosyası oluşacak. Programı çalıştırmak için şu şekilde yazın.
./lptout 0x378 255
Komut ile LPT’nin data portuna (0x378) 255 (11111111) değeri gönderilerek tüm pinler +5v yapıldı. Tabiki bu komutun çalıştığını görmek için paralel portunuza bağlı bir led göstergenin olması gerekiyor. Bu uygulamanın çalışan halini ve daha fazlası için kaydettiğim video’yu izleyebilirsiniz. Umarım faydalı olur. Kolay gelsin.