LINUX.ORG.RU

Сообщения zoroaster

 

При переключении окон исчезает курсор gnome-terminal и xfce4-terminal

Форум — Desktop

Не так давно появилась проблема с курсором в терминале. Изначально всё нормально, но если переключиться на другое окно и затем вернуться курсор терминала пропадёт (и больше уже не появится). Проблема обнаружена только в эмуляторе терминала GNOME и, если я правильно понимаю, его форке для Xfce (в том же самом Konsole курсор отображается). Шрифты менять пробовал, никакие хоткеи в окне терминала не помогают (ctrl-L etc.).
DE: GNOME 3
Дистрибутив: Debian sid

 , , , ,

zoroaster
()

Единственный способ пересадить людей на линукс — школьные уроки информатики.

Форум — Talks

Убедился в этом после того как поставил Ubuntu своему одногруппнику. Он и в винде то хреново ориентируется, а тут линупс, с какими-то непонятными репозиториями, системами пакетов и центрами приложений. Консоль и компиляция исходников это вообще для него нечто непостижимое. Чтобы установить что-то он лезет в гугл и ищет там «установщик», условные рефлексы называется. Оно и понятно, нормального обучения пользования компьютерами в школах либо нет, либо там учат работать на винде, по себе знаю (до сих пор помню как тяжело было привыкать ко всем этим никсовым концепциям). У подавляющего большинства людей никогда не было, нет и не будет ни желания, ни силы воли на изучение новой ОС. Это видно даже по тому, какую долю линукс занимает на рабочих местах: работодателю проще поставить винду, с которой мало-мальски но может работать большинство потенциальных кадров, чем возится с переобучением. Не знаю в чём дело, в откатах, в лоббизме или в том что на местах сидят такие же неучи, но в ближайшее время в школах линукс не появится, а значит ситуация сохранится. Кто что думает?

 , ,

zoroaster
()

mono vs .NET Core vs оригинальный .NET Framework

Форум — Development

Не люблю C#, как и остальных «наследников» С++ (исключение — Go). Но так уж получилось, что в университете есть курс на C# и от этого никуда не деться. Писать буду под линуксом, поэтому понятное дело выбираю между mono и .NET Core, но также интересны их отличия от оригинального поделия майкрософт. Прошу описать их различия и подсказать что же лучше выбрать (может быть вообще лучше накатить Visual Studio на виртуалку с виндой?).

 ,

zoroaster
()

Долго открывается консоль

Форум — General

При открытии консоли проходит существенное время (секунды четыре, а то и все пять), прежде чем появится приглашение bash. Проявляется как в эмуляторе терминала под иксами, так и без них. С чем это может быть связано?

 , ,

zoroaster
()

Заголовки окон в GNOME

Форум — Desktop

По ряду причин (одна из которых Wayland) пришлось оставить старый добрый xmonad и перейти/вернуться на GNOME 3. И я уже можно сказать разобрался со всеми возникшими при переходе проблемами, за исключением одной концептуальной: GNOME не тайловый -> у окон есть заголовки (или шапки, не знаю как их правильно назвать) -> если развернуть окно на весь экран мы буквально впустую потратим кучу места (особенно это заметно при использовании таких программ как chromium, которые никак не заполняют заголовок элементами интерфейса). В Unity эта проблема решалась элементарно — при разворачивании на весь экран заголовок окна сливался с верхней панелью. Можно ли сделать что-то подобное и в GNOME?

 , , ,

zoroaster
()

zero-k крашится при запуске из под optirun

Форум — Games

Использую лэптоп с Nvidia Optimus и Bumblebee. Если запускать без optirun всё работает, но, естественно, сильно проседает fps. Краш репорт: http://pastebin.com/kHrqeuhT

 , ,

zoroaster
()

Не могу разобраться с wpa_supplicant

Форум — Admin

