LINUX.ORG.RU

Сообщения larrabee

 

Ремап Fn клавиш

Форум — General

Приветствую. Столкнулся тут с одной проблемой. Есть ноут dell xps 9370 с Arche'ем и Wayland. Необходимо через HWDB переназначить Fn клавиши управления подсветкой на page up/down. Проблема в том, что я не могу найти scancode этих клавиш. Вывод showkey при нажатии бридж ап:

#>> showkey --scancodes               
kb mode was ?UNKNOWN?
[ if you are trying this under X, it might not work
since the X server is also reading /dev/console ]

press any key (program terminates 10s after last keypress)...
0x9c 
0xe0 0x54 0xe0 0xd4

Вывод evtest:

#>> evtest /dev/input/event13 
Input driver version is 1.0.1
Input device ID: bus 0x19 vendor 0x0 product 0x6 version 0x0
Input device name: "Video Bus"
Supported events:
  Event type 0 (EV_SYN)
  Event type 1 (EV_KEY)
    Event code 224 (KEY_BRIGHTNESSDOWN)
    Event code 225 (KEY_BRIGHTNESSUP)
    Event code 227 (KEY_SWITCHVIDEOMODE)
    Event code 241 (KEY_VIDEO_NEXT)
    Event code 242 (KEY_VIDEO_PREV)
    Event code 243 (KEY_BRIGHTNESS_CYCLE)
    Event code 244 (KEY_BRIGHTNESS_ZERO)
    Event code 245 (KEY_DISPLAY_OFF)
Properties:
Testing ... (interrupt to exit)
Event: time 1523197124.754306, type 1 (EV_KEY), code 225 (KEY_BRIGHTNESSUP), value 1
Event: time 1523197124.754306, -------------- SYN_REPORT ------------
Event: time 1523197124.754340, type 1 (EV_KEY), code 225 (KEY_BRIGHTNESSUP), value 0
Event: time 1523197124.754340, -------------- SYN_REPORT ------------

Мой hwdb файл имеет примерно такой вид, пробовал разные комбинации сканкодов, в т.ч. 'd4, 53, oe54, 54d4', ни один не работает.

evdev:*
  KEYBOARD_KEY_d4=pageup

С ремапом остальных кнопок проблем не было, только с этими. Может быть кто то знает как побороть?

 

larrabee
()

PJSIP: нет звука

Форум — Development

Здравствуйте. Собрал pjsua с конфигом:

./configure --enable-shared --disable-sound --prefix=/usr
поставил питоновский модуль и cli утилиту.

Если вызывать из cli, то все ок, клиент звонит и проигрывает тестовый файл

/usr/bin/pjsua --duration=5 --null-audio --id sip:login@sipnet.ru --registrar sip:sipnet.ru --realm etc.tario.ru --username login --password password --local-port=5013 sip:+79097777777@sipnet.ru --play-file=/app/test3.wav --auto-play
Но при вызовет через питоновский скрипт клиент звонит, но в трубке тишина. Сам скрипт:

import sys
import pjsua
import threading
import wave
from time import sleep


def log_cb(level, str, len):
    print str,

class MyAccountCallback(pjsua.AccountCallback):
    sem = None

    def __init__(self, account=None):
        pjsua.AccountCallback.__init__(self, account)

    def wait(self):
        self.sem = threading.Semaphore(0)
        self.sem.acquire()

    def on_reg_state(self):
        if self.sem:
            if self.account.info().reg_status >= 200:
                self.sem.release()

def cb_func(pid) :
    print '%s playback is done' % pid
    current_call.hangup()


# Callback to receive events from Call
class MyCallCallback(pjsua.CallCallback):

    def __init__(self, call=None):
        pjsua.CallCallback.__init__(self, call)

    # Notification when call state has changed
    def on_state(self):
        global current_call
        global in_call
        print "Call with", self.call.info().remote_uri,
        print "is", self.call.info().state_text,
        print "last code =", self.call.info().last_code, 
        print "(" + self.call.info().last_reason + ")"
        
        if self.call.info().state == pjsua.CallState.DISCONNECTED:
            current_call = None
            print 'Current call is', current_call
            in_call = False
        elif self.call.info().state == pjsua.CallState.CONFIRMED:
            #Call is Answred
            print "Call Answred"
            wfile = wave.open("/app/test3.wav")
            time = (1.0 * wfile.getnframes ()) / wfile.getframerate()
            print str(time) + "s"
            wfile.close()
            self.wav_player_id=pjsua.Lib.instance().create_player('/app/test3.wav',loop=False)
            self.wav_slot=pjsua.Lib.instance().player_get_slot(self.wav_player_id)
            pjsua.Lib.instance().conf_connect(self.wav_slot, self.call.info().conf_slot)
            print(pjsua.Lib.instance().conf_get_signal_level(self.wav_slot))
            sleep(time)
            pjsua.Lib.instance().player_destroy(self.wav_player_id)
            self.call.hangup()
            in_call = False

    # Notification when call's media state has changed.
    def on_media_state(self):
        if self.call.info().media_state == pjsua.MediaState.ACTIVE:
            print "Media is now active"
        else:
            print "Media is inactive"

