Home Previous Up Next4.1 تعريف العتاد
حول
المحتويات
مشاريع
ثواب
مقالات
تنزيل
English

4.1 تعريف العتاد

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

اقتباسات هذا الفصل:

  • "لأنكم تريدون أن تكسبوا اخبارات قياس الأداء التسويقية وليس أن تبيّنوا أن الطراز الخاص بكم له أي قيمة في العالم الواقعي أياً كانت. لأنكم تحفزون الأشخاص ذوي الصلاحيات المالية على اتّخاذ قرارات غبية وغير منطقية بناءً على بيانات وضعت في غير مكانها."
        -- Rodger Donaldson يتحدث عن اخبارات قياس الأداء على LKML.
  • "النصيحة الوحيدة هي لا تفعل ذلك"
        -- Alan Cox يقدم النصائح فيما يتعلق بالتعريفات دون مصدر على LKML.
  • "حقيقة أن الكود الذي يحلل ويفسر إدارة الطاقة بواسطة ACPI أكثر من اللازم لتوجيه السير في العمود الفقري للإنترنت، ترشدنا إلى أن هناك شيئاً ما خطأ إما في محددات معايير ACPI أو في الأجهزة التي تطبقها أو كلاهما."
        -- Alan Cox على LKML.

محتويات هذا الفصل:

4.1.1 مقدمة

تستطيع نواة لينكس التعامل مع مختلف القطع دون تركيب برنامج تعريف لمعظم البطاقات (لنقل بطاقة شبكة مثلاً) ولتوفير الذاكرة لا يقوم لينكس بتحميل كل التعريفات بل فقط تلك المطلوبة (الأمر الذي يقوم بذلك هو modprobe) انظر فصل 4.3 نظرة تشريحية ولكن المطلوب هو إخبار البرنامج التطبيقي بأن تلك البطاقة دون سواها هي التي تريد استعمالها (بطاقة الإيثرنت الأولى eth0) . وأيضا يستطيع XFree86 التعامل مع معظم بطاقات العرض دون تركيب برامج إضافية بل فقط بتحديد خيارات في ملفات الإعداد.

يقوم برنامج التركيب بتعريف كل شيء بالشكل المطلوب ولكن قد ترغب بتعديل بعض الخيارات أو قد تحتاج لإعادة التعريفها لأنك قمت بفك وتركيب قطع جديدة لهذا توفر أغلب التوزيعات برنامج يقوم بتشخيص ذلك عند الإقلاع وعمل الإعدادات المناسبة وكل ما عليك هو الموافقة على الرسائل التي يعرضها عليك والإجابة على الأسئلة التي يطرحها هذا البرنامج. قد يساعدك هذا الفصل من الكتاب في فهم الرسائل أو حتى في تعريف العتاد يدوياً (هل تفكر في عمل توزيعتك الخاصة؟).

صورة متحركة لمركز تحكم ماندريك

4.1.2 بطاقة العرض (كرت الشاشة )

من المهم التمييز بين بطاقة العرض (كرت الشاشة) والمرقاب (الشاشة)، بطاقة العرض هي القطعة المسؤولة عن إرسال الإشارة إلى الشاشة، والشاشة هي التي تحولها إلى صورة وفي الغالب تكون أنبوب أشعة مهبطية CRT أو شاشة بلورات سائلة مسطحة LCD. من أهم مميزات بطاقة العرض هي طقم الرقائق chipset والطراز مثلاً كأن تقول طقم رقائق nVidia و طراز TNT2 وما يميّز بطاقات من طراز عن آخر هو وجود التسريع العتادي للرسوميات ووجود التسريع ثلاثي الأبعاد أما ما يميّز بطاقات من نفس طراز فهو مقدار الذاكرة وهي التي تحدد الكثافة النقطية القصوى (دقة العرض) والعمق اللوني المقابل. أما المرقاب(الشاشة) فما يميّز واحد عن آخر هو تردد التحديث refresh rate تحديداً التردد العامودي Vertical refresh rate الذي يفضل أن يزيد على 72 Hz التي تسمى أحياناً fps أي frame per second . وهذا التردد يختلف من دقة عرض لأخرى، إذا تم طلب تردد أكثر من التي يمكن للشاشة (وبطاقة العرض أيضاً) فإن إكس يحجم عن العمل في الغالب ولكن في الشاشات التي لا توفر معلومات عنها فإنك أما خياران أولها وهو الأكثر شيوعاً أن تحصل على شاشة سوداء قد تحتوي على رسالة تفيد بأن التردد أكبر مما يمكن توفيره (أو ربما يضيء ضوء القدرة في الشاشة بطريقة خاصة) أو في أسوأ الإحتمالات (في الشاشات التي كانت تستعملها الديناصورات قبل أن تنقرض) قد تحترق دارة التزامن في الشاشة. إضافة إلى التردد أن الشاشة يجب أن تدعم دقة العرض التي ترسلها بطاقة العرض بكلمات أخرى إذا تم إعداد بطاقة عرض حديثة على دقة عالية لا تدعمها الشاشة القديمة ستحصل على صورة مقطعة ومتداخلة غالباً. ولا يوجد طريقة لفحص هذه الحالة غير التجريب. وعليك بالتجريب تحديد تردد ودقة عرض وعمق لوني بحيث يدعمها كل من البطاقة والشاشة.

إذا كنت تريد شراء بطاقة عرض جديدة فننصحك بالتأكد من أن التسريع ثلاثي الأبعاد الخاص بها متوفر ل XFree86 إذ كت تريد أن تعمل الألعاب بشكل مقبول. في الوقت الذي كتبت فيه هذه السطور كانت هذه البطاقات هي ATI Rage128 و ATI Radeon و Matrox Mill و وبطاقات إنتل Intel i810 i830 i845 i85x i865 و و بطاقة Voodoo3 التي لم تعد متوفرة. بالنسبة لبطاقات ATI القديمة زر موقع http://gatos.sourceforge.net. أما بطاقات nVidia مثل TNT و GForce فهي لا توفر تسريع رسومي جيد بتعريف XFree86 بل بتعريف الشركة الصانعة وهو متوفر على الإنترنت على شكل ملف جاهز (وليس مصدر) وهو يجعل سرعة هذه البطاقات عالية جداً ولكن عليك تنزيله من الإنترنت بحجمه البالغ من 6 إلى 7 ميغا. والشركة تقوم بتطويره وتحديثه باهتمام (فهو يدعم النواة 2.6) ولكنها لا تتعاون مع XFree86 مما يبقيك تحت رحمة الشركة خصوصاً إذا كنت تفكر بمشاريع مثل DirectFB. بالمقابل تعطي بطاقات S3 و SiS أداء سيء (SiS أفضل قليلاً من S3) لأنهما لا يقدمان تعريفات خاصة لا مفتوحة المصدر ولا مغلقة مما اضطر فريق XFree86 للتحزير. لاحظ أننا لا نتحدث عن البطاقة بل عن طقم الرقائق chipset مثلاً بطاقة Herculees يمكن أن تكون ذات رقائق S3 (يمكن أن تجد في www.powervr.com ما يفيدك) كما أن بطاقات AOpen في الغالب تستعمل رقائق SiS وأحياناً nVidia.

 تلميح

لتفعيل مخرج TV out في بطاقات ATI ركب حزمة 'atitvout'.

يقوم برنامج الإعداد بتعريف كرت الشاشة بالشكل الصحيح (في ريدهات 7.3 وماقبلها لا يقوم بذلك) لكن لنفرض أنك غيّرت كرت الشاشة عندما تشغل الجهاز (مستوى التشغيل 5) فإن إكس لن يعمل وسيظل لينكس يعيد المحاولة عدة مرات دون فائدة(بعض التوزيعات تستطيع معالجة هذه لحالة تلقائياً) الحل بتشغيل لينكس في مستوى التشغيل الثاني أو الأول بدل الخامس ويكون ذلك بأن تكتب في برنامج الإقلاع lilo (الذي يخيّرك بين لينكس ويندوز) linux 2 (اضغط TAB أو CTRL+X حتى تحصل على محث تكتب فيه ذلك) في grub ضع المؤشر على linux ثم اضغط a ثم مسافة ثم 2 ثم ENTER ثم b ، وفي الحالتين ستحصل على لينكس في سطر الأوامر فقط. ادخل بالمستخدم الجذرroot ثم كلمة سره إذهب إلى مجلد /etc/X11/ وذلك بكتابة cd /etc/X11 ثم اعمل نسخة من ملف الإعدادات الخاصة بإكس وهو XF86Config-4 أو XF86Config أو في التوزيعات التي تعتمد على X.org فإن الملف هو xorg.conf (يمكنك أن تعرفه من خلال عرض ملف موجود في /var/log سيخبرك أي ملف إعدادات يستعمل) وأضف له لاحقة تعبر عن نوع الكرت مثلا XF86Config-4.S3 XF86Config-4.SiS XF86Config-4.ATI XF86Config-4.nVidia حتى تستخدمها عندما تعيد هذا الكرت بدلاً من إعادة التعريف،

 تلميح

سنفترض للتسهيل أن ملف إعدادات إكس هو /etc/X11/XF86Config-4 ولكن إكس تغيّر من هيئة الملف وحتى اسمه بكثرة (لهذا ولأسباب كثيرة يسميه مستخدموه بفيروس لينكس) قد تجد معلومات مفيدة في ملف REALEASE-NOTES على القرص الأول للتوزيعة.

ثم اكتب lspci ستظهر قائمة بكل البطاقات pci/agp ابحث (باستعمال grep) عن اسم بطاقة الشاشة الذي لديك فيها وهو يبدأ ب vga.
bash$ lspci | grep -i 'vga'
بهذا تكون قد عرفت نوع البطاقة في حال سألك عنه برنامج الإعداد.
 تلميح

تستطيع تحسين أداء الجهاز والبطاقات بتركيب حزمة تسمى 'powertweak' التي تضبط أجهزة PCI (وليس فقط بطاقة الشاشة) على أقصى طاقاتها وتفعّل مزايا تحسن الأداء في المعالج. هذه الأدوات تشمل 'powertweakd' و 'powertweak-extra' و 'powertweak-gtk'.

ثم شغل أحد برامج تعريف كرت الشاشة لعمل ملف الإعدادات مثل
  • Xconfigurator (في ريدهات ما قبل 8 وهو متوفر في أغلب التوزيعات )
  • redhat-config-xfree86 (في ريدهات 8 أو أكثر)
  • system-config-display (في فيدورا)
  • XFdrake (في ماندريك تجدها في مركز التحكم mcc)
  • dexconf (وهو الذي تستدعيه إعادة إعداد الحزمة dpkg-reconfigure في ديبيان)
  • xdebconfigurator (أداة غير مشهورة في ديبيان، تمتاز عن سابقتها أنها تستطيع تخمين الإعدادات تلقائياً في الطور غير المتفاعل)
  • SaX (في توزيعة SuSE يستخدم tcl/tk)
  • XF86Setup (من XFree86 يعرف شاشة تعريف عام ثم يظهر صناديق الحوار للمتابعة التعريف)
  • XFree86 -configure (يقوم بفحص كل شيء تلقائيا ويكتب لك ملف ~/XF86Config.new ضعه مكان ملف الإعدادات القديم )
  • xf86config برنامج نصي يظهر قائمة مرقمة ثم يطلب منك الرقم الأنسب -صعب- ولا يستطيع كشف الشاشة لوحده
تجنب الخيارات الثلاث الأخيرة ويفضل أن تستمل البرنامج الخاص بالتوزيعة، مثلاً في ديبيان تستطيع استخدام إعادة إعداد الحزم بالأمر
bash# dpkg-reconfigure --priority=low xserver-common xserver-xfree86
تستطيع عمل الإعدادات بتحرير ملف XF86Config-4 باليد لتعديل بعض الخيارات مثل تغير الكثافة النقطية أو العمق اللوني (المثال مجرد جزء من الملف الطويل)
...
Section "Screen"
Identifier "Screen1"
DefaultDepth 16
	...
	Subsection Depth 16
	Modes "1024x768" "800x600" "640x480"
	End Subsection
	...
End Section
...
ثم قم بتشغيل التجربة Xtest أو XFree86 -xf86config ./XF86Config-4 ثم اضغط CTRL+ALT+BKSP إذا كان هناك شيء ما خطأ إقرأ الملف /var/log/XFree86.0.log أذا سار كل شيء كما يجب اكتب gdm أو kdm أو حتى xdm للدخول أو أدخل كمستخدم عادي ثم اكتب startx هذا مثال كامل يوضح أحد الخيارات

