সিরিয়াল বন্দরে অনুমতি পরিবর্তন করা হচ্ছে


54

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

এটি আইডিই সঠিকভাবে কাজ করতে পেরেছিল, তবে আমি সঠিক সিরিয়াল বন্দরটি ব্যবহার করার ক্ষমতা হারিয়েছি। ডেভ ফোল্ডারে, আমার যে বন্দরটি দরকার সেটিকে অনুমতি হিসাবে তালিকাভুক্ত করা হয়েছে 166 Someone কেউ (যিনি এখন আর আমার সহায়তার জন্য এই অঞ্চলে নেই) 66 666 এ অনুমতিগুলি অদলবদল করে, যা এটি সমস্ত গৌরবময়ভাবে কাজ করে।

যাইহোক, আমি আমার কম্পিউটার পুনরায় চালু করার সাথে সাথেই এটি আবার ফিরে গেছে এবং আমি যদি এখন এই আদেশটি ব্যবহার করার চেষ্টা করি:

sudo chmod 666 ttyACM0

কিছুই ঘটেনি. কোনও ত্রুটি বার্তা নেই, তবে কোনও অনুমতিও পরিবর্তন হয় না।

আমি কীভাবে এটি পরিবর্তন করতে পারি এবং কীভাবে স্থায়ীভাবে এটি পরিবর্তন করতে পারি।

এই প্রশ্নটি যদি অতিরিক্ত সরল বা অস্পষ্ট হয় তবে আমি ক্ষমা চেয়ে নিচ্ছি, আমি একজন উবুন্টু নুব, এবং আমি প্রতিক্রিয়া জানাতে চাই না!


1
sudo chmod 666 / dev / ttyACM0 এই পৃষ্ঠায় একমাত্র পরামর্শ যা আমার 14.04 বিটা 2 লাইভ পরিবেশে কাজ করেছিল। ধন্যবাদ!

উত্তর:


76

অনুমতিগুলির সাথে ইস্যুটি /dev/ttyACM0নিজেকে dialoutগ্রুপে যুক্ত করে স্থায়ীভাবে সমাধান করা যেতে পারে । গ্রুপ পরিবর্তন স্বীকৃত হওয়ার আগে আপনাকে লগআউট করতে হবে এবং তারপরে আবার লগ ইন করতে হবে।

আপনি এটি দিয়ে এটি করতে পারেন sudo usermod -a -G dialout $USER


আমি এ সম্পর্কে জানতে পেরেছিলাম যখন আরডুইনো আইডিই "ডেইলআউট গ্রুপ" এ নিজেকে যুক্ত করতে রুটটি দিতে বলেছিল। এখন আমি জানি এটি কি।
উফোগ্যু

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

এছাড়াও, "ব্যবহারকারী 247020" এর উত্তর আমাকে আরেকটি সমাধান দিয়েছে: জিইউআই সরঞ্জাম "ব্যবহারকারী এবং গোষ্ঠী" খুলুন এবং নিজেকে একটি "প্রশাসক" করুন make এটি আপনাকে অন্যদের মধ্যে "ডায়ালআউট" গ্রুপে (যেমন "মোডেমগুলি ব্যবহার করুন") যোগ করবে।
ধনী

ইউজারমড -a -জি ডায়ালআউট পাই ঠিকঠাক কাজ করে, sudo chgrp ডায়ালআউট / dev / ttyS0 এর পরে এবং ভাল কাজ করে তবে আমি পুনরায় বুট করার সময় সমস্ত কনফিগারেশন হারিয়ে যায়। আমি রাস্পবেরি পাই 3
J261

কোনও স্টার্টআপ স্ক্রিপ্টে পুনরায় করতে আপনার যে কোনও কমান্ড যুক্ত করুন। সুতরাং বাশ বা / ইত্যাদি / প্রোফাইল বা init।
Rinzwind

20

আমি রিনজউইন্ডের পরামর্শটি কাজ করতে পারিনি , কারণ এটি অভিযোগ করেছে যে ব্যবহারকারীর অ্যাকাউন্টটি ইতিমধ্যে বিদ্যমান। পরিবর্তে, উবুন্টু সহায়তা উইকিতে বর্ণিত একটি বিদ্যমান ব্যবহারকারীকে ( terrik) একটি বিদ্যমান গোষ্ঠীতে ( dialout) যুক্ত করতে আমি এই আদেশটি ব্যবহার করেছি ।

