RESIZECONS(8) دستورهای مدیریتی سیستم RESIZECONS(8)

resizecons - تغییر اندازه کنسول در هسته لینوکس

resizecons COLSxROWS
resizecons -lines ROWS

دستور resizecons تلاش می‌کند حالت ویدیویی (videomode) کنسول را تغییر دهد. این کار جنبه‌های گوناگونی دارد: (a) هسته باید از آن مطلع شود، (b) سخت‌افزار باید از آن آگاه گردد، (c) برنامه‌های کاربر باید از آن مطلع شوند، (d) ممکن است نیاز باشد قلم کنسول با شرایط جدید تطبیق داده شود.

(a) با استفاده از فراخوان کنترلی (ioctl) به نام VT_RESIZE تغییر مورد نظر به هسته اعلام می‌شود. این کار باعث می‌شود هسته حافظه صفحه نمایش را برای تمام کنسول‌های مجازی بازتخصیص دهد، و در صورتی که حافظه کافی وجود نداشته باشد، ممکن است با شکست مواجه گردد. (در این حالت، ابتدا سعی کنید برخی کنسول‌های مجازی را آزاد کنید.) اگر این ioctl با موفقیت انجام شود، اما مرحله‌ای پس از آن با شکست روبه‌رو گردد (برای نمونه، به این دلیل که دسترسی مدیر سیستم (root) ندارید)، ممکن است صفحه‌نمایش بسیار نامرتب و آشفته رها شود.

دشوارترین بخش این فرایند (b) است، چرا که نیازمند دانش دقیق از سخت‌افزار کارت ویدیویی و تنظیم ثبات‌های متعدد است. تنها تغییر دادن تعداد سطرها اندکی ساده‌تر است، و در صورتی که گزینه -lines به آن داده شود، resizecons تلاش خواهد کرد خودش این کار را انجام دهد. (احتمالاً دسترسی مدیر سیستم مورد نیاز خواهد بود.) دستور resizecons COLSxROWS دستور restoretextmode -r COLSxROWS را اجرا خواهد کرد (و در نتیجه مستلزم نصب بودن svgalib است). در اینجا COLSxROWS فایلی است که پیش‌تر توسط restoretextmode -w COLSxROWS ایجاد شده است. باز هم، یا دسترسی مدیر سیستم (root) الزامی است، یا restoretextmode باید دارای نشان suid root باشد.

برای رسیدگی به (c)، دستور resizecons فرمان stty rows ROWS cols COLS را برای هر کنسول فعال (در محدوده tty0 تا tty15) اجرا می‌کند، و در صورتی که فایل /tmp/selection.pid را پیدا کند، یک سیگنال SIGWINCH به selection ارسال می‌نماید.

در نهایت، با اجرای یک دستور setfont به بخش (d) رسیدگی می‌شود. به احتمال زیاد قلم نادرستی بارگذاری خواهد شد و ممکن است بخواهید بعد از آن، خودتان دستور setfont دیگری را اجرا کنید.

دستور resizecons روی تمام سخت‌افزارها کار نمی‌کند. این دستور پیش‌تر resize نامیده می‌شد، اما برای جلوگیری از تداخل با دستور دیگری با همان نام، تغییر نام یافت.

setfont(8), stty(1), selection(1), restoretextmode(8), disalloc(8)

17 Jan 1995 kbd