# إطبع هذه الأوامر
bash# man XF86Config
bash# cd /etc/X11
bash# cp XF86Config-4 XF86C-ATI
# حفظ نسخة من الإعدادات
bash# XFree86 -configure
bash# cp ~/XF86Config.new XF86Config-4
bash# mcedit XF86Config-4
# الآن ابحث (اضغط F7 ) عن DefaultDepth
# عدل خزن أخرج
bash# Xtest
bash# gdm

إذا لم تتمكن من تعريف كرت الشاشة استخدم الأداة الأخيرة وعند السؤال عن نوع الكرت اكتب الرقم المقابل ل vesa (وهي معايير تعمل بها معظم البطاقات ) أو اقرأ الوثائق التي تأتي مع XFree86 عن كيفية تعريف بطاقتك ما هي الخيارات (مثلا إلغاء التسريع الرسومي). وعند الرغبة في استعادة التعريف القديم (الذي خزناه في الخطوات السابقة)

bash# cd /etc/X11
bash# cp XF86C-old XF86Config-4

إذا كان إكس يبدأ ويظل يعمل دون أن ترى أي مخرجات على الشاشة ودون إظهار أي رسالة تشير للخطأ، ويبدو أنه عالق، ولكن في نفس الوقت يمكنك الذهاب للطرفيات الوهمية (بواسطة 'CTRL+ALT+F1' مثلاً)، قد يكون لديك عدة بطاقات عرض، مثلاً واحدة مدمجة في اللوحة الأم وأخرى مضافة عبر ARG، عندها قد يرسل إكس المخرجات عبر بطاقة وأنت تصل الشاشة إلى الأخرى (جرب التبديل)، في هذه الحالة عليك تحديد أي البطاقات تريد من خلال الرقم المميز لناقل PCI المسمى PCI BusID، يحدد في فصل "Device" في ملف 'XF86Config-4' كما يلي:

    Section "Device"
#...
	BusID "PCI:1:0:0"
#...
    End Section
يمكنك الحصول على هذا الرقم من مخرجات برنامج 'lspci' (مع وضع ":" مكان النقاط ".") المثال التالي لجهاز به بطاقتي عرض واحدة Intel 82815 والأخرى SiS630 والإعدادات السابقة لاستعمال الثانية.
bash$ lspci | grep -i vga
00:02.0 VGA compatible controller: Intel Corp. 82815 CGC [Chipset Graphics Controller] (rev 02)
01:00.0 VGA compatible controller: Silicon Integrated Systems [SiS] SiS630 GUI Accelerator+3D (rev 31)
حالة أخرى هي بأن يخرج إكس ويطبع على الشاشة (أو يدخل في حلقة لا نهائية) أو في ملف التقرير log ما يدل أنه لم يجد بطاقة الشاشة المحددة، عندها فإن شخص ما أو شيء ما قام بتحديد رقم BusID غير صالح، حرر الملف لتعدل الرقم أو علّق (أزل مفعول) هذا السطر إذا كان هناك بطاقة وحيدة.

وبشكل عام إذا لاحظت بطئ في عمل بعض الألعاب مثل (tuxRacer) فهذا لأن هذه اللعبة تستخدم openGL وهناك نوعان منه عادي و مسرع فإذا كان الأداء بطيئا هذا يدل على أنك تستخدم العادي!! لمعرفة ذلك اكتب

bash$ glxinfo
bash$ glxinfo | grep direct
فإذا كان الجواب no هذا يعني أنك تستخدم العادي وليس المسرع لاختبار مدى سرعة وظائف OpenGL على بطاقة العرض اكتب glxgears في أي طرفية إكس (سطر الأوامر من داخل البيئة الرسومية) ولاحظ ثلاث مسننات تدور وعلى الطرفية تجد عدد الأطر في الثانية.

إذا كانت بطاقة العرض لديك من nvidia ننصحك تنزيل التعريفات من موقع الشركة www.nvidia.com لأنها أفضل من تلك التي تأتي مع XFree86 نزل NVIDIA-Linux-x86-VER-BUILD-pkgN.run واقرأ ملف README.txt (زر الموقع من أجل أحدث إصدار) ضع الملف في الدليل البيت وتأكد من أن ملفات تطوير النواة kernel-headers أو ملفات النواة المصدري kernel-source مركّبة مسبقاً وإذا كان هناك أكثر من واحدة تأكد من أن التي تعمل هي نفسها الموجودة في /usr/src/linux وذلك ب

bash# uname -r
bash# ln -sf /usr/src/linux-2.6.7 /usr/src/linux
ثم قم بالانتقال إلى الطور النصي أي في ريدهات وماندريك بالدخول في مستوى التشغيل الثاني أو الثالث وذلك بكتابة وأنت جذر /sbin/telinit 2 أو telinit 3 أما debian فكل المستويات 2-5 تستعمل إكس ولكن كل ما عليك إيقافه بواسطة الأمر /etc/init.d/gdm stop (يمكن أن تكون kdm أو xdm أيضاً) بعد إنهاء الواجهة الرسومية بأي من الطريقتين ادخل باسم root واكتب كلمة سره ثم إذهب إلى المكان الذي وضعت فيه تعريف nVidia وهو الدليل البيت (سأفترض أن اسمك ali) ثم نفذ برنامج الذي وضعته هناك وذلك بكتابة sh NVIDIA ثم اضغط TAB للحصول على اسم الملف الكامل ثم اضغط ENTER حرك بالسهم على لوحة المفاتيح للموافقة واختيار ACCEPT ثم اضغط ENTER بعد الانتهاء استعمل محرر النصوص المفضل لديك مثلاً mcedit لتحرير ملف /etc/X11/XF86Config-4 ابحث عن nv وأبدلها ب nvidia خزن عد لمستوى التشغيل 5 الرسومي بكتابة telinit 5 أو /etc/init.d/gdm start. هذه الأوامر معاً
bash# cd ~ali
bash# sh NVIDIA-Linux-x86-1.0-4496-pkg2.run
# وافق على الاتفاقية بعد قراءتها
bash# mcedit /etc/X11/XF86Config-4
# اضغط F7
# ابحث عن nv
# بالأسهم لسطر Driver "nv"
# عدله ليصبح Driver "nvidia"
# اضغط F2 للتخزين
bash# telinit 5
# لاحظ شعار الشركة يظهر ويختفي بسرعة
# تأكد من أنه يعمل
bash$ glinfo | grep direct
لاحظ ضهور شعار شركة nVidia عد تشغيل إكس

4.1.3 الفأرة

توفر توزيعة ريدهات برنامج mouseconfig الذي يقوم بكل ما يجب والكثير من التوزيعات الأخرى أيضاً. جهاز الفأرة التلقائي هو /dev/mouse الذي يكون وصلة إلى الجهاز الحقيقي الذي يمثل الفأرة مثل

/dev/psaux من نوع PS/2
/dev/ttyS0 منفذ الاتصال المتسلسل الأول ما يمثل COM1 
/dev/input/mice من نوع USB
قم بربطه أحد هذه مثلا
bash# ln -sf /dev/psaux /dev/mouse
أما البرامج المسؤول عن تعريف الفأرة في الشاشة النصية هو gpm وهو برنامج بسيط لتشغيله اكتب
gpm -t help
gpm -m /dev/ttyS0 -t ms
gpm -m /dev/psaux -t ps2
ويتم تنفيذ هذا البرنامج من قبل /etc/rc.d/init.d/gpm إجعل هذا الملف قابل للتنفيذ وعدل عليه لتحديد نوع الفأرة أما في البيئة الرسومية إكس الملف المسؤول هو نفسه كالعادة /etc/X11/XF86Config-4 ويتم إعداده في قسم Section InputDevice وعليك إعادة تشغيل إكس عند تعديل هذا الملف ويوجد حيلة لتتمكن من تغيير تعريف الفأرة من نوع لآخر دون إعادة تشغيل إكس وذلك بإعداد gpm بالشكل الصحيح وربط /dev/mouse ليشير إلى /dev/gpmdata وإعداد إكس ليستعمل ذلك الجهاز وعند الرغبة في التغيير كل ما عليك إعادة تشغيل مراقب gpm.

4.1.4 بطاقة الصوت

استخدم البرنامج الذي تراه مناسبا من التالية

  • sndconfig من ريدهات وموجود معظم التوزيعات الأخرى إلى الآن (على الرغم من تخلي ريدهات عنه بعد 8.0) وهو رائع ولكنه يستخدم OSS القديم وليس ALSA.
  • redhat-config-sound في ريدهات 8.0 أو أكثر، في ريدهات 8.0 يتوفر هذا وسابقه معاً. ينسى هذا البرنامج تحديث أذونات ملفات الأجهزة الخاصة بالصوت.
  • system-config-sound الاسم الجديد في فيدورا
  • SoundDrake (في ماندريك)
فهي تستطيع كشف بطاقة الصوت تلقائياً. ما تفعله هذه الأدوات هو عملية إضافة التعرفات إلى النواة بواسطة modprobe.
 تلميح

يظهر في بعض التوزيعات أنه عرّف بطاقة الصوت وأظهر لك نوعها ولكنك لا تسمع أي شيء (خاصة في Fedora) ثم تعود لتعمل بعد فترة دون أي تدخل! ببساطة تأكد من ملكية وأذونات ملفات الأجهزة /dev/dsp* و /dev/adsp* و /dev/audio* وتلك الموجودة في دليل /dev/snd/ بالأوامر chown و chmod.

قد يمكنك معرفة نوع بطاقة الصوت بواسطة lspci إذا لم تجد هذه البرامج استخدم modprobe بطريقة تشبه (لتعريفات oss)
# for my historical crystal ISA card
modprobe isapnp
modprobe sound
modprobe ad1848
modprobe uart401
# replace cs4232 with sb for SoundBlaster
modprobe cs4232 io=0x534 irq=5 dma=0
modprobe opl3 io=0x388

# for a C-Media PCI card modprobe cmpci
أما لتعريفات alsa نفذ برنامج alsaconfig الذي يعمل modprobe ولكن ل module آخر غالباً يبدأ اسمه به snd-card إضافة snd-pcm1-oss و snd-mixer-oss للتوافقة مع oss لمعرفة معلومات عن التعريف الذي تستعمله الآن اكتب:
bash# cat /proc/asound/cards
هذا جدول يوضح البطاقة وما يقابلها من تعريف من 'Alsa-sound-mini-HOWTO' ل Valentijn Sessink.
Gravis UltraSound Extreme:	modprobe snd-card-gusextreme
Gravis UltraSound MAX:		modprobe snd-card-gusmax
ESS AudioDrive ES-(1)688:	modprobe snd-card-audiodrive1688
ESS AudioDrive 18xx:		modprobe snd-card-audiodrive18xx
Gravis UltraSound PnP:
  Gravis UltraSound PnP, Dynasonic 3-D/Pro, STB Sound Rage 32,
  ExpertColor MED3201 and other soundcards based on AMD InterWave(TM)
				modprobe snd-card-interwave
UltraSound 32-Pro(TEA6330T)
  UltraSound 32-Pro (soundcard from STB used by Compaq) and other
  soundcards based on AMD InterWave (tm) chip with TEA6330T circuit
				modprobe snd-card-interwave-stb
Soundblaster 1.0,2.0 and pro(8-bit)
				modprobe snd-card-sb8
Soundblaster 16 SoundBlaster AWE 32/64 NOT VibraX16
				modprobe snd-card-sb16
OAK Mozart:			modprobe snd-mozart
OPTi 82C9xx:
  Audio 16 Pro EPC-SOUN9301 (82C930 based), ExpertColor MED-3931 v2.0 (82C931
  based), ExpertMedia Sound 16 MED-1600 (82C928 based - AD1848), Mozart
  S601206-G (OPTI601 based - CS4231) and Sound Player S-928
				modprobe snd-card-opti9xx
AD1847/48 and CS4248 :		modprobe snd-card-ad1848
Yamaha OPL3-SA2/SA3 soundcards: (NO autoprobing)
				modprobe snd-card-opl3sa snd_port=0xNNN \
	snd_wss_port=0x530 snd_midi_port=-1 snd_fm_port=0x388\
	snd_irq=5 snd_dma1=0 snd_dma1_size=NN snd_dma2=1 snd_dma2_size=NN
S3 SonicVibes(PINE Schubert 32 PCI):
				modprobe snd-card-sonicvibes
Ensoniq(ES1370/1371)/Soundblaster PCI64:
				modprobe snd-card-audiopci
CS4231:(NO auto-probing)
				modprobe snd-card-cs4231 snd_port=0x534\
	snd_mpu_port=-1 snd_irq=5 snd_dma1=0 snd_dma1_size=NN\
	snd_dma2=1 snd_dma2_size=NN
