Рубрики
orangepi

orangepi cm4 / make driver peraso

Links:

# https://perasoinc.com/perspectus-series/
# http://www.orangepi.org/orangepiwiki/index.php/Orange_Pi_CM4
# https://device.report/manual/7926893

Собственно где брать heders-linux debian bookworm:

0.Пере установкой хедеров убедимся что все пакеты для сборки стоят:
apt update
apt upgrade -y 
apt install git make gcc linux-libc-dev pkg-config libncurses-dev flex bison  libssl-dev libelf-dev dwarves rsync bc fakeroot build-essential  xz-utils  libncurses5-dev
apt install gcc-arm-linux-gnueabihf

1. Из документации по orangepi хедеры на текущее ядро лежат в каталоге /opt
Проверив этот каталог мы увидим deb файл, который просто нужно доставить в систему:
dpkg -i /opt/linux-headers-legacy-rockchip-rk356x_1.x.x_arm64.deb

2. После установки у нас появятся в каталоге /usr/src хедеры ядра
ls /usr/src

Так же из документации orangepi есть пример как собирать костюмный модуль ядра:

#0. Создаем код модуля ядра
cat >  hello.c << "EOF"
#include 
#include 

static int hello_init(void)
{
printk("Hello Orange Pi -- init\n");
return 0;
}
static void hello_exit(void)
{
printk("Hello Orange Pi -- exit\n");
return;
}

module_init(hello_init);
module_exit(hello_exit);
MODULE_LICENSE("GPL");
EOF

#1. Создаем Makefaile для сборки модуля
cat > Makefile << "EOF"
ifneq ($(KERNELRELEASE),)
obj-m:=hello.o
else
KDIR :=/lib/modules/$(shell uname -r)/build
PWD :=$(shell pwd)
all:
make -C $(KDIR) M=$(PWD) modules
clean:
rm -f *.ko *.o *.mod.o *.mod *.symvers *.cmd *.mod.c *.order
endif
EOF


#2. Собираем
make V=1

#3. Проверяем что собралось
ls *.ko

#4. Загружаем модуль ядра (вообще лучше такое делать через modprobe вместо ismod)
insmod hello.ko

#5. Проверяем что наш модуль загрузился
dmesg | grep "Hello"

#6. Выгружаем модуль ядра
rmmod hello

Сборка peraso

# Для потомков 
# root@peraso1:/opt/13.3.328/src/drivers/net/wireless/prs# uname -a
# Linux peraso1 5.10.160-rockchip-rk356x #1.0.6 SMP Mon May 27 17:03:18 CST 2024 aarch64 GNU/Linux
# root@peraso1:/opt/13.3.328/src/drivers/net/wireless/prs# lsusb
# Bus 006 Device 002: ID 2932:0720 Peraso Technologies Inc. Peraso PRS460


0. Переходим в каталог с Makefile
cd /opt/13.3.328/src/drivers/net/wireless/prs

1. Собираем модуль 
make -C /lib/modules/5.10.160-rockchip-rk356x/build M=$PWD CONFIG_PRS_FALCON=m modules V=1

2. Пробуем подгрузить собравшийся модуль:
insmod prs_falcon.ko 

3. Проверяем 
lsmod | grep prs_falcon
dmesg | grep prs_falcon 

4. Если все ок и ошибок в третьем пункте нет, продолжаем:
4.1 Копируем модуля ядра в каталок к модулям текущего ядра:
cp prs_falcon.ko /lib/modules/$(uname -r)/kernel/drivers/net/wireless/
4.2 Обновляем зависимости
depmod -a
4.3 Пробуем загрузить:
modprobe prs_falcon

5. Проверяем сделанное:
lsmod | grep prs
dmesg | tail -20

Запуск точки доступа и клиента:

Клиент Client:
wpa_supplicant -D nl80211  -i wlan0 -c /etc/wpa_supplicant.conf -B
wpa_supplicant -Dnl80211 -iwlan0 -c wpa.conf
wpa_supplicant -Dwext -iwlx20cec40343d9 -c wpa_suplicant.conf 

Точка доступа AP:
hostapd -B /etc/hostapd.conf
hostapd -dddd -g /var/run/hostapd/global hostapd.conf



Пример конфига hostapd:
cat > hostapd.conf << EOF
driver=nl80211
interface=wlx20cec40343d9
ssid=clear-link
channel=2
hw_mode=ad
country_code=US
ctrl_interface=/var/run/hostapd
ctrl_interface_group=0
EOF


Пример конфига wpa_supplicant:
cat > wpa_suplicant.conf << "EOF"
ctrl_interface=/var/run/wpa_supplicant 
network={ 
  ssid="clear-link" 
  frequency=60480
  scan_ssid=1 
  key_mgmt=NONE 
}
EOF



Тест:
wpa_supplicant -Dnl80211 -iwlx20cec40343da -c wpa_suplicant.conf 
hostapd -dddd -g /var/run/hostapd/global hostapd.conf
Рубрики
napi

rkdevtool / debian / install

Link:

https://github.com/rockchip-linux/rkdeveloptool

Install

0. Ставим пакеты:
apt install git libudev-dev libusb-1.0-0-dev dh-autoreconf
 
# На случай ошибки при configure с libusb, нужно доставить эти пакеты:
apt install pkg-config libusb-1.0

1. Качаем дистрибутив rkdevtool
cd /opt
git clone https://github.com/rockchip-linux/rkdeveloptool

2. Входим в каталог 
cd  /opt/rkdeveloptool

3. Выполняем:
./autogen.sh

4. Выполняем:
./configure

!!!  если все успешно то у вас появится Makefile

5. Производим сборку 
make

6. Производим установку в систему:
make install 

Основные команды:

rkdevtool ld - показать устройства в maskrom
rkdevtool db name_boot_loder - загрузка загрузчика (мелкий файл)
rkdevtool wl 0 name_image - загрузка образа системы (большой файл)

Пустой образ или затереть nand:

создаем образ пустой
dd if=/dev/zero cont=500 bs=1M of=zero.img
rkdevtool db грузим_загручик
записываем пустышку
rkdevtool wl 0 zero.img 
Рубрики
napi

zigbee2mqtt / napi / arbian

Link:

https://www.zigbee2mqtt.io/
https://www.zigbee2mqtt.io/guide/installation/01_linux.html
https://docs.jethome.ru/ru/controllers/linux/howto/zigbee2mqtt.html

Setup:

# Ставлю под рутом ^_^

0. Ставим пакеты:
apt-get install -y curl
curl -fsSL https://deb.nodesource.com/setup_lts.x | sudo -E bash -
apt-get install -y nodejs git make g++ gcc libsystemd-dev tmux
apt install -y mosquitto mosquitto-clients
corepack enable

1. Создадим каталог
mkdir /opt/zigbee2mqtt

2. На случай если ставили не от рута нужно дать права на каталог
sudo chown -R ${USER}: /opt/zigbee2mqtt

3. Скачиваем гит в каталог
git clone --depth 1 https://github.com/Koenkk/zigbee2mqtt.git /opt/zigbee2mqtt

4. Переходим в каталог:
cd /opt/zigbee2mqtt

5. Запустим tmux и продолжим сборку в нем:
tmux

6. Собираем приложение:
pnpm install --frozen-lockfile

6.1 !!! Вот тут могут возникнуть проблемы, если у вас мало оперативки скорее всего сборка зависнет, запустим в один поток сборку
pnpm install --frozen-lockfile --child-concurrency=1

7. После сборки выполняем запуск: 
cd /opt/zigbee2mqtt
pnpm start

Пример сервиса:

cat > /etc/systemd/system/zigbee2mqtt.service << "EOF"
[Unit]
Description=zigbee2mqtt
After=network.target

[Service]
Environment=NODE_ENV=production
Type=simple
ExecStart=/usr/bin/pnpm start
WorkingDirectory=/opt/zigbee2mqtt
StandardOutput=inherit
StandardError=inherit
Restart=always
RestartSec=10


[Install]
WantedBy=multi-user.target
EOF


systemctl daemon-reload
systemctl enable zigbee2mqtt.service
systemctl start zigbee2mqtt.service
systemctl status zigbee2mqtt.service
journalctl -u zigbee2mqtt.service -f

Update Zigbee2MQTT to the latest version

cd /opt/zigbee2mqtt
./update.sh
Рубрики
orangepi

home-assistant / orangepi cm4 / debian 12 / container

Links:

http://www.orangepi.org/orangepiwiki/index.php/Orange_Pi_CM4 - инструкции
http://www.orangepi.org/html/hardWare/computerAndMicrocontrollers/service-and-support/Orange-Pi-CM4-1.html - инструкции
https://drive.google.com/drive/folders/1MJl-pIU2I7EHDN6rlirumVkBOz7utvyE - другие образы 
https://drive.google.com/file/d/1v7q46pRilxLxOvBu_dz5CscEU7ifb9mS/view?usp=drive_link  - образ диска дебиана
https://drive.google.com/drive/folders/1m3pEc9Oib9JYOaiHP2TUx89Qq5Zd-tT6 - различные ультелиты
https://drive.google.com/file/d/1dAaW_FetnrKWsNU8HrOoYkZBOh0q8WNJ/view?usp=drive_link - пре загрузчик для devrktool

https://www.home-assistant.io/installation/#about-installation-methods
https://www.home-assistant.io/installation/raspberrypi/

https://www.home-assistant.io/installation/raspberrypi-other
https://www.home-assistant.io/installation/raspberrypi/
https://www.home-assistant.io/installation/linux
https://www.home-assistant.io/installation/alternative

https://github.com/NabuCasa/buildroot-installer/releases
https://github.com/home-assistant/buildroot
https://github.com/home-assistant/operating-system/releases/download/16.1/haos_rpi4-64-16.1.img.xz

https://developers.home-assistant.io/docs/operating-system/getting-started

https://docs.docker.com/compose/install/linux/
https://docs.docker.com/engine/install/debian/#install-using-the-repository
https://docs.docker.com/engine/install/debian/#install-using-the-repository

Install:

apt-get update
apt-get install docker-compose-plugin

docker compose version

Install Docker from repo docker:

sudo apt-get update
sudo apt-get install ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/debian/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc

# Add the repository to Apt sources:
echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/debian \
  $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
  sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update

sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

sudo docker run hello-world

Install docker from docker get:

curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh

Uninstall Docker Engine:

sudo apt-get purge docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin docker-ce-rootless-extras
sudo rm -rf /var/lib/docker
sudo rm -rf /var/lib/containerd
sudo rm /etc/apt/sources.list.d/docker.list
sudo rm /etc/apt/keyrings/docker.asc

install home-assist:

https://www.home-assistant.io/installation/odroid

apt-get install docker-compose-plugin

cd /opt
mkdir home-assistant
cd home-assistant
cat > compose.yaml << "EOF"
services:
  homeassistant:
    container_name: homeassistant
    image: "ghcr.io/home-assistant/home-assistant:stable"
    volumes:
      - /PATH_TO_YOUR_CONFIG:/config
      - /etc/localtime:/etc/localtime:ro
      - /run/dbus:/run/dbus:ro
    restart: unless-stopped
    privileged: true
    network_mode: host
    devices:
      - /dev/ttyS9:/dev/ttyS9
    environment:
      DISABLE_JEMALLOC: true
EOF

Проброс железяки в докер:
- /dev/ttyS9:/dev/ttyS9
- /dev/ttyUSB0:/dev/ttyUSB0

Отключение OOM Killer для контейнера:
DISABLE_JEMALLOC: true

Запуск всего безобразия:
docker compose up -d

cm4 env:

cat /boot/orangepiEnv.txt 
-------------------------
verbosity=1
bootlogo=false
extraargs=cma=128M
overlay_prefix=rk356x
rootdev=UUID=a0f8ca89-7eb7-4a1e-947a-2341637b4782
rootfstype=ext4
overlays=uart3-m0 uart7-m2 uart9-m2
console=serial
-------------------------
Рубрики
orangepi

home-assistant / orangepi cm4 / install supervised / depricated

links:

https://github.com/home-assistant/os-agent/releases
https://github.com/home-assistant/supervised-installer/releases/

install:

0. Обновляем ос:
apt update  -y && apt upgrade -y 

1. Ставим docker:
sudo  curl -fsSL get.docker.com | sh

2. Добавляем текущего юзера в группу docker:
sudo usermod -aG docker $USER

3. Ставим дополнительные пакеты:
sudo apt install -y jq wget curl udisks2 libglib2.0-bin network-manager dbus


4. Ставим os-agent:
wget https://github.com/home-assistant/os-agent/releases/download/1.7.2/os-agent_1.7.2_linux_aarch64.deb 
sudo apt install ./os-agent_1.7.2_linux_aarch64.deb

5. Cтавим AppArmor:
sudo apt install apparmor


6. Ставим Home Assistant:
wget https://github.com/home-assistant/supervised-installer/releases/latest/download/homeassistant-supervised.deb
sudo apt install  ./homeassistant-supervised.deb


6.1 Ошибка пакет "homeassistant-supervised" не ставится:
dpkg: regarding homeassistant-supervised.deb containing homeassistant-supervised, pre-dependency problem:
 homeassistant-supervised pre-depends on systemd-timesyncd
  systemd-timesyncd is not installed.
dpkg: error processing archive homeassistant-supervised.deb (--install):
 pre-dependency problem - not installing homeassistant-supervised
Errors were encountered while processing:
Выполняем:
sudo apt --fix-broken install
И пробуем поставить пакет заново

6.2 Ошибка:
[info] Waiting for https://checkonline.home-assistant.io/online.txt - network interface might be down...
У вас проблемы с DNS. 
ping ya.ru
если не ок
можно временно поправить файл /etc/resolv добавив строку "nameserver 8.8.8.8"
после установки разберитесь с днс

7. В окошке выбора типа архитектуры выбираем odroid-c2.
ждем мин 5 и пробуем подключится http://YOU_IP:8112
ждем окончания установки

apparmor err

cat /boot/orangepiEnv.txt
-------------------------
verbosity=1
bootlogo=false
extraargs=cma=128M
overlay_prefix=rk356x
rootdev=UUID=a0f8ca89-7eb7-4a1e-947a-2341637b4782
rootfstype=ext4
overlays=uart3-m0
console=serial
apparmor=1 security=apparmor
-------------------------

P.S

А теперь о печальном.
Этот способ установки будет жить и поддерживается до 2025.12.

https://www.home-assistant.io/blog/2025/05/22/deprecating-core-and-supervised-installation-methods-and-32-bit-systems/
из линка:
Поскольку сегодня мы объявили устаревшими методы установки Core и Supervised, мы работаем над удалением всех упоминаний о них из нашей документации.
Рубрики
orangepi

home-assistant / kvm / install

link:

https://www.home-assistant.io/installation/linux
https://github.com/home-assistant/operating-system/releases/download/16.0/haos_ova-16.0.qcow2.xz

Видос:
https://www.youtube.com/watch?v=zLC8GuOkHl0&ab_channel=ArmenakAvetisyan

Поддерживаемые устройства:
https://www.home-assistant.io/integrations/zha/#compatible-hardware%C3%90%C2%A3%C3%91%C2%81%C3%91%C2%82%C3%90%C2%B0%C3%90%C2%BD%C3%90%C2%BE%C3%90%C2%B2%C3%90%C2%BA%C3%90%C2%B0

Образы под arm на гитхаб:
https://github.com/home-assistant/operating-system/releases

образ под arm64:
https://github.com/home-assistant/operating-system/releases/download/16.1/haos_generic-aarch64-16.1.qcow2.xz

Пред настройка kvm:

0. Ставим пакеты:
apt install cockpit-networkmanager  cockpit-machines cockpit-storaged cockpit-ws cockpit-packagekit cockpit-podman
apt install qemu-kvm libvirt-daemon-system ovmf  virtinst
apt install openvswitch-switch

#Под arm64
apt-get install qemu-utils qemu-efi-aarch64 qemu-system-arm  qemu-efi-aarch64 qemu-system-arm qemu-user-static osinfo-db
apt install virt-manager libvirt0 qemu-system libvirt-daemon libvirt-daemon-system libvirt-daemon-system-systemd libvirt-clients libvirt-daemon-config-network qemu-efi-arm qemu-efi-aarch64

usermod -aG kvm user_name
usermod -aG libvirt user_name 

2. Создаем бридж ovs:
ovs-vsctl show
ovs-vsctl add-br ovsbr0
ovs-vsctl add-port ovsbr0 end1
где ovsbr0 - бридж и end1 - сетевая карта

3. Отключаем NetworkManage и настраиваем networking
systemctl disable NetworkManager
systemctl enable networking.service 
vim /etc/network/interfaces
---------------------------
source /etc/network/interfaces.d/*

auto lo
iface lo inet loopback

auto end1 
iface end1 inet manual

auto ovsbr0
iface ovsbr0 inet dhcp
---------------------------

Создаем сеть:
vim ovsbr0.xml
-------------------------------------------
<network>
  <name>default</name>
  <forward mode='bridge'/>
  <bridge name='ovsbr0'/>
  <virtualport type='openvswitch'/>
</network>
-------------------------------------------

virsh net-destroy default
irsh net-undefine default 
virsh net-create --file /root/ovsbr0.xml
virsh net-autostart default
virsh net-start default

wget:

wget https://github.com/home-assistant/operating-system/releases/download/16.0/haos_ova-16.0.qcow2.xz 
unxz haos_ova-16.0.qcow2.xz 

install virt-manage:

1. Create a new virtual machine in virt-manager.
2. Select Import existing disk image, provide the path to the QCOW2 image above.
3. Choose Generic Default for the operating system.
4. Check the box for Customize configuration before install.
5.Under Network Selection, select your bridge.
Under customization select Overview > Firmware > UEFI x86_64: …. Make sure to select a non-secureboot version of OVMF (does not contain the word secure, secboot, etc.), e.g., /usr/share/edk2/ovmf/OVMF_CODE.fd.
7. Click Add Hardware (bottom left), and select Channel.
8. Select device type: unix.
9. Select name: org.qemu.guest_agent.0.
10 Finally, select Begin Installation (upper left corner).

install virt-install:

virt-install --name haos \
--description "Home Assistant OS" \
--os-variant=generic \
--ram=4096 \
--vcpus=2 \
--disk ,bus=scsi \
--controller type=scsi,model=virtio-scsi \
--import \
--graphics none \
--boot uefi

install virt arm:

cd /var/lib/libvirt/images
wget https://github.com/home-assistant/operating-system/releases/download/16.1/haos_generic-aarch64-16.1.qcow2.xz

virt-install --name haos \
--description "Home Assistant OS" \
--os-variant=generic \
--osinfo generic \
--ram=2048 --vcpus=2 \
--disk haos_generic-aarch64-16.1.qcow2,bus=scsi \
--controller type=scsi,model=virtio-scsi \
--import --graphics none \
--boot uefi

Рубрики
orangepi

orangepi cm4 / uart3 / uart7 / uart9 / test

links:

https://drive.google.com/drive/folders/1lbEI5JdLWwI6y9VoGM0nioFDhzF79QSu
http://www.orangepi.org/html/hardWare/computerAndMicrocontrollers/service-and-support/Orange-Pi-Zero-2W.html

work


#Конфиг env boot:
root@orangepicm4:~# cat /boot/orangepiEnv.txt 
verbosity=1
bootlogo=false
extraargs=cma=128M
overlay_prefix=rk356x
rootdev=UUID=a0f8ca89-7eb7-4a1e-947a-2341637b4782
rootfstype=ext4
overlays=uart3-m0 uart7-m2 uart9-m2
console=serial


#скрипт 1
root@orangepicm4:~# cat uart9.txt
#!/bin/bash
#

xxx=0

while :
do
        echo -n -e "\nHello UART9! ${xxx}"
        echo -n -e "\nHello UART9! ${xxx} \r" > /dev/ttyS9
        #sleep 1
        let xxx++
done

#скрипт 2
root@orangepicm4:~# cat uart7.txt
#!/bin/bash
#

xxx=0

while :
do
        echo -n -e "\nHello UART7! ${xxx}"
        echo -n -e "\nHello UART7! ${xxx} \r" > /dev/ttyS7
        #sleep 1
        let xxx++
done



# Настройка UART7 (например, 115200 бод, 8 бит, без контроля чётности, 1 стоп-бит)
sudo stty -F /dev/ttyS7 115200 cs8 -parenb -cstopb

# Настройка UART9 (такие же параметры)
sudo stty -F /dev/ttyS9 115200 cs8 -parenb -cstopb

Проверить настройки можно так:
stty -F /dev/ttyS7 -a
stty -F /dev/ttyS9 -a
echo "Hello UART!" > /dev/ttyS7
echo "Hello UART!" > /dev/ttyS9


mincom -D /dev/ttyS7 -b 115200
mincom -D /dev/ttyS9 -b 115200


screen /dev/ttyS7 115200
screen /dev/ttyS9 115200


echo "Hello UART!" > /dev/ttyS7
echo "Hello UART!" > /dev/ttyS9
Рубрики
orangepi

orangepi cm4 / i2c / rtc / ds1338 / ds1307 / hwclock

Проверяем а если часы:
dmesg | grep rtc


Проверяем какие модули загружены:
lsmod 

Проверяем что у нас на шине i2c (у нас часы имеют адрес 68)
i2cdetect -y 1

Пробуем прочитать регистры:
i2cget -y 1 0x68 0x00
for reg in {0..6}; do      echo "Регистр 0x0$reg: $(i2cget -y 1 0x68 0x0$reg)";  done

Пробуем изменить вывод на 24 часа:
i2cset -y 1 0x68 0x02 0x12

Добавляем часы в систему что бы можно было с ними взаимодействовать
modprobe rtc-ds1307
echo "ds1307 0x68" > /sys/class/i2c-adapter/i2c-1/new_device
dmesg | grep rtc
hwclock -s -f /dev/rtc1

# Запись системного времени в RTC
hwclock --systohc
hwclock --systohc -f /dev/rtc1

# Чтение времени из RTC
hwclock -v 
hwclock -v -f /dev/rtc1

Для автоматического включения модуля ядра rtc-ds1307:
echo "rtc-ds1307" >> /etc/modules


python script:

apt install python3-smbus2 


cat > clock.py << "EOF"
from smbus2 import SMBus
import time

I2C_BUS = 1      # номер шины (0 или 1)
DEV_ADDR = 0x68  # адрес DES3338 на шине

with SMBus(I2C_BUS) as bus:
    # Чтение 7 байт (секунды, минуты, часы...)
    data = bus.read_i2c_block_data(DEV_ADDR, 0x00, 7)
    print(f"Время: {data[2]}:{data[1]}:{data[0]}")
EOF


python clock.py 


Рубрики
device \ устройства \ железо

nano kvm lite

link:

https://github.com/sipeed/NanoKVM
https://github.com/sipeed/NanoKVM/releases
https://www.ozon.ru/search/?text=nano+kvm+lite&from_global=true

default password:

Логин: admin 
Пароль: admin
Рубрики
device \ устройства \ железо

M5Stack Stick PLUS 2

Ссылки:

https://t.me/hobbysupport
https://www.ozon.ru/product/m5stack-stick-plus-2-s-graficheskim-programmirovaniem-1726849635/
https://www.youtube.com/watch?v=1cDBE4qjKOk
https://docs.m5stack.com/en/uiflow/m5burner/intro
https://docs.m5stack.com/en/core/M5StickC%20PLUS2
http://bruce.computer/
Рубрики
device \ устройства \ железо

Релейки бубубуб конфиг

Основные команды:

show run - показать текущий конфиг
configure - режим конфигурирования
write mem - сохранить настройки

Пример конфига:

config-file-header
switch000001
v5.1.0.18 / ?
CLI v1.0
@
!
unit-type-control-start
unit-type unit 1 network te uplink none
unit-type-control-end
!
no spanning-tree
port jumbo-frame
vlan database
vlan 25-28,35-38
exit
voice vlan oui-table add 0001e3 Siemens_AG_phone________
voice vlan oui-table add 00036b Cisco_phone_____________
voice vlan oui-table add 00096e Avaya___________________
voice vlan oui-table add 000fe2 H3C_Aolynk______________
voice vlan oui-table add 0060b9 Philips_and_NEC_AG_phone
voice vlan oui-table add 00d01e Pingtel_phone___________
voice vlan oui-table add 00e075 Polycom/Veritel_phone___
voice vlan oui-table add 00e0bb 3Com_phone______________
ip ssh server                                         
ip telnet server                                      
!                                                     
interface vlan 1                                      
 ip address 10.12.127.200 255.255.255.0               
 no ip address dhcp                                   
!                                                     
interface TengigabitEthernet1                         
 switchport mode trunk                                
!                                                     
interface TengigabitEthernet2                         
 switchport mode trunk                                
!                                                     
interface TengigabitEthernet3                         
 switchport mode trunk                                
!                                                     
interface TengigabitEthernet5                         
 switchport mode trunk                                
!                                                     
exit                                                  
console# 

Vlan

vlan database
vlan 25-28,35-38

JAMBO PACKET

port jumbo-frame

NO STP

no spanning-tree

TRANK

                             
interface TengigabitEthernet1                         
 switchport mode trunk                                
!                                                     
interface TengigabitEthernet2                         
 switchport mode trunk                                
!                                                     
interface TengigabitEthernet3                         
 switchport mode trunk                                
!                                                     
interface TengigabitEthernet5                         
 switchport mode trunk                                
!                                                     

STATIC IP CONTROL

interface vlan 1                                      
 ip address 10.12.127.200 255.255.255.0               
 no ip address dhcp                                   
!                      


Рубрики
device \ устройства \ железо

eltex

eltex база знаний:

https://docs.eltex-co.ru/display/EKB/Eltex+Knowledge+Base

eltex

общие команды:
logout - Быстрый выход из сессии интерфейса командной строки  config, global-viewconfig
do  - Выполнение команды глобального режима CLI (command_sequence) без выхода из режима конфигурирования    config
root - Выход на верхний уровень режима конфигурирования  config
end  - Выход из любого уровня режима конфигурирования в глобальный режим  config
quit - Выход из сессии интерфейса командной строки  global-view 


В глобальном режиме интерфейса командной строки доступны команды просмотра оперативного состояния системы (show-команды), 
команды управления компонентами системы (например, reload, hw-module), 
запуска различных диагностических тестов и работы с образами операционной системы.
Для уменьшения объема отображаемых данных в ответ за запросы пользователя и облегчения поиска необходимой информации можно воспользоваться фильтрацией. 
Для фильтрации вывода команд нужно добавить в конец командной строки символ "|" и использовать одну из опций фильтрации:
formal — модификация выводов "show running-config" и "show candidate-config" из древовидного в линейный
begin — выводить всё после строки, содержащей заданный шаблон
include — выводить все строки, содержащие заданный шаблон
exclude — выводить все строки, не содержащие заданный шаблон
count — произвести подсчёт количества строк в выводе команды.


без конфигуре  global-view :
rootshell - попасть в linux shell :)
show interfaces description - показать статус интерфейсов
show running-config - показать конфигурацию устройства
show candidate-config - Вывести кандидат-конфигурацию устройства.
configure - Перейти из глобального режима CLI в режим конфигурирования.

в configure:
commit - Применить кандидат-конфигурацию(применить изменения, внесенные во время сеанса редактирования).
abort - Отменить изменения в кандидат конфигурации и выйти из режим конфигурирования. 
         При выполнении этой команды кандидат-конфигурация становится идентичной текущей (стартовой) конфигурации.

Тип интерфейса:
Физические интерфейсы:
Обозначение физического интерфейса включает в себя его тип и идентификатор.
Идентификатор имеет вид //, где:
 - номер устройства в кластере устройств;
 - номер модуля в составе устройства;
 - порядковый номер интерфейса данного типа в модуле.

Интерфейсы 10Гбит/с Ethernet tengigabitethernet //  tengigabitethernet 0/0/10  te 0/0/10
Интерфейсы 40Гбит/с Ethernet  fourtygigabitethernet //  fourtygigabitethernet 0/0/2  fo 0/0/2
Интерфейсы 100Гбит/с Ethernet  hundredgigabitethernet //  hundredgigabitethernet 0/0/3  hu 0/0/3
Физические интерфейсы всегда присутствуют в системе.

Группы агрегации каналов  bundle-ether   bundle-ether 8
Группы агрегации каналов в системе можно создавать и удалять.


Сабинтерфейсы
bundle-ether .
tengigabitethernet //.
fourtygigabitethernet //.
hundredgigabitethernet //.
Сабинтерфейсы в системе можно создавать и удалять.


Интерфейсы локальной петли  loopback   loopback 100
Интерфейсы локальной петли в системе можно создавать и удалять.

Интерфейсы управления  mgmt //
Интерфейсы out-of-band управления - это выделенные ethernetинтерфейсы для доступа и управления маршрутизатором. 
В качестве  могут выступать 'fmc0' и 'fmc1', в зависимости от аппаратной конфигурации.
'mgmt 0/fmc0/1' - для ME5100
'mgmt 0/fmc0/0' и 'mgmt 0/fmc0/1' для FMC0 в маршрутизаторе ME5000
'mgmt 0/fmc1/0' и 'mgmt 0/fmc1/1' для FMC1 в маршрутизаторе ME5000
Интерфейсы управления всегда присутствуют в системе.
IMPORTANT
Интерфейсы  управления  не предназначены для передачи транзитного трафика (не участвуют в работе dataplane) и жестко прикреплены к VRF 'mgmt-intf'.

change-privilege  Данной командой осуществляется переход на соответствующий уровень привилегий.
change-privilege { p1 | p2 | … | p15 } [ PASSWORD ]
change-privilege p15 mypassword


clear alarm - Данная команда очищает активные аварии в системе.
clear alarm {all | ID }
all — очищаются все активные аварии
ID — очищается авария с указанным идентификатором.
clear alarm 300

clear arp - Данная команда удаляет записи из ARP-таблицы.
address IPv4 — очищается запись при совпадении IPv4-адреса
interface IF — очищаются записи на указанном интерфейсе
vrf VRF — указание VRF, из которого будет браться ARP-таблица
clear arp vrf test 10.0.0.200

clear bgp  - Данная команда изменяет состояние BGP-сессии и счётчиков.
clear bgp {{ vrf ARGS | neighbor ARGS} {counters | flap-statistics |soft ARGS}}
vrf VRF — указание VRF, в котором будет выполнятся действие
neighbor {all | ipv4 | ipv6 | IPv4 | IPv6 } — сброс BGP-сессии: всех, всех ipv4/ipv6 unicast или конкретного адреса соседа
counters — очистка счётчиков BGP-сообщений
flap-statistics — очистка счётчиков flap-statistics
soft in|out — реконфигурация маршрутов(in — восстановить свои маршруты, out — отправить соседу свои маршруты).
clear bgp neighbor 10.0.0.10

clear configuration backups - Удаление бэкап-конфигруации.
clear configuration backups [ String ] - String — указание имени backup-файла.
clear configuration backups



clear crash-info all - Удаление логов crash-info.
clear crash-info { all | String }

clear domain-cache - Сброс кэша доменных имён.
clear domain-cache { String }
clear domain-cache eltex-co.ru

clear flow monitor - Сброс статистики потоков. 

clear ipv6 neighbors - Данная команда удаляет записи из NDP-таблицы.
clear ipv6 neighbors address 2005:1::1

clear logging - Данная команда очищает файлы системных логов
persistent — указание на очистку лог-файлов, хранящихся в постоянной памяти
system — указание на очистку control-plane лог-файлов
file WORD — указание имени persistent-логов
clear logging persistent file BGP_LOG

clear mpls - Данная команда сбрасывает состояния LDP-сессий и RSVP-сессий и меток.
clear mpls ldp neighbor all

clear ospfv2 - Данная команда сбрасывает состояния OSPFv2-соседств.
clear ospfv2 statistics
clear ospfv3 - Данная команда сбрасывает состояния OSPFv3-соседств.
clear ospfv3 statistics

clear pim - Данная команда сбрасывает состояния PIM-соседств и очищает топологию.
clear pim counters

clear qos counters - Команда сбрасывает счётчики срабатывания политик QoS.
clear qos counters interface te 0/0/2

dir - Данная команда выводит список файлов со смонтированного USB-носителя.
delete - Данная команда удаляет файл на смонтированном USB-носителе

show system - Выведет текущие общие состояние 
show system resources cpu - Данной командой осуществляется просмотр информации о текущем использовании  процессора устройства.
show system resources cpu

show version - покажет текущую версию

backup to tftp://192.168.16.113/backup_directory/ - Команда создает элемент резервирования конфигурации и переходит в режим настройки этого элемента. 

fan lower-speed 60 - Данной командой устанавливается минимальная скорость вращения вентиляторов системы охлаждения устройства, в процентах.

flow rate - Команда позволяет ограничить полосу пропускания для заданного типа трафика, перехватываемого на процессор.
configure
system punt rate-limit
flow ip-ttl rate 100
commit


broadcast-client - Данной командой включается режим приёма широковещательных сообщений NTP-серверов, при этом устройство работает в качестве NTP-клиента. 
ntp vrf mgmt-intf
broadcast-client

clock read-calendar - Данная команда синхронизирует значение программных часов системы со значением аппаратных часов.
clock read-calendar

clock update-calendar - Данная команда записывает в аппаратные часы устройства значение программных часов.
clock update-calendar

ntp vrf Команда включает протокол ntp в заданном vrf и переходит в режим его конфигурирования
ntp vrf mgmt-intf
Интервала времени между отправкой сообщений NTP-серверу
maxpoll - Данная команда устанавливает максимальное значение интервала времени между отправкой сообщений NTP-серверу.
Использование отрицательной формы команды устанавливает значение по умолчанию (10, что соответствует 1024 секундам).
minpoll - Данная команда устанавливает минимальное значение интервала времени между отправкой сообщений NTP-серверу.
Использование отрицательной формы команды устанавливает значение по умолчанию (6, что соответствует 64 секундам).
ntp vrf default
server ipv4 192.168.16.36
maxpoll 15
minpoll 3

peer ipv4 - Данная команда используется для установления партнерских отношений между NTP-серверами и перехода в командный режим config-ntp-vrf-peer-ipv4.
ntp vrf default
peer ipv4 192.168.16.36

prefer - Данная команда отмечает текущий NTP-сервер как предпочтительный.
ntp vrf default
server ipv4 192.168.16.36
prefer

show clock - Данная команда выводит текущее время и дату.

tcp - Данная команда устанавливает режим работы по протоколу TCP для текущего удаленного сервера журналирования и задает номер используемого порта.
logging host 10.7.32.4 vrf default
tcp 513

udp - Данная команда устанавливает режим работы по протоколу UDP для текущего удаленного сервера журналирования и задает номер используемого порта.
logging host 10.7.32.4 vrf default
udp 513

ip mtu - Данная команда позволяет установить в конфигурации правило для задания IPv4/IPv6 Maximum Transmission Unit (MTU).
interface tengigabitethernet 0/0/1
ip mtu 6000

mtu - Данная команда позволяет установить в конфигурации правило для задания Layer 2 Maximum Transmission Unit (L2 MTU).
interface tengigabitethernet 0/0/1
mtu 1700

shutdown - Данная команда позволяет создать в конфигурации правило для административного выключения интерфейса и перевода его в состояние administratively down.
interface tengigabitethernet 0/0/1.100
shutdown

speed - Данная команда позволяет задать режим скорости на Ethernet-интерфейсе.
        Отрицательная форма команды возвращает значение по умолчанию (auto).
speed { 10 | 100 | 100G | 10G | 1G | 40G | 25G |auto }
no speed
interface tengigabitethernet 0/0/1
speed 1G



vrf Данная команда позволяет создать в конфигурации экземпляр VRF и перейти в режим его  конфигурации (config-vrf).
vrf test

vrf - Данная команда относит интерфейс к указанной Virtual Routing & Forwarding сущности (VRF).
interface tengigabitethernet 0/0/1
vrf TEST


description - Данная команда позволяет задать в конфигурации описание для текущего VRF 
vrf test
description test


maximum prefix - Данная команда позволяет ограничить максимальное количество маршрутов в данном VRF.
vrf test
maximum prefix 100


rd - Данная команда позволяет задать в конфигурации Route Distinguisher для данного VRF.
vrf test
rd 10.0.0.1:200

show vrf - Данная команда отображает информацию по активным VRF.
show vrf test

vpn-id - Данная команда задает в конфигурации VRF определенный VPN ID, как описано в RFC 2685.
vrf test
vpn-id 100:100

Часто используемые настройки:

Пример задать имя, время, баннер:
configure
hostname NEW-HOSTNAME
clock set 12:00:00 nov 8 2023
banner exec @ hell0 @
commit

Создание пользователя:
configure
username stepan privilege 1 password password
enable password level 15 godemode
privilege exec 1 show running-config
exec 1 configure
commit

Конфигурация ip адреса для интерфейса:
interface GigabitEthernet 1/0/20
ip address 10.10.10.20/24

Конфигурация ip адреса для vlan:
interface vlan 1
ip address 150.20.137.40/24 


Создание vlan для интерфейса:
configure 
vlan database
vlan 20 name test
interface GigabitEthernet 1/0/1
switchport access vlan 20 
commit

Создание/удаления trank vlan:
configure
interface GiggabitEhernet 1/0/1
switchport mode trunk 
switchport trunk allowed vlan 10 - если не указать то затрет все vlan и оставит 10
switchport trunk allowed vlan add 10
switchport trunk allowed vlan add 12
switchport trunk allowed vlan add 20-50
switchport trunk allowed vlan remove 10 - для удаления vlan 10
switchport trunk allowed vlan all - разрешает все вланы
commit


Создание voice vlan:
voice vlan oui-table add a8f94b ( первые три байта телефона который мы в войс отправляем)
voice vlan id 10
voice vlan state oui-enable
lldp med network-policy 1 voice vlan 10 vlan-type tagged up 4 
interface gigabitethernet 1/0/1
switchport mode general
voice vlan enable
lldp med enable network-policy
lldp med network-policy add 1 
switchport general allowed vlan add 20 untagged
switchport general pvid 20


Создание STP:
spanning-tree 
spanning-tree mode rstp (включен по умолчанию)
spanning-tree priority {0-61440}
interface GigabitEthernet 1/0/1
spannig-tree cost {1-200000000} - стоимость
spanning-tree disable - выключить rstp
spanning-tree bpdu filtering
spanning-tree bpduguard enable


Защита вланов rapid-pvst:
spanning-tree 
spanning-tree mode rapid-pvst (в cisco по умолчанию включено)
vlan 10-20
interface gigabitethentet 1/0/1
switchport mode trunk
switchport trunk allowed vlan add 10-20



Конфигурация VRRP:
interface vlan 100
ip address 172.16.2.2/24 ( на другом устройстве указываем 172.16.2.3 )
vrrp 100 ip 172.16.2.1
vrrp 100 priority 1 
vrrp 100 preempt
no vrrp 100 shutdown - отключить

Настройка dhcp server:
ip dhcp server
ip dhcp pool network Test
address low 10.0.1.100 high 10.0.1.150 255.255.255.0
default-route 10.0.1.1
dns-server 10.0.1.1
ip dhcp exluded-address 10.0.1.120 - исключить адрес
exit
interface vlan 10
ip address 10.0.1.1/24
interface GigaEthernet 1/0/11
switchport access vlan 10


Настройка OSPF:
interface vlan 1
ip address 192.168.1.10/24
exit
router ospf 1 - здесь указываем роутер id 
router-id 192.168.1.10
network 192.168.1.10 area 0.0.0.0
redistribute connected subnets


Настройка do1x:
dot1x system-auth-control
aaa authentication dot1x default radius none
radius-server host 10.0.1.2 key eltex
interface gigabitethernet1/0/1
switchport access vlan 500
switchport mode access
dot1x host-mode multi-sessions
dot1x port-control auto
dot1x reauthentication
dot1x timeout tx-period 30


Шторм контроль:
errdisable recovery cause storm-control
interface gigabitethernet1/0/3
storm-control broadcat level 15 trap shutdown
storm-control unicast pps 12500 trap shutdown 
storm-control multicast kbps 20480 trap shutdown 

Борьба с петлями:
loopback-detection enable
loopback-detection mode {src-mac-addr|base-mac-addr|multicast-mac-addr|broadcast-mac-addr}
loopback-detection interval {1-60}
interface gigabitethernet 1/0/1
loopback-detection enable - включаем собстенно
errdisable recovery cause loopback-detection - обратно включаем если петля 


Включение защиты порта:
interface GigabitEthernet 1/0/1
port security mode max-address - ограничиваем кол-во адресов
port security max 10
port security discadr trap 100


Включение защиты dhcp-snooping:
ip dhcp snooping
ip dhcp snooping vlan 10
interface gigabiteyhernet 1/0/1
ip dhcp snooping trust

Включение IP secure Guard:
ip dhcp snooping
ip dhcp snooping vlan 1 - для влана
ip source guard
interface gigabitethernet 0/1 для интерфейса
ip source guard



Настройка статической маршрутизации:


Настройка статической маршрутизации:
Статическая маршрутизация — это механизм, при помощи которого в системе можно вручную создавать, удалять и модифицировать IP-маршруты. 
Статические маршруты могут быть заданы как в глобальной таблице маршрутизации, так и внутри VRF.

action Задание действия для пакетов для данного маршрута при маршрутизации трафика.
Отрицательная форма команды устанавливает значение по умолчанию (forward).
action { discard | forward | local | reject}
no action
discard — отбросить пакеты, редистрибуция разрешена
forward — отправить пакеты по маршруту
local — отбросить пакеты, редистрибуция запрещена
reject — не инсталлировать маршрут
router static 
address-family ipv4 unicast
destination 40.10.0.0/16 40.10.0.1
interface tengigabitethernet 0/0/7
action reject

destination - Создание статического маршрута в конфигурации семейства AFI/SAFI.
Отрицательная форма команды удаляет заданный статический маршрут.
[no] destination { IPv4_pref | IPv6_pref } { IPv4_nhop | IPv6_nhop }
IPv4_pref (X.X.X.X/N) — IPv4 префикс маршрута
IPv6_pref (X:X:X:X::X/N) — IPv6 префикс маршрута
IPv4_nhop (X.X.X.X) — IPv4 адрес следующего узла (nexthop) для маршрута
IPv6_nhop (X:X:X:X::X) — IPv6 адрес следующего узла (nexthop) для маршрута
router static
address-family ipv4 unicast
destination 40.10.0.0/16 40.10.0.1

interface - Команда принудительно задает интерфейс, через который будет направлен трафик по данному статическому маршруту,
и производит переход в режим настройки дополнительных параметров статического маршрута.
Отрицательная форма команды удаляет данный интерфейс из текущего маршрута.
router static
address-family ipv4 unicast
destination 40.10.0.0/16 40.10.0.1
interface tengigabitethernet 0/0/7

router static - Включение поддержки статической маршрутизации и переход в режим настройки статических маршрутов. 

tag - Задание тега маршрута. Данный тег является внутренним параметром маршрута, который может быть использован в дальнейшем, например, в правилах редистрибуции.
router static
address-family ipv4 unicast
destination 40.10.0.0/16 40.10.0.1
tag 3


OSPF


Настройка динамической маршрутизации OSPF
Существует три версии протокола OSPF:
v1 — в данный момент практически нигде не используется
v2 — используется для обмена маршрутной информацией протокола IPv4
v3 — используется для обмена маршрутной информацией протокола IPv6

address-prefix - Данная команда позволяет отфильтровать OSPFv2 IP LFA FRR маршруты в правиле lfa filter по префиксу, для которого будет рассчитываться альтернативный маршрут.
router ospfv2 PROCESS_NAME
lfa filter FILTER
address-prefix 10.0.0.0/8

advertise-max-metric - Команда устанавливает максимальную метрику для non-stub линков на период вермени, заданный командой time-to-advertise
router ospfv2 PROCESS_NAME
advertise-max-metric


area - Данная команда создает в конфигурации устройства определенную зону OSPFv2 и позволяет перейти в режим настройки конфигурации этой зоны. 
В режиме конфигурации зоны возможно, в первую очередь, непосредственно конфигурировать интерфейсы, которые будут участвовать в процессе маршрутизации OSPFv2.
[no] area AREA

router ospfv2 PROCESS_NAME
area 0.0.0.0


area-aggregate -  Данная команда позволяет создать в конфигурации правило для суммарного маршрута с LSA Type 3 или LSA Type 7.
[no] area-aggregate { nssa-external-lsa | summary-lsa } IPv4_PREFIX_FORMAT


area-id - Команда задает номер области (Area ID) для маршрута, анонсируемого командой host.
no area-id - Отрицательная форма команды удаляет настройку.
router ospfv2 PROCESS_NAME
host 10.10.10.10
area-id 10.0.0.0

as-br disable - Данная команда выключает в данном OSPFv2-процессе функционал Autonomous System Border Router (ASBR).
router ospfv2 PROCESS_NAME
as-br disable

authentication-key - Данная команда создает в конфигурации ключ аутентификации OSPF сессий на указанном интерфейсе.
router ospfv2 PROCESS_NAME
area 0.0.0.0
interface tengigabitethernet 0/0/1
authentication-key test

authentication-type - Команда задает тип шифрования, используемый при аутентификации. 
router ospfv2 PROCESS_NAME
area 0.0.0.0
interface tengigabitethernet 0/0/1
authentication-type md5

auto-cost reference-bandwidth - Команда задает референсное (максимальное) значение пропускной способности (bandwidth), 
относительно которого будет высчитываться стоимость интерфейса. 
Стоимость интерфейса с референсным значением будет равна единице.
router ospfv2 PROCESS_NAME
auto-cost reference-bandwidth 1000000

bandwidth - Команда задает значение пропускной способности (bandwidth) на интерфейсе, которое будет использовано 
при подсчете стоимости (cost) данного интерфейса относительно референсного значения.
router ospfv2 PROCESS_NAME
area 0.0.0.0
interface tengigabitethernet 0/0/1
bandwidth 100000

dead-interval - Данная команда позволяет задать в конфигурации значение OSPF Dead Interval.
router ospfv2 PROCESS_NAME
area 0.0.0.0
interface tengigabitethernet 0/0/1
dead-interval 10

disable - Данная команда запрещает добавление отфильтрованных OSPFv2 IP LFA FRR маршрутов при использовании фильтра lfa filter. 
router ospfv2 PROCESS_NAME
lfa filter FILTER
disable

dscp - Команда указывает значение DSCP для исходящих сообщений OSPF протокола.
router ospfv2 1
area 0.0.0.0
interface twentyfivegigabitethernet 0/0/2
dscp 32

effect - Команда указывает значение DSCP для исходящих сообщений OSPF протокола.
router ospfv2 PROCESS_NAME
area 0.0.0.0
area-aggregate summary-lsa 10.0.0.0/8
effect advertise-matching

external-lsa-refresh-interval - Команда задает интервал между обновлениями external LSA, принадлежащих маршрутизатору. 
router ospfv2 PROCESS_NAME
external-lsa-refresh-interval 60

Настройка LACP / LAG

Рассмотрим настройку LACP-группы в режиме active.
В режиме active порты коммутатора являются инициаторами согласования по протоколу LACP. 
На встречной стороне порт должен быть настроен как в режиме active, так и в режиме passive.

Необходимо выполнить следующее:
1) Включаем работу LAG глобально на коммутаторе:
configure terminal
set port-channel enable

2) Активируем группу, в которую будем включать интерфейсы:
interface port-channel 2
no shutdown
exit

3) Перейти в режим конфигурирования порта:
interface GigabitEthernet0/2

4) Настроить LACP-группу:
channel-group 2 mode active , где 2 – номер группы
active – добавить порт в LACP-группу в режиме active.


для роутера:
lacp
  interface bundle-ether 1
  exit
  interface tengigabitethernet 0/0/3
    bundle id 1
    bundle mode active
  exit
  interface tengigabitethernet 0/0/7
    bundle id 1
    bundle mode active
  exit
exit

Пример конфига свитча с lacp

lan database
 vlan 101,135,200,300
exit
!
hostname SW2
!
management access-list ssh
 permit service ssh
exit
!
ip ssh server
!
interface tengigabitethernet1/0/1
 channel-group 2 mode auto
exit
!
interface tengigabitethernet1/0/2
 channel-group 5 mode auto
exit
!
interface tengigabitethernet1/0/3
 channel-group 5 mode auto
exit                                                  
!
interface tengigabitethernet1/0/5                     
 channel-group 5 mode auto                            
exit                                                  
!
interface tengigabitethernet1/0/6                     
 channel-group 5 mode auto                            
exit                                                  
!
interface tengigabitethernet1/0/7                     
 channel-group 2 mode auto                            
exit                                                  
!
interface gigabitethernet1/0/1                        
 switchport access vlan 101                           
exit                                                  
!
interface Port-channel1                               
 switchport access vlan 135                           
exit                                                  
!
interface Port-channel2                               
 ip address 10.0.10.2 255.255.255.0                   
exit                                                  
!
interface Port-channel5                               
 ip address 10.0.50.2 255.255.255.0                   
exit                                                  
!
interface vlan 101                                    
 ip address 172.31.0.20 255.255.255.0                 
exit                                                  
!
!                                                     
!                                                     
!                                                     
!                                                     
!                                                     
ip route 172.30.0.0 /20 172.31.0.1                    
!                                                     
!                                                     
!                                                     
!                                                     
!                                                     
!                                                     
!                                                     
end                                   


Пример конфига роутера с lacp

! Configuration version 3.9.7.31R
hostname R2

interface bundle-ether 1
  bfd address-family ipv4 fast-detect
  bfd address-family ipv4 local-address 10.0.0.5
  bfd address-family ipv4 neighbor 10.0.0.6
  bfd rx-interval 25
  bfd tx-interval 25
  description to_SW2
  ipv4 address 10.0.10.1/24
exit
interface bundle-ether 1.135
  encapsulation outer-vid 135
exit
interface hundredgigabitethernet 0/0/1
exit
interface hundredgigabitethernet 0/0/2
exit
interface hundredgigabitethernet 0/0/3
exit
interface hundredgigabitethernet 0/0/4
exit
interface mgmt 0/fmc0/1
  ipv4 address 172.31.0.21/24
  vrf mgmt-intf
exit
interface tengigabitethernet 0/0/1
  description "Client enp1s0f1np0"
  load-interval 20
exit
interface tengigabitethernet 0/0/2
  load-interval 20
exit
interface tengigabitethernet 0/0/3
  description "SW2 ten1/0/1"
  load-interval 20
exit
interface tengigabitethernet 0/0/4
  load-interval 20
exit
interface tengigabitethernet 0/0/5
  load-interval 20
exit
interface tengigabitethernet 0/0/6
  load-interval 20
exit
interface tengigabitethernet 0/0/7
  description "SW2 ten1/0/7"
  load-interval 20
exit
interface tengigabitethernet 0/0/8
  load-interval 20
exit
interface tengigabitethernet 0/0/9
  load-interval 20
exit
interface tengigabitethernet 0/0/10
  load-interval 20
exit
interface tengigabitethernet 0/0/11
  load-interval 20
exit
interface tengigabitethernet 0/0/12
  load-interval 20
exit
interface tengigabitethernet 0/0/13
  load-interval 20
exit
interface tengigabitethernet 0/0/14
  load-interval 20
exit
interface tengigabitethernet 0/0/15
  load-interval 20
exit
interface tengigabitethernet 0/0/16
  load-interval 20
exit
interface tengigabitethernet 0/0/17
  load-interval 20
exit
interface tengigabitethernet 0/0/18
  load-interval 20
exit
interface tengigabitethernet 0/0/19
  load-interval 20
exit
interface tengigabitethernet 0/0/20
  load-interval 20
exit
interface tengigabitethernet 0/0/21
exit
interface tengigabitethernet 0/0/22
exit
interface tengigabitethernet 0/0/23
exit
interface tengigabitethernet 0/0/24
exit
interface tengigabitethernet 0/0/25
exit
interface tengigabitethernet 0/0/26
exit
interface tengigabitethernet 0/0/27
exit
interface tengigabitethernet 0/0/28
exit
interface tengigabitethernet 0/0/29
exit
interface tengigabitethernet 0/0/30
exit
interface tengigabitethernet 0/0/31
exit
interface tengigabitethernet 0/0/32
exit

vrf mgmt-intf
  rd 0:0
exit

lacp
  interface bundle-ether 1
  exit
  interface tengigabitethernet 0/0/3
    bundle id 1
    bundle mode active
  exit
  interface tengigabitethernet 0/0/7
    bundle id 1
    bundle mode active
  exit
exit

load-balancing hash-fields mac-dst
load-balancing hash-fields mac-src
load-balancing hash-fields port-dst
load-balancing hash-fields port-src
load-balancing lag shift 3

logging console debug

router static
  vrf mgmt-intf
    address-family ipv4 unicast
      destination 172.30.0.0/20 172.31.0.1
      exit
    exit
  exit
exit

ssh server vrf mgmt-intf
exit

telnet server vrf mgmt-intf
exit

user admin
  password encrypted $6$хеш
  privilege p15
exit


ospf (ME5200S+MES5324)

схема: r1 -> sw1 -> sw2 -> r2



r1 

router ospfv2 1
  area 0.0.0.0
    interface loopback 1
      mtu-ignore
      passive
    exit
    interface tengigabitethernet 0/0/1
      mtu-ignore
      network point-to-point
      passive
    exit
    interface tengigabitethernet 0/0/4
      metric 10
      mtu-ignore
      network point-to-point
    exit
  exit
  redistribution connected 1
  exit
  redistribution connected CONNECT-OSPF-20
    metric-type ospf-type1-external
    metric-value 300
    priority 20
  exit
  router-id 1.1.1.1
exit






sw1
router ospf 1
 network 10.0.50.1 area 0.0.0.0
 network 10.0.100.2 area 0.0.0.0
 router-id 1.1.1.2
 redistribute connected metric-type type-2 subnets
exit
!
interface ip 10.0.50.1
 ip ospf network point-to-point
exit
!
interface ip 10.0.100.2
 ip ospf network point-to-point
exit                      




sw2
router ospf 1
 network 10.0.10.2 area 0.0.0.0
 network 10.0.50.2 area 0.0.0.0
 router-id 1.1.1.3
 redistribute connected metric-type type-2 subnets
exit
!
interface ip 10.0.10.2
 ip ospf network point-to-point                       
exit
!
interface ip 10.0.50.2
 ip ospf network point-to-point
exit



r2 
router ospfv2 1
  area 0.0.0.0
    interface bundle-ether 1
      mtu-ignore
      network point-to-point
    exit
    interface loopback 1
      mtu-ignore
    exit
    interface tengigabitethernet 0/0/1
      mtu-ignore
      network point-to-point
    exit
  exit
  redistribution connected subnets
  exit
  redistribution local subnets
  exit
  router-id 1.1.1.4



OOB на me5100


config
interface mgmt 0/fmc0/1
ipv4 address 192.168.16.160/24
commit

config
telnet server vrf mgmt-intf
exit
commit

config
ssh server vrf mgmt-intf
exit
commit

OSPF

Существует 5 типов пакетов протокола OSPF, которые позволяют устанавливать соседство и выполнять обновление маршрутной информации:
Type 1 — Hello. Обнаруживает соседей и поддерживает соседские отношения.
Type 2 — Database Description. Описывает содержимое базы данных состояния канала маршрутизатора.
Type 3 — Link State Request (LSR). Запрос на получение базы данных состояния канала.
Type 4 — Link State Update (LSU). Обновление базы данных состояния канала (передача LSA соседним маршрутизаторам).
Type 5 — Link State Acknowledgment (LSAck). Подтверждение получения обновления.

Каждый пакет Link State Update, генерируемый маршрутизатором, содержит один или несколько LSA. Существует 5 различных типов LSA:
Type 1 — Router-LSA. 
Генерируется каждым маршрутизатором для каждой области, которой он принадлежит. 
Он описывает состояние интерфейсов маршрутизатора, подключенных к этой области.
Type 2 — Network-LSA. 
Генерируется назначенным маршрутизатором (DR). 
Он описывает набор маршрутизаторов, подключенных к определенной сети.
Рассылается только в области, содержащей эту сеть.
Type 3 или 4 — Summary-LSA. 
Описывают маршруты между областями.
Type 3 Summary-LSA генерируются ABR и описывают маршруты между ABR и внутренними маршрутизаторами локальной области. 
Они рассылаются через магистраль другим ABR. 
Type 4 Summary-LSA описывают маршруты к ASBR.
Type 5 - AS-external-LSA. 
Генерируются ASBR и описывают маршруты к пунктам назначения за пределами автономной системы.
Маршрут по умолчанию для автономной системы также описывается AS-external-LSA



Команды для диогностики ospf
MES5324:
общая инфа:
show ip ospf
соседи:
show ip ospf neighbor
обмен:
show ip ospf database

ME5200
общая инфа:
show ospfv2
соседи:
show ospfv2 neighbors
обмен:
show ospfv2 database

lacp MES5324 + MES5324:

Настройки sw1 
interface tengigabitethernet1/0/2
 channel-group 5 mode auto
exit
!
interface tengigabitethernet1/0/3                     
 channel-group 5 mode auto
exit
!
interface tengigabitethernet1/0/5
 channel-group 5 mode auto
exit
!
interface tengigabitethernet1/0/6
 channel-group 5 mode auto
exit
!
interface Port-channel5
 ip address 10.0.50.1 255.255.255.0
exit 

Настройки sw2   
interface tengigabitethernet1/0/2
 channel-group 5 mode auto
exit
!
interface tengigabitethernet1/0/3
 channel-group 5 mode auto
exit                                                  
!
interface tengigabitethernet1/0/5
 channel-group 5 mode auto
exit
!
interface tengigabitethernet1/0/6
 channel-group 5 mode auto
exit
!
interface Port-channel5
 ip address 10.0.50.2 255.255.255.0
exit

lacp MES5324 + ME5200S:

Настройка MES5324:
interface tengigabitethernet1/0/1
 channel-group 2 mode auto
exit
!
interface tengigabitethernet1/0/7
 channel-group 2 mode auto
exit
!
interface Port-channel2                               
 ip address 10.0.10.2 255.255.255.0
exit

Настройка ME5200S:
lacp
  interface bundle-ether 1
  exit
  interface tengigabitethernet 0/0/3
    bundle id 1
    bundle mode active
  exit
  interface tengigabitethernet 0/0/7
    bundle id 1
    bundle mode active
  exit
exit
!
interface bundle-ether 1
  ipv4 address 10.0.10.1/24
exit

тесты кабеля

Показать интерфейсы:
show interfaces status

Тест медного кабеля:
test cable-diagnostics tdr interface gi0/1
Показать длину медного кабеля:
show cable-diagnostics cable-length


Показать оптические интерфейсы:
show fiber-ports optical-transceiver
show fiber-ports optical-transceiver interface TengigabitEthernet1/0/7
show fiber-ports optical-transceiver detailed interface TengigabitEthernet1/0/7

Зеркало трафика:

monitor session 1 destination interface gi1/0/3 - куда перенаправить трафик
monitor session 1 source interface gi1/0/2 both - откуда откуда перенаправить  трафик

mpls

mpls label = 32 bit

layer2 Header | MPLS Header | IP Packet

      MPLS Header:32 Bits (4 Bytes)
The label Value |    Exp       |          S              | TTL
      20 bits   | 3 bits       | 1 bits                  | 8 bits 
1 -  1 048 576  | 8 значений   |  два значения 0 или 1   | 0-255


Стак S
Первый пришёл последний вышел FILO
Fist IN / Fist OUT
0 - еще будет mpls label
1 - все последний mpls label



LSR - LABEL SWITCH ROUTER
Ingress LSR (imposition) - получает IP пакет, пушит в него MPLS Label(stack)
                           Следовательно вылетает из него MPLS пакет

Egress LSR (disposition) - получает MPLS пакет, удаляет из него лейбл.
                           Следовательно вылетает из него уже IP пакет.

Ingress/Egress LSR - находятся по краям (edge)mpls сети.
                     Часто их называют PE(provider edge) устройствами

Intermediate LSR - получает MPLS пакет, производит операции над ним и отправляет MPLS трафик дальше.
                   Часто называются P (Provider) устройствами 


ip  ->   LSR -> ip   = IP FORWARDING
mpls -> LSR -> mpls  = INTERMEDIA LSR (P - provider)
mpls -> LSR -> ip    = EGRESS LSR
ip -> LSR -> mpls    = INGRESS LSR

CE ->> PE --> MPLS(P) <-- PE <--CE

CE - Costome Edge (оборудование которое ничего не знает про MPLS)
PE - Provider Edge ( на границе сети ) (Оборудование которое как то взаимодействует с MPLS, например ip -> mpls)
P - Provider Router ( внутри сети) (оборудование общающееся исключительно через MPLS)

imposition - добавление метки mpls
desposition - убирание метки mpls

LABEL SWITCH PATH (LSP). FEC
LSP - это простой список из LSR которые коммутируют MPLS пакет через всю MPLS сеть, либо через часть MPLS сети
Forwarding Equivalence Class (FEC) - группа пакетов которые коммутируются по одному и тому же пути и обслуживают одинаково
Все пакеты принадлежавшие одному FEC будут иметь один и тот же лейбл.
При этом пакеты с одним и тем же лейблом не всегда принадлежат к одному FEC, например, в случае если их mpls EXP отличаются.
Ingress LSR принимает решения о том, к каким FEC принадлежат приходящие в него пакеты.

LFIB - база меток mpls (Label Forwarding instance(information)Base
Содержит ipv4/ipv6 prefix, VPN prefix, TE tunnel, l2 forwarding entry, local label, remote label
85 17 eth1
11 22 eth2
13 33 eth3

Local Label - метка, которую локальный LSR назначил на префикс
Remote Label - метка, которую LSR получил от соседнего LSR

Протоколы получения лейблов:
1. Static ( возможность есть, но никогда так не делай! )
2. LDP ( сам все сделал, сам настроил )
3. RSGP-TE ( можно явно задать хождение трафика ) / Trafic Engineering
4. BGP
5. SR - mpls 
   SRv6 
   (модное под капотом OSPF/ISIS)



LDP = LABEL DISTRIBUTION PROTOCOL
назначает лейблы на все префиксы в таблице маршрутизации и передает соседям label binding
Prefix+label=binding
Labal binding передается соседям автоматически без каких то дополнительных запросов
SWAP - замена лейбла на другой
PUSH - был ip пакет ушел mpls
POP - был mpls ушел ip 



Включение mpls на cisco
mpls ldp router-id lo0
mpls ip

int gi 0/0
mpls ip

show mpls forwarding-table
show ip route


Включение mpls на eltex ME5200S
mpls
  forwarding
    interface loopback 1
    interface tengigabitethernet 0/0/4
  exit
  ldp
    discovery interface tengigabitethernet 0/0/4
    exit
    neighbor 10.50.50.4 - сосед
    exit
  exit
  router-id 10.50.50.1 - наш ип на loopback
  transport-address 10.50.50.1 - наш ип на loopback
exit



show mpls ldp forwarding - покажет метки
show mpls ldp bindings local - покажет распределение меток локально
show mpls ldp bindings remote - покажет распределение меток удаленных
show mpls ldp bindings mldp - покажет распределение меток

GRE пример конфигурации

Маршрутизатора A:
interface tunnel-ip 1
  ipv4 address 10.0.1.1/30
  tunnel destination 192.168.55.5
  tunnel encapsulation gre
  tunnel source 192.168.55.21
exit
interface tengigabitethernet 0/0/11.10043
  encapsulation outer-vid 100 inner-vid 43
  ipv4 address 192.168.43.1/24
exit
router static
  address-family ipv4 unicast
    destination 192.168.41.0/24 10.0.1.2
    exit
  exit
exit


Маршрутизатор Б:
interface tunnel-ip 1
  ipv4 address 10.0.1.2/30
  tunnel destination 192.168.55.21
  tunnel encapsulation gre
  tunnel source 192.168.55.5
exit
interface tengigabitethernet 0/1/5.10041
  encapsulation outer-vid 100 inner-vid 41
  ipv4 address 192.168.41.1/24
exit
router static
  address-family ipv4 unicast
    destination 192.168.43.0/24 10.0.1.1
    exit
  exit
exit



Пример 1-2:

router 1
interface tunnel-ip 1
  ipv4 address 10.99.99.1/30
  tunnel destination 10.50.50.4
  tunnel encapsulation gre
  tunnel source 10.50.50.1
exit

router 2
interface tunnel-ip 1
  ipv4 address 10.99.99.2/30
  tunnel destination 10.50.50.1
  tunnel encapsulation gre
  tunnel source 10.50.50.4
exit




ECMP

По умолчанию в OSPF - 5.
Чтобы заработал ECMP, необходимо прописать дополнительно:
router equal-cost
exit

Пример конфигурации IP SLA:

https://docs.eltex-co.ru/pages/viewpage.action?pageId=303825161&src=contextnavpagetreemode

vlan

MES5324:

interface tengigabitethernet1/0/1
 switchport mode general
 switchport general allowed vlan add 1002 tagged
 switchport forbidden default-vlan
exit

interface tengigabitethernet1/0/2
 spanning-tree disable                                
 spanning-tree bpdu filtering
 switchport mode general
 switchport general allowed vlan add 1002 tagged
 switchport forbidden default-vlan
exit

interface Port-channel2
 switchport mode general
 switchport general allowed vlan add 1002 tagged
 switchport forbidden default-vlan
exit


ME5200:
interface bundle-ether 1.1002
  encapsulation outer-vid 1002
  ipv4 address 10.75.75.2/24
exit

interface tengigabitethernet 0/0/4.1002
  encapsulation outer-vid 1002
  ipv4 address 10.75.75.1/24
exit

ESR VRRP кластер

sh run cluster
sh run bridges 100
bridge 100
  vlan 1
  ip firewall disable !!! ПОтотм включим как убедимся что заработало
  ip фввкуыы 192.168.100.1/24
unit 1 
 ip address 192.168.100.2/24
unit 2
  vrpp forse-up
  vrrp id 100
  vrrp 192.168.100.100/24
  vrrp group 1
  vrrp preempt disable
  vrrp timers garp refrash 1
  vrrp
  enable
exit 


Проверка
show cluster status
show cluster sync status


Интерфесы на первом юните нумеруется 1/0/1 а на втором 2/0/1
sh run int gi 1/0/1 - покажет первый  юнит
sh run int gi 2/0/1 - покажет второй юнит



bridge 20
 vlan 20
 security-zone trusted
 ip address 172.16.1.2/24 unit 1
 ip address 172.16.1.3/24 unit 2
 vrrp id 20
 vrrp ip 172.16.1.1/24
 vrrp group 1
 vrrp timers garp refrash 1
 vrrp
 enable
exit

object-group network sync_dst
  ip address-range 192.168.100.2 unit 1
  ip address-range 192.168.100.1 unit 2
exit
object-group network sync_src
  ip address-range 192.168.100.1 uni1
  ip address-range 192.168.100.2 unit2
exit

по поводу фаервола:
sh run failovers
ip failover
  local-address object-group sync_src
  remote-address object-group sync_dst
  vrrp-group 1
exit

ip firewall failover
  sync-type unicast
  port 9999
enable
exit


ip dhcp-server failover
  mode active-standby
  enable
exit

crypro-sync
  enable
exit


Проверка доступных сервисов:
show higj-availability state


Включение фаервола:
Проверяем сессии:
show ip firewall sessions inside-source-address 192.168.100.1

Рубрики
Raspberry Pi

yocto raspberry4

Подготовка ПК:


0. Подготовка системы  debian/ubuntu:
apt update
apt install lz4 vim sudo gawk wget git-core diffstat unzip texinfo gcc-multilib build-essential chrpath socat cpio python3 python3-pip python3-pyelftools python3-pexpect xz-utils debianutils iputils-ping libsdl1.2-dev xterm
 
1. Опционально, команда python выполняет python3
update-alternatives --install /usr/bin/python python /usr/bin/python3 1
 
 
2. Настраиваем локаль:
vim /etc/locale.gen
-------------------
en_US.UTF-8           <---------- найти и раскоментить
------------------
 
Перечитать local:
locale-gen
На этом все, теперь у вас должна появится local en_US.UTF-8

Подготовка yocto:

0. Качаем репу:
git clone git://git.yoctoproject.org/poky
cd poky

1. Меняем репу на dunfell
git checkout dunfell

2. Преступаем к сборке
source oe-init-build-env

3. Настраиваем конфигурацию
vim conf/local.conf
-------------------
MACHINE = "raspberrypi4"
-------------------

Еще варианты:
MACHINE = "qemux86-64"
MACHINE = "qemux86"

Начинаем сборку:

Теперь можно приступить к сборке образа. 
Например, для создания минимального образа:
bitbake core-image-minimal

Если вам нужен образ с графическим интерфейсом:
bitbake core-image-sato


Создание образа SD-карты:

После завершения сборки, образ будет находиться в директории tmp/deploy/images//
cd tmp/deploy/images/raspberrypi4/
dd if=core-image-minimal-raspberrypi4.rpi-sdimg of=/dev/sdX bs=4M status=progress

wic

Создайте файл, например, my-image.wic, с таким содержимым:
cat >  my-image.wic << "EOF"
part /boot --source bootimg-partition --ondisk mmcblk0 --fstype=vfat --label boot --active --align 4
part / --source rootfs --ondisk mmcblk0 --fstype=ext4 --label root --align 4
EOF

Этот файл описывает образ с двумя разделами:
/boot — загрузочный раздел с файловой системой FAT32.
/ — корневой раздел с файловой системой ext4.

После того как вы собрали образ с помощью Yocto (например, bitbake core-image-minimal), 
вы можете использовать wic для создания образа SD-карты.
wic create my-image.wic -e <имя_образа>
Здесь:
my-image.wic — это ваш конфигурационный файл.
-e <имя_образа> — указывает, какой образ использовать (например, core-image-minimal).

Пример:
wic create my-image.wic -e core-image-minimal

Если вам нужно добавить дополнительные разделы или изменить структуру образа, вы можете редактировать .wic файл. 
Например:
part /data --source empty --ondisk mmcblk0 --fstype=ext4 --label data --size 1G
part /home --source rootfs --ondisk mmcblk0 --fstype=ext4 --label home --rootfs-dir=home


Использование готовых wic-шаблонов
wic list images
wic create sdimage-bootpart -e core-image-minimal


Если вам нужно добавить кастомные файлы или скрипты в образ, вы можете использовать директиву --source в .wic файле. 
Например:
part /scripts --source script --ondisk mmcblk0 --fstype=ext4 --label scripts --script myscript.sh



Создайте файл x86-image.wic:
# x86-image.wic
part /boot --source bootimg-pc --ondisk sda --fstype=vfat --label boot --active --align 4
part / --source rootfs --ondisk sda --fstype=ext4 --label root --align 4

wic create x86-image.wic -e core-image-minimal


Рубрики
napi

yocto napi наша

0. Подготовка системы  debian/ubuntu:
apt install lz4 vim sudo gawk wget git-core diffstat unzip texinfo gcc-multilib build-essential chrpath socat cpio python3 python3-pip python3-pyelftools python3-pexpect xz-utils debianutils iputils-ping libsdl1.2-dev xterm

1. Опционально, команда python выполняет python3
update-alternatives --install /usr/bin/python python /usr/bin/python3 1


2. Настраиваем локаль:
vim /etc/locale.gen
-------------------
en_US.UTF-8           <---------- найти и раскоментить
------------------
 
Перечитать local:
locale-gen
На этом все, теперь у вас должна появится local en_US.UTF-8


3. Создаем пользователя например useryocto
useradd useryocto
Входим под пользователем useryocto
su -  useryocto

 
4.  Создаем директорию yocto и cкачиваем репазитори napi
mkdir yocto
cd yocto
git clone --depth 1 git://git.yoctoproject.org/poky -b kirkstone
cd poky
git clone --depth 1 git://git.openembedded.org/meta-openembedded.git -b kirkstone
git clone --depth 1 git://git.yoctoproject.org/meta-arm.git -b kirkstone
git clone --depth 1 https://gitlab.nnz-ipc.net/pub/napilinux/meta-influx.git -b kirkstone
git clone --depth 1 https://gitlab.nnz-ipc.net/pub/napilinux/meta-nnz.git -b kirkstone
git clone --depth 1 https://github.com/sbabic/meta-swupdate -b kirkstone
git clone git://git.yoctoproject.org/meta-raspberrypi -b kirkstone

5. После загрузки выполняем 
source oe-init-build-env

6. На этом этапе мы можем скопировать настроенные слои
# napi image :
# -- # cp ../meta-nnz/conf/bblayers.conf.sample.napi conf/bblayers.conf
# frontcontrol image:
# -- # cp ../meta-nnz/conf/bblayers.conf.sample.fc conf/bblayers.conf
Я копирую слой для rpi
cp ../meta-nnz/conf/bblayers.conf.sample.rpi conf/bblayers.conf

7. Еще нужно добавить основной конфиг в котором мы в будущем выберем нужную платформу
cp ../meta-nnz/conf/local.conf.sample conf/local.conf


8. Редактируем файл local.conf
vim conf/local.conf 
---------------------------
MACHINE ?= "napi-rk3308b-s"  <----------------- ищем строку MACHINE
---------------------------
Возможные варианты: 
MACHINE ?=  "napi-rk3308b-s"
MACHINE ?= "napi-rk3308"
MACHINE ?= "roc-pc-rk3328"
MACHINE ?= "rockpro64-rk3399"


9. Сборка
Возможные варианты сборки:
nnz-frontcontrol-image
nnz-napi-image
nnz-napi-image-dev
nnz-napi-image-dev-noupdate


Пример сборки:
bitbake -k nnz-frontcontrol-image

Загрузка  исходников без сборки:
bitbake nnz-frontcontrol-image --runall=fetch
bitbake nnz-napi-image --runall=fetch
bitbake nnz-napi-image-dev --runall=fetch
bitbake nnz-napi-image-dev-noupdate --runall=fetch

Ошибка:
Я собирал от пользователя user и архивы закинул другому пользователю и получил ошибку:
Error, TMPDIR has changed location. 
You need to either move it back to /home/user/yocto/poky/build/tmp or delete it and rebuild
Просто удалил файлы сборки из tmp, так как в архиве были нужные исходники для сборки, а самой сборки не производилось.
rm -rf ~/yocto/poky/build/tmp

10. Собранные имеджи искать тут:
~/yocto/poky/build/tmp/deploy/images


11. Учетные данные по умолчанию.
Username: root
Password: napilinux


Прошивка napi (rk3308)

Ссылки:
бутлодеры:
https://dl.radxa.com/rockpis/images/loader/ 
Образы napi:
https://download.napilinux.ru/linuximg/

Компоненты для rkdeveloptool
sudo apt-get install libudev-dev libusb-1.0-0-dev dh-autoreconf


rkdeveloptool
git clone https://github.com/rockchip-linux/rkdeveloptool
cd rkdeveloptool
autoreconf -i
./configure
make
cp rkdeveloptool /usr/local/bin/

Убедится что нету других rkdeveloptool
whereis  rkdeveloptool



Команды rkdeveloptool
rkdeveloptool - справка
rkdeveloptool ld - лист устройств
rkdeveloptool db  <файл загрузчика> - загрузка бутлодера
rkdeveloptool wl 0 <файл образа> - загрузка прошивки

Порядок прошивки:
0. нажимаем и удерживаем клавишу Maskrom, затем коротко нажимаем клавишу Reset не отпускаем Maskrom, через несколько секунд отпускаем Maskrom;
1. Грузим бутлодер
sudo rkdeveloptool db rk3308_loader_uart0_m0_emmc_port_support_sd_20190717.bin
Или
sudo rkdeveloptool db  rk3308_loader_ddr589MHz_uart0_m0_v2.06.136sd.bin
!!! Если бутлодер не правильный или вы его не загрузили, то получите ошибку: Write LBA failed!


2. Прошиваем прошивку
sudo rkdeveloptool wl 0 <файл образа>
Пример:
rkdeveloptool wl 0 napi-rk3308b-s-latest-dev.img


P.S Очистка nand:
Создаем пустой файл с помощью dd
dd if=/dev/zero of=./zero.img bs=4M count=10
Шьем этим файлом.
rkdeveloptool db  <файл загрузчика> - загрузка бутлодера
rkdeveloptool wl 0 zero.img
minicom -D /dev/ttyUSB1 -b15000000
Рубрики
Mikrotik

mikrotik WebFig / web

Ссылки:

https://help.mikrotik.com/docs/spaces/ROS/pages/328131/WebFig

Настройка:

!!! Укажи правильный ip для вашего микротика
!!! также вы можете изменить порт для вебинтерфеса IP-> services-> www-ssl
!!! так же рекомендуется выключить IP -> services ->www

Генерация и установка ssl сертификата:
certificate add name=local-cert common-name=local-cert key-usage=key-cert-sign,crl-sign 
certificate sign local-cert 
certificate add name=webfig common-name=192.168.88.1
certificate sign webfig 

Включение веб сервера с генерированным сертификатом:
ip service
set www-ssl certificate=webfig disabled=no


Рубрики
device \ устройства \ железо

lx2160

сборка ядра

Переходим в каталог в котором будем собирать ядро:
cd /opt

Ставим не обходимые пакеты для сборки в систему:
apt install git make gcc linux-libc-dev pkg-config libncurses-dev flex bison  libssl-dev libelf-dev dwarves rsync bc fakeroot build-essential  xz-utils  libncurses5-dev

Скачиваем патчи солидрана:
git clone https://github.com/SolidRun/lx2160a_build.git

Скачиваем ядро:
git clone --depth 1 https://github.com/nxp-qoriq/linux -b LSDK-21.08

Переходим в каталог ядра:
cd linux

Производим слияние конфигов:
cp ../lx2160a_build/configs/linux/lx2k_additions.config arch/arm64/configs/
./scripts/kconfig/merge_config.sh arch/arm64/configs/defconfig arch/arm64/configs/lsdk.config arch/arm64/configs/lx2k_additions.config 

Нужно как то себя обозначить для дальнейшего использования git:
  git config --global user.email "you@example.com"
  git config --global user.name "Your Name"
  
Применяем патчи:
git am  ../lx2160a_build/patches/linux-LSDK-21.08/*.patch

Получаем настройки текущего ядра:
Достаточно любой из команд, но ничего страшного если выполните по рядку
zcat /proc/config.gz > .config
make oldconfig

На этом этапе можно добавить batman_adv в конфиг
vim .config
найти строку CONFIG_BATMAN_ADV ( используй / для поиска)
и привести ее к виду 
CONFIG_BATMAN_ADV=m
CONFIG_BONDING=m

Теперь производим сборку и установку
make -j$(nproc)
make modules_install
make install 

Если требуется можно сохранить старое ядро
mv /boot/Image /boot/Image.original
mv /boot/Image.gz /boot/Image.gz.original

Вот так мы установим новое ядро:
cp arch/arm64/boot/Image.gz arch/arm64/boot/Image /boot/

скрипт для поднятия сети


cat > /usr/local/sbin/cx-lx2-network.sh << "EOF"
#!/bin/bash
# Script to bring up high speed network interfaces ont the SolidRun LX2160A
# Clearfog / Honeycomb
for n in 9 7 10 8
 do /usr/bin/ls-addni dpmac.$n
done
exit 0

EOF



cat > /etc/systemd/system/ls-addni.service << "EOF"
[Unit]
DefaultDependencies=no
Description=Bring up high-speed network interfaces
Before=network-pre.target
Wants=network-pre.target

[Service]
Type=oneshot
ExecStart=/usr/local/sbin/cx-lx2-network.sh
TimeoutSec=0
RemainAfterExit=yes

[Install]
RequiredBy=network.target
EOF

chmod +x /usr/local/sbin/cx-lx2-network.sh
systemctl daemon-reload
systemctl enable ls-addni.service

sysctl.conf

net.ipv4.ip_forward=1
net.ipv4.tcp_max_tw_buckets = 65536
#net.ipv4.tcp_tw_recycle = 1
net.ipv4.tcp_tw_reuse = 0
net.ipv4.tcp_max_syn_backlog = 131072
net.ipv4.tcp_syn_retries = 3
net.ipv4.tcp_synack_retries = 3
net.ipv4.tcp_retries1 = 3
net.ipv4.tcp_retries2 = 8
#net.ipv4.tcp_rmem = 16384 174760 349520
#net.ipv4.tcp_wmem = 16384 131072 262144
net.ipv4.tcp_mem = 262144 524288 1048576
net.ipv4.tcp_max_orphans = 65536
net.ipv4.tcp_fin_timeout = 10
net.ipv4.tcp_low_latency = 1
#net.ipv4.tcp_syncookies = 0


net.core.rmem_max = 134217728 
net.core.wmem_max = 134217728 
#net.ipv4.tcp_rmem = 4096 87380 67108864
#net.ipv4.tcp_wmem = 4096 65536 67108864
net.ipv4.tcp_rmem = 16384 174760 67108864
net.ipv4.tcp_wmem = 16384 131072  67108864


sysctl -w net.ipv4.tcp_window_scaling=1
sysctl -w net.core.rmem_max=16777216
sysctl -w net.core.wmem_max=16777216

BATMAN-ADV

apt install -y  git libnl-3-dev libnl-genl-3-dev libnl-genl-3-dev make  pkg-config gcc

Установка нового модуля batman-adv
cd /opt/
git clone https://github.com/open-mesh-mirror/batman-adv.git
cd batman-adv
git checkout v2024.2
sed -i '/export/s/=n/=y/' Makefile
make -j`nproc`
make install
echo "batman-adv" | tee -a /etc/modules


Сборка и установка программы управления batman_adv
cd /opt/
git clone https://github.com/open-mesh-mirror/batctl.git
cd batctl/
git checkout v2024.2
make -j`nproc`
make install

solidrun 2160

https://solidrun.atlassian.net/wiki/spaces/developer/pages/197494288/HoneyComb+LX2+ClearFog+CX+LX2+Quick+Start+Guide
https://github.com/SolidRun/lx2160a_build
https://solid-run-images.sos-de-fra-1.exo.io/LX2k/lx2160a_build/20240731-2a7ab21/lx2160acex7_2000_700_3200_8_5_2-2a7ab21.img.xz


1. Включаем загрузку с сд карты (off  on  on  on  off)
2. Прерываем загрузку нажатием любой кнопки
3. Записываем в mmc образ
load mmc 0:1 0xa4000000 ubuntu-core.img
mmc dev 1
mmc write 0xa4000000 0 0xd2000
4. Загружаемся в новь созданный образ
boot
5. Логинемся
root/root
6. Меняем разметку на диске mmc
fdisk /dev/mmcblk1
жмем p - показать размер текущей системы
жмем d - удалить раздел
жмем n - создадим раздел
!!! внимание нужно отступить  131072
вводим 131072
после всех операций с разделами для сохранения жмем w
7. Увеличиваем фс
 resize2fs /dev/mmcblk1p1
8. Выключаем устройство и переключаем перемычки на загрузку mmc
(off  on  on  off  off)

9. ssh root
echo "PermitRootLogin yes" >> /etc/ssh/sshd_config
systemctl restart sshd


10. dhcp
cat > /etc/network/interfaces.d/eth2 << "EOF"  
auto eth2
iface eth2 inet dhcp
EOF

Рубрики
Raspberry Pi

i2c

Команда i2cdetect

Показать доступные адаптеры 
i2cdetect -l 
i2c-0   i2c             2180000.i2c                             I2C adapter
i2c-1   i2c             21b0000.i2c                             I2C adapter



Вывод команды i2cdetect -y 0

     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00:                         -- -- -- -- -- -- -- -- 
10: -- -- -- -- -- -- -- -- 18 19 -- -- -- -- -- -- 
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
30: 30 -- -- -- -- 35 -- -- 38 -- -- -- -- -- -- -- 
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
50: -- 51 -- -- UU UU -- -- -- -- -- -- -- -- -- -- 
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
70: -- -- -- -- -- -- -- -- 

--: Указывает, что по этому адресу на I2C-шине не было обнаружено устройства.
UU: Указывает, что устройство по этому адресу используется ядром (или драйвером) и недоступно для работы через i2c-tools
число (например, 18, 19, 30): Указывает на обнаруженное устройство по этому адресу.

Здесь показаны устройства, обнаруженные на шине 0 I2C. 
Они находятся по следующим адресам:
0x18
0x19
0x30
0x35
0x38
0x51

Адреса 0x54 и 0x55 помечены как UU, что означает, 
что эти устройства уже используются ядром, 
скорее всего драйвером.



Проверьте загруженные модули ядра:
Используйте команду lsmod, чтобы увидеть, какие модули ядра загружены, и попробуйте найти тот, который использует адреса 0x54 и 0x55.

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

Например:
rmmod имя_модуля

Вернуть модуль ядра: 
modprobe имя_модуля

Команда i2cset

Команда i2cset используется для записи данных в регистр устройства на I2C-шине.
i2cset -y 0 0x54 0x00 0x12 0x34 0x56 0x78 0x9a i
-y: Отключает интерактивный запрос подтверждения (позволяет выполнять команду без подтверждения).
0: Номер I2C-шины (обычно 0 или 1).
0x54: Адрес I2C-устройства.
0x00: Адрес регистра, в который будут записаны данные.
0x12 0x34 0x56 0x78 0x9a: Данные, которые будут записаны в регистр.
i: Указывает, что данные должны быть записаны как последовательность байтов (I2C block write).

Команда i2cget

Команда i2cget используется для чтения данных из регистра устройства на I2C-шине.

i2cget -y 0 0x54 0x00 i 5
-y: Отключает интерактивный запрос подтверждения.
0: Номер I2C-шины.
0x54: Адрес I2C-устройства.
0x00: Адрес регистра, из которого будут прочитаны данные.
i: Указывает, что чтение будет выполнено как последовательность байтов (I2C block read).
5: Количество байтов для чтения.

Стирание данных

i2cset -y 0 0x54 0x00 0x00 0x00 0x00 0x00 0x00 i
i2cset -y 0 0x54 0x05 0x00 0x00 0x00 0x00 0x00 i


Стирание большого объёма данных баш скрипт
-------------------------------
#!/bin/bash

DEVICE_ADDRESS=0x54
START_REGISTER=0x00
BLOCK_SIZE=16  # размер блока данных для стирания за раз

# Цикл для записи нулей по всем регистрам
for ((i=0; i<256; i+=BLOCK_SIZE)); do
  i2cset -y 0 $DEVICE_ADDRESS $((START_REGISTER + i)) $(printf '0x00%.0s' $(seq 1 $BLOCK_SIZE)) i
done
-------------------------------

Частный случай записи в eprom

# выгрузили модуль ядра
 rmmod at24


#конвертация ASCII-кодов
echo -n "bs04" | od -An -t x1
# ASCII-кодов
printf "x62x73x30x34" | echo -e $(cat -)

# пример записи в bs04
#i2cset -y 0 0x54 0x00 0x62 0x73 0x30 0x34 i

#через звездочку удалять не стоит  может будущем аукнутся 
rm /var/lib/nexuscli/access_token
rm /var/lib/nexuscli/device_id
rm /var/lib/nexuscli/refresh_token

#вот так можно прочитать 
i2cget -y 0 0x54 0x00  i 6

#загрузили модуль ядра
modprobe at24


Рубрики
Raspberry Pi

Linux Driver for USB WiFi / Realtek / RTL8811CU / RTL8821CU / RTL8821CUH / RTL8731AU / Access Point / RaspAP / 80211

Ссылки:

https://habr.com/ru/sandbox/131693/ полезная статья по драйверу
https://github.com/morrownr/8821cu-20210916 
https://github.com/fastoe/RTL8811CU_for_Raspbian
https://github.com/brektrou/rtl8821CU
https://github.com/gglluukk/rtl8188eus
https://github.com/Mange/rtl8192eu-linux-driver
https://github.com/aircrack-ng/rtl8812au
https://github.com/Mange/rtl8192eu-linux-driver
https://github.com/clnhub/rtl8192eu-linux


rpi
https://ru.wikipedia.org/wiki/Raspberry_Pi
https://forums.raspberrypi.com/viewtopic.php?t=344895
https://github.com/liushm/rtl8821CU
https://downloads.raspberrypi.com/raspios_lite_arm64/images/raspios_lite_arm64-2024-03-15/2024-03-15-raspios-bookworm-arm64-lite.img.xz
https://github.com/FancyPixel/rtl8821cu
https://github.com/morrownr/8821cu-20210916

AP 
https://habr.com/ru/articles/761852/
https://raspap.com/
https://docs.raspap.com/

Для raspbery pi получаем самые последние сорцы ядра:

apt install -y bc git dkms build-essential raspberrypi-kernel-headers
wget https://raw.githubusercontent.com/RPi-Distro/rpi-source/master/rpi-source -O /usr/local/bin/rpi-source 
chmod +x /usr/local/bin/rpi-source && /usr/local/bin/rpi-source -q --tag-update
rpi-source

Сборка драйвера:

!!! kernel linux < 6
!!! прочтите инструкции в файле README.md
!!! cat README.md
Ставим необходимы пакеты:
apt-get install dkms
dkms status
git clone https://github.com/brektrou/rtl8821CU.git
cd rtl8821CU
Выполняем установку
./dkms-install.sh
dkms status

Удаление драйвера установленного через DKMS

Проверяем что там у нас установлено используем команду "dkms status ":
dkms status 
rtl8821cu, 5.12.0.4: added
rtl8821CU, 5.4.1: added
Удаляем ( rtl8821cu/5.12.0.4):
dkms uninstall rtl8821cu/5.12.0.4
dkms remove rtl8821cu/5.12.0.4 --all

8821cu-20210916 RPI 3B+

https://github.com/morrownr/8821cu-20210916?tab=readme-ov-file

Ставим пакеты для сборки:
apt install -y bc git dkms build-essential raspberrypi-kernel-headers
wget https://raw.githubusercontent.com/RPi-Distro/rpi-source/master/rpi-source -O /usr/local/bin/rpi-source 
chmod +x /usr/local/bin/rpi-source && /usr/local/bin/rpi-source -q --tag-update

Качаем драйверы:
cd /opt
git clone https://github.com/morrownr/8821cu-20210916

Устанавливаем драйвер
!!! В Makefile уже установлена авто определения драйвера.
cd 8821cu-20210916/
make -j4
./dkms-make.sh 
./install-driver.sh 

AP

https://habr.com/ru/articles/761852/
https://raspap.com/

sudo apt-get update
sudo apt-get full-upgrade
sudo reboot
curl -sL https://install.raspap.com | bash


Username: admin
Password: secret

Рубрики
device \ устройства \ железо

intel / amd / nvidia / хронология

инфа тут:

https://ru.wikipedia.org/wiki/%D0%A1%D0%BF%D0%B8%D1%81%D0%BE%D0%BA_%D0%BC%D0%B8%D0%BA%D1%80%D0%BE%D0%BF%D1%80%D0%BE%D1%86%D0%B5%D1%81%D1%81%D0%BE%D1%80%D0%BE%D0%B2_Intel
https://ru.wikipedia.org/wiki/%D0%A1%D0%BF%D0%B8%D1%81%D0%BE%D0%BA_%D0%BC%D0%B8%D0%BA%D1%80%D0%BE%D0%BF%D1%80%D0%BE%D1%86%D0%B5%D1%81%D1%81%D0%BE%D1%80%D0%BE%D0%B2_AMD

Хронология intel:

1971, 15 ноября: 4004
1972, 4-й квартал: 4040
1972, 1 апреля: 8008
1974, 1 апреля: 8080
1976, март: 8085
1978, 8 июня: 8086
1979, 1 июня: 8088
1981, 1 января: iAPX 432
1982, 80186, 80188
1982, 1 февраля: 80286
1985, 17 октября: 80386DX
1988, 5 апреля: i960 aka 80960
1988, 16 июня: 80386SX
1989, 16 января: 80376
1989, 27 февраля: i860 aka 80860
1989, 10 апреля: 80486DX
1990, 15 октября: 80386SL
1991, 22 апреля: 80486SX
1992, 3 марта: 80486DX2
1992, 9 ноября: 80486SL
1993, 22 марта: Pentium
1994, 7 марта: 80486DX4
1994, август: Intel386 EX
1995, 1 ноября: Pentium Pro
1997, 8 января: Pentium MMX
1997, 7 мая: Pentium II
1998, 15 апреля: Celeron (Pentium II-based)
1998, 29 июня: Pentium II Xeon
1999, 26 февраля: Pentium III
1999, 25 октября: Pentium III Xeon
2000, 23 августа: XScale
2000, 20 ноября: Pentium 4
2001: Itanium
2001, 21 мая: Xeon
2002, июль: Itanium 2
2003, март: Pentium M
2003, март: Celeron M
2003, сентябрь: Pentium 4EE
2004, весна: EM64T
2005, 2 квартал: Pentium D
2006: Pentium Dual-Core
2006, 27 июля: Core 2 Duo
2006, осень: Core 2 Extreme
2007, январь: Core 2 Quad
2008, 1 квартал: Core 2 обновление линейки
2008, 2 квартал: Centrino Atom
2008, 3 квартал: Core i7
2009, 4 квартал: Core i5
2010, 1 квартал: Core i3
2011, 2 квартал: Celeron/Pentium Sandy Bridge (2-е поколение)
2011, 3 квартал: Сore i3, i5, i7, i7 — Extreme Edition Sandy Bridge
2012, 1 квартал: 22 нм, Core i3, i5, i7 — Ivy Bridge
2013, 2 квартал: 22 нм, Core i3, i5, i7 — Haswell
2014, 3 квартал: 14 нм, Core M, i3, i5, i7 — Broadwell
2015, 3 квартал: 14 нм, Core M, i3, i5, i7 — Skylake
2017, 1 квартал: 14 нм, Celeron, Pentium G, Core i3, i5, i7 — Kaby Lake (7-е поколение)
2017, 4 квартал: 14 нм, Core i3, i5, i7 — Coffee Lake, i9 Skylake.
2018, конец: 14 нм — Cooper Lake[3]
2018, 4 квартал: 14 нм — i3, i5, i7, i9 Coffee Lake Refresh (8-е поколение)
2018, конец: 14 нм — Cannon Lake
2019, 3 квартал: 14 нм - Comet Lake
2020, конец: 14 нм — Ice Lake (10-е поколение)
2021: 14 нм — Tiger Lake (11-е поколение)
2021, конец: 10 нм — Alder Lake (12-е поколение)
2022, 3 квартал: 10 нм — Raptor Lake (13-е поколение)
2023, 3 квартал: 10 нм — Raptor Lake Refresh (14-е поколение)

Хронология amd:

Процессоры AMD:
1975: AMD Am9080 (аналог Intel 8080).
1982: Am286 (аналог Intel 80286).
1991: Am386 (аналог Intel 80386).
1993: Am486 (аналог Intel 80486).
1996: K5 (первый собственный дизайн AMD).
1997: K6 (конкурент Intel Pentium).
1999: Athlon (первый 7-го поколения, конкуренция с Pentium III).
2003: Opteron и Athlon 64 (первые 64-битные процессоры для серверов и настольных ПК)​
2006: Athlon 64 X2 (первый двухъядерный процессор AMD).
2007: Phenom (первые процессоры с четырьмя ядрами, конкуренция с Intel Core 2 Quad).
2011: Bulldozer (архитектура для настольных ПК и серверов).
2017: Ryzen (первое поколение, основано на архитектуре Zen, конкуренция с Intel Core 7-го поколения)​
2020: Ryzen 5000 (на основе Zen 3, 7 нм).
2022: Ryzen 7000 (архитектура Zen 4, 5 нм).

Видеокарты:

AMD Radeon:
2000: Radeon DDR
2002: Radeon 9700 Pro
2006: Radeon X1900 XT
2010: Radeon HD 5000 Series (первые карты с поддержкой DirectX 11)
2011: Radeon HD 7970 (первый GPU на 28-нм техпроцессе)
2013: Radeon R9 290X (архитектура GCN 2.0)
2016: Radeon RX 400 Series (14-нм процесс, Polaris)
2019: Radeon RX 5700 XT (архитектура RDNA)
2020: Radeon RX 6000 Series (RDNA 2, поддержка аппаратного трассировки лучей)
2022: Radeon RX 7000 Series (RDNA 3)

NVIDIA GeForce:
1999: GeForce 256 (первая графическая карта NVIDIA с T&L)
2004: GeForce 6 Series (поддержка Shader Model 3.0)
2010: GeForce GTX 400 Series (архитектура Fermi)
2016: GeForce GTX 10 Series (архитектура Pascal)
2018: GeForce RTX 20 Series (первые с трассировкой лучей в реальном времени, архитектура Turing)
2020: GeForce RTX 30 Series (Ampere, увеличенная производительность)
2022: GeForce RTX 40 Series (Ada Lovelace, улучшения трассировки лучей и DLSS)

Видеокарты Intel
2010: Intel HD Graphics — начальная серия встроенных GPU для процессоров Core.
2012: Intel Iris Graphics — улучшенная встроенная графика для премиальных процессоров.
2013: Intel Iris Pro Graphics — первые iGPU с выделенной памятью (eDRAM).
2020: Intel Xe Graphics — новая архитектура, представленная как интегрированная и дискретная графика.
2022: Intel Arc Alchemist — первые дискретные видеокарты для настольных ПК и ноутбуков, ориентированные на массовый рынок.
Процессоры Intel
Год   Модель          Частота (MHz)   Кол-во ядер/потоков     Доп. информация
1971  Intel 4004      740 kHz         1 ядро                  Первый коммерческий процессор.
1978  Intel 8086      5-10            1 ядро                  Первый x86.
1993  Pentium         60-66           1                       Ввел поддержку суперскалярного исполнения.
2006  Core 2 Duo      1866-3166       2 ядра                  Революция в производительности.
2017  Core i9-7900X	3300-4200       10 ядер/20 потоков      HEDT-платформа Skylake-X.
2021  Core i9-12900K	3200-5200       16 ядер/24 потока       Архитектура Alder Lake, гибридные ядра.

Процессоры AMD
Год   Модель          Частота (MHz)   Кол-во ядер/потоков     Доп. информация
1999  Athlon          500-700         1 ядро                  Первый с частотой выше 1 GHz.
2011  FX-8150         3600-4200       8 ядер                  Архитектура Bulldozer.
2017  Ryzen 7 1800X   3600-4000	      8 ядер/16 потоков	      Дебют архитектуры Zen.
2020  Ryzen 9 5950X   3400-4900       16 ядер/32 потока	      Zen 3, флагманский чип.
2022  Ryzen 9 7950X   4500-5700       16 ядер/32 потока       Zen 4, 5-нм процесс.

Видеокарты NVIDIA
Год   Модель          Частота GPU (MHz)  Память (ГБ)     Частота памяти (MHz)    Архитектура
1999  GeForce 256     120                32MB            166                     Первый GPU.
2016  GTX 1080        1607-1733          8               10000                   Pascal
2018  RTX 2080 Ti     1350-1545	         11              14000                   Turing, Ray tracing.
2020  RTX 3080        1440-1710	         10              19000	                Ampere
2022  RTX 4090        2235-2520	         24              21000	                Ada Lovelace

Видеокарты AMD
Год    Модель            Частота GPU (MHz)       Память (ГБ)     Частота памяти (MHz)    Архитектура
2000   Radeon DDR        166                     32MB            366                     DirectX 7
2002   Radeon 9700 Pro   325                     128MB           620                     R300 
2013   Radeon R9 290X	  1000                    4              5000                    GCN 2.0
2019   RX 5700 XT	  1605-1905               8              14000                   RDNA
2020   RX 6900 XT	  1825-2250               16             16000                   RDNA 2
2022   RX 7900 XTX	  2300-2500               24             20000                   RDNA 3

Рубрики
napi

modbus gw

Links:

https://www.modbusdriver.com/modpoll.html

Начало:

## Что у нас есть

/dev/ttyS0 - порт 485 на напи
115200 - скорость
полярность:
a +
b - 

Для GW modbus:

1 . Создать необходимые директории и файлы:
#/etc/mbusd/mbusd-ttyS0.conf
#  Внимание имя конфиг файла должно иметь правильное название
# для  mbusd@ttyS1.service  файл будет иметь название mbusd-ttyS1.conf и etc.
# а иначе если файла не будет, то сервис запустится с параметрами по умолчанию 


mkdir /etc/mbusd
touch /etc/mbusd/mbusd-ttyS0.conf


2. Запуск демона.

systemctl enable mbusd@ttyS0.service
systemctl start mbusd@ttyS0.service
systemctl status mbusd@ttyS0.service

3. Настроить правильно конфиг:
Пример конфига:
https://github.com/3cky/mbusd/blob/master/conf/mbusd.conf.example

Тут нужно поменять :
device = /dev/ttyS3
speed = 115200
maxconn = 100 
timeout = 10 
pause = 50  
wait = 50


default conf:

#############################################
#                                           #
#    Sample configuration file for mbusd    #
#                                           #
#############################################

########## Serial port settings #############

# Serial port device name
device = /dev/ttyS0

# Serial port speed
speed = 9600

# Serial port mode
mode = 8n1

# RS-485 data direction control type (addc, rts, sysfs_0, sysfs_1)
trx_control = addc

# Sysfs file to use to control data direction
# trx_sysfile =

############# TCP port settings #############

# TCP server address to bind
address = 0.0.0.0

# TCP server port number
port = 502

# Maximum number of simultaneous TCP connections
maxconn = 32

# Connection timeout value in seconds
timeout = 60

######### Request/response settings #########

# Maximum number of request retries
retries = 3

# Pause between requests in milliseconds
pause = 100

# Response wait time in milliseconds
wait = 500

# Reply on Broadcast
replyonbroadcast = no

modpoll:

https://www.modbusdriver.com/modpoll.html
cd /opt
wget https://www.modbusdriver.com/downloads/modpoll.tgz 
tar -xvf modpoll.tgz
cd modpoll 
#arm
cp /opt/modpoll/arm-linux-gnueabihf/modpoll /usr/bin/
 


mbpoll -b 9600 -p none -m rtu -a 1 -r 515 /dev/ttyS3

modpoll -m tcp -t3 -a1 -r 515 -c 1 192.168.16.153
modpoll -0 -b 9600 -p none -m rtu -a 1 -t 3 -r 512  /dev/ttyUSB0
modpoll -0 -b 9600 -p none -m rtu -a 1 -t 3 -r 512  /dev/ttyUSB1

modpoll -m rtu -a 1 -b 9600 -p none -t 4:int -c 10 /dev/ttyS1
modpoll -m rtu -a 1 -b 9600 -p none -t 4:int -r 1 -c 62 /dev/ttyS1
modpoll -m rtu -a 1 -b 9600 -p none -t 4:int -r 1 -c 1 /dev/ttyS1
modpoll -m rtu -a 1 -b 9600 -p none -t 4:int -r 99 -c 1 /dev/ttyS1
modpoll -m rtu -a 1 -b 9600 -p none -r 1 -c 125 /dev/ttyS1
modpoll -m rtu -a 1 -b 9600 -p none -t 4:hex -r 1 -c 125 /dev/ttyS1
modpoll -m rtu -b 9600 -p none  -c 125 -a 1 -r 1 -0 /dev/ttyS1

modpoll -0 -b 9600 -p none -m rtu  /dev/ttyS1
modpoll -0 -b 115200 -p none -m rtu -a 2 -t 3 -r 512  /dev/ttyS4

#napi dt jsw1003
modpoll -m rtu -a 1 -b 9600 -p none -r100  /dev/ttyS1
modpoll -m tcp -a1 -r 100 -c 1 192.168.16.147

#cm4 dt  jsw1003
modpoll -m rtu -a 1 -b 9600 -p none -r100  /dev/ttyS7

Пример конфига:

root@napi-redkoala:~# cat /boot/uEnv.txt
verbosity=7
fdtfile=rk3308-napi-c.dtb
console=ttyS0,1152008
overlays=rk3308-usb20-host rk3308-i2c1-ds1307 rk3308-uart1
#overlays=rk3308-uart1 rk3308-uart2 rk3308-uart3 rk3308-i2c1-ds1338 rk3308-i2c3-m0 rk3308-usb20-host rk3308-spi1-w5500
kernelimg=Image
extraargs=

PM-3112-160

https://www.modbusdriver.com/modpoll.html
mbpoll -0 -b 9600 -P none -a 1 -t 3 -r 515 /dev/ttyUSB0
modpoll -0 -b 9600 -p none -m rtu -a 1 -t 3 -r 515  /dev/ttyUSB0

FCU-3308:
modpoll -0 -b 115200 -p none -m rtu -a 2 -t 3 -r 514 /dev/ttyS4
PM-3112-160 джамперы 1000000110

FCC-3308:
modpoll -0 -b 9600 -p none -m rtu -a 2 -t 3 -r 514 /dev/ttyS1
PM-3112-160 джамперы 1000000110

FCC-3308 AMVDK15:
modpoll -0 -b 9600 -p none -m rtu -a 1 -t 1 -r 1  /dev/ttyUSB0

FCC-3308 GT-TH-01:
modpoll -0 -b 9600 -p none -m rtu -a 9  -r 1 /dev/ttyUSB0

FCC-3308 isp-con isn-101:
modpoll -0 -b 9600 -p none -m rtu  -a 96  -t 3  -r 5 /dev/ttyS1

Настройки портов пример:
stty -F /dev/ttyS3 #посмотреть текущие настройки 
stty -F /dev/ttyS3 115200 cs8 -parenb -cstopb #установить настройки

napi FCC3308 add uart1

https://napiworld.ru/software/notes/armbian-tuning/
apt update
apt upgrade -y 
apt install telnet mbpoll snmpd snmp-mibs-downloader vim cmake pkg-config plocate gh mosquitto mosquitto-clients python3-pip python3-dev
wget https://gitlab.nnz-ipc.net/pub/napilinux/kernel/-/raw/linux6.6/arch/arm64/boot/dts/rockchip/overlay/rk3308-uart1.dts
armbian-add-overlay rk3308-uart1.dts