LINUX.ORG.RU

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

Soft switch/router VPP

Новости — Open Source
Группа Open Source

Цель открытого проекта VPP — создание свича/маршрутизатора L2/L3+ с множеством функций, включая полноценный NAT, с высокой производительностью обрабатывающего сетевые пакеты при использовании обычного процессора за счёт векторной обработки данных (эта технология уже используется в новых промышленных сетевых устройствах). Проект ведётся Cisco, Pantheon Technologies и другими.

Продукт работает на Intel DPDK. Этот фрэймворк позволяет использовать сетевую карту Intel в обход ядра операционной системы.

Продукт не является стабильным; все отчёты об ошибках и запросы функциональности принимаются кураторами. Разработчики будут благодарны за тестирование.

>>> Страница VPP

>>> Страница DPDK

>>> Список рассылки

>>> Подробности

 , , , ,

init_
()

GNOME on Wayland на Nvidia-блобе. История успеха

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

Итак, свершилось! Мне наконец-то удалось запустить Wayland-сессию Гнома на проприетарном драйвере Nvidia. Для тех, кто не в теме: начиная с версии драйвера 364.12, Nvidia реализовала в нём начальную поддержку Wayland, однако несовместимую с тем, что используется в Mesa. В Mesa применяется библиотека GBM - Generic Buffer Manager, аллокатор буферов изображений. Реализация Nvidia основана на расширениях EGLStreams и EGLDevice, являющихся кроссплатформенным открытым стандартом Khronos. В списке рассылки разработчиков Wayland, Nvidia представила патчи для композитного менеджера Weston, однако разработчики их не приняли и, можно сказать, послали Nvidia подальше. Зато эти патчи адаптировали для Mutter и Sway, но о качестве работы будет ниже. Nvidia же в прошлом году анонсировала новый аллокатор, разрабатываемый совместно с разработчиками Mesa, но с момента последней новости - тишина. Nvidia не хочет создавать что-то платформоспецифичное, так как ей проще поддерживать единую кодовую базу для всех ОС.

Поддержка EGLStreams обеспечена в GNOME 3.24, однако для этого, оконный менеджер Mutter должен быть собран с --enable-egl-device Как оказалось, в Fedora 26 он собран без этой опции, также из-за применения библиотеки GLvnd, получаются лютые тормоза и лаги мышки. Аналогично в Arch Linux.

Поэтому для тестов я выбрал альфа-версию Ubuntu 17.10. Итак, что для этого нужно проделать:

1) установить драйвер Nvidia (sudo apt install nvidia-375)
2) включить DRM/KMS (по умолчанию в блобе он выключен из-за недоделанности и проблем со SLI-конфигурациями). Для этого в /etc/default/grub, в секцию параметров ядра, добавляем строку nvidia-375-drm.modeset=1 Номер драйвера указывать только для Ubuntu! Признаком успешного запуска DRM/KMS является Xorg, запущенный от юзера (в этом можно убедиться в менеджере процессов)

По идее, если всё сделано правильно, но сразу после перезагрузки Гном должен запуститься на Wayland, однако меня встречало окно входа в систему, и сеанс с Wayland никак не грузился. Поэтому я переключился на пятую tty-консоль, и стартанул сессию командой dbus-run-session -- gnome-shell --display-server --wayland

И о чудо! Оно запустилось! Начну с приятных моментов. Отрисовка значительно быстрее, чем с блобом на иксах. Курсор не отстаёт от окна ни на пиксель, анимации плавненькие, ресайз окон не тормозит. Может немного лагануть меню приложений, но я грешу на старый тормозной HDD, на котором я всё тестировал. Flatpak-приложения работают, но не все. Видео работает без проблем. Собственно, на этом приятное заканчивается. Далее оглашаю список ограничений:

1) Первое и самое главное - не работает Xwayland. В большинстве приложений. Из иксовых приложений успешно запустились лишь Firefox, Clementine и Chromium, остальные падают в корку с ошибкой Could not initialize GLX Потому запуск возможен только нативных Wayland-приложений. Чтобы запустить что-то на Qt5, нужно добавить переменную окружения export QT_QPA_PLATFORM=wayland, но тут тоже есть неприятные моменты.

2) Не запускается панель управления Nvidia (потому на скринах её нет), не работают приложения, юзающие веб-камеру (правда я только Cheese запускал), и как следствие предыдущего пункта - не работает ни одна игра (кроме встроенных гномовских) или эмулятор игровых консолей.

3) Иногда грузит CPU на 100%. Баг широко известен в сети, но я не знаю что думает на этот счёт Nvidia. От апстрима Гнома ответа не дождался.

4) KMS работает частично, в частности переключение между виртуальным консолями происходит секунды 2, а возврат в графическую может проходить и все 5. На свободном драйвере всё происходит мгновенно. Да, если вдруг кто спросит - нет, KMS в блобе не даёт высокое разрешение в консоли. Нету драйвера для fbdev, хотя с efifb вроде как разрешение высокое.

5) Родная панель управления Гнома не работает в такой конфигурации, потому запускается её сильно кастрированный вариант (скрин ниже)

Итог: я не знаю почему в Mesa выбрали GBM вместо открытого стандарта. Ведь Нвидию, по сути, обвинить не в чем. В кое-то веки смогла в стандарты. Я не думаю что будут какие-либо серьёзные улучшения как работы блоба с EGLStreams, так и оконных менеджеров куда эти патчи добавили, ибо апрстрим не принял, и тестировать некому. Хотя посмотрим как оно будет. На данный момент вердикт - неюзабельно.

Ещё скриншоты:

Firefox и LibreOffice
Activities
SMplayer (Qt5) нативно в Wayland
Панель управления
Nautilus и Clementine

 , , , ,

Sunderland93
()

Gentoo парсинг cflags в ebuild

Форум — Admin

Нужно в ebuild посмотреть, стоит ли флаг -fomit-frame-pointer и выставить

GLOBALCMAKEARGS=(
DENABLE_OMIT_FRAME_POINTER=OFF/ON( в зависимости от того, найден ли -fomit-frame-pointer в CFLAGS.)

Как такое сделать?
megabaks Pinkbyte

 ,

ymuv
()

Как использовать tor «Правильно» или свой torify на setgid

Форум — Security

Просьба ногами не бить нигде не нашел похожего метода или утили

Всё на ваш страх и риск

Трафик на тор перенаправляем при помощи iptables Правила взял отсюда https://trac.torproject.org/projects/tor/wiki/doc/TransparentProxy Сделал фильтр по пользователям (убрал всю не OUTPUT цепочку к оставшимся правилам добавил фильтр по GID или UID на выбор) Получившийся скрипт

#!/bin/bash
#iptables_torify.bash

dns_port=9053
tor_port=9040
virt_addr="10.192.0.0/10"
non_tor="127.0.0.0/8 10.0.0.0/8 172.16.0.0/12 192.168.0.0/16 0.0.0.0/8 100.64.0.0/10 169.254.0.0/16 192.0.0.0/24 192.0.2.0/24 192.88.99.0/24 198.18.0.0/15 198.51.100.0/24 203.0.113.0/24 224.0.0.0/3"

RED='\033[0;31m'
NC='\033[0m'

if [[ "$UID" != "0" ]]; then
    echo -e "${RED}Нужен root!${NC}"
    exit 1
fi

if [[ "$1" == "add" ]]; then
    op="-A"
elif [[ "$1" == "del" ]]; then
    op="-D"
else
    echo -e "${RED}Неизвестная операция '$1'${NC}"
    exit 1
fi

if [[ "$2" == "uid" ]]; then
    if [[ ! "$3" =~ ^[0-9]+$ ]]; then
        echo -e "${RED}Неверный UID '$3'${NC}"
        exit 1
    fi
    filter="--uid-owner"
    owner="$3"
elif [[ "$2" == "gid" ]]; then
    if [[ ! "$3" =~ ^[0-9]+$ ]]; then
        echo -e "${RED}Неверный GID '$3'${NC}"
        exit 1
    fi
    filter="--gid-owner"
    owner="$3"
elif [[ "$2" == "user" ]]; then
    owner=`id -u "$3" 2>/dev/null`
    if [[ ! "$owner" =~ ^[0-9]+$ ]]; then
        echo -e "${RED}Пользователь '$3' не существует${NC}"
        exit 1
    fi
    filter="--uid-owner"
elif [[ "$2" == "group" ]]; then
    owner=`id -g "$3" 2>/dev/null`
    if [[ ! "$owner" =~ ^[0-9]+$ ]]; then
        echo -e "${RED}Пользователь '$3' не существует${NC}"
        exit 1
    fi
    filter="--gid-owner"
else
    echo -e "${RED}Неизвестный фильтр '$2'${NC}"
    exit 1
fi

iptables -t nat "$op" OUTPUT -d "$virt_addr" -p tcp -m tcp -m owner "$filter" "$owner" --tcp-flags FIN,SYN,RST,ACK SYN -j REDIRECT --to-ports "$tor_port"
iptables -t nat "$op" OUTPUT -p udp -m udp -m owner "$filter" "$owner" --dport 53 -j REDIRECT --to-ports "$dns_port"
for lan in $non_tor; do
    iptables -t nat "$op" OUTPUT -m owner "$filter" "$owner" -d "$lan" -j RETURN
done
iptables -t nat "$op" OUTPUT -m owner "$filter" "$owner" -o lo -j RETURN
iptables -t nat "$op" OUTPUT -p tcp -m tcp -m owner "$filter" "$owner" --tcp-flags FIN,SYN,RST,ACK SYN -j REDIRECT --to-ports "$tor_port"

iptables "$op" OUTPUT -m owner "$filter" "$owner" -p tcp -m tcp --tcp-flags FIN,SYN,RST,ACK SYN -m state --state NEW -j ACCEPT
for lan in $non_tor; do
    iptables "$op" OUTPUT -m owner "$filter" "$owner" -d "$lan" -j ACCEPT
done
iptables "$op" OUTPUT -m owner "$filter" "$owner" -d 127.0.0.1/32 -o lo -j ACCEPT
iptables "$op" OUTPUT -m owner "$filter" "$owner" -d 127.0.0.1/32 -p tcp -m tcp --dport "$tor_port" --tcp-flags FIN,SYN,RST,ACK SYN -j ACCEPT
iptables "$op" OUTPUT -m owner "$filter" "$owner" -d 127.0.0.1/32 -p udp -m udp --dport "$dns_port" -j ACCEPT
iptables "$op" OUTPUT -m owner "$filter" "$owner" -j DROP
Например sudo iptables_torify.bash add group torify перенаправит трафик всех пользователей с основной группой torify на tor sudo iptables_torify.bash add user myname весь трафик пользователя myname на tor
#/etc/tor/torrc
VirtualAddrNetworkIPv4 10.192.0.0/10
AutomapHostsOnResolve 1
TransPort 9040
DNSPort 9053
Настраиваем пользователя torify
su
useradd torify -m
iptables_torify.bash add group torify
iptables-save >> "/etc/iptables/iptables.rules"
systemctl enable iptables.service
systemctl enable tor
reboot
Залогинившись torify'ем весь наш трафик идет через тор и мы этому (без root) не можем воспрепятствовать (уже хорошо), но хотелось бы без лишних нажатий на клавиатуру Пишем небольшой SUID скрипт на C меняющий GID текущего пользователя на GID пользователя «torify» и запускающий что ему сказали (по аналогии с sudo)
#setgid_torify.cpp
#include <cstdlib>
#include <unistd.h>
#include <string>
#include <cstring>
#include <cassert>
#include <cstdio>

using namespace std;

string e(const char *s) {
    string res;
    for (size_t i = 0, l = strlen(s); i < l; ++i) {
        if(s[i] == '\'') res += "'\\''";
        else res.push_back(s[i]);
    }
    return res;
}

uint32_t id(const char *s) {
    FILE *p = popen(s, "r");
    assert(p);
    char ch;
    uint32_t i = 0;
    do {
        ch = fgetc(p);
        if (ch >= '0' && ch <= '9') i = i * 10 + (ch - '0');
    } while(ch != EOF);
    pclose(p);
    assert(i != 0);
    return i;
}

int main(int argc, const char *argv[]) {
    string s;
    for (int i = 1; i < argc; ++i) {
        s.push_back('\'');
        s += e(argv[i]);
        s.push_back('\'');
        if (i + 1 < argc) s.push_back(' ');
    }
    uint32_t torify_gid = id("id -g torify");
    setgid(torify_gid);
    setuid(getuid());
    if (getgid() == torify_gid)
        return system(s.c_str());
    else
        printf("setgid_torify: failed to setgid\n");
    return 1;
}
g++ setgid_torify.cpp -o setgid_torify -O2 -Wall
sudo chown root:root setgid_torify
sudo chmod 4755 setgid_torify
# Если кто не умеет
Итог (теория) setgid_torify chromium --incognito запускает chromium весь tcp и dns трафик которого идет через tor, весь остальной «дропается» Итог (практика) заходим на browserleaks.com несмотря на то что flash полностью рабочий, «flash leak» не определяет наш настоящий ip (пишет торовский), webrtc leak аналогично

 

drjerk
()

Книги и учебные ресурсы по машинному обучению

Форум — General

Список книг, видео и курсов по машинному обучению и математике, всё на русском языке. Большая, качественная подборка. Почти все pdf'ки книг гуглятся. https://ru.stackoverflow.com/a/683632/1084

 , , ,

mag1ck
()

TOR и Маршрутизация трафика

Форум — Admin

Недавно пробовал завернуть весь траф в TOR, всё успешно получилось, опирался на эту статью https://cryptopunks.org/article/forward all the traffic to tor/

Вопрос заключается в следующем, как сделать так что бы в тор уходил только onion трафик, а остальное уходило дальше.

Делал всё на Debian 8.

Спасибо за ответы!

 , ,

xce
()

Systemd-networkd в Network Namespace.

Форум — Admin

Никак не могу сообразить, как запускать networkd-unit-ы в network namespace-ах?
Т.е. весь трафик должен идти в созданный ns vpn0, внутри которого должен быть интерфейс enp3s0 с выходом в сеть.
Можно конечно сделать без networkd с помощью говна и палок, но не очень хочется.
Файлы unit-ов.
cat /etc/systemd/network/wired.network

[Match]
Name=enp3s0

[Network]
# IPv6
Address=2a01:***:***::55/64
Gateway=fe80::1


cat /etc/systemd/system/wireguard.service

[Unit]
Description=WireGuard Client

[Service]
Type=oneshot
RemainAfterExit=yes
ExecStart=/bin/ip netns add vpn0
ExecStart=/bin/ip link set enp3s0 down
ExecStart=/bin/ip link set enp3s0 netns vpn0
ExecStart=/bin/ip -n vpn0 link add wg0 type wireguard
ExecStart=/bin/ip -n vpn0 link set wg0 netns 1

# Здесь нужно как-то запустить networkd-unit внутри network namespace, чтобы был выход в интернет.

ExecStart=/bin/ip address add fc00::10/64  dev wg0
ExecStart=/bin/ip address add 192.168.***.5/24 dev wg0
ExecStart=/bin/wg setconf wg0 /etc/wireguard/client.conf
ExecStart=/bin/ip link set mtu 1400 dev wg0
ExecStart=/bin/ip link set wg0 up 
ExecStart=/bin/ip route add default dev wg0
ExecStart=/bin/ip -6 route add default dev wg0

ExecStart=/bin/dnscrypt-proxy /etc/dnscrypt-proxy.conf

ExecStop=/bin/ip -n vpn0 link set enp3s0 down
ExecStop=/bin/ip -n vpn0 link set enp3s0 netns 1
ExecStop=/bin/ip link del wg0
ExecStop=/bin/ip netns del vpn0
ExecStop=/bin/killall dnscrypt-proxy

[Install]
WantedBy=multi-user.target

Я тут пока что прикинул, а что если запускать как-то так?
ExecStart=/bin/ip netns exec systemctl start systemd-networkd
Или есть более лучшее решение?
А я пока что пожалуй проверю вариант с запуском networkd через ExecStart...

 , ,

Sorcus
()

Создание пользователя полностью без прав для SSH proxy через putty

Форум — Security

В свете последних событий по блокировки всё и вся в России было принято решение скинуться и купить VPS на пятерых знакомых, и создать простой гproxy через SSH туннель. Инструкция как это сделать используя putty есть в интернете в большом количестве. Единственное что не написано это как сделать настройки максимально безопасно для самого VPS'a.

Хотелось бы сделать пользователя полностью без прав, чтобы при подключении к серверу, пользователь не мог прочитать никакие настройки и изменить какие либо файлы. Желательно чтобы вообще ничего не смог сделать, ему в принципе делать ничего и не нужно.

максимум что удалось сделать, чтобы все работало, это создать пользователя без группы: # useradd -m -s /bin/bash -g nogroup -G nogroup anastasia

Далее в папку /home/anastasia/.ssh помещаем файл ключ и авторизуемся по ключу, а не по паролю.

Варианты создать VPN, не рассматриваются т.к. нужно только браузер пустить в обход блокировке, а не всю систему целиком.

На сколько такой вариант настройки VPS и создания пользователя можно считать безопасным и есть ли варианты как-то еще обрезать права пользователю, но при условии чтобы всё работало как proxy?

 , , ,

AnastasiaM
()

Как блокируют доступ к сайтам (Ukrainian-way)

Форум — Security

Киберполиция Украины опубликовала доходчивое руководство для провайдеров о том как блокировать доступ к определённым вебресурсам.

-- начало цитаты --

( Руководство по блокированию сайтов )


-- конец цитаты --


>>> Архивная копия #1
>>> Архивная копия #2

Что скажете?

 , ,

atsym
()

Настройка OpenVPN только для определенных сайтов

Форум — Admin

В связи с блокировками соц сетей, решил попробовать настроить обход. На сервере крутится убунта, с установленным с помощью скрипта OpenVPN: https://github.com/Nyr/openvpn-install

Все отлично завелось, но стал вопрос с использованием впн только для нескольких сайтов, и обычном соединением для других. Конечно это можно реализовать на роутере, но хотелось бы такую фичу и за его пределами.

server.conf

port 1194
proto tcp
dev tun
sndbuf 0
rcvbuf 0
ca ca.crt
cert server.crt
key server.key
dh dh.pem
tls-auth ta.key 0
topology subnet
server 10.8.0.0 255.255.255.0
ifconfig-pool-persist ipp.txt
push "redirect-gateway def1 bypass-dhcp"
push "dhcp-option DNS 8.8.8.8"
push "dhcp-option DNS 8.8.4.4"
keepalive 10 120
cipher AES-256-CBC
comp-lzo
user nobody
group nogroup
persist-key
persist-tun
status openvpn-status.log
verb 3
crl-verify crl.pem

client.ovpn

client
dev tun
proto tcp
sndbuf 0
rcvbuf 0
remote xxx.xxx.xxx.xxx 1194
resolv-retry infinite
nobind
persist-key
persist-tun
remote-cert-tls server
cipher AES-256-CBC
comp-lzo
setenv opt block-outside-dns
key-direction 1
verb 3

Погуглив, узнал что на стороне клиента можно задать следующее:

route-nopull
route 54.82.83.140 #Сервис проверки ip

Однако после этого все перестает загружаться, пингуется только сервер, остальное «Ping request could not find host ya.ru. Please check the name and try again.» Пробовал еще несколько вариантов из сети, но тщетно. Тестировал под двумя пк с виндой, у планшета под ios на удивление все заработало.

 , ,

Magi-max
()

Ситуация с Wayland: факты о X и Wayland.

Новости — Open Source
Группа Open Source

Это вольный перевод статьи, намедни размещённой на phoronix. Оринальная статья — обзор недостатков, их исправлений и преимуществ между X и Wayland. Её написал Eric Griffith, при участии Daniel Stone, специально для ресурса phoronix. Работа собрана по кусочкам из презентаций Keith Packard, David Airlie, Kristian Høgsberg, из страниц про X11, X12, Wayland в вики и на freedesktop.org, из прямых интервью с разработчиками.

Оригинал выпущен под Creative Commons версия 3, с указанием авторства; перевод доступен на тех же условиях (с указанием на авторов оригинала, как мне кажется).

( читать дальше... )

>>> Подробности

 ,

quiet_readonly
()

MPLS в Linux: тестирование

Форум — Admin

Короче, поднял я тестовый MPLS по схеме:

modprobe mpls_router
modprobe mpls_gso
modprobe mpls_iptunnel
sysctl -w net.mpls.conf.lo.input=1
sysctl -w net.mpls.platform_labels=1048575
ip link add veth0 type veth peer name veth1
ip link add veth2 type veth peer name veth3
sysctl -w net.mpls.conf.veth0.input=1
sysctl -w net.mpls.conf.veth2.input=1
ifconfig veth0 10.3.3.1/24 up
ifconfig veth2 10.4.4.1/24 up
ip netns add host1
ip netns add host2
ip link set veth1 netns host1
ip link set veth3 netns host2
ip netns exec host1 ifconfig veth1 10.3.3.2/24 up
ip netns exec host2 ifconfig veth3 10.4.4.2/24 up
ip netns exec host1 ip route add 10.10.10.2/32 encap mpls 112 via inet 10.3.3.1
ip netns exec host2 ip route add 10.10.10.1/32 encap mpls 111 via inet 10.4.4.1
ip -f mpls route add 111 via inet 10.3.3.2
ip -f mpls route add 112 via inet 10.4.4.2
ip netns exec host1 bash
ifconfig lo up
ip addr add 10.10.10.1/32 dev lo
ip netns exec host2 bash
ifconfig lo up
ip addr add 10.10.10.2/32 dev lo
ip netns exec host1 bash

Тестируем. 1. Вначале ping'ом:
Host1:
root@ne-vlezay80:~# ping 10.10.10.2 -I 10.10.10.1
PING 10.10.10.2 (10.10.10.2) from 10.10.10.1 : 56(84) bytes of data.
64 bytes from 10.10.10.2: icmp_seq=1 ttl=63 time=0.043 ms
64 bytes from 10.10.10.2: icmp_seq=2 ttl=63 time=0.038 ms
64 bytes from 10.10.10.2: icmp_seq=3 ttl=63 time=0.049 ms
64 bytes from 10.10.10.2: icmp_seq=4 ttl=63 time=0.048 ms
64 bytes from 10.10.10.2: icmp_seq=5 ttl=63 time=0.048 ms
64 bytes from 10.10.10.2: icmp_seq=6 ttl=63 time=0.047 ms
64 bytes from 10.10.10.2: icmp_seq=7 ttl=63 time=0.044 ms
64 bytes from 10.10.10.2: icmp_seq=8 ttl=63 time=0.046 ms
^C
--- 10.10.10.2 ping statistics ---
8 packets transmitted, 8 received, 0% packet loss, time 7174ms
rtt min/avg/max/mdev = 0.038/0.045/0.049/0.006 ms
Host2:
root@ne-vlezay80:~# ping 10.10.10.1 -I 10.10.10.2
PING 10.10.10.1 (10.10.10.1) from 10.10.10.2 : 56(84) bytes of data.
64 bytes from 10.10.10.1: icmp_seq=1 ttl=63 time=0.040 ms
64 bytes from 10.10.10.1: icmp_seq=2 ttl=63 time=0.037 ms
64 bytes from 10.10.10.1: icmp_seq=3 ttl=63 time=0.037 ms
64 bytes from 10.10.10.1: icmp_seq=4 ttl=63 time=0.042 ms
64 bytes from 10.10.10.1: icmp_seq=5 ttl=63 time=0.042 ms
64 bytes from 10.10.10.1: icmp_seq=6 ttl=63 time=0.045 ms
64 bytes from 10.10.10.1: icmp_seq=7 ttl=63 time=0.045 ms
64 bytes from 10.10.10.1: icmp_seq=8 ttl=63 time=0.038 ms
^C
--- 10.10.10.1 ping statistics ---
8 packets transmitted, 8 received, 0% packet loss, time 7176ms
rtt min/avg/max/mdev = 0.037/0.040/0.045/0.008 ms
Ну, что? Потестируем iperf'ом:
Host1:
iperf3 -s -B 10.10.10.2 -D
Host2:
root@ne-vlezay80:~# ip netns exec host1 bash
root@ne-vlezay80:~# iperf3 -c 10.10.10.2 -B 10.10.10.1   
Connecting to host 10.10.10.2, port 5201
[  4] local 10.10.10.1 port 57039 connected to 10.10.10.2 port 5201
[ ID] Interval           Transfer     Bandwidth       Retr  Cwnd
[  4]   0.00-1.00   sec  2.00 GBytes  17.2 Gbits/sec    0   1.95 MBytes       
[  4]   1.00-2.00   sec  2.01 GBytes  17.2 Gbits/sec    0   1.95 MBytes       
[  4]   2.00-3.00   sec  2.01 GBytes  17.2 Gbits/sec    0   1.95 MBytes       
[  4]   3.00-4.00   sec  2.01 GBytes  17.3 Gbits/sec    0   1.95 MBytes       
[  4]   4.00-5.00   sec  2.01 GBytes  17.2 Gbits/sec    0   1.95 MBytes       
[  4]   5.00-6.00   sec  2.01 GBytes  17.2 Gbits/sec    0   1.95 MBytes       
[  4]   6.00-7.00   sec  2.01 GBytes  17.3 Gbits/sec    0   1.95 MBytes       
[  4]   7.00-8.00   sec  2.01 GBytes  17.3 Gbits/sec    0   1.95 MBytes       
[  4]   8.00-9.00   sec  2.01 GBytes  17.3 Gbits/sec    0   1.95 MBytes       
[  4]   9.00-10.00  sec  2.01 GBytes  17.3 Gbits/sec    0   1.95 MBytes       
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bandwidth       Retr
[  4]   0.00-10.00  sec  20.1 GBytes  17.3 Gbits/sec    0             sender
[  4]   0.00-10.00  sec  20.1 GBytes  17.3 Gbits/sec                  receiver

iperf Done.

root@ne-vlezay80:~# iperf3 -c 10.10.10.2 -B 10.10.10.1 -b -b 1tb
Connecting to host 10.10.10.2, port 5201
[  4] local 10.10.10.1 port 57609 connected to 10.10.10.2 port 5201
[ ID] Interval           Transfer     Bandwidth       Retr  Cwnd
[  4]   0.00-1.00   sec  2.11 GBytes  18.1 Gbits/sec    0   1.95 MBytes       
[  4]   1.00-2.00   sec  2.11 GBytes  18.1 Gbits/sec    0   1.95 MBytes       
[  4]   2.00-3.00   sec  2.11 GBytes  18.1 Gbits/sec    0   1.95 MBytes       
[  4]   3.00-4.00   sec  2.11 GBytes  18.1 Gbits/sec    0   1.95 MBytes       
[  4]   4.00-5.00   sec  2.11 GBytes  18.1 Gbits/sec    0   1.95 MBytes       
[  4]   5.00-6.00   sec  2.11 GBytes  18.1 Gbits/sec    0   1.95 MBytes       
[  4]   6.00-7.00   sec  2.11 GBytes  18.1 Gbits/sec    0   1.95 MBytes       
[  4]   7.00-8.00   sec  2.11 GBytes  18.1 Gbits/sec    0   1.95 MBytes       
[  4]   8.00-9.00   sec  2.11 GBytes  18.1 Gbits/sec    0   1.95 MBytes       
[  4]   9.00-10.00  sec  2.11 GBytes  18.2 Gbits/sec    0   1.95 MBytes       
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bandwidth       Retr
[  4]   0.00-10.00  sec  21.1 GBytes  18.1 Gbits/sec    0             sender
[  4]   0.00-10.00  sec  21.1 GBytes  18.1 Gbits/sec                  receiver

iperf Done.


tcpdump:

root@ne-vlezay80:~# tcpdump -i veth2 -n
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on veth2, link-type EN10MB (Ethernet), capture size 262144 bytes
07:02:36.886598 IP 10.10.10.1 > 10.10.10.2: ICMP echo request, id 1677, seq 1, length 64
07:02:36.886617 MPLS (label 111, exp 0, [S], ttl 64) IP 10.10.10.2 > 10.10.10.1: ICMP echo reply, id 1677, seq 1, length 64
07:02:37.895065 IP 10.10.10.1 > 10.10.10.2: ICMP echo request, id 1677, seq 2, length 64
07:02:37.895081 MPLS (label 111, exp 0, [S], ttl 64) IP 10.10.10.2 > 10.10.10.1: ICMP echo reply, id 1677, seq 2, length 64

root@ne-vlezay80:~# tcpdump -i veth0 -n
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on veth0, link-type EN10MB (Ethernet), capture size 262144 bytes
07:03:30.368146 MPLS (label 112, exp 0, [S], ttl 64) IP 10.10.10.1 > 10.10.10.2: ICMP echo request, id 1679, seq 1, length 64
07:03:30.368172 IP 10.10.10.2 > 10.10.10.1: ICMP echo reply, id 1679, seq 1, length 64
07:03:31.399057 MPLS (label 112, exp 0, [S], ttl 64) IP 10.10.10.1 > 10.10.10.2: ICMP echo request, id 1679, seq 2, length 64
07:03:31.399080 IP 10.10.10.2 > 10.10.10.1: ICMP echo reply, id 1679, seq 2, length 64
07:03:32.423182 MPLS (label 112, exp 0, [S], ttl 64) IP 10.10.10.1 > 10.10.10.2: ICMP echo request, id 1679, seq 3, length 64
07:03:32.423210 IP 10.10.10.2 > 10.10.10.1: ICMP echo reply, id 1679, seq 3, length 64
07:03:33.447195 MPLS (label 112, exp 0, [S], ttl 64) IP 10.10.10.1 > 10.10.10.2: ICMP echo request, id 1679, seq 4, length 64
07:03:33.447214 IP 10.10.10.2 > 10.10.10.1: ICMP echo reply, id 1679, seq 4, length 64
07:03:34.471219 MPLS (label 112, exp 0, [S], ttl 64) IP 10.10.10.1 > 10.10.10.2: ICMP echo request, id 1679, seq 5, length 64
07:03:34.471239 IP 10.10.10.2 > 10.10.10.1: ICMP echo reply, id 1679, seq 5, length 64

Как видим, в Linux MPLS работает довольно таки не плохо, но нехватает:
*VPLS
*MPLS в netfilter для фильтрации mpls-пакетов на P уровне. :D
А так впринцепе, всё работает.

В случае чего для стыка с провайдером хватит. Вот связанные проекты: https://frrouting.org/ https://github.com/FRRouting/frr/pull/343

Кстати, вот ifconfig:

root@ne-vlezay80:~# ifconfig
lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:2 errors:0 dropped:0 overruns:0 frame:0
          TX packets:2 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:100 (100.0 B)  TX bytes:100 (100.0 B)

veth1     Link encap:Ethernet  HWaddr d2:60:95:e8:a4:d6  
          inet addr:10.3.3.2  Bcast:10.3.3.255  Mask:255.255.255.0
          inet6 addr: fe80::d060:95ff:fee8:a4d6/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:1047404 errors:0 dropped:0 overruns:0 frame:0
          TX packets:2164674 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:22610878516 (21.0 GiB)  TX bytes:104546390092 (97.3 GiB)

Самое прикольное то, что некакой фрагментации нет))

 , , ,

ne-vlezay
()

Софт для виртуальных туров

Форум — Talks

cast dk-

Знаю ты занимаешься созданием виртуальных туров. Может подскажешь, есть какой опенсорсный софт для создания виртуальных панорам?

 

Siado
()

Живые обои для рабочего стола

Форум — Talks

Нашел сайт, который представляет собой небольшой агрегатор веб-камер, расположенных в различных живописных местах Земли. Их не так много, но они каждые 5 минут генерят достаточно высококачественные фотографии. Кроме того, у этого сайта есть открытое API, благодаря которому можно сделать живые обои, меняющиеся в зависимости от времени суток.
Покажу пример.
Для начала узнаем ID камеры, фото с которой хотим получить. Для этого заходим сюда:

http://api.deckchair.com/v1/cameras
Он возвращает здоровенный массив. Для навигации пользуемся поиском по странице. Нас интересует значение поля {_id} Чтобы получить последнее фото с камеры заходим по этому адресу:
http://api.deckchair.com/v1/viewer/camera/:id
Вместо :id вписываем ID камеры, которые мы узнали из предыдущего пункта. Например, для моего любимого Парижа ссылка будет выглядеть вот так:
http://api.deckchair.com/v1/viewer/camera/5568862a7b28535025280c72
Теперь создаем в любом месте жесткого диска новый каталог. Открываем crontab -e и пишем:
*/5 * * * * wget -O ~/live_wallpaper/wallpaper.jpg http://api.deckchair.com/v1/viewer/camera/5568862a7b28535025280c72
Cron будет каждые 5 минут выкачивать последнее фото с камеры и сохранять его под именем wallpaper.jpg. Теперь нужно добиться от вашего DE, чтобы он каждые 5 минут загружал новые обои. Тут я четких инструкций дать не смогу, т.к у всех разные DE. Но полагаю, что это не так уж сложно.

 ,

Rinaldus
()

Помогите починить dsdt

Форум — Admin

Помогите собрать dsdt без ошибок. Сам уже замучился разбираться в этом asl, жутко странный язык, на русском ничего по нему не нашел, а по-английски не готов читать. Ошибки какие-то не типичные. Также не понятно, как asus собрал dsdt интеловским компилятором 2012 года, если у меня он выдает 5 ошибок (может декомпилируется с ошибками?).

aml: http://rgho.st/8ZqBGGyLn

asl: http://rgho.st/8jJbgdf9Y

Декомпиляция:

Intel ACPI Component Architecture
ASL+ Optimizing Compiler version 20160212-64
Copyright (c) 2000 - 2016 Intel Corporation

Input file dsdt.dat, Length 0x161BD (90557) bytes
ACPI: DSDT 0x0000000000000000 0161BD (v02 _ASUS_ Notebook 00000012 INTL 20120711)
Pass 1 parse of [DSDT]
Pass 2 parse of [DSDT]
Parsing Deferred Opcodes (Methods/Buffers/Packages/Regions)

Parsing completed

Found 18 external control methods, reparsing with new information
Pass 1 parse of [DSDT]
Pass 2 parse of [DSDT]
Parsing Deferred Opcodes (Methods/Buffers/Packages/Regions)

Parsing completed
Disassembly completed
ASL Output:    dsdt.dsl - 750692 bytes
Обратная компиляция:
Intel ACPI Component Architecture
ASL+ Optimizing Compiler version 20160212-64
Copyright (c) 2000 - 2016 Intel Corporation

Compiler aborting due to parser-detected syntax error(s)
dsdt.dsl   2399:                 Zero
Error    6126 -                    ^ syntax error, unexpected PARSEOP_ZERO

dsdt.dsl   2483:                         Zero
Error    6126 -                            ^ syntax error, unexpected PARSEOP_ZERO

dsdt.dsl  12338:         }
Error    6126 -         ^ syntax error, unexpected '}'

dsdt.dsl  21771:                 Local1 = (0x0A - Local0)
Error    6126 -                      ^ syntax error, unexpected PARSEOP_LOCAL1

dsdt.dsl  24058: 
Error    6126 - syntax error, unexpected $end and premature End-Of-File

ASL Input:     dsdt.dsl - 24058 lines, 750692 bytes, 11855 keywords
Hex Dump:      dsdt.hex - 203 bytes

Compilation complete. 5 Errors, 0 Warnings, 0 Remarks, 0 Optimizations
Ноутбук asus x555ld. Кто в этом разбирается гляньте пожалуйста.

 ,

Simarc
()

Полное управления виртуализированной ОС через web-приложение.

Форум — Admin

Добрый вечер. Появилась хотелка завиртуалить все it ресурсы на один сервер с помощью kvm/openvz/etc, но вот не могу найти инфу о том, как управлять виртуальной системой на стадии загрузки, например потребуется удалённо попасть в rescue mode. Есть ли какое то веб приложение позволяющее делать подобное?

 ,

Sherman
()

eGPU адаптер для Lenovo Thinkpad x200t

Форум — Talks

Прикупил сабжевый ноут. Все прекрасно, только вместо видеокарты в нем GMA 4500. По слухам, можно прикупить адаптер ExpressCard на PCI-E слот, поставить какой-нибудь радеон и одновременно наслаждаться свободкой, аппаратным декодированием видео и максимальным графоном восьмилетней давности.

Сначала нашел вот эту тему: http://forum.notebookreview.com/threads/diy-egpu-experiences.418851/ Предлагают покупать адаптер PE4x за ~$100. Перспектива потратить на него больше денег, чем на сам ноут, не радует. Мало того, сейчас на сайте производителя цены почему-то еще выше (падают объемы производства?)

Потом обнаружил нечто под названием EXP GDC. Тут https://www.techinferno.com/index.php?/forums/topic/5194-exp-gdc-beastares-v7... предупреждают о проблемах с сигналом ExpressCard у 6-й версии, но в основном отзывы положительные. Продается в разных магазинах по разным ценам, в среднем ~$50, возможно, от разных производителей, много где существенно дороже, но со скидкой, которая почему-то заканчивается послезавтра (праздники или развод с целью заставить немедленно купить?) Taobao, Aliexpress, Ebay, Gearbest, даже на украинской Olx есть б/у, но дороже новых. Где стоит брать - пока не понял.

Есть ли здесь кто-то с опытом приобретения и использования этих устройств? Делитесь историями (не)успеха.

 ,

shatsky
()

Debian 7. Nvidia. Смена разрешения экрана.

Форум — Desktop

Суть проблемы следующая: 1. Установлен Debian 7 (stable ветка, за исключением приложения darktable, взятого из testing; через dpkg установлен steam). Ядро версии 3.2. 2. Видеокарта NVidia GT 440 с драйвером nvidia-glx 304.88-1; монитор Samsung SyncMaster T190 (подключен через d-sub).

В меню nvidia-settings отображаются только 3 доступных разрешения, в основном с соотношением сторон 4:3 (монитор 16:10), родного разрешения монитора или любого другого с нужным соотношением нет.

xrandr, соответственно, показывает, что доступны тоже только этих 3 разрешения. Попытки напрямую прописать нужное мне разрешение в «xorg.cong», «/xorg.conf.d/20-nvidia.conf» или поменять его путём добавления нового режима через xrandr (посредством добавления строчек выводимых, например, gtf) к положительному результату не привели.

Кто нибудь сталкивался с подобным и удалось ли решить подобную проблему без перехода в testing/unstble?

Пока что только наткнулся на тему, где пишут, что это такая «фича» в новых драйверах nvidia (начиная с версий 3xx). Там же приводят комментарий из кода wine:

    + /* Recent (304.64, possibly earlier) versions of the nvidia driver only
    + * report a DFP's native mode through RandR 1.2 / 1.3. Standard DMT modes
    + * are only listed through RandR 1.0 / 1.1. This is completely useless,
    + * but NVIDIA considers this a feature, so it's unlikely to change. The
    + * best we can do is to fall back to RandR 1.0 and encourage users to
    + * consider more cooperative driver vendors when we detect such a
    + * configuration. */
Получается, что решить проблему можно только переходом на более старые версии RandR?

 , ,

grem
()

Gentoo, systemd, sudo и управление питанием

Форум — General

Ставлю себе на рабочий ноутбук Gentoo. Всё чётко по Handbook собрал базовую систему. Вместо OpenRC поставил Systemd. Работает как часы.

Захотелось дать своему пользователю выключать, перезагружать ноутбук из консоли. Прописал в конфигурацию sudo:

Cmnd_Alias POWER = /usr/bin/systemctl poweroff, \
                   /usr/bin/systemctl halt, \
                   /usr/bin/systemctl reboot

hamsteri ALL=(ALL) ALL
hamsteri ALL=(ALL) NOPASSWD: POWER

Проблема: не хочет выключать и перезагружать:

$ systemctl reboot
Failed to execute operation: Access denied
Failed to start reboot.target: Access denied

Если дать права администратора, то работает:

$ sudo systemctl reboot
Подскажите, куда копать и как это поправить.

 , ,

Hamsteri
()

Тиринг достал, помогите убрать

Форум — Desktop

Есть ноут мси с процом с встроенным графоном, н-видией 840m, дебианом 8.6
Установлены шмель и дрова инвидии - bumblebee-nvidia из реп. Сразу предупреждаю, что у меня нет файла иксорг конф, а есть /etc/bumblebee/xorg.conf.nvidia, там:

Section "ServerLayout"
    Identifier  "Layout0"
    Option      "AutoAddDevices" "false"
    Option      "AutoAddGPU" "false"
EndSection

Section "Device"
    Identifier  "DiscreteNvidia"
    Driver      "nvidia"
    VendorName  "NVIDIA Corporation"

#   If the X server does not automatically detect your VGA device,
#   you can manually set it here.
#   To get the BusID prop, run `lspci | egrep 'VGA|3D'` and input the data
#   as you see in the commented example.
#   This Setting may be needed in some platforms with more than one
#   nvidia card, which may confuse the proprietary driver (e.g.,
#   trying to take ownership of the wrong device). Also needed on Ubuntu 13.04.
#   BusID "PCI:01:00:0"

#   Setting ProbeAllGpus to false prevents the new proprietary driver
#   instance spawned to try to control the integrated graphics card,
#   which is already being managed outside bumblebee.
#   This option doesn't hurt and it is required on platforms running
#   more than one nvidia graphics card with the proprietary driver.
#   (E.g. Macbook Pro pre-2010 with nVidia 9400M + 9600M GT).
#   If this option is not set, the new Xorg may blacken the screen and
#   render it unusable (unless you have some way to run killall Xorg).
    Option "ProbeAllGpus" "false"

    Option "NoLogo" "true"
    Option "UseEDID" "false"
    Option "UseDisplayDevice" "none"


EndSection

Section "Screen"
    Identifier "Default Screen"
    Device "DiscreteNvidia"
EndSection
Что туда поставить, чтобы тиринг умер?

 , ,

PingVin144
()