اطلاعیه

Collapse
No announcement yet.

serial port در لینوکس

Collapse
X
 
  • فیلتر
  • زمان
  • Show
Clear All
new posts

    serial port در لینوکس

    سلام
    من به تازگی وارد لینوکس شدم (نزدیک به 3 ماه) و این اولین باره لینوکس رو نه از روی ماشین مجازی بلکه به صورت primery OS دارم استفاده میکنم و واقعا دلم منیخواد برم به ویندوز دوباره
    سریال إ¾إ¾port (من peh ندارم نمیدنم چرا ! ) رو با ft232 راه بندازم :با کامند lsusb :
    کد:
    Bus 003 Device 003: ID 18f8:0f97 
    Bus 003 Device 005: ID 0403:6001 Future Technology Devices International, Ltd FT232 USB-Serial (UART) IC
    Bus 003 Device 002: ID 13d3:5722 IMC Network s
    ایجور که معلومه سریال رو میشناسه .نیازی به درایور نیست
    بعدش dmesg | grep tty :
    کد:
    [ 343.794768] usb 3-10: FTDI USB Serial Device converter now attached to ttyUSB0
    این جور که مشخصه باید بتونم با ttyUSB0 کاراکتر بدم بعد از ریختن putty با apt-get و باز کردنش از طریق صدا زندنش از ترمینال توی قسمت serial line to connect to این عبارت رو مینوسم :
    کد:
    /dev/ttyUSB0
    اما open نمیشه همین مشکل رو cutecom هم دارم .
    میشه راهنمایی کنید چی کارش کنم
    اشکهايي که پس از هر شکست ميريزيم همان عرقيست که براي پيروزي نريخته ايم.
    هيتلر

    #2
    پاسخ : serial port در لینوکس

    نوشته اصلی توسط S2G
    سلام
    من به تازگی وارد لینوکس شدم (نزدیک به 3 ماه) و این اولین باره لینوکس رو نه از روی ماشین مجازی بلکه به صورت primery OS دارم استفاده میکنم و واقعا دلم منیخواد برم به ویندوز دوباره
    سریال إ¾إ¾port (من peh ندارم نمیدنم چرا ! ) رو با ft232 راه بندازم :با کامند lsusb :
    کد:
    Bus 003 Device 003: ID 18f8:0f97 
    Bus 003 Device 005: ID 0403:6001 Future Technology Devices International, Ltd FT232 USB-Serial (UART) IC
    Bus 003 Device 002: ID 13d3:5722 IMC Network s
    ایجور که معلومه سریال رو میشناسه .نیازی به درایور نیست
    بعدش dmesg | grep tty :
    کد:
    [ 343.794768] usb 3-10: FTDI USB Serial Device converter now attached to ttyUSB0
    این جور که مشخصه باید بتونم با ttyUSB0 کاراکتر بدم بعد از ریختن putty با apt-get و باز کردنش از طریق صدا زندنش از ترمینال توی قسمت serial line to connect to این عبارت رو مینوسم :
    کد:
    /dev/ttyUSB0
    اما open نمیشه همین مشکل رو cutecom هم دارم .
    میشه راهنمایی کنید چی کارش کنم
    این فایل جزو فایل های خاصه یعنی وجود خارجی نداره.
    با دستور cat باید خوند و با دستور echo میشه روشون نوشت
    مثلا
    cat /dev/ttyUSB0 هرچی از سمت یو اس بی بیاد رو نشونتون میده و دستور
    کد:
    echo "hello" > /dev/ttyUSB0
    عبارت رو به سمت یو اس بی میفرسته
    کمک بیشتر خواستی بگو بهت توضیح بیشتر بدم

    دیدگاه


      #3
      پاسخ : serial port در لینوکس

      نوشته اصلی توسط hamidreza.nayeri
      این فایل جزو فایل های خاصه یعنی وجود خارجی نداره.
      با دستور cat باید خوند و با دستور echo میشه روشون نوشت
      مثلا
      cat /dev/ttyUSB0 هرچی از سمت یو اس بی بیاد رو نشونتون میده و دستور
      کد:
      echo "hello" > /dev/ttyUSB0
      عبارت رو به سمت یو اس بی میفرسته
      کمک بیشتر خواستی بگو بهت توضیح بیشتر بدم
      ممنون از کمکتون
      فایل cat تونست سیستم رو باز کنه (البته هنوز با کاراکتر تست نکردم ) اما echo بهم Permission denied میده
      اینو تست کردم :
      کد:
      sudo echo -e "hello" > sudo /dev/ttyUSB0
      اینو میدم دیگه مشکل Permission denied نمیده اما خروجی هم هیچی نمیده نه ایسی چشمک میزنه نه تو ترمینال دوم که cat هست چیزی میگیره (با یه سیم tx rx رو بهم وصل کردم) اینو بگم که حتی putty هم باز نمیکنه هر چی open میزنم هیچ عکس العملی نشون نمیده
      مرسی


      ویرایش:
      با ان کد جواب داد :
      کد:
      echo "hello" |sudo tee /dev/ttyUSB0
      یه مشکل دیگه . وقتی یه ترمینال باز میکنم این کد رو میزنم حله اما وقتی یه ترمینال دوم میزنم که باهاش cat میگیرم (یعنی با ترمینال اول بدم با ترمینال دوم بگیرم ) یهو شروع میکنه مثل حالت فیدبک گرفتن ترمینال دوم به غیر hello که هر ۳ ۴ ثانیه به صورت خودکار تکرار میشه (بدون اینکه من echo بگم) تعداد زیادی space میگیره و همینجوری ورودی میگیره . قطع هم نمیشه تا سیمشو بکنم سخت افزار رو جدا کنم
      یه بار از بروگمر استفاده کردم رو یه یورت دیگه . الان ft اصلا جواب نمیده
      کد:
      [23818.537618] ftdi_sio ttyUSB0: FTDI USB Serial Device converter now disconnected from ttyUSB0
      [26313.901921] usb 3-10: FTDI USB Serial Device converter now attached to ttyUSB0
      اخرین بیغام تو dmesg |grep tty هم نشون میده attached شده !
      کد:
      sudo echo -e "hello" > sudo /dev/ttyUSB0
      ال ای دی چشمک نمیزنه . باید کار خاصی انجام بدم ؟
      اشکهايي که پس از هر شکست ميريزيم همان عرقيست که براي پيروزي نريخته ايم.
      هيتلر

      دیدگاه


        #4
        پاسخ : serial port در لینوکس

        مشکل پرمیشن دیناید با همون sudo حل میشه من فراموش کردم بهتون بگم برای خوندن و نوشتن (یا شاید فقط نوشتن) حتما باید sudo رو بزنید
        دستور echo همون طوری که عرض کردم فقط مینویسه به شما خروجی قرار نیست تحویل بده انتظار خروجی ازش نداشته باشید فقط همون طور که خودتون دیدید خطا ها رو نشونتون میده
        اما در خصوص مشکل تون با tee نمیدونم. سیستم عاملتون چه توزیعیه؟ شاید خود tee باعث میشه هی تکرار بشه
        ضمنا dmesg فقط مخصوص درایورها و ماژول های هسته است. خطاهای معمولی رو نشون نمیتونه بده

        دیدگاه


          #5
          پاسخ : serial port در لینوکس

          نوشته اصلی توسط hamidreza.nayeri
          مشکل پرمیشن دیناید با همون sudo حل میشه من فراموش کردم بهتون بگم برای خوندن و نوشتن (یا شاید فقط نوشتن) حتما باید sudo رو بزنید
          دستور echo همون طوری که عرض کردم فقط مینویسه به شما خروجی قرار نیست تحویل بده انتظار خروجی ازش نداشته باشید فقط همون طور که خودتون دیدید خطا ها رو نشونتون میده
          اما در خصوص مشکل تون با tee نمیدونم. سیستم عاملتون چه توزیعیه؟ شاید خود tee باعث میشه هی تکرار بشه
          ضمنا dmesg فقط مخصوص درایورها و ماژول های هسته است. خطاهای معمولی رو نشون نمیتونه بده
          بدون استفاده از tee نمیتونستم جواب بگیرم حتی اگه قبل اکو sudo میزاشتم بازم دیناید میداد . میشه حلش کرد؟
          سیستم عاملم اوبنتو ۱۶.۰۴ هستش
          ورودی رو سعی کردم با ترمینال دیگه بگیرم یهنی یه لوب بدم . ۲ سر به هم وصله از یه ترمینال میدم تو ترمینال دیگه میگیرم
          بدون dmesg دستوره دیگه هم وجود داره واسه چک کردن usb متصل شده ؟ با lsusb که نشون نمیداد

          ممنون
          اشکهايي که پس از هر شکست ميريزيم همان عرقيست که براي پيروزي نريخته ايم.
          هيتلر

          دیدگاه


            #6
            پاسخ : serial port در لینوکس

            نوشته اصلی توسط S2G
            بدون استفاده از tee نمیتونستم جواب بگیرم حتی اگه قبل اکو sudo میزاشتم بازم دیناید میداد . میشه حلش کرد؟
            سیستم عاملم اوبنتو ۱۶.۰۴ هستش
            ورودی رو سعی کردم با ترمینال دیگه بگیرم یهنی یه لوب بدم . ۲ سر به هم وصله از یه ترمینال میدم تو ترمینال دیگه میگیرم
            بدون dmesg دستوره دیگه هم وجود داره واسه چک کردن usb متصل شده ؟ با lsusb که نشون نمیداد

            ممنون
            والا توزیع های لینوکس خیلی با هم فرق دارند حتی توی یک توزیع یک ورژنش با ورژن بعدیش میتونه کلی فرق داشته باشه
            در خصوص sudo من خیلی اطلاع ندارم چون خودم با فدورا کار میکنم و با su نه sudo اما یه چیزی میدونم و اون هم اینه که sudo همه دسترسی ها رو لزوما نمیده ولی su میده منتها متاسفانه اوبونتو اجازه su بهتون نمیده و باید یک سری اعمال خاصی انجام بدید تا بهتون اجازه بده با کاربر ریشه برید تو که من الان یادم نیست
            یک پیشنهادی که به شما میکنم اینه که برگردید ویندوز. بنده خودم سیستم خونه و ... ام لینوکسه اما به شما پیشنهاد نمیکنم. دنگ و فنگ الکی خیلی داره و واقعا دمار از روزگارتون در میاره. چه بسا یک صبح تا شب سر و کله میزنید باهاش آخرش میبینید که یه اشکال کوچیک داشته
            اما وقتی که lsusb دیوایس رو نشون نمیده یعنی دیوایس تون سوخته به احتمال قوی یا ممکنه درایورش مثل pl2303 یا ft203 اش سوخته باشه. پیشنهاد میکنم برای این که مطمئن بشید مشکل از سیستم نیست با ویندوز چک کنید اگر جواب داد یعنی یه چیزی تو سیستم عامل تون مشکل داره اگر روی ویندوز هم جواب نداد یعنی احتمالا کاری کردید که بورد آسیب دیده


            خواهش میکنم

            دیدگاه


              #7
              پاسخ : serial port در لینوکس

              نوشته اصلی توسط hamidreza.nayeri
              والا توزیع های لینوکس خیلی با هم فرق دارند حتی توی یک توزیع یک ورژنش با ورژن بعدیش میتونه کلی فرق داشته باشه
              در خصوص sudo من خیلی اطلاع ندارم چون خودم با فدورا کار میکنم و با su نه sudo اما یه چیزی میدونم و اون هم اینه که sudo همه دسترسی ها رو لزوما نمیده ولی su میده منتها متاسفانه اوبونتو اجازه su بهتون نمیده و باید یک سری اعمال خاصی انجام بدید تا بهتون اجازه بده با کاربر ریشه برید تو که من الان یادم نیست
              یک پیشنهادی که به شما میکنم اینه که برگردید ویندوز. بنده خودم سیستم خونه و ... ام لینوکسه اما به شما پیشنهاد نمیکنم. دنگ و فنگ الکی خیلی داره و واقعا دمار از روزگارتون در میاره. چه بسا یک صبح تا شب سر و کله میزنید باهاش آخرش میبینید که یه اشکال کوچیک داشته
              اما وقتی که lsusb دیوایس رو نشون نمیده یعنی دیوایس تون سوخته به احتمال قوی یا ممکنه درایورش مثل pl2303 یا ft203 اش سوخته باشه. پیشنهاد میکنم برای این که مطمئن بشید مشکل از سیستم نیست با ویندوز چک کنید اگر جواب داد یعنی یه چیزی تو سیستم عامل تون مشکل داره اگر روی ویندوز هم جواب نداد یعنی احتمالا کاری کردید که بورد آسیب دیده


              خواهش میکنم
              ممنون
              من نمیتونم برگردم رو ویندوز برای تفریح نیومدم لینوکس , هم برای کارم و هم علاقم تو سیستمهای امبدد باید رو لینوکس کار کنم و علاقشم دارم .من قبلا رو سی شارب کار میکردم الان GKT و C++ رو شروع کردم تا خودم رو از ide هم جدا کنم . دنبال نوشتن برنامه برای سیستمای x86 مثل مینی کیسها هستم و باید برنامه نویسی اترنت و سریال رو حتما کامل کنم بعدش برم سراغکارایی مثل حدف دسکتاب و انجام لود خودکار برنامم و تعویض علامت اسارت اب لینوکس و اتو لاگین و ... تا بشه عملا یه حالت سیستم عامل شخصی برای کارای خاص . درسته که ممکنه حتی چند سال طول بکشه اما از اونجا که لینوکس رو میشه کامل کاستومایز کرد اونم مجانی ارزش دردسرش رو داره .اگه الان بخوام جا بزنم هیچ وقت نمیتونم به هدفم برسم . برگشتن به ویندوز مشکلم رو حل نمیکنه مساله رو باک میکنه .لینوکس دقیقا چیزیه که من بهش نیاز دارم و اینو موقعی فهمیدم که مدتها رو windows embedded کار کردم . شمام که سیستمتون لینوکسه مسلما اول کار این مشکلات رو داشتید اما کم کم راه افتادید .

              بگذریم,

              دیوایس سالم کار میکنه اما کدهای لینوکس اون جوری که میخوام کار نمیکنه . lsusb دیوایس رو نشون میده ! اینکه رو کدوم tty هست رو نشون نمیده .وگرنه دیوایس کاملا سالمه . در هر صورت مشکلی نیست با avr اکو گرفتم امشب خوب جواب داد همین طور با برنامه C++ و کتابخونه termios.
              در مورد su میگن واسه تازه کارا یکم خطریه واسه همین فعلا بهش دست نمیزنم .
              اشکهايي که پس از هر شکست ميريزيم همان عرقيست که براي پيروزي نريخته ايم.
              هيتلر

              دیدگاه


                #8
                پاسخ : پاسخ : serial port در لینوکس

                نوشته اصلی توسط S2G
                ممنون
                من نمیتونم برگردم رو ویندوز برای تفریح نیومدم لینوکس , هم برای کارم و هم علاقم تو سیستمهای امبدد باید رو لینوکس کار کنم و علاقشم دارم .من قبلا رو سی شارب کار میکردم الان GKT و C++ رو شروع کردم تا خودم رو از ide هم جدا کنم . دنبال نوشتن برنامه برای سیستمای x86 مثل مینی کیسها هستم و باید برنامه نویسی اترنت و سریال رو حتما کامل کنم بعدش برم سراغکارایی مثل حدف دسکتاب و انجام لود خودکار برنامم و تعویض علامت اسارت اب لینوکس و اتو لاگین و ... تا بشه عملا یه حالت سیستم عامل شخصی برای کارای خاص . درسته که ممکنه حتی چند سال طول بکشه اما از اونجا که لینوکس رو میشه کامل کاستومایز کرد اونم مجانی ارزش دردسرش رو داره .اگه الان بخوام جا بزنم هیچ وقت نمیتونم به هدفم برسم . برگشتن به ویندوز مشکلم رو حل نمیکنه مساله رو باک میکنه .لینوکس دقیقا چیزیه که من بهش نیاز دارم و اینو موقعی فهمیدم که مدتها رو windows embedded کار کردم . شمام که سیستمتون لینوکسه مسلما اول کار این مشکلات رو داشتید اما کم کم راه افتادید .

                بگذریم,

                دیوایس سالم کار میکنه اما کدهای لینوکس اون جوری که میخوام کار نمیکنه . lsusb دیوایس رو نشون میده ! اینکه رو کدوم tty هست رو نشون نمیده .وگرنه دیوایس کاملا سالمه . در هر صورت مشکلی نیست با avr اکو گرفتم امشب خوب جواب داد همین طور با برنامه C++ و کتابخونه termios.
                در مورد su میگن واسه تازه کارا یکم خطریه واسه همین فعلا بهش دست نمیزنم .
                بله من هم اولش همین مشکلات رو حتی خیلی عظیم تر داشتم مضاف بر این که کسی نبود راهنمایی بکنه
                ولی شما به هدفتون که ساختن سیستم عامل شخصیه نمیرسید این رو مطمئن باشید
                من خودم برنامه نویس سیستم ام. حتی پردازنده رو تو مود ریشه بالا آوردم (بوت) و باهاش برنامه هم نوشتم
                فقط یک کلمه میتونم بگم به اندازه زحمتی که میکشید براتون آورد نداره
                اگر مثل من فقط دوست دارید بلد باشید که شب سر ر احت رو بالشت بگذارید خب بسم الله برید جلو من هم کمک تون میکنم

                اما برای این که بتونید OS رو خودتون دستکاری کنید من سیستم امبد رو پیشنهاد نمیکنم. واقعا معتقدم با پی سی سریع تر جواب میگیرید
                برای اطلاع از سیستم عامل و خیلی چیزها برید wiki.osdev.org
                البته سرورش رو الان تست کردم نمیدونم چرا پایین بود ولی اگه پ بشه خیلی کمک تون میکنه

                یه چیز دیگه. برنامه نوشتن برای یک دیوایس که خارج از سیستمه عملا خیلی پیچیده تره دوست عزیز. پیشنهاد میکنم اول به مسائلی که تو خود سیستم هست بپردازید هروقت مسلط شدید برید سراغ این کار چون مشکلات اینجوری برنامه نوشتن واقعا دو برابره. هم سیستم هم دیواس تون بازی در میارن و کار ممکنه نکنن. این کار خیلی پیشرفته است. ضمنا من مدرک تحصیلی شما رو هم نمیدونم ولی برای انجام دادن بعضی کارها و فهمیدن بعضی مسائل واقعا باید کامپیوتر خونده باشید.
                البته این که میخواید یاد بگیرید خیلی خوبه. من پیشنهاد میکنم برید اول همون برنامه نویسی پورت و شبکه و اینها رو یاد بگیرید بعد برید دنبال Linux API programming و بعدش Kernel Module Programming تو همه اینا که مسلط شدید که چندین سال طول میکشه بعد بیاید دنبال این که دیوایس خارجی به لینوکس بزنید و ....

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

                دیدگاه


                  #9
                  پاسخ : پاسخ : serial port در لینوکس

                  نوشته اصلی توسط hamidreza.nayeri
                  بله من هم اولش همین مشکلات رو حتی خیلی عظیم تر داشتم مضاف بر این که کسی نبود راهنمایی بکنه
                  ولی شما به هدفتون که ساختن سیستم عامل شخصیه نمیرسید این رو مطمئن باشید
                  من خودم برنامه نویس سیستم ام. حتی پردازنده رو تو مود ریشه بالا آوردم (بوت) و باهاش برنامه هم نوشتم
                  فقط یک کلمه میتونم بگم به اندازه زحمتی که میکشید براتون آورد نداره
                  اگر مثل من فقط دوست دارید بلد باشید که شب سر ر احت رو بالشت بگذارید خب بسم الله برید جلو من هم کمک تون میکنم

                  اما برای این که بتونید OS رو خودتون دستکاری کنید من سیستم امبد رو پیشنهاد نمیکنم. واقعا معتقدم با پی سی سریع تر جواب میگیرید
                  برای اطلاع از سیستم عامل و خیلی چیزها برید wiki.osdev.org
                  البته سرورش رو الان تست کردم نمیدونم چرا پایین بود ولی اگه پ بشه خیلی کمک تون میکنه

                  یه چیز دیگه. برنامه نوشتن برای یک دیوایس که خارج از سیستمه عملا خیلی پیچیده تره دوست عزیز. پیشنهاد میکنم اول به مسائلی که تو خود سیستم هست بپردازید هروقت مسلط شدید برید سراغ این کار چون مشکلات اینجوری برنامه نوشتن واقعا دو برابره. هم سیستم هم دیواس تون بازی در میارن و کار ممکنه نکنن. این کار خیلی پیشرفته است. ضمنا من مدرک تحصیلی شما رو هم نمیدونم ولی برای انجام دادن بعضی کارها و فهمیدن بعضی مسائل واقعا باید کامپیوتر خونده باشید.
                  البته این که میخواید یاد بگیرید خیلی خوبه. من پیشنهاد میکنم برید اول همون برنامه نویسی پورت و شبکه و اینها رو یاد بگیرید بعد برید دنبال Linux API programming و بعدش Kernel Module Programming تو همه اینا که مسلط شدید که چندین سال طول میکشه بعد بیاید دنبال این که دیوایس خارجی به لینوکس بزنید و ....

                  اکر ویندوز بود یک دهم این مشکلات رو نداشتید ولی یادگیری لینوکس ارزشش رو داره. حداقل آدم واقعا یه چیزی یاد میگیره
                  اگر سوالی داشتید پیام خصوصی بدید کمک تون کنم
                  حتما . خیلی ممنونم
                  راستش نمیخوام سیستم عامل اونجوری از اول بنویسم .منطورم از امبدد هم این بود مثلا سیستم عامل جوری نباشه که کاربر بتونه روش بازی بریزه یا توش بگرده نه اینکه هستش حتما ARM باشه . اصلا این کار از عهدم برنمیاد . یه دلیلیم که میخوام سیستمه مینی کیس هارو برم جلو اینکه نیاز به بورت کردن نداره و همین اوبنتو معمولی روش نصب میشه , خوبیه اینتل اینه . حذف یه سری از ماژولای اوبنتو و دسکتابش کافیه . این طور که رو رزبری البته , رفتم جلو از روی اطلاعات یافت شده این کار قابل انجامه . من کرنل prebuild رزیبری رو دست کاری کردم حتی علامت اول تمشک هم به راحتی عوض میشه . و دستکابش هم میشه از لودش جلو گیری کرد بعد یه برنامه خود کار واسش میزاشتم که سیستم GTK رو لود کنه بعدش برنامه .out منو که مستقیما با GCC کمبایل شده اجرا کنه . مانیتورم که hdmi مشکل درایور نویسیشو حل میکنه همه سیستم عامل ها خودکار دارنش درایورشو

                  البته من هنوز کامل جلو نرفتم اما گفتن قابل انجام همین طور که الان دسکتاب خیلی از سیستمای لینوکس هم با GTK هست البته من دسکتاب نمخوام بنویسم . فقط یه برنامه ساده که مثلا ۱۰ تا رله کنترل کنه (یه ۱۰ تا button fبا ۲ ۳ تا textbox ) ولی شخص نتونه از محدوده خارج شه . مثلا حق نداشته باشه وارد ترمینال بشه یا برنامهای دیگه و ماژولای دیگرو ببینه حتی چه برشه که وا کنه...

                  ویندوز مشکل داره کرک نداره قیمتشم سرسام آوره . ویندوز ۸ ایداستریال ۴۹۰ و استاندارد ۲۹۰ قیمت دارن !

                  من لیسانس الکترونیکم
                  بازم ممنون
                  اشکهايي که پس از هر شکست ميريزيم همان عرقيست که براي پيروزي نريخته ايم.
                  هيتلر

                  دیدگاه

                  لطفا صبر کنید...
                  X