Members | Sign In
All Forums > Hardware and LBE construction
avatar

Building a Portabridge Rig for Conventions.

posted Feb 11, 2013 15:39:58 by JoeGreene
Phase 1 a Flat cart with 4 diskless desktops, 2 Laptops, 6 Monitors, Projector, Screen, 1 8 port Switch and all necessary power cabling.... and 6 USB Custom built Fedora LiveCD thumbdrives with Artemis installed....Come see us at InconJunction 33 July 5-7 Indianapolis, IN http://www.inconjunction.org/ It'll be a blast

PS I am a representative of 'InConJunction 33'. I have the hardware (or will), I need people to staff it though.. 6 hours gets you a weekend badge!
[Last edited Feb 15, 2013 19:37:02]
page   1 2 next last
19 replies
avatar
lucas99801 said Feb 18, 2013 16:23:59
I would like to see some pics of this setup! I'd help if I were in the area during the Con, but I don't know if I will be.
Hosting a Mumble (Murmur) server @ tsnfenrir.no-ip.org
Having trouble connecting to the TeamSpeak channel: http://tsnfenrir.no-ip.org/ts3
Helm Script for Numerical heading input: https://dl.dropbox.com/u/10193809/ArtemisHelmFSW.zip
Twitter: @lucas99801
Facebook: /lucastarnold
avatar
DeaneGeiken said Feb 20, 2013 19:08:34
I and interested in helping and attending. I will need to check with my schedule and what times you would want help. I live about 2.5 hours from Indy and the con looks interesting. (Never been to it.) Can you give any details? I also mentioned this to a fellow Artemis player and he would be interested in lending a hand. Thanks!
[Last edited Feb 21, 2013 15:40:27]
Commander -TSN Belisarius (BS 108)
avatar
lucas99801 said Feb 21, 2013 00:19:52
Actually, could you possibly host the image you are using on the flash drives for download somewhere (dropbox maybe?)?

I'd like to try it out on some of the computers I have lying around, and have never been able to set up a good persistant flash drive (but in this case persistence isn't the best option if you can get away with it!), it would make my machines much more versatile!
Hosting a Mumble (Murmur) server @ tsnfenrir.no-ip.org
Having trouble connecting to the TeamSpeak channel: http://tsnfenrir.no-ip.org/ts3
Helm Script for Numerical heading input: https://dl.dropbox.com/u/10193809/ArtemisHelmFSW.zip
Twitter: @lucas99801
Facebook: /lucastarnold
avatar
JamesDunnem said Mar 12, 2013 20:27:42
I'm looking at doing something similar (bootable thumb drives), so I'm making the foray into building a Fedora LiveUSB drive with Artemis.
If my brain wraps around it sufficiently, I'll see about making the image available (sans Artemis) for others to use and modify.

Starting with this link, How to create and use Live USB wish me luck!
"There is an old Celtic saying: "Coimhéad fearg fhear na foighde."
-Beware of the anger of a patient man.
avatar
JoeGreene said Mar 12, 2013 22:00:25
4 Steps
1: make a LiveCD with the following Kickstart File I used --arch=i386
2: login to your system as a user named 'artemis', run wine "/path/to/artemis_installer.exe" to install Artemis under that users .wine home dir.
3: create a usb stick with the mkArtemisLiveUSB.sh See next post.
4: Eject USB stick or reboot to see it in action. it will boot, autologin to user artemis and autostart Artemis.

So far tested on multiple laptops.

Ok. Spin Kickstart file:
#
# Defines the basics for all kickstarts in the fedora-live branch
# Does not include package selection (other then mandatory)
# Does not include localization packages or configuration
#
# Does includes "default" language configuration (kickstarts including
# this template can override these settings)

lang en_US.UTF-8
keyboard us
timezone US/Eastern
auth --useshadow --enablemd5
selinux --disabled
firewall --disabled
xconfig --startxonboot
part / --size 3584 --fstype ext4
part /home --size 1024 --fstype ext4
services --enabled=NetworkManager --disabled=network,sshd