Я согласен с тем, что лучше обходиться без NetworkManager. Он жрёт много ресурсов, громоздкий, временами генерирует хреновые профайлы (прочувствовал это на своей шкуре когда устанавливал через него PPPoE соединение). Но всё таки хорошо когда одна утилита ограждает тебя от целого зоопарка других. Сейчас сижу на Archlinux, из-за отказа от NM пришлось читать маны по netctl, pppd, wpa_supplicant, wpa_cli и dhcpcd. С тем же PPPoE соединением всё не до конца ясно, иногда команда netctl start myprovider перестаёт работать выдавая пространные комментарии, приходится использовать pppd напрямую (pon и poff). Но бог с ним, больше всего геморроя возникает с беспроводным соединением. Например, когда сосед по комнате раздаёт WiFi со своего компьютера на Windows, мой лэптоп периодически теряет возможность к нему коннектиться, единственное лекарство — перезагрузить точку доступа. Ещё, чтобы не возиться с консолью, поставил себе wpa_gui, думал будет своего рода замена NM, но эта хренотень при запуске почему-то не активна. Нет возможности выбрать сетевой интерфейс, создать профайл и т.д. Случайно заметил что если приконнектиться к какой-нибудь сети через wifi-menu wpa_gui магическим образом начинает видеть сетевой интерфейс и вообще становится белым и пушистым. Что это за чёрная магия? Ок, пока эта штука пашет создаю в ней профайлы, в том числе для университетской сети (там WPA2 Enterprise, wifi-menu в него не может). И что мы обнаруживаем после перезагрузки? Он теряет все настройки и процедуру приходится повторять заново. Что мне делать? Эта штука может видеть профайлы wpa_supplicant? И вот, например, набирал это сообщение из читального зала в университете, подключился через wpa_cli. Пока печатал эта хрень успела отсоединиться, теперь вот не могу заново подключиться:

