Skip to content

Daily Archives: 2008 April 13

ලිනක්ස් සහ HDA මෝඩම්

පූර්විකාව

අළුත් අවුරුද්දට බදුල්ලේ සිට නිවසට ආවේ දවස් කිහිපයක නිවාඩුවක් ගත කිරීමටත් එක්කයි. ඔබට මතක ඇති මා මීට පෙර සටහනක් තැබුවා ජංගම දුරකථනයක් හෝ CDMA දුරකථනයක් ලිනක්ස් සමග සම්බන්ධ කරන ආකාරය ගැන. නමුත් ඉතින් මගේ නිවසේ තිබෙන්නේ ටෙලිකොම් රැහැන් දුරකථන සබඳතාවකුයි. කොහමටත් ඉතින් කිලෝ බයිටයකට ශත දෙක බැගින් අයකරන GPRS ගාස්තු වලට වඩා අඩු නිසා මා තීරණය කලා ටෙලිකොම් රැහැන් දුරකථනයෙන් ඉන්ටර්නෙට් හා සම්බන්ධ වීමට. ඉතින් දැන් නිවසේ සිට ඉන්ටර්නෙට් හා සම්බන්ධ වීමට නම් මොඩම් එකක අවශ්‍යයි නේ. මා භාවිතා කරන ජංගම පරිගණකයේ අභ්‍යන්තර මොඩමයක් ඇතිමුත් මෙතෙක් එය ලිනක්ස් සඳහා භාවිතා කිරීමේ අවශ්‍යතාවක් නම් මතුවූයේ නැහැ. ප්‍රශ්නය මතුවුනේ මේ අභ්‍යන්තර මොඩමය ස්ථාපනයේදීයි.

සටහන

පලමු පියවර වුනේ අභ්‍යන්තර මොඩමය හඳුනාගැනීමට උත්සාහ කිරීමයි. මේ සඳහා මා භාවිතා කලේ පරිගණකයේ PCI, PCIExpress, AGP ආදී Bus වලට සම්බන්ධ කර ඇති උපාංග ගැන විස්තර ලබාදෙන lspci විධානයයි. (මෙහිදී ඔබ root ලෙස ලොග් වී ඇතිනම් /sbin/ අවශ්‍ය වන්නේ නැහැ. lspci හි ප්‍රතිධානය කියවීමේ පහසුව තකා less වෙත හරවා යවා තිබෙනවා).
“sudo /sbin/lspci | less”
නමුත් මොඩමයක් ගැන සඳහනක් වත් ඉහත විධානයෙන් පිටවූයේ නැහැ. ඉතින් වැඩි විස්තර ලබාදෙන “sudo /sbin/lspci -vv | less” දුන්නත් ප්‍රතිඵලය එලෙසමයි. මොඩමයක් ගැන කිසිම සඳහනක් නැහැ. නමුත් පරිගණකයේ පැහැදිලිවම දුරකථන රැහැන සවි කිරීම පිණිස සම්බන්ධකයක් තිබෙනවා. එනම් අභ්‍යන්තර මොඩමයක් තිබෙනවා. ඉතින් මෝඩමය සවිවී ඇත්තේ PCMCIA හෝ USB ආකාරයටදැයි දැන ගැනීමට “lspcmcia -vv” සහ “lsusb -vv” විධාන දුන්නත් මොඩමයක් ගැන කිසිම සඳහනක් නැහැ. ඉතින් අවසානයේදී පරිගණකය වින්ඩෝස් වලින් පණ ගන්වා මොඩමය පරිගණකයට සම්බන්ධ වී ඇති ආකාරය නිරීක්ෂණය කලා.

device-manager

රූපය: වින්ඩෝස් Device Manager හි HDA මෝඩමය පෙන්වන අයුරු

මෙහිදී තමයි ඉහත විධාන මගින් මොඩමය හඳුනා නොගැනීමට හේතුව පසක් වුනේ. මගේ පරිගණකයේ ඇත්තේ HDA- වින්මොඩමයකුයි (Winmodem). (සොෆ්ට්මොඩම් – softmodem කියලත් හඳුන්වනවා). මෙය හා සාමාන්‍ය වින්මොඩමයක් අතර වෙනස තමයි මොඩමය පරිගණකයේ PCI බසයට කෙලින්ම සම්බන්ධ වී නොතිබීම. එය සම්බන්ධ වී ඇත්තේ Intel High Definition Audio (Intel HDA) හි සහ-පද්ධතියක් (Subsystem) ලෙසයි. වෙනත් විදිහකට කියනවානම් මොඩමය ඇත්තේ ශ්‍රව්‍ය පද්ධතිය තුලයි.

දැන් ඉතින් නැවතත් ලිනක්ස් වල සිට පහත විධානය දුන්නා. “aplay -l”. ( aplay යනු alsa-utils බහාලුම මගින් සපයන අල්සා ශ්‍රව්‍ය පද්ධතියේ ප්ලේබැක් ඩිවයිසස් පෙන්නුම් කරන සහ wave ගොනු වාදනය කිරීම කල හැකි මෙවලමකුයි.) මේ ඉන්නේ සැඟවී තිබූ මොඩමය එලියට!

**** List of PLAYBACK Hardware Devices ****
card 0: Intel [HDA Intel], device 0: ALC260 Analog [ALC260 Analog]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 0: Intel [HDA Intel], device 6: Si3054 Modem [Si3054 Modem]
Subdevices: 1/1
Subdevice #0: subdevice #0

මෙතැන් සිටනම් සියල්ල පැහැදිලි වුනා. මේ මොඩමයට අවශ්‍ය මූලික සහාය Intel HDA මොඩියුලය මගින් දක්වනවා. එනම් snd-hda-intel මගින්. නමුත් මොඩමය භාවිතා කිරීමට එය පද්ධතියේ සීරියල් ඩිවයිස් එකක් ලෙස ස්ථාපිත විය යුතුයි. මේ high level සහාය දැක්වීමට මෙවලමක් තිබෙනවා smartlink-slmodem නමින්. මේ සම්බන්ධයෙන් සහ සියළුම වින්මොඩම්, ලින්මොඩම් වලට හැරවීම ගැන වැඩි විස්තර සපයන මේ අඩවියට යන්න අමතක කරන්න එපා. මෙහි ඇති scanmodem නම් මෙවලම මගින් ඔබේ පද්ධතිය පිරික්සා එහි ඇති මොඩම ගැන විස්තර විතරක් නෙවෙයි අව්ශ්‍ය ධාවක ස්ථාපනය ගැනත් උපදෙස් සපයනවා. (මාත් මෙතනින් ආරම්භ කලා නම් ඉහත් කරදර අත් වන්නේ නැහැ)

ඉන්පසු ඉහත සඳහන් කල smartlink-slmodem හි කම්පයිල් කරන ලද වෙළුම (SLMODEMD.gcc4.1.tar.gz)  බාගත කර එහි ඇති slmodemd ගොනුව /usr/bin/ වෙත කොපි කලා. දැන් පහත විධානය දීමෙන් නව සීරියල් ඩිවයිස් එකක් ලෙස මොඩමය පද්ධතියට එකතු වෙනවා.
“sudo slmodemd -c SRILANKA –alsa hw:0,6 & “ මෙහි ඇති hw:0,6 යන්නෙන් ඉහත aplay -l විධානයේ ඇති card # එක සහ device # එක නිරූපණය වෙනවා. ඉහත විධානයේ ප්‍රතිධානය පහත අයුරු නම් දැන් අපට භාවිතා කල හැකි මොඩමයක් ස්ථාපනය වී හමාරයි. ‘/dev/ttySL0‘ නමින් නව මෝඩමයක් ස්ථාපනය වී ඇති අයුරු බලන්න.

SmartLink Soft Modem: version 2.9.11 Feb 17 2008 09:31:10
symbolic link `/dev/ttySL0′ -> `/dev/pts/1′ created.
modem `hw:0,6′ created. TTY is `/dev/pts/1′
Use `/dev/ttySL0‘ as modem device, Ctrl+C for termination.

ඉන්පසු මීට පෙර සටහනකින් පැවසූ විදිහට System->Administration->Network තුලින් ඔබට නව ppp සබඳතාවක් පිහිටුවිය හැකියි. නමුත් ඔබට මෙම System->Administration->Network මගින් සකසන /etc/wvdial.conf ගොනුවේ එක් වෙනස් කමක් නම් කල යුතු වෙනවා පහත අයුරින්. එනම් ඔබේ මොඩමය ගැන විස්තර සපයන [Modem#] කොටසට “Carrier Check = no” යන්නත් එක් විය යුතුයි.

[Modem1]
Modem = /dev/ttySL0
Baud = 460800
SetVolume = 0
Dial Command = ATDT
Init1 = ATZ
Init3 = ATM0
FlowControl = NOFLOW
Carrier Check = no
[Dialer SLT]
Username = xxxxxx
Password = xxxxxx
Phone = 1250
Stupid Mode = 1
Init1 = ATZ
Init2 = ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0
Inherits = Modem1

ඉහත විස්තර සහ විශේෂයෙන්ම අඩවියේ ඇති ලින්මොඩම් ගැන විස්තර අධ්‍යයනයෙන් ඔබටත් ඔබේ සැඟවී ඇති HDA මොඩමය භාවිතා කල හැකි වේවි.