Skip to content

Dell LCD Display

Dell LCD Display control from shell.

#!/bin/bash

# Max length the LCD can accept. Typically 62
MAXLENGTH=62

# Read from first argument if present, else take first line of stdin
if [ $# -lt 1 ]; then
	read INPUT
	INPUT=$(echo $INPUT | tr -d [:cntrl:])
else
	INPUT=$(echo $1 | tr -d [:cntrl:])
fi

# Check if we respected the max length after removing control chars
if [ ${#INPUT} -gt $MAXLENGTH ]; then
	echo "Cannot use more than $MAXLENGTH characters"
	exit 1
fi

# Split by bytes and encode them as hex strings (0xff)
BYTES=$(echo -n $INPUT | od --width=1 -v -t x1 | grep " " |
	awk '{print $2}' | awk '{print "0x"$1}')

# Encode length of string as hex digit also
LENGTH=$(printf "0x%x" ${#INPUT})

# Go through all bytes, grouping them by chunk of 16 bytes
i=3
CMD="0x0 0x0 $LENGTH"
LINES=()
for BYTE in $BYTES; do
	# Chunk ready, append it to array and reset counters
	if [ $i -gt 16 ]; then
		LINES[${#LINES[*]}]="$CMD"
		CMD=$(printf "0x%x" ${#LINES[*]})
		i=1
	fi

	# Push byte on accumulator
	CMD="$CMD $BYTE"
	let i+=1
done

# Put last chunk into array
LINES[${#LINES[*]}]="$CMD"

# Tell BMC text to print on LCD, chunk by chunk
for i in "${LINES[@]}"; do
	/usr/bin/ipmitool raw 0x6 0x58 0xc1 $i > /dev/null
done

# Tell BMC to output our User String on LCD
/usr/bin/ipmitool raw 0x6 0x58 0xc2 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 > /dev/null


Update VMware tools before reboot

I have searched the web and couldn't think of a simpler way to do this.

When you upgrade your kernel, all modules that were installed by the VMware tools will be missing in the new /lib/modules directory. To reinstall those, you need to reboot first and then re-run the VMware tools. Problems arise if you need the modules prior to the next reboot (ie: if you are doing weird pvscsi on root partition for example).

Out of the box, the VMware tools cannot regenerate modules and initrd for a kernel different than the running one. If you are upgrading the same distribution to a different patch level (RHEL 5 system to a bugfix kernel), chances are that the same modules will work, you just have to install them at the new location.

Tricking the VMware tools software into installing some place else works very well in that case.

This snippet is very RedHat specific, but could be adjusted for any distro. Main points include the uname hack, running a depmod and rebuilding initrd image.

It is important to note that the tools do run depmod, but not specifying a kernel version, hence defaulting to the running kernel.


# Get latest kernel installed
VERSION="$(rpm -qa kernel | sort -r | head -n 1 | sed 's/kernel-//')"

# uname hack (because VMware Tools are stupid)
mv /bin/uname{,.orig} &&
cat > /bin/uname << EOF &&
#!/bin/sh
exec /bin/uname.orig "\$@" | sed 's/2.6.[^ ]*/${VERSION}/'
EOF
chmod 0755 /bin/uname

# Launch VMware Tools install
/usr/bin/vmware-config-tools.pl -d

# Remove our uname hack
mv /bin/uname{.orig,}

# Redo what VMware missed
depmod -a $VERSION
mkinitrd -f /boot/initrd-$VERSION.img $VERSION


Tested on RHEL 5.4 upgrading to a security fix kernel, works like a charm.

1.0.3 on AppStore

Following this last entry on 1.0.3, I've just received news from Apple that the new version of AMT Mobile should hit the App Store within a couple of minutes.

I hope you all enjoy the complete train schedule on you iPhone or iPod touch :)

AMT Mobile in the medias

AMT Mobile is part of an article about mobile apps in this month's Jobboom magazine.

You can see the full article on their website. Magazine is also available in Quebec for free.

News on 1.0.3

Nous vous remercions pour vos commentaires et nous en tiendrons compte pour améliorer nos processus à l'avenir. Nous procéderons à une nouvelle révision de votre application dans les plus brefs délais.


Let's hope it will be quick.

No 1.0.3 I guess...

Monsieur,

Nous regrettons de ne pas pouvoir ajouter l'application AMT Mobile à l'App Store en raison d'une erreur qui produit un arrêt de l’application sur iPhone 3GS OS 3.1.2

Pour reproduire le plantage de l'application :

Lancez l'application
Sélectionnez Trains
Sélectionnez Montréal/Deux-Montagnes
Sélectionnez Deux-Montagnes
Ajoutez Vers Montréal comme favori
Sélectionnez Stations
Sélectionnez Grand-Moulin
Ajoutez Vers Montréal et Vers Deux-Montagnes comme favoris
Sélectionnez Stations
Sélectionnez Favoris
Sélectionnez Modifier
Sélectionnez l'option de suppression pour Grand-Moulin vers Deux-Montagnes
Sélectionnez Supprimer
Sélectionnez l'option de suppression pour Grand-Moulin vers Montréal
Sélectionnez Supprimer
Sélectionnez l'option de suppression pour Deux-Montagnes vers Montréal
Sélectionnez Supprimer

L'application se plante.

Vous trouverez ci-joint des fichiers «crash log» aux fins d'examen. Vous trouverez de l'information sur le contenu des crash log à l'adresse suivante :
developer.apple.com/iphone/library/technotes/tn2008/tn2151.html

Nous vous prions de résoudre ce problème et de télécharger la version corrigée sur iTunes Connect pour que nous puissions terminer l’évaluation de votre application.

Si vous avez besoin d'aide supplémentaire pour résoudre ce problème, le service de soutien technique aux développeurs est à votre disposition. Nos techniciens offrent un service personnalisé et sont en mesure de répondre à toute question portant sur le codage et la programmation. Nous vous prions d'inclure dans toute demande une description détaillée des étapes pour reproduire le problème, des instantanés d'écran, ainsi que tout fichier pertinent.


I have corrected the bug, which was present since the first release of the application! Too bad this never showed up in the crash logs Apple provides (they are always empty...) Oh well.

Submitted the corrected binary. Worst case scenario: going to take 2 weeks for an answer.