Buildroot Rootfs с XOrg не отображает графический интерфейс

Один из способов обойти это — использовать несколько sedшагов, чтобы убрать все двойные кавычки.

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

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

Наконец, вы замените все символы тегов двойными кавычками.

Что касается .*, то это своего рода пирог и съешь его ситуацию. Если оно не заключено в кавычки, bashсъест его, а если оно будет заключено в кавычки, sedувидит его как буквальное значение. Возможно, вам придется переписать эту часть, используя регулярное выражение, которое останется в кавычках в bash, но вступит в силу в sed.

Вот почему я сказал, что, вероятно, в awkбудет проще. ; )Особенно последняя часть!

0
02.10.2020, 14:22
1 ответ

Сообщение об ошибке генерируется языком программирования, эквивалентным этой команде сценария оболочки:

echo "Can't open display: $DISPLAY" >&2

Таким образом, тот факт, что вы ничего не видите после второго двоеточия, означает, что переменная окружения DISPLAYне была установлена ​​(или была установлена ​​в нулевое значение ).

При запуске сервера X11 также создается файл cookie сеанса (, если не отключена аутентификация X11, что не является безопасным ). У вас должно быть что-то, что передает копию этого файла cookie пользователю, выполняющему приложения X11 :файл cookie обычно помещается либо в файл, на который указывает переменная среды XAUTHORITY, либо, если такая переменная не определена, в ~/.Xauthorityв домашнем каталоге пользователя.

Вот почему запуск сервера X11 обычно выполняется специальной программой :либо startx(, которая представляет собой скрипт, использующий инструмент низкого -уровня xinit), если вы собираетесь запустить сеанс X11 для пользователь, который уже вошел в систему локально в текстовом режиме, или X Display Manager (, обычно с именем *dm, например gdm, sddm, xdm), которые сначала отобразят запрос входа в систему с графическим интерфейсом, а затем обработают вход пользователя.

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

(Настройка сеанса X11 может и часто будет делать гораздо больше, но это абсолютный минимум, который необходимо сделать.)

1
18.03.2021, 23:01

Теги

Похожие вопросы