Posted by: protux | آوریل 30, 2008

برنامه نویسی پورت موازی در لینوکس

یک بخش مهم در برنامه نویسی برای سخت افزار های جانبی که به کامپیوتر متصل می شوند ساخت رابط نرم افزاری مناسب برای اینجور سخت افزار هاست اگر شما علاقه به روباتیک یا الکترونیک داشته باشید حتما براتون اتفاق افتاده که بخواهید یک سخت افزار ساخت خودتون رو به کامپیوتر شخصیتون متصل کنید برای این کار راهی نیست بجر اینکه خودتون آستین ها رو بالا بزنید و شروع کنید به کد نویسی…

در سیستم عامل لینوکس که برای برنامه نویس ها و به دست برنامه نویس ها خلق شده این امکان به خوبی تعبیه شده که شما بتونید به راحتی برای پورت های کامپیوتری مانند پورت موازی ( Parallel Port ) پورت سریال (Serial Port ) و همینطور پورت USB و پورت درگاه بازی و غیره برنامه تهیه کنید در این نوشتار قصد دارم نحوه کد نویسی و ساخت یک برنامه برای کنترل پورت موازی رو شرح بدم:

پورت موازی:

پورت موازی یا رابط سنترونیک یک پورت 25 پین هست که در ابتدا برای ارتباط چاپگر به کامپیوتر ایجاد شده و امکانات خوبی برای اتصال چاپگر به این پورت در اون تعبیه شده است در نمای زیر می تونید آرایش پین های این پورت رو ببینید:

D25- Pin Number Centronics 36 Pin Number Function
1 1 Strobe
2 to 9

2 to 9

Data Lines
10 10 Acknowledgement
11 11 Busy
12 12 Out of Paper
13 13 Select
14 14 Auto feed
15 15, 32 Error
16 16, 31 Init
17 17, 36 Select In
18 to 25 18 to 30, 33 GND
- 34, 35 N/C
هر پورت موازی با سه رجیستر یا مکان حافظه کنترل می شود که به ترتیب این سه رجیستر برای عملیات نوشتن ، خواندن و کنترل پورت بکار می روند درجدول زیر آدرس این رجیستر ها مشخص شده است:
Register LPT1 LPT2
Data register (Base Address + 0) 0×378 0×278
Status register (Base Address + 1) 0×379 0×279

Control register (Base Address + 2)

0×37a 0×27a

در لینوکس یک فراخوانی سیستمی به نام ioperm وجود دارد که به شما اجازه دسترسی به پورت ها را می دهد جهت استفاده از این فذاخوانی سیستمی و نحوه کد نویسی آن به مثال زیر توجه کنید:


#include “stdio.h”
#include “stdlib.h”
#include “unistd.h”
#define base 0×378 /* printer port base address */
#define value 255 /* numeric value to send to printer port */
main(int argc, char **argv)
{
if(ioperm(base,1,1))
fprintf(stderr, “Couldn’t get the port at %x\n”, base), exit(1);
outb(value, base);
}

تابع outp دو آرگومان دارد که اولی مقداری است که در پورت می ریزیم و دومی آدرس پورت است.

برای کامپایل برنامه بالا بعد از ذخیره آن با نام lpt_test.c دستور زیر را اجرا کنید:

gcc -O lpt_test.c -o lpt_test

برای اجرای برنامه فوق شما باید با مجوز مدیر ( ROOT ) به سیستم وارد شوید در صورتی که می خواهید اجازه اجرای این برنامه را فقط با مجوز owner صادر کنید از دستور زیر باید استفاده کنید:

chmod +s lpt_test

برنامه بالا عدد 255 را بر روی پورت پارالل می نویسد برای تست برنامه فوق کافی است یک مالتی متر داشته باشید و پین های 1 تا 9 پورت پارالل کامپیوتر خود را چک کنید خواهید دید که همه آنها با مقدار 5 ولت ( یا یک منطقی ) مقدار دهی شده اند شما همین کار را می توانید با LED ها نیز انجام دهید…

