Рубрики
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