#repo --name=rawhide --mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=rawhide&arch=$basearch
---repo --name=fedora --mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=fedora-$releasever&arch=$basearch
---repo --name=updates --mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=updates-released-f$releasever&arch=$basearch
#repo --name=updates-testing --mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=updates-testing-f$releasever&arch=$basearch

%packages
@base-x
@base
@core
@fonts
@input-methods
#from fedore-laive-desktop
@graphical-internet
@sound-and-video
@gnome-desktop
nss-mdns
-smartmontools
-ibus-gnome3
vim
vim-X11
joystick-support
# end Fedora-live-desktop packages
# use a small pinyin db for live
-ibus-pinyin-db-open-phrase
ibus-pinyin-db-android
@admin-tools
#@dial-up
@hardware-support
#@printing

# Explicitly specified here:
# <notting> walters: because otherwise dependency loops cause yum issues.
kernel

# This was added a while ago, I think it falls into the category of
# "Diagnosis/recovery tool useful from a Live OS image". Leaving this untouched
# for now.
memtest86+

# The point of a live image is to install

# Unless is it to make an image to boot diskless systems for temporary use!
#anaconda


isomd5sum
# grub-efi and grub2 and efibootmgr so anaconda can use the right one on install.
grub-efi
grub2
efibootmgr

# fpaste is very useful for debugging and very small
fpaste

-selinux

#from fedora-live-minimization.ks

# save some space
-samba-client
-mpage
-sox
-hplip
-hpijs
-numactl
-isdn4k-utils
#-autofs
# smartcards won't really work on the livecd.
-coolkey

# qlogic firmwares
-ql2100-firmware
-ql2200-firmware
-ql23xx-firmware
-ql2400-firmware

# scanning takes quite a bit of space :/
-xsane
-xsane-gimp
-sane-backends


#from fedora-livecd-desktop.ks
-libreoffice-*
-planner
-linux-atm
-foomatic-db-ppds
-foomatic
-aspell-*
-hunspell-*
-words
-gnome-user-docs
-evolution-help
-gnome-games-help
-desktop-backgrounds-basic
-*backgrounds-extras
-krb5-auth-dialog
-krb5-workstation
-pam_krb5
-quota
-nano
-minicom
dos2unix
-finger
-ftp
-jwhois
-mtr
-pinfo
-rsh
telnet
nfs-utils
-ypbind
-yp-tools
-rpcbind
-acpid
-ntsysv

# Drop some system-config things
-system-config-boot
-system-config-language
system-config-network
-system-config-rootpassword
-system-config-services
-policycoreutils-gui


# This is Artemis stuff:
wine
mesa-dri-drivers
mumble
mumble-overlay
mumble-plugins
mumble-protocol
openarena

# More minimization
-cheese
-cdparanoia

%end

%post --log=/opt/artemis-livecd/logs/post_stage1.log
# FIXME: it'd be better to get this installed from a package
cat > /etc/rc.d/init.d/livesys << EOF
#!/bin/bash
#
# live: Init script for live image
#
# chkconfig: 345 00 99
# description: Init script for live image.

. /etc/init.d/functions

if ! strstr "\`cat /proc/cmdline\`" liveimg || ["\$1" !]; then
exit 0
fi

if [-e] ; then
configdone=1
fi

exists() {
which \$1 >/dev/null 2>&1 || return
\$*
}

touch /.liveimg-configured

# Make sure we don't mangle the hardware clock on shutdown
ln -sf /dev/null /etc/systemd/system/hwclock-save.service

