В продолжение изначальной темы про мой EeePC. Разберем вопрос правильного задания DPI и как пользоваться WIFI и вообще сетью на ноутбуке.
DPI
Как задавать DPI (dots per inch / точек на дюйм) рассказано в статье про установку Arch Linux на EeePC 901 (смотреть мой первый пост про EeePC на этом блоге или пользоваться поиском на ArchWIKI). Я же хочу разобраться как получить это значение вообще, и какое оно будет для EeePC 1000HA, в частности.
Небольшое пояснение на март 2023 года: уже третий ноутбук сменился, но подходы остаются теми же: меняются среды, меняются окружения, единственно, что хорошо пахает с DPI - Qt и Plasma. Ну и начинаем с знакомства с этой ссылкой:
- https://wiki.archlinux.org/title/HiDPI Решения ниже - для меня.
Итак, разрешение матрицы монитора 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
Более подробно:
- https://wiki.archlinux.org/index.php/Xorg#Display_size_and_DPI (спасибо Юсу за наводку)
- https://wiki.archlinux.org/index.php/HiDPI
Для KDE Plasma и всех приложений на Qt5 и Qt6 этих настроек будет достаточно, что бы подцепить корректный DPI. Для Gtk3/Gtk4 это не оказывает влияние. Я решил просто, добавив в ~/.Xresources
:
Xft.dpi: 141
хоть это и не корректно и не работает per-monitor. Возможно, с выходом Plasma 5.27 ситуация с приложениями Gtk, запущенными в этом окружении поменяется:
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).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 для меня пока закрыта.