برای اینکه برنامه خود را به صورت گرافیکی و مبتنی بر محیط X طراحی کنید می توانید از کتابخانه gtk استفاده نماید و برای برنامه خود ظاهری کاربر پسند بسازید.

برای توضیحات بیشتر اینجا رو ببینید.

کسانی که علاقه دارن در یک پروژه Open Source شرکت کنن و همچنین دوست دارن انگلیسیشون رو تقویت کنن می تون در پروژه ساخت زیر نویس فارسی برای فیلم Revelotion OS شرکت کنن من خودم در این پروژه شرکت کردم…

برای اطلاعات بیشتر می تونید به آدرس زیر مراجه کنید:

ترجمه زیر نویس فارسی فیلم Revelotion OS

Posted by: protux | آوریل 20, 2008

معرفی Gwget

نرم افزار gwget یک ابزار گرافیکی ( مبتنی بر X ) برای مدیریت دانلود می باشد این ابزار با استفاده از wget به دانلود فایل مورد نظر شما می پردازد اگر با ابزار wget آشنا نیستید توضیحات زیر ممکن است برای شما مفید باشد:

ابزار wget یک نرم افزار مبتنی بر شل لینوکس برای دانلود فایل های شما از اینترنت می باشد برای اجرای این ابزار یک شل باز کنید و دستور زیر را در آن بنویسید:

yunas@myUbuntu:~$ wget http://cdimage.ubuntu.com/xubuntu/releases/gutsy/release/xubuntu-7.10-desktop-i386.iso

با دستور بالا شما می توانید فایل iso سی دی زوبونتو را از اینترنت دریافت کنید…

ابزار wget ابزار بسیار قدرتمندی می باشد با این ابزار شما می توانید در صورت قطع اتصال به اینترنت در زمانی دیگر به ادامه دانلود خود بپردازید این ابزار همچنین می تواند در صورت قطع ارتباط بصورت اتوماتیک سعی در برقراری ارتباط با سرویس دهنده فایل کند و عملیات دریافت فایل رل ادامه دهد برای این منظور دستور زیر به کار می رود:

wget -t NumberofTries path

در دستور بالا عبارت NumberofTries مشخص کننده تعداد دفعات سعی برنامه برای برقراری ارتباط با سرویس دهنده فایل می باشد.

همچنین شما می توانید با این ابزار به صورت بازگشتی اقدام به دانلود محتویات یک سایت یا صفحه وب نماید در این حالت wget با دیده هر لینک آن را درون یک پشته قرار می دهد و به صورت بازگشتی اقدام به بررسی و دریافت فایل های هر لینک می کند این قابلیت را شما می توانید تا عمق مشخصی برای wget در نظر بگیرید دستور زیر چگونگی کار را نشان می دهد:

wget -t 20 -r -l MaximumRecursionDepth path

در عبارت بالا MaximumRecursionDepth عمق درخت بازگشتی را برای بررسی لینک های صفحه مورد نظر مشحص می کند.

شما با ابزار wget همچنین می توانید به دریافت فایل از سرویس دهنده های ftp نیز اقدام کنید برای این منظور می توانید نام کاربری و رمز عبور خود را برای این نرم افزار مشخص و اقدام به دریافت فایل مورد نظر خود کنید:

wget -r –ftp-user=USER –ftp-password=PASS path

این ابزار می تواند در پس زمینه سیستم نیز اجرا شود و به صورت آرام و بدون مزاحمت برای شما به دانلود بپردازد برای این منظور کافیست که یک & در انتهای اجرای دستور اضافه نمائید…

wget -r -l 5 -t 20 ubuntu.com/downloads/test.mp3 &

نکته قابل توجه در این ابزار قابلیت حمل آسان آن می باشد بدین معنی که شما می توانید در هر کجا که مایل هستید به دانلود فایل اقدام نماید و در انتها هر چقدر از دانلود باقی ماند را به دستگاه دیگری انتقال دهید و ادامه کار دانلود را بر روی سیستم جدید دنبال کنید برای این منظور فقط کافی است که فایل ایجاد شده توسط wget را در مسیر اجرای این دستور کپی نمائید جالب تر این است که یک نسخه کوچک از این ابزار برای windows نیز در دسترس می باشد این ابزار را برای ویندوز می توانید از این آدرس دریافت کنید. این ابزار به شما امکان می دهد که در یک کافی نت مبادرت به دانلود فایل نمائید و در انتها هر چقدر از دانلود باقی ماند را با خود بر روی فلش دیسک به سیستم خانگیتان انتقال دهید و با لینوکس خود ادامه دانلود را اجرا کنید.

برای بررسی قابلیت های بیشمار این ابزار می توانید از دستور man wget یا wget –help استفاده کنید.

خوب حالا شما اگر از آن دسته افراد هستید که مایل به کار با محیط متنی نمی باشد یک ابزار گرافیکی برای مدیریت wget به نام gwget توسط David Sedeño Fernández طراحی و ایجاد شده است این ابزار را می توانید با دستور زیر در سیستم خود نصب و راه اندازی کنید:

sudo apt-get install gwget

با دستور فوق ابزار gwget بر وس سیستم شما نصب می شود محیط این نرم افزار بسیار ساده و روان می باشد و به کمک ان شما می توانید قابلیت های wget را بصورت گرافیکی در محیط X تجربه کنید و از آن لذت ببرید برای دیدن عکس های gwget به این آدرس مراجعه کنید…

دریافت آخرین بسته gwget…

دریافت افزونه فایرفاکس gwget

Posted by: protux | آوریل 8, 2008

نصب وبکم فراسو در اوبونتو

من یک وبکم فراسو مدل FC 1400 دارم که برای نصبش از درایور ( = ماجول) OV51X استفاده کردم در این پست می خوام در مورد نحوه نصبش براتون بنویسم شاید شما هم ویکم فراسو داشته باشید و بخواید از اون توی اوبونتو استفاده کنید…

برای شروع شما ابتدا باید بفهمید که مدل چیپ استفاده شده توی وبکمتون چیه…

وبکم رو به یک پورت usb وصل کنید و سپس دستور lsusb رو اجرا کنید:

Bus 005 Device 001: ID 0000:0000
Bus 003 Device 001: ID 0000:0000
Bus 002 Device 002: ID 05a9:8519 OmniVision Technologies, Inc.
Bus 002 Device 001: ID 0000:0000
Bus 004 Device 001: ID 0000:0000
Bus 001 Device 001: ID 0000:0000

خروجی این دستور در کامپیوتر من بصورت بالاست در خط سوم شما می تونید نوع چیپ ست وبکمم ( OmniVision Technologies, Inc ) و دو تا عدد هم اونجا نوشته شده یکی کد سازنده و دیگری کد محصول با کمی جستجو در اینترنت متوجه می شید که درایور این چیپست Ov51x است برای دریافت آخرین نسخه این ماژول به این آدرس برید ماژول Ov51x .

بعد از دریافت بسته اون رو از حالت فشرده خارج کنید و در یک قسمت هارد دیسک نگهداری کنید تا در ادامه به نصبش بپردازیم…

wget http://www.rastageeks.org/downloads/ov51x-jpeg/ov51x-jpeg-1.5.4.tar.gz

tar -xvf ov51x-jpeg-1.5.4.tar.gz

cd ov51x-jpeg-1.5.4

دستورات بالا روند گرفتن و از حالت فشرده باز کردن ماژول مذکور رو انجام میدن…

برای نصب یک ماژول ما نیاز داریم که فایل های سرایند ( Header ) لینوکس را در سیستم خود داشته باشیم برای این کار ما باید دستور زیر را اجرا کنیم:

sudo apt-get install build-essential linux-headers-`uname -r`

خوب حالا نوبت به کامپایل ماژول میرسه برای این منظور به مسیری که Ov51x رو ذخیره کردید برید و دستورات زیر رو اجرا کنید:

make

sudo make install

