Tiny Core Linux

Tiny Core Base => TCB Q&A Forum => Topic started by: nim108 on November 13, 2012, 12:10:19 PM

Title: Easiest way to make TC non-interactive?
Post by: nim108 on November 13, 2012, 12:10:19 PM
We are using TC to do an automated recovery of the user's hard drive using the Linux version of Ghost (11.5.1). The only restriction with Ghost is that it requires X to run, which is why I am running it in TC rather than core in a terminal. This works just fine and results in a very small but powerful imaging method. However, the way TC currently looks, the user can fool around in the system since the buttons are all visible and active there and since clicking brings up a menu. So what is the easiest way to make it non-interactive? Basically what would have to be done to make TC a locked down kiosk type of software? Should I use another environment, i.e. openbox?

P.S. Before anyone suggests just running Ghost full screen, I've already tried that and it is never truly "full screen". Also, I understand some keyboard shortcuts like ctrl + alt + del cannot be disabled and that is fine, we are just looking to lock out the user from doing stupid things: browsing around the system, opening apps he/she shouldn't be, shutting down during a restore, etc. Any suggestions would be appreciated. I can come up with some ways to do this but you guys are the experts so I want to evaluate all my options.

EDIT: I should probably mention, we don't require any user interaction to run Ghost, we simply place a shell script in /home/tc/.X.d that gets autostarted on X startup.
Title: Re: Easiest way to make TC non-interactive?
Post by: gerald_clark on November 13, 2012, 01:03:24 PM
Did you try not installing a window manager?
Title: Re: Easiest way to make TC non-interactive?
Post by: lverns on November 13, 2012, 01:05:20 PM
1) Do you have to power down manually or does the script in /home/tc/.X.d poweroff the machine when it completes?

If it is the latter, then I would try modifying /home/tc/.xsession from this
Code: (bash) [Select]
Xvesa -br -screen 1024x768x32 -shadow -2button -mouse /dev/input/mice,5 -nolisten -tcp -I >/dev/null 2>&1 &
export XPID=$!
waitforX || ! echo failed in waitforX || exit
"$DESKTOP" 2>/tmp/wm_errors &
export WM_PID=$!
[ -x ./.setbackground ] && ./.setbackground
[ -x ./.mouse_config ] && ./.mouse_config &
[ $(which "$ICONS".sh) ] && ${ICONS}.sh &
[ -d ".X.d" ] && find ".X.d" -type f -print | while read F; do . "$F"; done

to this
Code: (bash) [Select]
Xvesa -br -screen 1024x768x32 -shadow -2button -mouse /dev/input/mice,5 -nolisten -tcp -I >/dev/null 2>&1 &
export XPID=$!
waitforX || ! echo failed in waitforX || exit
#"$DESKTOP" 2>/tmp/wm_errors &
#export WM_PID=$!
[ -x ./.setbackground ] && ./.setbackground
[ -x ./.mouse_config ] && ./.mouse_config &
#[ $(which "$ICONS".sh) ] && ${ICONS}.sh &
[ -d ".X.d" ] && find ".X.d" -type f -print | while read F; do . "$F"; done
(Note how lines 4, 5, and 8 are now preceded by a '#')
That will remove any window decorations, the desktop menu, and the desktop icons. It will also replace the normal cursor with an ugly black X and any windows will be un-resizable.

This is probably not the optimal way to do it since the only way to give any input to the machine would be to drop to the command line which (I assume) would kill Ghost.

P.S.
but you guys are the experts
That definitely doesn't apply to me, so feel free to disregard my opinion.  ;)
Title: Re: Easiest way to make TC non-interactive?
Post by: nim108 on November 13, 2012, 01:07:12 PM
Did you try not installing a window manager?
No, I have not. Which extensions are you referring to specifically? Wouldn't a window manager be required to run X programs like Ghost?

lverns, I appreciate the suggestion, but I much rather modify the windows manager (or whatever front-end files need to be updated) to "hide" things vs. hacking TC's built-in scripts (for easier maintainability).
Title: Re: Easiest way to make TC non-interactive?
Post by: tinypoodle on November 13, 2012, 01:17:16 PM
A window manager is managing (multiple) windows.
Simply running exclusively one X app sounds like an obvious approach.
Title: Re: Easiest way to make TC non-interactive?
Post by: nim108 on November 13, 2012, 02:17:45 PM
A window manager is managing (multiple) windows.
Simply running exclusively one X app sounds like an obvious approach.
I see, so I would just need Xlibs, Xprogs, and Xvesa extensions from TC?
Title: Re: Easiest way to make TC non-interactive?
Post by: nim108 on November 13, 2012, 04:01:48 PM
A window manager is managing (multiple) windows.
Simply running exclusively one X app sounds like an obvious approach.
I see, so I would just need Xlibs, Xprogs, and Xvesa extensions from TC?
Thanks guys, this did it, trivial solution :)