LINUX.ORG.RU

FreeBSD on laptop

 ,


4

5

Имеется thinkpad (поддержка в https://wiki.freebsd.org/Laptops полная). Хочется узнать, как работает FreeBSD с ACPI, Intel Pstate, батареей.

Поделитесь своей историей. Рабочие станции не интересуют. Нужны именно ноутбуки.

Как по сравнению с linux?
Актуален этот пост - https://www.c0ffee.net/blog/freebsd-on-a-laptop/ ?

Имеется thinkpad

Какой именно?

Мой X230 тоже полностью поддерживается, но по факту не полностью:

  • Видео с efifb колбасит, пока не загрузишь (из /etc/rc.conf или вручную) i915kms;
  • powerd(8) не работает (cpufreq(4) не хочет/может работать с моим камнем) с i5-3320M (не исключаю, что я где-то не разобрался, потому это не в списке "Не работает");
  • Из сна не выходит (на Lenovo говорят заменить диск, на reddit рекомендуют отключить TPM, но ничто из этого не помогло);

Работает:

  • Fingerprint (требуется установить fprintd, настроить PAM, для работы локера из окружения пользователя потребуется поковырять dbus/polkit);
  • Trackpoint (нужно отключить moused(8));
  • Wi-Fi (iwn(4));
  • Ethernet (re(4));
  • Регулировка яркости (нужно дописать devd.conf(5) и скрипт для упрощения конфига, пример скрипта есть в acpi_ibm(4));
  • Регулировка громкости (смотри выше);
  • ThinkLight (acpi_ibm(4), смотри выше);

Не тестировал:

  • Микрофон;
  • Webcam;
  • Touchpad;

Не работает:

  • Gobi3000 (отсутствует драйвер);

По большей части меня устраивает, но от батареи живёт недолго (смотри выше про powerd(8)).

mord0d ★★★ ()
Ответ на: комментарий от mord0d

Плохо. Плохо совсем. Но я счтаю, что не дочитал. Например, в ссылке выше есть и про trackpoint (даже как увеличить его скорость) и про видео. А вот powerd - это «печаль». Если оно не заводитс, смысл на ноуте держать тогда BSD?

naked_joe ()
Ответ на: комментарий от naked_joe

Регулировка яркости

Поднимается на Intel строчкой в rc.conf.

Регулировка громкости

тут тоже надо читать. Есть, говорят, sndIO (многие пакеты собраны с его поддержкой: cmus, firefox, etc)

naked_joe ()
Ответ на: комментарий от naked_joe

Если оно не заводитс, смысл на ноуте держать тогда BSD?

Без powerd мне так и не удалось снизить потребление ниже ≈13-14W. Терпимо, батареи (≈70% ресурса осталось) хватает на ≈4-5 часов.

в ссылке выше

Статье без малого два года, нужно учитывать это.

про trackpoint (даже как увеличить его скорость)

Я её отрегулировал (но только в графической сессии, да и не нужен курсор в tty), так как начальная скорость слишком резкая, а accelerated — слишком низкая.

и про видео

Мне пришлось также добавлять i915kms_load="YES", или приходится вслепую логиниться в tty, загружать драйвер и снова перезапускать DM.

Регулировка яркости

Поднимается на Intel строчкой в rc.conf.

Не знаю, мне пришлось кнопки развешивать в devd.

Регулировка громкости

тут тоже надо читать. Есть, говорят, sndIO (многие пакеты собраны с его поддержкой: cmus, firefox, etc)

Если нужно в каждом приложении отдельно — надо изучать вопрос отдельно для каждого приложения, а общесистемно через mixer(8) легко (все кнопки отдают сканкоды) делается с минимальными затратами.

Bluetooth забыл упомянуть, он просто работает (было бы удивительно, если бы не работал).

mord0d ★★★ ()
Ответ на: комментарий от mord0d

powerd(8) не работает (cpufreq(4) не хочет/может работать с моим камнем) с i5-3320M (не исключаю, что я где-то не разобрался, потому это не в списке «Не работает»);

cpufreq вообще-то «интырьфейс»

В выхлопе kldstat -v должен быть какой нибудь

man cpufreq
SUPPORTED DRIVERS
     The following device drivers offer absolute frequency control via the
     cpufreq interface.  Usually, only one of these can be active at a time.

     acpi_perf      ACPI CPU performance states
     est            Intel Enhanced SpeedStep
     ichss          Intel SpeedStep for ICH
     powernow       AMD PowerNow! and Cool'n'Quiet for K7 and K8
     smist          Intel SMI-based SpeedStep for PIIX4
Типа
 kldstat -v | grep est
		192 cpu/est
 kldstat -v|grep cpufreq
		141 cpu/cpufreq
Ну и cpufreq возможно придется грузить ручками (я не в курсе, что там сейчас в дженерик ядре по умолчанию). В sysctl будет доступно что-то вроде
# sysctl dev.cpu.|grep freq
dev.cpu.0.freq_levels: 2667/25000 2666/25000 2533/23465 2399/21982 2266/20527 2133/19080 1999/17681 1866/16310 1733/14966 1599/13665 1466/12375 1333/11112 1199/9877
dev.cpu.0.freq: 1199


У мна нет i5-3320M под рукой, но есть страничка с выхлопами dmesg:
http://dmesgd.nycbug.org/index.cgi?do=view&id=3788

CPU: Intel(R) Core(TM) i5-3320M CPU @ 2.60GHz (2594.17-MHz K8-class CPU)
est0: <Enhanced SpeedStep Frequency Control> on cpu0

Для ТСа: https://wiki.freebsd.org/TuningPowerConsumption

anonymous ()
Ответ на: комментарий от naked_joe

RELEASE, конечно.

Если не взлетит — STABLE (это типа тестинга).

На CURRENT лучше не лезь, если не знаком.

В ноябре выйдет 12.1-RELEASE (сейчас уже доступна 12.1-BETA1, но на неё не стоит лезть, не причёсано ещё), на неё можно будет обновиться с помощью freebsd-update(8) без проблем.

На данный момент 11.3-RELEASE немного опережает 12.0-RELEASE по свежести.

mord0d ★★★ ()
Последнее исправление: mord0d (всего исправлений: 1)
Ответ на: комментарий от anonymous

Низкий поклон тебе, анон! :3

Оказалось, у меня в BIOS был отключён SpeedStep (я не знаю, как я это проморгал).

Ну и cpufreq возможно придется грузить ручками (я не в курсе, что там сейчас в дженерик ядре по умолчанию).

Нет, в GENERIC оно вкомпилено, его грузить не нужно.

mord0d ★★★ ()
Ответ на: комментарий от naked_joe

всё равно не понятно, что выбрать - 11 или 12 версию?

На данный момент в 11.3 (в сравнении с 12.0) гораздо более свежий компилятор, драйверы и некоторый юзерспейсный софт из базовой системы. Но на носу релиз 12.1, и с 11.3 на 12.1 будет обновиться немного трудозатратнее, чем с 12.0. Чем порадует 12.1 я пока не знаю, жду RC1.

CURRENT тебе придётся компилять ВЕСЬ (ядро, юзерспейс), и в бинарных пакетах там творится содомия, поэтому придётся компилять ещё и порты. А ядро по желанию ты можешь компилять и в RELEASE, и в STABLE.

mord0d ★★★ ()
Ответ на: комментарий от mord0d

Спасибо, порты компилять желания нет, опции указаны в freshports.

Стоит ли ставить бету? Или 12 и ждать месяц?

Как можно сохранить инфо на харде? Я знаю, что freebsd стирает всё, а у меня много инфы на ext4 (слышал, что на чтение прекрасно монтируется). Или сразу на флешку?

naked_joe ()
Ответ на: комментарий от mord0d

CURRENT тебе придётся компилять ВЕСЬ (ядро, юзерспейс),

Разве бинарные обновления уже завезли в STABLE?
Ну и основное время сейчас жрет компиляция компилятора, но его можно в принципе отключить и устанавливать из портов.

anonymous ()
Ответ на: комментарий от naked_joe

Спасибо, порты компилять желания нет, опции указаны в freshports.

Опции указаны в pkg info <packagename> для установленных пакетов или pkg search -f <packagename> для неустановленных.

Стоит ли ставить бету? Или 12 и ждать месяц?

Я не стал. Вначале хотел накатить в виртуалку, потом от этой идеи отказался.

Если ждать 12.1, то стоит ставить 12.0.

Если возникнут какие-то проблемы на 12.0, всегда можно попробовать установить (откатиться не получится) 11.3, благо, делается это минут за пятнадцать.

Как можно сохранить инфо на харде?

Установщик FreeBSD поддерживает ручную разметку (почти как в Debian/Ubuntu, только проще).

freebsd стирает всё

Если только ты сам это запросишь.

много инфы на ext4

Если современная Ext4, то придётся ставить fusefs-ext4fuse, так как базовая имплементация довольно куцая.

слышал, что на чтение прекрасно монтируется

fusefs-ext4fuse — только чтение, базовая умеет в запись, но не дружит с современной Ext4.

mord0d ★★★ ()
Ответ на: комментарий от naked_joe

А как потом обновиться до 12.1, которая в ноябре?

man freebsd-update, читай про freebsd-update upgrade.

И Current я читал, содержит много debug в ядре (надо пересобирать) и в ПО.

Да, там всё собрано с дебагом. На ноутбуке это дикий оверхед.

А в чём отличие беты?

В том, что она не готова. BETA — это тестовые сборки, за ними пойдёт RC, который уже можно ставить (и от релиза его отделяют только мелкие правки).

mord0d ★★★ ()
Ответ на: комментарий от mord0d

сейчас уже доступна 12.1-BETA1, но на неё не стоит лезть, не причёсано ещё

Это не так. Причёсыванием занимаются при портировании системного кода из -CURRENT в -STABLE ветку. Сейчас доступна 12.1-STABLE — стабильная развиваемая система со всеми отлаженными и перенесёнными из -CURRENT плюшками.

На данный момент 11.3-RELEASE немного опережает 12.0-RELEASE по свежести.

Это релизы из разных веток. И основное развитие сейчас идёт в 12-й. А 11-я поддерживается по остаточному принципу. Это касается и портов приложений.

> uname -rsm
FreeBSD 12.1-STABLE amd64
iZEN ★★★★★ ()
Последнее исправление: iZEN (всего исправлений: 2)
Ответ на: комментарий от mord0d

Опции указаны в pkg info <packagename> для установленных пакетов или pkg search -f <packagename> для неустановленных.

pkg options и pkg roptions (r — remote), чтобы не читать километровые простыни ненужного
см. pkg alias (унутрях оно алиас на (r)query %Ok-%On )

anonymous ()
Ответ на: комментарий от mord0d

Вообще-то, в man freebsd-update описание так и не изменили:

DESCRIPTION
The freebsd-update tool is used to fetch, install, and rollback binary
updates to the FreeBSD base system. Note that updates are only available
if they are being built for the FreeBSD release and architecture being
used; in particular, the FreeBSD Security Team only builds updates for
releases shipped in binary form by the FreeBSD Release Engineering Team,
e.g., FreeBSD 10.3-RELEASE and FreeBSD 11.0-RELEASE,
but not FreeBSD
10.3-STABLE or FreeBSD 12-CURRENT.

anonymous ()
Ответ на: комментарий от iZEN

Причёсыванием занимаются при портировании системного кода из -CURRENT в -STABLE ветку.

Ты о коде, а я о конечном продукте (ТС интересуется как пользователь, а не как разработчик). Конечно, беткой можно пользоваться, но это тестовые билды.

Это релизы из разных веток.

11-я поддерживается по остаточному принципу.

Не думаю, что начинающих стоит перегружать информацией. Первое впечатление обычно критическое, потому нужно рекомендовать рабочее решение (например, на одном недобуке 11.3 завелась с полпинка, а 12.0 падала в панику). У BSD и так не очень хорошая репутация из-за кукаретиков, не надо дополнительно нагнетать ситуацию (или надо? ☺).

mord0d ★★★ ()
Ответ на: комментарий от WitcherGeralt

Вангую, что просто отключен в BIOS.
У меня — так. Трекпоинт все равно рулит, а эти ваши тачпады только раздражают, когда невольно цепляешь их при печати или использовании трекпоинто-кнопок.

anonymous ()
Ответ на: комментарий от naked_joe

Конечно, надо!

Надо портить и без того не очень хорошую репутацию BSD? ☺

я с весёлой жизни пытаюсь уйти от лапчатых?

Я ничего не думаю. Я бывший гентушник, не планировавший сваливать с генты, теперь на всех девайсах использую FreeBSD.

mord0d ★★★ ()
Ответ на: комментарий от WitcherGeralt

Как ты мог «не тестировать» тачпад? Палец приложил, поводил, посмотрел работает или не работает. Втф?

Я отключил его в BIOS первым же делом, ещё до того, как воткнул флэшку с FreeBSD для установки оной на девственно чистый диск. А когда разбирал для ревизии — ещё и шлейф отсоединил. Даже в худшие времена юзания дноутбуков старался отключить его (хотя бы в юзерспейсе). А на ThinkPad’ах есть trackpoint, потому даже мышь не нужен.

mord0d ★★★ ()
Ответ на: комментарий от anonymous

Вангую, что просто отключен в BIOS.
У меня — так.

Анон знает толк в извращениях.

Трекпоинт все равно рулит

Не сказать чтобы прямо рулит, но лучше тачпада — это факт. Если его немного настроить, можно пользоваться вполне комфортно. Трекбол с собой не потаскаешь.

mord0d ★★★ ()
Ответ на: комментарий от naked_joe

Я бывший гентушник

holy crap. Бывших не бывает ☺

Каюсь, грешен, хотел натянуть portage в FreeBSD, но, слава Котоне, не взлетело.

Список бы. Интересно, на чём поднимал и какие встретил препятствия?

Проблем обычно нет. Если что-то работает, то оно просто работает или работает после установки софтины/библиотеки, если не работает — значит не работает совсем: драйверов есть не на всё железо, и чаще всего этим страдают ноутбуки, нетбуки, моноблоки, планшеты.

// Кто-нибудь возьмётся за портирование линуксового драйвера Gobi3000 на FreeBSD? ☺

mord0d ★★★ ()
Ответ на: комментарий от naked_joe

Пересобираете ядро и систему с svn. Примерное содержимое файла /etc/src.conf:

WITHOUT_AMD=true
WITHOUT_ASSERT_DEBUG=true
WITHOUT_ATM=true
WITHOUT_AUDIT=true
WITHOUT_BSDINSTALL=true
#WITH_BSD_GREP=true
WITHOUT_DEBUG=true
WITHOUT_DEBUG_FILES=true
WITHOUT_DMAGENT=true
WITHOUT_EXAMPLES=true
WITHOUT_FLOPPY=true
WITHOUT_FREEBSD_UPDATE=true
WITHOUT_FTP=true
WITHOUT_GAMES=true
WITHOUT_GDB=true
WITHOUT_GDB_LIBEXEC=true
WITHOUT_GOOGLETEST=true
WITHOUT_IPFILTER=true
WITHOUT_KDUMP=true
WITHOUT_LIB32=true
WITHOUT_LLDB=true
WITHOUT_LPR=true
WITHOUT_MAIL=true
WITHOUT_MAILWRAPPER=true
WITHOUT_NDIS=true
WITHOUT_PC_SYSINSTALL=true
WITHOUT_PPP=true
WITHOUT_PROFILE=true
WITHOUT_RADIUS_SUPPORT=true
WITHOUT_SENDMAIL=true
WITHOUT_SHAREDOCS=true
WITH_SORT_THREADS=true
WITH_SVN=true
WITHOUT_TALK=true
WITHOUT_TCP_WRAPPERS=true
WITHOUT_TELNET=true
WITHOUT_TESTS=true
WITHOUT_TESTS_SUPPORT=true
WITHOUT_TFTP=true
WITHOUT_TIMED=true
WITHOUT_WARNS=true

Сборка и инсталляция системы из сорцов (если каталог src не пуст):

% cd /usr/obj/ && chflags -R noschg * && rm -rf *
% cd /usr/src/ && make cleandir && make cleandir buildworld buildkernel
% cd /usr/src/ && make installworld installkernel
Обновляете конфигурационные файлы, отвечая на вопросы:
% mergemaster -iU
Избавляетесь от ненужных файлов и библиотек:
% cd /usr/src/ && make BATCH_DELETE_OLD_FILES=true delete-old delete-old-libs
Перезагружаетесь:
% shutdown -r now

Готовите каталог с сорцами для новой сборки:

% mv /usr/src /usr/src.old
% mkdir /usr/src/

Скачиваете сорцы от стабильной ветки:

% svn checkout https://svn.freebsd.org/base/stable/12/ /usr/src
Обновляете:
% svn update /usr/src
Повторяете сборку и инсталляцию системы из обновлённых сорцов.

iZEN ★★★★★ ()
Последнее исправление: iZEN (всего исправлений: 1)
Ответ на: комментарий от naked_joe

Сборка долго? По времени?

С компилятором — часа два на не сильно мощном железе.

Или там ядро да core?

kernel + base system (llvm входит в базовую систему). То есть по сути то, что ты получаешь сразу после установки FreeBSD.

mord0d ★★★ ()
Ответ на: комментарий от anonymous

Да клал я на CoC. На сообщество тоже. Как показала практика развития данной ОС, пилят основное направление 5-10 спецов. Всё.

Правки внести можно и самому иногда.

Ну и пусть пилят. Доверия основным бинарным дистрибутивам linux нет. Я не сомневаюсь, что серьёзные сервера до сих пор создают (и будут создавать) на базе BSD систем, где только ты царь и Бог (и, конечно, быстродействие).

naked_joe ()

Поделитесь своей историей.

Я всерьёз рассматривал вариант установки на Lenovo Legion год назад. В результате под FreeBSD не смог завести Wi-Fi производства Realtek (хотя проводной Ethernet, конечно, работал). Что характерно, я пробовал не только FreeBSD, но также OpenBSD, NetBSD и даже DragonFly (все успешно работают у меня в виртуалках).

В результате установил Devuan 2.0. Подробности здесь: Удавалось ли кому-нибудь завести Realtek RTL8821AE под FreeBSD?

Bass ★★★★ ()