LINUX.ORG.RU

Избранные сообщения muted

не могу изменить скорость кулера arch linux.

Форум — Linux-hardware

Arch стоит на ноутбуке lenovo thinkpad t420s. echo 255 >> /sys/class/hwmon/hwmon1/device/pwm1 ничего не даёт. pwmconfig выдаёт : # pwmconfig # pwmconfig revision $Revision$ ($Date$) This program will search your sensors for pulse width modulation (pwm) controls, and test each one to see if it controls a fan on your motherboard. Note that many motherboards do not have pwm circuitry installed, even if your sensor chip supports pwm.

We will attempt to briefly stop each fan using the pwm controls. The program will attempt to restore each fan to full speed after testing. However, it is ** very important ** that you physically verify that the fans have been to full speed after the program has completed.

Found the following devices: hwmon0 is acpitz hwmon1/device is thinkpad hwmon2 is coretemp

Found the following PWM controls: hwmon1/device/pwm1 current value: 255 hwmon1/device/pwm1 is currently setup for automatic speed control. In general, automatic mode is preferred over manual mode, as it is more efficient and it reacts faster. Are you sure that you want to setup this output for manual control? (n) There are no usable PWM outputs.

 , , , ,

MIISHA
()

Awesome WM 4.0

Галерея — Скриншоты

Перебрался на четвертую версию awesome, в честь этого решил отметиться в галерее напоминанием о данном wm и своих конфигах.

В процессе перехода потерялись: виджет для аудио плеера exaile, система группировки окон с табами в заголовке. По поводу виджета, были идеи как его переписать в сторону универсальности, но в итоге забил отодвинув эту затею в далекое и неопределенное будущее. Группировку окон просто выкинул, там нужно было править изрядный говнокод, а грядущие инновации самого wm грозят сделать эту работу бесполезной. Да и не пользовался я ей практически.

В процессе перехода нашлись: минималистичный «дефолтный» конфиг (по идее должен из коробки работать на любой машине), унифицированная система хоткеев, продвинутая подсказка по ним, слегка переработанная система полуручного тайлинга, новая зеленая тема. Последнюю делал фактически из желания попробовать icon only тасклист с поддержкой цветов темы, получилось как-то так.

Скринов больше нет (лень), но есть небольшое демо видео.

Конфиги можно посмотреть все там же.

>>> Просмотр (1920x1080, 156 Kb)

 ,

Worron
()

i3 из которого я сделал подобие notion wm со всеми нужными фичами

Галерея — Скриншоты

* Arch linux

* i3 wm

* st, dunst, ncmpcpp, tmux, короче стандартный набор.

* Шрифт PragmataPro с патчами от Nerd Fonts.

* Конфиги i3 тут: https://github.com/neg-serg/dotfiles/tree/master/.config/i3 Остальное естественно там же.

* Панель polybar

Я перенес фичи иона, которых мне не доставало типа вложенных скратчпадов, нормального run-or-raise, run-or-raise-for-tag(моё изобретение для иона), alt-tab как в ионе, работу с fullscreen нормальную, а не как в i3 по умолчанию, что там не перейти, ничего сделать нельзя.

На самом деле там наверно ещё что-то сделано чтобы всё это было в сумме комфортно и «как раньше», реализованы мои скрипты как демоны-листнеры и врапперы чтобы посылать байтики через fifo

* Более подробное описание на кривом англ тут: https://neg-serg.github.io/personal/2017/04/10/my-cool-i3-migration/

>>> Просмотр (1920x1200, 473 Kb)

 , ,

e7z0x1
()

bumblebee, 2 gpu и 2 экрана [РЕШЕНО]

Форум — General

Доброго времени суток.

Лор читаю уже порядка полугода, очень занимательно, всем обитателям спасибо. Не могу заставить работать одновременно 2 монитора. Сума сходить уже начинаю. Суть в чем: к экрану ноутбука привязан видеочип intel, а к hdmi и Mini DisplayPort напрямую привязан к видеочипу nvidia. Пользуюсь проприетарными блобами (nvidia 378.13-5).

Без конфига xorg.conf работает монитор ноутбука, а hdmi пишет «нет сигнала».

По инструкции: intel-virtual-output выдает no virtual outputs on 0 и в этот момент xrandr --listproviders только один Intel

Однако, если вывести, например Chrome на DISPLAY=:8 (с подрузкой модулей, как в инструкции), то на внешнем мониторе он появится (место надписи нет сигнала), с ним можно работать, однако мышь и клавиатура работают одновременно на двух дисплеях: 0 на встроенном, и 8 на внешнем. Получается, что пока я кликаю на дисплее 0, то и на том же месте происходит клик на дисплее 8.

