Консоль FreeBSD



автор: Travis Poppe
перевод: Алексеенко Василий

Заметка: этот документ предполагает, что вы используете последнюю FreeBSD – RELEASE. Я запускал в консоли 5.x , хотя это вероятно будет работать и в 4. x тоже.

Этот документ был написан, чтобы помочь вам в настройке рабочей станции FreeBSD. Однако, статья не объясняет всего. Вы всегда должны читать доступную документацию.

Таким образом у вас есть ПК с установленой FreeBSD, но вы не хотите использовать X? Отлично. Давайте начнем. По любой причине: ограниченые ресурсы, предпочтения, задача - вы решили использовать компьютер без GUI. Обычно, когда система UNIX (особенно FreeBSD) не идет с X, возможно она используется как сервер. Но, это не то, что вы хотите, не так ли?

Первый шаг, с которого вы вероятно должны начать – изменение разрешения консоли. Удостоверьтесь, что вы имеете options VESA в ядре или загружен как модуль. Затем, вы должны проверить и увидеть, какие режимы доступны, печатая:

vidcontrol -i mode |grep T

Будем надеятся, отличный режим, такой как 132x25 или 132x60, будет доступен для вас. Некоторые режимы требуют специальных размеров шрифта, которые перечислены непосредственно справа от размера экрана. Например, если вы хотите режим 132x60, а это требует, чтобы был размер шрифта 8x8, то вы должны напечатать:

vidcontrol -f 8x8 swiss 132x60

Swiss является названием шрифта, а 8x8 необходимый размер шрифта. Если эти размеры экрана не доступны для вас после включения поддержки VESA, не паникуйте, поскольку вы можете выбрать другие опции. Удостоверьтесь, что вы также добавили опцию в ядро:


options SC_PIXEL_MODE
Все сделали? Хорошо. Пробуйте напечатать следующую команду после того, как вы перезагрузились с вашим новым ядром:

vidcontrol -g 100x37 VESA_800x600

- Новое (07 декабря 2004): есть патчи для FreeBSD 5.3 и - CURRENT, полученные из DragonFly, которые позволяют вам использовать любое разрешение, поддерживаемое драйвером VESA и вашим графическим оборудованием в текстовой консоли. Я пишу это обновление в консоли FreeBSD - 1024x768. Это выглядит красиво, очень красиво! -

Будем надеятся, это работает у вас. В противном случае попробуйте поиграть с различными режимами/шрифтами, пока вы не найдете подходящее разрешение. И помните, некоторые разрешения требуют, чтобы работали определенные размеры шрифта. Прочитайте man vidcontrol для дополнительной информации!

Теперь, давайте сделаем настройки постоянными. Отредактируйте /etc/rc.conf файл и добавьте следующее:


allscreens_flags = "-f 8x8 swiss 132x60"

или

allscreens_flags = "-g 100x37 VESA_800x600"


Удостоверьтесь, что заменили мои параметры настройки разрешения своими параметрами. Как только вы перезагрузитесь, все ваши ttyvX терминалы будут изменены новыми параметрами настройки!

Подсказка: консоль FreeBSD работает со шрифтами консоли Slackware! Шрифты FreeBSD находятся в /usr/share/syscons/fonts/

Двигаемся дальше. Следующий список приложений, работающих в текстовом режиме, из которого вы можете найти себе что-нибудь полезное. Позже, мы доберемся до забавного материала, как вы можете сделать графику в консоли.

pine Простой почтовый клиент
pico Легкий и простой текстовый редактор
lynx Популярный текстовый браузер WWW
naim Легкий клиент, использующий ncurses, сетей AIM/ICQ/IRC/Lily
irssi Очень красивый IRC-клиент with automatic windowing
ncftp Вероятно лучший CLI ftp-клиент который вы можете найти
links Другой популярный текстовый браузер WWW с поддержкой фреймов.
elinks Очень крутой текстовый браузер с поддержкой закладок (tabs) и фреймов.
moria Очень хорошая Rogue-like игра
mudix The best MUD client I've found for console
cqcam Цветная ЦентрУправления Quickcam (PC/Parallel)
bitchx Очень популярный IRC-клиент
screen Оконый менеджер с множеством функций
ohphone Совместимый с Microsoft NetMeeting интернет-телефон VoIP
libcaca Графическая библиотека. Используйте 'cacaview' для просмотра изображений в текстовом режиме.
angband Очень хорошая Rogue-like игра
fetchmail Качалка почты с серверов POP3/IMAP/ETC (используйте с pine)
centericq Удивительный клиент сетей ICQ/AIM/MSN/IRC/YAHOO/JABBER
mp3blaster Очень красивый интерфейс, проигрывающий mp3/ogg
speakfreely Удивительная VoIP-программа для *NIX/Windows


