abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    včera 07:33 | Komunita

    O víkendu probíhá konference OpenAlt 2025. Na programu je spousta zajímavých přednášek. Pokud jste v Brně, stavte se. Vstup zdarma.

    Ladislav Hagara | Komentářů: 0
    včera 00:55 | IT novinky

    Josef Průša představil novou velkoformátovou uzavřenou CoreXY 3D tiskárnu Prusa CORE One L a nový open source standard chytrých cívek OpenPrintTag i s novou přepracovanou špulkou.

    Ladislav Hagara | Komentářů: 7
    31.10. 18:33 | IT novinky

    Na GOG.com běží Autumn Sale. Při té příležitosti je zdarma hororová počítačová hra STASIS (ProtonDB: Platinum).

    Ladislav Hagara | Komentářů: 0
    31.10. 13:22 | Komunita

    Ubuntu 25.10 má nově balíčky sestavené také pro úroveň mikroarchitektury x86-64-v3 (amd64v3).

    Ladislav Hagara | Komentářů: 8
    31.10. 01:22 | Nová verze

    Byla vydána verze 1.91.0 programovacího jazyka Rust (Wikipedie). Podrobnosti v poznámkách k vydání. Vyzkoušet Rust lze například na stránce Rust by Example.

    Ladislav Hagara | Komentářů: 0
    31.10. 00:11 | IT novinky

    Ministerstvo průmyslu a obchodu vyhlásilo druhou veřejnou soutěž v programu TWIST, který podporuje výzkum, vývoj a využití umělé inteligence v podnikání. Firmy mohou získat až 30 milionů korun na jeden projekt zaměřený na nové produkty či inovaci podnikových procesů. Návrhy projektů lze podávat od 31. října do 17. prosince 2025. Celková alokace výzvy činí 800 milionů korun.

    Ladislav Hagara | Komentářů: 5
    30.10. 23:44 | Komunita

    Google v srpnu oznámil, že na „certifikovaných“ zařízeních s Androidem omezí instalaci aplikací (včetně „sideloadingu“) tak, že bude vyžadovat, aby aplikace byly podepsány centrálně registrovanými vývojáři s ověřenou identitou. Iniciativa Keep Android Open se to snaží zvrátit. Podepsat lze otevřený dopis adresovaný Googlu nebo petici na Change.org.

    Ladislav Hagara | Komentářů: 0
    30.10. 15:22 | Nová verze

    Byla vydána nová verze 18 integrovaného vývojového prostředí (IDE) Qt Creator. S podporou Development Containers. Podrobný přehled novinek v changelogu.

    Ladislav Hagara | Komentářů: 2
    30.10. 12:55 | Nová verze

    Cursor (Wikipedie) od společnosti Anysphere byl vydán ve verzi 2.0. Jedná se o multiplatformní proprietární editor kódů s podporou AI (vibe coding).

    Ladislav Hagara | Komentářů: 1
    30.10. 02:55 | Nová verze

    Google Chrome 142 byl prohlášen za stabilní. Nejnovější stabilní verze 142.0.7444.59 přináší řadu novinek z hlediska uživatelů i vývojářů. Podrobný přehled v poznámkách k vydání. Opraveno bylo 20 bezpečnostních chyb. Za nejvážnější z nich bylo vyplaceno 50 000 dolarů. Vylepšeny byly také nástroje pro vývojáře.

    Ladislav Hagara | Komentářů: 0
    Jaké řešení používáte k vývoji / práci?
     (36%)
     (48%)
     (19%)
     (19%)
     (23%)
     (16%)
     (20%)
     (16%)
     (17%)
    Celkem 297 hlasů
     Komentářů: 14, poslední 14.10. 09:04
    Rozcestník

    Dotaz: Zkušenosti s VFIO Virtual Function I/O (qemu/kvm)

    7.6.2014 02:34 Lazar
    Zkušenosti s VFIO Virtual Function I/O (qemu/kvm)
    Přečteno: 519×

    VFIO .. Způsob zpřístupnění fyzického HW v GuestOSu (QEMU/KVM) s využitím IOMMU/VT-d.

    https://www.kernel.org/doc/Documentation/vfio.txt

    https://bbs.archlinux.org/viewtopic.php?id=162768

    Vycházeje z tohoto návodu, podařilo se mi GuestOSu (sorry za Windows) zpřístupnit jak 2.GK(PCIe ATI), tak například SCSI řadič (PCI Adaptec). Použita distribuce Kubuntu 14.04x64 s vanilla jádrem 3.14.4.

    http://www.monitos.cz/tmp/x3430_vfio_pci_scsi.png

    PCI strom (lspci -k) vypadá takto:
    -+-[0000:ff]-+-00.0
     |           +-00.1
     |           +-02.0
     |           +-02.1
     |           +-03.0
     |           +-03.1
     |           +-03.2
     |           +-03.4
     |           +-04.0
     |           +-04.1
     |           +-04.2
     |           +-04.3
     |           +-05.0
     |           +-05.1
     |           +-05.2
     |           \-05.3
     \-[0000:00]-+-00.0
                 +-03.0-[01-05]----00.0-[02-05]--+-00.0-[03]----00.0
                 |                               +-02.0-[04]--+-00.0
                 |                               |            \-00.1
                 |                               \-03.0-[05]----00.0
                 +-08.0
                 +-08.1
                 +-08.2
                 +-08.3
                 +-10.0
                 +-10.1
                 +-1a.0
                 +-1b.0
                 +-1c.0-[06]----00.0
                 +-1c.1-[07]----00.0
                 +-1c.2-[08]----00.0
                 +-1c.3-[09]--+-00.0
                 |            \-00.1
                 +-1c.6-[0a]--+-00.0
                 |            \-00.1
                 +-1d.0
                 +-1e.0-[0b]--
                 +-1f.0
                 +-1f.2
                 \-1f.3
    

    Kombinované SATA/IDE řadiče JMicron jsou připojeny na 09:00.0,09:00.1 (druhý 0a:00.0,0a:00.1). Při snaze o zpřístupnění v GuestOSu jednoho z integrovaných SATA/IDE řadičů JMicron JB36x na MB, základní deska MSI Big Bang Trinergy MSI-7580 (MB:P55/NF200-based + CPU:X3430 jich obsahuje několik, se mi objevilo hlášení.

    group 6 is not viable, please ensure all devices within the iommu_group

    Problém asi spočívá v omezené granulaci IOMMU, takže bylo nutné přiřadit všechny členy iommu groupy 1c.0 až 1c.6 (pravděpodobně jde o sdílení společných zdrojů .. IRQ?). Po tomto opatření již většina zařízení byla v GuestOSu dostupná. Vzhledem k tomu, že celkem šlo o 2xNIC,1xFireWire,1xSATA/IDE JMB36x (druhy radic ovladač neinicializoval), nezbylo slovy klasika: "Již nikoho kdo by se na živý obraz díval.". HostOSu jsem musel přidat USB WLAN, aby měl aspoň nějakou síťovou konektivitu. ;-)

    http://www.monitos.cz/tmp/x3430_vfio_group.png

    Neberte založené téma prosím jako problém/dotaz, ale spíše jako snahu o oživení debaty k této zajímavé problematice.

    Odpovědi

    7.6.2014 17:49 Lazar
    Rozbalit Rozbalit vše Re: Zkušenosti s VFIO Virtual Function I/O (qemu/kvm)
    Doplnění:

    Na denním světle vypadá osazení trochu jinak. Externí řadiče jsou celkem ctyři dle geografie MB by se nabízelo JBM363(obsluha IDE?), 2x JMB322(2x 2 SATA RAID porty?) a JBM362(2x eSATA?).
    09:00.0 SATA controller [0106]: JMicron Technology Corp. JMB363 SATA/IDE Controller [197b:2363] (rev 03)
    09:00.1 IDE interface [0101]: JMicron Technology Corp. JMB363 SATA/IDE Controller [197b:2363] (rev 03)
    0a:00.0 SATA controller [0106]: JMicron Technology Corp. JMB363 SATA/IDE Controller [197b:2363] (rev 03)
    0a:00.1 IDE interface [0101]: JMicron Technology Corp. JMB363 SATA/IDE Controller [197b:2363] (rev 03)
    
    Lspci vzhledem k shodným vendor:device hodnotám v identifikaci moc nepomůže.

    Nakonec se podařilo v GuestOSu fyzicky zpřístupnit: samostatný HDD na eSATA, samostatný HDD na jednom z RAID řadičů, RAID1 na druhém RAID řadiči, DVD IDE byla si v GuestOS viditelná, ale nefungovala (ovladač IDE řadiče chybu nehlásil).

    http://www.monitos.cz/tmp/x3430_vfio_group_attach_hdds.png

    Z v úvodu zmíněného návodu zbývá k dořešení rest s propagací/využitím BIOSu VGA pro přidelenou GK, tj. zpřístupnění obrazu již po zapnutí virtuálního stroje.
    15.6.2014 19:11 Lazar
    Rozbalit Rozbalit vše Re: Zkušenosti s VFIO Virtual Function I/O (qemu/kvm)
    Hodnota 10ec:8168 v parametru pci-stub.ids v GRUBu zabere nejen na integrované Realtek Gigabit NICy, ale i na ten umístěný do PCIe 1x.

    K zajištění jeho funkcionality v HostOSu stačilo (snad správně?) do rc.local přidat unbind pci-stub a modprobe r8169.
    echo -n "10ec 8168" > /sys/bus/pci/drivers/pci-stub/new_id
    echo -n 0000:0a:00.0 > /sys/bus/pci/drivers/pci-stub/unbind
    modprobe r8169
    
    
    ....
    
    root@kubuntu:~# lspci -k |grep 8111 -A 2
    06:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (rev 03)
            Subsystem: Micro-Star International Co., Ltd. [MSI] Device 7580
            Kernel driver in use: pci-stub
    07:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (rev 03)
            Subsystem: Micro-Star International Co., Ltd. [MSI] Device 7580
            Kernel driver in use: pci-stub
    --
    0a:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (rev 06)
            Subsystem: Realtek Semiconductor Co., Ltd. Device 0123
            Kernel driver in use: r8169
    
    16.6.2014 22:53 Lazar
    Rozbalit Rozbalit vše Re: Zkušenosti s VFIO Virtual Function I/O (qemu/kvm)
    Ukazalo se, ze dotycny PCIe 1x slot patri do iommu group 6 (rada zarizeni sdilena GuestOSu), takze pro HostOS je "ztracen". Pro HostOS vyclenena PCI RT8139, ktera je samostatne (s PCI bridgem?) v iommu group 8.

    Nevite nekdo o nejake Live distribuci se zapnutou podporou IOMMU/VT-d v kernelu, po prvotni overeni dostupnosti (vypis dmesg s klicovymi slovy) teto technologie na dane kombinaci MB/CPU?

    root@kubuntu:~# ls -la /sys/kernel/iommu_groups/*/devices/
    /sys/kernel/iommu_groups/0/devices/:
    total 0
    drwxr-xr-x 2 root root 0 čen 16 22:12 .
    drwxr-xr-x 3 root root 0 čen 16 22:12 ..
    lrwxrwxrwx 1 root root 0 čen 16 22:12 0000:00:00.0 -> ../../../../devices/pci0000:00/0000:00:00.0
    
    /sys/kernel/iommu_groups/10/devices/:
    total 0
    drwxr-xr-x 2 root root 0 čen 16 22:12 .
    drwxr-xr-x 3 root root 0 čen 16 22:12 ..
    lrwxrwxrwx 1 root root 0 čen 16 22:12 0000:01:00.0 -> ../../../../devices/pci0000:00/0000:00:03.0/0000:01:00.0
    
    /sys/kernel/iommu_groups/11/devices/:
    total 0
    drwxr-xr-x 2 root root 0 čen 16 22:12 .
    drwxr-xr-x 3 root root 0 čen 16 22:12 ..
    lrwxrwxrwx 1 root root 0 čen 16 22:12 0000:02:00.0 -> ../../../../devices/pci0000:00/0000:00:03.0/0000:01:00.0/0000:02:00.0
    lrwxrwxrwx 1 root root 0 čen 16 22:12 0000:03:00.0 -> ../../../../devices/pci0000:00/0000:00:03.0/0000:01:00.0/0000:02:00.0/0000:03:00.0
    
    /sys/kernel/iommu_groups/12/devices/:
    total 0
    drwxr-xr-x 2 root root 0 čen 16 22:12 .
    drwxr-xr-x 3 root root 0 čen 16 22:12 ..
    lrwxrwxrwx 1 root root 0 čen 16 22:12 0000:02:02.0 -> ../../../../devices/pci0000:00/0000:00:03.0/0000:01:00.0/0000:02:02.0
    lrwxrwxrwx 1 root root 0 čen 16 22:12 0000:04:00.0 -> ../../../../devices/pci0000:00/0000:00:03.0/0000:01:00.0/0000:02:02.0/0000:04:00.0
    lrwxrwxrwx 1 root root 0 čen 16 22:12 0000:04:00.1 -> ../../../../devices/pci0000:00/0000:00:03.0/0000:01:00.0/0000:02:02.0/0000:04:00.1
    
    /sys/kernel/iommu_groups/13/devices/:
    total 0
    drwxr-xr-x 2 root root 0 čen 16 22:12 .
    drwxr-xr-x 3 root root 0 čen 16 22:12 ..
    lrwxrwxrwx 1 root root 0 čen 16 22:12 0000:02:03.0 -> ../../../../devices/pci0000:00/0000:00:03.0/0000:01:00.0/0000:02:03.0
    lrwxrwxrwx 1 root root 0 čen 16 22:12 0000:05:00.0 -> ../../../../devices/pci0000:00/0000:00:03.0/0000:01:00.0/0000:02:03.0/0000:05:00.0
    
    /sys/kernel/iommu_groups/14/devices/:
    total 0
    drwxr-xr-x 2 root root 0 čen 16 22:12 .
    drwxr-xr-x 3 root root 0 čen 16 22:12 ..
    lrwxrwxrwx 1 root root 0 čen 16 22:12 0000:ff:00.0 -> ../../../../devices/pci0000:ff/0000:ff:00.0
    lrwxrwxrwx 1 root root 0 čen 16 22:12 0000:ff:00.1 -> ../../../../devices/pci0000:ff/0000:ff:00.1
    
    /sys/kernel/iommu_groups/15/devices/:
    total 0
    drwxr-xr-x 2 root root 0 čen 16 22:12 .
    drwxr-xr-x 3 root root 0 čen 16 22:12 ..
    lrwxrwxrwx 1 root root 0 čen 16 22:12 0000:ff:02.0 -> ../../../../devices/pci0000:ff/0000:ff:02.0
    lrwxrwxrwx 1 root root 0 čen 16 22:12 0000:ff:02.1 -> ../../../../devices/pci0000:ff/0000:ff:02.1
    
    /sys/kernel/iommu_groups/16/devices/:
    total 0
    drwxr-xr-x 2 root root 0 čen 16 22:12 .
    drwxr-xr-x 3 root root 0 čen 16 22:12 ..
    lrwxrwxrwx 1 root root 0 čen 16 22:12 0000:ff:03.0 -> ../../../../devices/pci0000:ff/0000:ff:03.0
    lrwxrwxrwx 1 root root 0 čen 16 22:12 0000:ff:03.1 -> ../../../../devices/pci0000:ff/0000:ff:03.1
    lrwxrwxrwx 1 root root 0 čen 16 22:12 0000:ff:03.2 -> ../../../../devices/pci0000:ff/0000:ff:03.2
    lrwxrwxrwx 1 root root 0 čen 16 22:12 0000:ff:03.4 -> ../../../../devices/pci0000:ff/0000:ff:03.4
    
    /sys/kernel/iommu_groups/17/devices/:
    total 0
    drwxr-xr-x 2 root root 0 čen 16 22:12 .
    drwxr-xr-x 3 root root 0 čen 16 22:12 ..
    lrwxrwxrwx 1 root root 0 čen 16 22:12 0000:ff:04.0 -> ../../../../devices/pci0000:ff/0000:ff:04.0
    lrwxrwxrwx 1 root root 0 čen 16 22:12 0000:ff:04.1 -> ../../../../devices/pci0000:ff/0000:ff:04.1
    lrwxrwxrwx 1 root root 0 čen 16 22:12 0000:ff:04.2 -> ../../../../devices/pci0000:ff/0000:ff:04.2
    lrwxrwxrwx 1 root root 0 čen 16 22:12 0000:ff:04.3 -> ../../../../devices/pci0000:ff/0000:ff:04.3
    
    /sys/kernel/iommu_groups/18/devices/:
    total 0
    drwxr-xr-x 2 root root 0 čen 16 22:12 .
    drwxr-xr-x 3 root root 0 čen 16 22:12 ..
    lrwxrwxrwx 1 root root 0 čen 16 22:12 0000:ff:05.0 -> ../../../../devices/pci0000:ff/0000:ff:05.0
    lrwxrwxrwx 1 root root 0 čen 16 22:12 0000:ff:05.1 -> ../../../../devices/pci0000:ff/0000:ff:05.1
    lrwxrwxrwx 1 root root 0 čen 16 22:12 0000:ff:05.2 -> ../../../../devices/pci0000:ff/0000:ff:05.2
    lrwxrwxrwx 1 root root 0 čen 16 22:12 0000:ff:05.3 -> ../../../../devices/pci0000:ff/0000:ff:05.3
    
    /sys/kernel/iommu_groups/1/devices/:
    total 0
    drwxr-xr-x 2 root root 0 čen 16 22:12 .
    drwxr-xr-x 3 root root 0 čen 16 22:12 ..
    lrwxrwxrwx 1 root root 0 čen 16 22:12 0000:00:03.0 -> ../../../../devices/pci0000:00/0000:00:03.0
    
    /sys/kernel/iommu_groups/2/devices/:
    total 0
    drwxr-xr-x 2 root root 0 čen 16 22:12 .
    drwxr-xr-x 3 root root 0 čen 16 22:12 ..
    lrwxrwxrwx 1 root root 0 čen 16 22:12 0000:00:08.0 -> ../../../../devices/pci0000:00/0000:00:08.0
    lrwxrwxrwx 1 root root 0 čen 16 22:12 0000:00:08.1 -> ../../../../devices/pci0000:00/0000:00:08.1
    lrwxrwxrwx 1 root root 0 čen 16 22:12 0000:00:08.2 -> ../../../../devices/pci0000:00/0000:00:08.2
    lrwxrwxrwx 1 root root 0 čen 16 22:12 0000:00:08.3 -> ../../../../devices/pci0000:00/0000:00:08.3
    
    /sys/kernel/iommu_groups/3/devices/:
    total 0
    drwxr-xr-x 2 root root 0 čen 16 22:12 .
    drwxr-xr-x 3 root root 0 čen 16 22:12 ..
    lrwxrwxrwx 1 root root 0 čen 16 22:12 0000:00:10.0 -> ../../../../devices/pci0000:00/0000:00:10.0
    lrwxrwxrwx 1 root root 0 čen 16 22:12 0000:00:10.1 -> ../../../../devices/pci0000:00/0000:00:10.1
    
    /sys/kernel/iommu_groups/4/devices/:
    total 0
    drwxr-xr-x 2 root root 0 čen 16 22:12 .
    drwxr-xr-x 3 root root 0 čen 16 22:12 ..
    lrwxrwxrwx 1 root root 0 čen 16 22:12 0000:00:1a.0 -> ../../../../devices/pci0000:00/0000:00:1a.0
    
    /sys/kernel/iommu_groups/5/devices/:
    total 0
    drwxr-xr-x 2 root root 0 čen 16 22:12 .
    drwxr-xr-x 3 root root 0 čen 16 22:12 ..
    lrwxrwxrwx 1 root root 0 čen 16 22:12 0000:00:1b.0 -> ../../../../devices/pci0000:00/0000:00:1b.0
    
    /sys/kernel/iommu_groups/6/devices/:
    total 0
    drwxr-xr-x 2 root root 0 čen 16 22:12 .
    drwxr-xr-x 3 root root 0 čen 16 22:12 ..
    lrwxrwxrwx 1 root root 0 čen 16 22:12 0000:00:1c.0 -> ../../../../devices/pci0000:00/0000:00:1c.0
    lrwxrwxrwx 1 root root 0 čen 16 22:12 0000:00:1c.1 -> ../../../../devices/pci0000:00/0000:00:1c.1
    lrwxrwxrwx 1 root root 0 čen 16 22:12 0000:00:1c.2 -> ../../../../devices/pci0000:00/0000:00:1c.2
    lrwxrwxrwx 1 root root 0 čen 16 22:12 0000:00:1c.3 -> ../../../../devices/pci0000:00/0000:00:1c.3
    lrwxrwxrwx 1 root root 0 čen 16 22:12 0000:00:1c.5 -> ../../../../devices/pci0000:00/0000:00:1c.5
    lrwxrwxrwx 1 root root 0 čen 16 22:12 0000:00:1c.6 -> ../../../../devices/pci0000:00/0000:00:1c.6
    lrwxrwxrwx 1 root root 0 čen 16 22:12 0000:06:00.0 -> ../../../../devices/pci0000:00/0000:00:1c.0/0000:06:00.0
    lrwxrwxrwx 1 root root 0 čen 16 22:12 0000:07:00.0 -> ../../../../devices/pci0000:00/0000:00:1c.1/0000:07:00.0
    lrwxrwxrwx 1 root root 0 čen 16 22:12 0000:08:00.0 -> ../../../../devices/pci0000:00/0000:00:1c.2/0000:08:00.0
    lrwxrwxrwx 1 root root 0 čen 16 22:12 0000:09:00.0 -> ../../../../devices/pci0000:00/0000:00:1c.3/0000:09:00.0
    lrwxrwxrwx 1 root root 0 čen 16 22:12 0000:09:00.1 -> ../../../../devices/pci0000:00/0000:00:1c.3/0000:09:00.1
    lrwxrwxrwx 1 root root 0 čen 16 22:12 0000:0a:00.0 -> ../../../../devices/pci0000:00/0000:00:1c.5/0000:0a:00.0
    lrwxrwxrwx 1 root root 0 čen 16 22:12 0000:0b:00.0 -> ../../../../devices/pci0000:00/0000:00:1c.6/0000:0b:00.0
    lrwxrwxrwx 1 root root 0 čen 16 22:12 0000:0b:00.1 -> ../../../../devices/pci0000:00/0000:00:1c.6/0000:0b:00.1
    
    /sys/kernel/iommu_groups/7/devices/:
    total 0
    drwxr-xr-x 2 root root 0 čen 16 22:12 .
    drwxr-xr-x 3 root root 0 čen 16 22:12 ..
    lrwxrwxrwx 1 root root 0 čen 16 22:12 0000:00:1d.0 -> ../../../../devices/pci0000:00/0000:00:1d.0
    
    /sys/kernel/iommu_groups/8/devices/:
    total 0
    drwxr-xr-x 2 root root 0 čen 16 22:12 .
    drwxr-xr-x 3 root root 0 čen 16 22:12 ..
    lrwxrwxrwx 1 root root 0 čen 16 22:12 0000:00:1e.0 -> ../../../../devices/pci0000:00/0000:00:1e.0
    lrwxrwxrwx 1 root root 0 čen 16 22:12 0000:0c:01.0 -> ../../../../devices/pci0000:00/0000:00:1e.0/0000:0c:01.0
    
    /sys/kernel/iommu_groups/9/devices/:
    total 0
    drwxr-xr-x 2 root root 0 čen 16 22:12 .
    drwxr-xr-x 3 root root 0 čen 16 22:12 ..
    lrwxrwxrwx 1 root root 0 čen 16 22:12 0000:00:1f.0 -> ../../../../devices/pci0000:00/0000:00:1f.0
    lrwxrwxrwx 1 root root 0 čen 16 22:12 0000:00:1f.2 -> ../../../../devices/pci0000:00/0000:00:1f.2
    lrwxrwxrwx 1 root root 0 čen 16 22:12 0000:00:1f.3 -> ../../../../devices/pci0000:00/0000:00:1f.3
    

    Založit nové vláknoNahoru

    Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.