If you have installed a Debian lenny ( kernel 2.6.26-2-iop32x ) on your Thecus 2100 NAS device the fan is not automatically controlled by default and it is running on a full speed. The default value is 255 as specified in :

cat /sys/class/i2c-adapter/i2c-0/0-002e/pwm2

To change the default values use a echo command. For example to turn off the fan use:

echo 0 > /sys/class/i2c-adapter/i2c-0/0-002e/pwm2


if the pwm2 file did not produce the desired outcome you may try pwm1 instead.

The main reason to put a fan on lower RPM is to get rid of the noise. However, make sure that you check your hard drives temperature before you leave the fan turned off completely:

# apt-get install hddtemp

I have installed a Debian on my N2100 yesterday and it is just great. I wonder why the Thecus guys do not put a full version of debian into this small box by default :-). Since this is a headless PC I was missing that last beep once the system booted so I would know when I can ssh to it. Here is a small hack to overcome this problem. First install a beep package:

# apt-get isntall beep

Related sources.list repositories:
Wheezy, Jessie, Stretch, Buster

Security Updates

# /etc/apt/sources.list :
deb http://security.debian.org/ squeeze/updates main contrib non-free
deb-src http://security.debian.org/ squeeze/updates main contrib non-free

Australia Mirror

# /etc/apt/sources.list :
deb http://ftp.au.debian.org/debian/ squeeze main contrib non-free
deb-src http://ftp.au.debian.org/debian/ squeeze main contrib non-free

Running Linux system inside a chroot environment allows a system admin to decrease an impact on a production server when the server gets compromised. Change root will change root directory to all current running processes and its children to a chroot jail. Testing of various package installations and server configuration in a chrooted environment can be another handy way how to utilize a chroot jail.

This tutorial will provide a reader with step by step guide on how to install Debian with ssh daemon inside chroot environment using debootstrap.

Install chroot environment

In the first step we will create a directory in which new chroot environment will reside. For convenience during the installation we also declare temporary bash shell variable CHROOT to hold a path to chroot environment.

# mkdir -p /mnt/chroot/squeeze
# CHROOT=/mnt/chroot/squeeze

When new chroot directory is ready we will use debootstrap to install new Debian system within chroot environment. Change the architecture and debian version according to your needs. The installation may take some time as debootstrap will use your specified mirror to download and install core packages. Choose the closest mirror as it will rapidly reduce the installation time.

# debootstrap --arch i386 squeeze \

At the end of the installation you should seed output similar to the one below:

I: Configuring debian-archive-keyring...
I: Configuring apt...
I: Configuring libept0...
I: Configuring apt-utils...
I: Configuring aptitude...
I: Configuring tasksel-data...
I: Configuring tasksel...
I: Base system installed successfully.

This short article describes the quick and easy way on how to customize, build and install Linux kernel under Debian or Ubuntu Linux. First, we will install all prerequisites then download kernel source. Next step will be customization and as a last step we will create and install a Debian package with new Customized Linux kernel.


Let's start with first step which is installation of all prerequisites:

# apt-get install bzip2  build-essential \ 
kernel-package libncurses5-dev

Kernel build and customization

Next step is to download kernel source code from kernel.org. Untar and cd inside the kernel's directory tree:

$ tar xvjf linux-2.6.34.tar.bz2
$ cd linux-2.6.34

At this point we will do the most important part of creating new customized kernel and building a Debian package. This is all done with a single make-kpkg command.


Optional step is to apply kernel patches before running a following linux command:

make-kpkg --rootcmd fakeroot --config menuconfig --initrd --us --uc kernel_image
  • --us do not sign source
  • --uc do not sign changelog
  • --initrd perform any actions necessary for a kernel loaded using initrd
  • -- rootcmd fakeroot command that provides a means of gaining super user access
  • --config menuconfig will use menuconfig as a configuration tool where default is oldconfig

Submit your RESUME, create a JOB ALERT or subscribe to RSS feed on LinuxCareers.com.
Subscribe to NEWSLETTER and receive latest news, jobs, career advice and tutorials.
Get extra help by visiting our LINUX FORUM or simply use comments below.