সিরিয়াল পোর্ট টার্মিনাল> / dev / ttyS0 খুলতে পারে না: অনুমতি অস্বীকৃত


19

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

মেমি পরীক্ষাটি করে এবং আমার 512MB লাঠির একটিতে (2 টি) ব্যর্থ হয়েছে তা খুঁজে পেয়েছে। আমি খারাপটি সরিয়ে ফেললাম এবং উবুন্টু ইনস্টল করতে সক্ষম হয়েছি তবে এটি অলস।

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

Cannot open /dev/ttyS0: Permission denied

আমি সিরিয়াল পোর্ট টার্মিনাল, বা জুবুন্টুর সাথে সমতুল্য ব্যবহার করতে সক্ষম হতে চাই যাতে আমি আমার কেপিসি 3 প্যাকেট টার্মিনালটি ব্যবহার করতে পারি, আমার কম্পিউটারের পিছনে কম পোর্টের সাথে সংযোগ করতে পারি।

কোন ধারনা?

উত্তর:


39

টিটিআই ডিভাইসগুলি "ডায়ালআউট" গোষ্ঠীর অন্তর্ভুক্ত, আমি সন্দেহ করি আপনি এই গ্রুপের সদস্য নন এবং তাই আপনাকে / dev / ttyS0 এ অ্যাক্সেস বঞ্চিত করা হয়েছে, সুতরাং আপনাকে নিজেকে এই গ্রুপে যুক্ত করা দরকার।

আপনি যদি এই গ্রুপের সদস্য হন তবে প্রথমে পরীক্ষা করুন:

groups ${USER}

..এটি আপনার সাথে সম্পর্কিত সমস্ত গ্রুপের তালিকা তৈরি করবে। আপনি যদি ডায়ালআউট গ্রপের অন্তর্ভুক্ত না হন তবে নিজেকে এতে যুক্ত করুন, উদাহরণস্বরূপ:

sudo gpasswd --add ${USER} dialout

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


এমনকি আইডি 1000 সহ ডায়ালআউট গোষ্ঠীর ব্যবহারকারীরা পড়তে সিরিয়াল পোর্টটি খুলতে পারে না। রিবুট করার পরে। তবে, যখন আমি একই কার্যকরকরণের জন্য sudo ব্যবহার করি, তখন এটি খুলতে সক্ষম হয় /dev/ttyS0। সম্ভাব্য কারণ কী?
টমিলভ আনাতোলি

2
@ ওরিয়েন্ট আমার একই সমস্যা ছিল এবং এটি গ্রুপটি dialoutসংজ্ঞায়িত না হওয়ার কারণে হয়েছিল। দৌড়ানোর newgrp dialoutফলে সমস্যাটি স্থির হয়েছে।
TheGr8_Nik

@ দ্য জিআর ৮_নিকে ধন্যবাদ আপনার সমাধান উবুন্টু 16.04 এ কাজ করেছে। কোনও রিবুট জড়িত নেই। ডিফল্টরূপে, এই সিস্টেমে গ্রুপের নাম ছিল না dialout; groupsকমান্ডের মাধ্যমে পরীক্ষা করা হয়েছে । এমনকি dialoutকমান্ডের মাধ্যমে গোষ্ঠীতে ব্যবহারকারীর নাম সংযুক্ত করার পরে sudo usermod -a username -G dialout। ব্যবহার করার পরে newgrp dialout, এই কমান্ডটি esptool.py -p /dev/ttyUSB0 flash_idকাজ করেছিল।
সান বিয়ার

11

আমার জন্য একমাত্র সমাধানটি হ'ল: (প্রতিবার আমি মেশিনটি বুট করি)

sudo chmod 666 /dev/ttys0

এটি ইনস্টলেশন করার সময় ঠিক করা দরকার। আমি 15.10 এ আছি এবং 16.04 এলটিএস চেষ্টা করেছি, এখনও সেখানে একই। যেমন একটি সাধারণ ফিক্স মত মনে হচ্ছে।

পুরানো সংস্করণ 10.04LTS এ সমস্যা নেই।


2
রাস্পবেরি পাই 3 সহ এই কাজটি কিন্তু আমি পুনরায় বুট করার পরে অনুমতিগুলি হারিয়ে যায়।
J261

