Help: ICE_ICEOS
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
roughly 5 to 8 watts of power and should not be treated as high-end servers.
The internal M.2 drive holds 128GBy and will max out at about 120MBy/s.
The IceOS is a stock linux kernel with a stripped down set of GNU utilities and
the ICE software framework designed to focus on devIce specific tasks.
The release includes the following packages:
krn = latest Fedora linux kernel
gnu = busybox, openbox and other GNU utilities
gcc = GNU C and C++ compilers
jdk = Java JRE and JDK
nxm = NeXtMidas framework
ice = ICE toolkit & Web Server
ssh = Secure login and copy
vnc = VNC server on :1
and excludes:
Window manager (no Gnome or KDE)
Web Browser
SystemD
Containers are maintained to optionally support:
xmidas = XMidas framework with GNU Fortran compiler
octave = Octave / Matlab
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 other 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 TTY1 then
switches to the Ice Console program on TTY3. The Xvnc session console is on TTY2.
TTY's 5-8 are open for user logins. To switch between TTYs, use Alt F1-3 or Alt F5-8.
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.