OK
> scan
OK
<3>CTRL-EVENT-SCAN-STARTED 
<3>CTRL-EVENT-SCAN-RESULTS 
<3>WPS-AP-AVAILABLE 
<3>CTRL-EVENT-NETWORK-NOT-FOUND 
> scan_results 
bssid / frequency / signal level / flags / ssid
00:08:2f:32:a7:d0	2412	-71	[WPA-EAP-CCMP+TKIP][WPA2-EAP-CCMP-preauth][ESS]	KUBSU
44:6d:6c:94:83:c1	2437	-51	[WPA2-PSK-CCMP][ESS]	AndroidAP
ec:1d:7f:be:ec:11	2422	-74	[WPA2-PSK-CCMP][WPS][ESS]	MegaFonMR150-2-BEEC11
62:d9:a0:57:5c:f4	2437	-72	[WPA-PSK-CCMP+TKIP][ESS]	Lenovo A536
36:e2:fd:cc:2d:ac	2462	-82	[WPA2-PSK-CCMP][ESS]	iPad Air
bc:67:1c:e9:00:60	2462	-80	[WPA-EAP-CCMP+TKIP][WPA2-EAP-CCMP-preauth][ESS]	KUBSU
54:a0:50:9e:0a:12	2437	-87	[WPA2-PSK-CCMP][ESS]	huy tebe
f4:1f:c2:e6:f2:30	2462	-91	[WPA-EAP-CCMP+TKIP][WPA2-EAP-CCMP-preauth][ESS]	KUBSU
ec:59:e7:dc:78:05	2412	-50	[WPS][ESS]	Nokia_XL
c0:a0:bb:05:bd:dc	2457	-80	[ESS]	E-PRINT
> enable_network 1
OK
<3>CTRL-EVENT-SSID-REENABLED id=1 ssid="KUBSU"
<3>CTRL-EVENT-SCAN-STARTED 
<3>CTRL-EVENT-SCAN-RESULTS 
<3>WPS-AP-AVAILABLE 
<3>SME: Trying to authenticate with 00:08:2f:32:a7:d0 (SSID='KUBSU' freq=2412 MHz)
<3>Trying to associate with 00:08:2f:32:a7:d0 (SSID='KUBSU' freq=2412 MHz)
<3>Associated with 00:08:2f:32:a7:d0
<3>CTRL-EVENT-SUBNET-STATUS-UPDATE status=0
<3>CTRL-EVENT-EAP-STARTED EAP authentication started
<3>CTRL-EVENT-EAP-STATUS status='started' parameter=''
<3>CTRL-EVENT-DISCONNECTED bssid=00:08:2f:32:a7:d0 reason=23
<3>CTRL-EVENT-SSID-TEMP-DISABLED id=1 ssid="KUBSU" auth_failures=1 duration=10 reason=AUTH_FAILED
<3>CTRL-EVENT-SSID-TEMP-DISABLED id=1 ssid="KUBSU" auth_failures=2 duration=32 reason=CONN_FAILED
<3>CTRL-EVENT-SCAN-STARTED 
<3>CTRL-EVENT-SCAN-RESULTS 
<3>WPS-AP-AVAILABLE 
<3>CTRL-EVENT-NETWORK-NOT-FOUND 
<3>CTRL-EVENT-SCAN-STARTED 
<3>CTRL-EVENT-SCAN-RESULTS 
<3>WPS-AP-AVAILABLE 
<3>CTRL-EVENT-NETWORK-NOT-FOUND 
<3>CTRL-EVENT-SCAN-STARTED 
<3>CTRL-EVENT-SCAN-RESULTS 
<3>WPS-AP-AVAILABLE 
<3>CTRL-EVENT-NETWORK-NOT-FOUND 
<3>CTRL-EVENT-SCAN-STARTED 
<3>CTRL-EVENT-SCAN-RESULTS 
<3>WPS-AP-AVAILABLE 
<3>CTRL-EVENT-NETWORK-NOT-FOUND 
<3>CTRL-EVENT-SCAN-STARTED 
<3>CTRL-EVENT-SCAN-RESULTS 
<3>WPS-AP-AVAILABLE 
<3>CTRL-EVENT-NETWORK-NOT-FOUND 
<3>CTRL-EVENT-SCAN-STARTED 
<3>CTRL-EVENT-SCAN-RESULTS 
<3>WPS-AP-AVAILABLE 
<3>CTRL-EVENT-NETWORK-NOT-FOUND 
<3>CTRL-EVENT-SCAN-STARTED 
<3>CTRL-EVENT-SCAN-RESULTS 
<3>WPS-AP-AVAILABLE 
<3>CTRL-EVENT-SSID-REENABLED id=1 ssid="KUBSU"
<3>SME: Trying to authenticate with 00:08:2f:32:a7:d0 (SSID='KUBSU' freq=2412 MHz)
<3>Trying to associate with 00:08:2f:32:a7:d0 (SSID='KUBSU' freq=2412 MHz)
<3>Associated with 00:08:2f:32:a7:d0
<3>CTRL-EVENT-SUBNET-STATUS-UPDATE status=0
<3>CTRL-EVENT-EAP-STARTED EAP authentication started
<3>CTRL-EVENT-EAP-STATUS status='started' parameter=''
<3>CTRL-EVENT-DISCONNECTED bssid=00:08:2f:32:a7:d0 reason=23
<3>CTRL-EVENT-SSID-TEMP-DISABLED id=1 ssid="KUBSU" auth_failures=3 duration=39 reason=AUTH_FAILED
<3>CTRL-EVENT-SSID-TEMP-DISABLED id=1 ssid="KUBSU" auth_failures=4 duration=81 reason=CONN_FAILED

 , ,

zoroaster
()

Необычное поведение при использовании каналов из <unistd.h>

Форум — Development

Нужно написать программу на Си использующую несколько процессов. При написании столкнулся с необычной проблемой. При вызове write(pipe[1], string, strlen(stirng) в стандартный вывод подаётся содержимое строки. Сама программа выглядит вот так:

#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
#include <unistd.h>
#include <string.h>


int main(void) 
{
    int clientPipe[2];
    int* size = malloc(sizeof(int));
    char string[] = "Hello, world!\n";


    pid_t childpid;
    
    if ((childpid = fork()) == -1) {
        perror("fork");
        exit(1);
    } else if (childpid == 0) {
        /* Client */

        close(clientPipe[0]);

/*        scanf("%d", size);*/
/*        printf("%d\n", *size);*/
        /* write(clientPipe[1], size, sizeof(int)); */
        write(clientPipe[1], string, sizeof(string));
        printf("TROLOLO\n");

/*        time_t rawtime;*/
/*        srand(rawtime);*/
        exit(0);
    } else {
        /* Server */
    
        wait();
        close(clientPipe[1]);
        printf("Continue\n");
        *size = read(clientPipe[0], string, sizeof(string));
        printf("%s", string);
/*        read(clientPipe[0], size, sizeof(int));*/
/*        printf("%d\n", *size);*/
    }
       
    return(0);
}

Вывод при запуске следующий:

TROLOLO
Hello, world!
Continue
Hello, world!
}

