Currently, the TS109/TS209 and TS409 boards are supported on Gentoo thanks to QNAP Inc. who provided us with hardware to create and document the installation process.
1. QNAP TurboStation TS109/209/409 Specifications:
Code Listing 1.1: Board Specifications |
# Marvell Orion SoC MV88F5182(for the TS109/209) and MV88F5281(for the TS409)
# Marvell Feroceon ARMv5TE 500MHz processor
# 128/256/512MB DDR2 RAM between the different models
# 8MB NAND Flash
# Marvell SATA2 controller
# Marvell Gigabit Ethernet controller
# LED's available:
* Power led (TS109/209 only)
* Status led
* SATA HDD leds
* Network interface led
* USB led
# Reset button
# 3x USB 2.0 ports
# 1x eSATA port, TS109 only
# Buzzer
|
Code Listing 1.1: CPU Info |
Processor : Feroceon rev 0 (v5l) BogoMIPS : 498.07 Features : swp half thumb fastmult vfp edsp CPU implementer : 0x41 CPU architecture: 5TEJ CPU variant : 0x0 CPU part : 0x926 CPU revision : 0 Cache type : write-back Cache clean : cp15 c7 ops Cache lockdown : format C Cache format : Harvard I size : 32768 I assoc : 1 I line length : 32 I sets : 1024 D size : 32768 D assoc : 4 D line length : 32 D sets : 256 Hardware : QNAP TS-409 Revision : 0000 Serial : 0000000000000000 |
Code Listing 1.1: Setup |
emerge crossdev crossdev armv5tel-softfloat-linux-gnueabi |
Code Listing 1.1: Emerge Wrapper (qnap-merge) |
#!/bin/sh
CHOST=armv5tel-softfloat-linux-gnueabi
#export CBUILD=$(portageq envvar CBUILD)
export SYSROOT="/usr/${CHOST}"
export PORTAGE_CONFIGROOT="/usr/${CHOST}"
# optional exports
export enable_malloc0returnsnull=yes \
ac_cv_file__usr_share_sgml_X11_defs_ent=1 \
ac_cv_func_setpgrp_void=yes ac_cv_func_setgrent_void=yes \
ac_cv_func_calloc_0_nonnull=yes ac_cv_func_malloc_0_nonnull=yes \
gl_cv_func_malloc_0_nonnull=yes ac_cv_func_realloc_0_nonnull=yes \
ac_cv_func_memcmp_working=yes ac_cv_func_strnlen_working=yes
# optional export for glib:2
export glib_cv_uscore=no glib_cv_stack_grows=no \
glib_cv_stack_grows=no glib_cv_has__inline=yes \
glib_cv_has__inline__=yes glib_cv_hasinline=yes \
glib_cv_sane_realloc=yes glib_cv_va_copy=yes \
glib_cv___va_copy=yes glib_cv_va_val_copy=no \
glib_cv_rtldglobal_broken=no glib_cv_uscore=no \
ac_cv_func_posix_getpwuid_r=yes \
ac_cv_func_posix_getgrgid_r=yes \
ac_cv_header_pwd_h=yes \
ac_cv_func_getpwuid_r=yes \
glib_cv_sizeof_gmutex=40
FAKEROOT=
if [[ $(id -u) != 0 ]]; then
if [[ $(type -p fakeroot) != "" ]]; then
FAKEROOT=fakeroot
fi
fi
${FAKEROOT} emerge -q "$@"
|
Code Listing 1.1: /usr/armv5tel-softfloat-linux-gnueabi/etc/make.conf |
#
CHOST=armv5tel-softfloat-linux-gnueabi
CBUILD=x86_64-pc-linux-gnu
ARCH="arm"
ROOT=/usr/${CHOST}/
ACCEPT_KEYWORDS="arm ~arm"
USE="${ARCH} zlib bindist make-symlinks minimal \
input_devices_keyboard input_devices_evdev \
video_cards_fbdev video_cards_dummy"
VIDEO_CARDS="fbdev dummy"
INPUT_DEVICES="evdev keyboard mouse touchscreen"
USE_EXPAND="video_cards input_devices"
MARCH_TUNE="-march=armv5t -mtune=arm926ej-s"
CFLAGS="-Os -pipe ${MARCH_TUNE} -fomit-frame-pointer -I${ROOT}/usr/include/ -I${ROOT}/include/"
CXXFLAGS="${CFLAGS}"
LDFLAGS="-L${ROOT}/usr/lib -L${ROOT}/lib"
PKG_CONFIG_PATH="${ROOT}/usr/lib/pkgconfig/"
MAKEOPTS="-j8"
FEATURES="-collision-protect sandbox buildpkg noman noinfo nodoc"
PORTDIR_OVERLAY="/usr/portage/local/"
PKGDIR=${ROOT}/packages/
PORTAGE_TMPDIR=${ROOT}/tmp/
PORTAGE_WORKDIR_MODE=2775
PORTAGE_ECLASS_WARNING_ENABLE=0
CLEAN_DELAY=0
EPAUSE_IGNORE=1
EBEEP_IGNORE=1
|