Как установить X11 на моем собственном Linux система Buildroot?

Кажется, что это диалоговое окно было буквально разработано, чтобы быть необходимым злом. Специалист по обслуживанию считал диалоговое окно необходимым, потому что "оно покрывает нас по закону". Я не вижу упоминание о точно, какой риск должен быть покрыт, но я предполагаю, что это - присвоение ответственности за любые плохие последствия добавления репозитория.

Диалоговое окно является злым в этом, в тех ранних обсуждениях был уже поднят каждый известный недостаток, о котором я могу теперь думать, включая тех, которые в вопросе выше. Диалоговое окно, как было всегда известно, было информационно несоответствующим. Например, мнение было высказано это, цифровой отпечаток GPG составляет 160 битов, не 32 (спасибо также к nealmcb для того, чтобы сначала обратить мое внимание на эту точку). Если я понимаю правильно, задача предоставления достаточной информации для информированного выбора доверяемых хранилищ казалась безнадежной из-за наблюдаемого неупотребления сети GPG доверия, на основание которого базовые технологии для репозиториев подразумевают устанавливать идентификационные данные репозитория.

Вот обходное решение. То, когда "подпись программного обеспечения требуется" диалоговое окно, появляется, всегда говорите "нет". Затем инициируйте установку с помощью программы установки командной строки вместо этого, такой как конфетка, об/мин, склонный, или dpkg.

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

Я думаю, что попытаюсь сделать конструктивный вклад в Bugzilla.

7
27.08.2017, 10:35
2 ответа

Необходимо будет создать X самостоятельно. Начните путем чтения этой записи Wiki X.Org.

Это руководство для разработчиков, которые хотят создать X-оконную систему из источника. Если Ваша сфера интересов ограничена единственным пакетом, как драйвер или приложение, сверьтесь со своим O/S сначала для средств разработки.

Что касается диспетчера пакетов, необходимо будет выбрать один, удовлетворить все необходимые зависимости и затем материал пакета для него (просто, потому что Вы выбрали dpkg/rpm/whatever, не означает, что deb/RPM/... пакеты будет волшебно работать с Вашим дистрибутивом). Pacman, от Дуги Linux, выглядит достаточно легким создать.

5
27.01.2020, 20:16

Ubuntu 16.04 host, Buildroot 2017.02

enter image description here

Текущий Buildroot имеет пакет X11, который делает вещи "легкими" для нас: https://github.com/buildroot/buildroot/tree/2016.05/package/x11r7

Это репо собирает всю систему для вас одной командой: https://github.com/cirosantilli/linux-kernel-module-cheat/tree/b134f3958884ce1fce2dd9d31d19ab0c0fbe9089#x11

Alternatively, here is a pre-parared .config file: https://github.com/cirosantilli/buildroot-configs/blob/44b45b5c7f68e44abcda360a2b980f8301901a9a/qemu_x86_64_x11_defconfig

Это минимальные конфигурации для X11, с которыми я смог справиться:

BR2_PACKAGE_XAPP_TWM=y
BR2_PACKAGE_XAPP_XCALC=y
BR2_PACKAGE_XAPP_XCLOCK=y
BR2_PACKAGE_XAPP_XEYES=y
BR2_PACKAGE_XAPP_XINIT=y
BR2_PACKAGE_XDRIVER_XF86_INPUT_KEYBOARD=y
BR2_PACKAGE_XDRIVER_XF86_INPUT_MOUSE=y
BR2_PACKAGE_XDRIVER_XF86_VIDEO_CIRRUS=y
BR2_PACKAGE_XDRIVER_XF86_VIDEO_FBDEV=y
BR2_PACKAGE_XDRIVER_XF86_VIDEO_VESA=y
BR2_PACKAGE_XORG7=y
BR2_PACKAGE_XSERVER_XORG_SERVER=y
BR2_PACKAGE_XTERM=y
BR2_TOOLCHAIN_BUILDROOT_CXX=y
BR2_TOOLCHAIN_BUILDROOT_WCHAR=y
BR2_USE_WCHAR=y

Вот как вы можете добавить эти опции в существующий .config: Возможно ли использовать фрагменты конфигурации с .config Buildroot? | Stack Overflow

