পালসোডিও / ডিবিএসের জন্য একটি নকল / ন্যূনতম এক্স সেশন শুরু করুন


13

আমি ডেস্কটপ এবং রাস্পবেরি পাই এর মধ্যে অডিও ভাগ করতে পুলসৌদিও ব্যবহার করি।

তবে, পালসোদিওর ডিবিএস দরকার, এবং ডিবিসের একটি এক্স সেশন দরকার। গ্রাফিকাল অধিবেশন ব্যতিরেকে, পলসৌদিও কেবল সিস্টেম মোডে চালাতে সক্ষম, যা আনুষ্ঠানিকভাবে পুনঃসমনযোগ্য নয়।

রাস্পবেরি পাই ছাড়াও এক্স সেশনের ব্যয় নাটকীয়ভাবে বেশি, তাই আমি এটিকে সবচেয়ে দক্ষ (কম ব্যয়বহুল) উপায়ে এড়াতে চাই।

আমি কীভাবে পলসৌদিওর কাছে ক্ষুদ্রতম এক্স সেশন শুরু করতে পারি?


উদেবকে অবশ্যই এক্সের দরকার নেই আমি পালসোডিও সম্পর্কে জানি না: এক্স এর অভাবে কী ব্যর্থ হয়? এটি কি ডি-বাসের সাথে সম্পর্কিত?
গিলস 'এস-অশুভ হওয়া বন্ধ করুন'

আমি এটি পড়েছি তবে এটি কেবল পালসৌদিও হতে পারে। এক্স পালসৌদিওর অনুপস্থিতিতে সিস্টেম ওয়াইড মোডে চালু করা হয়েছে, যার অর্থ প্রতি ব্যবহারকারী ব্যবহারকারীর কোনও সেশন নেই, যা অফিসিয়াল ওয়েবসাইট হিসাবে বলা খারাপ: freedesktop.org/wiki/Software/PulseAudio/Docamentation/User/…
কুর্সুস

দুঃখিত আমি ইউদেব এবং ডিবিএস মিশ্রিত, সম্পাদিত।
কুর্সুস

উত্তর:


11

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

Xvfb :1 -screen 0 1x1x8 &

এর পরে:

DISPLAY=:1 dbus-launch
DISPLAY=:1 pulseaudio --start

Xvfbডিসপ্লেটি উপলভ্য হওয়ার জন্য আপনাকে প্রথমে কিছুটা অপেক্ষা করতে হবে। আপনি xinitএক্স সার্ভার শুরু করতে ব্যবহার করতে পারেন এবং তারপরে এটি প্রস্তুত হয়ে ক্লায়েন্ট শুরু করতে পারেন । স্ক্রিপ্টে আপনি যে কমান্ডগুলি চালাতে চান তা রাখুন (নোটটি স্ক্রিপ্টটি প্রস্থান করলে এক্স সার্ভারটি প্রস্থান করবে):

#!/bin/sh
dbus-launch
pulseaudio --start
sleep 99999999

দিয়ে ভার্চুয়াল এক্স সার্ভারটি শুরু করুন

xinit /path/to/client.script -- /usr/bin/Xvfb :1 -screen 0 1x1x8

আপনি বুট করার সময় এটি চালাতে চাইলে ক্রোন থেকে শুরু করতে পারেন। চালান crontab -e(আপনার ব্যবহারকারী হিসাবে, মূল হিসাবে নয়) এবং লাইন যুক্ত করুন

@reboot xinit /path/to/client.script -- Xvfb :1 -screen 0 1x1x8

আপনি যদি এই সেশনটি হত্যা করতে চান তবে xinitপ্রক্রিয়াটি মেরে ফেলুন।


