Difference between revisions of "Debian Wheezy Instructions"

From odroid US
Jump to: navigation, search
(Download Area)
Line 24: Line 24:
  
 
== Download Area ==
 
== Download Area ==
'''Note:''' The file arrangement is by hardkernel board names.  Make sure you download from the area that matches your board.  
+
'''Note:''' The file arrangement is by hardkernel board names.  Make sure to download from the area that matches your board.  
  
The download area is here:[ http://odroid.us/odroid/ http://odroid.us/odroid/]
+
The download area is here: [http://odroid.us/odroid/ http://odroid.us/odroid/]
  
 
 
== Features ==
 
== Features ==
 
Writing the '''base''' SD-card image and booting will give you a complete, headless Debian system. <br/>
 
Writing the '''base''' SD-card image and booting will give you a complete, headless Debian system. <br/>

Revision as of 13:41, 11 January 2014


Introduction

This effort started before HardKernel had a supported Debian image, now they have some. At this writing the official build comes with the LXDE window manager installed -- depending on odroid board type.

There are some great full-featured user-contributed images available (GUI, XBMC and so on). For example: @robroyhall images

In order to keep this branch relevant, it has been updated to match the Hardkernel setup. It has the same bootloader, boot scripts, partition layout, kernel version, and kernel modules -- only it is headless, meaning no GUI. The approach is modular and you can follow the steps to add Gnome or XFCE as you like.

The images have full provenance, you could create the same setup starting from bootstrapping with an emulated ARM. This topic is meant to help teach about embedded Linux.

Availability

Several Debian SD-Card images and root file system images are available for various odroid boards.

Versions

  • minimal system (base) - headless or server-style. Login with USB-UART kit or using ssh. No GUI.
  • system with visual desktop (gnome, xfce) - recommended for new users
  • root filesystem only (rootfs) image - Need special handling. Tutorial: Updating from Root File System Images

For Linux host users, see Tutorial: Step-by-step SD-Card setup on Linux host

For Windows users, see Tutorial: Step-by-step SD-card setup on Windows

Download Area

Note: The file arrangement is by hardkernel board names. Make sure to download from the area that matches your board.

The download area is here: http://odroid.us/odroid/

Features

Writing the base SD-card image and booting will give you a complete, headless Debian system.
Headless, meaning only the Linux console is active -- not the HDMI display.

The network will come up automatically, using DHCP and the ssh daemon will be started so you can connect from another computer -- even without the USB-UART kit.

Login

Version 7 Credentials

As of release 7, the login credentials are odroid/odroid and root/odroid in order to match the official Hardkernel Debian release. Specifically, this means username: odroid and password: odroid will get you in.

Or you can use username: root, password: odroid.

If you log in as user, you can use command su to become root.

Version 6 Credentials

Previous to version 7, the credentials were user/password and root/root

Revision History

See here for complete revision history of all images

The top of the tree for these debian images is: http://odroid.us/odroid/ Notice the arrangement by hardkernel board names? Make sure you download from the area that matches your board.

You should use the standard images that support hard-floating point if possible (armhf). They will be faster than the soft-float versions.

Some alternate images using soft floating point are also available (armel)

You can't easily mix soft-float compiled and hard-float compiled binaries on the same system. It is possible, but the general technique is not worked out yet (as far as I know). The standard hardkernel kernels all built to support hard floating point, and that is a necessary requirement.


Security Issues and Initialization

When you use an existing image, you pick up some keys that you should change for security reasons. Once you boot your system the first time do this: (as root)

rm /etc/ssh/*.pub /etc/ssh/*_key
#images starting at debian-wheezy-base-6.1 should have openssh-server installed
# re-generate the host ssh keys
dpkg-reconfigure openssh-server

It is best to set a unique persistent MACID. This script will do it:

echo $( ifconfig | grep HWaddr | awk '{ print $5 }' ) >/etc/smsc95xx_mac_addr

Adding Native Compiler and Tools

The base, xfce and gnome images do not include tools required to build the kernel or other compile other packages. Here are steps you can do to add that capability: (as root). We get some (but not all) recommended packages too. All recommended packages add over 1GiB to the flash footprint

apt-get install build-essential ncurses-dev
apt-get install gcc-4.6-locales debian-keyring libstdc++6-4.6-dbg autoconf automake1.9 libtool flex bison gdb libmudflap0-4.6-dev 
apt-get install libgcc1-dbg libgomp1-dbg libmudflap0-dbg binutils-gold ed p7zip-full

Installing X

The x-server and userspace drivers provided by [1] are either X version 1.11 or 1.13, whereas the default in debian is 1.12. The X-protocols seem to be incompatible.

So after installing [2], the X-server should be replaced by something else.

Newer versions of the user-space code might require libump:

git clone https://github.com/libv/libump.git
cd libump
aclocal; automake --add-missing; autoconf
./configure
make
checkinstall --pkgname=libump --pkgversion=1 make install

One option for the X-server is to use the sunxi-mali drivers. Since debian is statically linked to libdri2, that needs to be built from source as well:

apt-get install checkinstall build-essential pkg-config
git clone https://github.com/robclark/libdri2
cd libdri2
./autogen.sh
make
checkinstall --pkgname=libdri2 --pkgversion=1 make install

checkinstall is used to make a debian-package while installing. This makes it easy to uninstall later on. Just press enter on all checkinstall questions should be fine.

Next up are the user-space mali drivers. The configuration script checks the X-server, so we need to install that first:

apt-get install xserver-xorg-core xserver-xorg-dev
git clone https://github.com/linux-sunxi/sunxi-mali.git
cd sunxi-mali
git submodule init; git submodule update
checkinstall --pkgname=sunxi-mali --pkgversion=1 make install VERSION=r3p1

Finally, the x-server-module can be compiled.

git clone https://github.com/ssvb/xf86-video-sunxifb.git
cd xf86-video-sunxifb
./autogen.sh
make
mkdir -p /usr/local/lib/xorg/modules
checkinstall --pkgname=xf86-video-sunxifb --pkgversion=1 make install

After installation of the x-server, it needs to be configured using /etc/X11/xorg.conf. you can generate one by

cp /usr/share/X11/xorg.conf.d/99-sunxifb.conf /etc/X11/xorg.conf

For kernel version 3.8, /dev/fb0 is the LCD output, /dev/fb1 is the HDMI output 1. For an Odroid-X2 with kernel 3.8.13, the following /etc/X11/xorg.conf gives output on the HDMI interface:

Section "Device"
        Identifier "Sunxi FBDEV"
        Driver          "sunxifb"
        Option "fbdev" "/dev/fb1"
        Option "ShadowFB" "on"
EndSection

Section "Screen"
        Identifier      "Sunxi Screen"
        Device          "Sunxi FBDEV"
EndSection

After this, your favorite window manager can be installed, for example Debian-wheezy-gnome-6_Build_Notes.

Debian Tips

This page is for Debian Tips Debian Tips

Image Creation Details

You can completely re-create any of these Debian root filesystem images own your own. All the instructions are here: Custom_Debian_Root_Filesystem_Image.