Installing SL Products without a Package Manager
The update tool for the SL products copies an installation package (.deb or .ipk) to the target device in the background and then installs it. This requires a package manager (dpkg or ipkg) to be installed on the target device. If a package manager is not installed, then the update tool cannot install a runtime system.
However, it is still possible to manually install the package if desired. For the generic products, this is explained below using CODESYS Control for Linux V4.7.0.0 as an example:
Important
CODESYS Control does not support devices with a (partially) write-protected file system.
If your device has a write-protected file system and you have problems when installing or starting a product, then check if the problems still occur after disabling the write protection.
Manual installation of the runtime system on the target device
After the installation of the CODESYS Control for Linux package, the required files are located on the Windows PC:
<user>/CODESYS Control for Linux SL/Delivery/codesyscontrol_linux_4.7.0.0-b.trunk.39_amd64.deb
or<user>/CODESYS Control for Linux SL/Delivery/codesyscontrol_linux_4.7.0.0-b.trunk.39_amd64.ipk
<user>/CODESYS Control for Linux SL/Dependency/codemeter-lite_<Version>.deb
(for licensing)
Copy these files to the target device.
Unpack the package:
$ ar -x codesyscontrol_linux_<Version>
The following files are created:
control.tar.gz
: Contains the scripts which the package manager runs before and after installation or uninstallation. This is not relevant for manual installation.data.tar.gz
: Contains runtime system binaries, libraries, startup scripts, and configurationsdebian-binary
: Specifies the version of the .deb package. This is not relevant for manual installation.
Unpack the
data.tar.gz
file. Create a new folder for this beforehand:$ mkdir data $ tar -xf data.tar.gz -C data
In
data/
, you will now find the files which are important for the operation of the runtime system:data ├── etc │ ├── default │ │ └── codesyscontrol │ ├── init.d │ │ └── codesyscontrol │ └── codesyscontrol │ ├── 3S.dat │ ├── CODESYSControl.cfg │ └── CODESYSControl_User.cfg ├── opt │ └── codesys │ ├── bin │ │ └── codesyscontrol.bin │ ├── lib │ │ ├── libCmpHilscherCIFX.so │ │ └── libSysPci.so │ └── scripts │ ├── init-functions │ ├── init-vars │ ├── PlcWink.sh │ └── rts_set_baud.sh ├── usr │ └── share │ └── doc │ └── codesyscontrol │ └── copyright └── var └── opt └── codesys ├── bacstac.ini ├── cmact_licenses └── .SoftContainer_CmRuntime.wbb
Now the package manager (dpkg or ipkg) would normally copy this directory structure to the root directory of the system. This has to be done manually without a package manager:
Change to the
data/
directory where thedata.tar.gz
file was unpacked:$ cd data/
Copy the individual directories to the respective root directories of the target:
Important
If you make a mistake, then this step can make your target device unusable and you will have to reset it.
$ sudo cp -r etc/* /etc $ sudo cp -r opt/* /opt $ sudo cp -r usr/* /usr $ sudo cp -r var/* /var
Now the package manager would perform some post-installation steps to complete the installation. Perform these steps manually:
$ sudo chmod a+rw /etc/codesyscontrol/CODESYSControl.cfg $ sudo chmod a+rw /etc/codesyscontrol/CODESYSControl_User.cfg
If the
codesysuser
group does not already exist on the target device, then add it.$ groupadd codesysuser
This group is used for the Extension API. For more information, see: Security Mechanisms
The runtime system is now installed. However, it still needs the Codemeter runtime environment.
Manual installation of the Codemeter runtime environment on the target device
After the installation of the CODESYS Control SL package, the .deb package is saved in
<User>/CODESYS Control für Linux SL/Dependency/codemeter-lite_<Version>.deb
.Also copy this .deb package to a newly created empty folder on the target system.
Unpack the Debian package.
$ ar -x codemeter-lite_<Version>.deb
The
control.tar.gz
,data.tar.gz
,debian-binary
, and also_gpgorigin
files are extracted.Unpack the
data.tar.gz
file into a newly created folder.$ mkdir data $ tar -xf data.tar.gz -C data
After that, the binaries and other files such as libraries and scripts are available under
data/
:data ├── etc │ ├── init.d │ │ ├── codemeter │ │ └── codemeter-webadmin │ └── wibu │ └── CodeMeter │ └── Server.ini ├── lib │ ├── systemd │ │ └── system │ │ ├── codemeter.service │ │ └── codemeter-webadmin.service │ └── udev │ └── rules.d │ └── 60-codemeter-lite.rules ├── usr │ ├── bin │ │ ├── cmu │ │ └── codemeter-info │ ├── lib │ │ └── x86_64-linux-gnu │ │ ├── jni │ │ │ ├── libwibucmJNI64.so -> libwibucmJNI.so │ │ │ └── libwibucmJNI.so │ │ ├── libwibucmlin64-4.so -> libwibucm.so │ │ ├── libwibucmlin64.so -> libwibucm.so │ │ ├── libwibucmlin.so -> libwibucm.so │ │ └── libwibucm.so │ ├── sbin │ │ ├── CmWebAdmin │ │ └── CodeMeterLin │ └── share │ ├── bash-completion │ │ └── completions │ │ └── cmu │ ├── doc │ │ ├── CodeMeter │ │ │ ├── OpenSource_en.pdf │ │ │ └── README │ │ └── codemeter-lite │ │ ├── changelog.gz │ │ └── copyright │ └── man │ └── man1 │ └── codemeter-info.1.gz └── var ├── lib │ └── CodeMeter │ ├── Backup │ ├── CmAct │ ├── CmCloud │ ├── NamedUser │ └── WebAdmin └── log └── CodeMeter
Change to the
data/
directory where thedata.tar.gz
file was unpacked:$ cd data/
Now copy the entire directory to the root directory of the target device:
Important
If you make a mistake, then this step can make your target device unusable and you will have to reset it.
$ sudo cp -r etc/* /etc $ sudo cp -r lib/* /lib $ sudo cp -r usr/* /usr $ sudo cp -r var/* /var
Now the Codemeter package would perform some post-installation steps to complete the installation. Perform these steps manually:
$ sudo udevadm trigger -vn --subsystem-match=usb --attr-match=idVendor=064f | xargs -rn1 -d\\n udevadm trigger -b $ sudo mkdir -p "/etc/systemd/system/multi-user.target.wants/" $ sudo ln -sT /lib/systemd/system/codemeter.service /etc/systemd/system/multi-user.target.wants/codemeter.service
Now you need to set up the Codemeter service with the following command (start as
root
):CodemeterLin -x
The installation of Codemeter Lite and the runtime system is now complete.
Manual installation of the edge gateway
You can install the edge gateway in the same way as the runtime system and Codemeter.
On the Windows PC, the package is stored in
<user>/CODESYS Edge Gateway for Linux/Delivery/codesysedge_edgeamd64_<Version>.deb
.Copy the Debian package to a new, empty folder on the target device.
Unpack the Debian package:
$ ar -x codesysedge_edgeamd64_<Version>.deb
The files
control.tar.gz
,data.tar.gz
anddebian-binary
are extracted.Unpack the
data.tar.gz
file into a newly created folder:$ mkdir data $ tar -xf data.tar.gz -C data
After that, the binaries and other files such as libraries and scripts are available under
data/
:data ├── etc │ ├── default │ │ └── codesysedge │ ├── init.d │ │ └── codesysedge │ └── codesysedge │ ├── Gateway.cfg │ ├── GatewayvControl.cfg │ └── Gateway_User.cfg ├── opt │ └── codesysedge │ ├── bin │ │ └── codesysedge.bin │ ├── lib │ └── scripts │ ├── rts_set_baud.sh │ └── startup.sh ├── usr │ └── share │ └── doc │ └── codesysedge │ └── copyright └── var └── opt └── codesysedge
Change to the
data/
directory where thedata.tar.gz
file was unpacked:$ cd data/
Now copy the entire directory to the root directory of the target device:
Important
If you make a mistake, then this step can make your target device unusable and you will have to reset it.
$ sudo cp -r etc/* /etc $ sudo cp -r opt/* /opt $ sudo cp -r usr/* /usr $ sudo cp -r var/* /var
Perform the post-processing steps of the package manager again:
$ chmod a+rw /etc/codesysedge/Gateway.cfg $ chmod a+rw /etc/codesysedge/Gateway_User.cfg
The edge gateway is now installed.
Starting Codemeter, the runtime system, and the Edge Gateway
The installed packages can now be started:
Codemeter
$ sudo /usr/sbin/CodeMeterLin
Note
You can start Codemeter with the
-v
flag to get extended output.With the input of
-Help
, you get help about more functions.Runtime system and edge gateway
$ sudo /etc/init.d/codesyscontrol start $ sudo /etc/init.d/codesysedge start