sudo adduser terrik dialout

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

groups terrik

10

আমি টেরিকের উত্তরটি কাজ করতে পারি না , তবে আমি যদি এই সামান্য সামঞ্জস্যের পথটি তৈরি করি ttyACM0

sudo chmod 666 /dev/ttyACM0

একটি মন্তব্য হিসাবে পোস্ট করতে হবে কিন্তু আমি এখনও এর জন্য অধিকার নেই ...


1
আরডুইনোগুলিকে প্লাগ ইন করা এবং পুনরায় প্লাগ করার সময় অনুমতিগুলি পুনরায় সেট হয়ে গেছে বলে মনে হয়
ব্যবহারকারী 1063287

কাজ করে না. :(
ফ্রেডি

এটি পাশাপাশি কাজ করে। তবে পুনরায় প্লাগিংয়ে পুনর্নির্মাণের জন্য উদেব নিয়মের প্রয়োজন
পাইওভার

আমি চেষ্টা করেছি sudo chmod 666 /dev/ttyACM0এবং আবার শুরু করার সময় এটি কাজ করে না। কারো কাছে কি কোন সমাধান আছে?
ব্যবহারকারী 1063287

হুম এইগুলি কাজ করে .... একটি স্টার্টআপ স্ক্রিপ্টে কমান্ডটি যুক্ত করুন। (/ দেব বুটে পুনরায় তৈরি করেছেন যাতে আপনার প্রতিটি কমান্ডটি পুনরায় করা দরকার)
রিনজউইন্ড

10

আর একটি সম্ভাবনা হ'ল /etc/udev/rules.d/ডিরেক্টরিতে একটি বিধি ফাইল তৈরি করা । আমার একই সমস্যা ছিল এবং আমি 50-myusb.rulesএই বিষয়বস্তু দিয়ে উপরের ডিরেক্টরিতে ফাইল তৈরি করেছি :

KERNEL=="ttyACM[0-9]*",MODE="0666"

নোট করুন যে এটি ttyACM সকেটের সাথে সংযুক্ত যে কোনও ডিভাইসকে পড়ার / লেখার অনুমতি দেয়। পড়ার / লেখার অনুমতি পেতে যদি আপনার কেবলমাত্র নির্দিষ্ট ডিভাইসের প্রয়োজন হয় তবে আপনাকে অবশ্যই পরীক্ষা করতে হবে idVendorএবং idProduct। আপনি lsusbদু'বার কমান্ড চালিয়ে আপনার ডিভাইসটি সংযুক্ত না করে এবং এটি সংযুক্ত হওয়ার পরে একবার খুঁজে পেতে পারেন , তারপরে আউটপুটটিতে অতিরিক্ত লাইনটি পর্যবেক্ষণ করুন। সেখানে আপনি কিছু দেখতে পাবেন Bus 003 Device 005: ID ffff:0005। এই ক্ষেত্রে idVendor = ffffএবং idProduct = 0005। আপনার আলাদা হবে। আপনি এখানে নিয়ম ফাইলটি সংশোধন করার চেয়ে:

ACTION=="add", KERNEL=="ttyACM[0-9]*", ATTRS{idVendor}=="ffff", ATTRS{idProduct}=="0005", MODE="0666"

এখন কেবলমাত্র এই ডিভাইসটির অনুমতি পেয়েছে। উদেব বিধিগুলি লেখার বিষয়ে আরও জানতে এটি পড়ুন


2

সিস্টেম / ব্যবহারকারী এবং গোষ্ঠীগুলিতে যাওয়ার চেষ্টা করুন এবং টিটিওয়াই গ্রুপে আপনার ব্যবহারকারীর নাম বক্সটি পরীক্ষা করে দেখুন।


[Errno 13] Permission denied: '/dev/ttyACM0'ttyগ্রুপের পাশাপাশি ব্যবহারকারীও dialoutগ্রুপে রয়েছে। লিনাক্স মিন্ট 17.1।
ব্যবহারকারী 1063287

1
@ ব্যবহারকারী 1063287 চেষ্টা করুনsudo chmod a+rw /dev/ttyACM0
ভ্লাদিমির এস।
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.