4.1 تعريف العتاد كتاب لينكس الشامل >>

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

4.1.1 مقدمة

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

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

إذا كنت تريد شراء جهاز أو بطاقة جديدة قد تفضل قراءة وثيقة توافقية العتاد مع لينكس Linux Hardware Compatibility HOWTO من موقع www.tldp.org، والسؤال في منتديات لينكس عنها ، ولكن سؤال البائع ضرب من العبث إلا إذا كان البائع متخصص في لينكس كما www.LinuxMall.com لمعلومات عامة(ليست خاصة بنظام لينكس) عن أي العتاد أفضل يمكنك قراءة الأسئلة الأكثر تكراراً www.faqs.org/faqs/pc-hardware-faq.

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

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.

يقوم برنامج الإعداد بتعريف كرت الشاشة بالشكل الصحيح (في ريدهات 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.nvdia حتى تستخدمها عندما تعيد هذا الكرت بدلاً من إعادة التعريف،

tipتلميح

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

ثم اكتب lspci ستظهر قائمة بكل البطاقات pci/agp ابحث عن اسم كرت الشاشة الذي لديك فيها وهو يبدأ ب vga (للمعرفة فقط)
bash$ lspci | grep -i 'vga'
ثم شغل أحد برامج تعريف كرت الشاشة لعمل ملف الإعدادات مثل تجنب الخيارات الثلاث الأخيرة وشغل البرنامج الخاص بالتوزيعة تستطيع تعديل بعض الخيارات بتحرير ملف 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

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

glxinfo
glxinfo | grep direct
فإذا كان الجواب no هذا يعني أنك تستخدم العادي وليس المسرع

إذا كانت بطاقة العرض لديك من 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
# اضغط F6
# ابحث عن 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 بطاقة الصوت

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

فهي تستطيع كشف بطاقة الصوت تلقائياً. ما تفعله هذه الأدوات هو عملية إضافة التعرفات إلى النواة بواسطة modprobe.
tipتلميح

يظهر في بعض التوزيعات أنه عرّف بطاقة الصوت وأظهر لك نوعها ولكنك لا تسمع أي شيء (خاصة في 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-Howto
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 الطابعة

تأتي معظم التوزيعات بنظام لإعداد الطابعات LPD أي Line Printer Daemon انظر القوائم الخاصة بتوزيعتك. حيث يسمح هذا النظام بالطباعة على طابعة محلية مثل /dev/lp0 أو على جهاز يونكس/لينكس آخر lp@elsewhere.net أو على طابعة مشاركة في شبكة سامبا (ويندوز) SMB://host/shared_printer. وهناك نظام آخر مطور يسمى COMMON UNIX PRINTING SYSTEM و cups للاختصار إعداد هذا النظام المطور سهل جداً ببساطة بعد تركيب الحزمة وتفعيل الخدمة ( وذلك بchkconfig --level 2345 cups on ثم service cups start ) ثم التأكد من السماح بها بوضع disable = no في الملف /etc/xinetd.d/cups-lpd، ثم فتح أي متصفح مثل mozilla أو epiphany أو konquror أو حتى lynx ثم كتابة العنوان http://localhost:631 ثم اتباع التعليمات. وهو نظام متوافق مع سابقه فيمكنك استعمال أدوات مثل lpr أو lp.

Common Unix Printing System

لمزيد من المعلومات عن الطابعات والطباعة في لينكس انظر www.linuxprinting.org القائمة بالطابعات المدعومة ووصلات لتعريفات احترافية. يمكن إدارة الطابعات من خلال الأمر lpadmin مثلاً لإضافة طابعة تسلسلية باسم MyPrinter ثم وضها كطابعة تلقائية استعمل

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
مثلاً لإضافة طابعة على شبكة ويندوغ باسم 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
لاحظ أن كلمة السر ستظهر في أمر ps. من أكثر الطابعات شيوعاً هي HP ويوجد الكثير عنها في موقع http://hp.sf.net و http://hpinkjet.sf.net شركة hp توفر دعماً جيداً للينكس بل وحتى أجهزة معدة مسبقاً انظر www.hp.com/go/linux و www.hp.com/desktops/linux ولكن تفقد موقعهم والمواقع السابقة قبل شراء أي طابعة بغض النظر عن النوع.

التعريفات التي يوفرها cups عامة وأنت بحاجة إلى تعريفات محسنة توجد عدة حزم مثل foomatic و hpinkjet التوزيعات تأتي بها في الغالب.

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

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

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

يكون تعريق بطاقة التلفاز ببساطة بإعطاء البرامج مثل xawtv أو tvtime اسم الجهاز الصحيح الذي يمثل البطاقة انظر القائمة في الأسفل. أما كاميرا الويب فإنك تشغلها من خلال برنامج المؤتمرات عن بعد مثل gnomemeeting إضافة للبرنامجين xawtv أو tvtime. أما الكاميرات الرقمية فيمكن التعامل معه من خلال mount أو من خلال البرامج الخاصة.

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

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

dmesg | grep eth
lspci -v
ثم عليك إعداد شبكة كما في فصل إعداد الشبكات. أما إذا كان الربط يتم من خلال الاتصال الهاتفي 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 يمكنك تجدها www.mbsi.ca/hcflinux أو www.mbsi.ca/hsflinux
warningتحذير

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

على أي حال اذهب إلى موقع www.linuxant.com أو www.mbsi.ca/hcflinux أو www.mbsi.ca/hsflinux واحصل على الملف المصدري وهو ملف بإمتداد 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 ثم conection عندها قم بطلب الفحص التلقائي وعند عرض الخيارات تأكد من وضع علامة على Normal modem ثم وعند عرض قائمة الأجهزة عليك اختر /dev/modem فهذا أفضل من اختيار /dev/ttyS2 أو غيره ثم جرب الاتصال بضغط conect فإذا حصل الاتصال اخرج و جرب عمل ذلك من 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

warningتحذير

إذا كان الجهاز الفلاني مضموم إلى مجلد معين فلا تغيّر اسم ذلك المجلد أو تنقله أو تعدل عليه ولكن لك الحرية بالعمل في محتوياته وليس فيه ،وإذا أردت أن تغير اسمه عليك أولا بإلغاء الضم 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

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

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

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

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

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

ويوجد الكثير من الأجهزة القابلة للنزع تعمل وكأنها موصولة على scisi مثل مسجل الأقراص المدمجة CD-RW و الكثير من وسائط تخزين usb والكاميرات الرقمية والجهاز المقابل لها هو /dev/sda ويمكن أن يكون على شكل أقسام مثل /dev/sda1

tipتلميح

لتسريع عمل القرص يمكنك إلغاء خيار تحديث زمن الوصول 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 هذه الخيارات توضع قبل --.
warningتحذير

وفي الملفات الكبيرة والأقراص المنهكة(المخدوشة) يقوم بإلغاء الضم لطول الوقت 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 -r mydir/ | cdrecord -v speed=12 dev=0,1,0 -data -
ولكن لمزيد من الموثوقية سجل ملف iso ثم احرقه
bash# mkisofs -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 | less في حال كنت من أصحاب تلك الأجهزة المتخلفة فإن لينكس يعطيك فرصة تشغيل ذاكرة رام التي لا يراها BIOS بعد حدود 64 ميغا-بايت بتمرير الحجم الحقيقي كمعامل أثناء الإقلاع عبر LILO أو GRUB بإضافة mem=128m حيث 128 هو الحجم الحقيقي لذاكرة ram. تذكر في lilo نستخدم append وفي grup نضيف ما نريد بعد أمر kernel.

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

<< السابق كتاب لينكس الشامل التالي >>