Почему Hello, world! выводится дважды?

И, в дополнение, когда нужно вызывать wait()? До закрытия канала и считывания или после?

Ну и раз уж зашла речь о wait(), почему при компиляции (clang source.c) я получаю следующий варнинг и как мне его не получать (гугл не помог):

hello.c:37:9: warning: implicit declaration of function 'wait' is invalid in C99
      [-Wimplicit-function-declaration]
        wait();

 , ,

zoroaster
()

Сломались хоткеи в xmonad

Форум — Desktop

Пользовался xmonad, жил не тужил, пока однажды не приспичило мне поставить пакет alarm-clock из AUR. Оказалось то ещё дерьмо (удобнее написать скрипт-будильник), так ещё помимо этого он похоже испортил мне хоткеи. Теперь не работают комбинации с использованием функциональных клавиш, хотя xmonad.hs, в котором они прописаны, никак не изменился, а при нажатии Mod+F9 у меня вообще открывается wpa_supplicant_gui. Вот конфиг (извиняюсь за беспорядок, собирал его стихийно):

import XMonad
import XMonad.Hooks.DynamicLog
import XMonad.Hooks.ManageDocks
import XMonad.Util.Run(spawnPipe)
import XMonad.Util.EZConfig(additionalKeys, additionalKeysP)
import XMonad.Layout.LayoutCombinators
import XMonad.Util.Dzen
import XMonad.Actions.Volume
import XMonad.Doc.Extending
--import XMonad.Actions.Plane
--import XMonad.Actions.Promote
import XMonad.Hooks.ManageHelpers
import System.IO
import XMonad.Layout.NoBorders
import Data.Map (fromList)
import Data.Monoid (mappend)
import XMonad.Actions.WindowGo
import XMonad.Util.Run
import XMonad.Hooks.EwmhDesktops (fullscreenEventHook)



myManageHook = composeAll
    [ className =? "Gimp"     --> doFloat 
    , className =? "Nautilus" --> doFloat
    , className =? "htop"     --> doFloat 
    , className =? "Wpa_gui"  --> doFloat ]

alert = dzenConfig centered . show . round
centered = onCurr (center 150 66)
       >=> font "-*-helvetica-*-r-*-*-64-*-*-*-*-*-*-*"
       >=> addArgs ["-fg", "#80c0ff"]
       >=> addArgs ["-bg", "#000040"]

