রাস্পবেরি পাই দিয়ে লিনাক্স ড্রাইভার বিকাশ শেখা


13

আমি কিছু বাস্তব হার্ডওয়্যার ডিভাইসের জন্য একটি লিনাক্স ডিভাইস ড্রাইভার লিখতে চাই। রাস্পবেরি পাই পেরিফেরালগুলি কী উপযুক্ত? মূলত আমার নিম্নলিখিতগুলি প্রয়োজন:

  1. এটি একটি শিক্ষানবিসের জন্য যথেষ্ট ছোট হতে হবে (সর্বাধিক কয়েক মাস, ভাল কয়েক সপ্তাহ)।

  2. ডেটাশিট অবশ্যই পাওয়া উচিত। প্রথমে আমি ইউএসবি-ইথারনেট অ্যাডাপ্টারটি নিয়ে ভাবছিলাম, তবে দেখে মনে হচ্ছে এটির সীমিত ডেটাশিট রয়েছে।

কোন ধারনা? জিপিআইও-তে সিরিয়াল কনসোল তৈরির মতো কিছু হতে পারে?


2
লিনাক্স ড্রাইভারগুলি কার্নেল মডিউল, এবং প্রযুক্তিগতভাবে তাদের হার্ডওয়ারের সাথে কিছু করার দরকার নেই, তাই আপনি প্রথমে চেষ্টা করতে চান সম্ভবত একটি চার্চ ডিভাইস ইন্টারফেস - যেমন, এমন কিছু যা একটি চর ডিভাইস ফাইল সরবরাহ করে যা কিছু তুচ্ছ কাজের জন্য পাঠানো এবং / অথবা লিখিত (প্র্যাকের মধ্যে বেশিরভাগ উপাদানের মতো) be
স্বর্ণলোকস

আমি এগুলি সমস্ত করেছি, টিউটোরিয়ালগুলি সম্পূর্ণ করেছি এবং সিউডো-ডিভাইসগুলির জন্য কার্নেল / ড্রাইভার বিকাশের উপর বই পড়ার পাশাপাশি কার্নেল মডিউলগুলি লিখেছি। এটি সব ভাল, তবে এখন আমি আসল হার্ডওয়্যার নিয়ে কাজ করতে চাই ..
ivan

গ্রেগ কেএইচ কিছুক্ষণ আগে এটি লিখেছিলেন (এটি কিছুটা ক্ষেত্রে সম্ভবত কিছুটা পুরানো): linuxj Journal.com/article/7353 সুতরাং আশেপাশে পাবলিক ডেটা শিট সহ ইউএসবি ডিভাইস রয়েছে। তার কিছু বিপরীত প্রকৌশল টিপস রয়েছে (আমি খুব জটিল কিছু দিয়ে এটি করতে চাই না)। জিপিআইও পিনের জন্য স্টাফ আমি অনুমান করি সাধারণত বিদ্যমান আই 2 সি ইত্যাদি ড্রাইভার ব্যবহার করে আপনি কাজ করতে পারেন তবে আপনি কেবল তা উপেক্ষা করে নিজেই কিছু করতে পারেন।
স্বর্ণিলকস

উত্তর:


4

জটিল ডিভাইস এবং / অথবা জটিল বাসের সাথে ইন্টারফেস করার সময় ড্রাইভার লিখতে শেখা কঠিন। এজন্য আমি হয় কিছু সাধারণ এবং সুপরিচিত ডিভাইস (কার্নেলের মধ্যে তাদের ড্রাইভারের বিদ্যমান প্রয়োগকে উপেক্ষা করে) যেমন I²C / SPI ডিভাইসগুলি যা সাধারণত মাইক্রোকন্ট্রোলারগুলির সাথে ব্যবহৃত হয় তা ব্যবহার করার পরামর্শ দেব would উদাহরণস্বরূপ আপনি এমন কোনও ডিভাইস দেখতে পেলেন যা আড়ডিনো সম্প্রদায় দ্বারা "সমর্থিত" রয়েছে (যার অর্থ এটির জন্য একটি গ্রন্থাগার / ডকুমেন্টেশন রয়েছে) এবং এটি রাস্পবেরিপি ব্যবহার করে চেষ্টা করুন।

