Archive for the ‘Hardware’ Category

Debian on a Lenovo x121e

Sunday, May 4th, 2014

I was looking for an ultramobile notebook with the following requirements:

  • Smaller than the Lenovo Thinkpad x230
  • Trackpoint
  • Decent hardware (especially RAM)
  • Long battery

and finally found a good contester: Lenovo Thinkpad x121e.

Since barely any models with a compatible formfactor feature a trackpoint, the alternatives like the Edge E135 or E145 were also from lenovo.

The decision towards the x121e was made because of the supposedly more sturdy housing, the still decent hardware and the lower price.

I didnt find a well priced model with the Intel i3, so i got one with the AMD 450 and the RAM upgraded to 8GB. Instead of the 320GB harddrive, i invested in a Samsung 840 Evo SSD with 120GB.

Operating System Install
The OS should be a Debian, so i got the 7.4 amd64 netinstall CD and connected an external USB-CDROM drive to the x121e. As always with no-drive notebooks, installing the OS could be also done by putting the SSD into a different computer or booting via network.

Wired network is required anyway though, since the driver for the wireless adapter is not included. Also make sure the battery is fully charged or use the power adapter.

The install procedure itself is pretty straight forward, once booted from the CD, i basically just did:

  1. in the inital boot menu, select expert install
  2. Choose language and keyboard
  3. choose extra packages: network console to continue via ssh (optional)
  4. detect network (only finds wired connection), rtlwifi/rtl8192cfw.bin for wireless is missing (will install later)
  5. configure network: dhcp or static, according to network infrastructure
  6. continue installation remotely (define a password and note the ip adress, optional)
  7. partition disks: guided encrypted lvm (but deleted logical volumes to change sizes), 4.4GB (swap), 10GB (root), 105GB (home) to 8GB, 20GB, 91GB (/boot is not encrypted at around 250MB)
  8. linux-kernel-amd64 and targeted
  9. deselect desktop environment, choose ssh-server to continue install remotely (see screenshot)
  10. install bootloader (grub) and finish installation
Selection in Debian Installer

Selection in Debian Installer

Some information could be used from a similar device/OS description from debian wiki.

Directly after basic install:

root@x121e:~# df
Filesystem 1K-blocks Used Available Use% Mounted on
rootfs 19223252 1154332 17092436 7% /
udev 10240 0 10240 0% /dev
tmpfs 778596 368 778228 1% /run
/dev/mapper/x121e-root 19223252 1154332 17092436 7% /
tmpfs 5120 0 5120 0% /run/lock
tmpfs 1557180 0 1557180 0% /run/shm
/dev/sda1 233191 10600 210150 5% /boot
/dev/mapper/x121e-home 88123672 188124 83459032 1% /home

root@x121e:~# free -m
total used free shared buffers cached
Mem: 7603 250 7353 0 26 147
-/+ buffers/cache: 76 7527
Swap: 7719 0 7719

Additional packages
Packages needed to tweak the performance, silence the fan and get a GUI are the following (root required)

apt-get update

apt-get install i3 firmware-realtek thinkfan lm-sensors lightdm lxterminal

and packages i like to have as well

apt-get install screen sudo htop powertop vim xinput wicd chromium xfce4-power-manager alsa

Configure Thinkfan
Without thinkfan, the fan is quite noisy. There are a couple of resources for thinkfan thinkwiki.org or in german on thinkwiki.de. Also, more specifically for the x121e, i found descriptions at kernelconcepts.de and solutionlocker blog.

Watch out, if the x121e has an AMD CPU, there is no coretemp module, instead its called ‘k10temp’.

Configure Graphics Card
To get the most out of the graphics hardware, the proprietary “fglrx” drivers worked for me. The performance of “flg_glxgears” improved from around 40FPS to 330FPS. Instructions on how to install the drivers can be found in debian WIKI. It basically boils down to the following

sudo apt-get install fglrx-drivers

sudo aticonfig –initial

Attention, this way will download quite some packages in order to compile the drivers via DKMS.

Other Notes

  • with xinput installed, disable touchpad:

    xinput –list && xinput set-prop ID “Device Enabled” 0

  • suspend/hibernate just worked out of the box via xfce4-power-manager, otherwise extra packages might have to be installed

Using an Atmel ATmega168 for Arduino on a breadboard

Sunday, January 5th, 2014

For all the people which want to profit from the easy development with Arduino also on custom hardware, here is how to get your hardware running when not completely copying the original Arduino (UNO) schematic.

The Arduino UNO board uses an external 16 MHz oscillator to clock the ATmega328. For a project, I used an ATmega168 with internal RC oscillator, so none of the standard Arduino boards offered in the Arduino IDE suited my configuration.

To be able to talk to the custom board and load the Arduino bootloader, you have to add a custom board to the Arduino IDE:

The available boards in the Arduino IDE are stored in the ./hardware/arduino/boards.txt file of your Arduino directory.

To add an additional board, just add the following code at the bottom of the file:
##############################################################

avr168p.name=Breadboard int clock 8MHz w/ ATmega168

avr168p.upload.using=arduino:arduinoisp
avr168p.upload.maximum_size=16384

avr168p.bootloader.low_fuses=0xe2
avr168p.bootloader.high_fuses=0xdd
avr168p.bootloader.extended_fuses=0x07
avr168p.bootloader.path=arduino:atmega
avr168p.bootloader.file=ATmegaBOOT_168_pro_8MHz.hex
avr168p.bootloader.unlock_bits=0x3F
avr168p.bootloader.lock_bits=0x3F

avr168p.build.mcu=atmega168
avr168p.build.f_cpu=8000000L
avr168p.build.core=arduino:arduino
avr168p.build.variant=arduino:standard
##############################################################

The parameters are pretty self-explaining – this is also the point where you can set the fuses of your controller. To get the fuse values, I recommend to use a fuse value generator like http://www.engbedded.com/fusecalc/

Installing the Xilinx Cable Drivers under Ubuntu

Sunday, January 29th, 2012

Each time I install Xilinx ISE under Ubuntu – and that happened a few times in the last months – I wonder how to get the Cable Drivers working so I can program my Spartan3E Starter Board. Although there seems to be an official Linux support, Cable Drivers do not work per default after installation. There’s a very useful link describing the process, and it works really fine for me. I bookmarked it lately and want to share, so other people can find this recipe more easily:

http://www.george-smart.co.uk/wiki/Xilinx_JTAG_Linux

It worked fine with ISE 13.1 and Ubuntu 10.10 for me.

Good luck!

 

The Gossen Konstanter – a piece of history

Wednesday, September 10th, 2008

Today, we found a really interesting piece of electronics in the box where all electrotechnical things have to go at the end of their life…
A DC power source from Gossen with 80 V, 12 A maximum ratings. Nice piece of engineering. Perhaps it’s the definition of old-fashioned with it’s non-smd components, some logic chips and an excessive use of analog stuff. We can’t definitely tell how old it is, but we think it’s about 20-25 years old.
First, we just wanted to take it with us for exploiting purposes (yeah, the analog displays and so on), but then we disassembled it completely, just for fun.
I don’t want to talk much about the components, just have a look at the biiiiig transformers and the row of capacitors (each 1.5 F).

After 30 minutes of hard work, we had a cool (but definitely not small) case for building some tube amplifier or media computer and some analog gauges, switches and plug sockets =)