Начиная с секции, когда нужно добавлять xorg.conf файл (чтобы можно было использовать 2 монитора нормально) работает только внешний монитор (hdmi) а монитор ноутбука черный экран. В этот момент xrandr --listproviders видно nvidia и intel видеочипы. Что занимательно при переключении на ctrl+alt+f2 изображение на hdmi пропадает и выводит изображение на экране ноутбука. xrandr --setprovideroutputsource Intel NVIDIA-0 по каким-то причинам выводит X Error of failed request: BadValue (integer parameter out of range for operation)

Я понимаю, что я нуб, что чего-то не хватает в xorg.conf или еще что. Подскажите, пожалуйста, приму любую полезную информацию.

uname Linux lupc 4.10.8-1-ARCH x86_64 GNU/Linux

Моя модель ноутбука

xorg.conf

Xorg.0.log

Xsetup у SDDM

dmesg на всякий

Что упустил предоставить, напишите.

 , , ,

LuD
()

Безликий Void

Галерея — Скриншоты

Вот и прошел примерно год с момента установки Void Linux. В целом впечатления от дистрибутива крайне положительные, ничего не ломалось за год и все обновления проходили безболезненно. Здешний runit пусть и выглядит довольно тривиальным на фоне OpenRC/systemd, но я его один раз настроил и забыл. Навевает атмосферу того самого старого Arch, которым он был до определенных изменений. :)

За прошлый год я перебрался сначала с vim на neovim в январе, а затем осенью пересел на Emacs с evil'ом примерно в то время, когда свет увидел vim 8 версии.
Ориентироваться в экосистеме Эмакса изначально было довольно трудно (у вимеров и эмаксеров, как оказалось, совершенно разное представление о документации), но на выходе я получил более монолитную, более функциональную и настраиваемую среду, в которую оставалось добавить только редактор. В vim'e мне довольно сильно досаждала лапша среди языков для расширений и слабая интеграция самих плагинов между собой.
Скорость? В боевом варианте nvim с автокомплитом и filetype плагином не намного быстрее настроенного Emacs'a, как оказалось. Да, vim быстр и удобен в консоли для правки конфигов или написания скриптов, но для более нетривиальных задач приходилось делать много лишних телодвижений. Я не агитирую бросать vim под предлогом «это плохой редактор» — нет, это действительно годный редактор для определенных задач и пользователей, но если вы ощущаете дискомфорт при разработке, то можете попробовать Emacs.

Скриншот с окнами: Thunar, termite с запущенным ncmpcpp и viewnior

Основной скриншот в png

На скриншотах:

Мои конфиги пока не готовы к выпуску в свет.

>>> Просмотр (1920x1080, 375 Kb)

 , ,

Ordy
()

Кастомный Notion WM + Arch + vim(ну почти) + distribution.pl

Галерея — Скриншоты

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

  • notion wm, с моими патчами
  • arch linux
  • скрипт, который выплевывает выданные vim'ом esc-последовательности.
  • distribution.pl — гистограммы в шелле
  • tmux + python powerline + tmux-saver(или как там его, для сохранения сессий)
  • dzen2 две штуки
  • zsh + syntax highligting кастомный

Ну и всё это добро как обычно на https://github.com/neg-serg?tab=repositories

>>> Просмотр (1920x1200, 963 Kb)

 , ,

e7z0x1
()

Простой и удобный i3, веб головного мозга и минимализм

Галерея — Скриншоты

Вот такой у меня десктоп, все обычно, но очень удобно. Наконец-то я свалил с глючных DE и получил железно работающую систему. Никаких глюков в помине, сам i3 со всеми панелями жрет 100 МБ, и то, потому что стандартный i3status на С заменен py3status на Python. Ну и плюс нотификаторы иногда парсят веб-страницы и JSON с ЛОРа, Bloomberg и Yahoo Finance. Иначе было бы 40 МБ

Для не понимающих пользователей Gnome/KDE, зачем человеку в 21ом веке тайловый менеджер - обьясняю. Он был не нужен в 20ом веке, и даже наверное до 2010 года. А теперь у обычного пользователя есть одно приложение - браузер, в нем все остальные. У программиста обычно два приложения - браузер и терминал, в нем все остальные. Опционально что-то вроде Steam или IDEA. Но так или иначе это удобно, когда у тебя включается комп и открывается терминал и браузер сразу в нужных workspace. И можно переключаться через Win+1 и Win+2. Не надо никаких сложных комбинаций, не надо быть клавиатурным задротом, эти две комбинации - 90% взаимодействия с i3. Есть экономия места на экране, никаких глюков, никакой лишней памяти, тормозов. Один раз сварганил простой текстовый конфиг, залил на github и потом копипастишь его везде - на ноуте, на работе. Bезде одни цвета, одни комбинации, одни приложения в автозапуске и в тех же workspaces. Никакой возни.

