====== Настройка хост-компьютеров ====== Предварительная настройка хост-компьютеров ===== Установка пакетов ===== в основном нужно только для минских плат, но плохого ничего не сделает sudo apt-get install setserial ===== Количество портов в системе ===== количество портов прописывается при загрузке ядра sudo nano /boot/grub/menu.lst находим первое вхождение строки (цифры могут отличатся от версии ядра, параметры тем более) kernel /boot/vmlinuz-2.6.17-12-386 root=UUID=2a60 ro quiet splash добавляем параметр "8250.nr_uarts=30" примерно так: kernel /boot/vmlinuz-2.6.17-12-386 8250.nr_uarts=30 root=UUID=2a60 ro quiet splash где 30 это кол-во портов + 4 перезагружаемся sudo reboot посмотреть сколько рабочих портов можно так setserial -g /dev/ttyS* | grep 16950 ===== Настройка скорости портов ===== __**необходимо только для минских плат**__ удаляем файл настроек портов sudo rm /var/lib/setserial/autoserial.conf добиваемся дефолтных настроек sudo dpkg-reconfigure setserial выбрать сохранение ядром перезагружаемся sudo reboot добиваемся дефолтных настроек sudo dpkg-reconfigure setserial выбрать сохранение один раз перезагружаемся sudo reboot меняем скорость портов sudo nano /var/lib/setserial/autoserial.conf меняем все строчки типа /dev/ttyS4 uart 16950/954 port 0xb400 irq 177 baud_base 115200 spd_normal skip_test на /dev/ttyS4 uart 16950/954 port 0xb400 irq 177 baud_base 460800 spd_normal skip_test смену можно сделать следующими командами cd /var/lib/setserial/ sudo -s cat autoserial.conf | grep "16950/954" -v > autoserial.conf.tmp cat autoserial.conf | grep "16950/954" | sed 's/115200/460800/g' >> autoserial.conf.tmp mv autoserial.conf.tmp autoserial.conf exit контрольный ребут sudo reboot ===== Настройка имени портов ===== **необходимо только для плат MOXA** источник идей http://www.reactivated.net/writing_udev_rules.html для начало определяем как у наз называются порты в системе обычно для мохи это ttyMI1 ttyMI2 и т.д. надо найти где у нас эти устройства лежат find /sys -name dev | grep ttyM получим список что-то вроде этого /sys/class/tty/ttyMI1/dev /sys/class/tty/ttyMI0/dev теперь для того чтобы понять чем они отличаются сравниваем вывод udevinfo -a -p /sys/class/tty/ttyMI1/dev и udevinfo -a -p /sys/class/tty/ttyMI0/dev будет что-то вроде KERNELS=="ttyMI1" SUBSYSTEMS=="tty" DRIVERS=="" ATTRS{dev}=="174:1" KERNELS=="ttyMI0" SUBSYSTEMS=="tty" DRIVERS=="" ATTRS{dev}=="174:0" очень внимально смотрим а не тупо копируем, так как в зависимости от ядра системы, вывод может быть разным например KERNELS=="ttyMI0" SUBSYSTEMS=="tty" DRIVERS=="" SYSFS{dev}=="174:0" из-за этих 5 разных букв(если вставите не то) ваша система больше не загрузится :!: для приведеных 2х портов правило переименования будет SUBSYSTEMS=="tty", ATTRS{dev}=="174:1", NAME="ttyS13" SUBSYSTEMS=="tty", ATTRS{dev}=="174:0", NAME="ttyS12" cохроняем их в файл /etc/udev/rules.d/10-local.rules (возможно его не будет) и пытаемся проверить что мы там наделали udevtest /sys/class/tty/ttyMI1 если не будет ошибок и в выводе строк будет присутствовать что-то вроде udev_rules_get_name: rule applied, "ttyMI1" becomes "ttyS12" значит все хорошо и можно перегружаться. :!::!::!: если где-то написали лишнию букву и система не грузится, то надо загружаться с liveCD и править файл. ===== Настройка имени портов 18.04 ===== и так у нас 2 паорта /dev/ttyACM0 и /dev/ttyACM1 меняются местами. узнаем отличия udevadm info -q all /dev/ttyACM0 --attribute-walk udevadm info -q all /dev/ttyACM2 --attribute-walk будет что-то вроде KERNEL=="ttyACM0" SUBSYSTEMS=="tty" ATTRS{idProduct}=="0005" ATTRS{idVendor}=="2912" ATTRS{bInterfaceNumber}=="00" KERNEL=="ttyACM2" SUBSYSTEMS=="tty" ATTRS{idProduct}=="0028" ATTRS{idVendor}=="079b" очень внимально смотрим а не тупо копируем, так как в зависимости от ядра системы, вывод может быть разным из-за этих 5 разных букв(если вставите не то) ваша система больше не загрузится :!: именно в этой задаче сложность что есть еще devACM1 который не надо трогать для приведеных 2х портов правило переименования будет SUBSYSTEM=="tty" ATTRS{idProduct}=="0028" ATTRS{idVendor}=="079b" SYMLINK+="ttyPIN" SUBSYSTEM=="tty" ATTRS{iad_bFirstInterface}=="00" SYMLINK+="ttyKKM" cохраняем их в файл /etc/udev/rules.d/10-local.rules (возможно его не будет) и пытаемся проверить что мы там наделали sudo udevadm test $(udevadm info -q path -n /dev/ttyACM1) если не будет ошибок и в выводе строк будет присутствовать что-то вроде creating link '/dev/ttyKKM' to '/dev/ttyACM0' значит все хорошо и можно перегружаться. :!::!::!: если где-то написали лишнию букву и система не грузится, то надо загружаться с liveCD и править файл. ===== Настройка перезапуска без пароля ===== для того чтобы при запуске\перезапуске ядра не спрашивался пароль надо после запуска команды sudo visudo в конце файла добавить ALL ALL = NOPASSWD: /usr/bin/killall, /etc/init.d/ackerneld