خوب شما ماژول را به همین راحتی کامپایل و نصب کردید…

حالا دستورات زیر رو اجرا کنید و از وبکمتون لذت ببرید:

sudo depmod -A

sudo modprobe ov51x-jpeg

اگه مشکلی بود کامنت بزارید من الان سرگرم نصب کارت تی وی هستم اگه اون رو هم با موفقیت نصب کردم مراحلش رو براتون می نویسم…

Posted by: protux | مارس 31, 2008

نسخه ویکی کتاب سوکت پروگرامینگ

به همت بچه های فروم اوبونتو کتاب سوکت پروگرامینگ باز متن روی صفحه ویکی اوبونتو قرار گرفت در این آدرس می تونید کتاب رو بخونید و ویرایش کنید و در تکمیلش کمک کنید:

http://wiki.ubuntu.ir/SocketProgramming

به نظر می رسه اگه یک لوگو برای کتاب طراحی بشه می تونیم تحت اون لوگو برای کتاب و گسترشش تبلیغات بیشتر و گویا تری ارائه بدیم … فعلا برای لوگو کتاب تصمیمی نگرفتم البته دوست دارم که این کار رو با همکاری شما دوستان خوبم انجام بشه یعنی که طراحی لوگو رو به صورت مشارکتی انجام بدیم یعنی هر کسی ایده ای داره اونو طراحی کنه و برای من میل بزنه که بزارم همین جا و بعد نظر سنجی کنیم و لوگوی که بیشترین رای را تصاحب کرد بشه لوگوی کتاب…

نظر شما چیه؟

Posted by: protux | مارس 27, 2008

کتاب سوکت پروگرامینگ فارسی

کتاب سوکت پروگرامينگ به زبان سي ( تاليف خودم ) رو که خيلي از هکر ها و دوست داران امنيت شبکه و همين طور متخصصين سيستم عامل بکارشون مياد رو به صورت کاملا آزاد براي دانلود گذاشتم هدفم از اين کار آغاز يه پروژه کاملا باز متن براي نگارش اولين کتاب باز متن ايرانه کساني که دوست دارن در اين پروژه شرکت کنن مي تونن همين جا اعلام امادگي کنن و با دانلود کتاب و مطالعه اون و همينطور اضافه کردن بخش هاي ديگه بهش و حذف اشکالاتش در پيشبرد اين پروژه کمک کن انشالله اگه همه چيز خوب پيش بره شايد تا چند ماه ديگه بتونيم با همکاري هم اولين کتاب باز متن ايران رو چاپ کنيم… در پست هاي بعدي بعد از خوندن نظرات شما بيشتر در اين زمينه صحبت مي کنم…
کتاب رو می تونید از این آدرس دریافت کنید: Socket-Programing

Posted by: protux | مارس 25, 2008

صعود به یک قلعه

جاتون خالی دیروز به اتفاق دوستم مهدی رفتیم کوهنوردی هدف که البته نمیشه گفت هدف چون صبح همون روز یک دفعه ای یک طرف رو انتخاب کردیم و حرکت کردیم به سمت اونجا فتح قلعه 2200 متری کوهی با نام سفید کوه . واقعا کوهنوردی برای هر انسان شهر نشینی واجبه در بین صخره ها وسنگ هاست که می فهمی که چقدر کوچیکی و چقدر چیزا مونده که باید یادبگیری من که خودم خیلی حال می کنم با کوهنوردی و پیاده روی طولانی مدت… کاش یه بار دیگه فرصت بشه که توی این تعطیلات یه بار دیگه بزنیم به کوه و دشت البته فکر نکنم فرصتش بشه چون مهدی باید از فردا بره سر کارش و من هم از پنجشنبه باید یک شب در میان شیفت باشم ;)
در اینجا چند تا عکس براتون از صعود دو نفریمون گذاشتم…

این پست ترجمه ای آزاد از نوشتار این صفحه می باشد…

نصب ابونتو 7.10 بر روی حافظه فلش دیسک:

این آموزش به شما روش نصب و راه اندازی لینوکس اوبونتو 7.10 با نام ( Gutsy Gibbon ) بروی فلش دیسک را می آموزد.

خصوصیت روشی که در اینجا آموزش داده می شود این است که علاوه بر ساخت یک پارتیشن سیستمی که فایل های لینوکس اوبونتو بر روی آن قرار می گیرند یک پارتیشن مجزا دیگر هم برای ذخیره فایل های کاری شما در اختیارتان قرار می دهد. این آموزش مناسب کسانی است که مایل نیستند از کامپیوتر های مجهز به سیستم عامل ویندوز تحت هیچ شرایطی استفاده کنند و دوست دارن اوبونتو خود را همه جا به همراه داشته باشند همچنین کسانی که از سرعت پایین راه اندازی دیسک های زنده خسته شده اند می توانند یک فلش لینوکس زنده با سرعت بیشتر در جیب خود قرار دهند…

ملزومات:

1- دیسک زنده اوبونتو 7.10
2- یک نرم افزار رایت سی دی
3- یک حافظه فلش با ظرفیت 1 گیابایت یا بیشتر
4- بسته U710fix.tar

شروع نصب:

نکته: شما می توانید با کپی و پیست کردن کد ها روند نصب رو سرعت ببخشید و درصد خطای انجام عملیات رو کاهش بدید…

1- برای شروع یک فایل .iso اوبونتو 7.10 رو دانلود کنید و بر روی یک سی دی رایت و اگر هم این سی دی رو قبلا تهیه کردید می توانید به مرحله بعد بروید.
2- سی دی ابونتو 7.10 رو در درایو سی دی خوان قرار دهید و کامپیوتر خود را دوباره راه اندازی کنید و با سی دی زنده اوبونتو 7.10 کامپیوتر خود رو بوت کنید. ( اگر از سیستم عامل لینوکس اوبونتو استفاده می کنید نیازی به انجام ایم مرحله نیست).
3- یک پنجره ترمینال باز کنید و دستور sudo su رو در اون تایپ کنید حالا شما با سطح دسترسی مدیر در سیستم حضور دارید.

4- در پنجره ترمینال دستور fdisk -l را وارد کنید تا لیست درایو ها و پارتیشن های سیستم خود را ببینید توجه داشته باشید که حافظه فلش شما احتمالا با نام sdx شناسایی شده است البته در اینجا حرف x متغییر می باشد و ممکن است a یا b باشد این موضوع را باید در وارد کردن دستوراتی که در ادامه مطلب می آوریم مورد توجه قرار دهید به عنوان مثال اگر حافظه فلش شما به نام sdb شناسایی شده است هر کجا که x دیدی به جای آن b قرار دهید.

5- دستور umount /dev/sdx1 را وارد کنید.
6- دستور fdisk /dev/sdx را وارد کنید.
- p را برای دیدن پارتیشن ها و d را برای حذف آنها بکار ببرید.
- مرحله قبل را تا حذف تمامی پارتیشن های فلش دیسک تکرار کنید.
- برای ساخت پارتیشن جدید حرف n را تایپ کنید.
- p برای ساخت یک پارتیشن اولیه.
- 1 را برای اختصاص اولین پارتیشن وارد کنید.
- یک بار کلید Enter را برای تایید گزینه پیشنهادی فشار دهید.
- برای گزینه بعد750M+ را وارد کنید.
- حرف a را برای فعال سازی پارتیشن وارد کنید.
- عدد یک را برای انتخاب پارتیشن وارد کنید.
- برای تعیین نوع پارتیشن حرف t را وارد کنید.
- عدد 6 را در این مرحله وارد کنید.
- برای ساخت پارتیشن بعدی حرف n را تایپ کنید.
- حرف p وارد کنید.
- عدد 2 را برای انتخاب شماره پارتیشن وارد کنید.
- کلید Enter را برای تایید گزینه پیشنهادی فشار دهید.
- کلید Enter را برای تایید گزینه پیشنهادی فشار دهید.
- حرف w را برای ذخیره تغییرات وارد کنید.
7- دستور umount /dev/sdx1 را برای اطمینان از فعال نبودن پارتشن اول، را اجرا کنید.
8- با دستور mkfs.vfat -F 16 -n ubuntu710 /dev/sdx1 پارتیشن اول را فرمت کنید.
9- دستور umount /dev/sdx2 را برای اطمینان از فعال نبودن پارتشن دوم ، را اجرا کنید.
10- با دستور mkfs.ext2 -b 4096 -L casper-rw /dev/sdx2 پارتیشن دوم را نیز فرمت کنید.
11- یک بار فلش دیسک خود را از پورت USB جدا کرده و مجددا آن را وصل کنید.
12- به پنجره ترمینال برگردید و دستور apt-get install syslinux mtools را اجرا کنید.
13- بعد از اتمام مرحله 12 دستور syslinux -sf /dev/sdx1 را اجرا کنید.
14- با استفاده از فرمان cd وارد درایو CDROM خود شوید و دستور زیر را اجرا کنید ( اگر دی حین اجرای دستور خطایی مبنی بر “cannot create symbolic link” رخ داد به آن توجهی نکنید)

