Что означают эти последовательности в переменной PS1?

Ниже приведен простой метод, который не требует написания сценариев, подключения поддельных мониторов или возни и может выполняться через SSH для управления вентиляторами нескольких графических процессоров NVIDIA. Он был протестирован на Arch Linux.

Создать xorg.conf

sudo nvidia-xconfig --allow-empty-initial-configuration --enable-all-gpus --cool-bits=7

Будет создан /etc/X11/xorg.confс записью для каждого графического процессора, аналогично ручному методу.

Примечание:Некоторые дистрибутивы (Fedora, CentOS, Manjaro )имеют дополнительные файлы конфигурации (, например, в /etc/X11/xorg.conf.d/или /usr/share/X11/xorg.conf.d/), которые переопределяют xorg.confи устанавливают AllowNVIDIAGPUScreens. Эта опция несовместима с этим руководством. Дополнительные файлы конфигурации должны быть изменены или удалены. Файл журнала X11 показывает, какие файлы конфигурации были загружены.

Альтернатива :Создайте файл xorg.conf вручную

Идентифицируйте PCI ID ваших карт:

nvidia-xconfig --query-gpu-info

Найдите поля PCI BusID. Обратите внимание, что это не то же самое, что идентификаторы шин, указанные в ядре.

В качестве альтернативы выполните sudo startx, откройте/var/log/Xorg.0.log(или любое другое место, указанное startX в своих выходных данных в строке «Файл журнала :» ), и найдите строку NVIDIA(0): Valid display device(s) on GPU-<GPU number> at PCI:<PCI ID>.

Редактировать/etc/X11/xorg.conf

Вот пример xorg.confдля машины с тремя -GPU:

Section "ServerLayout"
        Identifier "dual"
        Screen 0 "Screen0"
        Screen 1 "Screen1" RightOf "Screen0"
        Screen 1 "Screen2" RightOf "Screen1"
EndSection

Section "Device"
    Identifier     "Device0"
    Driver         "nvidia"
    VendorName     "NVIDIA Corporation"
    BusID          "PCI:5:0:0"
    Option         "Coolbits"       "7"
    Option         "AllowEmptyInitialConfiguration"
EndSection

Section "Device"
    Identifier     "Device1"
    Driver         "nvidia"
    VendorName     "NVIDIA Corporation"
    BusID          "PCI:6:0:0"
    Option         "Coolbits"       "7"
    Option         "AllowEmptyInitialConfiguration"
EndSection

Section "Device"
    Identifier     "Device2"
    Driver         "nvidia"
    VendorName     "NVIDIA Corporation"
    BusID          "PCI:9:0:0"
    Option         "Coolbits"       "7"
    Option         "AllowEmptyInitialConfiguration"
EndSection

Section "Screen"
        Identifier     "Screen0"
        Device         "Device0"
EndSection

Section "Screen"
        Identifier     "Screen1"
        Device         "Device1"
EndSection

Section "Screen"
        Identifier     "Screen2"
        Device         "Device2"
EndSection

Значение BusIDдолжно совпадать с идентификаторами шин, которые мы определили на предыдущем шаге.Опция AllowEmptyInitialConfigurationпозволяет запускать X, даже если монитор не подключен. Опция Coolbitsпозволяет управлять вентиляторами. Это также может позволить разгон.

Примечание:Некоторые дистрибутивы (Fedora, CentOS, Manjaro )имеют дополнительные файлы конфигурации (, например, в /etc/X11/xorg.conf.d/или /usr/share/X11/xorg.conf.d/), которые переопределяют xorg.confи устанавливают AllowNVIDIAGPUScreens. Эта опция несовместима с этим руководством. Дополнительные файлы конфигурации должны быть изменены или удалены. Файл журнала X11 показывает, какие файлы конфигурации были загружены.

Редактировать/root/.xinitrc

nvidia-settings -q fans
nvidia-settings -a [gpu:0]/GPUFanControlState=1 -a [fan:0]/GPUTargetFanSpeed=75
nvidia-settings -a [gpu:1]/GPUFanControlState=1 -a [fan:1]/GPUTargetFanSpeed=75
nvidia-settings -a [gpu:2]/GPUFanControlState=1 -a [fan:2]/GPUTargetFanSpeed=75

Для удобства я использую.xinitrc для выполнения настроек nvidia -, хотя, возможно, есть и другие способы. Первая строка выведет каждый вентилятор графического процессора в системе. Здесь я установил вентиляторы на 75%.

Запуск X

sudo startx -- :0

Вы можете выполнить эту команду из SSH. Вывод будет:

Current version of pixman: 0.34.0
    Before reporting problems, check http://wiki.x.org
    to make sure that you have the latest version.
Markers: (--) probed, (**) from config file, (==) default setting,
    (++) from command line, (!!) notice, (II) informational,
    (WW) warning, (EE) error, (NI) not implemented, (??) unknown.
(==) Log file: "/var/log/Xorg.0.log", Time: Sat May 27 02:22:08 2017
(==) Using config file: "/etc/X11/xorg.conf"
(==) Using system config directory "/usr/share/X11/xorg.conf.d"

  Attribute 'GPUFanControlState' (pushistik:0[gpu:0]) assigned value 1.

  Attribute 'GPUTargetFanSpeed' (pushistik:0[fan:0]) assigned value 75.


  Attribute 'GPUFanControlState' (pushistik:0[gpu:1]) assigned value 1.

  Attribute 'GPUTargetFanSpeed' (pushistik:0[fan:1]) assigned value 75.


  Attribute 'GPUFanControlState' (pushistik:0[gpu:2]) assigned value 1.

  Attribute 'GPUTargetFanSpeed' (pushistik:0[fan:2]) assigned value 75.

