Front Mic problem in Fedora 14

After upgrading to Fedora 14 I noticed that the built-in mic in my Dell D620 stopped working, after searching here and there I the problem is between ALSA and Pulseaudio, since alsa will show to capture devices “Mic” & “Front Mic” and Pulseaudio will use Mic as the default instead of Front Mic.

So I used “alsamixer” to set the correct capture source and that worked but after a reboot it was set back to Mic. Then I found about “alsactl” which should store the current setting by doing “alsactl store” but that did not work either since I think pulseaudio does not look into that.

Uninstalling pulseaudio as some people suggested solved the Mic problem but caused many other problems when playing many applications that want to play audio (like flash apps such as youtube and video apps…etc),  this is an ALSA problem that pulseaudio try to solve AFAIK.

The solution that I found was to use “amixer” which can be run from the command line with the parameters to set “Front Mic” as the capture source. Here is the full command for my device:

amixer -c 0 cset numid=6,iface=MIXER,name='Input Source' 1

Continue reading “Front Mic problem in Fedora 14”

lsof واخواتها (اوامر للنكس)

في هذا الموضوع ساتحدث عن بعض الاوامر اللتي اعتقد انها مهمة في للمساعدة في تشخيص وصيانة نظام اللنكس وجهاز الحاسب الذي يعمل عليه. يمكن تنفيذ هذه الاوامر كمستخدم عادي، لكن قد لاتكون النتائج كاملة ويجب تنفيذها كمستخدم رئيس (root) للحصول على جميع المعلومات.

اول هذه الاوامر هو lsof وهو اختصار (List Open Files) يعني عرض الملفات المفتوحة، والملفات في نظام اللنكس ليس محصورة بالملفات العادية كما تعرف في نظام الوندوز ولكنها تشمل المجلدات و المكتبات و ارتباطات الشبكة و انواع اخرى من الملفات الخاصه. وعند تنفيد الامر فسيقوم بعرض قائمة بجميع الملفات المفتوحه حاليا و اسم المستخدم الذي قام بفتح الملف ورقم العملية التي تم من خلالها فتح الملف (Process ID) و نوع الملف وحجمة (اذا كان ذو حجم معروف) و مسار الملف. القائمة في الغالب ستكون كبيره جدا ولذا تحتاج في الغالب لعمل تخصيص للتحكم في المخرجات.

احد الاستخدامات هي معرفة جميع البرامج المتصلة بالانترنت في حال الشك بان الجهاز قد يكون مخترقا او التاكد من حالة الاتصال بالمواقع او معرفة رقم المنفذ الذي يستخدمة خادم معين:

lsof -i

اوامر مشابهه

 ss -ap
 netstat -tuap

اما في حال اردت معرفة (او اغلاق) ملف مفتوح (مثلا قمت بفتح ملف في كرت ذاكرة خارجي Flash Drive ولكن عند محاولت ازالة الكرت اخبرك النظام بان احد الملفات لازال مفتوحا) فالتوصل للملف المفتوح ومعرفة البرنامج المتصل بذلك الملف عمليه سهلة جدا باستخدام lsof وهي كالتالي:
اولا نفرض ان مسار كرت الذاكرة هو /media/disk/ فتقوم بتنفيذ الامر التالي:

lsof | grep /media/disk/

فالامر الاول lsof سيعرض جميع الملفات المفتوحة لكن بدل من تعرض النتائج على الشاشه بل سوف ترسل للامر التالي grep و المسؤل عن عمليه الارسال تلك هي علامة الانبوب | (pipe) حيث ان نظام اللنكس عندما يجد ذلك الخط العمودي بين امرين فانه يمرر مخرجات الامر الاول كمدخلات للامر الثاني. اما الامر grep فان امر ترشيح (Filter) حيث ان يقوم بالبحت في المدخلات عن اي سطر يحتوي على الكلمة المذكورة بعد (في مثالنا هذا فانه يبحث عن /media/disk/) ثم يعرض السطر الكامل الذي يوجد به مثل ذلك النص.
فالناتج النهائي من تنفيذ هذا الامر هو قائمة باسم الملف او الملفات التي لاتزال مفتوحة من كرت الذاكرة والبرنامج الذي قام بفتح ذلك الملف ثم ما عليك سوى اغلاق ذلك البرنامج وستتمكن من ازالت الكرت بشكل امن. ولاغلاق البرامج يمكن استخدام الامر kill مع رقم العملية (Process ID) كالتالي:

kill <PID>  (اغلاق البرنامج بطيقة امنة)
kill -9 <PID>  (اغلاق اجباري للبرنامج)

اوامر اخرى من عائلة lsof هي:

lsusb يعرض قائمة باجهزة USB المتصلة حاليا بالجهاز
lspci يعرض قائمة كروت PCI المركبة بداخل الجهاز
lsmod يعرض قائمة بمعرفات الاجهزة التي تم تشغيلها
lspcmcia قائمة كروت PCMCIA المركبة بالجهاز
lshal قائمة الاجهزة المركبة في الجهاز (USB و PCIو غيرة)
lscpu معلومات عن المعالج المستخدم

مبادي نظام اللنكس

في هذا الموضوع سوف احاول تقديم بعض الاوامر المهمة لمستخدمي النظام المفتوح المصدر والمجاني لنكس. جميع هذه الاوامر تنفذ من خلال نافذة الاوامر (Terminal or Command Line) وفي الغالب ستجدها في جميع توزيعات اللينكس واليونكس كذلك مع بعض الاختلافات البسيطه احيانا.