# Function to make call
def make_call(uri):
    try:
        print "Making call to", uri
        return acc.make_call(uri, cb=MyCallCallback())
    except pjsua.Error, e:
        print "Exception: " + str(e)
        return None


lib = pjsua.Lib()

try:
    lib.init(log_cfg = pjsua.LogConfig(level=2, callback=log_cb))
    lib.create_transport(pjsua.TransportType.UDP, pjsua.TransportConfig())
    lib.set_null_snd_dev()
    lib.start()
    lib.handle_events()

    acc_cfg = pjsua.AccountConfig()
    acc_cfg.id = "sip:login@sipnet.ru"
    acc_cfg.reg_uri = "sip:sipnet.ru"
    acc_cfg.use_srtp = 0
    acc_cfg.auth_cred = [ pjsua.AuthCred("etc.tario.ru", "login", "password") ]
    acc_cb = MyAccountCallback()
    acc = lib.create_account(acc_cfg, cb=acc_cb)
    acc_cb.wait()

    print "\nRegistration complete, status=", acc.info().reg_status, \
          "(" + acc.info().reg_reason + ")"
    

    #YOURDESTINATION is landline or mobile number you want to call
    dst_uri="sip:+79097777777@sipnet.ru"

    in_call = True
    lck = lib.auto_lock()
    current_call = make_call(dst_uri)
    print 'Current call is', current_call
    del lck

    #wait for the call to end before shuting down
    while in_call:
        pass
    lib.destroy()
    lib = None

except pjsua.Error, e:
    print "Exception: " + str(e)
    lib.destroy()

Помогите пожалуйста разобраться почему так происходит.

 , ,

larrabee
()

Аналог команды tail с возможностью сохранения позиции?

Форум — Admin

Здравствуйте. Запамятовал название утилиты в linux- аналог tail, но с возможностью сохранять позицию курсора между запусками. (позиция сохраняется в файл). Нужно для чтения новых записей из лога. Подскажите пожалуйста название данной утилиты. Спасибо.

 , ,

larrabee
()

правильная настройка прав NFSv4

Форум — Admin

Здравствуйте. Имеется настроенный NFSv4 (vers=4.2) и пачка клиентов.

cat /etc/exports 
/mnt/data/shared 192.168.12.0/24(rw,async,fsid=0)
/mnt/data/shared/owncloud 192.168.12.91(rw,async)
/mnt/data/shared/mariadb 192.168.12.30(rw,async)
Что имеется: корневая директория /mnt/data/shared доступна всем для записи. Ее права оверрайтят права ее поддиректорий, то есть я могу с клиента 192.168.12.91 писать в директорию mariadb. Кроме того к NFS серверу могут подключаться все машины 192.168.12.0/24. Если установить корню (/mnt/data/shared) режим РО , то остальные директории тоже станут РО, т.к. корень оверрайтит настройки поддиректорий.

Что хочется: что бы все машины 192.168.12.0/24 могли монтировать корень NFS (/mnt/data/shared) в режиме РО, а права на поддиректории определялись соответствующими записями. Подскажите пожалуйста как это настроить.

 , ,

larrabee
()

Проблема с VFIO

Форум — Admin

Итак, есть материнка ASRock Z87 Extreme4, проц Intel core i7 4771, Видеокарта AMD 6450 (в последвии будет замена на нормальную), SAS адаптер Adaptec 7805h, встроенное видео. ОС Arch linux, ядро стоковое (3.19.2-1). Видео карта была подключена к pci-stub и после этого подключена к модулю vfio. Но попытка включить VM с этой карточкой заканчивается ошибкой «vfio: error, group 1 is not viable, please ensure all devices within the iommu_group are bound to their vfio bus driver.»

Вывод lspci:

00:00.0 Host bridge: Intel Corporation 4th Gen Core Processor DRAM Controller (rev 06)
00:01.0 PCI bridge: Intel Corporation Xeon E3-1200 v3/4th Gen Core Processor PCI Express x16 Controller (rev 06)
00:01.1 PCI bridge: Intel Corporation Xeon E3-1200 v3/4th Gen Core Processor PCI Express x8 Controller (rev 06)
00:02.0 VGA compatible controller: Intel Corporation Xeon E3-1200 v3/4th Gen Core Processor Integrated Graphics Controller (rev 06)
00:03.0 Audio device: Intel Corporation Xeon E3-1200 v3/4th Gen Core Processor HD Audio Controller (rev 06)
00:14.0 USB controller: Intel Corporation 8 Series/C220 Series Chipset Family USB xHCI (rev 04)
00:16.0 Communication controller: Intel Corporation 8 Series/C220 Series Chipset Family MEI Controller #1 (rev 04)
00:19.0 Ethernet controller: Intel Corporation Ethernet Connection I217-V (rev 04)
00:1a.0 USB controller: Intel Corporation 8 Series/C220 Series Chipset Family USB EHCI #2 (rev 04)
00:1b.0 Audio device: Intel Corporation 8 Series/C220 Series Chipset High Definition Audio Controller (rev 04)
00:1c.0 PCI bridge: Intel Corporation 8 Series/C220 Series Chipset Family PCI Express Root Port #1 (rev d4)
00:1c.3 PCI bridge: Intel Corporation 8 Series/C220 Series Chipset Family PCI Express Root Port #4 (rev d4)
00:1c.6 PCI bridge: Intel Corporation 82801 PCI Bridge (rev d4)
00:1d.0 USB controller: Intel Corporation 8 Series/C220 Series Chipset Family USB EHCI #1 (rev 04)
00:1f.0 ISA bridge: Intel Corporation Z87 Express LPC Controller (rev 04)
00:1f.2 SATA controller: Intel Corporation 8 Series/C220 Series Chipset Family 6-port SATA Controller 1 [AHCI mode] (rev 04)
00:1f.3 SMBus: Intel Corporation 8 Series/C220 Series Chipset Family SMBus Controller (rev 04)
01:00.0 VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] Caicos [Radeon HD 6450/7450/8450 / R5 230 OEM]
01:00.1 Audio device: Advanced Micro Devices, Inc. [AMD/ATI] Caicos HDMI Audio [Radeon HD 6400 Series]
02:00.0 Serial Attached SCSI controller: Adaptec PMC-Sierra PM8018 SAS HBA [Series 7H] (rev 06)
04:00.0 Ethernet controller: Intel Corporation I211 Gigabit Network Connection (rev 03)
05:00.0 PCI bridge: ASMedia Technology Inc. ASM1083/1085 PCIe to PCI Bridge (rev 03)

Вывод lspci -n:

00:00.0 0600: 8086:0c00 (rev 06)
00:01.0 0604: 8086:0c01 (rev 06)
00:01.1 0604: 8086:0c05 (rev 06)
00:02.0 0300: 8086:0412 (rev 06)
00:03.0 0403: 8086:0c0c (rev 06)
00:14.0 0c03: 8086:8c31 (rev 04)
00:16.0 0780: 8086:8c3a (rev 04)
00:19.0 0200: 8086:153b (rev 04)
00:1a.0 0c03: 8086:8c2d (rev 04)
00:1b.0 0403: 8086:8c20 (rev 04)
00:1c.0 0604: 8086:8c10 (rev d4)
00:1c.3 0604: 8086:8c16 (rev d4)
00:1c.6 0604: 8086:244e (rev d4)
00:1d.0 0c03: 8086:8c26 (rev 04)
00:1f.0 0601: 8086:8c44 (rev 04)
00:1f.2 0106: 8086:8c02 (rev 04)
00:1f.3 0c05: 8086:8c22 (rev 04)
01:00.0 0300: 1002:6779
01:00.1 0403: 1002:aa98
02:00.0 0107: 9005:8088 (rev 06)
04:00.0 0200: 8086:1539 (rev 03)
05:00.0 0604: 1b21:1080 (rev 03)

cmdline:

initrd=\intel-ucode.img initrd=\initramfs-linux.img root=/dev/sda2 rw intel_iommu=on iommu=on elevator=noop pci-stub.ids=1002:6779,1002:aa98

Вывод ll /sys/bus/pci/devices/*/iommu_group:

lrwxrwxrwx 1 root root 0 апр  3 10:57 /sys/bus/pci/devices/0000:00:00.0/iommu_group -> ../../../kernel/iommu_groups/0/
lrwxrwxrwx 1 root root 0 апр  3 10:57 /sys/bus/pci/devices/0000:00:01.0/iommu_group -> ../../../kernel/iommu_groups/1/
lrwxrwxrwx 1 root root 0 апр  3 10:57 /sys/bus/pci/devices/0000:00:01.1/iommu_group -> ../../../kernel/iommu_groups/1/
lrwxrwxrwx 1 root root 0 апр  3 10:57 /sys/bus/pci/devices/0000:00:02.0/iommu_group -> ../../../kernel/iommu_groups/2/
lrwxrwxrwx 1 root root 0 апр  3 10:57 /sys/bus/pci/devices/0000:00:03.0/iommu_group -> ../../../kernel/iommu_groups/3/
lrwxrwxrwx 1 root root 0 апр  3 10:57 /sys/bus/pci/devices/0000:00:14.0/iommu_group -> ../../../kernel/iommu_groups/4/
lrwxrwxrwx 1 root root 0 апр  3 10:57 /sys/bus/pci/devices/0000:00:16.0/iommu_group -> ../../../kernel/iommu_groups/5/
lrwxrwxrwx 1 root root 0 апр  3 10:57 /sys/bus/pci/devices/0000:00:19.0/iommu_group -> ../../../kernel/iommu_groups/6/
lrwxrwxrwx 1 root root 0 апр  3 10:57 /sys/bus/pci/devices/0000:00:1a.0/iommu_group -> ../../../kernel/iommu_groups/7/
lrwxrwxrwx 1 root root 0 апр  3 10:57 /sys/bus/pci/devices/0000:00:1b.0/iommu_group -> ../../../kernel/iommu_groups/8/
lrwxrwxrwx 1 root root 0 апр  3 10:57 /sys/bus/pci/devices/0000:00:1c.0/iommu_group -> ../../../kernel/iommu_groups/9/
lrwxrwxrwx 1 root root 0 апр  3 10:57 /sys/bus/pci/devices/0000:00:1c.3/iommu_group -> ../../../kernel/iommu_groups/10/
lrwxrwxrwx 1 root root 0 апр  3 10:57 /sys/bus/pci/devices/0000:00:1c.6/iommu_group -> ../../../kernel/iommu_groups/11/
lrwxrwxrwx 1 root root 0 апр  3 10:57 /sys/bus/pci/devices/0000:00:1d.0/iommu_group -> ../../../kernel/iommu_groups/12/
lrwxrwxrwx 1 root root 0 апр  3 10:57 /sys/bus/pci/devices/0000:00:1f.0/iommu_group -> ../../../kernel/iommu_groups/13/
lrwxrwxrwx 1 root root 0 апр  3 10:57 /sys/bus/pci/devices/0000:00:1f.2/iommu_group -> ../../../kernel/iommu_groups/13/
lrwxrwxrwx 1 root root 0 апр  3 10:57 /sys/bus/pci/devices/0000:00:1f.3/iommu_group -> ../../../kernel/iommu_groups/13/
lrwxrwxrwx 1 root root 0 апр  3 10:57 /sys/bus/pci/devices/0000:01:00.0/iommu_group -> ../../../../kernel/iommu_groups/1/
lrwxrwxrwx 1 root root 0 апр  3 10:57 /sys/bus/pci/devices/0000:01:00.1/iommu_group -> ../../../../kernel/iommu_groups/1/
lrwxrwxrwx 1 root root 0 апр  3 10:57 /sys/bus/pci/devices/0000:02:00.0/iommu_group -> ../../../../kernel/iommu_groups/1/
lrwxrwxrwx 1 root root 0 апр  3 10:57 /sys/bus/pci/devices/0000:04:00.0/iommu_group -> ../../../../kernel/iommu_groups/14/
lrwxrwxrwx 1 root root 0 апр  3 10:57 /sys/bus/pci/devices/0000:05:00.0/iommu_group -> ../../../../kernel/iommu_groups/11/

Как я понимаю проблема в том, что у меня видеокарта и SAS адаптер оказываются в одной IOMMU группе (в первой) и при попытке запуска VM qemu ругается на это и предлагает подключить к VFIO еще и SAS (что естественно недопустимо).

Пробовал использовать ядро с ACS override patch- не помогает, пробовал добавлять опцию vfio_iommu_type1 allow_unsafe_interrupts=1- не помогает и появляются зависания. Как раскидать видео и SAS в разные iommu группы, или как по другому пофиксить ошибку? Спасибо.

 , ,

larrabee
()

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