Мониторинг температуры и тактовой частоты

nvidia-smiи nvtopможно использовать для наблюдения за температурой и потребляемой мощностью. Более низкие температуры позволят карте работать на более высоких частотах и ​​увеличить энергопотребление. Вы можете использовать sudo nvidia-smi -pl 150, чтобы ограничить энергопотребление и поддерживать охлаждение карт, или использовать sudo nvidia-smi -pl 300, чтобы позволить им разогнаться. Мой 1080 Ti работает на частоте 1480 МГц при 150 Вт и более 1800 МГц при 300 Вт, но это зависит от рабочей нагрузки. Вы можете контролировать их тактовую частоту с помощью nvidia-smi -qили, точнее, watch 'nvidia-smi -q | grep -E "Utilization| Graphics|Power Draw"'

.

Возврат к автоматическому управлению вентиляторами.

Перезагрузка. Другого способа сделать вентиляторы автоматическими я не нашел.

6
03.01.2019, 11:25
1 ответ

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

Первая последовательность — это элемент управления xterm , который bash может использовать для помещения значения $PWDв заголовок окна (и имя значка ). Вы ничего не увидите в подсказке для этого. Значение оболочки $PWD— это данные, левая сторона -начинает управляющую последовательность, а правая сторона -завершает последовательность.

Другой переключается на строку VT100 -набор символов чертежа (см. Обозначает набор символов G0:0переходит к строке -рисунок,Bвозвращается к латинице -1 )напечатать (что-то )дляb. Но реальный VT100 не показывает клавишу со стрелкой для этого (, он показывает"HT" , для горизонтальной вкладки ):

.

enter image description here

Тем не менее, некоторые «эмуляторы VT100» делают свой собственный выбор (, хотя обычно они не трогают первоначальный выбор VT100 ). Интересно, что хотя MobaXterm основан на PuTTY, PuTTY документирует более ранние варианты VT52 в комментарии (, хотя не реализует вариант для b ):

.
        /*
         * From the VT100 Manual
         * NOTE: The special graphics characters in the VT100
         *       are different from those in the VT52
         *
         * From VT102 manual:
         *       137 _  Blank             - Same
         *       140 `  Reserved          - Humm.
         *       141 a  Solid rectangle   - Similar
         *       142 b  1/                - Top half of fraction for the
         *       143 c  3/                - subscript numbers below.
         *       144 d  5/
         *       145 e  7/
         *       146 f  Degrees           - Same
         *       147 g  Plus or minus     - Same
         *       150 h  Right arrow
         *       151 i  Ellipsis (dots)
         *       152 j  Divide by
         *       153 k  Down arrow
         *       154 l  Bar at scan 0

Настоящий VT100 также будет эмулировать VT52, поэтому в PuTTY есть некоторый код, связанный с VT52. Но показанная escape-последовательность не зайдет так далеко — это всего лишь VT100. Что касается того, почему VT52 обеспечивал стрелку вправо -и стрелку вниз -, но не стрелку вверх -или стрелку влево -, это не ясно, некоторые ~40 лет спустя.Но разработчик MobaXterm, вероятно, решил улучшить ситуацию, используя код, который не казался таким уж полезным.

Источник эмулятора терминала MobaXterm находится на их веб-сайте как «MoTTY». Таблица, используемая для рисования символов строки -, выглядит следующим образом:

/* Character conversion arrays; they are usually taken from windows,
 * the xterm one has the four scanlines that have no unicode 2.0
 * equivalents mapped to their unicode 3.0 locations.
 */
static const WCHAR unitab_xterm_std[32] = {
//MOBAMODIF
//    0x2666, 0x2592, 0x2409, 0x240c, 0x240d, 0x240a, 0x00b0, 0x00b1,
    0x2022, 0x2592, 0x27a4, 0x240c, 0x2714, 0x2718, 0x00b0, 0x00b1,
//END_MOBAMODIF
    0x2424, 0x240b, 0x2518, 0x2510, 0x250c, 0x2514, 0x253c, 0x23ba,
    0x23bb, 0x2500, 0x23bc, 0x23bd, 0x251c, 0x2524, 0x2534, 0x252c,
    0x2502, 0x2264, 0x2265, 0x03c0, 0x2260, 0x00a3, 0x00b7, 0x0020
};

Первая строка — это то, что они изменили (комментарий от PuTTY, в свою очередь адаптированный из xterm ). Отображение этой первой строки как UTF -8 на xterm показывает, что это за символы (hint :первая записьвосьмеричная140 или`):

8226 ->0x2022 ->{•} (4 bytes, punct)
9618 ->0x2592 ->{▒} (4 bytes, printing)
10148 ->0x27a4 ->{➤} (5 bytes, printing)
9228 ->0x240c ->{␌} (4 bytes, printing)
10004 ->0x2714 ->{✔} (5 bytes, printing)
10008 ->0x2718 ->{✘} (5 bytes, printing)
176 ->0xb0 ->{°} (3 bytes, printing)
177 ->0xb1 ->{±} (3 bytes, printing)

Предлагаемый дубликат не связан ни с одной из частей вопроса, особенно со второй частью, потому что в строке приглашения используется не UTF -8, а другая кодировка.

4
27.01.2020, 20:29

Теги

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