Это должно дать вам общую идею, что доступно. Теперь про графические возможности консоли FreeBSD:
SVGAlib Приложения, которые поддерживают SVGAlib, могут использоваться в консоли, используя SVGAlib
GGI:vgl Приложения, которые поддерживают GGI, могут использоваться в консоли с буфером VGL
SDL:vgl Приложения, которые поддерживают GGI, могут использоваться в консоли с VGL-backend
SDL:svgalib Приложения, которые поддерживают SDL, могут использоваться в консоли с буфером SVGAlib

Имейте в виду, что самое большое беспокойство при использовании графического режима вызывают ваши видео аппаратные средства. Все может работать без ошибок или это может быть кошмар. Для того чтобы все работало, вы должны были загрузить модуль VESA или собрать поддержку в ядро (см. выше).

Удостоверьтесь, что версии GGI/SDL, которые вы установили, собраны с поддержкой буфера VGL. Это хорошая идея, иметь поддержку SVGAlib, собранную также и для SDL. Чтобы использовать драйвера VGL/SVGAlib с приложениями SDL, удостоверьтесь, что следующие переменные окружения установлены правильно:


SDL_VIDEODRIVER vgl

или

SDL_VIDEODRIVER svgalib


Для того чтобы все заработало, SDL должен быть в состоянии найти подходящее разрешение для переключения в него приложения для работы. Если это не работает, не бросайте. Взгляните, может приложение сконфигурировано для другого разрешения или ширины/высоты. Если это так, попробуте изменить такие параметры настройки, пока это не заработает. Пробуйте использовать буфера VGL и SVGAlib!

Для использования драйвера VGL с приложениями GGI, удостоверьтесь, что правильно установлена переменная окружения:

GGI_DISPLAY vgl
Точно так же как и SDL, GGI должен быть в состоянии найти соответствующее разрешение для переключения приложения. Если возможно, сконфигурируйте приложение, чтобы использовать другое разрешение или ширину/высоту, пока это не заработает.

Чтобы использовать приложения SVGAlib, вы должны убедится, что правильно сконфигурировали железо (мышь/видео). Вы можете отредактировать следующий файл:
/usr/local/etc/vga/libvga.config

Точно так же как SDL и GGI, SVGAlib должен быть в состоянии найти соответствующее разрешение для переключения приложения. Если возможно, сконфигурируйте приложение, чтобы использовать другое разрешение или ширину/высоту, пока это не заработает.

Есть надежда на аппаратное ускорение в консоли. Проект kgi4BSD работает над разработкой лучшего, более современного, более поддерживающего графического решения для консоли FreeBSD. В настоящее время все в стадии разработки.

Следующий список графических приложений, которых я сумел заставить работать, используя один из вышеупомянутых методов.

Заметка: Вам или вашему двойнику, пытающемуся это запустить, будут требоватся права рута!

dgen-sdl:vgl Удивительный эмулятор Sega Genesis/MegaDrive. Должен играть с-X-Y (-X 2-Y 2), чтобы мог работать
svnc-svgalib Viewer VNC для SVGAlib. Прочитайте документацию!
links-svgalib Браузер links WWW, запущеный в графическом режиме. Работает хорошо! (1024x768)
plaympeg-sdl:vgl Видеоплейер MPEG-1. Должен использовать -2 для некоторых видеофайлов.
quake-sdl:svgalib Порт QuakeForge для Quake. Используйте nq-sdl для старта.
showimage-sdl:vgl Просмотр изображений для SDL. Я написал скрипт, который изменяет размеры всех изображений к 800x600 jpeg перед показом. Исправляет несовместимые изображения для моей консоли.
gnuboy-sdl:vgl Великолепный Nintendo GameBoy Color
gnuboy-svgalib Великолепный Nintendo GameBoy Color (Клавиши курсора были сломаны в SVGAlib и должны были быть повторно назначены)
seejpeg-svgalib Просмотр изображений для для SVGAlib

Вот пока и все. Я надеюсь, что вы нашли статью полезной в ваших попытках сконфигурировать хорошее рабочее место FreeBSD. Если у вас есть какие-нибудь предложения, вопросы или комментарии, пожалуйста немедля шлите tlp {at} liquidx {dot} org!

Обновлено: 12.03.2015