* توضيح: ما اضعه بين علامتي <> يعني انه يجب استبداله بشي مناسب كاسم ملف او مجلد وما هو بين اقواس ( ) فهذا فقط شرح مني للامر المذكور ولايكتب اثناء التنفيذ.

سوف ابدأ بأحد الاوامر المهمة:

الامر: man
التعريف: عرض معلومات عن معظم اومر النظام وشرحها وطرق استخدامها
طريقة الاستخدام:

man <الامر>

الامر: ls
التعريف: لعرض الملفات الموجود في المجلد الحالي
طريقة الاستخدام:

ls (عرض الملفات والمجلدات فقط)
ls -l (الملفات على شكل قائمة مع عرض حجم الملف والصلاحيات)
ls -a (الملفات المخفية اللتي تبدا بنقطه)

كما يمكن دمج بعض الخيارات كدمج a و l للحصول على قائمة الملفات مع الملفات المخفية ولمزيد من الخيارات يمكن استخدام الامر man للحصول على المزيد من التفاصيل

الامر: cp
التعريف: نسخ ملف او ملفات الى مجلد اخر (او انشاء نسخه للملف باسم مختلف)
طريقة الاستخدام:

cp <file> <folder/>  (نسخ ملف الى مجلد)
cp <file> <newfile> (انشاء نسخة من الملف)

الامر: mv
التعريف: نقل ملف او ملفات الى مجلد اخر (او تغيير اسم الملف)
طريقة الاستخدام:

mv <file> <folder/>  (نقل ملف الى مجلد)
mv <file> <newfilename>  (تغيير اسم ملف)

الامر: rm
التعريف: مسح ملفات او مجلدات
طريقة الاستخدام:

rm <files>  (مسح ملفات)
rm -r <folder/>  (مسح المجلد و الملفات التي بداخله)

الامر: mkdir و rmdir
التعريف: انشاء و حذف مجلد (لحذف مجلد يشترط ان يكون فارغا، وان لم يكن فارغا فيستخدم الامر السابق)
طريقة الاستخدام:

mkdir <folder>  (انشاء مجلد)
rmdir <folder> (حذف مجلد)

الامر: ps
التعريف: عرض قائمة البرامج التي تعمل الان
طريقة الاستخدام:

ps  (سيعرض فقط البرامج التي تعمل في نافذة الاوامر)
ps aux  (جميع البرامج اللتي تعمل وتفاصيل مهمه اخرى)

الامر: df
التعريف: عرض معلومات عن المساحة المستخدمة والمتبقية من القرص الصلب لجميع الاقسام
طريقة الاستخدام:

df (عرض الارقام بالبايت)
df -h (عرض الارقام يصيغة اسهل للقرائة مثل ميقا قيقا)

الامر: free
التعريف: عرض معلومات عن استخدام الذاكرة والذاكرة الاحتياطية في القرص الصلب (swap)
طريقة الاستخدام:

free (عرض الارقام بالكيلو بايت)
free -m (عرض الارقام بالميقا بايت)

هذه بعض الاوامر وهناك الكثير وساقوم بكتابه موضوع اخر عن اوامر اخرى متقدمة

RPM Fusion Smart channels for Fedora

If you are a Fedora user then you must be using RPM Fusion and if you are not then please do since it provides you with many cool packages that Fedora doesn’t come with (like ATI & nVidia drivers, video and audio codec…etc). After you install RPM Fusion repositories (through their provided rpm packages which you can find about under the ‘Configuration’ in their website) you will be able to use it right away from the command line by using ‘yum’ or if you like the GUI (like I do) then it is PackageKit. However, there is one thing that I don’t like about PackageKit which is dealing with dependencies.PackageKit will only resolve dependencies when you apply the changes not while you are making them (selecting to install or remove a package). I find that annoying since sometimes when I select to remove some packages that I think I don’t need and  when I click on apply it will show the list of dependencies of all the selected packages and will not tell you which one of the selected packages is needed by those other packages and the only way to find out  is by removing packages one by one. Same thing when installing.
However, there is a solution to this problem, it is called Smart, Smart is a package manager that can be used to manage ‘rpm’ packages (and also apt as well). You can install Smart and the GUI from Fedora repos with this command:

yum install smart smart-gui

The biggest advantage of using Smart over PackageKit is the way it resolves dependencies. Smart will do that instantly while you are clicking to install a new package or trying to remove one. So for example if you are using Fedora with KDE and wanted to remove all Gnome packages and you clicked for example on ‘gnome-vfs2’ Smart will immediately look for all other packages that depends on this one and if any it will show you a windows of the list of all other packages that will be removed as a result of removing this one, among that list you will find ‘Firefox’, ‘vlc’ and other packages that I actually need, so that means this one is important and i will just hit cancel to keep it. Same thing when for example you want to install and try some application but you find that it needs many other packages to be installed as well.

However, it seems that Fedora and RPMfusion are not giving much attention to Smart and the channels files (channel = repo) are not updated for Fedora 14 (was also the case for F13 when it was released) so I decided to update those packages myself and maybe find a way to send them to Fedora and RPMFusion so they will sign them and add them to their main repositories.

Download the appropriate files for your system or the source if you wanna compile the rpms and sign them yourself (you will need to rerun Smart so it detects the changes):

Update: Since not much attention from Fedora and RPMfusion is giving to Smart and it is not supported anymore I stopped making the rpms for it.