livedir="LiveOS"
for arg in \`cat /proc/cmdline\` ; do
if ["\${arg##live_dir=}"]; then
livedir=\${arg##live_dir=}
return
fi
done

# enable swaps unless requested otherwise
swaps=\`blkid -t TYPE=swap -o device\`
if ! strstr "\`cat /proc/cmdline\`" noswap && [-n] ; then
for s in \$swaps ; do
action "Enabling swap partition \$s" swapon \$s
done
fi
if ! strstr "\`cat /proc/cmdline\`" noswap && [-f] ; then
action "Enabling swap file" swapon /run/initramfs/live/\${livedir}/swap.img
fi

mountPersistentHome() {
# support label/uuid
if ["\${homedev##LABEL=}"]; then
homedev=\`/sbin/blkid -o device -t "\$homedev"\`
fi

# if we're given a file rather than a blockdev, loopback it
if ["\${homedev##mtd}" !]; then
# mtd devs don't have a block device but get magic-mounted with -t jffs2
mountopts="-t jffs2"
elif [!]; then
loopdev=\`losetup -f\`
if ["\${homedev##/run/initramfs/live}" !]; then
action "Remounting live store r/w" mount -o remount,rw /run/initramfs/live
fi
losetup \$loopdev \$homedev
homedev=\$loopdev
fi

# if it's encrypted, we need to unlock it
if ["\$(/sbin/blkid -s TYPE -o value \$homedev 2>/dev/null)" ]; then
echo
echo "Setting up encrypted /home device"
plymouth ask-for-password --command="cryptsetup luksOpen \$homedev EncHome"
homedev=/dev/mapper/EncHome
fi

# and finally do the mount
mount \$mountopts \$homedev /home
# if we have /home under what's passed for persistent home, then
# we should make that the real /home. useful for mtd device on olpc
if [-d]; then mount --bind /home/home /home ; fi
[-x] && /sbin/restorecon /home
if [-d]; then USERADDARGS="-M" ; fi
}

findPersistentHome() {
for arg in \`cat /proc/cmdline\` ; do
if ["\${arg##persistenthome=}"]; then
homedev=\${arg##persistenthome=}
return
fi
done
}

if strstr "\`cat /proc/cmdline\`" persistenthome= ; then
findPersistentHome
elif [-e]; then
homedev=/run/initramfs/live/\${livedir}/home.img
fi

# if we have a persistent /home, then we want to go ahead and mount it
if ! strstr "\`cat /proc/cmdline\`" nopersistenthome && [-n] ; then
action "Mounting persistent /home" mountPersistentHome
fi

# make it so that we don't do writing to the overlay for things which
# are just tmpdirs/caches
mount -t tmpfs -o mode=0755 varcacheyum /var/cache/yum
mount -t tmpfs tmp /tmp
mount -t tmpfs vartmp /var/tmp
[-x] && /sbin/restorecon /var/cache/yum /tmp /var/tmp >/dev/null 2>&1

if [-n]; then
exit 0
fi

# add fedora user with no passwd
action "Adding live user: artemis" useradd \$USERADDARGS -c "Artemis User" -u 1000 artemis
#action "Adding live user: liveusr" useradd \$USERADDARGS -c "LiveCD User" liveusr
passwd -d artemis > /dev/null

# turn off firstboot for livecd boots
systemctl --no-reload disable firstboot-text.service 2> /dev/null || :
systemctl --no-reload disable firstboot-graphical.service 2> /dev/null || :
systemctl stop firstboot-text.service 2> /dev/null || :
systemctl stop firstboot-graphical.service 2> /dev/null || :

# don't use prelink on a running live image
sed -i 's/PRELINKING=yes/PRELINKING=no/' /etc/sysconfig/prelink &>/dev/null || :

# turn off mdmonitor by default
systemctl --no-reload disable mdmonitor.service 2> /dev/null || :
systemctl --no-reload disable mdmonitor-takeover.service 2> /dev/null || :
systemctl stop mdmonitor.service 2> /dev/null || :
systemctl stop mdmonitor-takeover.service 2> /dev/null || :

# don't enable the gnome-settings-daemon packagekit plugin
gsettings set org.gnome.settings-daemon.plugins.updates active 'false' || :

# don't start cron/at as they tend to spawn things which are
# disk intensive that are painful on a live image
systemctl --no-reload disable crond.service 2> /dev/null || :
systemctl --no-reload disable atd.service 2> /dev/null || :
systemctl stop crond.service 2> /dev/null || :
systemctl stop atd.service 2> /dev/null || :

# and hack so that we eject the cd on shutdown if we're using a CD...
if strstr "\`cat /proc/cmdline\`" CDLABEL= ; then
cat >> /sbin/halt.local << FOE
#!/bin/bash
# XXX: This often gets stuck during shutdown because /etc/init.d/halt
# (or something else still running) wants to read files from the block\
# device that was ejected. Disable for now. Bug #531924
# we want to eject the cd on halt, but let's also try to avoid
# io errors due to not being able to get files...
#cat /sbin/halt > /dev/null
#cat /sbin/reboot > /dev/null
#/usr/sbin/eject -p -m \$(readlink -f /run/initramfs/livedev) >/dev/null 2>&1
#echo "Please remove the CD from your drive and press Enter to finish restarting"
#read -t 30 < /dev/console
FOE
chmod +x /sbin/halt.local
fi

EOF

# bah, hal starts way too late
cat > /etc/rc.d/init.d/livesys-late << EOF
#!/bin/bash
#
# live: Late init script for live image
#
# chkconfig: 345 99 01
# description: Late init script for live image.
. /etc/init.d/functions

if ! strstr "\`cat /proc/cmdline\`" liveimg || ["\$1" !] || [-e] ; then
exit 0
fi

exists() {
which \$1 >/dev/null 2>&1 || return
\$*
}

touch /.liveimg-late-configured

# read some variables out of /proc/cmdline
for o in \`cat /proc/cmdline\` ; do
case \$o in
ks=*)
ks="--kickstart=\${o#ks=}"
;;
xdriver=*)
xdriver="\${o#xdriver=}"
;;
esac
done

# if liveinst or textinst is given, start anaconda
if strstr "\`cat /proc/cmdline\`" liveinst ; then
plymouth --quit
/usr/sbin/liveinst \$ks
fi
if strstr "\`cat /proc/cmdline\`" textinst ; then
plymouth --quit
/usr/sbin/liveinst --text \$ks
fi

# configure X, allowing user to override xdriver
if [-n]; then
cat > /etc/X11/xorg.conf.d/00-xdriver.conf <<FOE
Section "Device"
Identifier "Videocard0"
Driver "\$xdriver"
EndSection
FOE
fi

EOF

chmod 755 /etc/rc.d/init.d/livesys
/sbin/restorecon /etc/rc.d/init.d/livesys
/sbin/chkconfig --add livesys

chmod 755 /etc/rc.d/init.d/livesys-late
/sbin/restorecon /etc/rc.d/init.d/livesys-late
/sbin/chkconfig --add livesys-late

# work around for poor key import UI in PackageKit
rm -f /var/lib/rpm/__db*
rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-fedora
echo "Packages within this LiveCD"
rpm -qa
# Note that running rpm recreates the rpm db files which aren't needed or wanted
rm -f /var/lib/rpm/__db*

# go ahead and pre-make the man -k cache (#455968)
/usr/bin/mandb

# save a little bit of space at least...
rm -f /boot/initramfs*
# make sure there aren't core files lying around
rm -f /core*

# convince readahead not to collect
# FIXME: for systemd

/sbin/useradd -m -d /home/artemis -c "Artemis User" -u 1000 artemis

%end
%post --nochroot --log=/opt/artemis-livecd/logs/post_stage2.log
echo Starting Stage 2
set
echo Liveroot: $LIVE_ROOT
echo Install_root: $INSTALL_ROOT
cp $INSTALL_ROOT/usr/share/doc/*-release-*/GPL $LIVE_ROOT/GPL

# Removed as this is handled by the livecd-iso-to-disk script for USB bootable.
# Uncomment below to make an actual DVD.
# echo creating Artemis user Homedir and wine environment
# Artemis install.. Do not use without proper licensing!
#echo "[!]&&mkdir -p $INSTALL_ROOT/home/artemis"
#[!]&&mkdir -p $INSTALL_ROOT/home/artemis
#echo copying Artemis wine environment
#echo rsync -a /home/artemis/ $INSTALL_ROOT/home/artemis/
#rsync -a /home/artemis/ $INSTALL_ROOT/home/artemis/
#echo Artemis complete

# only works on x86, x86_64
if ["$(uname -i)" ]; then
if [!]; then mkdir -p $LIVE_ROOT/LiveOS ; fi
cp /usr/bin/livecd-iso-to-disk $LIVE_ROOT/LiveOS
fi

%end
%post --log=/opt/artemis-livecd/logs/post_stage3.log
echo Starting Stage 3
# Setup Artemis Desktop Icon
echo chown -R artemis:artemis ~artemis/
chown -R artemis:artemis ~artemis/


cat >> /etc/rc.d/init.d/livesys << EOF
# disable screensaver locking
cat >> /usr/share/glib-2.0/schemas/org.gnome.desktop.screensaver.gschema.override << FOE
[org.gnome.desktop.screensaver]
idle-activation-enabled=false
lock-enabled=false
FOE

# and hide the lock screen option
cat >> /usr/share/glib-2.0/schemas/org.gnome.desktop.lockdown.gschema.override << FOE
[org.gnome.desktop.lockdown]
disable-lock-screen=true
FOE

# disable updates plugin
cat >> /usr/share/glib-2.0/schemas/org.gnome.settings-daemon.plugins.updates.gschema.override << FOE
[org.gnome.settings-daemon.plugins.updates]
active=false
FOE

cat >> /usr/share/glib-2.0/schemas/org.gnome.settings-daemon.plugins.power.gschema.override << FOE
[org.gnome.settings-daemon.plugins.power]
active=false
sleep-inactive-ac-timeout=0
sleep-display-ac-timeout=0
FOE

# Setup Artemis Desktop Icon
#echo Setting up Artemis Desktop Icon

[!]&& mkdir -p ~artemis/.local/share/applications/wine/Programs/Artemis/Artemis/
cat >~artemis/.local/share/applications/wine/Programs/Artemis/Artemis/Artemis.desktop <<FOE
[Desktop]
Name=Artemis
Exec=env WINEPREFIX="/home/artemis/.wine" wine C:\\\\windows\\\\command\\\\start.exe /Unix /home/artemis/.wine/dosdevices/c:/users/Public/Start\\ Menu/Programs/Artemis/Artemis/Play\\ Artemis.lnk
Type=Application
StartupNotify=true
Path=/home/artemis/.wine/dosdevices/c:/Program Files/Artemis
Icon=23E5_Artemis.0
FOE

#--------- Disable The installer stuff.. this is not an install disk.. it's a portable boot sys.
## make the installer show up
#if [-f]; then
# # Show harddisk install in shell dash
# sed -i -e 's/NoDisplay=true/NoDisplay=false/' /usr/share/applications/liveinst.desktop ""
# # need to move it to anaconda.desktop to make shell happy
# mv /usr/share/applications/liveinst.desktop /usr/share/applications/anaconda.desktop

# cat >> /usr/share/glib-2.0/schemas/org.gnome.shell.gschema.override << FOE
#[org.gnome.shell]
#favorite-apps=['firefox.desktop',]
#FOE
#
# # Make the welcome screen show up
# if [-f]; then
# mkdir -p ~artemis/.config/autostart
# cp /usr/share/anaconda/gnome/fedora-welcome.desktop /usr/share/applications/
# cp /usr/share/anaconda/gnome/fedora-welcome.desktop ~artemis/.config/autostart/
# chown -R artemis:artemis /home/artemis/.config/
# fi
#fi
#--------- END Disable The installer stuff.. this is not an install disk.. it's a portable boot sys.


# set up auto-login
cat >> /etc/gdm/custom.conf << FOE
[daemon]
AutomaticLoginEnable=True
AutomaticLogin=artemis
FOE
chown -R artemis:users /home/artemis

#autostart Artemis
mkdir -p ~artemis/.config/autostart
cat >> /usr/share/glib-2.0/schemas/org.gnome.shell.gschema.override << FOE
[org.gnome.shell]
favorite-apps=['firefox.desktop',]
FOE

# rebuild schema cache with any overrides we installed
glib-compile-schemas /usr/share/glib-2.0/schemas

# Turn off PackageKit-command-not-found while uninstalled
if [-f]; then
sed -i -e 's/^SoftwareSourceSearch=true/SoftwareSourceSearch=false/' /etc/PackageKit/CommandNotFound.conf
fi
EOF
%end
[Last edited Mar 12, 2013 22:25:11]
avatar
lucas99801 said Mar 12, 2013 22:00:35
Making a bootable thumb drive is not the issue. With today's utilities that is cake.

Creating a bootable thumb drive with custom packages (like an auto-running, functional Wine installation that includes Artemis), that can't be edited/destroyed/adjusted is the issue.
Hosting a Mumble (Murmur) server @ tsnfenrir.no-ip.org
Having trouble connecting to the TeamSpeak channel: http://tsnfenrir.no-ip.org/ts3
Helm Script for Numerical heading input: https://dl.dropbox.com/u/10193809/ArtemisHelmFSW.zip
Twitter: @lucas99801
Facebook: /lucastarnold
avatar
JoeGreene said Mar 12, 2013 22:16:24
Heres' the script mkArtemisLiveUSB.sh :

#!/usr/bin/bash
# Assumptions:
# ~artemis must exist so there is assumed to be an artemis user with a home directory which has had
# Artemis installed to it's .wine (default WINE_PREFIX) directory
# If unspecified the Iso is expected to be found in a directory called /home/Artemis_LiveCD which
# should NOT be the artemis user's home directory
# The Iso image file if preexisting should be named in the format: Artemis-${APPVER}-LiveCD-${CDVER}
# if it isn't there we try to make it using the Spin Kickstart file:
# /usr/share/spin-kickstarts/fedora-live-base-i386-artemis-${CDVER}.ks

while getopts d:s:v:l:q o
do case "$o" in
d) DESTDEV="$OPTARG";;
s) SRCDIR="$OPTARG";;
v) APPVER="$OPTARG";;
l) CDVER="$OPTARG";;
[?]) print >&2 "Usage: $0 [-d] [-s] [-v] [-l]"
exit 1;;
esac
done
shift $(( ${OPTIND}-1 ))
[-z] && SRCDIR=/home/Artemis_LiveCD
[-d]||mkdir -p ${SRCDIR}

[-z] && APPVER=`grep 'changes for V' /home/artemis/.wine/drive_c/Program\ Files/Artemis/changes.txt |head -1|awk '{gsub("V","",$4);print $4}'`
if [-z]
then
CDVER=`cat ${SRCDIR}/current_LCDver.txt`
else
echo ${CDVER}>${SRCDIR}/current_LCDver.txt
fi

ISOFILE=${SRCDIR}/Artemis-${APPVER}-LiveCD-${CDVER}.iso
echo Determining if ISO exists: ${ISOFILE}
if [!]
then
echo ISO not found. Creating.
cd ${SRCDIR}
setarch i686 livecd-creator --verbose --config=/usr/share/spin-kickstarts/fedora-live-base-i386-artemis-${CDVER}.ks --fslabel=Artemis-${APPVER}-LiveCD-${CDVER} --cache=/var/cache/live --log=/var/log/livecd/Artemis-${APPVER}-LiveCD-${CDVER}-`date +"%Y%m%d_%H%M"`.log
fi
if [-f]
then
echo ISO File located: ${ISOFILE}
else
echo Error ${ISOFILE} Still Not found! &&exit 1
fi

declare -Fa DESTDEVS
declare -Fa STICKNAME
declare -Fa STICKDEV
export DESTDEVS STICKNAME STICKDEV
if [-z]
then
echo No Destination device specified.
echo Searching for usb disk partition devices.
CURRINDEX=0
STICKNAME=(`ls -l /dev/disk/by-id/usb*|grep -E 'part.?[[:space:]]-'|sort -k 11|awk '{gsub("../../","/dev/",$11);gsub("/dev/disk/by-id/usb-","",$9);print $9}'`)
STICKDEV=(`ls -l /dev/disk/by-id/usb*|grep -E 'part.?[[:space:]]-'|sort -k 11|awk '{gsub("../../","/dev/",$11);gsub("/dev/disk/by-id/usb-","",$9);print $11}'`)
[ ${#STICKNAME[@]} -lt 1 ] && echo Error: Parsing USB Stick Devices Failed: No USB Stick Devices found and no specific device was specified &&exit 3
[ ${#STICKNAME[@]} -ne ${#STICKDEV[@]} ]&& echo Error: Parsing USB Stick Devices Failed:Device/Name arrays are not the same size! Aborting &&exit 2
export DESTDEVS STICKNAME STICKDEV
echo Available USB Sticks
for ((I=0;$I<${#STICKNAME[@]};I++))
do
echo " "$(( ${I}+1 ))") ${STICKDEV[${I}]} :${STICKNAME[$I]}"
done
echo Select USB sticks to install to separated by spaces.
echo -n Selection \[1\]:
declare -a JARRAY
read -a JARRAY
[ -z "${JARRAY[0]}" ]&&JARRAY[0]=1
echo selected: ${JARRAY[@]}
for (( I=0;$I<${#JARRAY[@]};I++ ))
do
# echo ${JARRAY[$I]} -gt 0 -a ${JARRAY[$I]} -lt ${#STICKDEV[@]}
if [ ${JARRAY[$I]} -gt 0 -a ${JARRAY[$I]} -le ${#STICKDEV[@]} ]
then
DESTDEVS[$I]=${STICKDEV[$((${JARRAY[$I]}-1))]}
else
[ -b ${JARRAY[$I]} ]&&DESTDEVS[$I]=${JARRAY[$I]}
fi
done
[ -z "${DESTDEVS[@]// /,}" ] &&echo No Destination Device! Cannot continue &&exit 2
export DESTDEVS STICKNAME STICKDEV
else
DESTDEVS[0]=$DESTDEV
export DESTDEVS
fi
echo Using ${DESTDEVS[@]}

for I in ${DESTDEVS[@]}
do
if [-b]
then
if grep -E "^${I}[[:space:]]" /proc/mounts
then
umount ${I}
MYERR=$?
[$MYERR] && MYERR=0
if [${MYERR}]
then
echo -e Error: Could not unmount ${I}\n$0: Aborting >&2
exit ${MYERR}
fi
fi
echo Executing livecd-iso-to-disk --force --overlay-size-mb 512 --home-size-mb 1024 --delete-home --unencrypted-home ${ISOFILE} ${I}
livecd-iso-to-disk --force --overlay-size-mb 512 --home-size-mb 1024 --delete-home --unencrypted-home ${ISOFILE} ${I}

MYERR=$?
if grep -E "^${I}[[:space:]]" /proc/mounts
then
LIVEMEDIA=`mount|grep "^${I}[[:space:]]" |cut -d " " -f 3`
else
LIVEMD5=`md5sum <(head -c 512 ${I})|cut -d " " -f 1`
LIVEMEDIA=/tmp/${LIVEMD5}/media
LIVEHOME=/tmp/${LIVEMD5}/home
mkdir -p ${LIVEMEDIA} ${LIVEHOME}
mount ${I} ${LIVEMEDIA}
MYERR=$?
if [$MYERR]
then
echo Error: Cannot mount media to update home directory >&2
echo Aborting
umount $I
exit $MYERR
fi
mount ${LIVEMEDIA}/LiveOS/home.img ${LIVEHOME}
MYERR=$?
if [$MYERR]
then
echo Error: Cannot mount $I:/LiveOS/home.img to update home directory >&2
echo Aborting
umount $LIVEHOME $I
exit $MYERR
fi
echo Updating Image Home Directory
rsync -a /home/artemis $LIVEHOME
MYERR=$?
if [$MYERR]
then
echo rsync: Abnormal Exit: errorcode ${MYERR} >&2
echo Check installation before use. >&2
fi
umount $LIVEHOME
umount $LIVEMEDIA
# eject $I
# eject ${I/%[0-9]}
fi


else
echo -e No Such Device: ${I}\n Skipping >&2
MYERR=5
fi
if [-z]
then
echo -n 'Errors Encountered. Continue? [Y/n]'
read trash
if ["$trash"]
then
exit ${MYERR}
fi
fi
done
avatar
JoeGreene said Mar 12, 2013 22:24:37
Ok, so for those asking why I didn't just post a dropbox/image somewhere...
1: It would violate the licensing for me to provide most of the software in the image without providing access to the source of said software.
2: I could only post a base OS image without violating Thoms Licensing and rights.

I am an I.T. professional and I strive to maintain a high standard of credibility and honesty. I do not run unlicensed software. I do not make copies of software I've paid for licenses of and give them away. I support every developers given right to their intellectual property as it feeds, houses and clothes them and their families. I'm an equally vicious nudge about movies and music.. yes my children hate it sometimes. I do so out of respect for my peers. I endeavor not to judge those who do.. but it does happen when I see I.T. folks violating licensing professionally.. so, love it hate it.. it's part of how I work.. That said, Thom, I'll be buying a second license before June so I can run a captains console and an observer's console at InConJunction.
avatar
JamesDunnem said Mar 12, 2013 23:40:27
Well said Joe, and a huge thanks for saving me untold skull-sweat figuring out the thumb drive!

"There is an old Celtic saying: "Coimhéad fearg fhear na foighde."
-Beware of the anger of a patient man.
avatar
JoeGreene said Mar 12, 2013 23:48:26
I do have a second spin-kickstart file which I added the dhcp package to, so that I can run them all on an isolated network (I carry an 8port gig switch in my backpack.. yeah, I'm that much of a geek... )
avatar
JoeGreene said Mar 12, 2013 23:51:34
# fedora-live-base-i386-artemis-1.1s.ks

%packages

# FIXME; apparently the glibc maintainers dislike this, but it got put into the
# desktop image at some point. We won't touch this one for now.
nss-mdns

# This one needs to be kicked out of @base
-smartmontools

dhcp
chkconfig
%end

%post

echo >/etc/dhcpd.conf <<EOT
option domain-name "local.artemis.net";
option domain-name-servers 10.0.0.1;
option routers 10.0.0.1;
option ntp-servers 10.0.0.1;
ddns-update-style none;
default-lease-time 28800;
authoritative;
subnet 10.0.0.0 netmask 255.255.255.0 {
range 10.0.0.224 10.0.0.253;
max-lease-time 28800;
}
EOT
/sbin/chkconfig dhcpd on
/sbin/chkconfig murmur on

%end
avatar
JoeGreene said Mar 12, 2013 23:53:26
Oh yeah.. important notes:8Gig stick.. initialize it with unetbootin to make the blasted things work. syslinux misses a step I have not yet identified for sticks >4GB.
It will fit a 4G stick with 768MB Home and 512MB or less persistence.
avatar
lucas99801 said Mar 15, 2013 03:56:57
Think there are any distros that would fit Linux+Wine+Artemis on a 700MB CD-R?

I have some ANCIENT hardware with some shifty HDDs, so a bootable CD would be fantastic (since I can't boot from USB on the system)
Hosting a Mumble (Murmur) server @ tsnfenrir.no-ip.org
Having trouble connecting to the TeamSpeak channel: http://tsnfenrir.no-ip.org/ts3
Helm Script for Numerical heading input: https://dl.dropbox.com/u/10193809/ArtemisHelmFSW.zip
Twitter: @lucas99801
Facebook: /lucastarnold
avatar
JoeGreene said Mar 15, 2013 04:48:58
Alas no. Here's why:
1: A Graphics card older than 2008 will lack the DirectX and Shaders support Artemis requires.
2: The .wine directory created for 32 bit Wine with Aretmis 1.702 installed is Aproximately 497MB all by itself
3: Base OS, X and Wine even using a squash fs is going to take around 600MB for the livecd image.
4: (I could be wrong on this) you need about 1GB RAM to run this.. if the system board is so old it won't boot USB... The odds on it meeting the minimum spec are pretty slim.
I tried running this on a ~2008 system which booted USB and had the ram, but the graphics made Wine32/Artemis choke and core out due to the 512MB video card lacking certain functionality (not precisely certain, but I think it was shader functionality)
However if you KNOW the kit can run Artemis.. you could possibly build a CDR base image with no persistence and no home dir and try booting from that then running wine Artemis install and try running artemis.. but you'd have to do that every single time..
avatar
lucas99801 said Mar 15, 2013 04:54:34
I've already got Artemis running smooth on the current hardware, it has a Nvidia FX5200, 512MB RAM, and a Pentium... 4?

OS is newest Crunchbang
Hosting a Mumble (Murmur) server @ tsnfenrir.no-ip.org
Having trouble connecting to the TeamSpeak channel: http://tsnfenrir.no-ip.org/ts3
Helm Script for Numerical heading input: https://dl.dropbox.com/u/10193809/ArtemisHelmFSW.zip
Twitter: @lucas99801
Facebook: /lucastarnold
Login below to reply: