Под многие операционные системы от DEC нет TCP/IP, зато есть DECnet. Поэтому было бы удобно развернуть у себя свою сеть для обмена файлами и прочего. DECnet может работать поверх существующей локальной сети и довольно таки прост в настройке. А все его преимущества раскрываються когда в сети появляеться линукс-хост с поддержкой decnet. И сейчас я покажу как это сделать..
В качестве линукс-хоста буду использовать Ubuntu 16.04. Decnet модуль в ядре устарел и работает не корректно, но есть пропатченая версия, которая точно работает с ядрами 4.4.x и 4.9.x поэтому и убунту беру старую, но проблем у неё с репозитариями пока еще нет. Для установки пропатченого модуля придется пересобрать ядро.
Для начала устанавливаем Ubuntu Server 16.04, там как раз идет необходимое ядро. При установке запрещаем автоматическое обновление, чтобы не обновилось кастомное ядро. Затем устанавливаем необходимые пакеты:
$ sudo apt install install git build-essential kernel-package fakeroot libncurses5-dev libssl-dev ccache
Качаем исходники ядра 4.4.x
$ cd ~
$ mkdir kernelbuild
$ cd kernelbuild
$ git clone -b linux-4.4.y git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git
Копируем конфиг из старого ядра в новое и адаптируем его.
$ cd linux-stable
$ cp /boot/config-`uname -r` .config
$ yes '' | make oldconfig
Обычно дальше нужно запустить "make menuconfig" и выбрать нужные модули, но нам это не понадобиться т.к. по умолчанию модуль decnet уже включен. На данном этапе нужно заменить в ядре модуль на пропатченый dflkm.zip Для этого, содержимым архива, нужно заменить всё, что находиться в ~/kernelbuild/linux-stable/net/decnet
А дальше запускаем сборку ядра:
$ make clean
$ make -j `getconf _NPROCESSORS_ONLN` deb-pkg LOCALVERSION=-decnet
Процесс этот достаточно долгий, например в виртуалке это заняло около 3х часов. В итоге должны получить 5 пакетов для установки. Устанавливаем эти пакеты:
$ cd ..
$ sudo dpkg -i linux-firmware-image-4.4.198-decnet_4.4.198-decnet-1_amd64.deb
$ sudo dpkg -i linux-libc-dev_4.4.198-decnet-1_amd64.deb
$ sudo dpkg -i linux-headers-4.4.198-decnet_4.4.198-decnet-1_amd64.deb
$ sudo dpkg -i linux-image-4.4.198-decnet-dbg_4.4.198-decnet-1_amd64.deb
$ sudo dpkg -i linux-image-4.4.198-decnet_4.4.198-decnet-1_amd64.deb
После перезагрузки команда "uname -r" должна показать что используеться новое ядро.
Теперь когда есть рабочий модуль, нужно установить различные утилиты. Скачиваем архив dnprogs-2-68.zip Этот архив с утилитами, то же с различными патчами для нормальной работы. Распаковываем, собираем и устанавливаем:
$ make
$ sudo make install
При загрузке модуль ядра не будет подгружаться т.к. это нужно сделать вручную. Для этого я написал такой скрипт:
#!/bin/bash
# Load DECnet module
ADR="1.XXX"
# Check the script is being run by sudo
if [ "$(id -u)" != "0" ]; then
echo "This script must be run as: sudo "${0##*/}
exit 1
fi
modprobe decnet
echo -n ${ADR} | tee /proc/sys/net/decnet/node_address
dnetd
phoned
echo " For test, type: dnping HOST -u USER -p PASS"
В этом скрипте в 3ей строке нужно указать DECnet-адрес. На этом с установкой всё, во второй части опишу как это всё настроить на 2х ПК с Убунтой.