# Подготовка ПЛК на базе компьютера NexCom Nise

Проверено на оборудовании:

- NISE-104, 4Gb RAM, 500Gb Hitachi HDD
- NISE-105, 2Gb, 60Gb SSD Kingstone

## iso

Для NISE 105(A) в спецификации указана совместимость с linux kernel 3.8.0. Последний LTS Ubuntu, не превышающий данную версию ядра, является 12.04:

http://old-releases.ubuntu.com/releases/12.04.4/ubuntu-12.04-server-amd64.iso

Более свежие версии на последних найсах не работают.

## установка

### bios mode

Если bios компьютера позволяет, лучше использовать этот режим:

1. запускаем установку ubuntu server:
   - создать разделы - manual:
     - 31Gb - ext2, загрузочный, noatime, nodiratime, '/'
     - 32Gb - ext2, noatime, nodiratime, '/data'
     - 1Gb - swap
   - указать имя компьютера `jrobo`
   - указать пользователя `jrobo` с паролем `jradmin`
   - остальное оставить по умолчанию

### uefi mode

Новые компьютеры могут иметь только uefi, поэтому:

1. запускаем установку ubuntu server:
   - создаем разделы - use entire disk (не lvm!!!)
   - указать имя компьютера `jrobo`
   - указать пользователя `jrobo` с паролем `jradmin`
   - остальное оставить по умолчанию
2. загружаемся с ubuntu live CD и запускаем GParted
   - делаем resize самого большого диска - уменьшаем на половину
   - создаем новый диск из освободившегося места, ext2
3. загружаемся в установленную систему:
   - выполнить:

         sudo blkid
         sudo mcedit /etc/fstab

   - добавить строку, вставив полученный uuid:

         UUID=e1ee7e7a-76f7-424c-845c-1c1c5a146ffd   /data   ext2   noatime,nodiratime   0   2

## apt-get update

    sudo apt-get update

Если есть ошибки типа:

    W: Failed to fetch ..... Hash Sum mismatch

то выполнить:

    sudo rm -rf /var/lib/apt/lists/*
    sudo apt-get update

## disable auto upgrade

    sudo dpkg-reconfigure -plow unattended-upgrades

## mc

    sudo apt-get install mc

## swappiness

    sudo mcedit /etc/sysctl.conf

Добавить:

    vm.swappiness=0

## network

Рекоммендуемое распределение сетевых адресов:

- plc - 192.168.2.210..214
- server - 192.168.2.215..219
- конверторы - 192.168.2.221..254

Варианты именования сетевых адаптеров в NISE:

- eth0, eth1
- p4p1, p1p1
- enp1s0, enp2s0

    sudo mcedit /etc/network/interfaces

    auto lo
    iface lo inet loopback

    # enterprise network
    auto p4p1
    iface p4p1 inet dhcp

    # plc network
    auto p1p1
    iface p1p1 inet static
      address 192.168.127.1
      netmask 255.255.255.0
      broadcast 255.255.255.255
      network 192.168.0.0
    #  gateway 192.168.2.1
    #  dns-nameservers 192.168.2.1 8.8.8.8

Если не работает инет, правим ресолвер, иначе можно не закачать пакеты

     echo "nameserver 8.8.8.8" | sudo tee /etc/resolv.conf > /dev/null

или

     echo "nameserver 8.8.8.8" | sudo tee /etc/resolvconf/resolv.conf.d/base > /dev/null
     sudo resolvconf -u

### netplan

Для ubuntu 18.04 нстройка сети через netplan.

    sudo mcedit /etc/netplan/50-cloud-init.yaml

    network:
        ethernets:
            enp1s0:
                dhcp4: no
                dhcp6: no
                addresses: [192.168.2.210/24]
                gateway4: 192.168.2.1
                nameservers:
                  addresses: [8.8.8.8, 8.8.4.4]
                optional: true
            enp2s0:
                dhcp4: true
                optional: true
        version: 2

### отвязка от mac-адресов

При переносе HDD с одного компьютера nise на другой сетевые адаптеры не подымутся из-за привязки к мак-адресам старого железа.

    ifconfig -a

Для отвязки нужно закоментить все в файле:

    /etc/udev/rules.d/70-persistent-net.rules

src1 src2

## ssh

    sudo apt-get install ssh

`/etc/ssh/sshd_config`:

    PermitRootLogin no
    AuthorizedKeysFile	%h/.ssh/authorized_keys

    sudo service ssh restart

On client's side:

    ssh-keygen -t rsa
    (empty answer for every question)

    ssh-copy-id "server_user_name@server_ip_address"
    ssh "server_user_name@server_ip_address"

Если не получилось (Agent admitted failure to sign using the key)? пробуем в таком виде

    SSH_AUTH_SOCK=0 ssh "server_user_name@server_ip_address"

## rlwrap

Usefull when working via telnet (Ctrl-Z for exit):

    sudo apt-get install rlwrap
    rlwrap telnet localhost 30001

## locales

    locale -a
    sudo locale-gen ru_RU
    sudo locale-gen ru_RU.UTF-8
    sudo update-locale
    sudo dpkg-reconfigure locales

## dialout

Если используются родные порты компьютера:

    sudo usermod -a -G dialout jrobo
    sudo reboot

## java

- скачать jdk8 с http://oracle.com
- распаковать как есть в `/usr/lib/jvm`
- переименовать в `java-8-oracle` (или сделать symlink)