ALSA উইকির মতে , " একাধিক ইনস্টলড কার্ডের জন্য একটি নির্দিষ্ট অর্ডার কীভাবে চয়ন করবেন " শিরোনামে এটি নিম্নে বলেছে:
কোন কার্ডটি কার্ড নম্বর 0, 1 এবং তাই মডিউল লোড অর্ডার দ্বারা ডিফল্টরূপে নির্ধারিত হয়। কোন কার্ডটি ডিফল্ট হয়ে যায় তা চয়ন করার জন্য এটি বিশেষভাবে কার্যকর।
তত্ত্বের জন্য তাই ইনস্টল করা কার্ডগুলির মধ্যে কোনটি কার্ড 0 হয়ে যায় তা চয়ন করা সম্ভব, এটির ড্রাইভার মডিউলটি প্রথমে লোড হয় কিনা তা নিশ্চিত করে default (দ্রষ্টব্য: এটি ধরে নেয় যে প্রতিটি সাউন্ড কার্ডের জন্য আলাদা ড্রাইভারের প্রয়োজন হয় you আপনার যদি একই ধরণের দুটি সাউন্ডকার্ড থাকে তবে দয়া করে পরবর্তী বিভাগে যান))
এটি অর্জনের দুটি উপায় রয়েছে, কার্ড ড্রাইভার মডিউলটির "পুরাতন" সূচক = বিকল্প, এবং এসএনডি মডিউলটির বিকল্প (এবং নতুন) স্লট = বিকল্প।
এটি এটি করার দুটি পদ্ধতির দলিল করে:
- পুরানো "সূচক =" পদ্ধতি
- আরও নতুন "স্লট =" পদ্ধতি
পূর্ববর্তীটি হ'ল জ্যাস্পার ইনস্টলেশন নির্দেশাবলী সুপারিশ করে। এটি বেশিরভাগ সমাধানের বিষয়েই কথা বলে। তবে এটি পুরানো পদ্ধতি এবং বর্তমানের আরও বেশি রস্পিয়ান জেসি চিত্রগুলিতে কাজ না করে।
উভয় পদ্ধতির সংমিশ্রণটিই আমার পক্ষে কাজ করেছিল।
প্রথমত, আপনার কার্ডগুলি কী অর্ডে লোড হয়েছে তা পরীক্ষা করে দেখুন:
$ cat /proc/asound/modules
0 snd_bcm2835
1 snd_usb_audio
গণনা কার্ডগুলি শুরু হয় 0
তাই ডিফল্ট bcm2835
প্রথমে লোড হয় এবং আমার ইউএসবি কার্ডটিতে যা আমার মাইক থাকে সেটিকে দ্বিতীয়বার লোড করা হয়।
আমার কার্ডগুলি পুনঃক্রম করতে আমি প্রথমে একটি ফাইল তৈরি করি /etc/modprobe.d/alsa-base.conf
। এটি যতক্ষণ না শেষ হয় ততক্ষণ তার নামকরণ করা যায় .conf
। আমি তখন নিম্নলিখিতগুলি যুক্ত করেছি:
# This sets the index value of the cards but doesn't reorder.
options snd_usb_audio index=0
options snd_bcm2835 index=1
# Does the reordering.
options snd slots=snd_usb_audio,snd_bcm2835
মন্তব্যে প্রতিটি লাইন কী করে তা ব্যাখ্যা করা উচিত। একবার আপনি এটি করেন, মনে হচ্ছে এটি কাজ করার জন্য আপনার মেশিনটি রিবুট করতে হবে।
একবার আপনি রিবুট করার পরে, আপনার ডিফল্ট কার্ডের সাথে কিছু অডিও রেকর্ড করতে সক্ষম হওয়া উচিত যা এখন আপনার মাইক হওয়া উচিত:
$ arecord temp.wav
এবং তারপরে এটি খেলুন, কার্ডটিকে 1 হিসাবে এবং ডিভাইসটিকে 0 হিসাবে উল্লেখ করুন যেখানে আপনার স্পিকার আউটপুটটি এমন হওয়া উচিত:
aplay -D plughw:1,0 temp.wav
আমি প্রাথমিকভাবে কেবল slots
এটির সাথে লাইন যুক্ত করেছি। এটি আমার ইউএসবি কার্ডটিকে ডিফল্ট কার্ড তৈরি করতে কাজ করেছে তবে এটি ভুল সূচিত হয়েছিল। উদাহরণস্বরূপ, একবার আমি এটি করেছিলাম, এটি আমার /proc/asound/modules
চেহারাটির মতো:
$ cat /proc/asound/modules
1 snd_usb_audio
2 snd_bcm2835
আদর্শভাবে, এটি দেখতে এটির মতো হওয়া উচিত:
0 snd_usb_audio
1 snd_bcm2835
এবং সে কারণেই আমি এটি index
অর্জনের জন্য পদ্ধতিটিও ব্যবহার করি ।