cp -rf casper
disctree dists install pics pool preseed .disk isolinux/* md5sum.txt README.diskdefines ubuntu.ico casper/vmlinuz casper/initrd.gz /media/ubuntu710/

15- خوب حالا دستور زیر را برای دریافت بسته درU710fix.tar پنجره ترمینال وارد کنید:

wget pendrivelinux.com/downloads/U710fix.zip

16- دستور زیر را بعد از اتمام مرحله 15 اجرا کنید:

unzip -o -d /media/ubuntu710/ U710fix.zip

17- حالا کامپیوتر خود را مجددا راه اندازی کنید و در بایاس سیستم ترتیبی اتخاذ کنید که سیستم از روی حافظه فلش راه اندازی شود ( گزینه USB-ZIP یا BOOT FROM USB DEVICE یا گزینه ای با این عناوین را برگزینید.).
18- به شما تبریک می گویم حالا اوبونتو خود را می توانید در جیبتان بگذارید و هر کجا که دلتان می خواهد ببرید… :)

لازم به ذکر است که تمامی مراحل 18 گانه فوق توسط مترجم آزمایش شده و مراحل فوق کاملا عملی می باشند.

اگر سوالی در مورد دستورات بالا داشتید یا مشکلی براتون پیش اومد پیغام بزارید…

Posted by: protux | مارس 21, 2008

اولین مطلب

اول: به نام خدا

بعد: سلام

بعد از بعد: سال نو مبارک تمید وارم سال خوبی داشته باشید…

حالا: این اولین پست منه اولین مطلب مطلبی که خیلی دوستش دارم و دارم اونو بدون هیچ مقدمه فکری می نویسم.

خیلی وقت بود که تو فکر راه اندازی یک وبلاگ بودم ولی همش با خودم کلنجار می رفتم که آیا واقعا این کار لازمه یا من اصلا حرفی برای گفتن توی یک وبلاگ دارم؟ بلاخره بر این کش مکش روحی غلبه کردم و تصمیم گرفتم که یک وبلاگ داشته باشم… امیدوارم که بتونم اینجا حرف های بدرد بخوری بزنم…

توی این وبلاگ می خوام در مورد زندگیم ٬ علاقه مندی هام ٬ رویاهام و مسائلی که در اطراف می گذره بنویسم… شاید براتون خوندنش جذاب باشه البته شاید…

خودم رو هم معرفی نمی کنم هر چند که هر کسی که بخواد اسم منو بفهمه براش کار راحتی خواهد بود فقط کافی که به خودم بگه  در مورد خودم فقط همین رو بگم که تحصیلات من در رشته کامپیوتر بوده و علاقه زیادی به ادامه تحصیل درهوش مصنوعی دارم و الان هم مشغول گذروندن دوران نکبت بار سربازیم…

فعلا همین.

Categories