К ней легко писать нотификаторы, как вы видите внизу. ЛОР проверяется не всякими попытками заставить RSS нормально работать, а реально проверяет URL уведомлений. Причем когда некоторое время не видит изменений, то уходит в еще более щадящий режим. Но во время активной дискуссии обновляется часто. Клик мышью по панели открывает «Уведомления» в браузере.

Gentoo, ядро последнее gentoo-sources.

SSD + systemd, скорость загрузки до логина - несколько секунд

Шрифты - Infinality, различные Droid for Powerline.

Вот софт который использую

  • roxterm - нет глупых комбинаций клавиш, которые мешают работать настоящим комбинациям клавиш в консольном софте
  • fish - удобнее подсказки, всегда могу перейти в bash, потому проблем не испытываю
  • tmux - могу заходить с рабочего ноута по ssh и кодить, не засоряя рабочий ноут. Там сразу открываются терминалы как я их оставил. Так как у меня еще есть домен через DynDNS, то могу так делать например из кафе. В ssh доступ только по ключу, потому не боюсь торчать в Интернет.
  • Pendatactyl - кто не знает, это плагин, который делает из Firefox vim. Клавиатурным фанатизмом не страдаю, но зато на экране только страница, никаких тупых панелей, табов, адресных строк.
  • Firefox - только под него есть Pendatactyl, сижу в основном в нем
  • Chrome - нужен чтобы кастить по UPnP/DLNA видео из папки с торрентами, YouTube, Google Music на Chromecast. Запускаю только для этого, и то, когда нет рядом телефона.
  • Google Doc, наконец-то могу не париться с всякими либрами и OOo и делать еще много всяческих вкусных штук
  • vim - осилил vim, чему очень сильно рад. Использую для Python/C++ домашнего говнокодинга.
  • Docker - из дому могу гонять жестко огороженые сайты для личного использования.
  • Общаюсь в Hangouts - 80% знакомых, семья. Facebook - 20%
  • systemd, Avahi, NetworkManager, Pulseaudio - не знаю зачем страдать всяким костыльным дедовским софтом, которы любят другие пользователи минималистичных десктопов, когда есть автоматизированый, современный и все равно не жрущий много памяти софт. Avahi используется для .local доменных имен

Не использую множество десктопного софта - офисы, плееры, файловые менеджеры, почтовые клиенты, GUI к архиваторам, тетрисы, просмотрщики фото, мессенджеры и прочий шлак. Планирую даже инфу о системе, из /sys и /proc в браузер пробросить, как полагается, с графиками, HTML 5, JS, CSS3 и responsive UI ;)

>>> Просмотр (1920x1080, 283 Kb)

 , , , ,

vertexua
()

Получится ли CGI для nginx с помощью socket activation и SCGI?

Форум — Development

Здравствуйте

Хочется Nginx в режиме «получил запрос -> выполнил програму», но не хочется возиться с отдельным Fastcgi сервером. Возникла такая идея:

В nginx настраиваем SCGI прокси на порт 1234. В systemd настраиваем запуск нашей програмы когда кто-то стучится на порт 1234. Програма запускается, читает SCGI-запрос с порта 1234, возвращает результат и умирает.

SCGI-протокол реализовать вроде-как не сложно на чем угодно (например на lua). А из lua уже (если надо) вызывать нужную програму, словно из командной стороки.

Вопросы:

1. Получится ли?

2. Можно ли усилиями systemd во время сокетной активации перенаправить данные с сокета на stdin вызываемой програмы (чтобы в lua не открывать сокет, а читать данные из стандартного ввода)?

3. Если настроить активацию на именованный unix-сокет, можно ли читать/писать в него функциями для работы с файлами?

 ,

makoven
()

ideapad. Нашёл способ управления зарядом батареи.

Форум — General

Привет, ребята.

