ലിനക്സിൽ ടെക്സ്റ്റ് ടെർമിനലുകൾ

14.1 ഗെറ്റി (/ etc / inittab ൽ ഉപയോഗിച്ചു്)

ഗറ്റിന് ആമുഖം

ഒരു സീരിയൽ പോർട്ടിൽ (അതു് കണക്ട് ചെയ്തിരിക്കുന്ന ടെർമിനൽ) കമ്പ്യൂട്ടർ ആരംഭിക്കുമ്പോഴോ (അല്ലെങ്കിൽ റൺ റേറ്റ് ലെവലിലേക്ക് സ്വിച്ച് ചെയ്യുന്നു) ഒരു ലോഗലീറ്റ് പ്രവർത്തിപ്പിയ്ക്കുന്നതിനു് / etc / inittab ഫയലിൽ ഒരു ബാറ്റ് കമാൻഡ് നൽകേണ്ടതുണ്ടു്. കമാൻഡ് ലൈനിൽ നിന്നും ബാക്കി പ്രവർത്തിപ്പിക്കുന്നത് പ്രശ്നമുണ്ടാക്കാം (കമാൻറ് ലൈനിൽ നിന്ന് ഗേറ്റുകൾ പ്രവർത്തിപ്പിക്കുന്നുണ്ടെങ്കിൽ: എന്തുകൊണ്ട് പ്രോഗ്രാമുകൾ നിർത്തി നിർത്തുന്നു). ഗറ്റി ഒരു ടൈറ്റിൽ (ഒരു ടെർമിനൽ) പോകുന്നു. ഓരോ ടെർമിനലിലും അതിന്റേതായ ബാറ്ററി ആവശ്യമുണ്ട്. ഓരോ / etc / inittab ഫയലിലും കൺസോളിനായി ഒരു ഗ്യാരന്റി കമാൻഡെങ്കിലും ലഭ്യമാണു്. ഇത് കണ്ടെത്തുകയും അതിന് അടുത്തുള്ള യഥാർത്ഥ ടെർമിനലുകൾക്കായി ബൂട്ടി കമാൻഡുകൾ ഇടുകയും ചെയ്യുക. ടെക്സ്റ്റ് ടെർമിനലുകൾക്ക് വേണ്ടി ഈ ഫയലിൽ സാംസങ് ഗേറ്റ് ലൈൻ ലൈനുകൾ അടങ്ങിയിരിക്കാം, അതിനാൽ നിങ്ങൾ ചെയ്യേണ്ടത് എല്ലാം അവയെ ഒന്നിച്ചു ചേർക്കുന്നതിനാണ് (മുന്നിൽ # നീക്കം ചെയ്യുക), ഏതാനും വാദങ്ങൾ മാറ്റുക.

അനുവദനീയമായ ആർഗ്യുമെന്റ് നിങ്ങൾ ഏത് ഗോർഡാണ് ഉപയോഗിക്കുന്നത് എന്നതിനെ ആശ്രയിച്ചിരിക്കുന്നു:
നേരിട്ട് ബന്ധിപ്പിച്ചിട്ടുള്ള ടെർമിനലുകൾക്കുള്ള രണ്ട് ഗെറ്റ്സി മികച്ചത്:

ഡയൽ-ഇൻ മോഡം (രണ്ട് നേരിട്ട് ടെർമിനലുകൾ ഒഴിവാക്കുന്നതിനു) രണ്ടു ഗെറ്റ്സി മികച്ചതാണ്:

നിങ്ങൾ ഒരു യഥാർത്ഥ വാചക ടെർമിനൽ ഉപയോഗിച്ചില്ലെങ്കിൽ ലളിതമായ gettys ഉപയോഗിക്കാൻ. മിക്ക ലിനക്സ് ഉപയോക്താക്കളും അവയുടെ മോണിറ്ററിൽ ഇവ ഉപയോഗിയ്ക്കുന്നു:

നിങ്ങളുടെ ലിനക്സ് വിതരണത്തെ ps_getty അല്ലെങ്കിൽ agetty ഉപയോഗിച്ച് ടെക്സ്റ്റ്-ടെർമിനലുകൾക്കായി വരാം. ചില വിതരണങ്ങളും ഒന്നും നൽകുന്നില്ല. നിർഭാഗ്യവശാൽ, അവർ പലപ്പോഴും "getty" എന്ന് വിളിക്കുന്നു. അപ്പോൾ നിങ്ങൾ പറയുന്ന പദങ്ങൾ നിങ്ങൾ / etc / inittab ൽ വ്യത്യാസപ്പെടാം. ഡെബിയൻ അഗറ്റിറ്റി ഉപയോഗപ്പെടുന്നു (util-linux പാക്കേജിൽ). RedHat, Fedora ഇവയിൽ ps_getty ഉപയോഗിച്ചിരിയ്ക്കുന്നു: ps_getty

നിങ്ങൾക്കുള്ള ഗോളിയെ നിർണ്ണയിക്കാൻ അവസാനത്തെ ഒരു ആശ്രയമെന്ന നിലയിൽ, അതിന്റെ എക്സിക്യൂട്ടബിൾ കോഡ് (സാധാരണയായി / sbin ൽ) നിങ്ങൾ പരിശോധിച്ചേക്കാം. ps_getty- ൽ ഈ കോഡിൽ / etc / gettydefs ഉൾപ്പെടുത്തിയിരിക്കുന്നു. ഇതിനായി തിരയാൻ, / sbin- ലേക്ക് പോയി ടൈപ്പ് ചെയ്യുക:
സ്ട്രിംഗുകൾ ഗറ്റി | grep ഗെറ്റി
ഗൌരവമില്ലാതെ വാസ്തവത്തിൽ അഗാധമായിട്ടുണ്ടെങ്കിൽ, അതിന് മുകളിൽ ഒന്നും സംഭവിക്കില്ല. നിങ്ങൾക്ക് അഗ്നി ടൈപ്പിംഗ് ഉണ്ടെങ്കിൽ:
ഗെറ്റി-ഹോ
ഓപ്ഷനുകൾ [-hlmw] കാണിക്കണം.

നിങ്ങൾക്ക് ഗോൾട്ടിയില്ലെങ്കിൽ, RPM, ഡെബിയൻ പാക്കേജുകൾക്കിടയിൽ പരിവർത്തനം ചെയ്യുന്നതിനായി മറ്റ് വിതരണങ്ങളും അന്യഗ്രഹ പ്രോഗ്രാമുകളും പരിശോധിക്കേണ്ടതാണ്. ഗെറ്റി സോഫ്റ്റ്വെയറില് നിന്നും ഉറവിട കോഡ് ഡൌണ്ലോഡ് ചെയ്യാവുന്നതാണ്.

നിങ്ങൾ മോഡം കണ്ട്രോൾ ലൈനുകൾ ഉപയോഗിക്കുന്നില്ലെങ്കിൽ (ഉദാഹരണത്തിന് നിങ്ങൾ ഏറ്റവും കുറഞ്ഞത് 3 കണ്ടക്ടർമാരെ ഉപയോഗിക്കുകയാണെങ്കിൽ: സംപ്രേഷണം ചെയ്യുക, സ്വീകരിക്കുക, പൊതുവായ സിഗ്നൽ ഗ്രൌണ്ട്) നിങ്ങൾ ഒരു "പ്രാദേശിക" ഫ്ലാഗ് ഉപയോഗിച്ച് ഇത് മനസിലാക്കും. ഇതിന്റെ ഫോർമാറ്റ് നിങ്ങൾ ഏത് ഗതിയാണ് ഉപയോഗിക്കുന്നത് എന്നതിനെ ആശ്രയിച്ചിരിക്കുന്നു.

പ്രവേശനത്തിനു ശേഷമുള്ള ഗെറ്റി പുറത്തുകടക്കുന്നു (ഒപ്പം respawn ചെയ്യാം)

നിങ്ങൾ ലോഗ് ചെയ്തതിനുശേഷം, ബൂട്ടിംഗ് പ്രക്രിയ തുടർന്നില്ല എന്നു നിങ്ങൾ ശ്രദ്ധിക്കും ("top", "ps -ax", അല്ലെങ്കിൽ "ptree"). എന്ത് സംഭവിച്ചു? നിങ്ങളുടെ ഷെൽ കൊല്ലപ്പെടുകയാണെങ്കിൽ, വീണ്ടും വീണ്ടും പുനരാരംഭിക്കുന്നത് എന്തിനാണ്? ഇവിടെ ഇതാ.

നിങ്ങളുടെ യൂസർ നെയിം ടൈപ്പ് ചെയ്തതിനുശേഷം, ബാറ്ററി ഗൗരവമായി എടുത്ത് ലോഗിൻ ചെയ്ത പ്രോഗ്രാം നിങ്ങളുടെ ഉപയോക്തൃനാമം അറിയിക്കുന്നു. ബൂട്ടിംഗ് പ്രോസസ് ലോഗിൻ പ്രോസസ് ഉപയോഗിച്ച് മാറ്റിസ്ഥാപിക്കും. ലോഗിൻ പ്രോസസ്സ് നിങ്ങളുടെ പാസ്വേഡ് ചോദിക്കുന്നു, പരിശോധിച്ച് നിങ്ങളുടെ പാസ്വേഡ് ഫയലിൽ നൽകിയിരിക്കുന്ന പ്രക്രിയ ആരംഭിക്കുക. ഈ പ്രക്രിയ പലപ്പോഴും ബാഷ് ഷെൽ ആണ്. അങ്ങനെയാണെങ്കിൽ, ബാഷ് ആരംഭിച്ച് ലോഗിൻ പ്രക്രിയയെ മാറ്റി പകരം വയ്ക്കുന്നു. ഒരു പ്രക്രിയ മറ്റൊരെണ്ണം മാറ്റി സ്ഥാപിയ്ക്കാമെന്നതും ബാഷ് ഷെൽ പ്രക്രിയ യഥാർത്ഥത്തിൽ വാതുമ്പടിയായി ആരംഭിച്ചതു് ശ്രദ്ധിക്കുക. ഇതിന്റെ പ്രത്യാഘാതങ്ങൾ താഴെ വിശദീകരിക്കും.

ഇപ്പോൾ / etc / inittab ഫയലിൽ, ഗേറ്റിന് കൊല്ലപ്പെട്ടാൽ respawn (പുനരാരംഭിക്കുക) ചെയ്യണം. അത് ഗതി എന്നു വിളിക്കുന്ന വരിയിൽ പറയുന്നു. പക്ഷേ ബാഷ് ഷെൽ (അല്ലെങ്കിൽ ലോഗിൻ പ്രോസസ്സ്) കൊല്ലപ്പെട്ടാൽ, വീണ്ടും respawns (പുനരാരംഭിക്കുന്നു). എന്തുകൊണ്ട്? ശരിയായി, പ്രവേശന പ്രക്രിയയും ബാഷും ഭിന്നിപ്പാനും ഭേദഗതിക്കുമായി മാറുന്നു

* ടെർമിനൽ ടെർമിനൽ എങ്ങിനെ സൂചിപ്പിക്കുന്നു

സിഗ്നൽ കണക്ഷനുകൾ അവരുടെ മുൻഗാമികൾ സ്ഥാപിക്കുക. യഥാർത്ഥത്തിൽ, വിശദാംശങ്ങൾ നിരീക്ഷിച്ചാൽ യഥാർത്ഥ പ്രക്രിയയെ അതേ പ്രോസസ് ഐഡിക്ക് പകരം മാറ്റുന്ന പ്രോസസിന് ഉണ്ടാകും. അങ്ങനെ ബാഷ് സമാനമായ പ്രക്രിയ ഐഡി നമ്പരുമായി വേഷം നൽകാം. ബാഷ് കൊല്ലപ്പെട്ടാൽ, അത് ഗൌരവമായി കൊല്ലപ്പെട്ടതുപോലെ തന്നെയാണ് (അടിവസ്ത്രമില്ലാതെ പ്രവർത്തിക്കുന്നില്ലെങ്കിലും). ഇത് വീണ്ടും വീണ്ടും സ്പോൺസുചെയ്യുന്നു.

ഒരു ലോഗ് ഔട്ട് ചെയ്യുമ്പോൾ, ആ സീരിയൽ പോർട്ടിലെ എല്ലാ പ്രക്രിയകളും ബാഷ് ഷെൽ ഉൾപ്പെടെ കൊല്ലപ്പെടുന്നു. മോഡിനാൽ ഡിസിഡി വോൾട്ടേജുള്ള ഒരു ഡ്രോപ്പ് സീരിയൽ പോർട്ടിലേക്ക് ഒരു ഹാംഗ്അപ്പ് സിഗ്നൽ അയച്ചിട്ടുണ്ടെങ്കിൽ ഇത് (പ്രവർത്തനക്ഷമമാക്കിയിട്ടുണ്ടെങ്കിൽ) സംഭവിക്കാം. ഡിസിഡിയിലുള്ള ലോഗ്ഔട്ട് അല്ലെങ്കിൽ ഡ്രോപ്പ് ബാക്കിയുള്ളവ വീണ്ടും വീണ്ടും ഉണ്ടാകും. "കീ" അല്ലെങ്കിൽ "കൊല" കമാൻഡിൽ ആയിരിക്കുമ്പോൾ തന്നെ കീ കീ അമർത്തുന്നത് വഴി ബസ് (അല്ലെങ്കിൽ ലോഗ്) ഉപയോഗിച്ച് സ്വയം ബഹിഷ്കരിക്കാനോ മറ്റോ മറ്റൊരാളെ നിർബന്ധിതമാക്കും. നിങ്ങൾ അതിനെ സിഗ്നൽ 9 ഉപയോഗിച്ച് (അതിനെ അവഗണിക്കാൻ കഴിയില്ല) കൊണ്ട് കൊല്ലണം.

കമാൻഡ് ലൈനിൽ നിന്നും കുത്തനെ റൺ ചെയ്താൽ: പ്രോഗ്രാമുകൾ നിർത്തുക

നിങ്ങൾ സാധാരണയായി കമാൻഡ് ലൈനിൽ നിന്ന് അല്ലെങ്കിലും / etc / inittab ൽ നിന്നും ഗാരഡിയിൽ പ്രവർത്തിപ്പിക്കണം അല്ലെങ്കിൽ ടെർമിനലിൽ പ്രവർത്തിക്കുന്ന ചില പ്രോഗ്രാമുകൾ അപ്രതീക്ഷിതമായി താൽക്കാലികമായി നിർത്തിവയ്ക്കാം (നിർത്തുക). ഇവിടെ എന്തുകൊണ്ടാണ് (നിങ്ങൾക്ക് എന്തുകൊണ്ട് പ്രാധാന്യം ഇല്ലെങ്കിൽ അടുത്ത വിഭാഗത്തിലേക്ക് കടക്കുക). മറ്റൊരു ടെർമിനലിന്റെ കമാൻഡ് ലൈനിൽ നിന്ന് ttyS1 എന്ന് പറഞ്ഞാൽ, നിങ്ങൾക്ക് tty1 എന്ന് പറയുകയാണെങ്കിൽ, അത് tty11 ആണെങ്കിൽ യഥാർത്ഥ ടെർമിനൽ ttyS1 ആണെങ്കിലും tty1 അതിന്റെ "നിയന്ത്രിത ടെർമിനൽ" ആയി വരും. അങ്ങനെ അത് തെറ്റായ നിയന്ത്രണ ടെർമിനൽ ഉണ്ട്. എന്നാൽ inittab ഫയലിനുള്ളിൽ ആരംഭിക്കുകയാണെങ്കിൽ, അത് നിയന്ത്രിത ടെർമിനൽ (ശരിയാണ്) ആയി ttyS1 ഉപയോഗിക്കും.

കൺട്രോൾ ടെർമിനൽ തെറ്റാണെങ്കിലും, ttyS1 ലെ ലോഗിൻ ശരിയായി പ്രവർത്തിക്കുന്നു (നിങ്ങൾ ttyS1 നൽകിയ ഗ്യാരന്റിനാകുമ്പോൾ). നിയന്ത്രിത ടെർമിനൽ tty11 ആണെങ്കിലും സ്റ്റാൻഡേർഡ് ഇൻപുട്ട്, ഔട്ട്പുട്ട് എന്നിവ ttyS1 ആയി സജ്ജീകരിച്ചിരിക്കുന്നു. TtyS1 ൽ പ്രവർത്തിക്കുന്ന മറ്റ് പ്രോഗ്രാമുകൾക്ക് ഈ സ്റ്റാൻഡേർഡ് ഇൻപുട്ട് / ഔട്ട്പുട്ട് (ടൈറ്റിൽ 1 വുമായി ബന്ധിപ്പിച്ചിരിക്കുന്നു) എല്ലാം ശരിയായിരിക്കാം. പക്ഷെ ചില പ്രോഗ്രാമുകൾ അവരുടെ ടെർമിനൽ ടെർമിനലിൽ (tty1) വായിക്കാൻ ശ്രമിച്ച തെറ്റ് തെറ്റാണ്. Tty1 ഇപ്പോൾ tty1 വഴി ഈ പ്രോഗ്രാമുകൾ പ്രവർത്തിപ്പിക്കുന്നു എന്ന് tty1 കരുതുന്നു, അതിനാൽ tty1 ൽ നിന്ന് വായിക്കാനുള്ള ശ്രമം (അത് ttyS1 ആയിരിക്കണം) വായിക്കാൻ ശ്രമിച്ച പ്രക്രിയ നിർത്തലാക്കുകയും ചെയ്തു. (ഒരു പശ്ചാത്തല പ്രോസസ്സ് അതിൻറെ നിയന്ത്രിത ടെർമിനലിൽ നിന്നും വായിക്കാൻ അനുവദിക്കുന്നില്ല.). നിങ്ങൾക്കൊരു സന്ദേശം കണ്ടേക്കാം: സ്ക്രീനിൽ " [1] + നിർത്തി ". തെറ്റായ ടെർമിനൽ വഴി നിങ്ങളുമായി ആശയവിനിമയം നടത്താൻ ശ്രമിക്കുന്ന ഒരു പ്രക്രിയയുമായി ഇടപെടാൻ കഴിയാത്തതിനാൽ ഈ ഘട്ടത്തിൽ നിങ്ങൾക്ക് താമസം നേരിടുന്നു. ഇതിൽ നിന്നും രക്ഷപ്പെടാൻ നിങ്ങൾക്ക് മറ്റൊരു ടെർമിനലിലേക്ക് പോയി പ്രക്രിയയെ കൊല്ലാൻ കഴിയും.

അഗറ്റി

/ Etc / inittab -ല് ഒരു ഉദാഹരണ വരി:

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

എസ് 1 ആണ് ttyS1. ഓട്ടം ലെവൽ 2 അല്ലെങ്കിൽ 3 റീഡിൽ കയറിയാൽ ബാക്കി ഗോൾ ആണ്. അതായത് ജ്യാമിതീയനായ ഒരാൾ (അല്ലെങ്കിൽ ബാഷ് വച്ച ഒരു പ്രക്രിയ) കൊല്ലപ്പെട്ടാൽ, ഗാരറ്റി വീണ്ടും സ്വയം ആരംഭിക്കും (respawn). / sbin / getty ആണ് ഗീറ്റീവ് കമാൻഡ്. -L എന്നത് പ്രാദേശികം (മോഡം നിയന്ത്രണ സിഗ്നലുകൾ അവഗണിക്കുക). -h (ഉദാഹരണത്തിൽ കാണിക്കുന്നില്ല) ഹാർഡ്വെയർ ഫ്ലോ നിയന്ത്രണം പ്രവർത്തനക്ഷമമാക്കുന്നു (stty crtscts പോലെ തന്നെ). 19200 ബാഡ് നിരക്ക്. ttyS1 എന്നാൽ / dev / ttyS1 എന്നാണ് (MS-DOS ലെ COM2). vt102 എന്നത് ടെർമിനലിന്റെ തരമാണു്, ഈ GET, ഈ മൂല്ല്യം TERM ആയി എൻവയോണ്മെന്റ് വേരിയബിൾ സജ്ജമാക്കും. കോൺഫിഗറേഷൻ ഫയലുകൾ ഇല്ല. ഗൈഡ് എഡിറ്റിന് ശേഷം കമാൻഡ് ലൈനിൽ ടൈപ്പ് ചെയ്യുക "init q" എന്ന് ടൈപ്പ് ചെയ്യുക, കൂടാതെ നിങ്ങൾ ഒരു ലോഗിൻ പ്രോംപ്റ്റ് കാണും.

പാരിറ്റി പ്രശ്നങ്ങളുടെ യാന്ത്രിക-കണ്ടെത്തൽ

Agetty പ്രോഗ്രാം ടെർമിനലിലുള്ള പാരിറ്റി സെറ്റ് സ്വയത്തെ കണ്ടുപിടിക്കാൻ ശ്രമിക്കുന്നു (പാരിറ്റി ഉൾപ്പെടെ). ഇത് 8-ബിറ്റ് ഡാറ്റ ബൈറ്റുകൾ കൂടാതെ 1-ബിറ്റ് പാരിറ്റി പിന്തുണയ്ക്കുന്നില്ല. 8-ബിറ്റ് ഡാറ്റ ബൈറ്റുകൾ കാണുക (ഒപ്പം പാരിറ്റി). നിങ്ങൾ പാരിറ്റി സജ്ജമാക്കാൻ Stty ഉപയോഗിച്ചാൽ, തുടക്കത്തിൽ ഒരു ഡാറ്റ ബിറ്റ് പോലെ പാരിറ്റി ബിറ്റ് ലഭിക്കാൻ ആഗ്രഹിക്കുന്നതിനാൽ അസെറ്റി അതിനെ സ്വയം സജ്ജമാക്കും. ഇത് നിങ്ങൾ അവസാനത്തെ ബിറ്റ് (ഒരു പാരിറ്റി ബിറ്റ്) ലഭിക്കേണ്ടതുണ്ട് കാരണം നിങ്ങളുടെ ലോഗിൻ-നാമം ടൈപ്പുചെയ്യുന്നതിലൂടെ അതിനെ പാരിറ്റി യാന്ത്രിക-കണ്ടെത്താനാകും. നിങ്ങൾ പാരിറ്റി ഉപയോഗിക്കുകയാണെങ്കിൽ, ടെക്സ്റ്റ് ടെർമിനലിൽ മാത്രം അത് പ്രാപ്തമാക്കുക, അത് സ്വയം പരിശോധിച്ച് അതിനെ കമ്പ്യൂട്ടറിൽ സജ്ജമാക്കുക. നിങ്ങളുടെ ടെർമിനൽ പാരിറ്റി സ്വീകരിച്ചിട്ടുണ്ടെങ്കിൽ, നിങ്ങൾ എന്തെങ്കിലും ടൈപ്പ് ചെയ്യുന്നതുവരെ ലോഗിൻ പ്രോംപ്റ്റ് കറങ്ങിക്കൊണ്ടിരിക്കും.

പാരിറ്റി. ഗാർബിൾഡ് പ്രോംപ്റ്റ് സന്ദർശകരെ തടഞ്ഞുനിർത്തണം, തുടങ്ങിയവ. അത് നിങ്ങൾക്ക് വേണ്ടത് മാത്രമായിരിക്കും.

പാരിറ്റി ഓട്ടോ സ്വയനിർണ്ണയത്തിൽ ഒരു പ്രശ്നമുണ്ട്. നിങ്ങളുടെ ലോഗിൻ നാമം ടൈപ്പ് ചെയ്തതിനു ശേഷം ആദ്യം നിങ്ങളുടെ ലോഗിൻ നാമം ടൈപ്പ് ചെയ്തതിനുശേഷം നിങ്ങളെ ലോഗ് ഇൻ ചെയ്യുന്നതിനായി ലോഗിൻ പ്രോഗ്രാം ആരംഭിക്കുന്നു. നിർഭാഗ്യവശാൽ, ലോഗിൻ പ്രോഗ്രാം പാരിറ്റി കണ്ടുപിടിക്കാൻ കഴിയില്ല, അതിനാൽ പാട്ടിനെ നിർണ്ണയിക്കാൻ ഗിയറ്റ് പ്രോഗ്രാം പരാജയപ്പെട്ടാൽ, അത് ഒന്നുകിൽ. ആദ്യത്തെ ലോഗിൻ ശ്രമം പരാജയപ്പെടുകയാണെങ്കിൽ, നിങ്ങൾ വീണ്ടും ശ്രമിക്കാൻ ലോഗിൻ അനുവദിക്കും (എല്ലാം പാരിറ്റി സെറ്റുകൾ തെറ്റായി). കാലക്രമേണ, പ്രവേശിക്കുന്നതിനുള്ള പരാജയപ്പെട്ട പല ശ്രമങ്ങൾക്കും ശേഷം (അല്ലെങ്കിൽ കാലാവധി കഴിഞ്ഞതിനു ശേഷം) അഗറ്റി വീണ്ടും വീണ്ടും ആരംഭിച്ച് ലോഗിൻ ശ്രേണികളെ വീണ്ടും ആരംഭിക്കും. ഒരിക്കൽ ഗൌരവം വീണ്ടും ഓട്ടം കഴിഞ്ഞാൽ, രണ്ടാമത്തെ പരീക്ഷയിൽ പാരിറ്റി കണ്ടുപിടിക്കാൻ കഴിഞ്ഞാൽ എല്ലാം ശരിയായി പ്രവർത്തിക്കും.

തെറ്റായ പാരിറ്റി ഉപയോഗിച്ച് നിങ്ങൾ ലോഗിൻ ചെയ്യുന്നവ നിങ്ങൾ ലോഗിൻ ചെയ്യുന്നതിനെ ലോഗ് ഇൻ ചെയ്യാറില്ല, നിങ്ങൾക്ക് ലോഗ് ഇൻ ചെയ്യാനാവില്ല. നിങ്ങളുടെ ടെർമിനൽ പാരിറ്റി സ്വീകരിച്ചിട്ടുണ്ടെങ്കിൽ, നിങ്ങൾ കറുപ്പ് സ്ക്രീനിൽ കാണുന്നത് തുടരും. ബാർട്ടി പാരിറ്റി കണ്ടുപിടിക്കുന്നതിൽ പരാജയപ്പെട്ടാൽ പ്രോപ്റ്റിനു മുമ്പ് ഒരു / etc / issue ഫയൽ സ്ക്രീനിൽ സാധാരണയായി ഉപേക്ഷിക്കപ്പെടുന്നു, അതിനാൽ കൂടുതൽ വൃത്തികെട്ട വാക്കുകൾ സ്ക്രീനിൽ ദൃശ്യമാകാം.

ടൈപ്പ് ചെയ്യുന്ന ആദ്യത്തെ കത്ത് അഗ്നിപട്ടി പാരിറ്റി കണ്ടുപിടിക്കാൻ പറ്റാത്തത് എന്തുകൊണ്ട്? ഇതാ ഒരു ഉദാഹരണം: ഒരു പാരിറ്റി ബിറ്റ് 0 (ഹൈ-ഓർഡർ ബിറ്റ്) കൂടാതെ 1-ബിറ്റുകളുടെ ഒറ്റസംഖ്യയുമുള്ള ഒരു 8-ബിറ്റ് ബൈറ്റ് കണ്ടുപിടിക്കുമെന്ന് കരുതുക. എന്താണ് സാരാംശം? ശരി, ഒറ്റ ബിറ്റ്റുകളുടെ എണ്ണം ഒറ്റ പാഡി ആണെന്ന് സൂചിപ്പിക്കുന്നു. എന്നാൽ ഒരു പാരിറ്റി ഇല്ലാതെ 8 ബിറ്റ് പ്രതീകമായും ഇത് തന്നെ ആകാം. ഏത് തീരുമാനത്തിനാണ് ഇതുവരെ തീരുമാനിക്കേണ്ടത്. എന്നിട്ടും ഇതുവരെ നാം പാരിറ്റി സാധ്യത ഇല്ലാതാക്കുന്നു. ഇങ്ങനെ തുടച്ചുനീക്കുന്ന പ്രക്രിയ വഴി പാരിറ്റി കണ്ടെത്തൽ.

അടുത്ത ബയിയ്ക്ക് ടൈപ്പ് ചെയ്താൽ ആദ്യത്തേതിന് തുല്യമാണ്, മാത്രമല്ല പാരിറ്റി സാധ്യത ഇല്ലാതാക്കാൻ കഴിയുമെങ്കിൽ, പാരിറ്റി നിർണ്ണയിക്കാൻ ഇപ്പോഴും അസാധ്യമാണ്. ഈ സാഹചര്യം അനിശ്ചിതമായി തുടരുകയും നിങ്ങളുടെ ലോഗിൻ-പേര് മാറ്റുന്നതുവരെ അപൂർവ്വം ലോഗിൻ ചെയ്യാതെ ലോഗിൻ ചെയ്യപ്പെടും. അഗറ്റീറ്റി 1 ന്റെ പാരിറ്റി ബിറ്റ് കണ്ടെത്തിയാൽ, ഇത് ഒരു പാരിറ്റി ബിറ്റ് ആണെന്നും ഒരു 8-ബിറ്റ് പ്രതീകത്തിന്റെ ഹൈ-ഓർഡർ ബിറ്റ് ആയിരിക്കില്ല എന്ന് കരുതുകയും ചെയ്യും. ഇങ്ങനെ നിങ്ങൾ നിങ്ങളുടെ ഉപയോക്തൃനാമത്തിൽ (നിങ്ങളുടെ പേര് ആസ്കിയിലാണ്) മെറ്റാ-പ്രതീകങ്ങൾ (ഉയർന്ന ബിറ്റ് സെറ്റ്) ഉപയോഗിക്കുന്നില്ല എന്ന് ഊഹിക്കുന്നു.

പല വഴികളിൽ ഒരാൾ ഒരു "ലോഗിൻ ലൂപ്പിലേക്ക്" കടന്നേക്കാം. നിങ്ങളുടെ ലോഗിൻ നാമത്തിനായുള്ള ഒരു അക്ഷരമോ രണ്ടോ ടൈപ്പ് ചെയ്തതിനുശേഷം തിരികെ വരുക. പാരിറ്റി ഡിറ്റക്ഷൻ ചെയ്യുന്നതിനായി ഈ അക്ഷരങ്ങൾ പര്യാപ്തമല്ലെങ്കിൽ, പാരിറ്റി കണ്ടെത്തുന്നതിന് മുമ്പായി ലോഗിൻ പ്രവർത്തിപ്പിക്കുക. അഗ്നിപ്ടീസ് ആദ്യം ആരംഭിക്കുമ്പോൾ നിങ്ങൾക്ക് ടെർമിനൽ കൂടാതെ / അല്ലെങ്കിൽ കണക്റ്റുചെയ്തിട്ടില്ലെങ്കിൽ ചിലപ്പോൾ ഈ പ്രശ്നം സംഭവിക്കുന്നു.

ഈ "login loop" ൽ നിങ്ങൾക്ക് താമസം നേരിട്ടാൽ നിങ്ങൾക്ക് ഒരു ബാറ്ററി ലഭിക്കുന്നു. മറ്റൊരു മാർഗം ഒരു സമയപരിധിക്കുള്ളിൽ ഒരു മിനിറ്റ് മാത്രം കാത്തിരിക്കുക എന്നതാണ്. പിന്നീട് ഗാർഹിക ലോഗിൻ സ്ക്രീനിൽ ഗാര്ട്ടി പ്രോഗ്രാമിലൂടെ സ്ക്രീനിൽ ഇടും, നിങ്ങൾക്ക് വീണ്ടും ലോഗിൻ ചെയ്യാൻ ശ്രമിക്കാം.

8-ബിറ്റ് ഡാറ്റ ബൈറ്റുകൾ (ഒപ്പം പാരിറ്റി പാരിറ്റി)

നിർഭാഗ്യവശാൽ, അഗട്ടിക്ക് ഈ പാരിറ്റി കണ്ടുപിടിക്കാൻ കഴിയില്ല. 1999 ന്റെ അവസാനം, പാരിറ്റി ഓട്ടോ-ഡിടക്ഷൻ അപ്രാപ്തമാക്കുന്നതിനുള്ള ഓപ്ഷൻ ഇല്ല, അങ്ങനെ തെറ്റായ പാരിറ്റി കണ്ടുപിടിക്കാൻ കഴിയും. ഇതിന്റെ ഫലമായി ലോഗിൻ പ്രക്രിയ ഗർഭാവസ്ഥയായിരിക്കുകയും പാരിറ്റി തെറ്റായി സജ്ജമാക്കുകയും ചെയ്യും എന്നതാണ്. അതുകൊണ്ട്, 8-ബിറ്റ് ഡാറ്റ ബൈറ്റുകളെ പാരിറ്റി ഉപയോഗിച്ച് ഉപയോഗിക്കാൻ ശ്രമിക്കാനാവില്ല.

കിട്ടിയത് (ഗെറ്റിറ്റിന്റെ ഭാഗമാണ്)

(ഇതിൽ അധികവും ഗ്രെഗ് ഹാൻകിൻസിന്റെ പഴയ സീരിയൽ-ഹൗട്ടോയിൽനിന്നുള്ളതാണ്)
ഈ ഗേറ്റു് ഒരു കോൺഫിഗറേഷൻ ഫയലിൽ സൂക്ഷിക്കുന്നു. കൂടാതെ / etc / inittab -ൽ ഒരു എൻട്രി ചേറ്ക്കുക. കോൺഫിഗറേഷൻ ഫയൽ / etc / gettydefs- ൽ നിങ്ങൾ നൽകിയ ടെർമിനലിലേക്ക് ഉപയോഗിക്കേണ്ട ചില ഉദാഹരണങ്ങളിതാണിവിടെ.

# 38400 bps ഡംബ് ടെർമിനൽ എൻട്രി DT38400 # B38400 CS8 CLOCAL # B38400 SANE-ISTRIP CLOCAL # @ S @L ലോഗിൻ: # DT38400 # 19200 bps ഡംബ് ടെർമിനൽ എൻട്രി DT19200 # B19200 CS8 CLOCAL # B19200 SANE-ISTRIP CLOCAL # @ S @ L ലോഗിൻ: # DT19200 # 9600 bps ഡംബ് ടെർമിനൽ പ്രവേശനം DT9600 # B9600 CS8 CLOCAL # B9600 SANE -ISTRIP CLOCAL # @ S @L ലോഗിൻ: # DT9600

DT38400, DT19200, തുടങ്ങിയവ. ലേബലുകൾ മാത്രമല്ല നിങ്ങൾ / etc / inittab ൽ ഉപയോഗിക്കേണ്ടത് ആയിരിക്കണം .

നിങ്ങൾക്ക് താൽപ്പര്യമുണ്ടെങ്കിൽ, ലോഗിൻ ബാനറിൽ നിങ്ങൾക്ക് ഗംഭീര അച്ചടി രസകരമായ കാര്യങ്ങൾ ചെയ്യാൻ കഴിയും. എന്റെ ഉദാഹരണത്തിൽ, ഞാൻ സിസ്റ്റത്തിന്റെ പേരും സീരിയൽ പ്രിന്റ് ചെയ്തും ഉണ്ട്. നിങ്ങൾക്ക് മറ്റ് കാര്യങ്ങൾ ചേർക്കാൻ കഴിയും: [blockquote

തണൽ = അതെ] @B നിലവിലെ (@ B കാണുന്നത് സമയത്ത്) bps നിരക്ക്. @D ഇപ്പോഴത്തെ തീയതി, MM / DD / YY ൽ. @L ഏത് ബോട്ടിലേക്കുള്ള സീരിയൽ വരി ചേർക്കുന്നു. @S സിസ്റ്റത്തിന്റെ പേര്. @T നിലവിലുള്ള സമയം, HH: MM: SS (24-മണിക്കൂർ). @u നിലവിൽ സൈൻ ഇൻ ചെയ്ത ഉപയോക്താക്കളുടെ എണ്ണം. ഇതൊരു പൂഷ്യം അല്ലാത്ത ut_name ഫീൽഡ് / etc / utmp ഫയലിലെ എൻട്രികളുടെ എണ്ണമാണ്. @V സ്ഥിരസ്ഥിതി ഫയലിൽ നൽകിയിട്ടുള്ള VERSION ന്റെ മൂല്യം. ഒരൊറ്റ '@' പ്രതീകം പ്രദർശിപ്പിക്കാൻ, '\ @' അല്ലെങ്കിൽ '@ @' ഉപയോഗിക്കുക.

/ Etc / gettydefs ചിട്ടപ്പെടുത്തുമ്പോൾ , ചെയ്തു കൊണ്ടിരിയ്ക്കുന്ന സിന്റാക്സ് ശരിയാണെന്നു് ഉറപ്പാക്കാം:

linux # getty -c / etc / gettydefs

നിങ്ങളുടെ ടെർമിനൽ പോലുള്ള ഒരു ടെർമിനൽ ( /etc/default/{uu}getty.ttyS N അല്ലെങ്കിൽ /etc/conf.{uu}getty.ttyS N ) ആയി ബന്ധിപ്പിച്ചിട്ടുള്ള സീരിയൽ പോർട്ടിനുള്ള മറ്റൊരു കുട്ടി അല്ലെങ്കിൽ യുഗീറ്റി കോൺഫിഗറേഷൻ ഫയൽ ഇല്ലെന്ന് ഉറപ്പാക്കുക ഒരു ടെർമിനലിൽ പ്രവർത്തിപ്പിക്കുന്നതുവഴി ഇത് ഇടപെടാനിടയുണ്ട് . അവർ പുറത്തുപോയാൽ അത്തരം വൈരുദ്ധ്യമുള്ള ഫയലുകൾ നീക്കംചെയ്യുക.

സീരിയൽ പോർട്ടിൽ (നിങ്ങളുടെ എൻവിറോൺമെൻറ്, പോർട്ട്, സ്പീഡ്, ഡീഫയർ ടെർമിനൽ എന്നിവയ്ക്കുള്ള ശരിയായ വിവരങ്ങളിൽ പകരം വയ്ക്കാൻ) നിങ്ങളുടെ / etc / inittab ഫയൽ എഡിറ്റുചെയ്യുക:

S1: 23: respawn: / sbin / getty ttyS1 DT9600 vt100 init ലിനക്സ് # init q

നിങ്ങളുടെ പോയിന്റിൽ നിങ്ങൾ ഒരു ലോഗിൻ പ്രോംപ്റ്റ് കാണും. ടെർമിനലിന്റെ ശ്രദ്ധ ലഭിക്കുന്നതിന് നിങ്ങൾക്ക് തിരികെ വരേണ്ടതായി വന്നേക്കാം.

ശാന്തമായ

"M" മോഡം വേണ്ടി. ഈ പ്രോഗ്രാം പ്രാഥമികമായി മോഡമുകൾക്ക് വേണ്ടിയുള്ളതാണ് 2000-നും 2000-നും ഇടയിൽ ടെക്സ്റ്റ്-ടെർമിനലുകൾക്കായി റെക്കമ്പ്ലിംഗ് ഉപയോഗിക്കണം (ഹാർഡ്വെയർ ഫ്ലോ നിയന്ത്രണം ഉപയോഗിക്കുന്നില്ലെങ്കിൽ - സാധാരണയായി ഹാൻഡ് ചെയ്ത ടേബിൾ ആവശ്യമുണ്ട്). നേരിട്ട് കണക്ട് ചെയ്തിട്ടുള്ള ടെർമിനലുകളുടെ വിവരണക്കുറിപ്പ് മാനുവൽ: mgetty.texi "ഡയറക്ട്" വിഭാഗം കാണുക .

ഒരു ടെർമിനലിനു വേണ്ടി കോൺഫിഗർ ചെയ്യുന്നതിനു് /etc/mgetty/mgetty.config ന്റെ അവസാന വരികൾ നോക്കുക. "ടോഗിൾ-ഡട്രസ്സ് ഇല്ല" എന്നു് പറയുന്നില്ലെങ്കിൽ നിലവിലില്ലാത്ത ഒരു മോഡം പുനഃസജ്ജമാക്കുന്നതിനുള്ള ഒരു വ്യവസ്ഥിതിയിൽ നിങ്ങൾക്ക് പിസിയിലുള്ള ഡിടിആർ പിൻ മോഡിം (ഡ്രോപ്പ് ചെയ്യുക) ഉണ്ടെന്ന് കരുതുന്നു. മറ്റ് gettys- നെ അപേക്ഷിച്ച്, mgetty ഒരു ടെർമിനലിലേക്ക് പൊരുത്തപ്പെടുന്നില്ല, ആരെങ്കിലും ആ ടെർമിനലിലെ ഏതെങ്കിലും കീയിൽ കയറിയാൽ അത് കാണും. ടെർമിനൽ മുകളിലേക്കോ അല്ലെങ്കിൽ PS സംഭവിക്കുന്നതുവരെ. / Var / log / mgetty / -ലുള്ള ലോഗുകൾ നിങ്ങൾ ഉപേക്ഷിക്കുന്ന മോഡംമാമാന് മാത്രം ബാധകമായ ചില മുന്നറിയിപ്പ് സന്ദേശങ്ങൾ കാണിച്ചേക്കാം.

/ Etc / inittab ൽ നിങ്ങൾ നൽകിയ ലളിതമായ വരിയുടെ ഉദാഹരണം ഇതാ :

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