Метка: linux

Rocky Linux 8.4 Open vSwitch

Прикручивать к системе буду через network-scripts, хоть и legacy, но просто, быстро и без бубна. А NetworkManager вообще выключу к х.ям. И вообще это заметка для себя, потому что OVSDHCPINTERFACES и OVSBOOTPROTO как-то не сразу обнаружилось, а надо было.

Устанавливаем пакеты, в два этапа

dnf install -y centos-release-nfv-openvswitch
dnf install -y network-scripts openvswitch2.13

Запускаем OpenVSwitch

systemctl enable --now openvswitch

Добавляем OVS свитч ovs-br0, порт в него добавим позже, иначе отвалится сеть

ovs-vsctl add-br ovs-br0

Создаем файлы конфигурации свитча

cat > /etc/sysconfig/network-scripts/ifcfg-ovs-br0 << EOF
DEVICE=ovs-br0
BOOTPROTO=dhcp 
ONBOOT=yes
TYPE=OVSBridge
PEERDNS=yes
IPV6INIT=no
# Static IP
IPADDR=192.168.0.2
NETMASK=255.255.255.0
GATEWAY=192.168.0.1
DNS1=192.168.0.1
DNS2=1.1.1.1
#Or DHCP Config, BOOTPROTO должно быть none
OVSBOOTPROTO=dhcp
OVSDHCPINTERFACES=enp0s3
EOF

И его порта,

cat > /etc/sysconfig/network-scripts/ifcfg-enp0s3 << EOF
DEVICE=enp0s3
ONBOOT=yes
TYPE=OVSPort
DEVICETYPE=ovs
OVS_BRIDGE=ovs-br0
EOF

Выключаем NetworkManager и заводим sys-v скрипты

systemctl disable NetworkManager
systemctl enable network

Вот тут кончится сеть или перезагружать компьютер через минутку (shutdown -r +1)

ovs-vsctl add-port ovs-br0 enp0s3

или выполнить в скрипте

systemctl stop NetworkManager
systemctl start network

Ну а дальше:
https://habr.com/ru/post/242741/

UART размер экрана

Для общения через UART с железками (avr, stm32 и прочими) в основном использую GNU screen:

$ screen /dev/tty.ubserial 9600

А вот что-то дернуло, раскрасить вывод микроконтроллера и раскрасил (не мудрено, печатаем что-то вроде \033[31m и вперед, ну только цвета меняем). А потом поехало: захотелось печатать в разных местах экрана (\033[y;xH), а вот как напечатать в центре? Надо же знать размер экрана, а он у меня (да и у всех) каждый раз разный.
Долго возился, выяснил, что screen отдавать размер окна (\033[18t) не умеет. Зато DCS передает напрямую терминалу из которого запущен: вот и нашелся грязный хак: оборачиваем запрос размера в ESC-P последовательность, и вот уже знаем размер экрана.
Печатаем хитрую строку:

\033P\033[18t033\

и получаем ответ:

\[8;31;163t

31 строка, 163 колонки, а 8 — это номер CSI-репорта. Он всегда такой.

вот тут большой список похоже что вообще всех ESC-последовательностей которые терминалы поддерживают: ttssh2.osdn.jp

P.S.
Ну а бонусом — таким же способом можно поставить заголовок окна который screen ставить умеет только через жопу.

\033P\033]0;New Window Title\a\033\\