У меня есть ноутбук Lenovo ideapad G580 (20150). И у этого ноутбука под венду есть утилита под названием «lenovo energy management». Среди возможностей этой утилиты есть и функция управления зарядом батареи - полный заряд и режим защиты аккумулятора. В Linux этой фичей пользоваться нельзя, нет средств для этого (tp_smapi и tpacpi-bat только для настоящих ThinkPad'ов). Меня этот факт очень огорчал и я провел изыскания в результате которых нашел способ переключения режимов батареи.

Вообще управляется эта фигня через Super_I/O, но не суть важно.

Для начала нам нужен оффтопик с установленным «lenovo energy management» и тулзой RWEverything.

Запускаем RWEverything и тыкаем иконку EC скрин. Переключаем в «lenovo energy management» режимы батареи и смотрим какой байт меняется в окошке «Embedded Controller». В моем случае это байт по адресу «0A», 21 - защита батареи, 41 - полный заряд. А EC_SC/EC_DATA это адреса регистров, которые нам потом понадобятся. Все ясно, перезагружаемся в линукс.

Сначала я хотел использовать superiotool, но фиг там:

# superiotool 
superiotool r6637
No Super I/O found

Однако удача была со мной, и я нашел fanctrl.c, который и послужил основой для моей поделки.

Собственно моя поделка:

#include <stdint.h>
#include <sys/io.h>
#include <unistd.h>
#include <stdio.h>
#include <string.h>
#include <stdlib.h>

/* Поменяйте на свои значения */
#define EC_SC 0x66
#define EC_DATA 0x62
#define IBF 1
#define OBF 0
#define EC_SC_READ_CMD 0x80
#define EC_SC_WRITE_CMD 0x81
#define EC_SC_SCI_CMD 0x84
#define BATT_PORT 0x0a
#define BATT_LIMIT 0x21
#define BATT_FULL 0x41

static void init()
{
    if (ioperm(EC_DATA, 1, 1) != 0)
    {
        perror("ioperm(EC_DATA, 1, 1)");
        exit(1);
    }

    if (ioperm(EC_SC, 1, 1) != 0)
    {
        perror("ioperm(EC_SC, 1, 1)");
        exit(1);
    }
}

static void wait_ec(const uint32_t port, const uint32_t flag, const char value)
{
    uint8_t data;
    int i;

    i = 0;
    data = inb(port);

    while ( (((data >> flag) & 0x1) != value) && (i++ < 100) )
    {
        usleep(1000);
        data = inb(port);
    }

    if (i >= 100)
    {
        fprintf(stderr, "wait_ec error on port 0x%x, data=0x%x, flag=0x%x, value=0x%x\n", port, data, flag, value);
        exit(1);
    }
}

static uint8_t read_ec(const uint32_t port)
{
    uint8_t value;

    wait_ec(EC_SC, IBF, 0);
    outb(EC_SC_READ_CMD, EC_SC);
    wait_ec(EC_SC, IBF, 0);
    outb(port, EC_DATA);
    //wait_ec(EC_SC, EC_SC_IBF_FREE);
    wait_ec(EC_SC, OBF, 1);
    value = inb(EC_DATA);

    return value;
}

static void write_ec(const uint32_t port, const uint8_t value)
{
    wait_ec(EC_SC, IBF, 0);
    outb(EC_SC_WRITE_CMD, EC_SC);
    wait_ec(EC_SC, IBF, 0);
    outb(port, EC_DATA);
    wait_ec(EC_SC, IBF, 0);
    outb(value, EC_DATA);
    wait_ec(EC_SC, IBF, 0);
}

static void dump_all_regs(void)
{
    uint8_t val;
    int i;

    printf("EC reg dump:");

    for (i = 0x00; i <= 0xff; i++)
    {
        if ((i % 16) == 0)
        {
            printf("\n 0x%02x: ", i);
        }

        val = read_ec(i);
        printf("%02x ", val);
    }

    printf("\n");
}

static void set_value(const uint8_t value)
{
    uint8_t rval;

    rval = read_ec(BATT_PORT);
    printf("old value %02x\n", rval);
    write_ec(BATT_PORT, value);
    rval = read_ec(BATT_PORT);
    printf("new value %02x\n", rval);
}

int main(int argc, char *argv[])
{
    init();

    if (argc < 2)
    {
        dump_all_regs();
    }
    else
    {
        if (argv[1][0] == 'f')
        {
            printf("set full charge\n");
            set_value(BATT_FULL);
        }
        else if (argv[1][0] == 'l')
        {
            printf("set limited charge\n");
            set_value(BATT_LIMIT);
        }
        else
        {
            printf("unknown option\n");
        }
    }

    return 0;
}

А это её работа:

# acpi
Battery 0: Unknown, 60%
# ./a.out f
set full charge
old value 21
new value 41
# acpi
Battery 0: Charging, 61%, 00:01:23 until charged
# ./a.out l
set limited charge
old value 41
new value 21
# acpi
Battery 0: Discharging, 61%, 01:52:05 remaining
# acpi
Battery 0: Discharging, 60%, 01:49:36 remaining
# acpi
Battery 0: Discharging, 60%, 01:47:34 remaining
# acpi
Battery 0: Unknown, 60%

PoMbl4
()

i3wm на ноутбуке - подводные камни

Форум — General

Надоедают уже Кеды своей громоздкостью, хочу чего полегче.

Давно смотрю на i3. Все отлично, но смущает - будет ли он корректно работать с ноуто-специфичными штуками типа реакция на закрытие крышки, хоткеи (громкость, яркость), реакция на подключение второго монитора и прочее.

Ну и где об этом почитать можно, ибо чтение документации по диагонали особо не принесло результатов.

 , , ,

dvrts
()