যদি এটি পর্যাপ্ত না হয় বা আপনি খুব বেশি হার্ডওয়্যার কিনতে না চান তবে আপনি নিজেই তৈরি করতে পারেন। কেবল কিছু মাইক্রোকন্ট্রোলার পান (যেমন অমেগা বা অন্য কিছু), এটি কোনও ডিভাইস হওয়ার জন্য একটি প্রোগ্রাম তৈরি করুন এবং তারপরে লিনাক্স ড্রাইভারগুলি ব্যবহার করে এটির সাথে ইন্টারফেসিংয়ের চেষ্টা করুন। আপনি সহজেই এমন প্রোগ্রাম তৈরি করতে পারবেন যা ডিভাইসের বিভিন্ন শ্রেণির অনুকরণ করবে। এবং যেহেতু আপনি নিজের "ফার্মওয়্যার" নিজেই লিখবেন তাই সমস্যাগুলি ডিবাগ করতে আপনাকে সহায়তা করবে।

এর জন্য আপনার কিছু মাইক্রোকন্ট্রোলার প্রোগ্রামিং দক্ষতা প্রয়োজন তবে আরডুইনোর সাথে প্রোগ্রামিং শেখা খুব কঠিন নয় এবং আমি বিশ্বাস করি এটি যে কোনওভাবেই ড্রাইভার প্রোগ্রামারের জন্য দরকারী জ্ঞান।


জিপিআইও পিনের মাধ্যমে সফ্টওয়্যারটিতে সিরিয়াল যোগাযোগ বাস্তবায়ন সম্পর্কে কীভাবে? উদাহরণস্বরূপ পিসিতে সিরিয়াল সংযুক্ত করুন এবং কনসোলে অন্তত কিছু আউটপুট দেওয়ার চেষ্টা করুন। এটা কি টেকসই?
আইভান

@ আইভান: আমি নিশ্চিত না যে আমি এটি সঠিক বুঝতে পেরেছি কিনা। যদি, সিরিয়াল অনুসারে, আপনি ইউআরটি / আরএস232 এবং সফ্টওয়্যার দ্বারা বোঝাচ্ছেন, আপনি এটি বিটবাংগিং করছেন, তবে সময় সীমাবদ্ধতার কারণে এটি সম্ভব নয়। অন্যদিকে, যদি আপনি বোঝাতে চান (আবার) লিনাক্স সিরিয়াল ডিভাইসটি রাস্পবেরিপি ইউআআআআআআআআআআআরআর দ্বারা ব্যবহার করে তবে অবশ্যই তা কার্যকর able আমি বিশ্বাস করি যে এই হার্ডওয়্যার সম্পর্কে প্রয়োজনীয় সমস্ত তথ্য BCM2835 ARM Peripheralsনথিতে পাওয়া যাবে । তবে মনে রাখবেন এটি ব্যবহার করার জন্য আপনাকে প্রথমে কার্নেলের মধ্যে বিদ্যমান ড্রাইভারটি নিষ্ক্রিয় করতে হবে।
ক্রিজিসটফ অ্যাডামস্কি

ধন্যবাদ, তবে আপনি কি বিআট-ব্যাংিং ইউআরটির অসম্ভবতা সম্পর্কে নিশ্চিত? আমি এই লিঙ্কটি পেয়েছি: ganssle.com/articles/auart.htm সুতরাং এটি কম বাড রেটের জন্য এবং কমপক্ষে কেবলমাত্র অংশ প্রেরণের (যা সহজ) বাস্তবায়ন করার জন্য সম্ভাব্যভাবে কার্যক্ষম বলে মনে হচ্ছে।
আইভান

@ আইভান: এই নিবন্ধটি লিনাক্সের মতো সাধারণ উদ্দেশ্যমূলক অপারেটিং সিস্টেমগুলির সাথে সম্পর্কিত বলে মনে হচ্ছে না। ইউআআআরটিতে আপনার আসল কড়া সময়সীমাবদ্ধতা রয়েছে যা রিয়েল টাইম অপারেটিং সিস্টেম ব্যতীত খুব কঠিন। বলা হচ্ছে, লো বাড্রেটে এটি করা সম্ভব হতে পারে তবে এটি সত্যই নির্ভরযোগ্য নয়।
ক্রিজিসটফ অ্যাডামস্কি

দেখে মনে হচ্ছে আপনি ঠিক আছেন: raspberrypi.stackexchange.com/questions/1987/… (তবে সেখানে একটি আকর্ষণীয় সমাধান আছে)। আপনার সাহায্যের জন্য আবার ধন্যবাদ।
ইভান

3

ব্যক্তিগতভাবে আমি খুব সাধারণ ডিভাইস দিয়ে শুরু করব, যেমন জিপিআইও পিনের সাথে সরাসরি সংযুক্ত এক বা একাধিক এলইডি।

আপনি হয় প্লাগইন করার জন্য প্রস্তুত একটি ডিভাইস কিনতে পারেন, বা আপনার নিজের তারের করতে পারেন।

আমি এটির পরামর্শ দেওয়ার কারণটি হ'ল ড্রাইভারগুলি সাধারণত একটি সাধারণ প্রোগ্রামের পরে সাধারণত আরও বেশি কঠিন হয়, তাই শুরু করার জন্য একটি সহজ চ্যালেঞ্জ দরকারী, এছাড়াও আপনি আরও জটিল ডিভাইসগুলির ডিবাগের পদ্ধতি হিসাবে সেই কোডটি ব্যবহার করতে পারেন (স্থিতির বাইরে) একটি জিপিআইও পিন একটি অ্যাসিলোস্কোপ সংযুক্ত করার জন্য) যেখানে সময় নির্ধারণ গুরুত্বপূর্ণ।

যদি সুদের আছে একটি কার্নেল চালক LedBorg প্রাপ্তিসাধ্য এখানে , উৎস একটি নিয়মিত ব্যবধানে GPIO পিনের ড্রাইভিং জন্য একটি যুক্তিসঙ্গতভাবে সহজ উদাহরণ হওয়া উচিত।


হাই @ পাইবার্গ আপনি কি এমন কিছু সংস্থান বলতে পারেন যা জিপিআইও পিনের সাথে সরাসরি সংযুক্ত এক বা একাধিক এলইডি যেমন কোনও ডিভাইসের জন্য সহজ ড্রাইভারকে কোড শিখতে সহায়তা করে?
সাগর

0

আপনি যে হার্ডওয়্যার ড্রাইভারের জন্য সহজেই "ডিভাইস" লিখতে পারেন (যদি হার্ডওয়্যার ড্রাইভার ডেভলপমেন্টটি আপনার জিনিস হয়) এটিও একটি এলইডি হিসাবে সহজ হতে পারে (আমি উদ্ধৃতি চিহ্নগুলি যুক্ত করেছি কারণ প্রযুক্তিগতভাবে একটি এলইডি কোনও ডিভাইস নয় তবে এটি এখনও একটি অংশ) হার্ডওয়্যার) @ পাইবার্গের পরামর্শ অনুসারে

অন্যান্য পছন্দগুলি হ'ল কিছু সহজ-ইন্টারফেস ডিভাইস / ফটোসরিস্টরগুলির মতো উপাদান, প্যাসিভ ইনফ্রারেড সেন্সর (সংক্ষিপ্ত: পিআইআর), তাপমাত্রা সেন্সর, পিসি ফ্যানস (সাধারণত একটি 4-তারের ফ্যান যা আপনাকে কেবল নিরীক্ষণ করতে পারে না তবে নিয়ন্ত্রণও করতে পারে আরপিএম), এলইডি ডট ম্যাট্রিক্স এবং আরও অনেক কিছু। মূলত এই জাতীয় ডিভাইসগুলি আপনাকে হার্ডওয়্যারটিতে সর্বনিম্ন থাকার অনুমতি দেয় (যাতে আপনি আসলে যা অর্জন করেছেন তা দেখতে এবং স্পর্শ করতে পারেন) এবং একই সাথে আপনি অনেকগুলি বিষয় সম্পর্কে শিখতে পারেন যেখানে আরও জটিল ডিভাইসগুলির জন্য ব্যবহৃত হয় যেখানে জটিলতাটি তারা বেশিরভাগ প্রোটোকল থেকে আসে।

মনে রাখবেন যে কার্নেল মডিউলগুলিতে আপনাকে অতিরিক্ত মাইল খনন করতে হবে না। অবশ্যই যদি আপনি এটি করতে চান তবে কেউ আপনাকে বাধা দিচ্ছে না। :)

এখানে প্যাসিভ ইনফ্রারেড সেন্সরকে ইন্টারফ্যাক্স করার একটি উদাহরণ দেওয়া হয়েছে (আমার পিআইআর বিতরণ করা হলে আমি শীঘ্রই এটি পরীক্ষা করতে যাচ্ছি: 3)। আপনি এটি নিতে পারেন এবং লিনাক্স কার্নেলের জগতের আরও গভীর খনন শুরু করতে পারেন যাতে আপনি উদাহরণস্বরূপ কার্নেল ড্রাইভার তৈরি করতে পারেন যা পিআইআর এর সাথে কাজ করে।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.