почему emacs мешает суперпользователю редактировать файлы без полномочий?

Ваш монитор предоставляет информацию о себе с помощью цифрового стандарта EDID. Ядро считывает эту информацию при обнаружении устройства отображения и автоматически настраивает его отображение так, чтобы оно максимально соответствовало собственному разрешению устройства отображения. На самом деле ЖК-устройства могут поддерживать только одно разрешение - свое родное разрешение - и эмулировать все остальные. Из википедии :

Расширенные идентификационные данные дисплея (EDID) - это структура данных, предоставляемая цифровым дисплеем для описания его возможностей источнику видео (например, видеокарте или телевизионной приставке). коробка). Это то, что позволяет современному персональному компьютеру знать, какие мониторы к нему подключены. EDID определяется стандартом, опубликованным Ассоциацией стандартов видеоэлектроники (VESA). EDID включает название производителя и серийный номер, тип продукта, тип люминофора или фильтра, время, поддерживаемое дисплеем, размер дисплея, данные яркости и (только для цифровых дисплеев) данные отображения пикселей.

Проблема заключается в том, что очень часто предоставленный EDID является неправильным или каким-то образом поврежден - обычно это происходит из-за ленивых или заблуждающихся производителей, которые должны запрограммировать эту информацию в прошивка устройства. Это может быть даже вызвано плохим проводом HDMI, но шансы на это гораздо меньше, поскольку цифровой кабель гораздо с большей вероятностью просто не будет работать вообще. Но есть и другие возможности. Если вы используете KMS, вам это, вероятно, будет интересно:

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

  • Графическая плата не распознает монитор.

  • Графическая плата не может обнаружить какие-либо данные EDID.

  • Графическая плата неправильно передает данные EDID драйверу.

  • Монитор не отправляет данные EDID или отправляет ложные данные.

  • KVM отправляет свои собственные данные EDID вместо запроса подключенного монитора.

Добавление параметра ядра «nomodeset» помогает в большинстве случаев, но позже вызывает ограничения.

∆That∆ - это отрывок из собственного HOWTO.txt kernel.org для KMS EDID. Этот текстовый файл находится в той же папке , что и пять EDID стандартного разрешения, которые вы можете предоставить ядру при загрузке с помощью параметра ядра и initramfs, чтобы обойти предоставленный вашим монитором EDID.

Если вы используете один из драйверов дисплея с открытым исходным кодом, вы используете настройку режима ядра и можете, например, использовать любую из пяти уже упомянутых предустановок обхода разрешения EDID KMS. В качестве альтернативы вы можете полностью предоставить свой собственный файл EDID, который будет использовать ядро ​​вместо информации, предоставляемой ему устройством отображения.

См. этот раздел вики Arch Linux для получения дополнительной информации, но, вероятно, эта ветка AskUbuntu будет лучше ориентирована на ваш дистрибутив.

Если вы не используете KMS, а вместо этого используете драйверы с закрытым исходным кодом nvidia или AMD, то, насколько мне известно, ваши шансы надежно справиться с разрешениями времени загрузки почти равны нулю. Их можно настроить в grub или другом загрузчике до того, как будет смонтирован любой образ initramfs, но вероятность того, что это позже повлияет на собственное разрешение драйверов с закрытым исходным кодом конфигурация при запуске X довольно высока. Если вам очень повезло, производитель вашей материнской платы любезно предоставил вам параметр в прошивке UEFI для настройки разрешения времени загрузки, и вы можете установить его там даже до любого вторичного загрузчика, такого как grub ] загружается вообще. Впрочем, я никогда лично не знал никого настолько удачливого.

1
04.09.2014, 08:07
1 ответ

Это скорее случай, когда vim и emacs раскрывают то, что происходит под капотом. Если для файла нет прав на запись, он не редактируется на месте. Вместо этого файл полностью заменяется (поскольку это зависит от разрешений каталога, а не прав доступа к файлу).

Чтобы сохранить файл в emacs , у которого нет разрешений на запись, вы можете использовать M-x toggle-read-only или C-x C-q . После этого вы сможете сохранить свои изменения.

1
27.01.2020, 23:52

Теги

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