Hatred's Log Place

DON'T PANIC!

Dec 26, 2008 - 4 minute read - Linux

EeePC: dpi & wifi

В продолжение изначальной темы про мой EeePC. Разберем вопрос правильного задания DPI и как пользоваться WIFI и вообще сетью на ноутбуке.

DPI

Как задавать DPI (dots per inch / точек на дюйм) рассказано в статье про установку Arch Linux на EeePC 901 (смотреть мой первый пост про EeePC на этом блоге или пользоваться поиском на ArchWIKI). Я же хочу разобраться как получить это значение вообще, и какое оно будет для EeePC 1000HA, в частности.

Небольшое пояснение на март 2023 года: уже третий ноутбук сменился, но подходы остаются теми же: меняются среды, меняются окружения, единственно, что хорошо пахает с DPI - Qt и Plasma. Ну и начинаем с знакомства с этой ссылкой:

Итак, разрешение матрицы монитора X на Y точек (пикселей). Тогда количество точек по диагонали:

Z = sqrt(X^2 + Y^2)

Диагональ монитора D дюймов, тогда значение DPI:

DPI = Z / D

Округляем его до большего целого.

Для EeePC имеем разрешение матрицы 1024x600 пикселей и диагональ 10.2 дюйма:

Z = sqrt(1024^2 + 600^2) = 1186.8
DPI = 1186.8 / 10.2 = 116.36 ~ 117 dpi

Иногда встречается информация, что диагональ 10 дюймов… спорить не берусь, меня пока всё устраивает :)

А для моего ThinkPad T530 (15.6 inch, 1920x1080):

Z = sqrt(1920^2 + 1080^2) = 2202.90717
DPI = 2202.90717 / 15.6 = 141.21 ~ 141 dpi
Width = 15.6 / 2202.90717 * 1920 * 25.4 = 345.35 ~ 345 mm
Height = 15.6 / 2202.90717 * 1080 * 25.4 = 194.26 ~ 194 mm

Прописываем полученное значение в /etc/X11/xinit/xserverrc, где строчка запуска превращается примерно в такое:

exec /usr/bin/X -nolisten tcp -dpi 117 "$@"

При использовании всяких mdm, gdm, kdm и иже с ними, нужно параметры запуска Xserver искать у них в настройках. Плюс, при таких настройках строчка ниже упорно рапортует о 96dpi. Зато в логах Xorg.0.log гордо красуется 141 (это уже новый ноутбук). При конфигурировании через xorg.conf картина с точностью до наоборот.

Перезапускаем, проверяем при помощи xdpyinfo:

  xdpyinfo | grep -B2 resolution:

На картах nVidia (это уже не про EeePC :)) есть опция для драйвера DPI, использовать её как-то так:

Section "Device"
    Identifier          "Card0"
    Driver              "nvidia"
    ...
    Option              "UseEdidDpi"   "false"
    Option              "DPI"          "141 x 141"
EndSection

Для других карт поможет DisplaySize в миллиметрах (сохраняем, например, в /etc/X11/xorg.conf.d/90-monitor.conf):

Section "Monitor"
	Identifier "<default monitor>"
	DisplaySize 345 194 # посчитали выше
EndSection

Более подробно:

Для KDE Plasma и всех приложений на Qt5 и Qt6 этих настроек будет достаточно, что бы подцепить корректный DPI. Для Gtk3/Gtk4 это не оказывает влияние. Я решил просто, добавив в ~/.Xresources:

Xft.dpi: 141

хоть это и не корректно и не работает per-monitor. Возможно, с выходом Plasma 5.27 ситуация с приложениями Gtk, запущенными в этом окружении поменяется:

Note: Plasma 5.27 dropped use of GDK_SCALE/GDK_DPI_SCALE variables and switched to Xsettingsd. It should be installed to make scaling work for GTK apps. Or you can set this variables manually as described in #GDK 3 (GTK 3).
Хотя, вроде это тоже не работает per-monitor.

WIFI

Хотя не только он, но больше про него.

Первое, говорится что стандартный драйвер не очень хорошо работает, я не стал проверять, поставил madwifi-hal из AUR. Надо только занести модуль ndiswrapper в blacklist или вообще удалить пакеты ndiswrapper и ndiswrapper-utils (если были поставлены). Если с драйвером madwifi-hal карточка не заведется, то, как рекомендуют форумы, стоит попробовать родной драйвер ath5k, и наоборот.

Да, я думаю пакет acpi-eee901 у вас уже стоит, так вот, стоит отредактировать файл /etc/acpi/eee.conf, конкретно, изменить значение переменной WIRELESS_MODULE и поставить её в ath_pci (в случае использования madwifi-hal) или ath5k (в случае использования стокового драйвера).

Теперь дело за малым. За менеджером соедененний.

Ноутбук устройство мобильное, и может использоваться в различных сетях, каждый раз править /etc/rc.conf и перезапускать сеть не выход. На помощь приходят менеджеры соединений. На себе проверил wicd, который есть в репозитариях ArchLinux. Прочитать про его настройку можно тут. Хотя я настроил методом “научного клика” и все заработало на ура :)

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

Проверил работу wifi совместно с wicd на работе - работает :) На этом тема wifi для меня пока закрыта.