আমি কীভাবে স্থায়ীভাবে / dev / vchiq অনুমতি ত্রুটিগুলি ঠিক করতে পারি?


21

আমি একটি গ্রাফিকাল অ্যাপ্লিকেশন লিখতে কাজ করছি যা পাই এর জিপিইউ ব্যবহার করে এবং * failed to open vchiq instanceআমার প্রোগ্রামগুলি চালানোর সময় আমি ক্রমাগত ত্রুটি পাই । এটি সাধারণত একটি দ্বারা স্থির করা হয় sudo chmod 777 /dev/vchiq, তবে (1) এটি খুব সুরক্ষিত ফিক্স যা অবশ্যই ব্যবহারকারীর মালিকানাধীন ডিভাইসগুলিতে স্থাপনের পক্ষে উপযুক্ত নয় এবং (২) প্রতিটি রিবুটের পরে এটি পুনরায় সেট হয়ে যায়।

আমি কীভাবে আমার /dev/vchiqসমস্যাগুলি "সঠিক উপায়ে" স্থির করে, সুরক্ষা সমস্যাগুলি প্রবর্তন না করে সমাধান করতে পারি ?

উত্তর:


28

আমি নিজেকে videoগ্রুপে যুক্ত করে একটি অনুরূপ সমস্যা সমাধান করতে সক্ষম হয়েছি (আমি ডিফল্ট ব্যবহারকারী ব্যবহার করছিলাম না)। হতে পারে এটি সাহায্য করতে পারে।

আদেশটি হ'ল:

sudo usermod -a -G video $(whoami)

পরিবর্তনটি কার্যকর হওয়ার জন্য আপনাকে লগ আউট করতে হবে এবং আবার প্রবেশ করতে হবে।


2
এটি আমার জন্য কাজ করেছিল ( sudo usermod -a -G video $(whoami)), আমি সুপারিশ করব (সুরক্ষা উদ্দেশ্যে) ক্যামেরা অ্যাক্সেসের প্রয়োজন হবে এমন কোনও প্রক্রিয়াটির জন্য একটি উত্সর্গীকৃত ব্যবহারকারী যুক্ত করতে এবং কেবলমাত্র সেই ব্যবহারকারীকেই videoগ্রুপে যুক্ত করতে।
n8henrie

3
রিবুট করার পরে, এই স্থায়ী সমাধানটি সূক্ষ্মভাবে কাজ করে এবং তুলনামূলকভাবে নিরাপদ।
সার্জ স্ট্রোব্যা্যান্ড্ট

পুনরায় বুট করা দরকার ....
মোসা বালুচ

2
এটি আমার জন্যও কাজ করেছিল! ধন্যবাদ। পুনরায় বুট করা প্রয়োজনীয় নয়, লগ আউট এবং আবার লগ ইন করা যথেষ্ট।
টুভোকি

1
এটি করার উপযুক্ত এবং নিরাপদ উপায়। আপনার যদি এই ফাংশনের জন্য ডেডিকেটেড ব্যবহারকারী থাকে তবে আপনি সেই ব্যবহারকারীর নাম দিয়ে $ (হোয়ামি) প্রতিস্থাপন করে এগুলি যুক্ত করতে পারেন।
আইসমেজ

8

আপনি ডিভাইসে নির্দিষ্ট অনুমতি সেট করতে একটি udev নিয়ম তৈরি করতে পারেন। রুট হিসাবে আপনি করতে পারেন:

প্রতিধ্বনি 'SUBSYSTEM == "vchiq", GROUP = "ভিডিও", MODE = "0660"'> /etc/udev/rules.d/10-vchiq-perifications.rules
ইউজারমড -a -G ভিডিও আপনার ইউনিকপ্রাইজযুক্ত ব্যবহারকারী ser

এটি সমস্যার সমাধান করে না। এটি চালানোর পরে, আমি এখনও ত্রুটি পেয়েছি।
সেরিন

আমি সন্দেহ করি যে অনুমতিগুলি একটি উচ্চতর (এভাবে চলমান ক্রমে পরে) উদেব নিয়মে করা হয়েছে যা এই পরিবর্তনটিকে পূর্বাবস্থায় ফেলে। আমার (ডেবিয়ান) পিসিতে সিস্টেম সরবরাহিত ফাইলটি /lib/udev/rules.d/91-permissions.rulesতাই আমি এটি আরও উচ্চতর (এবং স্থানীয় নাম হিসাবে এটি স্থানীয় নাম হিসাবে চিহ্নিত করার জন্য স্থানীয় অন্তর্ভুক্ত করতে পারে) লিখতে চেষ্টা করব, যেমন:echo `SUBSYSTEM=="vchiq",GROUP="video",MODE="0660"\' > /etc/udev/rules.d/92-local-vchiq-permissions.rules
স্লাইসভেন

আমি অনুমতি অস্বীকার পেয়েছি, কী ভুল হতে পারে?
dmigo

আমার জন্য পুরোপুরি কাজ করে। মার্জিত সমাধানটি যদি ব্যবহারকারীর পক্ষে যথেষ্ট না হয়
এক্সেল অ্যাডভেন্টো

5

আপনি SUIDঅনুমতি সেট করতে পারে

sudo chmod u+s /dev/vchiq

এটি কি করে?
চৌদ্দ

1
যখন একটি এক্সিকিউটেবল ফাইলকে setuidঅ্যাট্রিবিউট দেওয়া হয় , তখন সিস্টেমের সাধারণ ব্যবহারকারীরা যারা এই ফাইলটি কার্যকর করার অনুমতি পেয়েছেন তারা এই ফাইলটির মালিকানাধীন ব্যবহারকারীদের (বিশেষত রুট) অধিকার পান। আপনি এটি আপনার প্রোগ্রামে সেট করতে পারেন (ধরে নিলে এটি মূলের মালিকানাধীন)। হিসাবে /dev/vchiqগোষ্ঠীর আওতাধীন videoঅন্য কোনো বিকল্প সেট হয় setgidএবং তাই আপনি আপনার প্রোগ্রামের উপর গ্রুপ video
মিলিওয়েজ

1
অর্থাৎ না সাহায্য করেছিল যদিও ব্যবহারকারী www-dataরয়েছে videoগ্রুপ, কিন্তু আমি সঙ্গে সফল chmod a+rw /dev/vchiqRaspbian প্রসারিত করেন।
জানু তুরো

0

যোগ

start_x=1 
gpu_mem=256

থেকে boot/config.txtতারপর রানsudo raspistill -o cam.jpg

অবশ্যই আমি রাস্পিসটিলের জন্য পথ জুড়েছি। উবুন্টুতে এটি আমার জন্য কাজ করেছিল।


আমি দেখতে পাচ্ছি না কীভাবে এটি ওপি-র প্রশ্নের উত্তর দেয় - আপনি কীভাবে রাস্পবেরি পাইতে কাজ করে তা ব্যাখ্যা করার জন্য আপনার উত্তরটি প্রসারিত করতে পারেন?
স্লাইভেন

0

আপনি যদি কোনও ব্রাউজারের মাধ্যমে অ্যাক্সেস করা কোনও পিএইচপি স্ক্রিপ্ট থেকে রস্পস্টিল চালিয়ে যাচ্ছেন তবে আপনাকে প্রবেশ করতে হবে: sudo usermod -a -G video www-data অ্যাপাচিকে প্রয়োজনীয় অনুমতি দেওয়ার জন্য।

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