রুট হিসাবে চালানো হলেই আরডুইনো প্রোগ্রামটি কাজ করে


19

আমি যখন আরডুইনো প্রোগ্রামটি রুট ( sudo) হিসাবে চালিত করি তখন সাধারণ স্কেচগুলি আপলোড করা কাজ করে বলে মনে হয় । আমি এটি নিয়মিত ব্যবহারকারী হিসাবে চালাতে চাই। এর আগে কি কেউ একই সমস্যার মুখোমুখি হয়ে সমাধান করেছেন?

আমি যা থেকে পেয়েছি তা এখানে lsusb:

$ lsusb
Bus 002 Device 022: ID 2341:0043 Arduino SA Uno R3 (CDC ACM)

এবং আরডুইনো প্রোগ্রাম এটি হিসাবে চিহ্নিত করে /dev/ttyACM0। এটির অনুমতিগুলি এখানে:

$ ls -l /dev/ttyACM0 
crw-rw---T 1 root dialout 166, 0 Mar 14 22:03 /dev/ttyACM0

এখানে থেকে আউটপুট id

groups=1000(abhiram),20(dialout),24(cdrom),25(floppy),29(audio),
30(dip),44(video),46(plugdev),105(scanner),110(bluetooth),112(netdev)

আমি যখন নিয়মিত ব্যবহারকারীর হিসাবে উদাহরণগুলি থেকে কোনও স্কেচ আপলোড করি তখন আমার এই ত্রুটি ঘটে:

avrdude:stk500_recv(): programmer not responding

কোন পরামর্শ স্বাগত।


এটি সাহায্য করে কিনা দেখুন , বিভাগ "
পারমিশন

4
এবং আইডিইটিকে রুট হিসাবে চালানোর জন্য পরিস্থিতি গ্রহণ না করার জন্য +1, তবে কীভাবে সমস্যাটি সঠিকভাবে সমাধান করা যায় তা বোঝার চেষ্টা করা হচ্ছে।
জিপ্পি

আপনি কোনও অ-সুযোগ সুবিধাযুক্ত ব্যবহারকারীর আইডিই চালানোর চেষ্টা করার সময় সঠিক ত্রুটিটি কী? আপনাকে Preferencesমেনুতে ভার্বোজ আউটপুট সক্ষম করতে হবে ।
জিপ্পি

আপনি আনপ্লাগিং করে সঠিক ডিভাইসে সংযোগ করছেন তা নিশ্চিত করুন, তারপরে কয়েক সেকেন্ড অপেক্ষা করুন, তারপরে পুনরায় প্লাগ করুন, তারপরে dmesgনিবন্ধিত ডিভাইস ফাইলটির আউটপুট পরীক্ষা করুন ।
জিপ্পি

এটি যাচাই করা হয়েছে, ডিভাইসটি যথাযথভাবে আবিষ্কার করা হয়েছে /dev/ttyACM0: USB ACM device। সুতরাং, এটি আমার কাছে সমস্যা বলে মনে হচ্ছে না। অন্যদিকে, সংকলন এবং আপলোড থেকে লগগুলি (তাদের পছন্দগুলিতে সক্ষম করতে হয়েছিল), আশাব্যঞ্জক বলে মনে হচ্ছে। আমি কেবল তাদের আরডুইনো প্রোগ্রাম থেকে অনুলিপি করতে পারি না :(। (তারা কি কোথাও কোনও ফাইলে লিখছেন?)
ফিভারড্রিম

উত্তর:


13

dialoutগ্রুপে নিজেকে যুক্ত করা সবচেয়ে সহজ সমাধান ।

প্রথমে থেকে আউটপুট একটি নোট তৈরি করুন id। এটিকে ফাইলটিতে সংরক্ষণ করুন (এটি /tmpপুনরায় বুট করার পরে পরিষ্কার হয় না)। আপনি যদি আউটপুটটি লক্ষ্য করেন, আপনি লক্ষ্য করবেন যে আপনার ব্যবহারকারীর বেশ কয়েকটি গোষ্ঠীর জন্য সাইন আপ হয়েছে এবং এই গোষ্ঠীগুলি সিস্টেমে অতিরিক্ত সুযোগ-সুবিধা উপস্থাপন করে। ডিফল্টরূপে আপনার আরডুইনো গ্রুপে বরাদ্দ করা হয়েছে dialoutকারণ এটি সিরিয়াল ইন্টারফেস হিসাবে নিবন্ধিত হয় এবং পুরানো দিনগুলিতে প্রায়শই এটি ব্যবহৃত হত ... ডায়াল আউট করে একটি মডেম ব্যবহার করে।

নিজেকে দলে যোগ dialoutকরতে নিম্নলিখিত কমান্ডটি জারি করুন:

sudo usermod -a -G dialout $USER

-aপতাকাটি ভুলবেন না (প্রতিস্থাপনের পরিবর্তে গোষ্ঠী সংযোজন করার জন্য) অথবা আপনার সম্পূর্ণ ভিন্ন সমস্যা হবে have এটি idকোনও ফাইলে আউটপুটটির অনুলিপি তৈরি করার কারণ , তাই যদি আপনি গণ্ডগোল করেন তবে আপনার ব্যবহারকারীটি আগের মতো কী কনফিগার করা হয়েছিল তা আপনি জানেন।

তারপরে লগ আউট এবং লগ ইন করুন এবং এটি সেদিক থেকে কাজ করা উচিত।

Ptionচ্ছিকভাবে আপনি idআগে আউটপুট সংরক্ষণ করেছেন তার বিপরীতে আউটপুট ডাবল করতে পারেন ।


ধন্যবাদ জিপ্পি, চিন্তাশীল উত্তরের জন্য আমি নিজেকে দলে যোগ করেছি dialout, তবে সমস্যাটি এখনও অব্যাহত রয়েছে বলে মনে হচ্ছে। idকমান্ড থেকে আউটপুট দিয়ে আমি আমার প্রশ্নটি পরিবর্তন করেছি ।
ফিভারড্রিম

আপনার আপডেট থেকে আমার ধারণাটি হ'ল সমস্যাটির সঠিক কারণটি পরবর্তী ইস্যুতে স্থানান্তরিত হয়েছে। আপনি এটি সমাধানের পথে রয়েছেন। তুমি কি করলে cat /dev/ttyACM0? এটি একটি ত্রুটি নিক্ষেপ না?
জিপ্পি

না, ডিভাইস ফাইলটি খালি মনে হয়, যখন আমি catএটি করি।
ফিভারড্রিম

খালি ঠিক আছে, যতক্ষণ না আপনি ত্রুটি বার্তা না পান।
জিপ্পি

9

"শুধু sudo usermod -aG dialout <username>আমার পক্ষে কখনও কাজ করে না, এবং অবশেষে আমি এটি বুঝতে পেরেছিলাম যে আমার মেশিনে, /dev/ttyUSB0এই গ্রুপে রয়েছে serialএবং dialoutতাই নেই , তাই আমার ব্যবহারকারীর নামটি dialoutকিছুই করেনি।

# ls -l
# crw-rw---- 1 root serial 188, 0 Mar 31 20:52 /dev/ttyUSB0
                    ^^^^^^ (group-name)

পরিশেষে: sudo usermod -aG <group-name> <username>এটি আমার জন্য স্থির করে দিন।

বিব্রতকরভাবে, এটি স্পষ্টভাবে এখানে "SET THE PERMISSION" এর অধীনে উল্লেখ করা হয়েছে । দীর্ঘশ্বাস.


হ্যাঁ, এটি প্রকৃত মালিকানাধীন গ্রুপটি পরীক্ষা করার মতো। এছাড়াও ডিভাইস ফাইলটি ttyUSB # বা ttyACM # (বা তাত্ত্বিকভাবে কিছু হতে পারে) বোর্ড টাইপ, কার্নেল ড্রাইভার এবং শেষ পর্যন্ত udev বা যা নোড তৈরি করে তার উপর নির্ভর করে depending
ক্রিস স্ট্রাটন


0

এটা আমার সাথে ঘটে। আমার ক্ষেত্রে, আমি আরডুইনো সংস্করণটি আপগ্রেড করেছি এবং পছন্দগুলি ফাইলটি সমস্যা তৈরি করছে বলে মনে হচ্ছে। কেবলমাত্র ~ / .arduino /ferences.txt ফাইলটি মুছুন (আরডুইনো আইডিই বন্ধ রয়েছে)।

পদক্ষেপ:

  1. আরডুইনো আইডিই বন্ধ করুন
  2. এটি কার্যকর করুন:

    rm ~ / .arduino /ferences.txt

  3. আরডুইনো আইডিই চালু করুন

এটি আমার পক্ষে কাজ করেছে, আশা করি এটি অন্য কারও জন্য কাজ করে। আমি লিনাক্স মিন্ট 17 ব্যবহার করছি এবং আমি আরডুইনো 1.05 থেকে আরডুইনো 1.06 এ আরডুইনো আইডিই বের করে আপগ্রেড করেছি, আমি রেপোটিতে এটি ব্যবহার করছি না। (অবশ্যই, অন্যদের দ্বারা উল্লিখিত হিসাবে আপনার ব্যবহারকারীকে সংশ্লিষ্ট গ্রুপে যুক্ত করার পরে, তবে যদি তা আপনাকে এটি ব্যবহার করতে সহায়তা করে না)


সম্ভবত এর সাথে সম্পর্কিত, রুট হিসাবে চলমান সরঞ্জামগুলির এক পার্শ্ব প্রতিক্রিয়াটি হ'ল আপনি অস্থায়ী, কনফিগারেশন বা প্রকল্প ফাইলগুলি পিছনে রেখে যেতে পারেন যা আপনার অর্ডিনয়ে অ্যাকাউন্টটি সংশোধন বা পরিষ্কার করতে পারে না।
ক্রিস স্ট্রাটন
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.