summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWaldemar Brodkorb <wbx@openadk.org>2009-09-09 20:43:08 +0200
committerWaldemar Brodkorb <wbx@openadk.org>2009-09-09 20:43:08 +0200
commit27cfb0e6df5661d2744b67138af69da477ee6c5a (patch)
tree1a9b2e14da52adadb7f634ae7894a2b2848c44c0
parente9b52dbc4bb9e531c15fa442121288de98c0904f (diff)
add shuttle and tomtom device support
barely tested. TomTom support is for my tomtom rider 2 navigation system and is a new toolchain only target. I will add some special applications later. Shuttle is my ADK buildserver. At least I can boot via PXE and create software raid devices. Still need to figure out how to manage grub2 and how to integrate a disk installer or something like that.
-rw-r--r--Config.in35
-rw-r--r--mk/build.mk4
-rw-r--r--mk/rootfs.mk2
-rw-r--r--mk/vars.mk12
-rw-r--r--package/base-files/Config.in4
-rw-r--r--package/busybox/Config.in4
-rw-r--r--package/cryptinit/Config.in2
-rw-r--r--package/dropbear/Config.in2
-rw-r--r--package/em28xx/Makefile4
-rw-r--r--package/uclibc/Config.in2
-rw-r--r--rules.mk1
-rw-r--r--target/Config.in112
-rw-r--r--target/lemote/Makefile2
-rw-r--r--target/qemu-x86/Makefile4
-rw-r--r--target/shuttle/Makefile35
-rw-r--r--target/shuttle/device.mk7
-rw-r--r--target/shuttle/files/etc/inittab4
-rw-r--r--target/shuttle/files/etc/mdev.conf14
-rw-r--r--target/shuttle/files/etc/network/interfaces5
-rw-r--r--target/shuttle/kernel.config1112
-rw-r--r--target/shuttle/uclibc.config223
-rw-r--r--target/tomtom/Makefile17
-rw-r--r--target/tomtom/device.mk7
-rw-r--r--target/tomtom/files/etc/mdev.conf11
-rw-r--r--target/tomtom/kernel.config1971
-rw-r--r--target/tomtom/uclibc.config243
-rw-r--r--target/zaurus/Makefile2
-rw-r--r--toolchain/gcc/Makefile7
28 files changed, 3777 insertions, 71 deletions
diff --git a/Config.in b/Config.in
index 903ec2cf5..06abfd3be 100644
--- a/Config.in
+++ b/Config.in
@@ -17,6 +17,41 @@ config ADK_HAVE_DOT_CONFIG
menu "ADK settings"
+config ADK_DEVELSYSTEM
+ bool "Compile a ADK development system"
+ default n
+ select ADK_CXX
+ select ADK_PACKAGE_AUTOCONF
+ select ADK_PACKAGE_AUTOMAKE
+ select ADK_PACKAGE_BASH
+ select ADK_PACKAGE_BINUTILS
+ select ADK_PACKAGE_BISON
+ select ADK_PACKAGE_BZIP2
+ select ADK_PACKAGE_DIFFUTILS
+ select ADK_PACKAGE_FILE
+ select ADK_PACKAGE_FLEX
+ select ADK_PACKAGE_GAWK
+ select ADK_PACKAGE_GCC
+ select ADK_PACKAGE_GIT
+ select ADK_PACKAGE_GPERF
+ select ADK_PACKAGE_UCLIBC_DEV if ADK_TARGET_LIB_UCLIBC
+ select ADK_PACKAGE_EGLIBC_DEV if ADK_TARGET_LIB_EGLIBC
+ select ADK_PACKAGE_GLIBC_DEV if ADK_TARGET_LIB_GLIBC
+ select ADK_PACKAGE_LIBNCURSES
+ select ADK_PACKAGE_LIBNCURSES_DEV
+ select ADK_PACKAGE_LIBTOOL
+ select ADK_PACKAGE_M4
+ select ADK_PACKAGE_MAKE
+ select ADK_PACKAGE_PATCH
+ select ADK_PACKAGE_TAR
+ select ADK_PACKAGE_ZLIB
+ select ADK_PACKAGE_ZLIB_DEV
+ help
+ After bootstrapping a Linux system you might want to
+ switch to native builds with your target.
+ If you choose this option, all necessary software needed
+ for native building will be selected.
+
config ADK_MAKE_JOBS
int
default 1 if ! ADK_MAKE_PARALLEL
diff --git a/mk/build.mk b/mk/build.mk
index 00875e71d..d4cfab8c8 100644
--- a/mk/build.mk
+++ b/mk/build.mk
@@ -58,8 +58,12 @@ world: $(DISTDIR) $(BUILD_DIR) $(TARGET_DIR) $(PACKAGE_DIR) ${TOPDIR}/.cfg/ADK_H
ifeq ($(ADK_NATIVE),y)
$(MAKE) -f mk/build.mk toolchain/kernel-headers-prepare target/config-prepare target/compile package/compile root_clean package/install package_index target/install
else
+ifeq ($(ADK_TOOLCHAIN_ONLY),y)
+ $(MAKE) -f mk/build.mk toolchain/install package/compile
+else
$(MAKE) -f mk/build.mk toolchain/install target/config-prepare target/compile package/compile root_clean package/install package_index target/install
endif
+endif
package_index:
-cd ${PACKAGE_DIR} && \
diff --git a/mk/rootfs.mk b/mk/rootfs.mk
index ef73b4522..33bc9c536 100644
--- a/mk/rootfs.mk
+++ b/mk/rootfs.mk
@@ -14,7 +14,7 @@ endif
$(eval $(call rootfs_template,ext2-cf,EXT2_CF,$(ROOTFS)))
$(eval $(call rootfs_template,ext2-mmc,EXT2_MMC))
-$(eval $(call rootfs_template,ext2,EXT2))
+$(eval $(call rootfs_template,archive,ARCHIVE))
$(eval $(call rootfs_template,initramfs,INITRAMFS))
$(eval $(call rootfs_template,initramfs-piggyback,INITRAMFS_PIGGYBACK))
$(eval $(call rootfs_template,squashfs,SQUASHFS))
diff --git a/mk/vars.mk b/mk/vars.mk
index 23e82967e..b3215a24c 100644
--- a/mk/vars.mk
+++ b/mk/vars.mk
@@ -37,17 +37,9 @@ PACKAGE_DIR:= $(BIN_DIR)/packages
TARGET_DIR:= $(BASE_DIR)/root_${DEVICE}
TARGET_DIR_PFX:= $(BASE_DIR)/root_*
TARGET_PATH= ${SCRIPT_DIR}:${STAGING_TOOLS}/bin:${STAGING_DIR}/scripts:${_PATH}
-ifeq ($(ADK_TARGET_LIB_UCLIBC),y)
-REAL_GNU_TARGET_NAME= $(CPU_ARCH)-linux-uclibc
+REAL_GNU_TARGET_NAME= $(CPU_ARCH)-linux-$(ADK_TARGET_SUFFIX)
GNU_TARGET_NAME= $(CPU_ARCH)-linux
-KERNEL_CROSS:= $(STAGING_TOOLS)/bin/$(CPU_ARCH)-linux-uclibc-
-TARGET_CROSS:= $(STAGING_TOOLS)/bin/$(CPU_ARCH)-linux-uclibc-
-else
-REAL_GNU_TARGET_NAME= $(CPU_ARCH)-linux-gnu
-GNU_TARGET_NAME= $(CPU_ARCH)-linux
-KERNEL_CROSS:= $(STAGING_TOOLS)/bin/$(CPU_ARCH)-linux-gnu-
-TARGET_CROSS:= $(STAGING_TOOLS)/bin/$(CPU_ARCH)-linux-gnu-
-endif
+TARGET_CROSS:= $(STAGING_TOOLS)/bin/$(CPU_ARCH)-linux-$(ADK_TARGET_SUFFIX)-
TOOLCHAIN_SYSROOT:= $(TOOLCHAIN_BUILD_DIR)/libc_dev
TARGET_COMPILER_PREFIX?=${TARGET_CROSS}
TARGET_CC:= ${TARGET_COMPILER_PREFIX}gcc
diff --git a/package/base-files/Config.in b/package/base-files/Config.in
index 8312e2ee2..f58cbd63c 100644
--- a/package/base-files/Config.in
+++ b/package/base-files/Config.in
@@ -1,14 +1,14 @@
config ADK_PACKAGE_BASE_FILES
prompt "base-files........................... basic filesystem layout"
bool
- default y
+ default y if !ADK_TOOLCHAIN_ONLY
help
Basic filesystem layout.
config ADK_PACKAGE_CONFIG_IN_ETC
prompt ".config in /etc...................... include gzipped version of .config in image"
bool
- default y
+ default y if !ADK_TOOLCHAIN_ONLY
help
Copy the configuration file (.config) to the image. The
file will be found in /etc/adkconfig.gz. This takes about
diff --git a/package/busybox/Config.in b/package/busybox/Config.in
index 15da6729a..cfe20190e 100644
--- a/package/busybox/Config.in
+++ b/package/busybox/Config.in
@@ -1,14 +1,12 @@
config ADK_PACKAGE_BUSYBOX
prompt "busybox.............................. The Swiss Army Knife"
bool
- default y
+ default y if !ADK_TOOLCHAIN_ONLY
help
The Swiss Army Knife of embedded Linux. It slices, it dices, it
makes Julian Fries.
-
http://busybox.net/
- Most people will answer Y.
menu "Busybox Configuration"
source "package/busybox/config/Config.in"
diff --git a/package/cryptinit/Config.in b/package/cryptinit/Config.in
index 664186378..f17ef17a0 100644
--- a/package/cryptinit/Config.in
+++ b/package/cryptinit/Config.in
@@ -1,5 +1,5 @@
config ADK_PACKAGE_CRYPTINIT
- prompt "cryptinit............................. crypt initramfs application"
+ prompt "cryptinit............................ crypt initramfs application"
tristate
default n
help
diff --git a/package/dropbear/Config.in b/package/dropbear/Config.in
index ea087b8bb..e12ca80f3 100644
--- a/package/dropbear/Config.in
+++ b/package/dropbear/Config.in
@@ -1,7 +1,7 @@
config ADK_PACKAGE_DROPBEAR
prompt "dropbear.......................... Small SSH 2 client/server"
tristate
- default y
+ default y if !ADK_TOOLCHAIN_ONLY
help
A small SSH 2 server/client designed for small memory environments.
diff --git a/package/em28xx/Makefile b/package/em28xx/Makefile
index ba0a2fa04..2a405660e 100644
--- a/package/em28xx/Makefile
+++ b/package/em28xx/Makefile
@@ -23,8 +23,8 @@ EM28XX_MAKEOPTS= -C ${WRKBUILD} \
ARCH="${ARCH}" \
CROSS_COMPILE="${TARGET_CROSS}" \
TARGET="${HAL_TARGET}" \
- TOOLPREFIX="${KERNEL_CROSS}" \
- TOOLPATH="${KERNEL_CROSS}" \
+ TOOLPREFIX="${TARGET_CROSS}" \
+ TOOLPATH="${TARGET_CROSS}" \
KERNELPATH="${LINUX_DIR}" \
V=1
diff --git a/package/uclibc/Config.in b/package/uclibc/Config.in
index 2df80c81d..a90c7c22b 100644
--- a/package/uclibc/Config.in
+++ b/package/uclibc/Config.in
@@ -1,7 +1,7 @@
config ADK_PACKAGE_UCLIBC
prompt "uClibc............................... embedded C library"
bool
- default y if ADK_TARGET_LIB_UCLIBC
+ default y if ADK_TARGET_LIB_UCLIBC && !ADK_TOOLCHAIN_ONLY
default n
depends on ADK_TARGET_LIB_UCLIBC
help
diff --git a/rules.mk b/rules.mk
index 8728c7547..dfd2e4017 100644
--- a/rules.mk
+++ b/rules.mk
@@ -26,6 +26,7 @@ endif
# Strip off the annoying quoting
DEVICE:= $(strip $(subst ",, $(ADK_DEVICE)))
+ADK_TARGET_SUFFIX:= $(strip $(subst ",, $(ADK_TARGET_SUFFIX)))
ifeq ($(strip ${ADK_HAVE_DOT_CONFIG}),y)
include $(TOPDIR)/target/$(DEVICE)/device.mk
diff --git a/target/Config.in b/target/Config.in
index 4baa56ede..81c639418 100644
--- a/target/Config.in
+++ b/target/Config.in
@@ -5,9 +5,15 @@
config ADK_BROKEN
bool
+config ADK_TOOLCHAIN_ONLY
+ bool
+
config ADK_DEVICE_NO_FPU
bool
+config ADK_EABI
+ bool
+
config ADK_LINUX_64
bool
@@ -47,6 +53,9 @@ config ADK_rb433
config ADK_zaurus
tristate
+config ADK_tomtom
+ tristate
+
config ADK_foxboard
tristate
@@ -68,6 +77,9 @@ config ADK_rescue_mipsel
config ADK_wag54g
tristate
+config ADK_shuttle
+ tristate
+
config ADK_DEVICE
string
default "alix1c" if ADK_alix1c
@@ -89,6 +101,8 @@ config ADK_DEVICE
default "rescue-x86_64" if ADK_rescue_x86_64
default "rescue-mips" if ADK_rescue_mips
default "rescue-mipsel" if ADK_rescue_mipsel
+ default "shuttle" if ADK_shuttle
+ default "tomtom" if ADK_tomtom
menu "Target system"
@@ -153,14 +167,25 @@ config ADK_LINUX_MIPS_WAG54G
Linksys WAG54G DSL router with Wireless
TI AR7 platform
-
-config ADK_LINUX_XSCALE_ZAURUS
- bool "Zaurus SL-C3200"
- depends on ADK_BROKEN
- select ADK_zaurus
+config ADK_LINUX_ARM_TOMTOM
+ bool "TomTom Applications"
+ select ADK_tomtom
select ADK_DEVICE_NO_FPU
+ select ADK_EABI
+ select ADK_TOOLCHAIN_ONLY
help
- Support for Sharp Zaurus SL-C3200 (aka Terrier)
+ Support for TomTom Rider 2 (or others).
+ Just toolchain support to cross-compile your own
+ applications.
+
+
+#config ADK_LINUX_XSCALE_ZAURUS
+# bool "Zaurus SL-C3200"
+# depends on ADK_BROKEN
+# select ADK_zaurus
+# select ADK_DEVICE_NO_FPU
+# help
+# Support for Sharp Zaurus SL-C3200 (aka Terrier)
config ADK_LINUX_RESCUE
bool "Minimal Linux Rescuesystem"
@@ -176,6 +201,24 @@ config ADK_LINUX_QEMU
help
Support for Qemu Emulator
+config ADK_LINUX_X86_64_SHUTTLE
+ bool "Shuttle PC"
+ select ADK_KERNEL_INPUT_KEYBOARD
+ select ADK_KERNEL_NETDEVICES
+ select ADK_KERNEL_NET_PCI
+ select ADK_KERNEL_NET_ETHERNET
+ select ADK_shuttle
+ select ADK_KPACKAGE_KMOD_SKY2
+ select ADK_KPACKAGE_KMOD_SATA_AHCI
+ select ADK_KPACKAGE_KMOD_XFS_FS
+ select ADK_KPACKAGE_KMOD_BLK_DEV_MD
+ select ADK_KPACKAGE_KMOD_MD_RAID0
+ select ADK_KPACKAGE_KMOD_MD_RAID1
+ help
+ Support for a nice and fast shuttle xpc with AMD quad-core CPU.
+ Known as OpenADK multi operating system buildserver.
+ System is on RAID1, kvm guests are on RAID1.
+
endchoice
choice
@@ -333,6 +376,8 @@ config ADK_TARGET_LIB_EGLIBC
ADK_LINUX_MIPS_RB411 || \
ADK_LINUX_MIPS_RB532 || \
ADK_LINUX_RESCUE || \
+ ADK_LINUX_X86_64_SHUTTLE || \
+ ADK_LINUX_ARM_TOMTOM || \
ADK_LINUX_MIPS64_LEMOTE
help
http://www.eglibc.org
@@ -347,14 +392,25 @@ config ADK_TARGET_LIB_GLIBC
ADK_LINUX_X86_ALIX1C || \
ADK_LINUX_MIPS_RB411 || \
ADK_LINUX_RESCUE || \
+ ADK_LINUX_X86_64_SHUTTLE || \
+ ADK_LINUX_ARM_TOMTOM || \
ADK_LINUX_MIPS64_LEMOTE
help
http://www.gnu.org/libc
endchoice
+config ADK_TARGET_SUFFIX
+ string
+ default "gnueabi" if (ADK_TARGET_LIB_GLIBC || ADK_TARGET_LIB_EGLIBC) && ADK_EABI
+ default "gnu" if (ADK_TARGET_LIB_GLIBC || ADK_TARGET_LIB_EGLIBC) && !ADK_EABI
+ default "uclibcgnueabi" if ADK_TARGET_LIB_UCLIBC && ADK_EABI
+ default "uclibc" if ADK_TARGET_LIB_UCLIBC && !ADK_EABI
+
+
choice
prompt "Target Firmware type"
+ depends on !ADK_TOOLCHAIN_ONLY
default ADK_TARGET_ROOTFS_EXT2_CF
config ADK_TARGET_ROOTFS_INITRAMFS
@@ -428,14 +484,14 @@ config ADK_TARGET_ROOTFS_EXT2_CF
Use this option if you have a compact flash
inside your hardware and want to boot from it.
-config ADK_TARGET_ROOTFS_EXT2
- bool "Ext2 read-write filesystem"
+config ADK_TARGET_ROOTFS_ARCHIVE
+ bool "Archive usable for different filesystems"
depends on ADK_LINUX_QEMU || \
ADK_LINUX_XSCALE_ZAURUS || \
- ADK_LINUX_MIPS64_LEMOTE
- select ADK_KERNEL_EXT2_FS
+ ADK_LINUX_MIPS64_LEMOTE || \
+ ADK_LINUX_X86_64_SHUTTLE
help
- Use this option if your rootfs is ext2.
+ Use this option if your root filesystem is ext2/ext3/ext4/xfs.
config ADK_TARGET_ROOTFS_ENCRYPTED
bool "Encrypted read-write root filesystem"
@@ -514,39 +570,5 @@ config ADK_X11
Try to compile other packages with X11 support.
(f.e. mplayer)
-config ADK_DEVELSYSTEM
- bool "Compile a OpenADK development system"
- default n
- select ADK_CXX
- select ADK_PACKAGE_AUTOCONF
- select ADK_PACKAGE_AUTOMAKE
- select ADK_PACKAGE_BASH
- select ADK_PACKAGE_BINUTILS
- select ADK_PACKAGE_BISON
- select ADK_PACKAGE_BZIP2
- select ADK_PACKAGE_DIFFUTILS
- select ADK_PACKAGE_FILE
- select ADK_PACKAGE_FLEX
- select ADK_PACKAGE_GAWK
- select ADK_PACKAGE_GCC
- select ADK_PACKAGE_GIT
- select ADK_PACKAGE_GPERF
- select ADK_PACKAGE_UCLIBC_DEV if ADK_TARGET_LIB_UCLIBC
- select ADK_PACKAGE_EGLIBC_DEV if ADK_TARGET_LIB_EGLIBC
- select ADK_PACKAGE_GLIBC_DEV if ADK_TARGET_LIB_GLIBC
- select ADK_PACKAGE_LIBNCURSES
- select ADK_PACKAGE_LIBNCURSES_DEV
- select ADK_PACKAGE_LIBTOOL
- select ADK_PACKAGE_M4
- select ADK_PACKAGE_MAKE
- select ADK_PACKAGE_PATCH
- select ADK_PACKAGE_TAR
- select ADK_PACKAGE_ZLIB
- select ADK_PACKAGE_ZLIB_DEV
- help
- After bootstrapping a Linux system you might want to
- switch to native builds with your target.
- If you choose this option, all necessary software needed
- for native building will be selected.
endmenu
diff --git a/target/lemote/Makefile b/target/lemote/Makefile
index 08f08b1bc..0db040f91 100644
--- a/target/lemote/Makefile
+++ b/target/lemote/Makefile
@@ -64,7 +64,7 @@ imageinstall: $(BIN_DIR)/$(INITRAMFS)
@echo 'The kernel file is: ${BIN_DIR}/${DEVICE}-${ARCH}-kernel'
@echo 'The initramfs image is: ${BIN_DIR}/${INITRAMFS}'
endif
-ifeq ($(FS),ext2)
+ifeq ($(FS),archive)
imageinstall: $(BIN_DIR)/$(ROOTFSTARBALL)
@echo
@echo 'The kernel file is: ${BIN_DIR}/${DEVICE}-${ARCH}-kernel'
diff --git a/target/qemu-x86/Makefile b/target/qemu-x86/Makefile
index f141f4b79..4298ffbf4 100644
--- a/target/qemu-x86/Makefile
+++ b/target/qemu-x86/Makefile
@@ -10,7 +10,7 @@ include $(TOPDIR)/mk/image.mk
kernel-install:
cp $(LINUX_DIR)/arch/x86/boot/bzImage $(TARGET_DIR)/boot/kernel
-ifeq ($(FS),ext2)
+ifeq ($(FS),archive)
imageinstall: $(BIN_DIR)/$(ROOTFSTARBALL)
@echo
@echo "The RootFS tarball is: $(BIN_DIR)/$(ROOTFSTARBALL),"
@@ -23,5 +23,5 @@ imageinstall: $(BIN_DIR)/$(INITRAMFS)
@cp $(LINUX_DIR)/arch/x86/boot/bzImage $(BIN_DIR)/${DEVICE}-${ARCH}-kernel
@echo 'The kernel file is: ${BIN_DIR}/${DEVICE}-${ARCH}-kernel'
@echo 'The initramfs image is: ${BIN_DIR}/${INITRAMFS}'
- @echo 'qemu -nographic -kernel $(BIN_DIR)/${DEVICE}-${ARCH}-kernel -initrd ${BIN_DIR}/${INITRAMFS} -append "init=/init console=ttyS0"'
+ @echo 'qemu -nographic -kernel $(BIN_DIR)/${DEVICE}-${ARCH}-kernel -initrd ${BIN_DIR}/${INITRAMFS} -append "console=ttyS0"'
endif
diff --git a/target/shuttle/Makefile b/target/shuttle/Makefile
new file mode 100644
index 000000000..7e4a1e567
--- /dev/null
+++ b/target/shuttle/Makefile
@@ -0,0 +1,35 @@
+# This file is part of the OpenADK project. OpenADK is copyrighted
+# material, please see the LICENCE file in the top-level directory.
+
+include $(TOPDIR)/rules.mk
+include $(TOPDIR)/mk/kernel.mk
+include $(TOPDIR)/mk/modules.mk
+include $(TOPDIR)/mk/kernel-build.mk
+include $(TOPDIR)/mk/image.mk
+
+kernel-install:
+
+createinit:
+ @-rm $(LINUX_DIR)/usr/initramfs_data.cpio.lzma
+ $(SED) 's#^CONFIG_INITRAMFS_SOURCE.*#CONFIG_INITRAMFS_SOURCE="${BUILD_DIR}/${INITRAMFS_PIGGYBACK}"#' $(LINUX_DIR)/.config
+ echo 'CONFIG_INITRAMFS_ROOT_UID=0' >> $(LINUX_DIR)/.config
+ echo 'CONFIG_INITRAMFS_ROOT_GID=0' >> $(LINUX_DIR)/.config
+ echo 'CONFIG_INITRAMFS_COMPRESSION_LZMA=y' >> $(LINUX_DIR)/.config
+ echo N |$(MAKE) -C $(LINUX_DIR) V=0 CROSS_COMPILE="$(KERNEL_CROSS)" ARCH=$(ARCH) \
+ CC="$(TARGET_CC)" oldconfig $(MAKE_TRACE)
+ $(MAKE) -C $(LINUX_DIR) V=0 CROSS_COMPILE="$(KERNEL_CROSS)" ARCH=$(ARCH) \
+ CC="$(TARGET_CC)" $(MAKE_TRACE)
+ $(CP) $(LINUX_DIR)/arch/x86/boot/bzImage \
+ $(BIN_DIR)/${DEVICE}-${ARCH}-kernel
+
+ifeq ($(FS),archive)
+imageinstall: $(BIN_DIR)/$(ROOTFSTARBALL)
+ cp $(LINUX_DIR)/arch/x86/boot/bzImage $(BIN_DIR)/${DEVICE}-${ARCH}-kernel
+ @echo 'The kernel file is: ${BIN_DIR}/${DEVICE}-${ARCH}-kernel'
+ @echo 'The initramfs image is: ${BIN_DIR}/${ROOTFSTARBALL}'
+endif
+
+ifeq ($(FS),initramfs-piggyback)
+imageinstall: ${BUILD_DIR}/${INITRAMFS_PIGGYBACK} createinit
+ @echo 'The kernel file is: ${BIN_DIR}/${DEVICE}-${ARCH}-kernel'
+endif
diff --git a/target/shuttle/device.mk b/target/shuttle/device.mk
new file mode 100644
index 000000000..3241868c7
--- /dev/null
+++ b/target/shuttle/device.mk
@@ -0,0 +1,7 @@
+ARCH:= x86
+CPU_ARCH:= x86_64
+KERNEL_VERSION:= 2.6.30.5
+KERNEL_RELEASE:= 1
+KERNEL_MD5SUM:= be9c3a697a54ac099c910d068ff0dc03
+TARGET_OPTIMIZATION:= -O2 -pipe
+TARGET_CFLAGS_ARCH:=
diff --git a/target/shuttle/files/etc/inittab b/target/shuttle/files/etc/inittab
new file mode 100644
index 000000000..4ab5cbe41
--- /dev/null
+++ b/target/shuttle/files/etc/inittab
@@ -0,0 +1,4 @@
+::sysinit:/etc/init.d/rcS
+::shutdown:/etc/init.d/rcK
+tty1::respawn:/sbin/getty -i -L tty1 115200 vt100
+
diff --git a/target/shuttle/files/etc/mdev.conf b/target/shuttle/files/etc/mdev.conf
new file mode 100644
index 000000000..82171d8ed
--- /dev/null
+++ b/target/shuttle/files/etc/mdev.conf
@@ -0,0 +1,14 @@
+rtc0 root:root 660 @ln -sf /dev/rtc0 /dev/rtc
+device-mapper 0:0 660 @mkdir /dev/mapper
+tun 0:0 660 >net/tun
+null 0:0 777
+zero 0:0 666
+u?random 0:0 644
+console 0:0 0600
+kmem 0:0 000
+mem 0:0 0640
+port 0:0 0640
+ptmx 0:0 666
+tty 0:0 0660
+ttyS* 0:0 640
+.* 0:0 644 @/lib/mdev/init
diff --git a/target/shuttle/files/etc/network/interfaces b/target/shuttle/files/etc/network/interfaces
new file mode 100644
index 000000000..104c1a1b6
--- /dev/null
+++ b/target/shuttle/files/etc/network/interfaces
@@ -0,0 +1,5 @@
+auto lo
+iface lo inet loopback
+
+auto eth0
+iface eth0 inet dhcp
diff --git a/target/shuttle/kernel.config b/target/shuttle/kernel.config
new file mode 100644
index 000000000..fa7bc84d5
--- /dev/null
+++ b/target/shuttle/kernel.config
@@ -0,0 +1,1112 @@
+#
+# Automatically generated make config: don't edit
+# Linux kernel version: 2.6.30.5
+# Tue Sep 1 19:09:13 2009
+#
+CONFIG_64BIT=y
+# CONFIG_X86_32 is not set
+CONFIG_X86_64=y
+CONFIG_X86=y
+CONFIG_ARCH_DEFCONFIG="arch/x86/configs/x86_64_defconfig"
+CONFIG_GENERIC_TIME=y
+CONFIG_GENERIC_CMOS_UPDATE=y
+CONFIG_CLOCKSOURCE_WATCHDOG=y
+CONFIG_GENERIC_CLOCKEVENTS=y
+CONFIG_GENERIC_CLOCKEVENTS_BROADCAST=y
+CONFIG_LOCKDEP_SUPPORT=y
+CONFIG_STACKTRACE_SUPPORT=y
+CONFIG_HAVE_LATENCYTOP_SUPPORT=y
+CONFIG_FAST_CMPXCHG_LOCAL=y
+CONFIG_MMU=y
+CONFIG_ZONE_DMA=y
+CONFIG_GENERIC_ISA_DMA=y
+CONFIG_GENERIC_IOMAP=y
+CONFIG_GENERIC_BUG=y
+CONFIG_GENERIC_BUG_RELATIVE_POINTERS=y
+CONFIG_GENERIC_HWEIGHT=y
+CONFIG_ARCH_MAY_HAVE_PC_FDC=y
+CONFIG_RWSEM_GENERIC_SPINLOCK=y
+# CONFIG_RWSEM_XCHGADD_ALGORITHM is not set
+CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y
+CONFIG_GENERIC_CALIBRATE_DELAY=y
+CONFIG_GENERIC_TIME_VSYSCALL=y
+CONFIG_ARCH_HAS_CPU_RELAX=y
+CONFIG_ARCH_HAS_DEFAULT_IDLE=y
+CONFIG_ARCH_HAS_CACHE_LINE_SIZE=y
+CONFIG_HAVE_SETUP_PER_CPU_AREA=y
+CONFIG_HAVE_DYNAMIC_PER_CPU_AREA=y
+CONFIG_HAVE_CPUMASK_OF_CPU_MAP=y
+CONFIG_ARCH_HIBERNATION_POSSIBLE=y
+CONFIG_ARCH_SUSPEND_POSSIBLE=y
+CONFIG_ZONE_DMA32=y
+CONFIG_ARCH_POPULATES_NODE_MAP=y
+CONFIG_AUDIT_ARCH=y
+CONFIG_ARCH_SUPPORTS_OPTIMIZED_INLINING=y
+CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y
+CONFIG_GENERIC_HARDIRQS=y
+CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y
+CONFIG_GENERIC_IRQ_PROBE=y
+CONFIG_GENERIC_PENDING_IRQ=y
+CONFIG_USE_GENERIC_SMP_HELPERS=y
+CONFIG_X86_64_SMP=y
+CONFIG_X86_HT=y
+CONFIG_X86_TRAMPOLINE=y
+# CONFIG_KTIME_SCALAR is not set
+CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
+
+#
+# General setup
+#
+CONFIG_EXPERIMENTAL=y
+CONFIG_LOCK_KERNEL=y
+CONFIG_INIT_ENV_ARG_LIMIT=32
+CONFIG_LOCALVERSION=""
+# CONFIG_LOCALVERSION_AUTO is not set
+CONFIG_HAVE_KERNEL_GZIP=y
+CONFIG_HAVE_KERNEL_BZIP2=y
+CONFIG_HAVE_KERNEL_LZMA=y
+# CONFIG_KERNEL_GZIP is not set
+# CONFIG_KERNEL_BZIP2 is not set
+CONFIG_KERNEL_LZMA=y
+# CONFIG_SWAP is not set
+CONFIG_SYSVIPC=y
+CONFIG_SYSVIPC_SYSCTL=y
+CONFIG_POSIX_MQUEUE=y
+CONFIG_POSIX_MQUEUE_SYSCTL=y
+# CONFIG_BSD_PROCESS_ACCT is not set
+# CONFIG_TASKSTATS is not set
+# CONFIG_AUDIT is not set
+
+#
+# RCU Subsystem
+#
+CONFIG_CLASSIC_RCU=y
+# CONFIG_TREE_RCU is not set
+# CONFIG_PREEMPT_RCU is not set
+# CONFIG_TREE_RCU_TRACE is not set
+# CONFIG_PREEMPT_RCU_TRACE is not set
+CONFIG_IKCONFIG=y
+CONFIG_IKCONFIG_PROC=y
+CONFIG_LOG_BUF_SHIFT=15
+CONFIG_HAVE_UNSTABLE_SCHED_CLOCK=y
+# CONFIG_GROUP_SCHED is not set
+# CONFIG_CGROUPS is not set
+# CONFIG_SYSFS_DEPRECATED_V2 is not set
+# CONFIG_RELAY is not set
+# CONFIG_NAMESPACES is not set
+CONFIG_BLK_DEV_INITRD=y
+CONFIG_INITRAMFS_SOURCE=""
+# CONFIG_RD_GZIP is not set
+# CONFIG_RD_BZIP2 is not set
+CONFIG_RD_LZMA=y
+CONFIG_CC_OPTIMIZE_FOR_SIZE=y
+CONFIG_SYSCTL=y
+CONFIG_ANON_INODES=y
+CONFIG_EMBEDDED=y
+CONFIG_UID16=y
+CONFIG_SYSCTL_SYSCALL=y
+# CONFIG_KALLSYMS is not set
+# CONFIG_STRIP_ASM_SYMS is not set
+CONFIG_HOTPLUG=y
+CONFIG_PRINTK=y
+CONFIG_BUG=y
+# CONFIG_ELF_CORE is not set
+# CONFIG_PCSPKR_PLATFORM is not set
+CONFIG_BASE_FULL=y
+CONFIG_FUTEX=y
+CONFIG_EPOLL=y
+CONFIG_SIGNALFD=y
+CONFIG_TIMERFD=y
+CONFIG_EVENTFD=y
+CONFIG_SHMEM=y
+CONFIG_AIO=y
+# CONFIG_VM_EVENT_COUNTERS is not set
+CONFIG_PCI_QUIRKS=y
+# CONFIG_COMPAT_BRK is not set
+CONFIG_SLAB=y
+# CONFIG_SLUB is not set
+# CONFIG_SLOB is not set
+# CONFIG_PROFILING is not set
+# CONFIG_MARKERS is not set
+CONFIG_HAVE_OPROFILE=y
+CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
+CONFIG_HAVE_IOREMAP_PROT=y
+CONFIG_HAVE_KPROBES=y
+CONFIG_HAVE_KRETPROBES=y
+CONFIG_HAVE_ARCH_TRACEHOOK=y
+CONFIG_HAVE_DMA_API_DEBUG=y
+# CONFIG_SLOW_WORK is not set
+# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
+CONFIG_SLABINFO=y
+CONFIG_RT_MUTEXES=y
+CONFIG_BASE_SMALL=0
+CONFIG_MODULES=y
+# CONFIG_MODULE_FORCE_LOAD is not set
+# CONFIG_MODULE_UNLOAD is not set
+# CONFIG_MODVERSIONS is not set
+# CONFIG_MODULE_SRCVERSION_ALL is not set
+CONFIG_BLOCK=y
+# CONFIG_BLK_DEV_BSG is not set
+# CONFIG_BLK_DEV_INTEGRITY is not set
+CONFIG_BLOCK_COMPAT=y
+
+#
+# IO Schedulers
+#
+CONFIG_IOSCHED_NOOP=y
+# CONFIG_IOSCHED_AS is not set
+# CONFIG_IOSCHED_DEADLINE is not set
+# CONFIG_IOSCHED_CFQ is not set
+# CONFIG_DEFAULT_AS is not set
+# CONFIG_DEFAULT_DEADLINE is not set
+# CONFIG_DEFAULT_CFQ is not set
+CONFIG_DEFAULT_NOOP=y
+CONFIG_DEFAULT_IOSCHED="noop"
+# CONFIG_FREEZER is not set
+
+#
+# Processor type and features
+#
+CONFIG_TICK_ONESHOT=y
+CONFIG_NO_HZ=y
+# CONFIG_HIGH_RES_TIMERS is not set
+CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
+CONFIG_SMP=y
+# CONFIG_SPARSE_IRQ is not set
+CONFIG_X86_MPPARSE=y
+CONFIG_X86_EXTENDED_PLATFORM=y
+# CONFIG_X86_VSMP is not set
+CONFIG_SCHED_OMIT_FRAME_POINTER=y
+# CONFIG_PARAVIRT_GUEST is not set
+# CONFIG_MEMTEST is not set
+# CONFIG_M386 is not set
+# CONFIG_M486 is not set
+# CONFIG_M586 is not set
+# CONFIG_M586TSC is not set
+# CONFIG_M586MMX is not set
+# CONFIG_M686 is not set
+# CONFIG_MPENTIUMII is not set
+# CONFIG_MPENTIUMIII is not set
+# CONFIG_MPENTIUMM is not set
+# CONFIG_MPENTIUM4 is not set
+# CONFIG_MK6 is not set
+# CONFIG_MK7 is not set
+# CONFIG_MK8 is not set
+# CONFIG_MCRUSOE is not set
+# CONFIG_MEFFICEON is not set
+# CONFIG_MWINCHIPC6 is not set
+# CONFIG_MWINCHIP3D is not set
+# CONFIG_MGEODEGX1 is not set
+# CONFIG_MGEODE_LX is not set
+# CONFIG_MCYRIXIII is not set
+# CONFIG_MVIAC3_2 is not set
+# CONFIG_MVIAC7 is not set
+# CONFIG_MPSC is not set
+# CONFIG_MCORE2 is not set
+CONFIG_GENERIC_CPU=y
+CONFIG_X86_CPU=y
+CONFIG_X86_L1_CACHE_BYTES=64
+CONFIG_X86_INTERNODE_CACHE_BYTES=64
+CONFIG_X86_CMPXCHG=y
+CONFIG_X86_L1_CACHE_SHIFT=6
+CONFIG_X86_WP_WORKS_OK=y
+CONFIG_X86_TSC=y
+CONFIG_X86_CMPXCHG64=y
+CONFIG_X86_CMOV=y
+CONFIG_X86_MINIMUM_CPU_FAMILY=64
+CONFIG_X86_DEBUGCTLMSR=y
+# CONFIG_PROCESSOR_SELECT is not set
+CONFIG_CPU_SUP_INTEL=y
+CONFIG_CPU_SUP_AMD=y
+CONFIG_CPU_SUP_CENTAUR=y
+# CONFIG_X86_DS is not set
+CONFIG_HPET_TIMER=y
+CONFIG_HPET_EMULATE_RTC=y
+CONFIG_DMI=y
+CONFIG_GART_IOMMU=y
+# CONFIG_CALGARY_IOMMU is not set
+CONFIG_SWIOTLB=y
+CONFIG_IOMMU_HELPER=y
+# CONFIG_IOMMU_API is not set
+CONFIG_NR_CPUS=8
+# CONFIG_SCHED_SMT is not set
+CONFIG_SCHED_MC=y
+CONFIG_PREEMPT_NONE=y
+# CONFIG_PREEMPT_VOLUNTARY is not set
+# CONFIG_PREEMPT is not set
+CONFIG_X86_LOCAL_APIC=y
+CONFIG_X86_IO_APIC=y
+CONFIG_X86_REROUTE_FOR_BROKEN_BOOT_IRQS=y
+CONFIG_X86_MCE=y
+CONFIG_X86_MCE_INTEL=y
+CONFIG_X86_MCE_AMD=y
+CONFIG_X86_MCE_THRESHOLD=y
+# CONFIG_I8K is not set
+# CONFIG_MICROCODE is not set
+# CONFIG_X86_MSR is not set
+# CONFIG_X86_CPUID is not set
+# CONFIG_X86_CPU_DEBUG is not set
+CONFIG_ARCH_PHYS_ADDR_T_64BIT=y
+CONFIG_DIRECT_GBPAGES=y
+# CONFIG_NUMA is not set
+CONFIG_ARCH_SPARSEMEM_DEFAULT=y
+CONFIG_ARCH_SPARSEMEM_ENABLE=y
+CONFIG_ARCH_SELECT_MEMORY_MODEL=y
+CONFIG_SELECT_MEMORY_MODEL=y
+# CONFIG_FLATMEM_MANUAL is not set
+# CONFIG_DISCONTIGMEM_MANUAL is not set
+CONFIG_SPARSEMEM_MANUAL=y
+CONFIG_SPARSEMEM=y
+CONFIG_HAVE_MEMORY_PRESENT=y
+CONFIG_SPARSEMEM_EXTREME=y
+CONFIG_SPARSEMEM_VMEMMAP_ENABLE=y
+CONFIG_SPARSEMEM_VMEMMAP=y
+# CONFIG_MEMORY_HOTPLUG is not set
+CONFIG_PAGEFLAGS_EXTENDED=y
+CONFIG_SPLIT_PTLOCK_CPUS=4
+CONFIG_PHYS_ADDR_T_64BIT=y
+CONFIG_ZONE_DMA_FLAG=1
+CONFIG_BOUNCE=y
+CONFIG_VIRT_TO_BUS=y
+CONFIG_UNEVICTABLE_LRU=y
+CONFIG_HAVE_MLOCK=y
+CONFIG_HAVE_MLOCKED_PAGE_BIT=y
+CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
+# CONFIG_X86_CHECK_BIOS_CORRUPTION is not set
+CONFIG_X86_RESERVE_LOW_64K=y
+# CONFIG_MTRR is not set
+# CONFIG_SECCOMP is not set
+# CONFIG_CC_STACKPROTECTOR is not set
+# CONFIG_HZ_100 is not set
+CONFIG_HZ_250=y
+# CONFIG_HZ_300 is not set
+# CONFIG_HZ_1000 is not set
+CONFIG_HZ=250
+# CONFIG_SCHED_HRTICK is not set
+# CONFIG_KEXEC is not set
+# CONFIG_CRASH_DUMP is not set
+CONFIG_PHYSICAL_START=0x200000
+# CONFIG_RELOCATABLE is not set
+CONFIG_PHYSICAL_ALIGN=0x200000
+# CONFIG_HOTPLUG_CPU is not set
+# CONFIG_COMPAT_VDSO is not set
+# CONFIG_CMDLINE_BOOL is not set
+CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
+
+#
+# Power management and ACPI options
+#
+# CONFIG_PM is not set
+
+#
+# CPU Frequency scaling
+#
+# CONFIG_CPU_FREQ is not set
+# CONFIG_CPU_IDLE is not set
+
+#
+# Memory power savings
+#
+# CONFIG_I7300_IDLE is not set
+
+#
+# Bus options (PCI etc.)
+#
+CONFIG_PCI=y
+CONFIG_PCI_DIRECT=y
+CONFIG_PCI_DOMAINS=y
+# CONFIG_PCIEPORTBUS is not set
+CONFIG_ARCH_SUPPORTS_MSI=y
+CONFIG_PCI_MSI=y
+# CONFIG_PCI_LEGACY is not set
+# CONFIG_PCI_STUB is not set
+# CONFIG_HT_IRQ is not set
+# CONFIG_PCI_IOV is not set
+CONFIG_ISA_DMA_API=y
+CONFIG_K8_NB=y
+# CONFIG_PCCARD is not set
+# CONFIG_HOTPLUG_PCI is not set
+
+#
+# Executable file formats / Emulations
+#
+CONFIG_BINFMT_ELF=y
+CONFIG_COMPAT_BINFMT_ELF=y
+# CONFIG_HAVE_AOUT is not set
+# CONFIG_BINFMT_MISC is not set
+CONFIG_IA32_EMULATION=y
+# CONFIG_IA32_AOUT is not set
+CONFIG_COMPAT=y
+CONFIG_COMPAT_FOR_U64_ALIGNMENT=y
+CONFIG_SYSVIPC_COMPAT=y
+CONFIG_NET=y
+
+#
+# Networking options
+#
+CONFIG_PACKET=y
+CONFIG_PACKET_MMAP=y
+CONFIG_UNIX=y
+# CONFIG_NET_K