CS4232/4232A:(NO auto-probing)
				modprobe snd-card-cs4232 snd_port=0x534\
	snd_cport=0x120 snd_mpu_port=-1 snd_fm_port=0x388\
	snd_jport=-1 snd_irq=5 snd_dma1=0 snd_dma1_size=NN\
	snd_dma2=1 snd_dma2_size=NN
CS4235 and higher: CS4235/CS4236/CS4236B/CS4237B/CS4238B/CS4239 chips
				modprobe snd-card-cs4236 snd_port=0x534\
	snd_cport=0x120 snd_mpu_port=-1 snd_fm_port=0x388 snd_jport=-1\
	snd_irq=5 snd_dma1=0 snd_dma1_size=NN snd_dma2=1 snd_dma2_size=NN
CS4610/4612/4615 and 4680:	modprobe snd-card-cs461x
ESS Solo 1(128iPCI,es1938):	modprobe snd-card-esssolo1
Trident 4DWave DX/NX:
  Best Union  Miss Melody 4DWave PCI, HIS  4DWave PCI, Warpspeed
  ONSpeed 4DWave PCI, AzTech  PCI 64-Q3D, Addonics  SV 750, CHIC  True
  Sound 4Dwave, Shark  Predator4D-PCI, Jaton  SonicWave 4D.
				modprobe snd-card-trident
ForteMedia FM801:		modprobe snd-card-fm801
أما لتشغيل بطاقات الصوت non-pnp ISA الأثرية(انقرضت مع الديناصورات) عليك قراءة BootPrompt-HowTO

4.1.5 الطابعة

