Я нашел ответ здесь http://ubuntuforums.org/showthread.php?t=677277 благодаря @Rinzwind
Я выполнил команду
sudo apt-get install festlex-poslex
и это устранило ошибку.
stty
на самом деле не изменяет -размер терминала. Он просто изменяет некоторые значения, записанные в линейной дисциплине. Изменение фактической высоты и ширины собственно экрана терминала осуществляется с помощью механизмов, которые различаются в зависимости от того, является ли консольное устройство реальным терминалом, виртуальным терминалом ядра или виртуальным терминалом пространства пользователя -.
Консоль может быть честным -до -хорошим терминалом, подключенным к последовательному устройству. В этом случае указание терминалу изменить -размер его дисплея включает в себя отправку управляющей последовательности некоторого вида по кабелю к терминалу.Эта последовательность управления зависит от типа терминала. Более того, нет возможности termcap, которая бы это удобно предоставляла.
Обычно , но не всегда, в зависимости от того, какой терминал фактически находится на другом конце последовательной линии, терминалы будут подчиняться частным управляющим последовательностям DEC, которым подчиняются DEC VT340 и выше:DECSLPP
/ DECSNLS
и DECSCPP
. Набор инструментов nosh 'sconsole-resize
(a.k.a.a.resizecons
)выдает эти:
$ resizecons 80x25
Обратите внимание, что большинство реальных терминалов ограничивают то, какие комбинации столбцов и строк будут фактически задействованы, довольно ограниченным, предварительно -определенным набором размеров терминала. Классически DEC VT поддерживает, например, только 80 или 132 столбца.
Реальные терминалы — это случай, когда представление линейной дисциплины о размере терминала должно быть явно обновлено после изменения размера дисплея терминала с помощью stty
. Линейная дисциплина ничего не знает об управляющих последовательностях, а само терминальное устройство не имеет возможности влиять на линейную дисциплину и даже не знает, что общается с операционной системой, которая имеет такое понятие, как линия. дисциплина.
Виртуальные терминалы -пространства пользователя набора инструментов nosh подчиняются тем же самым частным управляющим последовательностям DEC и могут быть аналогичным образом настроены с помощью команды console-resize
. Как и настоящие терминалы, они всегда запускаются в одном и том же режиме, пока его не изменит управляющая последовательность. В отличие от реальных терминалов, но, как и виртуальные терминалы ядра, которые они призваны заменить, они запускаются в режиме 80×25, а не в режиме 80×24 многих реальных терминалов.
Точно так же, в отличие от реальных терминалов, но подобно виртуальным терминалам ядра, вам не нужно вызывать stty
для обновления дисциплины линии после указания терминалу изменить свой размер, потому что операция изменения размера обновляет дисциплину линии сама.
В отличие от реальных терминалов и виртуальных терминалов ядра, они поддерживают гораздо более широкий диапазон размеров, разрешенных в управляющих последовательностях, от 2×2 до 65535×65535.
Это подводит нас к виртуальным терминалам ядра.
Это те, которые предоставляет эмулятор терминала, встроенный в само ядро. Это то, что вы можете наивно считать «консолью», пока не прочитаете руководство и не поймете, что консоль (определена как место, куда направляются диагностика ядра и вывод трассировки, а также вывод в /dev/console
. отправленный )может быть реальным терминалом через последовательное устройство (comconsole
), виртуальным терминалом ядра(vidconsole
)или вообще ничем(nullconsole
).
Они не управляются управляющими последовательностями; скорее, такое терминальное устройство открывается и выполняются -специфичные для устройства запросы ioctl()
. К счастью, существует инструмент, который упаковывает некоторые из наиболее распространенных ioctl()
запросов, делая их доступными без необходимости написания собственной программы.
Из сеанса входа в систему на виртуальном терминале ядра, который будет изменен сам, или со стандартным вводом, перенаправленным с такого терминального устройства:
$ vidcontrol -i mode
283 (0x11b) 0x0000001f G 1280x1024x32 D 8x16 0xa0000 64k 64k 0xf1000000 5120k
$ vidcontrol MODE_283
# sysrc allscreens_flags=MODE_283
Выбор размера зависит от того, используете ли вы старые syscons или новый эмулятор терминала ядра vt, а также от того, что он знает об адаптере дисплея, который поддерживает эмулируемый дисплей.
rc.conf
. Руководство по форматам файлов FreeBSD. vidcontrol
. Руководство по основным командам FreeBSD. sysrc
. Руководство системного администратора FreeBSD. loader.conf
. Руководство по форматам файлов FreeBSD. console-resize
, resizecons
. Направляющая ноша . Программное обеспечение.