Вопрос про dialog

Проблемы установки, настройки и работы Правильной Операционной Системы

Модератор: terminus

Правила форума
Убедительная просьба юзать теги [cоde] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
mihan_k
мл. сержант
Сообщения: 70
Зарегистрирован: 2009-01-27 15:44:27

Вопрос про dialog

Непрочитанное сообщение mihan_k » 2009-02-16 23:54:59

Необходимо использовать dialog сразу после загрузки ядра, но при выполнении возникает ошибка:
Error opening terminal: unknown

Ядро Freebsd 6.2, пробовал использовать на прямую с необходимыми библиотеками,
также собирал с помощью crunchgen - результат одинаковый...

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

zg
полковник
Сообщения: 5845
Зарегистрирован: 2007-12-07 13:51:33
Откуда: Верх-Нейвинск

Re: Вопрос про dialog

Непрочитанное сообщение zg » 2009-02-17 0:01:21

mihan_k писал(а):Необходимо использовать dialog сразу после загрузки ядра
:crazy: man 3 dialog

mihan_k
мл. сержант
Сообщения: 70
Зарегистрирован: 2009-01-27 15:44:27

Re: Вопрос про dialog

Непрочитанное сообщение mihan_k » 2009-02-17 0:32:18

Как именно использовать dialog я и так знаю,
в обычной полностью загруженной системе всё работает нормально.
Мне нужно именно сразу после загрузке ядра в скрипте rc, на который передаёт управление загрузчик loader.

Гость
проходил мимо

Re: Вопрос про dialog

Непрочитанное сообщение Гость » 2009-02-17 1:28:15

mihan_k писал(а):Необходимо использовать dialog сразу после загрузки ядра, но при выполнении возникает ошибка:
Error opening terminal: unknown
тебе нужен termcap(5)
ncurses(3) писал(а): TERM Denotes your terminal type. Each terminal type is distinct,
though many are similar.

TERMCAP
If the ncurses library has been configured with termcap support,
ncurses will check for a terminal's description in termcap form if
it is not available in the terminfo database.

The TERMCAP symbol contains either a terminal description (with
newlines stripped out), or a file name telling where the informa-
tion denoted by the TERM symbol exists. In either case, setting
it directs ncurses to ignore the usual place for this information,
e.g., /etc/termcap.

TERMPATH
If TERMCAP does not hold a file name then ncurses checks the
TERMPATH symbol. This is a list of filenames separated by spaces
or colons (i.e., ":") on Unix, semicolons on OS/2 EMX. If the
TERMPATH symbol is not set, ncurses looks in the files /etc/term?
cap, /usr/share/misc/termcap and $HOME/.termcap, in that order.
по дефолту во фре симлинк
/etc/termcap -> /usr/share/misc/termcap

А найти описание терминала ncurses не может, т.к. у тебя /usr скорее всего находится на другом разделе. В single user mode и сразу после старта системы монтируется только раздел содержащий корень `/'. Остальные разделы монтируются заметно позже одним из rc.d-скриптов mountcritlocal.

Т.е. у тя есть выбор:
- смонтировать /usr, чтобы симлинк указывал на существующий файл
- поменять симлинк на реальный файл
- указать в TERMCAP путь до временного файла, например копия /usr/src/etc/termcap.small в $HOME/.termcap или /.termcap
- задать в TERMCAP возможности терминала вручную, благо их несложно сгенерировать на основе termcap-файла. Напр,

Код: Выделить всё

$ tset -s cons25
TERM=cons25;
TERMCAP='cons25|ansis|ansi80x25:ac=l\332m\300k\277j\331u\264t\303v\301w\302q\304x\263n\305\140^Da\260f\370g\361~\371.^Y-^Xh\261i^U0\333y\363z\362:am:bs:NP:ms:pt:AX:eo:bw:ut:km:co#80:li#25:pa#64:Co#8:it#8:al=\E[L:cd=\E[J:ce=\E[K:cl=\E[H\E[J:cm=\E[%i%d;%dH:dc=\E[P:dl=\E[M:do=\E[B:bt=\E[Z:ho=\E[H:ic=\E[@:cb=\E[1K:nd=\E[C:rs=\Ec:so=\E[7m:se=\E[27m:up=\E[A:cr=^M:ta=^I:AF=\E[3%dm:AB=\E[4%dm:op=\E[39;49m:sc=\E7:rc=\E8:k1=\E[M:k2=\E[N:k3=\E[O:k4=\E[P:k5=\E[Q:k6=\E[R:k7=\E[S:k8=\E[T:k9=\E[U:k;=\E[V:F1=\E[W:F2=\E[X:K2=\E[E:nw=\E[E:ec=\E[%dX:kb=^H:kh=\E[H:ku=\E[A:kd=\E[B:kl=\E[D:kr=\E[C:le=^H:sf=\E[S:sr=\E[T:kN=\E[G:kP=\E[I:@7=\E[F:kI=\E[L:kD=\177:kB=\E[Z:IC=\E[%d@:DC=\E[%dP:SF=\E[%dS:SR=\E[%dT:AL=\E[%dL:DL=\E[%dM:DO=\E[%dB:LE=\E[%dD:RI=\E[%dC:UP=\E[%dA:cv=\E[%i%dd:ch=\E[%i%d\140:mb=\E[5m:md=\E[1m:mr=\E[7m:me=\E[m:bl=^G:ve=\E[=S:vi=\E[=1S:vs=\E[=2S:';
export TERMCAP;
export TERM;
и если этот кусок вставить в скрипт, то даже при отсутствие termcap файла у тебя будут работать все ncurses-приложения. Только содержимое TERMCAP лучше разбть на несколько строк или засунуть в самодельный termcap-файл.

mihan_k
мл. сержант
Сообщения: 70
Зарегистрирован: 2009-01-27 15:44:27

Re: Вопрос про dialog

Непрочитанное сообщение mihan_k » 2009-02-17 22:07:27

Спасибо, всё получилось, вопрос закрыт.
:smile: