Archive for category Software

Cross Compile libmysql

The key to cross-compiling libmysql is to google “cmake cross compile” instead of “libmysql cross compile”.  Took me a bit to think of this but it makes sense because cmake is the build system for libmysql.

My How-To

My how-to assumes you have a Linux system with standard development tools and compilers installed as well as GNU cross-compilers for the target platform.

  1. Download libmysql source: In the drop down box change to source. Otherwise you will be presented with pre-compiled binaries.
  2. Extract libmysql: tar -xzf mysql-connector-c-x.y.z.tar.gz
  3. run: cd mysql-connector-c-x.y.z
  4. Create a toolchain.cmake file (See section below)
  5. run: cmake -G “Unix Makefiles” -DCMAKE_INSTALL_PREFIX=`pwd`/install -DCMAKE_TOOLCHAIN_FILE=toolchain-arm-linux.cmake
  6. run: make
  7. run: make install
  8. Your libs are in `pwd`/install/lib

Toolchain file

The toolchain file sets a few parameters for the cmake system to override the default behavior of searching for the system compilers. I modified a sample from vtk.org CMake wiki. Here is my modified sample that cross-compiles for an ARM processor running Linux.

# this one is important
SET(CMAKE_SYSTEM_NAME Linux)
#this one not so much
SET(CMAKE_SYSTEM_VERSION 1)
# specify the cross compiler
SET(CMAKE_C_COMPILER   /usr/local/bin/arm-linux-gcc)
SET(CMAKE_CXX_COMPILER /usr/local/bin/arm-linux-g++)
# where is the target environment
#SET(CMAKE_FIND_ROOT_PATH  /opt/eldk-2007-01-19/ppc_74xx /home/alex/eldk-ppc74xx-inst)
# search for programs in the build host directories
SET(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
# for libraries and headers in the target directories
SET(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
SET(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)

Enable OpenGL hardware acceleration for Java 2D

For a couple years now I have been disappointed that one of my 2D Java programs had HORRIBLE performance on my laptop. I noticed the problem got horrible when I upgraded to Vista and didn’t get fixed with my upgrade to Windows 7. The program is a 2D graphing application that draws multiple data streams as scrolling waveforms on the screen in real-time. It is written using Java Swing libraries and the Graphics2D API. On my laptop I was getting less than 1 update per second. On my work computer I was exceeding 200!

Over the last couple years I tried everything to no avail. Finally today I stumbled across this article that describes several unsupported Java system properties that affect the 2D graphics system.

I tried adding the following line to my program and voila! Awesome performance. Problem solved.

System.setProperty("sun.java2d.opengl","True");

 

Thinkpad T42p graphics driver in Windows 7

A long time ago I raved about how awesome Windows 7 was compared to past operating systems. It turned out that my installation did have one fatal flaw that I dealt with for a little over a year. The graphics driver that I had managed to get to install caused crashes and blue screens when I switch from docked to undocked while in hibernate or sleep state.

Last month I messed up my installation so bad that I had to reinstall Windows. This time I took a bit more delicate approach to installing the graphics driver and it worked. So here is a guide for others still squeaking every last breath out of their previous T42p. This process worked for my ATI Fire GL T2/T2e

  1. Download the Catalyst “Legacy” Display Driver off http://ati.amd.com/ Select: “Desktop Graphics”, “9xxx Series”, “9700 Series”, “Windows 7 – X Bit”.
  2. Download Mobility Modder http://www.hardwareheaven.com/modtool.php and then follow the instructions.

The hardest part was trying to figure out what options to enter on AMD/ATI’s website to make them give me the right catalyst suite. Once that was done the rest is easy. Now my laptop docks and undocks with no glitches.