[ 1712.621] (II) [drm] nouveau interface version: 1.3.1
[ 1712.621] (EE) Unknown chipset: NV118
Версия драйвера nouveau
X11 в Debian 9.x слишком старая для поддержки вашей модели NVidia dGPU. Возможно, вы сможете продолжить использование только iGPU Intel, если конфигурация вашего оборудования позволяет это (, т. е. iGPU физически подключен к дисплеям/разъемам, которые вам нужны; с ноутбуками с несколькими -GPU Optimus, что не всегда может быть правдой ).
В большинстве случаев полный xorg.conf
файл больше не нужен в современных версиях Xorg. Вам может сойти с рук написание мини-файла конфигурации -, например /etc/X11/xorg.conf.d/intel-only.conf
:
Section "ServerLayout"
Identifier "Layout0"
Option "AutoAddGPU" "false"
Screen 0 "IntelScreen"
EndSection
Section "Device"
Identifier "IntelDevice"
BusID "PCI:0:2:0"
Driver "intel" # or maybe "modesetting"?
EndSection
Section "Screen"
Identifier "IntelScreen"
Device "IntelDevice"
EndSection
Это ограничит использование X-сервером только iGPU Intel и на данный момент игнорирование dGPU Nvidia, а также автоматическое -определение всех устройств ввода, разрешений экрана и т. д.
Хороший вопрос. Одним из возможных решений будет проверка скрипт запускается с sudo
, завершается, если это не так, и временно сброс привилегий для запуска команд, которые должны выполняться как обычные Пользователь. Что-то в этом роде:
#!/usr/bin/env sh
if [ -z "$SUDO_USER" ]
then
printf "Not running with sudo. Exiting\n"
exit 1
fi
touch SUDO-FILE
# drop privileges temporarily
su "$SUDO_USER" -c 'touch REGULAR-FILE'
После запуска вы увидите 2 файла -SUDO-FILE
, принадлежащие root и его основная группа и файл REGULAR-FILE
, принадлежащий обычному пользователю и его основная группа:
$ ls -Alhtr SUDO-FILE REGULAR-FILE
-rw-r--r-- 1 root root 0 Dec 5 21:06 SUDO-FILE
-rw-r--r-- 1 ja users 0 Dec 5 21:06 REGULAR-FILE
Протестировано на Slackware Linux и FreeBSD. Вы также можете использовать su -l
, который будет источником сценария входа в оболочку вашего обычного пользователя, такого как ~/.profile
.
Я не знаю, какие недостатки и возможные ошибки есть у этого решения. хотя поэтому убедитесь, что вы выполнили пару тестов, прежде чем использовать его в производство.
Я бы разделил ваш сценарий на два:
Один для сборки, который не требует запуска с правами root. (ваш текущий install.sh
, который будет переименованbuild.sh
)
Один для установки, который требует запуска от имени пользователя root. (настоящийdeploy.sh
).
И почему бы не 3-й скрипт, который назывался бы install.sh
и делал бы:
build.sh
регулярно. sudo deploy.sh