1
ডায়ালআউট করার জন্য আমার ব্যবহারকারীর সাথে অনুমতি যুক্ত করার কাজটি বেশ সহজ, খুব সহজ।
DRJ101

6

আপনি কেবল এই আদেশটি ব্যবহার করতে পারেন:

sudo adduser $USER dialout

এটি বর্তমান ব্যবহারকারীকে ডায়ালআউট গ্রুপে যুক্ত করবে। এটি কার্যকর হওয়ার জন্য লগইন করুন এবং আউট আউট করুন।


4

উবুন্টু 18.04-তে, আমি নিম্নলিখিত কমান্ড দিয়ে এই সমস্যাটি সমাধান করেছি:

sudo usermod -a -G tty $USER
sudo usermod -a -G dialout $USER

এবং এটির পরে, পুনরায় বুট করুন।

আপনার যদি এখনও সমস্যা থাকে তবে এর সাথে ডিবাগ করার চেষ্টা করুন:

strace -ff <COMMAND> > strace.txt 2>&1

এবং স্ট্রেসে "অস্বীকৃত" সন্ধান করুন।


3

বিভিন্ন ফোরামে চারদিকে নজর ছিল এবং এটি অনুমতি সম্পর্কিত কোনও বাগ হতে পারে। আমি কীভাবে সমস্যাটি ঘুরে দেখলাম (দীর্ঘ সংস্করণ)। আপনার দুটি cuএবং setserialপ্যাকেজ ইনস্টল করা দরকার।

তিনটি টার্মিনাল ট্যাবগুলিতে পর্যবেক্ষণ করা আউটপুট থেকে # tail -f /var/log/messages আমাদের কী আছে কিনা তা আমরা কীভাবে জানি /dev/ttyUSB0

দ্বিতীয় ট্যাবে, সহজেই ls -lএই ডিভাইসটির অনুমতি এবং এটির আইডিটি 'ডায়ালআউট' হয় তা দেখতে একটি লুপ চালান । এটি সমালোচনামূলক কিছু। কোনও কারণে, আপনার ব্যবহারকারী এই জিআইডিটি ব্যবহার করতে হবে cu, তাই ...

তৃতীয় ট্যাবে, মূল হিসাবে, # newgrp dialout(ডায়ালআউটের জিআইডি-র সাথে সামঞ্জস্য রেখে) করেছেন। এর সাথে পরীক্ষিত # touch /tmp/anything... ls -lএই ফাইলটি করার ফলে এটি ডায়ালআউট গোষ্ঠীর সাথে মূল দ্বারা তৈরি হয়েছে, তাই আমরা প্রস্তুত ... # cu -l /dev/ttyUSB0 আমার ক্ষেত্রে আমার প্রত্যাশিত প্রম্পটটি দেখতে আবার ফিরে আসতে হবে, অন্য ক্ষেত্রে গতির প্রয়োজন হতে পারে নির্দিষ্টভাবে.


প্রকৃত টুকরা যে আমাকে সাহায্য ছিল: কিছু কারণে, আপনার ব্যবহারকারী হবে এই GID ব্যবহার ছেদ করতে হবে, তাই ... । অসংখ্য ধন্যবাদ.
ΤΖΩΤΖΙΟΥ

1

সমাধান এখানে:

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

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

এবারও কাজ হয়নি। এমনকি সফ্টওয়্যার কেন্দ্রে সফ্টওয়্যারটির অনুমতি বিকল্পগুলি সিরিয়াল পোর্টটি "সংযোগ বিচ্ছিন্ন" দেখায়। সুডো ব্যবহার করে টার্মিনাল উইন্ডো থেকে সমস্ত অনুমতি ম্যানুয়ালি মঞ্জুর হওয়ার পরেও বন্দরে অনুমতি দেওয়ার কোনও বিকল্প নেই।

