Ubuntu amd64 ATmega328 workaround

First, sudo aptitude install libusb-1.0-0 libusb-dev binutils-avr gcc-avr avr-libc librxtx-java sun-java6-jre sun-java6-jdk sun-java6-fonts sun-java6-plugin picocom byacc flex

Second, download, unpack, and make arduino-0017, avrdude-5.8, and rxtx-2.1-7r2. For rxtx, use
./configure --disable-PRINTER --prefix=/usr/local
make clean
make
sudo make install

For avrdude, use the arduino-tailored source code and
./configure CFLAGS="-g -O2 -DHAVE_LIBUSB" LIBRARIES=lusb
make clean
make

For arduino, use
./configure
make clean
make

Third, copy avrdude and avrdude.conf from the avrdude-5.8 folder to the arduino-0017/hardware/tools folder (rename or overwrite existing files). Copy RXTXcomm.jar and librxtxserial.so to the arduino-0017/lib folder (rename or overwrite existing files).

Finally, cd to the arduino-0017 folder and ./arduino.

The serial port monitor does not yet work in this version. Opening the monitor window and causing Arduino to computer activity crashes the monitor and the arduino IDE.

As a workaround use a general purpose terminal simulator such as picocom:
sudo aptitude install picocom
picocom /dev/ttyUSB0

However, only one process can access the port at a time, so it is necessary to stop picocom (with C-x) before uploading any more sketches. Arduino is polite about its use of the port and is careful to close it after uploads so that it is unnecessary to quit arduino prior to executing picocom. Pressing the Arduino's hardware reset switch then executes the sketches and sends the Arduino's data to the picocom display. Typed characters are sent through the port to the Arduino if two-way communication is needed. Picocom also has the capability to upload and/or to download ascii text files to help with tedious communication problems.