ICE Help IceOS

From ICE Enterprises
Jump to navigation Jump to search
Go to the full list of ICE Help pages.

Summary: Linux micro kernel to run a srvIce on a devIce

Motivation:

The ICE-PAC and ICE-SuperPAC use an Intel CPU in the Q-Seven form factor for control and configuration. While these are capable processors, they only draw 5-8 watts and are not high end servers. The internal M.2 drive holds 128GBy and will max out at about 120MBy/s. The Ice-OS is a linux kernel with a stripped down set of GNU utilities and the ICE software framework designed to focus on devIce specific tasks including the ICE web services.

Includes

krn : linux 4.4.27-2 kernel gnu : busybox and other GNU linux utilities gcc : GNU C and C++ compilers gfc : GNU Fortran compiler jdk : Java JRE and JDK nxm : NeXtMidas framework xm : XMidas framework ice : ICE framework & web server ssh : Secure login and copy vnc : VNC server on :1

Excludes

wm : Window manager wb : Web Browser sd : SystemD

Configuration

The Q-Seven CPU has an HDMI, 1GbE, and two USB ports available on the chassis. It boots up for 3 seconds at the network address 192.168.0.123 before moving to its configured address. The network configuration can be changed from the console, an ssh session to root, or via a special ping while booting.

Console

After booting, the system console port at tty7 switches to tty3 and runs the ICE console application. It is prompting for status, software installation, network configuration, server applicaion start & stop, system reboot & poweroff, or VNC display on the HDMI port. With a monitor and keyboard plugged into the HDMI and USB ports, this interface is always available. This is also the system monitor displaying boot progress and other system messages.

If you know the current address of a devIce, ssh to the root account and run "ice console" from there. If you do not know the current address, connect the devIce's ethernet to another computer running the ICE software tree. From that node, run "nM> iceconsole/sendping/addr=x/mask=y/gw=z" to start the special boot ping, and then boot the target devIce to configure it with the x, y, and z addresses for x=IPAddr, y=netMask, and z=Gateway. Make sure the sending machine can see the 192.168.0.x network.

Application

The script /home/iceman/iceserver is run at boot time after all resources are enabled. The default script starts the iceserver using the file icebox.tbl as the configuration file. This file determines whether the application starts on its own or waits for controls to be sent over the web interface.

To view the running iceman application, open a web browser to http://<addr>:8080 or a VNC client session to <addr>:1.

If the application is not a SNAPAPP table configured application and you need it to start automatically at boot, modify this script to include your startup.

Accounts

The IceOS is preconfigured with 1 root and 3 user accounts:

The iceman account automatically starts a VNC session and runs the NeXtMidas iceserver application on bootup. This is configured by the icebox.tbl file in /home/iceman/icebox.tbl. To change the configuration, use scp to copy over this file and reboot the devIce, or use stop/start from the console. To disable the automatic startup rename or remove the iceserver script from the iceman login directory. This account runs entirely off of the readonly partition. It cannot be damaged by inadvertant power-offs.

The xmidas account runs the cshell for a user supplied XMidas application. XMidas is started by xms. The xmidas build uses gcc and gfortran. The user option trees should be added under /user/opt/ with the proper adjustments to xmstartup. The xmidas software is entirely on the writable partition /user.

The icemkr account is used to build NeXtMidas or XMidas software. The trees are owned by this user and will err if either iceman or xmidas attempt to build there. Do not change permissions to these trees. To start NeXtMidas, type nms. To start xmidas from the icemkr account, you will need to type csh first, then type xms.

The user accounts all default their DISPLAY variable to :1 which is where the web server gets its displays. If you ssh into the devIce you should set your display variable to the address you are ssh'ing from such as DISPLAY=192.168.0.70:0 for example.

Terminals

The inittab is configured to launch 4 TTYs. The system console boots up on TTY7 then switches to the Ice Console program on TTY3. TTY's 1-2 are open for user logins. To switch between TTYs, use Alt F1-3 or Alt F7.

Rebuild

If your devIce's disk becomes corrupt, insert a USB stick containing IceOS and select that UEFI partition as the first position in the boot order in the BIOS. Then boot the device. It should show as booting from MD_BOOT_ (usb drive) not MD_BOOT (internal drive). If this succeeds, it should boot to the ICE console: Select INSTALL from the menu. When completed, select POWEROFF. When powered off, remove the USB stick and press the reset button or cycle the power. At this point any user configuration changes will need to be redone.