আমি সফ্টওয়্যার কেন্দ্র থেকে আরডুইনো আইডিই আনইনস্টল করার এবং ওয়েব দর্শন থেকে এটি ইনস্টল করার সিদ্ধান্ত নিয়েছি, তাই আমি করেছি। এবার আমি ইনস্টল ফাইলগুলি পড়ি, কেবল এটি সিরিয়াল পোর্টের জন্য অনুমতিগুলির উল্লেখ আছে কিনা তা দেখার জন্য, ***** অবশ্যই তা করেছে! ****** সমস্ত বন্দর পুরো অ্যাক্সেস অনুমতি, বোর্ড জুড়ে ব্যবহারকারীর অ্যাক্সেস সহ সেট করা আছে। দেখা গেল এই উত্তরটি ছিল। আরডুইনো-লিনাক্স- setup.sh ফাইলটি চালানোর পরে আরডুইনো সরবরাহ করে, সমস্ত সিরিয়াল বন্দর সমস্যাগুলি সমাধান করা হয়েছিল। নিম্নলিখিতটি arduino-linux-setup.shফাইলের একটি অংশ;

echo ""
echo "******* Add User to dialout,tty, uucp, plugdev groups *******"
echo ""

sudo usermod -a -G tty $1
sudo usermod -a -G dialout $1
sudo usermod -a -G uucp $1
sudo groupadd plugdev
sudo usermod -a -G plugdev $1


acmrules () {

    echo ""
    echo "# Setting serial port rules"
    echo ""

    cat <<EOF
    "KERNEL="ttyUSB[0-9]*", TAG+="udev-acl", TAG+="uaccess", OWNER="$1"
   "KERNEL="ttyACM[0-9]*", TAG+="udev-acl", TAG+="uaccess", OWNER="$1"
   EOF

}

সুতরাং আপনি দেখতে পাচ্ছেন এমনকি কার্নেলও প্রভাবিত হয়েছে। আমার পরামর্শ:

আরডুইনো আইডিয়া ওয়েবসাইট থেকে ইনস্টল করুন। সফ্টওয়্যার সেন্টারটি মেরামত না করা অবধি এই সময়ে উপেক্ষা করুন। হ্যাঁ সফ্টওয়্যার সেন্টার ইনস্টল করার সময় এবং পরে চিরকালের জন্য সিরিয়াল বন্দরে পার্মিশনগুলি মঞ্জুরি দিচ্ছে না।

সমস্যা সমাধান!


0

আমার ক্ষেত্রে সমস্যাটি এখনও বিদ্যমান আছে, এমনকি আমি যখন আমার ব্যবহারকারীকে গোষ্ঠীতে যোগ করেছিলাম তখনও:

সুতরাং যখন আমি ব্যবহার করি:

sudo gpasswd --add ${USER} dialout

এবং যখন আমি টাইপ করব: groupsআমি এই ফলাফল পেয়েছি:

ilyahoo adm cdrom sudo dip plugdev lpadmin sambashare

তবে আমি টাইপ id -Gn ilyahooকরার সময় পুটপুটটি হ'ল:

ilyahoo adm tty dialout cdrom sudo dip plugdev lpadmin sambashare 

আমি জানি যে এমন একটি সমস্যা আছে যা আমি জানি না এটি কী সততার সাথে।

সমাধান পেতে আমি কেবল টাইপ করেছি

newgrp ilyahoo

এবং সমস্যাটি স্থির হয়েছিল।


ইলিয়াহুকে জিজ্ঞাসাবাদুতে স্বাগতম! আমাদের গাইড লাইন অনুযায়ী পোস্ট ফর্ম্যাট করার চেষ্টা করুন। আরও পঠনযোগ্য পদ্ধতিতে আউটপুট ফর্ম্যাট করার চেষ্টা করুন। ধন্যবাদ
abu_bua

1
@ বাবু_বায়া দয়া করে কমান্ড আউটপুটটির জন্য কোড ফর্ম্যাটিং ব্যবহার করুন, উদ্ধৃতি বিন্যাসকরণ নয়।
মুড়ু

0

উত্তরটি সহজ। ইউএসবি পোর্টে অ্যাক্সেস পেতে আপনার ব্যবহারকারীকে দুটি গ্রুপে যুক্ত করতে হবে। এই দলগুলো হয় dialoutএবং tty:

sudo usermod -a -G dialout <user>
sudo usermod -a -G tty <user>

<user>এই কমান্ডগুলিতে প্রকৃত ব্যবহারকারীর নামটি প্রতিস্থাপন করুন ।

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