LINUX.ORG.RU

Вопросы по запуску xserver.


0

1

Добрый день. Занимаюсь реализацией автозапуска xservera и возникают вопросы, решил обратиться за помощью.
Опишу что мне нужно.
1)Стартует система Ubuntu Server 9.04
2)Автологин заходит под обычным пользователем без привелегий
3)Автоматически загружается модуль lxfb(фреймбуффер под видео AMD Geode LX).
4)Автоматически запускается xserver настроенный на работу через фреймбуффер.
5)Автоматически загружается драйвер com-портовой мыши.
6)Автоматически открывается xterminal размером на весь экран (800х600).
7)Автоматически в иксовом терминале запускается серверная часть программы ProgUser(символичное название).
8)Отключить заставку при долгом отсутствии касаний клавиатуры и мыши.

В данный момент что уже сделал и как:

1)Стартует Ubuntu Server, слава GRUB'у.
2)Автологин настроил через установку mingetty и исправление файла /etc/event.d/tty1
3)Модуль lxfb загружается командой modprobe прописанной в /etc/rc.local. Загрузка происходит с установкой разрешения экрана 800х600.
4)Работа xorg'а через fb реализована подправкой файла xorg.conf. Запуск xserver'а происходит с помощью скрипта в котором есть команда startx. Сам скрипт лежит в папке /home/user/MyScripts/script.sh, на него добавлен симлинк в папкt /usr/bin/, и в файл /etc/rc.local добавлена строка script.sh.
5)Честно говоря мышь в данный момент не настроена абсолютно, при загрузке появляется указатель в центре экрана, но двигаться он и не думает.
6)Xterm в данный момент запускается с дефолтными настройками, то есть с левом верхнем углу, размером с четверть экрана. Из гуглов вычитал что настроить размеры и параметры хтерминала можно создав файл .xinitrc в папке /home/user/, через который также можно будет реализовать запуск необходимой программы(пункт 7).
В данный момент файл .xinitrc выглядит следующим образом:

#!/bin/sh
xrdb -load $HOME/ .Xresources
xsetroot -solid gray &
xclock -g 50x50-0+0 -bw 0 &
xload -g 50x50-50+0 -bw 0 &
xterm -g 80x24+0+0 &
xterm -g 80x24+0-0 &

При загрузке ничего не меняется. То есть файл составлен не верно.

7)Для автоматического запуска программы прописаны 2 команды в теле скрипта script.sh:

cd /var/ProgUser
./proguser &

но это не приводит к результату. Если вбивать эти же команды в консольку ручками, программа прекрасно запускается.

8)Пока не копал этот вопрос.Написал скорее на будущее, так как возможно быстро сам найду ответ.

Итак я описал ситуацию. Надеюсь сможете мне помочь.

Первым делом подскажите какие фалы следует редактировать и где, для управления процессом старта иксов. Я так понимаю если правильно написать .xinitrc, то можно и настроить параметры хтерминала и реализовать пуск нужной программы. Подскажите как, или пните ногой в сторону актуального документа. Информации в интернете много, но в каждой статье свое виденье написания .xinitrc.

Спасибо.


?

Почему именно так:

6)Автоматически открывается xterminal размером на весь экран (800х600). 7)Автоматически в иксовом терминале запускается серверная часть программы ProgUser(символичное название).

?

Зачем Вам серверную часть заускать в иксовом терминале? о_О

dhameoelin ★★★★★
()

>3)Автоматически загружается модуль lxfb(фреймбуффер под видео AMD Geode LX).

4)Автоматически запускается xserver настроенный на работу через фреймбуффер.

Зачем запускать иксы через фреймбуффер?!

Deleted
()
Ответ на: ? от dhameoelin

Программулина работает под иксами изначально, так как к ней на этой же машине будет цепляться пользовательская часть и тоже иксовая.

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

AnMD
() автор топика
Ответ на: комментарий от Deleted

Потому что программа которая затем будет крутиться на иксах умеет работать только через фреймбуффер.

AnMD
() автор топика
Ответ на: комментарий от AnMD

Зачем так писать программы?

Ладно, я лучше покину тред.

Deleted
()
Ответ на: комментарий от AnMD

>Потому что программа которая затем будет крутиться на иксах умеет работать только через фреймбуффер.

/0

Led ★★★☆☆
()
Ответ на: комментарий от Led

Возможно я не верно формулирую ответы. У меня опыт общения с linux месяц. А у вас 10 лет. Дайте совет, основанный на вашем опыте.

