Linux ကို text-terminal

14.1 (/ etc / inittab များတွင်အသုံးပြု) သည် Getty

Getty ဖို့နိဒါန်း

ကွန်ပျူတာဖွင့်စတင်ပါသည် (သို့မဟုတ်အဆင့်ဆင့် run ကိုပြောင်းရွေ့) အခါ, တစ်ဦး Getty command ကိုတစ်ဦးအမှတ်စဉ်ဆိပ်ကမ်းကိုအပေါ်တစ်ဦးရဲ့ login ဖြစ်စဉ်ကိုပြေး (နှင့်ချိတ်ဆက် terminal ကို) ရှိသည်နိုင်ရန်အတွက် / etc / inittab ဖိုင်ထဲသို့သွင်းထားရမည်ဖြစ်သည်။ က command line ကနေ Getty running ပြဿနာများ (Programs ကိုအဘယ်ကြောင့်ကြည့်ရှုဖို့ရပ်တန့်ရ command line ကနေ Getty ပြေးခဲ့လျှင်ကြည့်ပါ) ဖြစ်ပေါ်စေနိုင်ပါတယ်။ Getty မယ်တစ်ဦး TTY (က terminal ကို) ရရှိသွားတဲ့။ တစ်ခုချင်းစီကို terminal ကို၎င်း၏ကိုယ်ပိုင် Getty command ကိုလိုအပ်ပါတယ်။ တိုင်း / etc / inittab ဖိုင်ထဲမှာ console ကိုအနည်းဆုံး Getty command ကိုလည်းရှိပါသည်။ ဒီရှာကလာမယ့်တကဆိပ်ကမ်းများအတွက် Getty command များကိုထားလေ၏။ ဤဖိုင်သင်ပြုရန်လိုအပ်ပါတယ်အားလုံးသူတို့ကို uncomment (ထိုဦးဆောင် # ကိုဖယ်ရှား) နှင့်အနည်းငယ်အငြင်းပွားမှုများကိုပြောင်းလဲဖို့ဖြစ်ပါတယ်ဒါကြောင့်ထွက် commented ဖြစ်ကြောင်းစာသားကိုဆိပ်ကမ်းများအတွက်နမူနာ Getty လိုင်းများင်နိုင်ပါသည်။

ခွင့်ပြုထားတဲ့အဆိုပါအငြင်းပွားမှုများသင်အသုံးပြုရသော Getty အပေါ်မူတည်:
တိုက်ရိုက်ချိတ်ဆက်ဆိပ်ကမ်းများအတွက်အကောင်းဆုံးနှစျခု Getty နေသောခေါင်းစဉ်:

နှစ်ဦးက Getty အကောင်းဆုံး dial-အတွက် modems ဘို့ (သို့တိုက်ရိုက်ချိတ်ဆက်ဆိပ်ကမ်းများအတွက်ရှောင်ရှား) နေသောခေါင်းစဉ်:

ရိုးရှင်းသော Getty သင်တစ်ဦးကိုမှန်ကန် Text-terminal ကိုမသုံးကြပါလျှင်သုံးစွဲဖို့။ အများစုက Linux ကိုအသုံးပြုသူများသည်၎င်းတို့၏မော်နီတာမှာထိုတိရစ္ဆာန်တကောင်မျှကိုသုံးပါ:

သင့်ရဲ့ Linux ကိုဖြန့်ဖြူး Text-ဆိပ်ကမ်းများအတွက် ps_getty သို့မဟုတ် agetty ဖြစ်စေအတူပါလာပေမည်။ တချို့ကဖြန့်ဝေမထောက်ပံ့။ သင် / etc ထဲမှာအပြီးထားအငြင်းပွားမှုများ / ကွာခြား inittab ကတည်းကသငျသညျရှိသည်သောတဦးတည်းကိုဆုံးဖြတ်ရန်လိုအပ်နိုင်ပါသည်ဒါကြောင့်ကံမကောင်းစွာပဲသူတို့မကြာခဏပဲ "Getty က" ခေါ်ပါ။ debian (ထို utility-linux ကိုအထုပ်အတွက်) agetty အသုံးပြုသည်။ ps_getty: RedHat နှင့် Fedora မှာဖြစ်သော ps_getty ကိုအသုံးပြု

သင်ရှိသည် getty ရာဆုံးဖြတ်ရန်ဖို့ကြိုးစားမယ့်နောက်ဆုံးအပန်းဖြေစခန်းအဖြစ်, သငျသညျ (များသောအားဖြင့်အတွင်း / sbin) က၎င်း၏ executable code တွေထုတ်စစ်ဆေးလိမ့်မယ်။ ps_getty ဒီကုဒ်ထဲမှာ embedded / etc / gettydefs ရှိပါတယ်။ ထိုသို့ရှာဖွေ, / sbin နှင့်အမျိုးအစားကိုသွား:
ညှို့ Getty | grep Getty
Getty အထက်ပါ agetty အမှန်တကယ်ဖြစ်တယ်ဆိုရင်အလျှင်းမဖြစ်ပေါ်လာစေမည်။ သို့သျောလညျးသငျသညျ agetty စာရိုက်ရှိပါက:
-h Getty
[-hiLmw] ရွေးချယ်စရာများကိုပြသသင့်ပါတယ်။

သင် Getty ရှိသည်မဟုတ်ကြဘူးဆိုပါကသင်သည်အခြားဖြန့်ဝေခြင်းနှင့် RPM နဲ့ Debian packages များအကြားပြောင်းတပါးအစီအစဉ်ကိုစစ်ဆေးချင်တာပါ။ source code ကို Getty ဆော့ဝဲကနေ download နိုင်ပါသည်။

သငျသညျ (ဥပမာသင်ကသာ 3 ကာကွယ်နိမ့်ဆုံးအရေအတွက်ကသုံးနေလျှင်: transmit ခံယူနှင့်ဘုံ signal ကိုမြေပြင်) Modem ကိုထိန်းချုပ်လိုင်းများ အသုံးပြု. မရနေတယ်ဆိုရင်သင်က Getty a "ကိုဒေသခံ" အလံ အသုံးပြု. ဒီသိစေသင့်တယ်။ ဒီပုံစံသင်အသုံးပြုရသော Getty ပေါ်တွင်မူတည်သည်။

Getty ရဲ့ login ပြီးနောက်ပိတ် (နှင့် respawn နိုငျသညျ)

သင်လော့ဂ်ပြီးနောက် Getty ဖြစ်စဉ်ကိုအပြေးမရှိတော့ကြောင်း ( "ps -ax" သို့မဟုတ် "ptree", "ထိပ်တန်း" ကိုအသုံးပြုခြင်းအားဖြင့်) သတိထားမိပါလိမ့်မယ်။ အဲဒါကိုဘယျလိုဖွစျခဲ့သလဲ သင့်ရဲ့ shell ကိုသတ်လျှင်အဘယ်ကြောင့် Getty နောက်တဖန်ပြန်လည်စတင်ရန်သနည်း? ဤတွင်အဘယ်ကြောင့်ပါပဲ။

သင်သည်သင်၏ user name ကိုရိုက်ထည့်ပြီးနောက်, Getty ကကြာနှင့်သင့် user name ကိုကပြောပြရဲ့ login အစီအစဉ်ကိုခေါ်ဆိုသည်။ အဆိုပါ Getty လုပ်ငန်းစဉ်ရဲ့ login ဖြစ်စဉ်ကိုဖြင့်အစားထိုးသည်။ အဆိုပါရဲ့ login ဖြစ်စဉ်ကိုသင့်ရဲ့စကားဝှက်ကိုဖိုင်ထဲမှာသတ်မှတ်ထားသမျှဖြစ်စဉ်ကိုသူကများနှင့်စတင်စစ်ဆေးနေ, သင့်စကားဝှက်မေးတယ်။ ဤဖြစ်စဉ်ကိုမကြာခဏကား Bash shell ကိုဖြစ်ပါတယ်။ သို့ဆိုလျှင်ကား Bash ရဲ့ login ဖြစ်စဉ်ကိုစတင်သည်နှင့်အစားထိုးထားသည်။ တဦးတည်းဖြစ်စဉ်ကိုအခြားအစားထိုးခြင်းနှင့်ကား Bash shell ကိုဖြစ်စဉ်ကိုမူလ Getty ဖြစ်စဉ်ကိုအဖြစ်စတင်ခဲ့ကြောင်းကိုသတိပြုပါ။ ဒီများ၏သက်ရောက်မှုကိုအောက်တွင်ရှင်းပြခဲ့လိမ့်မည်။

အခုတော့ / etc / inittab ဖိုင်ထဲမှာ, Getty ဦးသေဆုံးလျှင် (restart လုပ်လိုက်ပါ) respawn ယူဆနေသည်။ ဒါဟာ Getty ခေါ်ဆိုသောလိုင်းပေါ်တွင်ဒါကပြောပါတယ်။ ဒါပေမယ့်ကား Bash shell ကို (သို့မဟုတ်ရဲ့ login ဖြစ်စဉ်ကို) လျှင် Getty respawns (ပြန်လည်စတင်သည်), ဦးသေဆုံးသည်။ အဘယ်ကြောင့်? ကောင်းပြီ, ဝင်ရောက်ရန်လုပ်ငန်းစဉ်နှင့်ကား Bash နှစ်ဦးစလုံး Getty နှင့်အမွေဥစ္စာဘို့အစားထိုးများမှာ

* စာသား Terminal နှင့်မည်သို့-ရန်အညွှန်း

အဆိုပါအချက်ပြဆက်သွယ်မှုသူတို့၏အရင်အားဖြင့်မြဲမြံစေ။ သငျသညျအသေးစိတျကိုစောငျ့ရှောကျပါလျှင်တကယ်တော့သင်ကအစားထိုးဖြစ်စဉ်ကိုမူရင်းဖြစ်စဉ်ကိုကဲ့သို့တူညီသောဖြစ်စဉ်ကို ID ကိုရပါလိမ့်မယ်သတိထားမိပါလိမ့်မယ်။ ထို့ကြောင့်ကား Bash တူညီတဲ့ process ID number တွေနဲ့အသှငျပွောငျးအတွက် Getty ၏မျိုးဖြစ်ပါတယ်။ ကား Bash အသတ်ခံရသည်ဆိုပါက (Getty တော့ဘူး run မသော်လည်း) Getty သေဆုံးခဲ့ရသည်ရုံကဲ့သို့ဖြစ်၏။ ဤသည် Getty respawning မှု။

တဦးတည်းထွက်တွင်းသို့သည့်အခါ, ထိုအမှတ်စဉ်ဆိပ်ကမ်းကိုပေါ်မှာရှိသမျှဖြစ်စဉ်များအဆိုပါကား Bash shell ကိုအပါအဝင်အသတ်ခံနေကြသည်။ တစ်ဦး hangup signal ကိုပု modem များက DCD ဗို့အား၏တစ်စက်အားဖြင့်အမှတ်စဉ်ဆိပ်ကမ်းကိုစေလွှတ်လျှင်ဤသည်ကိုလည်း (enabled လျှင်) ဖြစ်ပျက်လိမ့်မည်။ DCD အတွက် logout သို့မဟုတ်တစ်စက်ဖြစ်စေ Getty respawning ဖြစ်ပေါ်ပါလိမ့်မယ်။ တဦးတည်းအနေဖြင့် "ထိပ်ဆုံး" ၌ပါသို့မဟုတ် command 'သတ်ပစ် "နဲ့စသည်တို့ကို, အဋ key ကိုနှိပ်ခြင်းဖြင့်သော်လည်းကောင်းကိုယ်တိုင်ကား Bash (သို့မဟုတ်ရဲ့ login) သတ်ဖြတ်နေဖြင့် respawn မှ Getty အတင်းဖြစ်နိုင်သည်။ သငျသညျဖွယ်ရှိ (လျစ်လျူရှုမရနိုငျသော) signal ကို 9 နှင့်အတူသတ်ဖို့လိုအပ်ပါလိမ့်မယ်။

Programs ကိုရပ်တန့်ရ: command line ကနေ Getty ပြေးခဲ့လျှင်

သငျသညျပုံမှန်အားဖြင့်က command line ကနေအတွင်းပိုင်း / etc / inittab နှင့်မထံမှ Getty run သငျ့သညျသို့မဟုတ်အခြား terminal ကိုပေါ်ပြေးအချို့အစီအစဉ်များကိုမမျှော်လင့်ဘဲ (ရပ်တန့်) ကိုဆိုင်းငံ့နိုင်ပါသည်။ (အသင်သည်အဘယ်ကြောင့်ရန်အရေးကြီးပါသည်မပါလျှင်နောင်လာမည့်အပိုင်းကိုကျော်သွား) အဘယ်ကြောင့်ဒီနေရာမှာပါပဲ။ သင်သည်အခြား terminal ကို၏ command line ကနေပြော ttyS1 များအတွက် Getty start အကယ်. tty1 ဆိုသညျကား, ထို့နောက်အဲဒါကိုများပေါ်တွင်အလုပ်လုပ်အမှန်တကယ် terminal ကို ttyS1 ပင်သော်လည်း၎င်း၏ "ထိန်းချုပ် terminal ကို" အဖြစ် tty1 ရပါလိမ့်မယ်။ ထိုသို့မှားထိန်းချုပ် terminal ကိုရှိပါတယ်။ သို့သော်ထိုသို့ inittab ဖိုင်အတွင်း၌စတင်ဖွင့်လျှင်ကထိန်းချုပ်ထား terminal ကို (မှန်ကန်သော) အဖြစ် ttyS1 ရပါလိမ့်မယ်။

ယင်းကိုထိန်းချုပ် terminal ကိုကမှားသော်လည်း (သင် Getty တစ်ခုအငြင်းအခုံအဖြစ် ttyS1 ပေး၏ကတည်းက), ttyS1 မှာရဲ့ login ဒဏ်ငွေအလုပ်လုပ်ပါတယ်။ အဆိုပါစံ input ကိုနှင့် output ကို၎င်းထိန်းချုပ်ထား terminal ကို tty11 ဖြစ်နေဆဲပင်သော်လည်း ttyS1 ဟုသတ်မှတ်နေကြသည်။ ttyS1 မှာ run အခြားပရိုဂရမ် (ttyS1 ချိတ်ဆက်ထားတဲ့) ဒီစံ input ကို / output ကိုအမွေခံရနိုင်ပြီးအရာအားလုံး OK ကိုဖြစ်ပါတယ်။ ဒါပေမဲ့တချို့ပရိုဂရမ်များမှားယွင်းနေသည်အရာကသူတို့ထိန်းချုပ်ထား terminal ကို (tty1) မှဖတ်ရှုဖို့ကြိုးစားနေ၏အမှားလုပ်လိမ့်မည်။ အခုတော့ tty1 ဤအစီအစဉ်များ tty1 အားဖြင့်နောက်ခံ tty1 ကနေဖတ်ရှုနိုင်အောင်ကြိုးစား run ခံရသည်ဟုထင်စေခြင်းငှါဖတ်ရှုဖို့ကြိုးစားခဲ့သောလုပ်ငန်းစဉ်ကိုရပ်တန့်အတွက်ရလာဒ်များ (က ttyS1 ပါပြီသင့်ပါတယ်) ။ (ကနောက်ခံဖြစ်စဉ်ကိုသူ့ရဲ့ထိန်းချုပ် terminal မှဖတ်ရှုခွင့်မပြုပါ။ ) ။ မျက်နှာပြင်ပေါ်ရှိ "[1] + ရပ်သွား": သင်တို့ကဲ့သို့သတင်းစကားတစ်ခုခုမြင်ရလိမ့်မည်။ ဒီနရောမှာသင်မှား Terminal မှတစ်ဆင့်သင်တို့နှင့်အတူအဆက်သွယ်ဖို့ကြိုးစားနေသောလုပ်ငန်းစဉ်နှင့်အတူအပြန်အလှန်မနိုင်ကတည်းကမှီဝဲနေကြသည်။ ဒီကနေမှလွတ်မြောက်ရန်သင်တန်းသင်သည်အခြား terminal ကိုသွားပြီးလုပ်ငန်းစဉ်ကိုသတ်, etc နိုင်ပါတယ်

agetty (Getty အမည်ရှိစေခြင်းငှါ)

/ etc / inittab အတွက်ဥပမာတစ်ခုလိုင်း:

S1: 23: respawn: / sbin / Getty -L 19200 ttyS1 vt102

S1 ttyS1 ကနေဖြစ်ပါတယ်။ 23 Getty ပြေးအဆင့်ဆင့် 2 သို့မဟုတ် 3 respawn ဝင်ရောက်ပေါ်မှာပြေးကြောင်းဆိုလိုတယ် Getty (သို့မဟုတ်ထိုကဲ့သို့သောကား Bash အဖြစ်အစားထိုးမယ့်လုပ်ငန်းစဉ်သည်) ဦးသေဆုံးလျှင်, Getty အလိုအလျှောက်နောက်တဖန် (respawn) ကို start up မည်ဟုဆိုလိုသည်။ / sbin / Getty အဆိုပါ Getty command တစ်ခုဖြစ်သည်။ အဆိုပါ -L (modem ထိန်းချုပ်မှုအချက်ပြလျစ်လျူရှု) ဒေသခံကိုဆိုလိုသည်။ -h (ဥပမာမှာပြမပါ) (stty crtscts အဖြစ်အတူတူပင်) ဟာ့ဒ်ဝဲစီးဆင်းမှုကိုထိန်းချုပ်နိုင်ပါတယ်။ 19200 အဆိုပါ baud rate ကိုဖြစ်ပါတယ်။ ttyS1 / dev / ttyS1 (MS-DOS ထဲမှာ COM2) ကိုဆိုလိုသည်။ vt102 terminal ကိုအမျိုးအစားဖြစ်ပါတယ်နှင့်ဤ Getty ဒီတန်ဖိုးပတ်ဝန်းကျင် variable ကို TERM ထားမည်။ အဘယ်သူမျှမ configuration ဖိုင်များရှိပါတယ်။ Getty တည်းဖြတ်ပြီးနောက် command line ကအပေါ် "init က q" ရိုက်ပြီးသင်တစ်ဦးရဲ့ login prompt ကိုကြည့်ရှုသင့်ပါတယ်။

Agetty & # 39; ကွာခြားမှုနှုန်းပြဿနာများ၏ s ကို Auto-detection စနစ်

အဆိုပါ agetty အစီအစဉ် (မျှကွာခြားမှုနှုန်းအပါအဝင်) terminal ကိုအတွင်းအပြင်သတ်မှတ်ကွာခြားမှုနှုန်း auto-detect လုပ်ဖို့ကြိုးစားပါလိမ့်မယ်။ ဒါဟာ 8-bit နဲ့ data တွေကို bytes ပေါင်း 1-bit နဲ့ကွာခြားမှုနှုန်းကိုထောကျပံ့မပေးပါဘူး။ 8-bit နဲ့ data တွေကို byte (ပေါင်းကွာခြားမှုနှုန်း) ကိုကြည့်ပါ။ သငျသညျကွာခြားမှုနှုန်းသတ်မှတ်ထားဖို့ stty သုံးလျှင် agetty ကြောင့်ပိုင်းတွင်ကွာခြားမှုနှုန်းနည်းနည်းက data တွေကိုနည်းနည်းကြီးလျှင်အဖြစ် thru လာရန်လိုလားပြီးကတည်းကအလိုအလျောက်အားမသတ်မှတ်ထားမည်။ အဲဒါကိုကွာခြားမှုနှုန်း auto-detect နိုင်အောင်သင့်ရဲ့ login-name ကိုရိုက်ထည့်အဖြစ်နောက်ဆုံး bit နဲ့ (ဖြစ်နိုင်သည်တစ်ဦးကွာခြားမှုနှုန်း bit) ရရန်လိုအပ်သည်ထားလို့ဖြစ်ပါတယ်။ သငျသညျကွာခြားမှုနှုန်းကိုသုံးပါလျှင်ထို့ကြောင့်သာ text-terminal ကိုအတွင်းပိုင်းက enable နှင့် agetty က auto-detect နှင့်ကွန်ပျူတာမှာသတ်မှတ်ထားကြကုန်အံ့။ သင့်ရဲ့ Terminal ကိုလက်ခံရရှိကွာခြားမှုနှုန်းကိုထောက်ပံ့ခဲ့လျှင် Getty အဆိုပါ detect နိုင်အောင်သင်တစ်ခုခုရိုက်ထည့်ခင်အထိ, ဝင်ရောက်ရန် prompt ကို garbled ကြည့်ရှုမည်

ကွာခြားမှုနှုန်း။ အဆိုပါ garbled prompt ကို login ဖို့ကြိုးစားနေခြင်းမှစသည်တို့ဧည့်သည်များ, ဟန့်တားမည်ဖြစ်သည်။ ဆိုလိုသည်မှာသင်သည်ချင်ရုံအဘယျသို့ဖြစ်နိုင်ပါတယ်။

ကွာခြားမှုနှုန်း၏အလိုအလျောက်ထောက်လှမ်းနှင့်အတူပြဿနာတစ်ခုတခါတရံရှိပါသည်။ သင်ပထမဦးဆုံးသင့်ရဲ့ရဲ့ login name ကိုရိုက်ထည့်ပြီးနောက်, agetty ၌သငျ logging ပြီးစီးဖို့, ဝင်ရောက်ရန်အစီအစဉ်ကိုစတင်သည်ဘာဖြစ်လို့လဲဆိုတော့ဒါကဖြစ်ပျက်ဖြစ်သည်။ Getty အစီအစဉ်ကွာခြားမှုနှုန်းဆုံးဖြတ်ရန်ရန်ပျက်ကွက်လျှင်, ဝင်ရောက်ရန်ဆုံးဖြတ်ရန်နိုင်လိမ့်မည်မဟုတ်ဒါကြောင့်ကံမကောင်းစွာ, ဝင်ရောက်ရန်အစီအစဉ်ကိုကွာခြားမှုနှုန်း detect မနိုင် ဒါကြောင့်ဖြစ်စေ။ ပထမဦးဆုံးရဲ့ login ကြိုးပမ်းမှုပျက်ကွက်လျှင်, ရဲ့ login (မှားယွင်းတဲ့သတ်မှတ်ကွာခြားမှုနှုန်းနှင့်အတူအားလုံး) စတာတွေ, သင်နောက်တစ်ကြိမ်ကြိုးစားပါစေပါလိမ့်မယ်။ နောက်ဆုံးတော့ login (သို့မဟုတ်အချိန်ကုန်ပြီးနောက်) ပျက်ကွက်ကြိုးစားမှု၏နံပါတ်ပြီးနောက် agetty နောက်တဖန်ထစတင်မည်အပေါင်းတို့နှင့်တကွကျော်ပြန်ရဲ့ login ပာစတင်ပါ။ Getty နောက်တဖန်အပြေးနေသည်နှင့်တစ်ပြိုင်နက်ပြုလုပ်အရာအားလုံးထို့နောက် OK ကိုအလုပ်မလုပ်စေခြင်းငှါဒါဒုတိယအကြိမ်ပါပေါ်မှကွာခြားမှုနှုန်း detect လုပ်ဖို့နိုင်ပေမည်။

မှားယွင်းနေကွာခြားမှုနှုန်းနှင့်တကွ, ရဲ့ login အစီအစဉ်ကိုမှန်ကန်စွာသင်ရိုက်ထည့်သောအရာကိုမဖတ်လို့ရပါတယ်နှငျ့သငျဝငျရောကျနိုငျပါဘူး။ သင့်ရဲ့ Terminal ကိုလက်ခံရရှိကွာခြားမှုနှုန်းကိုထောက်ပံ့လျှင်, သင်တစ်ဦး garbled မျက်နှာပြင်ကိုမြင်ရမှဆက်လက်ပါလိမ့်မယ်။ Getty ကွာခြားမှုနှုန်းတစ်ခု / etc / ကိစ္စကို file ကို detect လုပ်ဖို့ပျက်ကွက်လျှင်များသောအားဖြင့်ကိုယ့်ဟာ prompt ကိုမရောက်မီရှေ့တော်၌ထိုမျက်နှာပြင်မှစွန့်ပစ်လျက်ရှိသည်, ဒါကြောင့်ပိုပြီး garbled စကားလုံးများကိုမျက်နှာပြင်ပေါ်တွင်ပေါ်လာပေမည်။

အဘယ်ကြောင့် agetty ရိုက်ပထမဦးဆုံးစာအားဖြင့်ကွာခြားမှုနှုန်း detect မရနိုင်မလဲ? ဒီနေရာတွင်ဥပမာတစ်ခုဖွင့်: ကယင်း၏ကွာခြားမှုနှုန်းနည်းနည်း 0 (High-အလို့ငှာ bit) နဲ့ 1-bits သည်တစ်ခုကိန်းနဲ့ 8-bit နဲ့က byte ကို detect ဆိုပါစို့။ ဘာကွာခြားမှုနှုန်းပါသနည်း ကောင်းပြီ, 1-bits ၏ကိန်းကထူးဆန်းကွာခြားမှုနှုန်းရဲ့အဓိပ္ပာယ်ရှိ၏။ ဒါပေမယ့်လည်းပဲမပါကွာခြားမှုနှုန်းနဲ့ 8-bit နဲ့ဇာတ်ကောင်ဖြစ်နိုင်ပါတယ်။ ဒါကြောင့်ဝေးသည့်ဆုံးဖြတ်ရန်လမ်းမရှိသောရှိပါတယ်။ သို့သော်ယခုအထိကျွန်တော်ပင်ကွာခြားမှုနှုန်းဖြစ်နိုင်ခြေဖယ်ရှားပစ်ကြပါပြီ။ ကွာခြားမှုနှုန်း၏ထောက်လှမ်းအရှင်ဖျက်သိမ်းရေး၏လုပ်ငန်းစဉ်များကဆက်လက်လုပ်ဆောင်မယ်။

ရိုက်နှိပ်လာမယ့်က byte ကိုပထမဦးဆုံးတဦးတည်းဆင်တူသည်နှင့်သာပင်ကွာခြားမှုနှုန်းဖြစ်နိုင်ခြေဖယ်ရှားပါကကွာခြားမှုနှုန်းဆုံးဖြတ်ရန်နေဆဲမဖြစ်နိုင်ဘူး။ ဤအခြေအနေသည်အသတ်မရှိဆက်လက်နိုင်ပြီးရှားပါးကိစ္စများတွင်ရဲ့ login သင်သည်သင်၏ရဲ့ login-name ကိုပြောင်းလဲပစ်သည်အထိပျက်ကွက်ပါလိမ့်မယ်။ agetty 1 တစ်ဦးကွာခြားမှုနှုန်းနည်းနည်းတွေ့လျှင်ဒီကွာခြားမှုနှုန်း bit နဲ့မ 8-bit နဲ့ဇာတ်ကောင်တစ်ဦးက high-အလို့ငှာနည်းနည်းကြောင်းယူဆပါလိမ့်မယ်။ ထို့ကြောင့်သင်သည်သင်၏ user name ကို (ဆိုလိုသည်မှာသင်တို့၏နာမ ASCII အတွက်ကြောင်း) တွင် Meta-ဇာတ်ကောင် (မြင့်သော bit နဲ့အစု) ကိုသုံးမယူဆတယ်။

တဦးတည်းအမျိုးမျိုးသောနည်းလမ်းတွေထဲမှာ "ရဲ့ login loop" ဟုသို့ရနိုငျသညျ။ သင်သာသင်၏ login နာမအဘို့တစ်ခုတည်းစာတစ်စောင်သို့မဟုတ်နှစ်ဦးကိုရိုက်ထည့်ပြီးတော့ပြန်လာ hit ဆိုပါစို့။ ဤအအက္ခရာများကွာခြားမှုနှုန်းထောက်လှမ်းဘို့လုံလောက်မဟုတ်ခဲ့လျှင်ကွာခြားမှုနှုန်းရှာဖွေတွေ့ရှိခဲ့ပြီးမတိုင်မီ, ထို့နောက်ပြေး login ။ agetty ပထမဦးဆုံးအဖွင့်စတင်ပါသည်အခါသင် terminal ကိုပေါ်နှင့် / သို့မဟုတ်ချိတ်ဆက်ရှိသည်မဟုတ်ကြဘူးလျှင်တစ်ခါတစ်ရံဤပြဿနာကိုတွေ့ကြုံတတ်၏။

သင်ဤ "ရဲ့ login ကွင်းဆက်" ၌မှီဝဲရခဲ့လျှင်အဲဒါကိုထဲကတစ်လမ်းကိုသင် Getty ရဲ့ login prompt ကိုရသည်အထိပြန်လာ key ကိုအကြိမ်ပေါင်းများစွာ hit ရန်ဖြစ်ပါသည်။ အခြားသောနည်းလမ်းပဲအချိန်ကုန်များအတွက်တစ်မိနစ်သို့မဟုတ်ဒီတော့စောင့်ဆိုင်းရန်ဖြစ်ပါသည်။ ထိုအခါ Getty ရဲ့ login prompt ကိုပု Getty program ကမျက်နှာပြင်ပေါ်တွင်တင်ပါလိမ့်မည်နှငျ့သငျဝငျရောကျဖို့ထပ်ကြိုးစားကြည့်လိမ့်မည်။

8-bit နဲ့ data တွေကို byte (ပေါင်းကွာခြားမှုနှုန်း)

ကံမကောင်းစွာပဲ agetty ဒီကွာခြားမှုနှုန်း detect မရနိုင်ပါ။ နှောင်းပိုင်းတွင် 1999 ၏အဖြစ်ကြောင့်ကွာခြားမှုနှုန်း၏ Auto-detection စနစ်ကို disable နှင့်အရှင်မမှန်ကန်ကြောင်းကွာခြားမှုနှုန်း detect လိမ့်မယ်မ option ကိုရှိပါတယ်။ အဆိုပါရလဒ်ရဲ့ login ဖြစ်စဉ်ကိုဗလုံးဗထွေးမည်ဖြစ်ပြီးကွာခြားမှုနှုန်းမှားယွင်းတဲ့သတ်မှတ်ထားပါလိမ့်မည်ဖြစ်ပါသည်။ ထိုသို့ကွာခြားမှုနှုန်းနှင့်အတူ 8-bit နဲ့ data တွေကို bytes ကိုသုံးပါရန်ကြိုးစားမှဖြစ်နိုင်မထင်ထားဘူး။

Getty (getty_ps ၏အစိတ်အပိုင်း)

(ဒီထဲကအများစုဟာ Greg Hankins အားဖြင့်အဟောင်း Serial-ကိုမည်သို့မှ)
ဒီတ configuration ဖိုင်ထဲမှာ entries တွေကိုဝတ်နှင့် / etc / inittab အတွက် entry ကိုထည့်သွင်းဖို့နှစ်ဦးစလုံးလိုအပ်ပါတယ် getty ။ ဒီနေရာတွင်အတွက် configuration ဖိုင် / etc / gettydefs ထဲသို့သွင်းထားသင့် terminal ကိုအသုံးပြုတချို့ဥပမာ entries တွေကိုဖြစ်ကြသည်။

# 38400 bps စကားမပြောနိုင်သော Terminal နှင့် entry ကို DT38400 # B38400 CS8 CLOCAL # B38400 စိတ်ကောင်းသော -ISTRIP CLOCAL # @ S ကို @L ရဲ့ login: # DT38400 # 19200 bps စကားမပြောနိုင်သော Terminal နှင့် entry ကို DT19200 # B19200 CS8 CLOCAL # B19200 စိတ်ကောင်းသော -ISTRIP CLOCAL # @ S ကို @L ရဲ့ login: # DT19200 # 9600 bps စကားမပြောနိုင်သော Terminal နှင့် entry ကို DT9600 # B9600 CS8 CLOCAL # B9600 စိတ်ကောင်းသော -ISTRIP CLOCAL # @ S ကို @L ရဲ့ login: # DT9600

စတာတွေဟာ DT38400, DT19200 ရုံတံဆိပ်များဖြစ်ကြောင်းနှင့်သင် / etc / inittab အတွက်အသုံးပြုအတူတူပင်ဖြစ်ရပါမည်သတိပြုပါ။

သငျသညျချင်လျှင်, သင်ရဲ့ login နဖူးစည်းစာတမ်းအတွက် Getty ပုံနှိပ်စိတ်ဝင်စားစရာကောင်းသောအရာတို့ကိုဖြစ်စေနိုင်ပါတယ်။ ငါ၏အနမူနာမှာတော့ကျွန်မစနစ်အမည်နှင့်ပုံနှိပ်အမှတ်စဉ်လိုင်းရှိသည်။ သင်သည်အခြားသောအရာတို့ကိုထည့်သွင်းနိုင်ပါတယ်: [blockquote

အရိပ် = ဟုတ်ကဲ့] နှုန်းကို bps (ထို @B ကိုတှေ့မွငျသောအခြိနျမှာအကဲဖြတ်) လက်ရှိ @B ။ MM / DD / YY အတွက်လက်ရှိနေ့စွဲ @D ။ အရာ Getty ပူးတွဲနေသည်မှအမှတ်စဉ်လိုင်း @L ။ အဆိုပါစနစ်အားနာမကိုအမှီ @S ။ နာရီအတွက်လက်ရှိအချိန် @T: MM: အက်စ်အက်စ် (24 နာရီ) ။ လက်ရှိတွင်လက်မှတ်ရေးထိုးခဲ့-on ကိုအသုံးပြုသူအရေအတွက်မှာ @U ။ ဒါက non-တရားမဝင်သော ut_name လယ်ကွင်းရှိသည် / etc / utmp ဖိုင်ထဲမှာ entries တွေကို၏နံပါတ်တစ်ရေတွက်သည်။ သူပေးထားတဲ့ defaults ဖိုင်ထဲမှာပေးထားတဲ့အဖြစ်, VERSION ၏တန်ဖိုးကို @V ။ တစ်ခုတည်း '' @ '' ဇာတ်ကောင်ဖော်ပြရန်, '\ @' သို့မဟုတ်တစ်ခုခုကိုကိုသုံးပါ '' @@ '' ။

သငျသညျ / etc / gettydefs တည်းဖြတ်ပြုမိကြသောအခါ, သင် syntax လုပ်နေခြင်းဖြင့်မှန်ကန်သောကြောင်း verify နိုင်သည်

linux ကို # Getty -c / etc / gettydefs

သင့်ရဲ့ Terminal ကို (/etc/default/{uu}getty.ttyS N ကိုသို့မဟုတ် /etc/conf.{uu}getty.ttyS N) တို့ကဲ့သို့သောမှပူးတွဲပါသောအမှတ်စဉ် port ကိုမကအခြား Getty သို့မဟုတ် uugetty config ကိုဖိုင်ကိုလည်းမရှိသေချာအောင်လုပ်ပါ , ဒီအဖြစ်ဖြစ်ကောင်း terminal ကိုအပေါ် Getty running နှင့်အတူဝင်ရောက်စွက်ဖက်မည်ဖြစ်သည်။ သူတို့ထွက်သွားခဲ့လျှင်ထိုကဲ့သို့သောပဋိပက္ခဖြစ်ဖိုင်များကိုဖယ်ရှားပါ။

အဆိုပါအမှတ်စဉ်ဆိပ်ကမ်းကိုအပေါ် Getty ကို run ရန်သင့် / etc / inittab ဖိုင် (သင့်ပတ်ဝန်းကျင်တွင်များအတွက်မှန်ကန်သောသတင်းအချက်အလက်များအတွက်အစား - ဆိပ်ကမ်းကို, အမြန်နှုန်းနှင့်က default terminal ကိုအမျိုးအစား) Edit:

S1: 23: respawn: / sbin / Getty ttyS1 DT9600 vt100 init linux ကို # init က q

ဤအချက်မှာ, သင်သည်သင်၏ terminal ကိုအပေါ်တစ်ဦးရဲ့ login prompt ကိုကြည့်ရှုသင့်ပါတယ်။ သင့်အနေဖြင့် Terminal ကိုဖွင့်အာရုံစူးစိုက်မှုကိုရဖို့ပြန်လာ hit ရန်ရှိသည်လိမ့်မည်။

mgetty

အဆိုပါ "m" modem ကိုဆိုလိုတာပါ။ ဒီပရိုဂရမ်အဓိကအား modems အဘို့ဖြစ်၏နှင့်နှစ်လယ်ပိုင်းတွင် 2000 ၏အဖြစ်ကြောင့် text-ဆိပ်ကမ်းများအတွက်အသုံးပြု recompiling တောင်းမည် (သင်ဟာ့ဒ်ဝဲစီးဆင်းမှုထိန်းချုပ်ရေးကိုအသုံးမပြုလျှင်အများအားဖြင့်တစ်ဦးကိုလက်လုပ် cable ကိုလိုအပ်သည် --and) ။ mgetty.texi: တိုက်ရိုက်ချိတ်ဆက်ဆိပ်ကမ်းများအတွက်မှတ်တမ်းတင်များအတွက်လက်စွဲစာအုပ်၏ "တိုက်ရိုက်" အပိုင်းကိုကြည့်ပါ။

Terminal ကိုများအတွက် configure လုပ်ပြီး၏ပုံသက်သေကို /etc/mgetty/mgetty.config ၏နောက်ဆုံးလိုင်းများမှာကြည့်ပါ။ သင် "toggle-dtr no" ဆိုတဲ့ပြောပါမဟုတ်လျှင်သူက non-တည်ရှိ modem ကို reset တစ်ဦးအချည်းနှီးသောကြိုးပမ်းမှုအတွက်သင်တစ်ဦး modem နှင့်တစ်စက် (negate) ရှိသည်သောကို PC မှာ DTR pin ကိုစဉ်းစားပါလိမ့်မယ်။ တစ်စုံတစ်ဦးကပြုလုပ် terminal ကိုမဆို key ကိုထိခိုက်သည်အထိသင်တစ်ဦးကိုတွေ့မြင်ပါလိမ့်မယ်ဒါကြောင့်အခြားအ Getty မတူဘဲ, mgetty Terminal ကိုမှကိုယ်နှိုက်ကပူးတွဲလိမ့်မည်မဟုတ်လော ဒီဖြစ်ပျက်သည်အထိထိပ်တန်းသို့မဟုတ် ps အတွက် terminal ကိုအဘို့။ / var / log / mgetty အတွက်သစ်လုံး / သင်လျစ်လျူရှုရသော modems သာသက်ဆိုင်နေသောအနည်းငယ်သတိပေးမက်ဆေ့ခ်ျကိုပြသနိုင်ပါတယ်။

ဒီနေရာတွင် / etc / inittab အတွက်ထားရိုးရှင်းသောလိုင်း၏ဥပမာတစ်ခုဖွင့်:

S1: 23: respawn: / sbin / mgetty -r ttyS1