# Debian

Debian is a free operating system using the Linux kernel, but most of the basic OS tools come from the GNU project; hence the name GNU/Linux. At Organic Design we install Debian on our servers using the install a new server procedure, and have been using it for over ten years.

As of June 2013 we decided to change from Ubuntu to Debian for our workstations as well since Ubuntu is increasingly becoming the "microsoft of the free software world" with pay software and services at every corner and compulsory spyware riddled throughout system.

As of early 2024 we've changed to Linux Mint for our workstation machines, mainly due to the fact that they're very up to date with their choice of Linux kernel version which allowed me to use my touch-screen on my Samsung ATIV Smart PC Pro (XE700T1C) and fixed a long-standing bug on Beth's Lenovo Ideapad S10-3 which prevented it from resuming from standby.

## Installation

Installation is covered here and for our typical situation involves downloading the first of the amd64 DVD iso images and copying it onto a memory stick using the following commands from a root shell where X is the number of the device that the USB stick is on which can be obtained from dmesg or df etc. Note that the numbers on the end of devices such as /dev/sda1 refer to the partitions within the device, but the boot record is outside of any specific partition, so the number must be excluded in the command to refer to the device as a whole.
 umount /dev/sdX cp debian.iso /dev/sdX sync

To upgrade Debian, first ensure that there are no conflicting or held back packages. If there are, these issues are best sorted out first.

dpkg --audit
dpkg --get-selections | grep hold

Then run aptitude and press "g" and only carry on when you have the message "No packages are scheduled to be installed, removed or upgraded".

Next change all your sources over in /etc/apt/sources.list from the old distro name such as squeeze to the new one such as wheezy. And then do the upgrade in two steps, first upgrade the packages and then do the dist-upgrade as follows:

apt-get update
apt-get dist-upgrade

It's best to use the package maintainer's version of any updated configuration files it mentions. You can have a second shell window open so you can check the changed parts of the configuration that have changed and back them up or copy them across to the freshly created version.

## Centrino Wireless-N 1030

This driver is not included in the Debian installation or on-line repositories so has to be manually installed afterwards. See also Set up a wifi hotspot

echo "deb http://http.debian.net/debian/ wheezy main contrib non-free" >> /etc/apt/sources.list
apt-get update
apt-get install firmware-iwlwifi
modprobe -r iwlwifi ; modprobe iwlwifi

## Bluetooth

I found that I couldn't get any of my bluetooth devices to pair in the default install of Debian 7. The devices would show up in the detected list and the pairing process would initiate properly, but would then fail to complete. Using the bluez tools from the terminal worked though with the following procedure I found here. Strangely, after I got the first thing (my mouse) working with this process, then my phone was able to pair from the GUI as normal even though it had failed prior to getting the mouse to work.

hcitool scan

This process gives you the MAC address of your device which you can then begin the pairing process with as follows. This will ask you for the pin which you type in to your device etc or use 0000 if it's a device like a mouse or headset.

bluez-simple-agent hci0 12:34:56:78:9A:BC

You then make the device trusted so that it can automatically connect in future:

bluez-test-device trusted 12:34:56:78:9A:BC yes

And then finally, connect to the device:

bluez-test-input connect 12:34:56:78:9A:BC

It should now be shown as normal in the bluetooth menus and settings window and should connect automatically when the session starts.

## Dual Monitor issues

One problem that often comes up with dual monitor setup in Ubuntu (persisting as of 11.04) is that there's nothing in the interface allowing the user to define which is the primary monitor having the panels with the launcher and notification icons etc.

But the monitors applet is actually just a graphical interface over the powerful xrandr utility. This tool can also be used to set the resolution - even custom resolutions, as for example shown in HDMI to DVI problem. The changes made with xrandr occur in real-time without any need to log out or restart anything to see the effects.

As an example, when I plugged a second monitor into my laptops HDMI port it automatically changed to an extended desktop setup, but the panels were all on the laptop screen. To move them across to the external monitor involves first querying xrandr to see what the current monitor names are:

Screen 0: minimum 320 x 200, current 3286 x 1080, maximum 8192 x 8192
LVDS1 connected 1366x768+0+0 (normal left inverted right x axis y axis) 293mm x 165mm
1366x768       60.0*+
1360x768       59.8     60.0
1024x768       60.0
800x600        60.3     56.2
640x480        59.9
VGA1 disconnected (normal left inverted right x axis y axis)
HDMI1 connected 1920x1080+1366+0 (normal left inverted right x axis y axis) 531mm x 299mm
1920x1080      60.0*+
1280x1024      75.0     60.0
1152x864       75.0
1024x768       75.1     60.0
800x600        75.0     60.3
640x480        75.0     60.0
720x400        70.1
DP1 disconnected (normal left inverted right x axis y axis)

From this we see that the external monitor is named HDMI1, so we can now make it primary as follows:

xrandr --output HDMI1 --primary

And voila, straight away, the panels shift across to the other screen :-)

## Working with small screens

Something that used to worm on prior versions of Ubuntu and seems to have stopped working in version 12 is the desktop panning feature. This allows your desktop to be bigger than you physical screen size and to scroll when you move the mouse to the edges. You used to be able to do this by typing a simple xrandr command such as the following:

xrandr --output LVDS1 --panning 1920x1080

But this no longer works, which is a real pain if you have a tiny screen because you often have dialog boxes with the buttons off the bottom where they can't be seen! However it turns out there's a simple solution to this - you can hold down the ALT key and drag the window around to reveal the hidden parts!

no-auto-default=18:03:91:8E:90:BC,