AnMD
() автор топика
Ответ на: комментарий от AnMD

для общего понимания
man startx
man xsession

~/.Xresources файл где ты напишешь настройки своего xterm, пример:
XTerm*background: black
XTerm*foreground: white
за работу с ним отвечает утилита xrdb, убедись что она есть

~/.xsession файл где ты напишешь все запускаемые программы (это не cкрипт, не надо писать вначале !#/bin/bash)
пример:
exec xterm &

свои ошибки смотри в ~/.xsession-errors и /var/log/Xorg.log и не бойся разговаривать с гуглом, он не зубоскалит ;)













bass ★★★★★
()
Ответ на: комментарий от AnMD

> Дайте совет, основанный на вашем опыте.

Пойти в раздел Job

tensai_cirno ★★★★★
()
Ответ на: комментарий от bass

Спаибо за нормальный ответ!

Нашел свою первую ошибку... при загрузке xinit искал .Xresources и .xsession в папке /root/ а я их создавал в папке /home/user/ Скопировал файлы в папку /root/

xrdb установлен, проверил.

.Xresources выглядит сейчас вот так

XTerm*background: black XTerm*foreground: white XTerm*cursorColor: white XTerm.vt100.geometry: 85x40 XTerm*scrollBar: true XTerm*scrollTtyOutput: false

.xsession выглядит вот так

exec xterm & exec /var/CodeSys/codesyssp &

Результат по-прежнему не изменился. Загружается только xterm с дефолтными настройками и запуск нужной программы далее не следует. Думал может проблема с правами на файл сделал chmod +x. Безрезультатно.

AnMD
() автор топика
Ответ на: комментарий от anonymous

При старте иксов, он почему-то автоматически заходит под рут. Иксы стартую командой либо xinit либо start, прописивыю команду в /etc/rc.local.

AnMD
() автор топика
Ответ на: комментарий от AnMD

>/etc/rc.local

Этот скрипт исполняется с правами суперпользователя, те все его child-ы тоже. Используй su.

anonymous
()
Ответ на: комментарий от AnMD

установи display manager, позволяющий запускать иксы автоматически под определённым пользователем, например slim.
можешь посмотреть в сторону gdm и kdm.

bass ★★★★★
()

Попробуй
xinit твойскрипт — :0

Lumi ★★★★★
()
Ответ на: комментарий от AnMD

Это что, же - программа-сервер требует GUI????? O_O

и заставьте уже xinit запускать так нужный Вам xterm при старте иксов, как xclient

dhameoelin ★★★★★
()
Ответ на: ЪI от dhameoelin



А как сделать чтобы запуск последующей программы проходил именно в XTerm'е?

Пробовал вот так... в /etc/rc.local пишу

su - user -c «xinit /etc/init.d/codesyssp — :0»

Поулчаю 2 полосы из пикселей в верхней части экрана. скрипт codesyssp мксимально прост:

#!/bin/sh

PATH=/sbin:/bin:/usr/sbin:/usr/bin
DAEMON=/usr/bin/codesyssp
NAME=codesyssp

cd /var/CodeSys
./codesyssp &

Ради интереса изменил команду в rc.local на:

su - user -c «xinit mc»

В результате легко загрузился MC при запуске, без единой ошибки. Продолжаю биться.

AnMD
() автор топика
Ответ на: комментарий от AnMD



Частично получилось. изменил строчку в rc.local

su - user -c «xinit -e /etc/init.d/codesyssp»

и убрал амперсанд после ./codesyssp

Теперь переделал скрипт по примеру skeleton'а:

#!/bin/sh

PATH=/sbin:/bin:/usr/sbin:/usr/bin
DAEMON=/usr/bin/codesyssp
NAME=codesyssp

#case «$1» in

start)
cd /var/CodeSys
./codesyssp
;;
stop)
killall codesyssp
;;
restart)
killall codesyssp
cd /var/CodeSys
./codesyssp
;;
*) echo Type start/stop/restart
esac

Вопрос как правильно поменять строку в rc.local чтобы при запуске можно было использовать улучшенный скрипт.

Пробовал

su - user -c «xinit -e »/etc/init.d/codesyssp start""

получил темный экран со строкой зеленых пикселей сверху...

AnMD
() автор топика
Ответ на: комментарий от AnMD

Оказалось что просто надо было использовать одиночные кавычки. Все заработало. Всем большое спасибо.

AnMD
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.