Как я обнаружил эти опции: make menuconfig, поиск имен опций с помощью /, затем работа в обратном направлении dependes от xeyes.

К сожалению, вам все еще нужно знать, что вы делаете, в основном из-за ситуаций, когда два разных пакета реализуют интерфейс (например, X.Org Modular против KDrive, оба из которых реализуют сервер X11), и ни один не выбран по умолчанию.

Эта статья очень помогла: Building a tiny X.Org Linux System using Buildroot | agentoss.wordpress.com

Потом как обычно:

make BR2_JLEVEL=$(nproc)
qemu-system-x86_64 \
    -enable-kvm \
    -M pc \
    -m 512 \
    -kernel output/images/bzImage \
    -drive file=output/images/rootfs.ext2,if=virtio,format=raw \
    -append root=/dev/vda \
    -net nic,model=virtio \
    -net user

И изнутри QEMU:

root
startx

Размер образа: 28M.

Итог

Архаичная система X11!

И ведет она себя так же, как на этом видео: https://upload.wikimedia.org/wikipedia/commons/transcoded/5/52/TWM_without_configuration.ogv/TWM_without_configuration.ogv.480p.webm

В частности, этот архаичный оконный менеджер не имеет кнопки закрытия X на панелях меню: вам нужно:

  • щелкнуть на рабочем столе
  • выбрать "kill" из меню
  • выбрать окно, которое вы хотите убить

startx затем передает /etc/X11/xinit/xinitrc в xinit, который вызывает его после запуска GUI. По умолчанию xinitrc содержит:

twm &
xclock -geometry 50x50-1+1 &
xterm -geometry 80x50+494+51 &
xterm -geometry 80x20+494-0 &
exec xterm -geometry 80x66+0+0 -name login

который запускает наш оконный менеджер twm (попробуйте изменить его на один из других менеджеров, для которых у Buildroot есть пакеты), и программы, которые мы видим на экране. TODO Что это за часть exec xterm? Почему exec?

x11vnc

enter image description here

Когда вы переходите от эмулятора к реальному устройству, x11vnc избавляет вас от покупки дисплея: он открывает экран как окно в вашем хосте и даже может посылать клики мыши на устройство.

Включите пакет x11vnc в Buildroot и пересоберите.

Чтобы сначала протестировать на QEMU, используйте опции (см. также Как использовать SSH от хоста к гостю с помощью QEMU? | Unix & Linux Stack Exchange ):

-net nic,model=virtio \
-net user,hostfwd=tcp::5901-:5900

затем на гостевом startx, и запускаем:

x11vnc

И снова на хосте:

sudo apt-get install vinagre
vinagre localhost::5901

Результат:

  • слева QEMU, запущенный X11, x11vnc и glmark2
  • справа vinagre на хосте, показывающий то же самое
  • Я могу нажать и взаимодействовать с любым из них, и другой обновляется мгновенно

См. также: Как настроить Raspberry Pi без монитора? | Raspberry Pi Stack Exchange

Дисплейный менеджер (неудачная попытка)

enter image description here

Если вы хотите полностью забыть о терминале, также включите:

  • Целевые пакеты (Target packages)
    • Графические библиотеки и приложения
      • X.Org X Window System: нажмите y, а затем enter, чтобы войти в систему
        • X11R7 Applications
          • xconsole (запускается xdm по умолчанию)
          • xdm

Теперь при запуске QEMU появляется графический экран входа в систему, как в "современных" дистрибутивах:

TODO: cannot login. Имя пользователя root / пустой пароль работало для меня в другом тесте с установленными ВСЕМИ пакетами X11. xdm помещает журналы в /var/log/xdm.log, и вы можете получить оболочку TTY, чтобы проверить его с помощью: Как я могу ctrl-alt-f# получить TTY в сессии QEMU? | Ask Ubuntu

Цепочка вызовов, запускающая диспетчер отображения:

  • /init (предоставляется BusyBox)
  • /etc/inittab строка ::sysinit:/etc/init. d/rcS
  • /etc/init.d/rcS
  • /etc/init.d/S99xdm
  • /usr/bin/xdm
6
27.01.2020, 20:16

Теги

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