Adding additional I²C sensors to ALIX.3D3

J8: SMBus

J8: SMBus

The manual of the ALIX.3D3 board mentions a lot of pin descriptions of all pin headers on the board. J8 interfaces the SMBus of the AMD CS5536 Geode companion (which is compatible to I²C if bus speed is below 100kHz, see Maxim’s Appnote for detailed comparison). So why not add additional I²C sensors. As an example I connected an LM75 temperature sensor.

First of all we need to add some pin headers to J8 found on board next to the USB port. Continue reading

Ultimative iPhone geek application

Lightsaber Unleashed

Lightsaber Unleashed

"Ever wished you could swing your iPhone around like a lightsaber?"

This questions is the start of the description of Lightsaber Unleashed - a must-have application for every geek.

You enable/disable your lightsaber by clicking on the lightsaber, while your iPhone emits sound effects from your phone's speaker. When you swing around your the sound effect's too. It's very funny and for free!

So, I'm looking for someone to duel!

Updating BIOS on ALIX.3D3 within Linux

Usually BIOS updating means booting DOS and running a proprietary tool from the board vendor. A few days ago, coreboot's flashrom 0.9 has realeased. It's an open-source tool which supports program almost all flash chips used on x86 mainboards. Its compatibility list includes Geode™ CS5530/A, which can be found on the ALIX.3D3 board. So why not using flashrom to update ALIX.3D3 BIOS.

Continue reading

Ethernet bonding with Linux and 802.3ad

2 NIC + SwitchNowadays, most desktop mainboards provide more than one gigabit ethernet port. Connecting them both to the same switch causes most Linux distros by default to get a individual IP on each device and route traffic only on the primary device (based on device metric) or round-robin. A single connection always starts at one IP and so all traffic goes through one device, limiting maximum bandwidth to 1 GBit.

Here comes bonding (sometimes called (port) trunking or link aggregation) to play. It connects two ore more ethernet ports to one virtual port with only one MAC and so mostly one IP address. Wheres earlier only two hosts (with the same OS running) or two switches (from the same vendor) could be connected, nowadays there's a standard protocol which makes it easy: LACP which is part of IEEE 802.3ad. Continue reading

Changing scheduling parameters in Linux

Process scheduling within Linux is done by the kernel, following different aspects. Usually it's goal is to share all resources fairly among all running processes.

Sometimes, there's a need to tell the kernel explicitly to prior some process, bind some process to a special CPU and so on.

Changing process priorities is commonly known:

nice -n 10 make

runs the program make with a priority of 10 (-20 meaning most favorable and 19 least favorable scheduling). If you want to change a priority of a running program, renice is your choice. Continue reading