লিনাক্সের সিরিয়ালে শেল ফরোয়ার্ড করুন


1

আমি শেল সিরিয়ালে (ইউএসবি থেকে আরএস 232) ফরোয়ার্ড করার চেষ্টা করছি যাতে আমি একটি পুরানো একরঙা সিআরটি টার্মিনাল ব্যবহার করতে পারি।

কীভাবে আমি শেল সিরিয়াল পোর্টে ফরোয়ার্ড করতে পারি যাতে অন্য প্রান্তটি টিটিওয়াইয়ের মতো কমান্ড ও আউটপুট পড়তে পারে?


1
আপনি যদি আপনার চলমান প্রোগ্রামগুলি দেখেন তবে আপনার সিউডো-টার্মিনালগুলির (Ctrl-Alt-Fn) উদাহরণস্বরূপ gettyবা agettyপরিষেবা দেওয়ার কিছু উদাহরণ দেখতে পাওয়া উচিত /sbin/agetty --noclear tty1 linux। আপনি যদি tty1সিরিয়াল টার্মিনাল ডিভাইসের নাম দ্বারা প্রতিস্থাপন করে একটি নতুন উদাহরণ তৈরি করেন তবে আপনার সিরিয়াল পোর্টটিতে লগ ইন করতে সক্ষম হওয়া উচিত। আপনি ডিফল্ট ব্যবহার করে সন্তুষ্ট না হলে আপনার সম্ভবত সিরিয়াল বিকল্পগুলি (বাউড রেট, চরিত্র অনুযায়ী বিট, সমতা ইত্যাদি) যুক্ত করতে হবে।
এএফএইচ

হ্যাঁ, আমিও আমার লগইন নামটি প্রবেশ করার পরে এটি আমার টার্মিনালের ট্যাবটিকে হত্যা না করে ব্যতীত চেষ্টা করছে
V0idst4r

আপনার বক্তব্য আমি পরিষ্কার করছি না। টার্মিনাল ট্যাবটি যা চালু হওয়াটিকে অদৃশ্য করে getty? আপনি সিরিয়াল টার্মিনালে একটি শেল পেতে?
এএফএইচ

আমি লগইন প্রম্পট পেয়েছি এবং একবার আমি আমার ব্যবহারকারীর নামটি প্রবেশ করানোর সাথে সাথে আমি এটিটি চালিয়ে যাচ্ছি সেই টিটিটি মেরে ফেলেছে ( আমার সন্দেহ হয় আমার ইআইডি সিস্টেম থেকে আমাকে অ্যাজেটি চালাতে হবে?
V0idst4r

সম্ভবত। উবুন্টুতে gettyপ্রক্রিয়াগুলি আরম্ভ করা হয় /etc/init/tty?.conf
এএফএইচ

উত্তর:


2

দ্রষ্টব্য: উত্তরটি বিভিন্ন সাইট থেকে কয়েকটি সমাধান একত্রিত করে; এই মুহুর্তে তাদের পরীক্ষা করার আমার কোনও উপায় নেই।


SysVinit

প্রাক systemdলিনাক্স sysvinit এর ব্যবহার করতে পারেন /etc/inittabডিম যাও gettyবিভিন্ন টার্মিনাল উপর। উদাহরণের পংক্তিটি দেখতে এটি দেখতে ( এই পুরানো গাইড থেকে নেওয়া ):

s0:2345:respawn:/sbin/getty -L 115200 ttyS0 vt102

ভুঁইফোঁড়

যদি আপনার ওএস ব্যবহার করে upstartতবে পদ্ধতিটি আলাদা। যেমন আছে এই হাওটুর :

  1. /etc/init/ttyS0.confনিম্নলিখিত ধারণকারী একটি ফাইল তৈরি করুন :

    # ttyS0 - getty
    #
    # This service maintains a getty on ttyS0 from the point the system is
    # started until it is shut down again.
    
    start on stopped rc RUNLEVEL=[12345]
    stop on runlevel [!12345]
    
    respawn
    exec /sbin/getty -L 115200 ttyS0 vt102
    
  2. upstartশুরু করতে বলুনgetty

    sudo start ttyS0
    

systemd

এই সাইট অনুযায়ী একটি systemdসমাধান হিসাবে সহজ হতে পারে

সিরিয়াল কনসোলটি ব্যবহার করতে, কেবল console=ttyS0কার্নেল কমান্ড লাইনে ব্যবহার করুন এবং systemdএটি স্বয়ংক্রিয়ভাবে gettyআপনার জন্য এটি শুরু করবে।

এটি করার জন্য আপনি সম্ভবত আপনার GRUB2 কনফিগার করবেন। আর্ক উইকি কী বলে তা বিশ্লেষণ করুন এবং প্রয়োজন হলে আপনার ডিস্ট্রোতে সামঞ্জস্য করুন:

গ্রাবকে সিরিয়াল কনসোল সক্ষম করতে, /etc/default/grubএকটি সম্পাদক এ খুলুন । GRUB_CMDLINE_DEFAULTকনসোলটি চালু করতে লাইনটি পরিবর্তন করুন /dev/ttyS0। নীচের উদাহরণে নোট করুন, আমরা দুটি কনসোল সেট আপ করেছি; এক tty0এবং সিরিয়াল বন্দরে এক।

GRUB_CMDLINE_LINUX_DEFAULT="console=tty0 console=ttyS0,38400n8"

সিরিয়াল কনসোল সক্ষম করতে কনসোলটি কোথায় এবং কোন আদেশটি শুরু করতে হবে তা এখন আমাদের গ্রাবকে জানাতে হবে (লিনাক্স কার্নেলের জন্য উপরে উল্লিখিত নোট, গ্রাবের একাধিক ইনপুট / আউটপুট টার্মিনাল সংযোজন করা যাবে যেমন GRUB_TERMINAL="console serial"প্রদর্শন এবং সিরিয়াল উভয়ই সক্ষম করতে পারে):

## Serial console
GRUB_TERMINAL=serial
GRUB_SERIAL_COMMAND="serial --speed=38400 --unit=0 --word=8 --parity=no --stop=1"

grub.cfgনিম্নলিখিত কমান্ড দিয়ে ফাইলটি পুনর্নির্মাণ করুন :

grub-mkconfig -o /boot/grub/grub.cfg

একটি পুনরায় বুট করার পরে gettyশোনা হবে /dev/ttyS0, আশা 38400বড, 8তথ্য বিট, কোন সমতা এবং এক স্টপ বিট। যখন আর্চ বুট হয়, একই সেটিংসের সাথে একই ডিভাইসে শোনার জন্য systemdস্বয়ংক্রিয়ভাবে একটি gettyসেশন শুরু হবে ।

উভয় সাইটই একমত যে আপনি যদি GRUB2 সিরিয়াল ডিভাইসে শুনতে না চান তবে কেবল gettyবুটের পরে শুনতে চান তবে আপনার মতো কিছু প্রয়োজন হবে

systemctl enable serial-getty@ttyS0.service
systemctl start serial-getty@ttyS0.service

চাহিদা সাপেক্ষে

কোনও সমস্যার ক্ষেত্রে মনে রাখবেন যে gettyএটি কেবল একটি প্রোগ্রাম, এটি চাহিদা অনুযায়ী বা থেকে চালানো যেতে পারে rc.local। বিশদ man gettyজন্য দেখুন। আমি মনে করি আপনার প্রথম চেষ্টাটি এর মতো হতে পারে

sudo getty -L 115200 ttyS0 vt102

(সম্পাদনা করুন) এটি ওপি থেকে প্রাপ্ত প্রতিক্রিয়া, এটি ব্যবহারকারীদের অনুরূপ সমস্যাগুলিতে সহায়তা করতে পারে:

sudo su -c "…"এটি সঠিকভাবে কাজ করার জন্য আমাকে করতে হয়েছিল ।


চাহিদার বিষয়ে, এটি সঠিকভাবে কাজ করার জন্য আমাকে sudo su -c "..." করতে হয়েছিল।
V0idst4r

কনসোল হিসাবে সিরিয়াল পোর্টটি ব্যবহার করার
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.