main = do
    xmproc <- spawnPipe "xmobar"
    --chrproc <- spawnPipe "chromium"
    xmonad $ defaultConfig
        { manageHook = manageDocks 
                      <+> myManageHook
                      <+> (isFullscreen --> doFullFloat)
                      <+> manageHook defaultConfig
        , layoutHook 	= smartBorders $ avoidStruts  $  layoutHook defaultConfig
        , logHook = dynamicLogWithPP xmobarPP
                        { ppOutput = hPutStrLn xmproc
                        , ppTitle = xmobarColor "blue" "" . shorten 50 }
        , modMask 	= mod4Mask    
        , terminal 	= "urxvt"
        {-, keys = keys defaultConfig `mappend`
		 \c -> fromList [
            ((0, (mod4Mask, xK_F6)), lowerVolume 4 >>= alert),
            ((0, (mod4Mask, xK_F7)), raiseVolume 4 >>= alert) 
         ]-}
	    , handleEventHook = fullscreenEventHook 
        } `additionalKeys`
        [ ((mod4Mask .|. shiftMask, xK_z), spawn "xscreensaver-command -lock")
        , ((mod4Mask, xK_s), spawn "systemctl suspend")
        , ((mod4Mask, xK_F1), lowerVolume 100 >>= alert)
        , ((mod4Mask, xK_F2), lowerVolume 2 >>= alert)
        , ((mod4Mask, xK_F3), raiseVolume 2 >>= alert)
        , ((mod4Mask, xK_F10), spawn "xbacklight -set 100")
        , ((mod4Mask, xK_F11), spawn "xbacklight -dec 5")
        , ((mod4Mask, xK_F12), spawn "xbacklight -inc 5")
        , ((controlMask, xK_Print), spawn "sleep 0.2; scrot -s")
        , ((0, xK_Print), spawn "scrot")
        ] `additionalKeysP`
            [ ("M-b", (runOrRaiseMaster "chromium" (className =? "Chromium")) >> (sendMessage $ JumpToLayout "Full"))
            , ("M-f", (runOrRaiseMaster "firefox" (className =? "Firefox")) >> (sendMessage $ JumpToLayout "Full")) 
            , ("M-n", (runOrRaiseMaster "nautilus" (className =? "Nautilus")) >> (sendMessage $ JumpToLayout "Full"))
            , ("M-w", (runOrRaiseMaster "wpa_gui" (className =? "Wpa_gui")) >> (sendMessage $ JumpToLayout "Full")) 
            , ("M-o", (runOrRaiseMaster "urxvt htop" (className =? "htop")) >> (sendMessage $ JumpToLayout "Full")) ]

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

 , ,

zoroaster
()

После create_ap не удаётся подключаться к точкам доступа

Форум — Admin

Накануне пробовал поднять у себя на лэптопе программную точку доступа. Т.к. я пользуюсь Arch, первым же делом полез в арчвики. Оттуда же узнал про скрипт create_ap. После скрипта и инструкций из вики мой арч отказывается подключаться к точкам доступа. Скрипт запускаю следующей командой: create_ap wlp6s0 ppp0 mywifi 123456789 (да, у меня интернет через PPPoE и поэтому использовать бриджи не судьба). Когда пытаюсь подсоединиться, допустим, через wifi-menu пишет следующее:

ob for netctl@wlp6s0\x2dBuriy_PC.service failed because the control process exited with error code.
See "systemctl status "netctl@wlp6s0\\x2dBuriy_PC.service"" and "journalctl -xe" for details.
Выхлоп от systemctl status netctl@wlp6s0\\x2dBuriy_PC.service:
● netctl@wlp6s0\x2dBuriy_PC.service - Networking for netctl profile wlp6s0-Buriy_PC
   Loaded: loaded (/usr/lib/systemd/system/netctl@.service; static; vendor preset: disabled)
   Active: failed (Result: exit-code) since Fri 2016-12-02 18:04:01 MSK; 20s ago
     Docs: man:netctl.profile(5)
  Process: 13199 ExecStart=/usr/lib/network/network start %I (code=exited, status=1/FAILURE)
 Main PID: 13199 (code=exited, status=1/FAILURE)

дек 02 18:04:01 localhost systemd[1]: Starting Networking for netctl profile wlp6s0-Buriy_PC...
дек 02 18:04:01 localhost network[13199]: Starting network profile 'wlp6s0-Buriy_PC'...
дек 02 18:04:01 localhost network[13199]: The interface of network profile 'wlp6s0-Buriy_PC' is already up
дек 02 18:04:01 localhost systemd[1]: netctl@wlp6s0\x2dBuriy_PC.service: Main process exited, code=exited, status=1/FAILURE
дек 02 18:04:01 localhost systemd[1]: Failed to start Networking for netctl profile wlp6s0-Buriy_PC.
дек 02 18:04:01 localhost systemd[1]: netctl@wlp6s0\x2dBuriy_PC.service: Unit entered failed state.
дек 02 18:04:01 localhost systemd[1]: netctl@wlp6s0\x2dBuriy_PC.service: Failed with result 'exit-code'.

А вот что в это время происходило с netctl:

[trololo@localhost ~]$ journalctl | grep netctl
дек 02 18:03:07 localhost systemd[1]: Starting Networking for netctl profile wlp6s0-Buriy_PC...
дек 02 18:03:07 localhost systemd[1]: netctl@wlp6s0\x2dBuriy_PC.service: Main process exited, code=exited, status=1/FAILURE
дек 02 18:03:07 localhost systemd[1]: Failed to start Networking for netctl profile wlp6s0-Buriy_PC.
дек 02 18:03:07 localhost systemd[1]: netctl@wlp6s0\x2dBuriy_PC.service: Unit entered failed state.
дек 02 18:03:07 localhost systemd[1]: netctl@wlp6s0\x2dBuriy_PC.service: Failed with result 'exit-code'.
дек 02 18:03:51 localhost polkitd[527]: Operator of unix-process:13069:4896542 successfully authenticated as unix-user:loorke to gain TEMPORARY authorization for action org.freedesktop.systemd1.manage-units for system-bus-name::1.33 [systemctl stop netctl@me.service] (owned by unix-user:loorke)
дек 02 18:03:51 localhost systemd[1]: Stopping Networking for netctl profile me...
дек 02 18:03:51 localhost systemd[1]: Stopped Networking for netctl profile me.
дек 02 18:04:01 localhost systemd[1]: Starting Networking for netctl profile wlp6s0-Buriy_PC...
дек 02 18:04:01 localhost systemd[1]: netctl@wlp6s0\x2dBuriy_PC.service: Main process exited, code=exited, status=1/FAILURE
дек 02 18:04:01 localhost systemd[1]: Failed to start Networking for netctl profile wlp6s0-Buriy_PC.
дек 02 18:04:01 localhost systemd[1]: netctl@wlp6s0\x2dBuriy_PC.service: Unit entered failed state.
дек 02 18:04:01 localhost systemd[1]: netctl@wlp6s0\x2dBuriy_PC.service: Failed with result 'exit-code'.
дек 02 18:04:11 localhost konsole[488]: org.kde.kurifilter-ikws: "netctl@wlp6s0\\\\x2dBuriy_PC.service"

 ,

zoroaster
()

Проблемы с Network Manager

Форум — Admin

Использую Arch Linux, xmonad как менеджер окон и xdm как менеджер дисплеев. Пару дней назад столкнулся с проблемами при использовании Network Manager. Запускаю демон командой systemctl start NetworkManager и у xmonad пропадает чувствительность к большинству комбинаций клавиш (понятное дело пользоваться им после этого невозможно), если заново залогиниться через xdm можно увидеть, как поменялось сетевое имя машины (localhost заменяется на какой-нибудь ip адрес или что-нибудь в этом духе), xmobar перестаёт нормально работать (не ищет программы при нажатии Mod-P).

 , ,

zoroaster
()

xscreensaver запускается через раз

Форум — Desktop

Точнее через два раза, или даже больше. Следуя man xscreensaver запилил systemd службу и включил её от пользователя (systemctl --user enable xscreensaver). В случае неудачного запуска journalctl -xe выдаёт следующее:

ноя 12 23:41:02 localhost xscreensaver[524]: xscreensaver: 23:41:02: warning: $DISPLAY is not set: defaulting to ":0.0".
ноя 12 23:41:02 localhost xscreensaver[524]: Invalid MIT-MAGIC-COOKIE-1 keyxscreensaver: 23:41:02: Can't open display: :0.0
ноя 12 23:41:02 localhost xscreensaver[524]: xscreensaver: 23:41:02: running as loorke/loorke (1000/1000)
ноя 12 23:41:02 localhost xscreensaver[524]: xscreensaver: 23:41:02: Errors at startup are usually authorization problems.
ноя 12 23:41:02 localhost xscreensaver[524]:               But you're not logging in as root (good!) so something
ноя 12 23:41:02 localhost xscreensaver[524]:               else must be wrong.  Did you read the manual and the FAQ?
ноя 12 23:41:02 localhost xscreensaver[524]:               https://www.jwz.org/xscreensaver/faq.html
ноя 12 23:41:02 localhost xscreensaver[524]:               https://www.jwz.org/xscreensaver/man.html

Дистрибутив ArchLinux, в качестве менеджера дисплеев использую XDM.

P.S. В случае если демон запускается удачно, на рабочем столе появляется окошко xscreensaver. Есть ли способ убрать его?

 , ,

zoroaster
()

Не получается установить DSL/PPPOE соединение через pppd

Форум — Admin

Третьи сутки бьюсь, пытаюсь подключить ArchLinux к общажному интернету. Под Ubuntu в Network Connections всегда выбирал DSL connection и автоматическое PPPoE, вводил логин пароль и все работало. За это время я перепробовал несколько разных инструкций, в частности: эту и эту. Выполнение всех инструкций давало одинаковый результат, поэтому я приведу в пример только вторую, через pppoe-setup.

Заранее извиняюсь за скриншоты, но это единственный возможный вариант:

 , , ,

zoroaster
()

Не получается создать правило для udev

Форум — Linux-hardware

Перейду сразу к делу. При подключении/отключении некоторых USB устройств должен выполняться какой-то скрипт. Пусть это будут USB мыши. udevadm monitor --env при подключении мыши выдаёт кучу всякой каши, я выбираю следующее:

UDEV  [3972.485338] add      /devices/pci0000:00/0000:00:14.0/usb2/2-2/2-2:1.0/0003:046D:C05F.000C/input/input28/mouse2 (input)
.INPUT_CLASS=mouse
.MM_USBIFNUM=00
ACTION=add
DEVLINKS=/dev/input/by-id/usb-Logitech_USB_Optical_Mouse-mouse /dev/input/by-path/pci-0000:00:14.0-usb-0:2:1.0-mouse
DEVNAME=/dev/input/mouse2
DEVPATH=/devices/pci0000:00/0000:00:14.0/usb2/2-2/2-2:1.0/0003:046D:C05F.000C/input/input28/mouse2
ID_BUS=usb
ID_INPUT=1
ID_INPUT_MOUSE=1
ID_MODEL=USB_Optical_Mouse
ID_MODEL_ENC=USB\x20Optical\x20Mouse
ID_MODEL_ID=c05f
ID_PATH=pci-0000:00:14.0-usb-0:2:1.0
ID_PATH_TAG=pci-0000_00_14_0-usb-0_2_1_0
ID_REVISION=5300
ID_SERIAL=Logitech_USB_Optical_Mouse
ID_TYPE=hid
ID_USB_DRIVER=usbhid
ID_USB_INTERFACES=:030102:
ID_USB_INTERFACE_NUM=00
ID_VENDOR=Logitech
ID_VENDOR_ENC=Logitech
ID_VENDOR_ID=046d
MAJOR=13
MINOR=34
SEQNUM=3078
SUBSYSTEM=input
USEC_INITIALIZED=3972254002

Я так понимаю, для всех мышей нужно указать ключи KERNEL="mouse*" и SUBSYSTEM="input". В итоге получается что-то вроде этого:

SUBSYSTEM=="input", KERNEL=="mouse*", ACTION=="add", RUN+="/home/common/scripts/xswitch 'DLLC6AD:00 06CB:75BF Touchpad'"
SUBSYSTEM=="input", KERNEL=="mouse*", ACTION=="remove", RUN+="/home/common/scripts/xswitch 'DLLC6AD:00 06CB:75BF Touchpad'"

И всё. Если перезагрузить udev service udev restart нужного эффекта не происходит. Пробовал запускать udevadm test /devices/pci0000:00/0000:00:14.0/usb2/2-2/2-2:1.0/0003:046D:C05F.000C/input/input28/mouse2, он даёт следующий выхлоп:

... МНОГА "Reading rules file:", затем ...
rules contain 393216 bytes tokens (32768 * 12 bytes), 36838 bytes strings
24589 strings (207569 bytes), 20980 de-duplicated (174341 bytes), 3610 trie nodes used
value '[dmi/id]sys_vendor' is 'Dell Inc.'
value '[dmi/id]sys_vendor' is 'Dell Inc.'
IMPORT builtin 'input_id' /lib/udev/rules.d/50-udev-default.rules:14
capabilities/ev raw kernel attribute: 17
capabilities/abs raw kernel attribute: 0
capabilities/rel raw kernel attribute: 103
capabilities/key raw kernel attribute: 70000 0 0 0 0
properties raw kernel attribute: 0
test_key: checking bit block 0 for any keys; found=0
test_key: checking bit block 64 for any keys; found=0
test_key: checking bit block 128 for any keys; found=0
test_key: checking bit block 192 for any keys; found=0
GROUP 135 /lib/udev/rules.d/50-udev-default.rules:30
IMPORT builtin 'usb_id' /lib/udev/rules.d/60-persistent-input.rules:7
/sys/devices/pci0000:00/0000:00:14.0/usb2/2-2/2-2:1.0: if_class 3 protocol 0
LINK 'input/by-id/usb-Logitech_USB_Optical_Mouse-mouse' /lib/udev/rules.d/60-persistent-input.rules:22
IMPORT builtin 'path_id' /lib/udev/rules.d/60-persistent-input.rules:31
LINK 'input/by-path/pci-0000:00:14.0-usb-0:2:1.0-mouse' /lib/udev/rules.d/60-persistent-input.rules:32
RUN '/home/common/scripts/xswitch 'DLLC6AD:00 06CB:75BF Touchpad'' /etc/udev/rules.d/99-local.rules:1
handling device node '/dev/input/mouse2', devnum=c13:34, mode=0660, uid=0, gid=135
preserve permissions /dev/input/mouse2, 020660, uid=0, gid=135
preserve already existing symlink '/dev/char/13:34' to '../input/mouse2'
found 'c13:34' claiming '/run/udev/links/\x2finput\x2fby-id\x2fusb-Logitech_USB_Optical_Mouse-mouse'
creating link '/dev/input/by-id/usb-Logitech_USB_Optical_Mouse-mouse' to '/dev/input/mouse2'
preserve already existing symlink '/dev/input/by-id/usb-Logitech_USB_Optical_Mouse-mouse' to '../mouse2'
found 'c13:34' claiming '/run/udev/links/\x2finput\x2fby-path\x2fpci-0000:00:14.0-usb-0:2:1.0-mouse'
creating link '/dev/input/by-path/pci-0000:00:14.0-usb-0:2:1.0-mouse' to '/dev/input/mouse2'
preserve already existing symlink '/dev/input/by-path/pci-0000:00:14.0-usb-0:2:1.0-mouse' to '../mouse2'
.INPUT_CLASS=mouse
.MM_USBIFNUM=00
ACTION=add
DEVLINKS=/dev/input/by-path/pci-0000:00:14.0-usb-0:2:1.0-mouse /dev/input/by-id/usb-Logitech_USB_Optical_Mouse-mouse
DEVNAME=/dev/input/mouse2
DEVPATH=/devices/pci0000:00/0000:00:14.0/usb2/2-2/2-2:1.0/0003:046D:C05F.000C/input/input28/mouse2
ID_BUS=usb
ID_INPUT=1
ID_INPUT_MOUSE=1
ID_MODEL=USB_Optical_Mouse
ID_MODEL_ENC=USB\x20Optical\x20Mouse
ID_MODEL_ID=c05f
ID_PATH=pci-0000:00:14.0-usb-0:2:1.0
ID_PATH_TAG=pci-0000_00_14_0-usb-0_2_1_0
ID_REVISION=5300
ID_SERIAL=Logitech_USB_Optical_Mouse
ID_TYPE=hid
ID_USB_DRIVER=usbhid
ID_USB_INTERFACES=:030102:
ID_USB_INTERFACE_NUM=00
ID_VENDOR=Logitech
ID_VENDOR_ENC=Logitech
ID_VENDOR_ID=046d
MAJOR=13
MINOR=34
SUBSYSTEM=input
USEC_INITIALIZED=3972254002
run: '/home/common/scripts/xswitch 'DLLC6AD:00 06CB:75BF Touchpad''
Unload module index
Unloaded link configuration context.

То есть моё моё правило он с устройством вроде как сопоставил, добавил скрипт на выполнение. Не могу понять что означает «Unload module index Unloaded link configuration context.». Насколько я понял скрипт не выполняется (во всяком случае побочного эффекта я не вижу).

Машинка бегает под Ubuntu 16.04. Рассчитываю на вашу помощь, заранее спасибо.

 

zoroaster
()

RSS подписка на новые темы