لينكس نظام قوي جداً، فباستعمال CUPS أي نظام طباعة يونكس العام Common Unix Printing System من Easy Software Products (انظر www.easysw.com) وتعريفات وفلاتر Foomatic من LinuxPrinting.org وغيرها من مشاريع البرمجيات الحرة؛ فإن لينكس يستطيع طباعة ملفات postsript على طابعات لا تدعم postsript بل ويعرّف تلك الطابعات بملفات PPD! يستطيع الوصول إلى طابعة مشاركة على شبكة Microsoft/Samba ويحصل على تعريفها تلقائياً. يمكن أن يكون خادم طباعة لمخدومات ويندوز حتى لو كانت الطابعة غير مدعومة في لينكس! ما معنى كل هذا ؟ يمكنك أن تعيش بتركيب CUPS و foomatic واستخدام الواجهة الرسومية كالتي تأتي مع توزيعتك أو أداة KDE Print (انظر http://printing.kde.org) الذي تعده من مركز تحك KDE، والذي يدعم أغلب أنظمة spoolers (مثل CUPS و LPD) وصندوق حوار يوفر خاصية المعاينة preview قبل الطباعة عبر KGhostView (أو أي عارض PS آخر) ويوفر طابعات افتراضية (مثل البريد الإلكتروني والفاكس وملفات PDF) وإذا أعجبك يمكنك استعماله مع تطبيقات من غير KDE وذلك بتحديد kprinter ليكون أمر الطباعة (مكان 'lpr') وهناك واجهات رسومية أخرى لأمر 'lpr' (مثل 'gpr' المبني على GTK+ و 'xpp' من CUPS المبني على FLTK) ولاكنها ليست شائعة. لنأخذ جولة في تاريخ الطباعة.

تولد الطابعات مخرجاتها بطرق مختلفة؛ طابعات الأسطر Line Printers (المصفوفة النقطية Dot Matrix) تستخدم رؤوس pins تضرب شريط محبر ribbon، الطابعات النافثة للحبر Inkjet تبخ/ترش على الورق (مع أن الحبر قد يكون جاف)، الطابعات الليزرية Laser تعمل مثل أجهزة نسخ/تصوير الورق حيث يشحن الشعاع المناطق المطلوبة على سطح حساس للضوء على الأسطوانة drummer فيصنع صورة للصفحة المطلوبة كاملة تجذب الحبر toner ثم تلف على الورقة وتحصل على الورقة المطبوعة دفعة واحدة! لهذا فهي الأسرع، بقيت خطوة واحدة وهي مسح الصورة من على الأسطواة.
\كلفة الطابعةكلفة الطباعة للورقة (مثل الحبر)الجودةمزايا أخرى
المصفوفة النقطية Dot Matrixرخيصة جداًرخيصةمتدنيةتطبع على النماذج والورق المتصل
النافثة للحبرInkjetsرخيصة نسبياًغالية جداًجيدة-
الليزرية Laserغاليةرخيصة نسبياًالأفضلالسرعة والعمل الشاق

نحصل على الطباعة الملونة باستعمال 3 ألوان على الأقل CYM (وليس RGB)، أغلب الطابعات تحتوي الأسود K لوناً رابعاً (بدلاً من مزج الألوان الأخرى للحصول على الأسود) من أجل تقليل الكلفة، والقليل منها يحتوي 6 أو 7 ألوان (نظام CYMKcmy)، لمعرفة كيف حول من CYMK إل RGB وبالعكس انظر فصل 8.5 مقدمة نظرية عن الرسم في بعدين 2D. مخرجات الطباعة تتكون من نقاط points صغيرة، كلما زادت النقاط (في وحدة الطول) كان أفضل، تقاس الجودة بعددالنقاط في الإنش PPI، النقطة قد تكون أكثر من بقعة حبر dot، مثلاً لتشكل نقطة لدرجة الرمادي 50% فإن عدداً من البقع السوداء (بينها بعض الفراغات)، هذا يعني أن البقع أكثر من النقاط (أي DPI > PPI).

الطابعات الأولى كانت مصممة لتطبع النصوص، لهذا وبدلاً من رسم النص نقطة نقطة والعودة لنفس الحرف أكثر من مرة (في كل مرة تطبع صف من القاط التي تشكل الحرف الواحد) فإن هذه الطابعات تحمل خط في ذاكرتها (مبني في ROM) وتمر عربة courage تحمل عموداً من الرؤوس عددها 8-24 (بارتفاع الخط) عبر الورقة من اليسار لليمين (حتى في تلك التي تدعم العربية) في كل رحلة مغطيةً سطراً من الحروف (وليس صفاً من النقاط) لهذا تسمى طابعات الأسطر line printers. المحرف Line feed (اختصاراً LF، رقمه 10 بالنظام العشري) يحرك العربة سطراً للأسفل، بينما courage return (اختصاراً CRورقمه 13 بالعشري) يعود للعمود صفر في أقصى اليسار، لهذا ينتهي كل صف بالعلامتين (LF) (CR) لترك بقية السطر والنزول لبداية لسطر التالي يمكن رسم رسوم متدنية الجودة على الطابعات الأسطر بالتحكم بالرؤوس بدلاً من ترك ذلك للخط المحمل بها.

تستطيع نواة لينكس التعامل مع أغلب أنواع الطابعات عبر '/dev/lp' (الاسم lp بقي منذ عهد طابعات السطر line printers) الذي يكون غالباً وصلة إلى الجهاز الحقيقي الذي قد يكون '/dev/lp0' (لتلك الموصولة إلى أول منفذ متوازي parallel port) أو '/dev/usr/lp0' (لأول طابعة على منافذ USB). غالباً ما تحمل التوزيعة ال modules الخاصة بهذه الأجهزة تلقائياً. إذا كنت تملك الصلاحيات الكافية (كأن تكون عضواً في المجموعة التي تملك ملف الجهاز الخاص بالطابعة) عندها يمكنك أن ترسل الملف النصي إلى الجهاز مباشرة فيطبع، ولكن أغلب الطابعات تتوقع محرف LF (في حين أن ملفات النصوص في Unix تنتهي CR فقط) لهذا يمكنك أن تمرره إلى أداة 'unix2dos'، قد تحب أن تضبط جانبي النص ليبدو أفضل بالأداة 'pr'، في هذه الحالة سيكون الأمر كما يلي 'pr -l70 -h "This is myfile." myfile | unix2dox > /dev/lp' هنا تعمل 'pr' على ضبط النص بعرض 70 محرف وتضيف العبارة "This is myfile." في رأس كل صفحة، هذه عملية فلترة بسيطة، احفظ هذه الكلمة جيداً.

الوصول المباشر للأجهزة ليست فكرة جيدة، ماذا لو كانت قيد الاستعمال ؟ ماذا لو بدأ مستخدمين بإرسال ملفين مختلفين في نفس الوقت ؟ ماذا لو كان لدي 10 ملفات للطباعة كل منها به 30 صفحة، هل علي أن أنفذها واحداً فواحد ، منتظراً كل عملية لتنتهي! ثم من ذا الذي يرغب بطباعة ملف نصي صرف بخط وحيد ثابت العرض! هنا يأتي دور أنظمة spooler مثل CUPS و LPRng و LPD و GNU lpr و PPR و PDQ. غالباً ما يكون لديك وثيقة/مستند كُتبت بهئية لا تأبه لنوع أو قدرات الطابعة التي ستستخدم عند طباعتها (مثل html و pdf و dvi ...إلخ) يقوم النظام باستعمال الفلاتر المناسبة (بشكل تلقائي وداخلي) لتحويل الملف إلى هيئة مستقلة عن قدرات الطابعة device independent format بحيث يتمكن التعريف من تلقيمها لتلك الطابعة بعينها، بعض الطابعات تفهم هيئات معقدة وتعالجها هي والبعض الآخر يتوقعها مخرجات نقطية جاهزة (أي rendered bitmap) تقوم بمعالجتها البرمجيات (التعريفات أو الفلاتر)، يقوم التعريف باستعمال فلتر أخير يحول تلك الهيئة إلى أوامر تفهما الطابعة عينها. ينتظر الملف المراد طباعته دوره في طابور queue، حيث ينسخه نظام spooler في مكان يشبه '/var/spool/lpd/myprinter/' إلى أن يحين دوره، مما يمكن البرنامج التطبيقي متابعة عمله (حتى لو حذف الملف) دون التأثير على عملية الطباعة، كما يوفر أداة للتحكم في الطابور.

قبل عدة عقود اخترعت Adobe هيئة PostScript، وهي لغة برمجة (اختصاراً PS) تمثل الرسوم والخطوط والنصوص المعقدة. كانت هذه الهيئة شائعة جداً منذ بدايات النشر المكتبي على MacIntosh. ولأنها هيئة ذات محددات مفتوحة المصدر ومتاحة للعموم فإن أغلب أدوات يونكس والبرمجيات الحرة تستطيع توليد مخرجات بهذه الهيئة. هدف هيئة PS بصفتها هيئة مستقلة عن الأجهزة هي أن تكون هيئة مثالية للتبادل/النقل portable interchange format بحيث تطبعها أينما ذهبت (مثلاً، يمكن دمج الخطوط في نفس الملف). لم تكن هذه الهيئة مفضلة على أنظمة ويندوز، فيما بعد أضافت Adobe بعض الميزات مثل الضغط والوصلات في هيئة جديدة سميت PDF وهي الآن شائعة على كل الأنظمة خصوصاً في الكتب الإلكترونية. هناك العديد من الطابعات (غالباً الليزرية مرتفعة الثمن) تستطيع التعامل مع هيئة PS مباشرة في بنيتها firmware فهي تملك معالج مستقل لتتمكن من تفسير هذه اللغة، تعطيك هذه الطابعات سرعة وجودة عالية، تسمى هذه الطابعات Postscript printers وتعرّف بواسطة ملف PPD أي Postscript Printer Definition، الذي يحدد الأوامر اللازمة لتلقيم الطابعة بملف PS. الطابعات الأخرى التي لا تدعم PS (تسمى non-Postscript printers) تعتمد على البرمجيات تسمى RIP أي Raster Image Processor تعمل على معالجة وإخراج المدخلات بصورة منظومة نقطية في هيئة قياسية مثل PCL أو سرية (كان الله في عونك!) الصورة المخرجة تكون كبيرة وتحتاج وقت أكثر لنقلها كما أن عملية الإخراج تستغرق وقت المعالج CPU وتستهلك ذاكرة لهذا تسمى العملية host-based PostScript printing أي طباعة PS المعتمدة على المضيف. يقوم برنامج 'gs' (اختصاراً ل Ghostscript) بهذه الوظيفة في لينكس. هناك ثلاث منه، الأول إصدار غنو المرخص وفق GPL (وهو الشائع) والآخر من Easy Software Products (أصل نظام CUPS المستخدم في لينكس) وغير الحر من Aladdin (الرخصة تسمح بالاستخدام الشخصي غير التجاري), في ديبيان يسمون على الترتيب 'gs-gpl' و 'gs-esp' و 'gs-afpl'.

 تلميح

هيئة Postscript هي لغة برمجة كاملة، لهذا قد تشكل خطراً (مع أنها ملفات نصية تنفيذية script) لهذا عندما تنفذ 'gs' مرر له '-dSAFER' ليمنعه من الوصول إلى الملفات الأخرى.

 تلميح

لتعلم المزيد عن لغة PS ارجع إلى http://partners.adobe.com/asn/developer/technotes/postscript.html.

من أول أنظمة spooler كان LPD (أي Line Printing Daemon) وهو مراقب يعمل في الخلفية بانتظار مهمات الطباعة، تعرف الطابعة عبر ملف قدرات الطابعة '/etc/printcap' الذي يسرد أجهزة الطباعة وأسماءها ودليل الطابور (فرع من '/var/spool/lpd/') والحد الأعلى لحجمه والفلتر المستخدم (مثل apsfilter أو magicfilter). الملف '/etc/hosts.lpd' يحتوي العقد التي يسمح لها بالطباعة عن بعد. هناك فئتين من أوامر LPD الأولى بأسلوب BSD والثانية System V. الأوامر الأولى (وهي الشائعة على لينكس) هي 'lpr' (للطباعة) و 'lpq' (لعرض الطابور) و 'lprm' (لحذف مهمة من الطابور) و 'lpc' (للتحكم في الطابور مثل تعليق وظيفة). الأوامر في الثانية هي 'lp' (للطباعة) و 'lpstat' (لعرض الطابور) و 'cancel' (لحذف مهمة من الطابور). سنحدث عن المجموعة الأولى، مرر اسم الملف إلى lpr كمعامل أو محتوياته عبر أنبوب '|'، مثلاً لطباعة الملف النصي 'myfile.txt' والملف المضغوط 'COPYING.gz' يمكنك أن تستعمل:

bash$ lpr myfile.txt
bash$ zcat COPYING.gz | lpr
إذا كان الفلتر المناسب مركباً فقط مرر الملف، مثلاً الفلتر 'apsfilter' يدعم (بمساعدة برامج أخرى مثل html2ps و pdf2ps و dvips...إلخ): gzipو bzip2و compressو freezeو packو ASCIIو BMPو PCLو DVIو FBMو FIGو FITSو GIFو Group 3 faxو HTMLو IFF ILBMو JPEGو Kodak Photo CDو MGRو MIFFو PBM/PGM/PNM/PPMو PDFو PNGو PostScriptو RLEو SGIو Sketchو Sun rasterو Targaو TIFFو troffو WPGو X pixmap وحتى XCF، في هذه الحالة لا حاجة لأن تفك ضغط 'COPYING.GZ' بواسطة 'zcat'. يمكن أن تستعمل lpr كما يلي:
bash$ lpr -#3 article.html
bash$ lpr -P laserjet -s mybook.pdf
لطباعة 3 نسخ من ملف 'article.html' على الطابعة الافتراضية، ونسخة من 'mybook.pdf' على طابعة اسمها 'laserjet' وبدلاً من نسخ الملف إلى دليل الطابور فإنه فقط يضع له وصلة symbolic link هناك (بسبب الخيار '-s'، هذا يساعد على توفير الكثير من المساحة). إذا غيرت رأيك بخصوص 'mybook.pdf' وتريد إلغاء هذه المهمة اكتب 'lprm -' التي تلغي آخر مهمة دخلت الطابور، لتلغي مهمة بعينها مرر رقمها إلى 'lprm'، الرقم تتحصل عليه باستعراض الطابور بأمر 'lpq'، الذي يعرض حالة الطابعة وكل المهمات في الطابور وحالة كل واحدة.

في هذه الأيام تم استبدال نظام LPD بنظام CUPS، لإنه أسهل في الإعداد ويدعم المزيد من الطابعات ويعمل خادماً أو مخدوماً server or client للعديد من البروتوكولات أهمها IPP (أي Internet Printing Protocol) إلى جانب طابعات مقبس الإيثرنت و LPD و Mirosoft/Samba. والخبر الجيد أنك لن تتجبر على تعلم الكثير؛ فنظام CUPS يدعم مجموعتا الأوامر بأسلوبي BSD (مثل 'lpr') و System V (مثل 'lp'), كل ما عليك هو تفعيل هذه الخدمة في مستوى التشغيل باستعمال أدوات التوزيعة الرسومية أو النصية (مثلاً 'chkconfig --level 2345 cups on' ثم 'service cups start')

يمكن إعداد الطابعات عبر أدوات التوزيعة أو أداة إدارة CUPS من سطر الأوامر 'lpadmin' أو عبر واجهة الويب السهلة عبر المتصفحات أو ربما بحرير ملف '/etc/cups/cupsd.conf' الذي له هيئة مشابهة لإعدادات Apache. لتفعيل أداة إعداد CUPS عبر الويب (علماً أنه يعمل بأمان خلف 'xinetd') حرر ملف '/etc/xinetd.d/cups-lpd' ليحتوي سطراً كما يلي: 'disable = no' ثم افتح أي متصفح ويب (مثل 'mozilla' أو 'epiphany' أو 'konquror' أو حتى 'links') على العنوان 'http://localhost:631' وتفاعل معها واتبع التعليمات، هذه الصفحة لا ترى تلقائياً إلا من الجهاز نفسه localhost (أي '127.0.0.1') انظر بند 5.3.8 خدمة xinetd في فصل 5.3 تشغيل الخادمات.

CUPS web interface

يمكن إدارة CUPS عبر أداة سطر الأوامر 'lpadmin' مثلاً لإضافة طابعة على أول منفذ متوازي وتسميتها 'MyPrinter' وجعلها طابعة تلقائية default printer (بالخيار '-d') استعمل ما يشبه:

bash# lpadmin -p MyPrinter -v parallel:/dev/lp0 -P /PATH/DRIVER.ppd
bash# /usr/bin/enable MyPrinter
bash# /usr/sbin/accept MyPrinter
bash# lpadmin -d MyPrinter
لإضافة طابعة بعيدة موجودة على شبكة Samba (أو Microsoft) وتسميتها HisPrinter وجعلها طابعة تلقائية:
bash# lpaddin -p HisPrinter -v smb://myname:mypass@WINNT/INKJET -P /PATH/DRIVER.ppd
bash# /usr/bin/enable HisPrinter
bash# /usr/sbin/accept HisPrinter
bash# lpadmin -d HisPrinter
لاحظ أنه ليس بالضرورة أن تمتلك ملف التعريف PPD حيث يقوم Samba بالحصول عليه تلقائياً. يجب أن تنتبه من ظهور كلمة السر في أمر ps. انظر البند 5.2.3 من فصل '5.2 العمل في الشبكات' لتتعرف على استعمال 'smbclient' لإيجاد العناصر في شبكة Samba.

التعريفات التي تأتي مع CUPS بسيطة وعامة generic وتحتاج إلى ما هو أفضل منها للعمل الاحترافي. الحمد لله، يتوفر تعريفات محسّنة بجودة تصويرية optimized photo-quality drivers من www.LinuxPrinting.org تأتي مع أغلب التوزيعات في حزمة تسمى 'foomatic' (انظر www.linuxprinting.org/foomatic.html), وهي توفر دعماً لعدد أكبر من الطابعات (انظر قائمة الطابعات المدعومة على 'www.LinuxPrinting.org' ) وباستعمال ملفات PPD لقيادة/تعريف الطابعات جميعها (بما في ذلك طابعات non-Postscript). يأتي 'foomatic' بفلتر ذكي يسمى 'foomatic-rip' يعمل مع كافة أنظمة spooler وليس فقط CUPS. وله واجهة رسومية GUI في حزمة أخرى اسمها 'foomatic-gui' تساعدك على إعداد الطابعات وهي لبيئة غنوم. المزيد من تعريفات PPD ذات الجودة العالية توجد في حزمة Gimp Print.

إلى جانب تعريفات وأدوات LinuxPrinting.org قد تجد تعريفات وأدوات من الجهة الصانعة للطابعة، فإذا كانت طابعة Postscript فيمكنك أن تأخذ ملف PPD من تعريف الطابعة على ويندوز (على القرص الذي يأتي مع الطابعة) أو من موقعAdobe على www.adobe.com/products/printerdrivers/winppd.html. طابعات Hewlett-Packard (تختصر HP) الشائة توفر دعم جيد انظر المواقع ذات الصلة 'http://hp.sf.net' و 'http://hpinkjet.sf.net' (في ديبيان هناك حزمة باسم 'hpijs') و 'http://hpoj.sf.net' هذا الأخير يوفر دعم (أدوات وتعريفات) لأغلب أجهزة "الكل-في-واحد" مثل OfficeJet و LaserJet و Printer/Scanner/Copier (تختصر "PSC") و PhotoSmart (في ديبيان حزمة 'hpoj-xojpanel' لعرض لوحة طابعات 'hpoj' الكرستالية).

عند شراء طابعة جديدة تأكد من أن تزور موقع LinuxPrinting.org قبل الشراء بغض النظر عن الشركة الصانعة للطابعة، مثلاً توفر HP دعم جيد للمطورين في المصادر المفتوحة إلا أن هناك عدد قليل من طابعاتها لا تعمل في لينكس! انظر قادة بيانات الطابعات المدعومة ودرجة الدعم في موقع www.linuxprinting.org/database.html. أغلب مستخدمي المنازل يختارون طابعة نافثة للحبر، ولكن بعد شرائها لا يطبعون أكثر من دزينة من الصفحات في السنة، لأن كلفة تغيير عبوة الحبر ثلاث مرات قد تزيد عن ثمن طابعة جديدة!! الطابعات النافثة للحبر رخيصة ولكن كلفة الطباعة بالورقة مرتفعة، وهذا ليس سيئاً لمستخدمي البيوت الذين يريدون طابعة ملونة جيدة رخيصة (على الرغم من أنه يمكنهم توليد ملف PDF وحمله على قرص مرن أو ذاكرة USB إلى ليطبع على طابعة ليزرية في محل خدمات حاسوبية). للعمل الجاد لست بحاجة لألوان (مثل الفواتير والنماذج والتقارير ...إلخ) بل إلى طابعة تتحمل العمل الشاق وتدوم تعطي صفحات أكثر في وقت أقل بكلفة متدنية لكل ورقة، طابعات الليزر غير الملونة هي الخيار الأفضل في هذه الحالة، ولكن بعض الشركات لا تزال تستعمل الطابعات النقطية، هذا الخيار يكون جيداً لطباعة النصوص الصرفة بخط وحيد ثابت العرض فهي رخيصة (كلفة الطابعة نفسها و كلفة طباعة الصفحة الواحدة) وتمتاز بالطباعة على النماذج والورق المتصل ، علماً أن بعض طابعات الليزر تفعل ذلك أيضاً. إذا أردت الصيحة انظر www.linuxprinting.org/suggested.html، ولدعم مستقبل الطباعة في لينكس اشترِ من المصنعين المساهمين في Linux printing انظر www.linuxprinting.org/affiliate.html.

المراجع:

  • Debian and Windows Shared Printing mini-HOWTO
  • The Linux Printing HOWTO
  • The Linux Printing Usage HOWTO
  • The Linux Print2Win mini-HOWTO

4.1.6 الماسحة الضوئية

يكون تعريف الماسحة الضوئية ببساطة بإعطاء البرامج الذي يستخدم الماسحة مثل xsane أو gimp اسم الجهاز الصحيح الذي يمثلها مثل /dev/usb/scanner0 انظر القائمة في الأسفل أو أن تجعل البرامج يستعمل الجهاز /dev/scanner الذي تجعله وصلة لجهاز الماسحة

4.1.7 الكاميرات الرقمية والتقاط الفيديو

يتم التعامل مع الكاميرات الرقمية (للصور الثابتة) كأي وسيط تخزين عبر أمر الضم 'mount' (على أنه قرص SCSI، انظر الملحق في نهاية هذا الفصل) أو عبر برنامج متخصص مثل 'gtkam' or 'kamera'.

مستقبلات التلفاز TV tuners وكاميرات الويب وغيرها من أدوات التقاط الصور المتحركة أو الفيديو (أي motion-picture-capturing أو video capturing) كلها نصل إليها عبر واجهة موحدة تسمى Video4Linux (أو V4L) عبر نواة لينكس (على شكل modules)، هناك العديد من البرامج التي تستخدم هذه الميزة أهمها 'xawtv' or 'tvtime' (انظر tvtime.net) كل ما عليك لإعدادها هو تحديد الجهاز الصحيح (انظر الملحق في نهاية هذا الفصل) عبر واجهتهما الرسومية أو عبر حزمة 'v4l-conf' (أو عبر أدوات توزيعتك كما في ماندريك). هناك بعض البرامج المتخصصة في بكاميرات الويب وأفضل مثال على ذلك برنامج شبكة مؤتمرات الفيديو gnomemeeting انظر بند 2.6.4. الإنترنت التفاعلية. منذ عدة سنوات والناس تشاهد التلفاز بالألوان فهل خطر ببالك أن تشاهده بالنصوص ASCII Art text!! حزمة 'ttv' تستخدم مكتبة aalib لإظهار الصور المتحركة على طرفية tty. إذا كنت تريد المشاهدة بالألوان دون إكس يمكنك أن تجرب 'fbtv' الذي يستخدم Linux Frame Buffer بدلاً من إكس. في ديبيان هناك الكثير من الحزم ذات الصلة مثل:

  • 'came' إعادة كتابة لبرنامج 'xawtv' باستعمال مكتبة 'imlib2'.
  • 'scantv' يبحث عن كل القنوات/المحطات دفعة واحدة ويضيفها إلى إعدادات 'xawtv' وغيره.
  • 'libdscaler' إضافة plugin إلى 'tvtime' لإزالة التداخل deinterlacer (لإعطاء دقة أعلى) باستعمال ملفات DLL الخاصة ب DScaler بواسطة WINE.
  • 'kvdr' مسجل DVB (digital TV) على أقراص Video Disk لبيئة KDE.
  • 'wmtv' تطبيق صندوقي لتشغيل Video4Linux لبيئة WindowMaker ومثيلاته.
  • 'camorama' برنامج لبيئة غنوم يعرض ويعدل ويخزن الصور في جهاز Video4Linux بما في ذلك كاميرات الويب.
  • 'vgrabbj' أداة لسطر الأوامر لالتقاط الصور من جهاز Video4Linux وتخزيها بهيئة JPEG/PNG.
  • 'camstream' واجهة QT لأجهزة Video4Linux تدعم كاميرات الويب والمؤتمرات الفيديوية وتسجيل الفيديو (بهيئة AVI أو Quicktime) كما تسمح باستخدامها كاميراتاً أمنية، انظر 'www.smcc.demon.nl/camstream'.
  • 'motion' برامج التقاط V4L يدعم كاشف للحركة Movement Detection وهيئة MPEG للمخرجات وكاميرات الويب (يمكن استعمالها كاميراتاً أمنية).
  • 'webcam' يلتقط الصور من جهاز Video4Linux ويرفعها تلقائياً إلى خادم ويب عبر FTP أو SSH.
  • 'camserv' تأخذ سيال من الفيديو، غالباً من كاميرا، وترسله إلى المخدومين (عبر متصفحات الويب).
إذا كنت مهتماً بتسجيل الصور الملتقطة إلى ملف فيديو فصلا الوسائط المتعددة والتصميم.

4.1.8 بطاقة الشبكة والمودم

إذا كان الربط يتم عن طريق بطاقة الشبكة الداخلية LAN أو ما يسمى بطاقات الإيثرنت الأولى فالجهاز الذي يقوم بالعملية هو /dev/eth0 لمعرفة المزيد اكتب

bash# dmesg | grep eth
bash# lspci -v | grep eth
ثم عليك إعداد شبكة كما في فصل '5.2 العمل في الشبكات' أما إذا كان الربط يتم من خلال الاتصال الهاتفي Dial-up فإننا نتعامل مع جهاز مودم MODEM يسمى أيضا ppp+ أي point to point protocol. إذا كان اشتراك ISDN وهو خط هاتفي مطور يسمح بسرعات أعلى وبتلقي المكالمات حتى أثناء الربط على على الأنترنت في نفس الوقت يسمى هذا البروتوكول ippp+. أما خط DSL (أو ADSL أو IDSL أو SDSL) فإن لربط يكون عبر PPPoE أي Point to Point Protocol over Ethernet (في الإعدادات يرمز لها ppp+ أيضاً) أو عن طريق DHCP حسب مزود الخدمة.

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

ln -sf /dev/ttyS0 /dev/modem
استبدل ttyS0 بأي قيمة مناسبة، إذا كنت تعاملت مع ويندوز فهذا هو نفسه COM1 ، غالباً ما يكون COM1 محجوز لذا نستعمل COM3 أي /dev/ttyS2 وهذا ينطبق على المودمات الداخلية الحقيقية (ولكنها قليلة) مثل IBM 33L4618 وهو ينطبق على أي مودم يحتوي UART حقيقية - Universal Asynchronous Receiver Transmitter مثل :
Lucent Venus chipset:
   Multitech MT5634ZPX-PCI,
   Zoom 2920 (Digitan DS550-558),
   Actiontec PCI56012 (IBM 33L4618 or GVC MD0223)
USR/TI Kermit chipset:
   the 3Com/USR 3CP5610 family, which includes models 5613, 5609, and OEM models 2976, 2977, and 3258
TOPIC TP560i chipset:
   Well Communications FM-56PCI-TP (GVC MD0321), and
   Archtek Smartlink 5634PCV.
Conexant RC56D-PCI chipset:
   none observed yet ???!
أما إذا كان مودم winmodem أي وهمي softmodem HSF (معظم المودمات الداخلية هكذا ) أو بدون حاكم HCF controllerless مثل مودمات USB الخارجية فعليك الذهاب إلى موقع الشركة الصانعة لطقم الرقائق chipset يمكنك أن تعرفها عن طريق طباعة الأمر lspci أو التفصيلي lspci -vv الذي سيطبع أسماء كل البطاقات من نوع PCI وسيكون جهاز المودم واحداً منها ، ابحث عن أسماء الشركات الصانعة لذلك النوع من البطاقات فيها مثلاً
bash$ lspci -vv | grep -i 'modem'
إذا كنت قد عرفته في ويندوز يمكنك أن تجد اسمه هناك. بعد أن تعرف نوع طقم رقائق المودم عليك تنزيل التعريف جاهزاً الذي يتناسب مع النواة لديك والأفضل أن تنزل الملف المصدري للتعريف وتصنفه بنفسك(حتى تنجح في تصنيفه فأنت بحاجة للملفات المصدرية للنواة)، ومن أكثر المودمات من هذا النوع شيوعا في هذا الوقت conexant وهي نفسها المعروفة باسم rockwell ولكنها لا توفر تعريفا لمودماتها بل توفرها شركة أخرى اسمها www.linuxant.com هذه التعريفات نصف مفتوحة وتقدم هذه التعريفات مجانا (مع بعض الميزات الناقصة أو بيتا كامل المزايا) أو مقابل نقود إذا لم يعجبك هذا الوضع أرسل شكوى إلى الشركة المصنعة للمودم (وليس conexant لأنها تصنع طقم الرقائق فقط) وهناك تعريفات له كاملة المزايا لكنها beta يمكنك تجدها http://naboo.homelinux.org/~daniel/download/hsf_hcf_riptide-beta/
 تحذير

اذا كنت ستشتري مودم جديد فليكن مودم خارجي تسلسله serial لأن المودم الداخلي زائف وحتى لو كان له تعريف فإنه يبقى زائف ولن تضمن بقاء تعريفه موجود مع الزمن. أو على الأقل داخلي حقيقي وفي أسوأ الأحوال تلك التي لها تعريفات مفتوحة المصدر مثل IBM ACP-mwave (التعريف موجود في ديبيان باسم mwavem'). أما المودمات الداخلية الوهمية بتعرفات مغلقة أو نصف مفتوحة فيجب تجنبها. لأن المودم الوهمي يعمل على تقليل سرعة الجهاز بنسبة 25% على الأقل. كما أنه ليس أرخص في الغالب.

على أي حال اذهب إلى موقع www.linuxant.com واحصل على الملف المصدري وهو ملف بإمتداد tgz إما لنوع HSF إما لنوع HCF وضعه في بيتك ثم قم بما يلي

bash$ su -
bash# cd ~ali # الذهاب إلى بيت المستخدم حيث الملف
bash# pwd
 /home/ali
bash# tar -xvzf the-driver # اضغط تاب بدل من الاسم الطويل
bash# make install 
bash# hsfconfig --help
bash# hsfconfig
bash# hsfconfig --region # تحديد رقم المنطقة (المقسم الدولي) للبلد
bash# cd /dev
bash# ln -sf ttySHSF0 modem
bash# ls -l ttySHSF0  # انظر إلى الأذونات
bash# chmod 777 ttySHSF0  # السماح للجميع بالوصول للشبكة
bash# exit
bash$ hsfconfig
bash$ hsfconfig --region

هذا المثال لنوع HSF استبدل hsfconfig بالمناسب من hcfpciconfig أو hcfusbconfig واستعمال الجهاز المناسب /dev/ttySHSF0 أو /dev/ttySHCF0 أو /dev/ttySHCFUSB0

أو ملف rpm العام وليس الخاص بتوزيعة hsfmodem-VER.rpm.zip أو hcfmodem-VER.rpm.zip فتركيبه أسهل من المصدري. وضعه في بيتك ثم قم بما يلي

bash$ su -
bash# cd ~ali # الذهاب إلى بيت المستخدم حيث الملف
bash# pwd
 /home/ali
bash# unzip hsf*.zip # اضغط تاب بدل من الاسم الطويل
bash# rpm -Uvh hsf*.rpm 
bash# cd /dev 
bash# ln -sf ttySHSF0 modem
bash# ls -l ttySHSF0  # انظر إلى الأذونات
bash# chmod 777 ttySHSF0  # السماح للجميع بالوصول للشبكة
bash# hsfconfig --region # تحديد رقم المنطقة (المقسم الدولي) للبلد
bash# exit 
bash$ hsfconfig
bash$ hsfconfig --region

أما بالنسبة لمودم motorola فقد أعلنت الشركة أنها أوقفت إنتاجها منه ودعمها له (يعني ألقه في القمامة) وهي أيضاً لم تطلق الملف المصدري للتعريفات ليقوم مجتمع لينكس بالمهمة عنها ، وآخر تعريف من الشركة هو للنواة الموجودة مع ريدهات 7.1 أظن أنها النواة 2.4.5 فالطريقة الأولى لتعريفه هي بتركيب تلك النواة من حزمة أو من المصدر ثم تنزيل التعريف من موقع الشركة. ولكن الحل الأفضل هو تنزيل تعريفات من موقع www.sm56.tk هناك قائمة من الملفات الملف المطلوب يعتمد على اصدار gcc لديك التوزيعات الحديثة تعتمد الإصدار 3، بعد فك الضغط نفذ make install من مجلد التعريف ثم عدل الأذونات .

لاحظ النقطة المهمة بعد تركيب تعريف مودمات motorola أو conexant هي بأن تقوم بجعل الجهاز الذي يمثل المودم مثلاً /dev/sm56 يحمل الأذونات المناسبة ويعود للمجموعة والمالك المناسب لرؤية ما اعتمدته توزيعتك للجهاز الحقيقي ls -l /dev/ttyS0 حيث سترى من مالك الملف وإلى أي مجموعة ينتمي وما هي الأذونات عندها قم بعمل أذونات مشابهة لجهاز مودم الذي ركّبت تعريفه

الكثير من المودمات الوهمية أصبحت توفر تعريف لنظام لينكس من أهمها IBM ACP-mwave بشكل مفتوح ولكن أكثرها توفر تعريفات جاهزة أو نصف مفتوحة (حجة الشركات التي تحجب تلك المعومات أن هناك top-secret confidential hardware specification! أو أن ذلك يتطلب نفقات إضافية) وهذا أمر مزعج.

إذا كنت من مستخدمي ماندريك وتريد تعريف المودم قم بالخطوات السابقة ثم اذهب إلى مركز تحكم ماندريك ثم network ثم connection عندها قم بطلب الفحص التلقائي وعند عرض الخيارات تأكد من وضع علامة على Normal modem ثم وعند عرض قائمة الأجهزة عليك اختر /dev/modem فهذا أفضل من اختيار /dev/ttyS2 أو غيره ثم جرب الاتصال بضغط connect فإذا حصل الاتصال اخرج و جرب عمل ذلك من kppp و gnome-ppp فإذا فشل هنا تكون المشكلة مشلكة أذونات

قد تفيدك هذه الوصلات

www.linmodems.org Linmodems Support for Soft-Modems
http://flash.to/modem http://start.at/modem - Uptodate Modems Table by chipset
في التوزيعات الأخرى عليك اعداد الاتصال عن طريق برنامج kppp أو gnome-ppp بحيث يستعملان الجهاز /dev/modem أو الجهاز المقابل للمودم عندك.

4.1.9 وسائط التخزين

وسائط التخزين نوعان ثابتة وقابلة للنزع يتم التعامل معهما عن طريق أمر mount حيث يقوم بضم (أو احتضان أو تحميل) محتويات (نظام ملفات) الموجود على جهاز معين وضمها إلى نظام ملفات لينكس وبالتحديد إلى مجلد فارغ (إن لم يكن فارغ ستختفي محتويته حتى إلغاء الضم) وجعل هذا المجلد يبدو وكأنه هو ذلك الجهاز (ولكن في الحقيقة لا تتغير محتويات الدليل ويبقى الدليل فارغاً) وعادة ما يكون المجلد داخل مجلد /mnt بكلمات أخرى نعمل مجلد فارغ ثم نقول للأمر الضم mount بأن يرسل محتويات الجهاز الفلاني إلى ذلك المجلد ولكن هنا لا يجري عملية نقل للملفات وإنما هي عملية إفتراضية (وهمية) ، وكل تغيير يحدث على الملفات هناك سيجري على الملفات داخل الجهاز وهذه صيغته

mount [-t FS_TYPE] [-o OPTIONS] DEVICE MOUNT_POINT
حيث DEVICE هو الجهاز مثل /dev/fd0 انظر الملحق والأمثلة و MOUNT_POINT هو اسم المجلد و FS_TYPE هي نوع نظام الملفات المستعمل ويمكن أن تكون ext3, ext2, reiserfs, vfat, ntfs ... وإذا لم تكن تعلم أو لا تريد أن تحدد استعمل auto (في هذه الحالة سيعمل لينكس على تجريبهم بالترتيب الموجود في /etc/filesystems فإن لم يوجد /proc/filesystems مما يسمح لك بتقديم vfat على msdos مثلاً) و OPTIONS هي الخيارات الإضافية مثل ro أي قراءة فقط و rw أي قراءة وكتابة و غيرها الكثير مثل remount,loop,umask=VALUE,noauto,users... انظر كتيب استعمال mount

وعندما تنتهي منه يجب أن نلغي الضم وذلك حتى يقوم النظام بإنهاء عمليات التحديث اللتي قام بها (تقوم معظم أنظمة التشغيل الحديثة مثل لينكس بجدولة بعض الأعمال حتى لا ترهق الجهاز وتتسبب في تقليل سرعته فإذا سحبت القرص المرن قد تكون بعض البيانات لم تكتب لأنها مجدولة لذا من الضروري إعلام النظام قبل نزع القرص) وللقيام بذلك اكتب أي من :

umount DEVICE
umount MOUNT_POINT
مثلاً لضم القرص المرن الأول /dev/fd0 إلى مجلد /mnt/floppy ونريد منه أن يخمن نظام الملفات تلقائياً auto نكتب
bash# mount -t auto /dev/fd0 /mnt/floppy
لإلغاء الضم نكتب
bash# umount /mnt/floppy

 تحذير

إذا كان الجهاز الفلاني مضموم إلى مجلد معين فلا تغيّر اسم ذلك المجلد أو تنقله أو تعدل عليه ولكن لك الحرية بالعمل في محتوياته وليس فيه ،وإذا أردت أن تغير اسمه عليك أولا بإلغاء الضم umount ثم التعديل، وأيضا نفس الشيء ينطبق على الجهاز فمثلا لا يجوز أن تهيء format قرص وهو مضموم ولا يجوز أن تفحصه إلا إذا كان للقراءة فقط

وعملية الضم مؤقتة تزول عند إقلاع لينكس فيعود المجلد فارغا ولكن بدلاً من كتابة هذا الأمر دائما للوسائط الثابتة في كل مرة يتم تشغيل الجهاز يتم ذلك تلقائياً وتقرأ هذه البيانات من ملف جدول أنظمة الملفات /etc/fstab الذي له الصيغة التالية الجهاز ثم المكان ثم نوع الملفات إذا كنت لاتريد أن تحدد ضع auto ثم تأتي الخيارات الإضافية (التي كنا ضعها بعد -o في أمر mount) إذا لم يكن هناك خيارات ضع defaults ثم ترتيب النسخ الاحتياطي ب dump (أداة نادرة الاستخدام) صفر إذا لم ترد شملها به. ثم ترتيب الفحص في حال الحاجة ويمكن أن تجعلها صفر لأن النظام ext3 مضاد لمثل هذه الأشياء

# This is /etc/fstab هذان السطران بلا معنى ويمكن حذفهما
# Device	Mount_Point	FS_TYPE		Options		dump seq
/dev/hda7	/		ext3		defaults	0 1
# بعض الأنظمة الخاصة مثل proc و swap تحدثا عنهم من قبل
none		/proc		proc		defaults	0 0
none		/dev/pts	devpts		mode=0620	0 0
/dev/hda9	swap		swap		defaults	0 0
# أقسام غير لينكس
/dev/hda1	/mnt/win_c	vfat		umask=0		0 0
# قابلة للنزع
/dev/fd0	/mnt/floppy	auto		noauto,users	0 0
/dev/cdrom	/mnt/cdrom	auto		noauto,users,nohide 0 0

وللأجهزة الموجدة في هذا الجدول فقط أذكر الجهاز أو المجلد (مكان التعريف) مثلا

bash# mount /mnt/floppy
bash# mount -o remount,ro /mnt/win_c

لحظة لماذا هناك قرص مرن ومدمج هنا، ألم نقل أنه للنظم الثابتة؟ وهو لغير الثابة والهدف هو توفير عليك كتابة الجهاز واïمكان معا فقط تكتب أحدهما والآخر يقرأ من الملف لاحظ الخيار noauto الذي يعني :لا تقوم بضمه تلقائيا عند الإقلاع. أما users فتعني أن المستخدم العادي يمكنه إعطاء الأمر بالضم وإلغاء ذلك دون الحاجة لأن يكون جذرا.

أما الوسائط القابلة للنزع مثل القرص المدمج يمكن ذلك بالنقر بالزر الأيمن على سطح المكتب في غنوم أو بالنقر على أيقونة القرص في KDE بالزر الأيمن ثم mount و عادة ما توفر التوزيعات الحديثة برنامج يعرفها تلقائيا بمجرد وضعها مثلا أقراص USB ولكن إذا أردت أن تقم بذلك يدويا فالأمر هو mount كما ذكرنا وإذا لم يكن ضمن fstab عليك أن تذكر المكان والجهاز معاً ويستعمل هكذا : المثال لقرص مدمج

bash# dmesg | grep Floppy
Floppy drive(s): fd0 is 1.44M
bash# dmesg | grep CD
 hdb: CDROM ATAPI blah blah ...
bash# mount /dev/hdb /mnt/cdrom
طبعاً تقوم التوزيعات بعمل وصلة باسم /dev/cdrom تشير للجهاز الخاص بالقرص المدمج فيكفي أن تكتب mount /dev/cdrom /mnt/cdrom مكان mount /dev/hdb /mnt/cdrom وقد تفضل أن تضيف الخيار nohide لإظهار بعض الملفات غير المرئية.

ويوجد الكثير من أقراص SCSI الثابتة أو القابلة للنزع تعمل ، وهو ناقل قياسي صمم للأقراص الكبيرة جداً والجاهزية العالية وهناك الكثير من الوسائط يمكن التعامل معها وكأنها موصولة على SCSI مع أنها ليست كذلك، مثل مسجل الأقراص المدمجة CD-RW و الكثير من وسائط تخزين usb والكاميرات الرقمية. الجهاز المقابل لأول قرص SCSI هو /dev/sda ويمكن أن يكون على شكل أقسام مثل القسم الأول من الجهاز السابق /dev/sda1. هناك بعض الأدوات الخاصة بأجهزة SCSI في حزمة 'scsitools' مثل:

  • scsiinfo - يعرض معلومات المستوى التحتي low-level ويعدل في إعدادات الجهاز.
  • scsifmt - تهيئة تحتية لأجهزة SCSI.
  • sraw - قياس أداء عمليات الإدخال والإخراج التحتية متخطياً عملية cache.
  • scsistop - تشغيل وإيقاف جهاز SCSI.
  • scsi-spin - زيادة أو تقليل دوران جهاز SCSI.
وهناك أدوات خاصة بناقل USB مثل 'usbview' وهو عارض GTK+ لحالة أجهزة USB، حيث يعرض تمثيل رسومي للأجهزة المرتبطة على هذا الناقل.

 تلميح

لتسريع عمل القرص يمكنك إلغاء خيار تحديث زمن الوصول access time أي زمن آخر قراءة للملف (وليس آخر تعديل فيه) ، وهذا الخيار قد يستعمل في شطب ملفات لم ينظر إليها أحد منذ فترة ولكن إذا لم تكن تخطط لمثل هذا الشيء على قرص معين (غالباً أقراص مرنة أو أقسام ويندوز) أضف خيار noatime إلى الخيارات في fstab أو عند إعطاء أمر الضم مثلاً اكتب mount -o noatime /mnt/win_c أو اجعل سطر في fstab يشبه /dev/hda1 /mnt/win_c vfat umask=0,noatime 0 0

هناك خيارات أخرى مثل nodev وتعني أنه لا يوجد ملفات-أجهزة على ذلك النظام أي أن الملفات التي لها العلامة الخاصة بالأجهزة مثل /dev/fd0 ستمثل ملف عادي وليس جهاز يستخدم هذا الخيار مع الأقراص المدمجة وأقسام ويندوز وهناك خيار noexec أي لا يوجد برامج تنفيذية على ذلك النظام و خيار nosuid أي لا يوجد برامج تنفذ على أنها المستخدم الجذر ويستخدمان أيضا مع أقسام ويندوز

من الخيارات الأخرى هو خيار تحديد طريقة الكتابة هل هي متزامة sync أم غير متزامنة async الأولى وهي الأكثر أمناً يتم فيها كتابة البيانات فيزيائياً أولاً بأول أما الأخرى فيتم جدولتها والقيام بها بالتدريج في الخلفية دون أن تشعر في وقت ما قبل إنهاء الضم.

تحتوي الأنوية الحديثة خياراً اسمه supermount يمكنك من ضم أجهزة تلقائياً بمجرد محاولة الوصول إليها وإلغاء الضم تلقائياً بعد فترة من عدم استعمالها وهذا مفيد للأقراص القابلة للنزع مثل القرص المدمج و المرن. فإذا كانت النواة في توزيعتك لا تدعم هذا الخيار اعمل نوواة بنفسك تأكد من أن CONFIG_SUPERMOUNT فعّال. من أكثر التوزيعات التي تستخدم هذه الطريقة هي ماندريك وهذا يجعل العمل به بسهولة ويندوز! لنقم بضم القرص المدمج بهذه الطريقة بشكل مؤقت للتجريب. اكتب وأنت جذر

bash# mount -t supermont -o dev=/dev/cdrom,--,ro,users none /mnt/cdrom
تلك الصيغة المعقدة ليست سوى أنك تضع supermount على أنه نوع نظام الملفات (مكان auto في الطريقة العادية) ونضع الجهاز هو none و نقطة الضم(المجلد) /mnt/cdrom أما الخيارات بعد-o فهي أكثر تعقيداً من ذي قبل فهي تقسم إلى قسمين الخيارات العادية (الخاصة بنظام الملفات المحدد) وهي تلك التي تأتي بعد -- في حالتنا ro,users أما الخيارات قبل -- فهي ترسل إلى supermount لتحدد الجهاز الذي تتعامل معه dev=/dev/cdrom ويمكن أن تضيف نوع نظام الملفات بشكل اختياري مثلاً fs=vfat لأن تحديد نوع نظام الملفات باستعمال -t غير ممكن فهي تساوي supermount. لجعل هذه التغيرات دائمة عدل ملف /etc/fstab بحيث يصبح السطر الخاص بالقرص المدمج من الشكل الأول إلى الثاني.
#/dev/cdrom	/mnt/cdrom auto		ro,users			0 0
none		/mnt/cdrom supermont	dev=/dev/cdrom,--,ro,users	0 0
يمكنك أن تضيف خياراً ل supermount لمنع سحب القرص المدمج tray_lock=always أو إبقائها على tray_lock=onwrite هذه الخيارات توضع قبل --.
 تحذير

وفي الملفات الكبيرة والأقراص المنهكة(المخدوشة) يقوم بإلغاء الضم لطول الوقت timeout مما يجعل نقلك للملفات جحيما فقد تختفي وأنت تحاول تعليمها ويسبب هذا البرنامج مشاكل مع OpenOffice لذا أنصح بإلغاء ال supermount واستعمال الطريقة العادية اذهب إلى مركز التحكم ثم mount points ثم القرص الذي تريد ثم أزل اختيار supermount أو بتعديل fstab في الجزء المتعلق بالقرص المرن والمدمج ليبدو مثل الذي في الأعلى أو إذا كنت تريد طريقة أكثر أمناً يمكنك تجريب autofs.

هناك طريقة تسمى autofs تقوم بضم النظام بمجرد محاولة الوصول إليه تلغي ذلك بعد انتهاء العملية.تمتاز هذه عن supermount أنك تستطيع تحديد timeout وأنك لست بحاجة للعبث في /etc/fstab ولعمل هذه الطريقة ركب الحزمة المسماة autofs ثم حرر الملف /etc/auto.master ليحتوي اسم المجلد الذي يحتوي المجلدات الفرعة لتكون نقاط الضمmount_point ويفضل أن تجعله مخفيا وراء نقطة مثلا /.auto ثم اسم ملف الإعدادات ثم بعض الخيارات مثل الوقت timeout وهو بالثواني أنا أضعه على ثانية واحدة ولك البعض يفضل أكثر من ذلك بكثير (هذا يعتمد على ذوقك وعلى مدى جودة السواقة/القارئ والقرص)

/.auto	/etc/auto.map	--timeout=1

ثم ملف الإعدادات الذي ذكرناه في مثالنا auto.map سيبدوا هكذا

cdrom	-fstype=auto,ro,nosuid,nodev	:/dev/cdrom
floppy	-fstype=auto	:/dev/fd0

الآن افتح مجلد جديد باسم /.auto ولا داع لأن تفتح مجلدات بداخله بالأسماء التي كتبتها في الخانة الأولى مثل cdrom و floppy لأن autofs تتولى ذلك ثم افتح مجلد غير مخفي باسم auto وضع به وصلات للمجلدات الفرعية من /.auto المجلدات ثم اذهب إلى الأداة الخاصة بالخدمات مثلا Mandy Control Center->System->Services أو Menu->Settings-> services أو بالأداة redhat-config-services أو system-config-services وقم بتفعيل أداة ال autofs أو automount أو يمكنك من سطر الأوامر chkconfig --level 12345 autofs on ثم service autofs start ثم بكل بساطة كلما أردت التعامل مع القرص المرن و المدمج اذهب إلى مجلد auto وبالمناسبة هذا لا يلغي طريقة mount إنها لاتزال موجودة في مجلد mnt

$ su
# mkdir /.auto /auto
# cd /auto
# ln -s ../.auto/floppy floppy
# ln -s ../.auto/cdrom cdrom
# chkconfig --level 12345 autofs on
# service autofs start

4.1.10 الأقراص المدمجة

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

bash# hdparm -E 4 /dev/cdrom
bash# setcd -x 4 /dev/cdrom
bash# echo 'current_speed:4' > /proc/ide/hdb/settings
حيث hdb هو الجهاز الذي يمثل القرص المدمج والرقم 4 هو السرعة (يبدو أني بالغت في تقليل السرعة جرب 32) . كما أن هذه الأوامر تفيد أحياناً بقراءة كمية أكبر (1 ميغا في المثال الأول) دفعة واحدة وهي تقوم باستعمال رقاقة dma Direct Memory Access إذا أمكن أي دون أن تشغل المعالج
bash# echo 'file_readahead:1048576' > /proc/ide/hdb/settings
bash# echo 'unmaskirq:1' > /proc/ide/hdb/settings
bash# echo 'using_dma:1' > /proc/ide/hdb/settings
bash# hdparm -d1 -a8 -u1 /dev/cdrom

أما بالنسبة لحرق/تسجيل الأقراص المدمجة بواسطة البرامج الرسومية أو الأداة cdrecord فإن عليك معرفة أي قرص تستعمل عند الإعداد. أول ما يكون ذلك بتمرير hdX=ide-scsi للنواة عبر برنامج الإقلاع حيث hdX هو مكان وصل المسجل مثل hdb إذا primary slave حتى نستطيع التعامل معه على أنه قرص scsi (إضافة لكونه ide فيزائياً). برنامج cdrecord يأخذ معامل لتحديد الجهاز dev=DEVICE في الأنوية الحديثة 2.6 يمكن أن يكون DEVICE بكل بساطة الجهاز الذي يمثل القرص مثلاً /dev/hdb أو /dev/cdwriter ولكن في الأنوية الأقدم فإن هناك مغامرة والصواب هو استعمال 3 أرقام تفصلها فاصلة ‘,‘ هذه أرقام خاصة scsi يمكنك أن تستعمل الأمر

bash# cdrecord -scanbus
الخيار speed لتحديد السرعة ويجب أن تكون من ليس فقط مدعومة من الجهاز بل ومن وسيلة التخزين (القرص) وأحياناً بعض الأقراص لا تستطيع الكتابة بالسرعة المكتوبة عليها. كما أن انشغال الحاسوب ببرامج أخرى أو تأخر القراءة من المصدر قد يسبب فشل العملية (حاول بسرعة أقل ويمكنك لتجريب دون المغامرة بالخيار dummy) ، يمكن تسجيل قرص صوتي أو قرص ملفات بالخيار data وتحديد ملف iso الذي تريد حرقه أو - لأخذه من الدخل القياسي الذي يمكن أن يولده برنامج mkisofs مثلاً
bash# mkisofs -J -r mydir/ | cdrecord -v speed=12 dev=0,1,0 -data -
ولكن لمزيد من الموثوقية سجل ملف iso ثم احرقه
bash# mkisofs -J -r -o foo.iso mydir/
bash# cdrecord -v speed=12 dev=0,1,0 -data foo.iso
إذا كان القرص يمكن إعادة الكتابة عليه CD-RW فعليك استعمال الخيار blank=fast. حتى يقوم mkisofs بالسماح بالملفات ذات الأسماء الطويلة بطريقة ويندوز MS Joliet استعمل الخيار J أو الطريقة الأقرب إلى لينكس RockRidge (التي تحفظ الأذونات والوصلات والملفات الخاصة ولكنه لا يظهر الأسماء كاملة في ويندوز) بالخيار R.

4.1.11 إدارة الطاقة

يوفر لينكس دعم لإدارة الطاقة المتقدمة Advanced Power Managment إذا كانت ال BIOS تدعم ذلك لمعرفة ذلك اكتب dmesg | grep apm حتى يتوفر ذلك عليك تشغيل خدمة apmd من أداة الخدمات في توزيعتك أو بكتابة /etc/init.d/apmd restart وهو نص تنفيذي يعمل في أحد خطواته على استدعاء modprobe apm ثم تشغيل مراقب /usr/sbin/apmd إذا لم تنجح جرب تفعيلها في إعدادات ال BIOS ثم حاول من جديد.

نظام جديد يتوفر في النواة 2.4 على شكل رقعة (موجود في 2.4.19) ثم إضيفت في 2.6 بشكل رسمي لنفس الغاية يسمى ACPI وهو بشكل أساسي في لوحات إنتل الجديدة وغيرها ويوفر إضافات مثل قياس للحرارة سرعة المروحة. ولكن نظام BIOS إما أن يدعم هذه أو تلك وليس الإثنين معاً (قد يوجد خيار في إعدادات BIOS يخبرك أيها تعمل مثلاً ACPI aware OS أي أن يعمل وفق النظام الجديد) لهذا إذا لم ينجح apmd جرب acpid وذلك عبر تفعيل الخدمة أو تنفيذ /etc/init.d/acpid restart وهو نص يعمل على إضافة بعض Modules الخاصة به بواسطة modprobe وهي button و battary و ac و fan و thermal و processor مثلاً modprobe ac ومراقب acpid. يمكنك مراقبته والتحكم فيه من خلال الأداة acpi مثلاً لعرض تقرير acpi -V كما ويمكن من خلال الدليل proc

bash# cat /proc/acpi/battery/BAT0/state
bash# cat /proc/acpi/battery/BAT0/info

تفيد هذه الخدمة أو تلك أيضا في تتبع حالة بطارية الجهاز المحمول كل ما عليك هو وضع ال applet المسؤول عن ذلك في غنوم يكون ذلك بالنقر في مكان فارغ من اللوحة بالزر الأيمن ثم اختيار add ثم laptop battary. أما إكس يمكن تفعيل خاصية "نجمة الطاقة" للتوفير من خلال xset بالأمر xset +dpms ويمكن تحديد زمن الدخول في كل طور من أطوار التوفير (بالثواني) xset dpms standby_time suspend_time off_time ولتغيير وضع الشاشة يدوياً من طور إلى آخر xset dpms force standby|suspend|off|on يوجد الكثير من البرنامج الجميلة التي تراقب الطاقة/البطارية/الحرارة منها على شكل بريمجات أو على شكل gdesklets أو karmba

4.1.12 كلمة عن الذاكرة رام

ذكرنا في بند 1.5.8 من فصل كيفية تركيب لينكس معلومات عن إعداد BIOS كي لا يقوم بحجز جزء من رام كظل لتعليمات ROM لأنه يهدف لتسريعها وقلنا أن علينا تثبيط هذا الخيار لأن لينكس لا يستعمل ROM فبهذا نكسب المزيد من مساحة رام راجع ذلك البند. كما توفر BIOS خياراً لفحص صلاحية رام parity check من خلال رقاقة إضافية في بطاقة الرام أصغر من أخواتها وإلا فإن فحص الصلاحية يكون بلا فائدة؛ لهذا تأكد من وجود تلك الرقاقة عند شراء رام جديدة.

بعض BIOS المتخلفة التي ظن مصنعوها أن الرام لن تزيد عن 64 ميغا-بايت تقدم تقارير مضللة عن حجم الذاكرة رام، بإمكانك أن تعرف حجم الرام (ومعلومات أخرى مثل المساحة المتبقية سواء من ذاكرة رام أو ذاكرة التبديل swap) بواسطة الأمر free كما يمكنك معرفة حجم الرام أيضاً بواسطة dmesg ولأنه طويل استعمل dmesg | grep LOWMEM في حال كنت من أصحاب تلك الأجهزة المتخلفة فإن لينكس يعطيك فرصة تشغيل ذاكرة رام التي لا يراها BIOS بعد حدود 64 ميغا-بايت بتمرير الحجم الحقيقي كمعامل أثناء الإقلاع عبر LILO أو GRUB بإضافة mem=128m حيث 128 هو الحجم الحقيقي لذاكرة ram. تذكر في lilo نستخدم append وفي grup نضيف ما نريد بعد أمر kernel.

4.1.13 الاختيار والشراء

إذا كنت تريد شراء حاسوب أو قطعة عتاد له، ننصحك بأن تقرأ وثيقة توافقية العتاد مع لينكس Linux Hardware Compatibility HOWTO لمؤلفها Steven Pritchard و The Unix Hardware Buyer HOWTO لمؤلفها Eric Raymond وغيرها من وثائق مشروع 'www.tldp.org'، وبأن تبحث في منتديات لينكس ومجموعات المستخدمين LUG والمجموعات الإخبارية على شبكة USENET، لأنه سؤال البائ ضرب من العبث إلا إذا كان البائع من عشاق لينكس أو أنه في متجر متخصص في لينكس كما www.LinuxMall.com. بعض شركات توزيعات لينكس تبيع الحواسيب (المكتبية والمحمولة Laptops) مركب عليها لينكس ومعدة مسبقاً له، مثل www.mandriva.com و www.linspire.com. وهناك بعض منتجي الحواسيب انظر 'www.hp.com/go/linux' و 'www.hp.com/desktops/linux'. لمعلومات عامة(ليست خاصة بنظام لينكس) عن أي العتاد أفضل يمكنك قراءة الأسئلة الأكثر تكراراً www.faqs.org/faqs/pc-hardware-faq.

النصيحة الأولى هي بأن لا تشتري أي قطعة لها تصميم سري أو مملوك (ملكية فكرية) أو مغلق proprietary closed لا يتوفر له تعريف مفتوح المصدر (حتى لو وفّر الصانع دعماً جيداً لتعريف مغلق المصدر في صورة جاهزة) لأن هؤلاء يفترضون أن طاقمهم أذكى من بقية العالم، وأنهم قادرين على توفير الدعم أكثر من المجتمع، وأنهم ومصالحهم أهم من مصالحك. يعلق Richard B. Johnson (رافضاً حجة "تواصيف واجهة العتاد السرية - confidential hardware interface specifications" لتبرير التعريفات مغلقة المصدر): "لم أكن أعلم أنكم متقدمون لهذه الدرجة، فأنتم لا تستعملون واجهة عتاد إلكترونية! إن تواصيف واجهة العتاد عندكم تستخدم علم المغنطو-هيدرو-ديناميكا وهو سري، أليس كذلك ؟"

لنأخذ حالة استخدام تعريفين مغلقين لقطعتين على نفس الحاسوب، فإذا واجهت مشكلة، كيف ستتبعها، وإلى من ترسل الشكاوى يقول Alan Cox في قوائم لينكس البريدية: "إذا كان تعريف nVidia محمل - ترسل الشكاوى إلى nVidia. إذا كان vmware محمل - ترسل الشكاوى إلى vmware. إذا كانا كلاهما، فليكن الله في عونك، لا أحد سواه يستطيع ذلك" إن المجتمع لن يساعدك فليس لديهم المصدر كل ما يستطيعون هو الهندسة العكسية التي تأخذ وقتاً طويلاً وهي ليست ممتعة (إذا اعتبرنا متعة البرمجة هي دافعهم في البرمجة المستندة إلى المجتمع) يعلق Alan Cox قائلاً: "لو دفعت لي nVidia بقدر ما دفعت لشركة مايكروسوفت من أجل ترخيص التعريف لوجدت الوقت الكافي". يجب أن نتعلم مما حصل مع مودمات Motorola SM56 (كان له تعريف مغلق المصدر في يوم من الأيام) إنهم لا ينتجونه الآن، ولا يطوّرونه ولا يدعمونه، إنه لا يستند إلى علم المغنطو-هيدرو-ديناميكا السري، إنه مجرد مودم وهمي قديم وبسيط؛ ومع كل ذلك فهم لا يزالون يعتبرونه ملكية فكرية سرية ويرفضون تقديم مصدر التعريفات القديمة ليقوم المجتمع بطويرها عنهم!

النصيحة التالية بأن تهمل كل اختبارات قياس الأداء benchmarks التي خرجت عن سياقها لتصبح "هذا أفضل بنسبة 20% من ذاك" لأنها يجب أن تحدد في أي مجال أو عند أي نوع من الاستعمال. إخراجها من السياق يقود إلى قرارات خاطئة، سنناقش الآن قياسات أداء المعالجات على سبيل المثال.

ما يكتب على المعالج بوحدات الهيتز Hz (أي GHz أو MHz) يسمى سرعة الساعة، وأحياناً كلما زادت سرعة الساعة زادت سرعة الأداء، مثلاً الاختبارات التي قام بها Ram Samudrala (في ما يخص أبحاثه على برنامج محاكاة طي البروتينات في www.ram.org) أظهرت أن Athlon 1.5 GHz أسرع بنسبة 38% من a PIII 1.0 GHz وهذا ما يمكن توقعه، ولكن نفس Athlon 1.5 GHz كان أسرع بنسبة 8.66% من Xeon 1.7 GHz في نفس الاختبار مع أن ساعة الأخير أسرع. المفتاح لفهم ذلك هو بأن تعلم أن المعالجات المختلفة لها معدلات مختلفة لعدد التعليمات في دَقة الساعة IPC (أي Instructions Per Clock ratio) فهي لمعالج Xeon السابق 6 IPC و لمعالج Athlon فهي 9 IPC، إنها مثل رجل يمشي ويعد 1، 2، 3، ... إلخ. سرعة عده قد لا تتزامن مع خطواته، سرعة عده لا قيمة لها ولا حتى عدد الخطوات في الثانية إذا كان طول خطوته قصيرة وخطوة شخص آخر طويلة. قد يكون أحدهما أسرع في السباقات القصيرة والآخر أسرع في سباقات التحمل الطويلة، بعض المعالجات أسرع في العمليات على الأعداد الصحيحة وآخر أسرع في العمليات على الأعداد النسبية ذات الفاصلة العائمة (الكسور). إذا دفعت الكثير مقابل معالج صمم للعمليات على الأعداد النسبية وكنت تعمل في تطوير برمجيات النظم وأغلب عملك في تصنيف الأنوية والأدوات فإنك على الأغلب لن تقوم بعملة نسبية واحدة!! لقد ضاع المبلغ الإضافي هباءً. من جهة أخرى إذا كنت تقوم بأبحاث على بيانات كسرية خام empirical float point data في مشروع لمحاكات الأخطار الزلزالية باستعمال نسخة معدلة من FORTRAN ، عندها من الأفضل أن يدعم المعالج ما يشبه خاصية 3DNow من AMD. نعود إلى التشبيه مع الرجل الذي يمشي، ماذا لو كان يعرف طرق مختصرة أو أنه يقوم بأكثر من شيء دفعة واحدة، تقنية MMX في المعالج الحديثة (بما فيها Pentium II وما بعده من Intel و K7 وما بعده من AMD) التي تستطيع أن تقوم بأربعة عمليات 8-بت بسرعة عملية واحدة (بمعاملتها كأنها عدد من 32-بت) ولكن حتى تحصل على هذه الميّزة يجب أن تستعمل البرمجيات التي تستدعي التعليمات الجديدة. أداء المعالج ليس كل شيء كما لو أن الرجل الذي لا يجيد الركض عنده سيارة! إذا كنت تشغل الألعاب أغلب الوقت فإنك ستلاحظ أن الأمر يعتمد على دعم OpenGL مباشرة في بطاقة العرض (كرت الشاشة) والتسريع الرسومي العتادي (طبعاً يجب أن يدعمه التعريف)، فحتى PIII بطيء مع هكذا بطاقة أفضل من PIV مع بطاقة عرض دون تسريع عتادي، لأن البطاقات بالتسريع العتادي تحتوي على ما نسميه معالجات لصيقة attached processors تقوم بمهمة محددة بوقت أسرع من المعالج الأساسي تاركةً إياه ليقوم بأعمال أخرى بينما هي تعمل.

النصيحة الأخيرة أن تشتري الأفضل بغض النظر عن الشركة الصانعة، أو الاسم الذي كتب على العلبة، لا تتردد في شراء الأجهزة المتوافقة clones إذا كانت أفضل. لا تشتري brand name computer "الأصلي" بأسعار مبالغ فيها خصوصاً إذا كنت تقيم خارج البلاد التي تقع ضمن خطط الدعم (مثل أغلب دول العالم الثالث) لأن المبلغ الإضافي يذهب لتغطية خدمة الدعم التي لن تحصل عليها. أحد أصدقائي اشترى جهاز "أصلي" مرتفع الثمن من شركة معروفة وعند أول محاولة لطلب الدعم

  • "أ: نعم، لدينا أحدث المنتجات، ونغطي كامل البلاد ..."
  • "ب: أعرف ذلك، لدي واحد وأنا أتصل بخصوص الدعم -"
  • "أ: لا، آسف، أنا مجرد موزع معتمد! اتصل بالوكيل أو المكتب الإقليمي في تلك-الدولة-البعيدة."
وضع Andr D. Balsa قائماً في وثيقة Linux Benchmarking HOWTO لعوامل لا معنى لها ويجب تجاهلها:
  1. سمعة الصانع (لا تقاس ولا معنى لها).
  2. حصة الصانع من السوق (معلومة بلا معننى وفي غير مكانها).
  3. حجم الحملة الترويجية الدعائية.
  4. عوامل غير منطقية (مثل الخزعبلات والأحكام المسبقة: "هل ترغب بشراء معالج X131313ZAP ولونه زهري ؟")
  5. القيمة المعنوية (لا معنى له ولا يقاس وغير منطقي).
  6. الغالي سعره فيه.
إذا كنت تقوم بأبحاث أو تحتاج لخادمات تقوم بعمل شاق لشركة كبرى وتحتاج أداء يتخطى أفضل حاسوب معروف فعليك تكوين شبكة عنقودية من الحواسيب cluster of computers انظر فصل 5.3 تشغيل الخادمات أو أحد حلول المعالجة المتوازية Parallel Processing الأخرى، يمكنك الرجو إلى Linux Parallel Processing HOWTO لمؤلفه Hank Dietz.

4.1.13 ملحق أسماء الأجهزة

تجد في موقع www.lanana.org/docs/device-list قائمة مفصلة بالأجهزة كما يتعامل معها لينكس وأدناه قائمة مختصرة

		[can be mounted]
/dev/hda	First whole IDE hard disk or CD
	/dev/hda1 First partition on it
/dev/ram0
/dev/fd0
	/dev/fd0u1440
	/dev/fd0u1722
	/dev/fd0u2880
/dev/loop0
/dev/sda	First SCSI disk whole (as ide)
	/dev/sda1 ... First partitin in the 1st scsi (as ide)
/dev/st0	First SCSI tape, mode 0
/dev/st0l	First SCSI tape, mode 1
/dev/nst0	First SCSI tape, mode 0, no rewind
/dev/md0	First metadisk(RAID) group
/dev/nwflash	Netwinder flash memory
/dev/scd0	First SCSI CD-ROM (or SCSI emulated)
/dev/sr0	First SCSI CD-ROM  (old)
/dev/rom0	First ROM card (rw)
/dev/rrom0	First ROM card (ro)
/dev/flash0	First flash memory card (rw)
/dev/fflash0	First flash memory card (ro)
		[printers]
/dev/lp0	Parallel printer on parport0
/dev/usb/lp0	First USB printer

		[mice]
/dev/usb/mouse0		First USB mouse
/dev/logibm		Logitech bus mouse
/dev/psaux		PS/2-style mouse port
/dev/inportbm		Microsoft Inport bus mouse
/dev/atibm		ATI XL bus mouse
/dev/jbm		J-mouse
/dev/amigamouse		Amiga mouse (68k/Amiga)
/dev/atarimouse		Atari mouse
/dev/sunmouse		Sun mouse
/dev/amigamouse1	Second Amiga mouse
/dev/smouse		Simple serial mouse driver
/dev/pc110pad		IBM PC-110 digitizer pad
/dev/adbmouse		Apple Desktop Bus mouse
/dev/vrtpanel		Vr41xx embedded touch panel
/dev/vpcmouse		Connectix Virtual PC Mouse
		[other input]
/dev/input/js0			First joystick
/dev/touchscreen/ucb1x00	UCB 1x00 touchscreen
/dev/touchscreen/mk712		MK712 touchscreen
/dev/usb/scanner0		USB scanner
/dev/sg0			First generic SCSI device may be scanner
/dev/scanners/cuecat		CueCat barcode scanner
/dev/gs4500			Genius 4500 handheld scanner
/dev/wvisfgrab			Quanta WinVision frame grabber
/dev/video0			Video capture/overlay device
/dev/radio0			Radio device
/dev/vtx0			Teletext device
/dev/vttuner			TV tuner on teletext interface
/dev/dcxx0			miroVIDEO DC10/30 capture/playback card
/dev/av0			Philips SAA7146-based audio/video card
		[other]
/dev/usb/cpad0	Synaptics cPad (mouse/LCD)
/dev/phone0	First telephony device
/dev/ttyTB0	First USB BlueTooth device
		[symbolic links]
/dev/mouse	mouse port	Current mouse device
/dev/tape	tape device	Current tape device
/dev/cdrom	CD-ROM device	Current CD-ROM device
/dev/cdwriter	CD-writer	Current CD-writer device
/dev/scanner	scanner		Current scanner device
/dev/modem	modem port	Current dialout device
/dev/root	root device	Current root filesystem
/dev/swap	swap device	Current swap device
المحتويات
حقوق النسخ والملكية الفكرة
ما هو لينكس؟
كيف تركب نظام لينكس؟
حقوق النسخ المرفوعة
وثائق التخويف

عرب-آيز
مجتمع لينكس العربي
موسوعة ثواب
موسوعة ويكيبيديا
تعريف البرمجيات الحرة
تعريف مفتوحة المصدر
LinuxToday
Linux.org
Linux.com
SlashDot
FreshMeat
LWN.net
توزيعات لينكس
النسخة الإسلامية لأوبنتو
عَرَبيان
جواثا (أول مسجد في أوروبا)
المزيد من التوزيعات هنا

إسلاميات
    برامج:
بريمج أوقات الصلاة
بريمج التقويم الهجري
    صوتيات:
محاضرات: قصص الأنبياء (نبيل العوضي)
أناشيد
اطلب نسختك مجاناً
لكي تصلك أقراص لينكس أوبونتو Ubuntu أصلية مجاناً والتوصيل مجاناً لن تدفع فلساً واحداً ولن تجبر على رؤية دعايات. كل ما عليك هو أن تنقر هنا.
مقالات
    تقنية:
تسجيل وتحويل الصوتيات
تعريف الماسح الضوئي في لينكس
    ساخرة:
من أجل ذلك لا تقرأ
الفيلة والصراع العربي الإسرائيلي
بلاغات
التبليغ عن إعلانات غير مرغوبة
عثرات وأخطاء إملائية
وصلات لا تعمل: