July 3, 2020

Установка TC/BSD Beta

FreeBSD вместо Linux. Было известно еще в прошлом году, тогда же можно было попробовать. Поэтому некий срез, который c прошлого 2019 года местами подзавял, но уж как есть.



Новости


PC-Control, апрель 2019, стр. 7: "Основные моменты автоматизации: TwinCAT, бьющееся сердце системы Beckhoff, набирает обороты с важной инновацией в сегменте автоматизации: TwinCAT впервые будет доступен и в операционной системе, отличной от Windows. "TwinCAT/BSD основан на FreeBSD, зарекомендовавшей себя, исключительно надежной и продвинутой ОС с открытым исходным кодом, которая уходит корнями в 80-е годы", - говорит управляющий директор. Она также позволяет запускать большое количество программ Linux. В то же время TwinCAT/BSD не подчиняется условиям лицензии Linux GPL. С точки зрения компании, лицензирование BSD позволяет распространять программное обеспечение для автоматизации среди поставщиков и пользователей в обычным для отрасли образом, поскольку такая лицензия не требует открывать исходный код программного обеспечения."


Youtube, 10 февраля 2020: TwinCAT/BSD объединяет рантайм XAR TwinCAT 3 и FreeBSD, проверенной в промышленности и надежной операционной системой с открытым исходным кодом. TwinCAT/BSD поддерживает все функции TwinCAT 3 и дополнительно позволяет использовать современный HMI TwinCAT на основе HTML5.



Сейчас


Заказная позиция с сайта Beckhoff: CX2900-0026: 20 GB CFast card, 3D flash, extended temperature range (only for Windows CE or TwinCAT/BSD operating systems)
TwinCAT/BSD: Operating System for IPC Features, предположительная дата выпуска - второй квартал 2020.

Слухов и новостей было достаточно. Поэтому попробовал бету.


Виртуальная машина


Сделать физическую флэшку с помощью .iso образа и Etcher (официальная рекомендация). Подключить-воткнуть флешку в ноутбук.

cd %programfiles%\oracle\virtualbox

Выяснить какой номер диска присвоен флэшке. Нужено только номер. Номер подставить вместо решетки `#` в \\.\PhysicalDrive#

VBoxManage internalcommands createrawvmdk -filename "%USERPROFILE%\.VirtualBox\usb.vmdk" -rawdisk \\.\PhysicalDrive1

Получится образ-ссылка на флэшку. Флэшку не вынимать, оставить подключенную. (!) Запустить VirtualBox от имени Администратора.

Для виртуальной машины отключить все диски и добавить один IDE контроллер Master диск со ссылкой на usb.vmdk, созданный ранее, и один SATA диск (размер минимум 16 Гб, можно динамически расширяемый).

Запомнить размер SATA диска (или сделать его отличающимся от разера флэшки) это поможет его отличить от флэшки позднее при установке BSD. Предположим флэшка 8Гб, тогда SATA диск 10Гб или 20Гб.



Отключить загрузку со всех источников, т. е. System → Boot Order должен быть пустой, все галки сняты. В вирт.машине включить поддержку System → Enable EFI.

Загрузиться с флэшки.



Установить на SATA диск (см. картинку выше). Отключить вирт. машину и удалить контроллер IDE вместе с линком на vmdk-образ флэшки. Включить вирт. машину и загрузиться.

login: Administrator
passwd: 1


Команды и кнопки системы

  • Клавиша клавиатуры Scroll Lock включает-выключает вертикальную прокрутку консоли. Непосредственно прокрутка производится клавишами PgUp/PgDown.
  • Alt+F1..F13 — переключает виртуальные консоли
  • dmesg — загрузка устрйоства при старте системы
  • `#` в начале строки, означает запуск с рутовыми правами. Например, doas ps -a
  • `%` в начале строки, запуск с правами текущего пользователя.
  • Простой редактор текстов EasyEditor. Команда  `ee` из командной строки. Например, # ee <имя файла>


Доп пакеты

`doas` в начале команд нужен для временного разрешения запуска под рутовыми правами. Это аналог `sudo` в линуксе.
Посмотреть какие репозитории подключены в данный момент можно с помощью команды # pkg -vv (да-да, с двойной `vv` на конце).
Официальные пакеты прописаны в /etc/pkg/Train.conf, но там только самое необходимое.
Доп. пакеты подключаются: # cp /etc/pkg/FreeBSD.conf /usr/local/etc/pkg/repos/FreeBSD.conf
Если после этого удалить /etc/pkg/Train.conf официальный репозиторий пакетов станет недоступен.



Guest расширения VirtualBox


Просвещаться на Wiki FreeBSD VirtualBox.

# pkg install emulators/virtualbox-ose-additions
# pw groupmod wheel -m Administrator — чтобы в дальнейшем работал буфер обмена и др. плюшки граф. оболочек.
# ee /etc/rc.conf — откроется простой текстовый редактор, добавить в конец файла следующие строки:

vboxguest_enable="YES"
vboxservice_enable="YES"



Для завершения редактора и сохранения нажать Escape → a → a. Эскейп срабатывает медленно, не стоит торопиться.
Перезагрузиться: doas reboot


Midnight Commander


Файловый двух-панельный менеджер, Norton/Total Commander из мира *nix.

Установка: # pkg install mc
Запуск из командной строки: mc


XFCE4


Самое простое описание установки. Человек наелся говна на форумах и свел все к простому списку действий. Спасибо!
Драйверы графики для AMD-Intel-Noname: # pkg install drm-kmod

но(!)

Драйверы для графики VirtualBox: # pkg install emulators/virtualbox-ose-kmod

doas ee /etc/rc.conf
добавить строки
kld_list="/boot/modules/i915kms.ko" — для граф. адаптера Intel.
kld_list="/boot/modules/vboxdrv.ko" — для виртуального граф. адаптера vbox.
dbus_enable="YES"

Перезагрузиться: doas reboot

# pkg install xorg
# pkg install xfce

Если установка прервалась по какой-либо причине (упало интернет соединение), то повторить команды: установка продолжиться с прерванного пакета.
Запуск из командной строки: startxfce4


Общие каталоги


В настройках вирт. машины настроить каталог для шаринга файла между хостом и гостем.
В вирт. машине под xfce4 запустить терминал. Ввести:

# mount_vboxvfs -w myshare /mnt, где

myshare — название шары как ресурса или точки монтирования (это не название каталога!);
/mnt — куда подмонтировать: каталог должен присутствовать, автоматически он не создается (здесь вам не виндус). 

Название шары (здесь myshare) указывается при настройке виртуальной машины Shared Folder → Add Share → Mount point.
Теперь можно таскать файлы между Windows и Tc/BSD туда-обратно. 



Git


# pkg install git


.NET Core 3


.Net-Core-3.0.0-for-FreeBSD — нужно всё скачать и выполнить все следующие пункты.


Необходимые пакеты


# pkg install libunwind lttng-ust icu curl openssl111 bash git llvm60 cmake krb5
# ln -s /usr/local/bin/bash /bin/bash


.NET Core 3.0.0 prebuilt SDK


Скачать dotnet-sdk-3.0.100-freebsd-x64.tar.gz и через расшареную папку скопировать в виртуальную машину. Распаковать в ~/dotnet-sdk

mkdir ~/dotnet-sdk
tar xf dotnet-sdk-3.0.100-freebsd-x64.tar.gz -C ~/dotnet-sdk


Essential .Net NuGet Base Packages


Скачать dotnet_pkgs-3.0.0-freebsd.tar. Через расшареную папку скопировать в виртуальную машину. Распаковать в ~/dotnet_pkgs

mkdir ~/dotnet_pkgs
tar xf dotnet_pkgs-3.0.0-freebsd.tar -C ~/dotnet_pkgs


NuGet


Создать или отредактировать файл настроек ~/.nuget/NuGet/NuGet.Config. Добавить в него

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <packageSources>     <add key="local_pkgs" value="/home/Administrator/dotnet_pkgs" />     <add key="nuget.org" value="https://api.nuget.org/v3/index.json" protocolVersion="3" />
  </packageSources>
</configuration>

`Administrator` заменить на имя текущего пользователя или оставить как есть, если текущий пользователь это действительно Администратор (не рут, а именно Administrator).


Failed to initialize CoreCLR, HRESULT: 0x8007001F


Описание здесь: linux-dotnet-cli

# ee /etc/sysctl.conf

Добавить строку: vm.max_wired=1333000
Как вариант, вместе добавления строки можно попробовать из командной строки вызвать команду: # sysctl vm.max_wired=1333000


Проверяем работоспособность

mkdir ~/testapp
cd ~/testapp
~/dotnet-sdk/dotnet new console -o myApp
cd myApp
~/dotnet-sdk/dotnet run


Создаем образ диска


Подключаем, например, кард-ридер. Добавляем в вирт.машину соответствующее USB-устройство. Запускаем вирт. машину.

В юниксе получаем список дисковых устройств: # camcontrol devlist. Нам нужны `ada0` или `da0`, или другой диск. Для всяких сидиромов порядок именования устройств может быть обратным. 

Получается что-то вроде следующего:
# camcontrol devlist
    <VBOX HARDDISK 1.0>   at scbus0 target 0 lun 0 (ada0,pass0)
    <VBOX CD-ROM 1.0>     at scbus1 target 0 lun 0 (pass1,cd0)
  
Подключаем шару к хост компьютеру (см. выше `общие каталоги`).
Запускаем дупликатор `dd`: # dd if=/dev/da0 of=/mnt/cfdisk-image-backup.dd bs=128K conv=noerror,sync status=progress

Ждем завершения, долго...


Putty


В случае ошибки: SSH Shell fail - Couldn't agree a key exchange algorithm.
Обновить Putty. В версии 0.73 все работает.


VNC


TightVnc# pkg install net/tightvnc
Бесплатный клиент под Windows — VncViewer
...

2 comments

  1. Hey Nikolai! This is great, first time I get to see how Tc/BSD actually looks like. Where did you get hold of the beta?

    ReplyDelete
    Replies
    1. Hey 9planets! Some of the Beckhoff customers have got the beta version. It is possible we will see the release this year. IMHO

      Delete

Note: Only a member of this blog may post a comment.