বিরক্ত করার জন্য দুঃখিত আমি বুটে পলসৌদিও স্টার্ট কমান্ডটি (স্বয়ংক্রিয়ভাবে আপনার উদাহরণের 4 র্থ লাইন) সম্পাদন করতে সংগ্রাম করছি। আমি ভাবছি এটি যদি ডিসপ্লে সম্পত্তি হয়। আমি rc.local, /etc/init.d, rcS চেষ্টা করেছিলাম, তবে স্ক্রিপ্টটি কখনও নাড়ি দিয়ে শুরু করে। আমি যখন এসএসএইচ এর মাধ্যমে আমার স্ক্রিপ্টটি চালিত করি তখন এটি পুরোপুরি কার্যকর হয়। আপনি পরামর্শ দিতে পারলে আমি খুশি হব।
কুর্সুস

এক্স সংযোগ গ্রহণ করার জন্য প্রস্তুত হওয়ার আগে এক্সভিএফবিকে কিছু সেটআপ করতে হবে, সুতরাং যদি পরবর্তী কমান্ডগুলি খুব শীঘ্রই চালিত হয় তবে আপনি এক্স সার্ভারের সাথে সংযোগ স্থাপনে ব্যর্থ হতে পারেন। আপনি Xvfb আরম্ভ করার জন্য xinit ব্যবহার করে সন্ধান করতে পারেন এবং .xinitrc এ এই আদেশগুলি রেখে দিতে পারেন যাতে এক্সভিএফবি তাদের জন্য প্রস্তুত হওয়ার পরে xinit কেবল সেগুলি শুরু করে।
অ্যালাঙ্ক

আমি দুঃখিত আপনি ভাল হয়ে উঠেনি। আমাকে .xinitrc দিয়ে Xvfb শুরু করতে হবে? এখনই এটি আরসি.লোকাল দিয়ে শুরু হয়েছে। তা হলে আমি পিএ কমান্ডটি কোথায় রাখব? আমি .xinitrc এ পিএ কমান্ড শুরু করার চেষ্টা করেছি তবে ভাগ্য নেই, আমি কিছু মিস করছি।
কুর্সুস

@kursus আপনার এই ব্যবহারকারীকে আপনার ব্যবহারকারী হিসাবে চালানো দরকার। আপনি এটি কোনও ক্রন্টাব দিয়ে করতে পারেন @reboot। এছাড়াও অ্যালাঙ্ক ঠিক আছে, এক্সভিএফবি শুরু করার পরে দেরি হওয়া দরকার এবং এক্সনিট এই সমস্যাটি সমাধান করে। আমার সম্পাদনা দেখুন।
গিলস

সম্পাদনার জন্য ধন্যবাদ, এটি এখন আরও পরিষ্কার। তবে আমি একটি অজানা বিকল্প পেয়েছি: এক্সভিএফবি xinit কমান্ড চালু করার সময়, স্ক্রিপ্ট কল সহ বা ছাড়াই।
কুর্সুস

1

গতকাল আমারও একই সমস্যা ছিল, হেডলেস পরিবেশে DBus এর সাথে রাস্পবেরিপি 0 ডাব্লু এর জন্য পালস অডিও ব্যবহার করে এক্স 11 ছাড়া ইয়োটো দিয়ে তৈরি করুন এবং কোনও সিস্টেমড নেই, আপনি পালসওডিও চালানোর আগে আপনাকে চালনা এবং ডাবাস রফতানি করতে হবে।

if test -z "$DBUS_SESSION_BUS_ADDRESS" ; then
     echo "Starting dbus" 
     export $(dbus-launch)
fi

ইত্যাদি

চালান pulseaudio -vসেখানে আপনার কনফিগ অন্য সমস্যা যদি বার করো। --systemসুইচ ব্যবহার করবেন না কারণ এটি সঠিক হবে না।

pulseaudio -D --disallow-exit

0

স্ক্রিপ্টটি ব্যবহারের চেয়ে ইওএফ পৌঁছানো থেকে রক্ষা করার জন্য আরও মার্জিত উপায় আছে sleep 99999999!

sleep infinityপরিবর্তে ব্যবহার করুন। এটা কি বলছেন...

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