This commit is contained in:
Dimitar Gamishev 2017-10-13 14:07:48 +03:00
parent f9b0e7a283
commit 17f94ebf3a
61 changed files with 18119 additions and 0 deletions

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

@ -0,0 +1,1073 @@
#
# Automatically generated make config: don't edit
# Busybox version: 1.24.1
# Sun Feb 7 14:41:04 2016
#
CONFIG_HAVE_DOT_CONFIG=y
#
# Busybox Settings
#
#
# General Configuration
#
CONFIG_DESKTOP=y
# CONFIG_EXTRA_COMPAT is not set
CONFIG_INCLUDE_SUSv2=y
# CONFIG_USE_PORTABLE_CODE is not set
CONFIG_PLATFORM_LINUX=y
CONFIG_FEATURE_BUFFERS_USE_MALLOC=y
# CONFIG_FEATURE_BUFFERS_GO_ON_STACK is not set
# CONFIG_FEATURE_BUFFERS_GO_IN_BSS is not set
CONFIG_SHOW_USAGE=y
CONFIG_FEATURE_VERBOSE_USAGE=y
CONFIG_FEATURE_COMPRESS_USAGE=y
CONFIG_FEATURE_INSTALLER=y
CONFIG_INSTALL_NO_USR=y
# CONFIG_LOCALE_SUPPORT is not set
CONFIG_UNICODE_SUPPORT=y
# CONFIG_UNICODE_USING_LOCALE is not set
# CONFIG_FEATURE_CHECK_UNICODE_IN_ENV is not set
CONFIG_SUBST_WCHAR=63
CONFIG_LAST_SUPPORTED_WCHAR=767
# CONFIG_UNICODE_COMBINING_WCHARS is not set
# CONFIG_UNICODE_WIDE_WCHARS is not set
# CONFIG_UNICODE_BIDI_SUPPORT is not set
# CONFIG_UNICODE_NEUTRAL_TABLE is not set
# CONFIG_UNICODE_PRESERVE_BROKEN is not set
# CONFIG_PAM is not set
CONFIG_FEATURE_USE_SENDFILE=y
CONFIG_LONG_OPTS=y
CONFIG_FEATURE_DEVPTS=y
# CONFIG_FEATURE_CLEAN_UP is not set
CONFIG_FEATURE_UTMP=y
CONFIG_FEATURE_WTMP=y
CONFIG_FEATURE_PIDFILE=y
CONFIG_PID_FILE_PATH="/var/run"
CONFIG_FEATURE_SUID=y
CONFIG_FEATURE_SUID_CONFIG=y
CONFIG_FEATURE_SUID_CONFIG_QUIET=y
# CONFIG_SELINUX is not set
# CONFIG_FEATURE_PREFER_APPLETS is not set
CONFIG_BUSYBOX_EXEC_PATH="/proc/self/exe"
CONFIG_FEATURE_SYSLOG=y
CONFIG_FEATURE_HAVE_RPC=y
#
# Build Options
#
CONFIG_STATIC=y
# CONFIG_PIE is not set
# CONFIG_NOMMU is not set
# CONFIG_BUILD_LIBBUSYBOX is not set
# CONFIG_FEATURE_INDIVIDUAL is not set
# CONFIG_FEATURE_SHARED_BUSYBOX is not set
CONFIG_LFS=y
CONFIG_CROSS_COMPILER_PREFIX=""
CONFIG_SYSROOT=""
CONFIG_EXTRA_CFLAGS=""
CONFIG_EXTRA_LDFLAGS=""
CONFIG_EXTRA_LDLIBS=""
#
# Debugging Options
#
# CONFIG_DEBUG is not set
# CONFIG_DEBUG_PESSIMIZE is not set
# CONFIG_UNIT_TEST is not set
# CONFIG_WERROR is not set
CONFIG_NO_DEBUG_LIB=y
# CONFIG_DMALLOC is not set
# CONFIG_EFENCE is not set
#
# Installation Options ("make install" behavior)
#
CONFIG_INSTALL_APPLET_SYMLINKS=y
# CONFIG_INSTALL_APPLET_HARDLINKS is not set
# CONFIG_INSTALL_APPLET_SCRIPT_WRAPPERS is not set
# CONFIG_INSTALL_APPLET_DONT is not set
# CONFIG_INSTALL_SH_APPLET_SYMLINK is not set
# CONFIG_INSTALL_SH_APPLET_HARDLINK is not set
# CONFIG_INSTALL_SH_APPLET_SCRIPT_WRAPPER is not set
CONFIG_PREFIX="./_install"
#
# Busybox Library Tuning
#
CONFIG_FEATURE_SYSTEMD=y
CONFIG_FEATURE_RTMINMAX=y
CONFIG_PASSWORD_MINLEN=6
CONFIG_MD5_SMALL=1
CONFIG_SHA3_SMALL=1
CONFIG_FEATURE_FAST_TOP=y
# CONFIG_FEATURE_ETC_NETWORKS is not set
CONFIG_FEATURE_USE_TERMIOS=y
CONFIG_FEATURE_EDITING=y
CONFIG_FEATURE_EDITING_MAX_LEN=1024
# CONFIG_FEATURE_EDITING_VI is not set
CONFIG_FEATURE_EDITING_HISTORY=255
CONFIG_FEATURE_EDITING_SAVEHISTORY=y
# CONFIG_FEATURE_EDITING_SAVE_ON_EXIT is not set
CONFIG_FEATURE_REVERSE_SEARCH=y
CONFIG_FEATURE_TAB_COMPLETION=y
# CONFIG_FEATURE_USERNAME_COMPLETION is not set
CONFIG_FEATURE_EDITING_FANCY_PROMPT=y
# CONFIG_FEATURE_EDITING_ASK_TERMINAL is not set
CONFIG_FEATURE_NON_POSIX_CP=y
# CONFIG_FEATURE_VERBOSE_CP_MESSAGE is not set
CONFIG_FEATURE_COPYBUF_KB=4
CONFIG_FEATURE_SKIP_ROOTFS=y
# CONFIG_MONOTONIC_SYSCALL is not set
CONFIG_IOCTL_HEX2STR_ERROR=y
CONFIG_FEATURE_HWIB=y
#
# Applets
#
#
# Archival Utilities
#
CONFIG_FEATURE_SEAMLESS_XZ=y
CONFIG_FEATURE_SEAMLESS_LZMA=y
CONFIG_FEATURE_SEAMLESS_BZ2=y
CONFIG_FEATURE_SEAMLESS_GZ=y
# CONFIG_FEATURE_SEAMLESS_Z is not set
# CONFIG_AR is not set
# CONFIG_FEATURE_AR_LONG_FILENAMES is not set
# CONFIG_FEATURE_AR_CREATE is not set
# CONFIG_UNCOMPRESS is not set
CONFIG_GUNZIP=y
CONFIG_BUNZIP2=y
CONFIG_UNLZMA=y
# CONFIG_FEATURE_LZMA_FAST is not set
CONFIG_LZMA=y
CONFIG_UNXZ=y
CONFIG_XZ=y
CONFIG_BZIP2=y
CONFIG_CPIO=y
CONFIG_FEATURE_CPIO_O=y
CONFIG_FEATURE_CPIO_P=y
# CONFIG_DPKG is not set
# CONFIG_DPKG_DEB is not set
# CONFIG_FEATURE_DPKG_DEB_EXTRACT_ONLY is not set
CONFIG_GZIP=y
CONFIG_FEATURE_GZIP_LONG_OPTIONS=y
CONFIG_GZIP_FAST=0
# CONFIG_FEATURE_GZIP_LEVELS is not set
CONFIG_LZOP=y
# CONFIG_LZOP_COMPR_HIGH is not set
CONFIG_RPM=y
CONFIG_RPM2CPIO=y
CONFIG_TAR=y
CONFIG_FEATURE_TAR_CREATE=y
CONFIG_FEATURE_TAR_AUTODETECT=y
CONFIG_FEATURE_TAR_FROM=y
CONFIG_FEATURE_TAR_OLDGNU_COMPATIBILITY=y
CONFIG_FEATURE_TAR_OLDSUN_COMPATIBILITY=y
CONFIG_FEATURE_TAR_GNU_EXTENSIONS=y
CONFIG_FEATURE_TAR_LONG_OPTIONS=y
CONFIG_FEATURE_TAR_TO_COMMAND=y
CONFIG_FEATURE_TAR_UNAME_GNAME=y
CONFIG_FEATURE_TAR_NOPRESERVE_TIME=y
# CONFIG_FEATURE_TAR_SELINUX is not set
CONFIG_UNZIP=y
#
# Coreutils
#
CONFIG_BASENAME=y
CONFIG_CAT=y
CONFIG_DATE=y
CONFIG_FEATURE_DATE_ISOFMT=y
# CONFIG_FEATURE_DATE_NANO is not set
CONFIG_FEATURE_DATE_COMPAT=y
CONFIG_DD=y
CONFIG_FEATURE_DD_SIGNAL_HANDLING=y
CONFIG_FEATURE_DD_THIRD_STATUS_LINE=y
CONFIG_FEATURE_DD_IBS_OBS=y
CONFIG_FEATURE_DD_STATUS=y
CONFIG_HOSTID=y
CONFIG_ID=y
CONFIG_GROUPS=y
CONFIG_SHUF=y
CONFIG_SYNC=y
CONFIG_FEATURE_SYNC_FANCY=y
CONFIG_TEST=y
CONFIG_FEATURE_TEST_64=y
CONFIG_TOUCH=y
CONFIG_FEATURE_TOUCH_NODEREF=y
CONFIG_FEATURE_TOUCH_SUSV3=y
CONFIG_TR=y
CONFIG_FEATURE_TR_CLASSES=y
CONFIG_FEATURE_TR_EQUIV=y
CONFIG_TRUNCATE=y
CONFIG_UNLINK=y
CONFIG_BASE64=y
CONFIG_WHO=y
CONFIG_USERS=y
CONFIG_CAL=y
CONFIG_CATV=y
CONFIG_CHGRP=y
CONFIG_CHMOD=y
CONFIG_CHOWN=y
CONFIG_FEATURE_CHOWN_LONG_OPTIONS=y
CONFIG_CHROOT=y
CONFIG_CKSUM=y
CONFIG_COMM=y
CONFIG_CP=y
CONFIG_FEATURE_CP_LONG_OPTIONS=y
CONFIG_CUT=y
CONFIG_DF=y
CONFIG_FEATURE_DF_FANCY=y
CONFIG_DIRNAME=y
CONFIG_DOS2UNIX=y
CONFIG_UNIX2DOS=y
CONFIG_DU=y
CONFIG_FEATURE_DU_DEFAULT_BLOCKSIZE_1K=y
CONFIG_ECHO=y
CONFIG_FEATURE_FANCY_ECHO=y
CONFIG_ENV=y
CONFIG_FEATURE_ENV_LONG_OPTIONS=y
CONFIG_EXPAND=y
CONFIG_FEATURE_EXPAND_LONG_OPTIONS=y
CONFIG_EXPR=y
CONFIG_EXPR_MATH_SUPPORT_64=y
CONFIG_FALSE=y
CONFIG_FOLD=y
CONFIG_FSYNC=y
CONFIG_HEAD=y
CONFIG_FEATURE_FANCY_HEAD=y
CONFIG_INSTALL=y
CONFIG_FEATURE_INSTALL_LONG_OPTIONS=y
CONFIG_LN=y
CONFIG_LOGNAME=y
CONFIG_LS=y
CONFIG_FEATURE_LS_FILETYPES=y
CONFIG_FEATURE_LS_FOLLOWLINKS=y
CONFIG_FEATURE_LS_RECURSIVE=y
CONFIG_FEATURE_LS_SORTFILES=y
CONFIG_FEATURE_LS_TIMESTAMPS=y
CONFIG_FEATURE_LS_USERNAME=y
CONFIG_FEATURE_LS_COLOR=y
CONFIG_FEATURE_LS_COLOR_IS_DEFAULT=y
CONFIG_MD5SUM=y
CONFIG_MKDIR=y
CONFIG_FEATURE_MKDIR_LONG_OPTIONS=y
CONFIG_MKFIFO=y
CONFIG_MKNOD=y
CONFIG_MV=y
CONFIG_FEATURE_MV_LONG_OPTIONS=y
CONFIG_NICE=y
CONFIG_NOHUP=y
CONFIG_OD=y
CONFIG_PRINTENV=y
CONFIG_PRINTF=y
CONFIG_PWD=y
CONFIG_READLINK=y
CONFIG_FEATURE_READLINK_FOLLOW=y
CONFIG_REALPATH=y
CONFIG_RM=y
CONFIG_RMDIR=y
CONFIG_FEATURE_RMDIR_LONG_OPTIONS=y
CONFIG_SEQ=y
CONFIG_SHA1SUM=y
CONFIG_SHA256SUM=y
CONFIG_SHA512SUM=y
CONFIG_SHA3SUM=y
CONFIG_SLEEP=y
CONFIG_FEATURE_FANCY_SLEEP=y
CONFIG_FEATURE_FLOAT_SLEEP=y
CONFIG_SORT=y
CONFIG_FEATURE_SORT_BIG=y
CONFIG_SPLIT=y
CONFIG_FEATURE_SPLIT_FANCY=y
CONFIG_STAT=y
CONFIG_FEATURE_STAT_FORMAT=y
CONFIG_STTY=y
CONFIG_SUM=y
CONFIG_TAC=y
CONFIG_TAIL=y
CONFIG_FEATURE_FANCY_TAIL=y
CONFIG_TEE=y
CONFIG_FEATURE_TEE_USE_BLOCK_IO=y
CONFIG_TRUE=y
CONFIG_TTY=y
CONFIG_UNAME=y
CONFIG_UNAME_OSNAME="GNU/Linux"
CONFIG_UNEXPAND=y
CONFIG_FEATURE_UNEXPAND_LONG_OPTIONS=y
CONFIG_UNIQ=y
CONFIG_USLEEP=y
CONFIG_UUDECODE=y
CONFIG_UUENCODE=y
CONFIG_WC=y
CONFIG_FEATURE_WC_LARGE=y
CONFIG_WHOAMI=y
CONFIG_YES=y
#
# Common options
#
CONFIG_FEATURE_VERBOSE=y
#
# Common options for cp and mv
#
CONFIG_FEATURE_PRESERVE_HARDLINKS=y
#
# Common options for ls, more and telnet
#
CONFIG_FEATURE_AUTOWIDTH=y
#
# Common options for df, du, ls
#
CONFIG_FEATURE_HUMAN_READABLE=y
#
# Common options for md5sum, sha1sum, sha256sum, sha512sum, sha3sum
#
CONFIG_FEATURE_MD5_SHA1_SUM_CHECK=y
#
# Console Utilities
#
CONFIG_CHVT=y
CONFIG_FGCONSOLE=y
CONFIG_CLEAR=y
CONFIG_DEALLOCVT=y
CONFIG_DUMPKMAP=y
CONFIG_KBD_MODE=y
CONFIG_LOADFONT=y
CONFIG_LOADKMAP=y
CONFIG_OPENVT=y
CONFIG_RESET=y
CONFIG_RESIZE=y
CONFIG_FEATURE_RESIZE_PRINT=y
CONFIG_SETCONSOLE=y
CONFIG_FEATURE_SETCONSOLE_LONG_OPTIONS=y
CONFIG_SETFONT=y
CONFIG_FEATURE_SETFONT_TEXTUAL_MAP=y
CONFIG_DEFAULT_SETFONT_DIR=""
CONFIG_SETKEYCODES=y
CONFIG_SETLOGCONS=y
CONFIG_SHOWKEY=y
#
# Common options for loadfont and setfont
#
CONFIG_FEATURE_LOADFONT_PSF2=y
CONFIG_FEATURE_LOADFONT_RAW=y
#
# Debian Utilities
#
CONFIG_MKTEMP=y
CONFIG_PIPE_PROGRESS=y
CONFIG_RUN_PARTS=y
CONFIG_FEATURE_RUN_PARTS_LONG_OPTIONS=y
CONFIG_FEATURE_RUN_PARTS_FANCY=y
CONFIG_START_STOP_DAEMON=y
CONFIG_FEATURE_START_STOP_DAEMON_FANCY=y
CONFIG_FEATURE_START_STOP_DAEMON_LONG_OPTIONS=y
CONFIG_WHICH=y
#
# Editors
#
CONFIG_AWK=y
CONFIG_FEATURE_AWK_LIBM=y
CONFIG_FEATURE_AWK_GNU_EXTENSIONS=y
CONFIG_CMP=y
CONFIG_DIFF=y
CONFIG_FEATURE_DIFF_LONG_OPTIONS=y
CONFIG_FEATURE_DIFF_DIR=y
CONFIG_ED=y
CONFIG_PATCH=y
CONFIG_SED=y
CONFIG_VI=y
CONFIG_FEATURE_VI_MAX_LEN=4096
# CONFIG_FEATURE_VI_8BIT is not set
CONFIG_FEATURE_VI_COLON=y
CONFIG_FEATURE_VI_YANKMARK=y
CONFIG_FEATURE_VI_SEARCH=y
# CONFIG_FEATURE_VI_REGEX_SEARCH is not set
CONFIG_FEATURE_VI_USE_SIGNALS=y
CONFIG_FEATURE_VI_DOT_CMD=y
CONFIG_FEATURE_VI_READONLY=y
CONFIG_FEATURE_VI_SETOPTS=y
CONFIG_FEATURE_VI_SET=y
CONFIG_FEATURE_VI_WIN_RESIZE=y
CONFIG_FEATURE_VI_ASK_TERMINAL=y
CONFIG_FEATURE_VI_UNDO=y
CONFIG_FEATURE_VI_UNDO_QUEUE=y
CONFIG_FEATURE_VI_UNDO_QUEUE_MAX=256
CONFIG_FEATURE_ALLOW_EXEC=y
#
# Finding Utilities
#
CONFIG_FIND=y
CONFIG_FEATURE_FIND_PRINT0=y
CONFIG_FEATURE_FIND_MTIME=y
CONFIG_FEATURE_FIND_MMIN=y
CONFIG_FEATURE_FIND_PERM=y
CONFIG_FEATURE_FIND_TYPE=y
CONFIG_FEATURE_FIND_XDEV=y
CONFIG_FEATURE_FIND_MAXDEPTH=y
CONFIG_FEATURE_FIND_NEWER=y
CONFIG_FEATURE_FIND_INUM=y
CONFIG_FEATURE_FIND_EXEC=y
CONFIG_FEATURE_FIND_EXEC_PLUS=y
CONFIG_FEATURE_FIND_USER=y
CONFIG_FEATURE_FIND_GROUP=y
CONFIG_FEATURE_FIND_NOT=y
CONFIG_FEATURE_FIND_DEPTH=y
CONFIG_FEATURE_FIND_PAREN=y
CONFIG_FEATURE_FIND_SIZE=y
CONFIG_FEATURE_FIND_PRUNE=y
CONFIG_FEATURE_FIND_DELETE=y
CONFIG_FEATURE_FIND_PATH=y
CONFIG_FEATURE_FIND_REGEX=y
# CONFIG_FEATURE_FIND_CONTEXT is not set
CONFIG_FEATURE_FIND_LINKS=y
CONFIG_GREP=y
CONFIG_FEATURE_GREP_EGREP_ALIAS=y
CONFIG_FEATURE_GREP_FGREP_ALIAS=y
CONFIG_FEATURE_GREP_CONTEXT=y
CONFIG_XARGS=y
CONFIG_FEATURE_XARGS_SUPPORT_CONFIRMATION=y
CONFIG_FEATURE_XARGS_SUPPORT_QUOTES=y
CONFIG_FEATURE_XARGS_SUPPORT_TERMOPT=y
CONFIG_FEATURE_XARGS_SUPPORT_ZERO_TERM=y
CONFIG_FEATURE_XARGS_SUPPORT_REPL_STR=y
#
# Init Utilities
#
CONFIG_BOOTCHARTD=y
CONFIG_FEATURE_BOOTCHARTD_BLOATED_HEADER=y
CONFIG_FEATURE_BOOTCHARTD_CONFIG_FILE=y
CONFIG_HALT=y
# CONFIG_FEATURE_CALL_TELINIT is not set
CONFIG_TELINIT_PATH=""
CONFIG_INIT=y
CONFIG_FEATURE_USE_INITTAB=y
# CONFIG_FEATURE_KILL_REMOVED is not set
CONFIG_FEATURE_KILL_DELAY=0
CONFIG_FEATURE_INIT_SCTTY=y
CONFIG_FEATURE_INIT_SYSLOG=y
CONFIG_FEATURE_EXTRA_QUIET=y
CONFIG_FEATURE_INIT_COREDUMPS=y
CONFIG_FEATURE_INITRD=y
CONFIG_INIT_TERMINAL_TYPE="linux"
CONFIG_MESG=y
CONFIG_FEATURE_MESG_ENABLE_ONLY_GROUP=y
#
# Login/Password Management Utilities
#
CONFIG_ADD_SHELL=y
CONFIG_REMOVE_SHELL=y
CONFIG_FEATURE_SHADOWPASSWDS=y
CONFIG_USE_BB_PWD_GRP=y
CONFIG_USE_BB_SHADOW=y
CONFIG_USE_BB_CRYPT=y
CONFIG_USE_BB_CRYPT_SHA=y
CONFIG_ADDUSER=y
CONFIG_FEATURE_ADDUSER_LONG_OPTIONS=y
# CONFIG_FEATURE_CHECK_NAMES is not set
CONFIG_LAST_ID=60000
CONFIG_FIRST_SYSTEM_ID=100
CONFIG_LAST_SYSTEM_ID=999
CONFIG_ADDGROUP=y
CONFIG_FEATURE_ADDGROUP_LONG_OPTIONS=y
CONFIG_FEATURE_ADDUSER_TO_GROUP=y
CONFIG_DELUSER=y
CONFIG_DELGROUP=y
CONFIG_FEATURE_DEL_USER_FROM_GROUP=y
CONFIG_GETTY=y
CONFIG_LOGIN=y
# CONFIG_LOGIN_SESSION_AS_CHILD is not set
CONFIG_LOGIN_SCRIPTS=y
CONFIG_FEATURE_NOLOGIN=y
CONFIG_FEATURE_SECURETTY=y
CONFIG_PASSWD=y
CONFIG_FEATURE_PASSWD_WEAK_CHECK=y
CONFIG_CRYPTPW=y
CONFIG_CHPASSWD=y
CONFIG_FEATURE_DEFAULT_PASSWD_ALGO="des"
CONFIG_SU=y
CONFIG_FEATURE_SU_SYSLOG=y
CONFIG_FEATURE_SU_CHECKS_SHELLS=y
CONFIG_SULOGIN=y
CONFIG_VLOCK=y
#
# Linux Ext2 FS Progs
#
CONFIG_CHATTR=y
CONFIG_FSCK=y
CONFIG_LSATTR=y
# CONFIG_TUNE2FS is not set
#
# Linux Module Utilities
#
CONFIG_MODINFO=y
CONFIG_MODPROBE_SMALL=y
CONFIG_FEATURE_MODPROBE_SMALL_OPTIONS_ON_CMDLINE=y
CONFIG_FEATURE_MODPROBE_SMALL_CHECK_ALREADY_LOADED=y
# CONFIG_INSMOD is not set
# CONFIG_RMMOD is not set
# CONFIG_LSMOD is not set
# CONFIG_FEATURE_LSMOD_PRETTY_2_6_OUTPUT is not set
# CONFIG_MODPROBE is not set
# CONFIG_FEATURE_MODPROBE_BLACKLIST is not set
# CONFIG_DEPMOD is not set
#
# Options common to multiple modutils
#
# CONFIG_FEATURE_2_4_MODULES is not set
# CONFIG_FEATURE_INSMOD_TRY_MMAP is not set
# CONFIG_FEATURE_INSMOD_VERSION_CHECKING is not set
# CONFIG_FEATURE_INSMOD_KSYMOOPS_SYMBOLS is not set
# CONFIG_FEATURE_INSMOD_LOADINKMEM is not set
# CONFIG_FEATURE_INSMOD_LOAD_MAP is not set
# CONFIG_FEATURE_INSMOD_LOAD_MAP_FULL is not set
# CONFIG_FEATURE_CHECK_TAINTED_MODULE is not set
# CONFIG_FEATURE_MODUTILS_ALIAS is not set
# CONFIG_FEATURE_MODUTILS_SYMBOLS is not set
CONFIG_DEFAULT_MODULES_DIR="/lib/modules"
CONFIG_DEFAULT_DEPMOD_FILE="modules.dep"
#
# Linux System Utilities
#
CONFIG_BLOCKDEV=y
CONFIG_FATATTR=y
CONFIG_FSTRIM=y
CONFIG_MDEV=y
CONFIG_FEATURE_MDEV_CONF=y
CONFIG_FEATURE_MDEV_RENAME=y
CONFIG_FEATURE_MDEV_RENAME_REGEXP=y
CONFIG_FEATURE_MDEV_EXEC=y
CONFIG_FEATURE_MDEV_LOAD_FIRMWARE=y
CONFIG_MOUNT=y
CONFIG_FEATURE_MOUNT_FAKE=y
CONFIG_FEATURE_MOUNT_VERBOSE=y
# CONFIG_FEATURE_MOUNT_HELPERS is not set
CONFIG_FEATURE_MOUNT_LABEL=y
# CONFIG_FEATURE_MOUNT_NFS is not set
CONFIG_FEATURE_MOUNT_CIFS=y
CONFIG_FEATURE_MOUNT_FLAGS=y
CONFIG_FEATURE_MOUNT_FSTAB=y
CONFIG_FEATURE_MOUNT_OTHERTAB=y
CONFIG_REV=y
CONFIG_UEVENT=y
CONFIG_ACPID=y
CONFIG_FEATURE_ACPID_COMPAT=y
CONFIG_BLKID=y
# CONFIG_FEATURE_BLKID_TYPE is not set
CONFIG_DMESG=y
CONFIG_FEATURE_DMESG_PRETTY=y
CONFIG_FBSET=y
CONFIG_FEATURE_FBSET_FANCY=y
CONFIG_FEATURE_FBSET_READMODE=y
CONFIG_FDFLUSH=y
CONFIG_FDFORMAT=y
CONFIG_FDISK=y
# CONFIG_FDISK_SUPPORT_LARGE_DISKS is not set
CONFIG_FEATURE_FDISK_WRITABLE=y
# CONFIG_FEATURE_AIX_LABEL is not set
# CONFIG_FEATURE_SGI_LABEL is not set
# CONFIG_FEATURE_SUN_LABEL is not set
# CONFIG_FEATURE_OSF_LABEL is not set
# CONFIG_FEATURE_GPT_LABEL is not set
CONFIG_FEATURE_FDISK_ADVANCED=y
CONFIG_FINDFS=y
CONFIG_FLOCK=y
CONFIG_FREERAMDISK=y
CONFIG_FSCK_MINIX=y
CONFIG_MKFS_EXT2=y
CONFIG_MKFS_MINIX=y
CONFIG_FEATURE_MINIX2=y
# CONFIG_MKFS_REISER is not set
CONFIG_MKFS_VFAT=y
CONFIG_GETOPT=y
CONFIG_FEATURE_GETOPT_LONG=y
CONFIG_HEXDUMP=y
CONFIG_FEATURE_HEXDUMP_REVERSE=y
CONFIG_HD=y
CONFIG_HWCLOCK=y
CONFIG_FEATURE_HWCLOCK_LONG_OPTIONS=y
# CONFIG_FEATURE_HWCLOCK_ADJTIME_FHS is not set
CONFIG_IPCRM=y
CONFIG_IPCS=y
CONFIG_LOSETUP=y
CONFIG_LSPCI=y
CONFIG_LSUSB=y
CONFIG_MKSWAP=y
CONFIG_FEATURE_MKSWAP_UUID=y
CONFIG_MORE=y
CONFIG_PIVOT_ROOT=y
CONFIG_RDATE=y
CONFIG_RDEV=y
CONFIG_READPROFILE=y
CONFIG_RTCWAKE=y
CONFIG_SCRIPT=y
CONFIG_SCRIPTREPLAY=y
CONFIG_SETARCH=y
CONFIG_SWAPONOFF=y
CONFIG_FEATURE_SWAPON_DISCARD=y
CONFIG_FEATURE_SWAPON_PRI=y
CONFIG_SWITCH_ROOT=y
CONFIG_UMOUNT=y
CONFIG_FEATURE_UMOUNT_ALL=y
#
# Common options for mount/umount
#
CONFIG_FEATURE_MOUNT_LOOP=y
CONFIG_FEATURE_MOUNT_LOOP_CREATE=y
# CONFIG_FEATURE_MTAB_SUPPORT is not set
CONFIG_VOLUMEID=y
#
# Filesystem/Volume identification
#
CONFIG_FEATURE_VOLUMEID_BTRFS=y
CONFIG_FEATURE_VOLUMEID_CRAMFS=y
CONFIG_FEATURE_VOLUMEID_EXFAT=y
CONFIG_FEATURE_VOLUMEID_EXT=y
CONFIG_FEATURE_VOLUMEID_F2FS=y
CONFIG_FEATURE_VOLUMEID_FAT=y
CONFIG_FEATURE_VOLUMEID_HFS=y
CONFIG_FEATURE_VOLUMEID_ISO9660=y
CONFIG_FEATURE_VOLUMEID_JFS=y
CONFIG_FEATURE_VOLUMEID_LINUXRAID=y
CONFIG_FEATURE_VOLUMEID_LINUXSWAP=y
CONFIG_FEATURE_VOLUMEID_LUKS=y
CONFIG_FEATURE_VOLUMEID_NILFS=y
CONFIG_FEATURE_VOLUMEID_NTFS=y
CONFIG_FEATURE_VOLUMEID_OCFS2=y
CONFIG_FEATURE_VOLUMEID_REISERFS=y
CONFIG_FEATURE_VOLUMEID_ROMFS=y
# CONFIG_FEATURE_VOLUMEID_SQUASHFS is not set
CONFIG_FEATURE_VOLUMEID_SYSV=y
CONFIG_FEATURE_VOLUMEID_UDF=y
CONFIG_FEATURE_VOLUMEID_XFS=y
#
# Miscellaneous Utilities
#
CONFIG_CONSPY=y
CONFIG_CROND=y
CONFIG_FEATURE_CROND_D=y
CONFIG_FEATURE_CROND_CALL_SENDMAIL=y
CONFIG_FEATURE_CROND_DIR="/var/spool/cron"
CONFIG_I2CGET=y
CONFIG_I2CSET=y
CONFIG_I2CDUMP=y
CONFIG_I2CDETECT=y
CONFIG_LESS=y
CONFIG_FEATURE_LESS_MAXLINES=9999999
CONFIG_FEATURE_LESS_BRACKETS=y
CONFIG_FEATURE_LESS_FLAGS=y
CONFIG_FEATURE_LESS_TRUNCATE=y
CONFIG_FEATURE_LESS_MARKS=y
CONFIG_FEATURE_LESS_REGEXP=y
CONFIG_FEATURE_LESS_WINCH=y
CONFIG_FEATURE_LESS_ASK_TERMINAL=y
CONFIG_FEATURE_LESS_DASHCMD=y
CONFIG_FEATURE_LESS_LINENUMS=y
CONFIG_NANDWRITE=y
CONFIG_NANDDUMP=y
# CONFIG_RFKILL is not set
CONFIG_SETSERIAL=y
# CONFIG_TASKSET is not set
# CONFIG_FEATURE_TASKSET_FANCY is not set
CONFIG_UBIATTACH=y
CONFIG_UBIDETACH=y
CONFIG_UBIMKVOL=y
CONFIG_UBIRMVOL=y
CONFIG_UBIRSVOL=y
CONFIG_UBIUPDATEVOL=y
CONFIG_WALL=y
CONFIG_ADJTIMEX=y
# CONFIG_BBCONFIG is not set
# CONFIG_FEATURE_COMPRESS_BBCONFIG is not set
CONFIG_BEEP=y
CONFIG_FEATURE_BEEP_FREQ=4000
CONFIG_FEATURE_BEEP_LENGTH_MS=30
CONFIG_CHAT=y
CONFIG_FEATURE_CHAT_NOFAIL=y
# CONFIG_FEATURE_CHAT_TTY_HIFI is not set
CONFIG_FEATURE_CHAT_IMPLICIT_CR=y
CONFIG_FEATURE_CHAT_SWALLOW_OPTS=y
CONFIG_FEATURE_CHAT_SEND_ESCAPES=y
CONFIG_FEATURE_CHAT_VAR_ABORT_LEN=y
CONFIG_FEATURE_CHAT_CLR_ABORT=y
CONFIG_CHRT=y
CONFIG_CRONTAB=y
CONFIG_DC=y
CONFIG_FEATURE_DC_LIBM=y
# CONFIG_DEVFSD is not set
# CONFIG_DEVFSD_MODLOAD is not set
# CONFIG_DEVFSD_FG_NP is not set
# CONFIG_DEVFSD_VERBOSE is not set
# CONFIG_FEATURE_DEVFS is not set
CONFIG_DEVMEM=y
CONFIG_EJECT=y
CONFIG_FEATURE_EJECT_SCSI=y
CONFIG_FBSPLASH=y
# CONFIG_FLASHCP is not set
# CONFIG_FLASH_LOCK is not set
# CONFIG_FLASH_UNLOCK is not set
# CONFIG_FLASH_ERASEALL is not set
CONFIG_IONICE=y
# CONFIG_INOTIFYD is not set
CONFIG_LAST=y
# CONFIG_FEATURE_LAST_SMALL is not set
CONFIG_FEATURE_LAST_FANCY=y
CONFIG_HDPARM=y
CONFIG_FEATURE_HDPARM_GET_IDENTITY=y
CONFIG_FEATURE_HDPARM_HDIO_SCAN_HWIF=y
CONFIG_FEATURE_HDPARM_HDIO_UNREGISTER_HWIF=y
CONFIG_FEATURE_HDPARM_HDIO_DRIVE_RESET=y
CONFIG_FEATURE_HDPARM_HDIO_TRISTATE_HWIF=y
CONFIG_FEATURE_HDPARM_HDIO_GETSET_DMA=y
CONFIG_MAKEDEVS=y
# CONFIG_FEATURE_MAKEDEVS_LEAF is not set
CONFIG_FEATURE_MAKEDEVS_TABLE=y
CONFIG_MAN=y
CONFIG_MICROCOM=y
CONFIG_MOUNTPOINT=y
CONFIG_MT=y
CONFIG_RAIDAUTORUN=y
CONFIG_READAHEAD=y
CONFIG_RUNLEVEL=y
CONFIG_RX=y
CONFIG_SETSID=y
CONFIG_STRINGS=y
CONFIG_TIME=y
CONFIG_TIMEOUT=y
CONFIG_TTYSIZE=y
CONFIG_VOLNAME=y
CONFIG_WATCHDOG=y
#
# Networking Utilities
#
CONFIG_NAMEIF=y
CONFIG_FEATURE_NAMEIF_EXTENDED=y
CONFIG_NBDCLIENT=y
CONFIG_NC=y
CONFIG_NC_SERVER=y
CONFIG_NC_EXTRA=y
# CONFIG_NC_110_COMPAT is not set
CONFIG_PING=y
CONFIG_PING6=y
CONFIG_FEATURE_FANCY_PING=y
CONFIG_WGET=y
CONFIG_FEATURE_WGET_STATUSBAR=y
CONFIG_FEATURE_WGET_AUTHENTICATION=y
CONFIG_FEATURE_WGET_LONG_OPTIONS=y
CONFIG_FEATURE_WGET_TIMEOUT=y
CONFIG_FEATURE_WGET_OPENSSL=y
CONFIG_FEATURE_WGET_SSL_HELPER=y
CONFIG_WHOIS=y
CONFIG_FEATURE_IPV6=y
# CONFIG_FEATURE_UNIX_LOCAL is not set
CONFIG_FEATURE_PREFER_IPV4_ADDRESS=y
# CONFIG_VERBOSE_RESOLUTION_ERRORS is not set
CONFIG_ARP=y
CONFIG_ARPING=y
CONFIG_BRCTL=y
CONFIG_FEATURE_BRCTL_FANCY=y
CONFIG_FEATURE_BRCTL_SHOW=y
CONFIG_DNSD=y
CONFIG_ETHER_WAKE=y
CONFIG_FAKEIDENTD=y
CONFIG_FTPD=y
CONFIG_FEATURE_FTP_WRITE=y
CONFIG_FEATURE_FTPD_ACCEPT_BROKEN_LIST=y
CONFIG_FEATURE_FTP_AUTHENTICATION=y
CONFIG_FTPGET=y
CONFIG_FTPPUT=y
CONFIG_FEATURE_FTPGETPUT_LONG_OPTIONS=y
CONFIG_HOSTNAME=y
CONFIG_HTTPD=y
CONFIG_FEATURE_HTTPD_RANGES=y
CONFIG_FEATURE_HTTPD_SETUID=y
CONFIG_FEATURE_HTTPD_BASIC_AUTH=y
CONFIG_FEATURE_HTTPD_AUTH_MD5=y
CONFIG_FEATURE_HTTPD_CGI=y
CONFIG_FEATURE_HTTPD_CONFIG_WITH_SCRIPT_INTERPR=y
CONFIG_FEATURE_HTTPD_SET_REMOTE_PORT_TO_ENV=y
CONFIG_FEATURE_HTTPD_ENCODE_URL_STR=y
CONFIG_FEATURE_HTTPD_ERROR_PAGES=y
CONFIG_FEATURE_HTTPD_PROXY=y
CONFIG_FEATURE_HTTPD_GZIP=y
CONFIG_IFCONFIG=y
CONFIG_FEATURE_IFCONFIG_STATUS=y
CONFIG_FEATURE_IFCONFIG_SLIP=y
CONFIG_FEATURE_IFCONFIG_MEMSTART_IOADDR_IRQ=y
CONFIG_FEATURE_IFCONFIG_HW=y
CONFIG_FEATURE_IFCONFIG_BROADCAST_PLUS=y
CONFIG_IFENSLAVE=y
CONFIG_IFPLUGD=y
CONFIG_IFUPDOWN=y
CONFIG_IFUPDOWN_IFSTATE_PATH="/var/run/ifstate"
CONFIG_FEATURE_IFUPDOWN_IP=y
CONFIG_FEATURE_IFUPDOWN_IP_BUILTIN=y
# CONFIG_FEATURE_IFUPDOWN_IFCONFIG_BUILTIN is not set
CONFIG_FEATURE_IFUPDOWN_IPV4=y
CONFIG_FEATURE_IFUPDOWN_IPV6=y
CONFIG_FEATURE_IFUPDOWN_MAPPING=y
# CONFIG_FEATURE_IFUPDOWN_EXTERNAL_DHCP is not set
CONFIG_INETD=y
CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_ECHO=y
CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_DISCARD=y
CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_TIME=y
CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_DAYTIME=y
CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_CHARGEN=y
CONFIG_FEATURE_INETD_RPC=y
CONFIG_IP=y
CONFIG_FEATURE_IP_ADDRESS=y
CONFIG_FEATURE_IP_LINK=y
CONFIG_FEATURE_IP_ROUTE=y
CONFIG_FEATURE_IP_ROUTE_DIR="/etc/iproute2"
CONFIG_FEATURE_IP_TUNNEL=y
CONFIG_FEATURE_IP_RULE=y
CONFIG_FEATURE_IP_SHORT_FORMS=y
# CONFIG_FEATURE_IP_RARE_PROTOCOLS is not set
CONFIG_IPADDR=y
CONFIG_IPLINK=y
CONFIG_IPROUTE=y
CONFIG_IPTUNNEL=y
CONFIG_IPRULE=y
CONFIG_IPCALC=y
CONFIG_FEATURE_IPCALC_FANCY=y
CONFIG_FEATURE_IPCALC_LONG_OPTIONS=y
CONFIG_NETSTAT=y
CONFIG_FEATURE_NETSTAT_WIDE=y
CONFIG_FEATURE_NETSTAT_PRG=y
CONFIG_NSLOOKUP=y
CONFIG_NTPD=y
CONFIG_FEATURE_NTPD_SERVER=y
CONFIG_FEATURE_NTPD_CONF=y
CONFIG_PSCAN=y
CONFIG_ROUTE=y
CONFIG_SLATTACH=y
CONFIG_TCPSVD=y
CONFIG_TELNET=y
CONFIG_FEATURE_TELNET_TTYPE=y
CONFIG_FEATURE_TELNET_AUTOLOGIN=y
CONFIG_TELNETD=y
CONFIG_FEATURE_TELNETD_STANDALONE=y
CONFIG_FEATURE_TELNETD_INETD_WAIT=y
CONFIG_TFTP=y
CONFIG_TFTPD=y
#
# Common options for tftp/tftpd
#
CONFIG_FEATURE_TFTP_GET=y
CONFIG_FEATURE_TFTP_PUT=y
CONFIG_FEATURE_TFTP_BLOCKSIZE=y
CONFIG_FEATURE_TFTP_PROGRESS_BAR=y
# CONFIG_TFTP_DEBUG is not set
CONFIG_TRACEROUTE=y
CONFIG_TRACEROUTE6=y
CONFIG_FEATURE_TRACEROUTE_VERBOSE=y
# CONFIG_FEATURE_TRACEROUTE_SOURCE_ROUTE is not set
# CONFIG_FEATURE_TRACEROUTE_USE_ICMP is not set
CONFIG_TUNCTL=y
CONFIG_FEATURE_TUNCTL_UG=y
# CONFIG_UDHCPC6 is not set
CONFIG_UDHCPD=y
CONFIG_DHCPRELAY=y
CONFIG_DUMPLEASES=y
CONFIG_FEATURE_UDHCPD_WRITE_LEASES_EARLY=y
# CONFIG_FEATURE_UDHCPD_BASE_IP_ON_MAC is not set
CONFIG_DHCPD_LEASES_FILE="/var/lib/misc/udhcpd.leases"
CONFIG_UDHCPC=y
CONFIG_FEATURE_UDHCPC_ARPING=y
CONFIG_FEATURE_UDHCPC_SANITIZEOPT=y
# CONFIG_FEATURE_UDHCP_PORT is not set
CONFIG_UDHCP_DEBUG=9
CONFIG_FEATURE_UDHCP_RFC3397=y
CONFIG_FEATURE_UDHCP_8021Q=y
CONFIG_UDHCPC_DEFAULT_SCRIPT="/usr/share/udhcpc/default.script"
CONFIG_UDHCPC_SLACK_FOR_BUGGY_SERVERS=80
CONFIG_IFUPDOWN_UDHCPC_CMD_OPTIONS="-R -n"
CONFIG_UDPSVD=y
CONFIG_VCONFIG=y
CONFIG_ZCIP=y
#
# Print Utilities
#
CONFIG_LPD=y
CONFIG_LPR=y
CONFIG_LPQ=y
#
# Mail Utilities
#
CONFIG_MAKEMIME=y
CONFIG_FEATURE_MIME_CHARSET="us-ascii"
CONFIG_POPMAILDIR=y
CONFIG_FEATURE_POPMAILDIR_DELIVERY=y
CONFIG_REFORMIME=y
CONFIG_FEATURE_REFORMIME_COMPAT=y
CONFIG_SENDMAIL=y
#
# Process Utilities
#
CONFIG_IOSTAT=y
CONFIG_LSOF=y
CONFIG_MPSTAT=y
CONFIG_NMETER=y
CONFIG_PMAP=y
CONFIG_POWERTOP=y
CONFIG_PSTREE=y
CONFIG_PWDX=y
CONFIG_SMEMCAP=y
CONFIG_TOP=y
CONFIG_FEATURE_TOP_CPU_USAGE_PERCENTAGE=y
CONFIG_FEATURE_TOP_CPU_GLOBAL_PERCENTS=y
CONFIG_FEATURE_TOP_SMP_CPU=y
CONFIG_FEATURE_TOP_DECIMALS=y
CONFIG_FEATURE_TOP_SMP_PROCESS=y
CONFIG_FEATURE_TOPMEM=y
CONFIG_UPTIME=y
CONFIG_FEATURE_UPTIME_UTMP_SUPPORT=y
CONFIG_FREE=y
CONFIG_FUSER=y
CONFIG_KILL=y
CONFIG_KILLALL=y
CONFIG_KILLALL5=y
CONFIG_PGREP=y
CONFIG_PIDOF=y
CONFIG_FEATURE_PIDOF_SINGLE=y
CONFIG_FEATURE_PIDOF_OMIT=y
CONFIG_PKILL=y
CONFIG_PS=y
# CONFIG_FEATURE_PS_WIDE is not set
# CONFIG_FEATURE_PS_LONG is not set
CONFIG_FEATURE_PS_TIME=y
CONFIG_FEATURE_PS_ADDITIONAL_COLUMNS=y
# CONFIG_FEATURE_PS_UNUSUAL_SYSTEMS is not set
CONFIG_RENICE=y
CONFIG_BB_SYSCTL=y
CONFIG_FEATURE_SHOW_THREADS=y
CONFIG_WATCH=y
#
# Runit Utilities
#
CONFIG_RUNSV=y
CONFIG_RUNSVDIR=y
# CONFIG_FEATURE_RUNSVDIR_LOG is not set
CONFIG_SV=y
CONFIG_SV_DEFAULT_SERVICE_DIR="/var/service"
CONFIG_SVLOGD=y
CONFIG_CHPST=y
CONFIG_SETUIDGID=y
CONFIG_ENVUIDGID=y
CONFIG_ENVDIR=y
CONFIG_SOFTLIMIT=y
# CONFIG_CHCON is not set
# CONFIG_FEATURE_CHCON_LONG_OPTIONS is not set
# CONFIG_GETENFORCE is not set
# CONFIG_GETSEBOOL is not set
# CONFIG_LOAD_POLICY is not set
# CONFIG_MATCHPATHCON is not set
# CONFIG_RESTORECON is not set
# CONFIG_RUNCON is not set
# CONFIG_FEATURE_RUNCON_LONG_OPTIONS is not set
# CONFIG_SELINUXENABLED is not set
# CONFIG_SETENFORCE is not set
# CONFIG_SETFILES is not set
# CONFIG_FEATURE_SETFILES_CHECK_OPTION is not set
# CONFIG_SETSEBOOL is not set
# CONFIG_SESTATUS is not set
#
# Shells
#
CONFIG_ASH=y
CONFIG_ASH_BASH_COMPAT=y
# CONFIG_ASH_IDLE_TIMEOUT is not set
CONFIG_ASH_JOB_CONTROL=y
CONFIG_ASH_ALIAS=y
CONFIG_ASH_GETOPTS=y
CONFIG_ASH_BUILTIN_ECHO=y
CONFIG_ASH_BUILTIN_PRINTF=y
CONFIG_ASH_BUILTIN_TEST=y
CONFIG_ASH_HELP=y
CONFIG_ASH_CMDCMD=y
# CONFIG_ASH_MAIL is not set
CONFIG_ASH_OPTIMIZE_FOR_SIZE=y
CONFIG_ASH_RANDOM_SUPPORT=y
CONFIG_ASH_EXPAND_PRMT=y
CONFIG_CTTYHACK=y
CONFIG_HUSH=y
CONFIG_HUSH_BASH_COMPAT=y
CONFIG_HUSH_BRACE_EXPANSION=y
CONFIG_HUSH_HELP=y
CONFIG_HUSH_INTERACTIVE=y
CONFIG_HUSH_SAVEHISTORY=y
CONFIG_HUSH_JOB=y
CONFIG_HUSH_TICK=y
CONFIG_HUSH_IF=y
CONFIG_HUSH_LOOPS=y
CONFIG_HUSH_CASE=y
CONFIG_HUSH_FUNCTIONS=y
CONFIG_HUSH_LOCAL=y
CONFIG_HUSH_RANDOM_SUPPORT=y
CONFIG_HUSH_EXPORT_N=y
CONFIG_HUSH_MODE_X=y
# CONFIG_MSH is not set
CONFIG_FEATURE_SH_IS_ASH=y
# CONFIG_FEATURE_SH_IS_HUSH is not set
# CONFIG_FEATURE_SH_IS_NONE is not set
# CONFIG_FEATURE_BASH_IS_ASH is not set
# CONFIG_FEATURE_BASH_IS_HUSH is not set
CONFIG_FEATURE_BASH_IS_NONE=y
CONFIG_SH_MATH_SUPPORT=y
CONFIG_SH_MATH_SUPPORT_64=y
CONFIG_FEATURE_SH_EXTRA_QUIET=y
# CONFIG_FEATURE_SH_STANDALONE is not set
# CONFIG_FEATURE_SH_NOFORK is not set
CONFIG_FEATURE_SH_HISTFILESIZE=y
#
# System Logging Utilities
#
CONFIG_SYSLOGD=y
CONFIG_FEATURE_ROTATE_LOGFILE=y
CONFIG_FEATURE_REMOTE_LOG=y
CONFIG_FEATURE_SYSLOGD_DUP=y
CONFIG_FEATURE_SYSLOGD_CFG=y
CONFIG_FEATURE_SYSLOGD_READ_BUFFER_SIZE=256
CONFIG_FEATURE_IPC_SYSLOG=y
CONFIG_FEATURE_IPC_SYSLOG_BUFFER_SIZE=16
CONFIG_LOGREAD=y
CONFIG_FEATURE_LOGREAD_REDUCED_LOCKING=y
CONFIG_FEATURE_KMSG_SYSLOG=y
CONFIG_KLOGD=y
#
# klogd should not be used together with syslog to kernel printk buffer
#
CONFIG_FEATURE_KLOGD_KLOGCTL=y
CONFIG_LOGGER=y

@ -0,0 +1,1342 @@
state.audiocodec {
control.1 {
iface MIXER
name 'AIF1 ADC timeslot 0 volume'
value.0 160
value.1 160
comment {
access 'read write'
type INTEGER
count 2
range '0 - 255'
dbmin -11925
dbmax 7200
dbvalue.0 75
dbvalue.1 75
}
}
control.2 {
iface MIXER
name 'AIF1 ADC timeslot 1 volume'
value.0 160
value.1 160
comment {
access 'read write'
type INTEGER
count 2
range '0 - 255'
dbmin -11925
dbmax 7200
dbvalue.0 75
dbvalue.1 75
}
}
control.3 {
iface MIXER
name 'AIF1 DAC timeslot 0 volume'
value.0 156
value.1 156
comment {
access 'read write'
type INTEGER
count 2
range '0 - 255'
dbmin -11925
dbmax 7200
dbvalue.0 -225
dbvalue.1 -225
}
}
control.4 {
iface MIXER
name 'AIF1 DAC timeslot 1 volume'
value.0 158
value.1 158
comment {
access 'read write'
type INTEGER
count 2
range '0 - 255'
dbmin -11925
dbmax 7200
dbvalue.0 -75
dbvalue.1 -75
}
}
control.5 {
iface MIXER
name 'AIF1 ADC timeslot 0 mixer gain'
value.0 0
value.1 0
comment {
access 'read write'
type INTEGER
count 2
range '0 - 15'
dbmin -600
dbmax 8400
dbvalue.0 -600
dbvalue.1 -600
}
}
control.6 {
iface MIXER
name 'AIF1 ADC timeslot 1 mixer gain'
value.0 0
value.1 0
comment {
access 'read write'
type INTEGER
count 2
range '0 - 3'
dbmin -600
dbmax 1200
dbvalue.0 -600
dbvalue.1 -600
}
}
control.7 {
iface MIXER
name 'AIF2 ADC volume'
value.0 160
value.1 160
comment {
access 'read write'
type INTEGER
count 2
range '0 - 255'
dbmin -11925
dbmax 7200
dbvalue.0 75
dbvalue.1 75
}
}
control.8 {
iface MIXER
name 'AIF2 DAC volume'
value.0 163
value.1 163
comment {
access 'read write'
type INTEGER
count 2
range '0 - 255'
dbmin -11925
dbmax 7200
dbvalue.0 300
dbvalue.1 300
}
}
control.9 {
iface MIXER
name 'AIF2 ADC mixer gain'
value.0 8
value.1 8
comment {
access 'read write'
type INTEGER
count 2
range '0 - 15'
dbmin -600
dbmax 8400
dbvalue.0 4200
dbvalue.1 4200
}
}
control.10 {
iface MIXER
name 'ADC volume'
value.0 160
value.1 160
comment {
access 'read write'
type INTEGER
count 2
range '0 - 255'
dbmin -11925
dbmax 7200
dbvalue.0 75
dbvalue.1 75
}
}
control.11 {
iface MIXER
name 'DAC volume'
value.0 0
value.1 0
comment {
access 'read write'
type INTEGER
count 2
range '0 - 255'
dbmin -11925
dbmax 7200
dbvalue.0 -11925
dbvalue.1 -11925
}
}
control.12 {
iface MIXER
name 'DAC mixer gain'
value.0 0
value.1 0
comment {
access 'read write'
type INTEGER
count 2
range '0 - 15'
dbmin -600
dbmax 8400
dbvalue.0 -600
dbvalue.1 -600
}
}
control.13 {
iface MIXER
name 'digital volume'
value 0
comment {
access 'read write'
type INTEGER
count 1
range '0 - 63'
dbmin -7308
dbmax 0
dbvalue.0 -7308
}
}
control.14 {
iface MIXER
name 'earpiece volume'
value 30
comment {
access 'read write'
type INTEGER
count 1
range '0 - 31'
dbmin -4350
dbmax 300
dbvalue.0 150
}
}
control.15 {
iface MIXER
name 'speaker volume'
value 31
comment {
access 'read write'
type INTEGER
count 1
range '0 - 31'
dbmin -4800
dbmax -150
dbvalue.0 -150
}
}
control.16 {
iface MIXER
name 'headphone volume'
value 63
comment {
access 'read write'
type INTEGER
count 1
range '0 - 63'
dbmin -6300
dbmax 0
dbvalue.0 0
}
}
control.17 {
iface MIXER
name 'MIC1_G boost stage output mixer control'
value 4
comment {
access 'read write'
type INTEGER
count 1
range '0 - 7'
dbmin -450
dbmax 600
dbvalue.0 150
}
}
control.18 {
iface MIXER
name 'MIC1 boost AMP gain control'
value 7
comment {
access 'read write'
type INTEGER
count 1
range '0 - 7'
dbmin 0
dbmax 1400
dbvalue.0 1400
}
}
control.19 {
iface MIXER
name 'MIC2 BST stage to L_R outp mixer gain'
value 7
comment {
access 'read write'
type INTEGER
count 1
range '0 - 7'
dbmin -450
dbmax 600
dbvalue.0 600
}
}
control.20 {
iface MIXER
name 'MIC2 boost AMP gain control'
value 4
comment {
access 'read write'
type INTEGER
count 1
range '0 - 7'
dbmin 0
dbmax 1400
dbvalue.0 800
}
}
control.21 {
iface MIXER
name 'LINEINL/R to L_R output mixer gain'
value 0
comment {
access 'read write'
type INTEGER
count 1
range '0 - 7'
dbmin -450
dbmax 600
dbvalue.0 -450
}
}
control.22 {
iface MIXER
name 'ADC input gain control'
value 4
comment {
access 'read write'
type INTEGER
count 1
range '0 - 7'
dbmin -450
dbmax 600
dbvalue.0 150
}
}
control.23 {
iface MIXER
name 'Phoneout gain control'
value 0
comment {
access 'read write'
type INTEGER
count 1
range '0 - 7'
dbmin -450
dbmax 600
dbvalue.0 -450
}
}
control.24 {
iface MIXER
name 'SRC FUCTION'
value false
comment {
access 'read write'
type BOOLEAN
count 1
}
}
control.25 {
iface MIXER
name 'I2S HUB FUNC'
value true
comment {
access 'read write'
type BOOLEAN
count 1
}
}
control.26 {
iface MIXER
name 'Phoneout Mixer MIC1 boost Switch'
value false
comment {
access 'read write'
type BOOLEAN
count 1
}
}
control.27 {
iface MIXER
name 'Phoneout Mixer MIC2 boost Switch'
value false
comment {
access 'read write'
type BOOLEAN
count 1
}
}
control.28 {
iface MIXER
name 'Phoneout Mixer Rout_Mixer_Switch'
value false
comment {
access 'read write'
type BOOLEAN
count 1
}
}
control.29 {
iface MIXER
name 'Phoneout Mixer Lout_Mixer_Switch'
value false
comment {
access 'read write'
type BOOLEAN
count 1
}
}
control.30 {
iface MIXER
name 'ADCR Mux'
value ADC
comment {
access 'read write'
type ENUMERATED
count 1
item.0 ADC
item.1 DMIC
}
}
control.31 {
iface MIXER
name 'ADCL Mux'
value ADC
comment {
access 'read write'
type ENUMERATED
count 1
item.0 ADC
item.1 DMIC
}
}
control.32 {
iface MIXER
name 'MIC2 SRC'
value MIC2
comment {
access 'read write'
type ENUMERATED
count 1
item.0 MIC3
item.1 MIC2
}
}
control.33 {
iface MIXER
name 'RADC input Mixer MIC1 boost Switch'
value true
comment {
access 'read write'
type BOOLEAN
count 1
}
}
control.34 {
iface MIXER
name 'RADC input Mixer MIC2 boost Switch'
value false
comment {
access 'read write'
type BOOLEAN
count 1
}
}
control.35 {
iface MIXER
name 'RADC input Mixer LINEINR Switch'
value false
comment {
access 'read write'
type BOOLEAN
count 1
}
}
control.36 {
iface MIXER
name 'RADC input Mixer r_output mixer Switch'
value false
comment {
access 'read write'
type BOOLEAN
count 1
}
}
control.37 {
iface MIXER
name 'RADC input Mixer l_output mixer Switch'
value false
comment {
access 'read write'
type BOOLEAN
count 1
}
}
control.38 {
iface MIXER
name 'RADC input Mixer PHONINN Switch'
value false
comment {
access 'read write'
type BOOLEAN
count 1
}
}
control.39 {
iface MIXER
name 'RADC input Mixer PHONINN-PHONINP Switch'
value false
comment {
access 'read write'
type BOOLEAN
count 1
}
}
control.40 {
iface MIXER
name 'LADC input Mixer MIC1 boost Switch'
value true
comment {
access 'read write'
type BOOLEAN
count 1
}
}
control.41 {
iface MIXER
name 'LADC input Mixer MIC2 boost Switch'
value false
comment {
access 'read write'
type BOOLEAN
count 1
}
}
control.42 {
iface MIXER
name 'LADC input Mixer LINEINL Switch'
value false
comment {
access 'read write'
type BOOLEAN
count 1
}
}
control.43 {
iface MIXER
name 'LADC input Mixer l_output mixer Switch'
value false
comment {
access 'read write'
type BOOLEAN
count 1
}
}
control.44 {
iface MIXER
name 'LADC input Mixer r_output mixer Switch'
value false
comment {
access 'read write'
type BOOLEAN
count 1
}
}
control.45 {
iface MIXER
name 'LADC input Mixer PHONINP Switch'
value false
comment {
access 'read write'
type BOOLEAN
count 1
}
}
control.46 {
iface MIXER
name 'LADC input Mixer PHONINP-PHONINN Switch'
value false
comment {
access 'read write'
type BOOLEAN
count 1
}
}
control.47 {
iface MIXER
name 'AIF3OUT Mux'
value 'AIF2 ADC left channel'
comment {
access 'read write'
type ENUMERATED
count 1
item.0 'AIF2 ADC left channel'
item.1 'AIF2 ADC right channel'
}
}
control.48 {
iface MIXER
name 'AIF2 ADR Mixer AIF1 DA0R Switch'
value false
comment {
access 'read write'
type BOOLEAN
count 1
}
}
control.49 {
iface MIXER
name 'AIF2 ADR Mixer AIF1 DA1R Switch'
value false
comment {
access 'read write'
type BOOLEAN
count 1
}
}
control.50 {
iface MIXER
name 'AIF2 ADR Mixer AIF2 DACL Switch'
value false
comment {
access 'read write'
type BOOLEAN
count 1
}
}
control.51 {
iface MIXER
name 'AIF2 ADR Mixer ADCR Switch'
value false
comment {
access 'read write'
type BOOLEAN
count 1
}
}
control.52 {
iface MIXER
name 'AIF2 ADL Mixer AIF1 DA0L Switch'
value false
comment {
access 'read write'
type BOOLEAN
count 1
}
}
control.53 {
iface MIXER
name 'AIF2 ADL Mixer AIF1 DA1L Switch'
value false
comment {
access 'read write'
type BOOLEAN
count 1
}
}
control.54 {
iface MIXER
name 'AIF2 ADL Mixer AIF2 DACR Switch'
value false
comment {
access 'read write'
type BOOLEAN
count 1
}
}
control.55 {
iface MIXER
name 'AIF2 ADL Mixer ADCL Switch'
value false
comment {
access 'read write'
type BOOLEAN
count 1
}
}
control.56 {
iface MIXER
name 'AIF2INR Mux'
value AIF2_DACR
comment {
access 'read write'
type ENUMERATED
count 1
item.0 AIF2_DACR
item.1 AIF2_DACL
item.2 SUM_AIF2DACL_AIF2DACR
item.3 AVE_AIF2DACL_AIF2DACR
}
}
control.57 {
iface MIXER
name 'AIF2INL Mux'
value AIF2_DACL
comment {
access 'read write'
type ENUMERATED
count 1
item.0 AIF2_DACL
item.1 AIF2_DACR
item.2 SUM_AIF2DACL_AIF2DACR
item.3 AVE_AIF2DACL_AIF2DACR
}
}
control.58 {
iface MIXER
name 'AIF2OUTR Mux'
value AIF2_ADCR
comment {
access 'read write'
type ENUMERATED
count 1
item.0 AIF2_ADCR
item.1 AIF2_ADCL
item.2 SUM_AIF2_ADCL_AIF2_ADCR
item.3 AVE_AIF2_ADCL_AIF2_ADCR
}
}
control.59 {
iface MIXER
name 'AIF2OUTL Mux'
value AIF2_ADCL
comment {
access 'read write'
type ENUMERATED
count 1
item.0 AIF2_ADCL
item.1 AIF2_ADCR
item.2 SUM_AIF2_ADCL_AIF2_ADCR
item.3 AVE_AIF2_ADCL_AIF2_ADCR
}
}
control.60 {
iface MIXER
name 'EAR Mux'
value 'Left Analog Mixer'
comment {
access 'read write'
type ENUMERATED
count 1
item.0 DACR
item.1 DACL
item.2 'Right Analog Mixer'
item.3 'Left Analog Mixer'
}
}
control.61 {
iface MIXER
name 'SPK_L Mux'
value 'MIXEL Switch'
comment {
access 'read write'
type ENUMERATED
count 1
item.0 'MIXEL Switch'
item.1 'MIXL MIXR Switch'
}
}
control.62 {
iface MIXER
name 'SPK_R Mux'
value 'MIXER Switch'
comment {
access 'read write'
type ENUMERATED
count 1
item.0 'MIXER Switch'
item.1 'MIXR MIXL Switch'
}
}
control.63 {
iface MIXER
name 'HP_L Mux'
value 'Left Analog Mixer HPL Switch'
comment {
access 'read write'
type ENUMERATED
count 1
item.0 'DACL HPL Switch'
item.1 'Left Analog Mixer HPL Switch'
}
}
control.64 {
iface MIXER
name 'HP_R Mux'
value 'Right Analog Mixer HPR Switch'
comment {
access 'read write'
type ENUMERATED
count 1
item.0 'DACR HPR Switch'
item.1 'Right Analog Mixer HPR Switch'
}
}
control.65 {
iface MIXER
name 'Right Output Mixer DACL Switch'
value false
comment {
access 'read write'
type BOOLEAN
count 1
}
}
control.66 {
iface MIXER
name 'Right Output Mixer DACR Switch'
value true
comment {
access 'read write'
type BOOLEAN
count 1
}
}
control.67 {
iface MIXER
name 'Right Output Mixer LINEINR Switch'
value false
comment {
access 'read write'
type BOOLEAN
count 1
}
}
control.68 {
iface MIXER
name 'Right Output Mixer MIC2Booststage Switch'
value false
comment {
access 'read write'
type BOOLEAN
count 1
}
}
control.69 {
iface MIXER
name 'Right Output Mixer MIC1Booststage Switch'
value false
comment {
access 'read write'
type BOOLEAN
count 1
}
}
control.70 {
iface MIXER
name 'Right Output Mixer PHONEINN Switch'
value false
comment {
access 'read write'
type BOOLEAN
count 1
}
}
control.71 {
iface MIXER
name 'Right Output Mixer PHONEINN-PHONEINP Switch'
value false
comment {
access 'read write'
type BOOLEAN
count 1
}
}
control.72 {
iface MIXER
name 'Left Output Mixer DACR Switch'
value false
comment {
access 'read write'
type BOOLEAN
count 1
}
}
control.73 {
iface MIXER
name 'Left Output Mixer DACL Switch'
value true
comment {
access 'read write'
type BOOLEAN
count 1
}
}
control.74 {
iface MIXER
name 'Left Output Mixer LINEINL Switch'
value false
comment {
access 'read write'
type BOOLEAN
count 1
}
}
control.75 {
iface MIXER
name 'Left Output Mixer MIC2Booststage Switch'
value false
comment {
access 'read write'
type BOOLEAN
count 1
}
}
control.76 {
iface MIXER
name 'Left Output Mixer MIC1Booststage Switch'
value false
comment {
access 'read write'
type BOOLEAN
count 1
}
}
control.77 {
iface MIXER
name 'Left Output Mixer PHONEINP Switch'
value false
comment {
access 'read write'
type BOOLEAN
count 1
}
}
control.78 {
iface MIXER
name 'Left Output Mixer PHONEINP-PHONEINN Switch'
value false
comment {
access 'read write'
type BOOLEAN
count 1
}
}
control.79 {
iface MIXER
name 'DACR Mixer ADCR Switch'
value false
comment {
access 'read write'
type BOOLEAN
count 1
}
}
control.80 {
iface MIXER
name 'DACR Mixer AIF2DACR Switch'
value false
comment {
access 'read write'
type BOOLEAN
count 1
}
}
control.81 {
iface MIXER
name 'DACR Mixer AIF1DA1R Switch'
value false
comment {
access 'read write'
type BOOLEAN
count 1
}
}
control.82 {
iface MIXER
name 'DACR Mixer AIF1DA0R Switch'
value true
comment {
access 'read write'
type BOOLEAN
count 1
}
}
control.83 {
iface MIXER
name 'DACL Mixer ADCL Switch'
value false
comment {
access 'read write'
type BOOLEAN
count 1
}
}
control.84 {
iface MIXER
name 'DACL Mixer AIF2DACL Switch'
value false
comment {
access 'read write'
type BOOLEAN
count 1
}
}
control.85 {
iface MIXER
name 'DACL Mixer AIF1DA1L Switch'
value false
comment {
access 'read write'
type BOOLEAN
count 1
}
}
control.86 {
iface MIXER
name 'DACL Mixer AIF1DA0L Switch'
value true
comment {
access 'read write'
type BOOLEAN
count 1
}
}
control.87 {
iface MIXER
name 'AIF1 AD1R Mixer AIF2 DACR Switch'
value false
comment {
access 'read write'
type BOOLEAN
count 1
}
}
control.88 {
iface MIXER
name 'AIF1 AD1R Mixer ADCR Switch'
value false
comment {
access 'read write'
type BOOLEAN
count 1
}
}
control.89 {
iface MIXER
name 'AIF1 AD1L Mixer AIF2 DACL Switch'
value false
comment {
access 'read write'
type BOOLEAN
count 1
}
}
control.90 {
iface MIXER
name 'AIF1 AD1L Mixer ADCL Switch'
value false
comment {
access 'read write'
type BOOLEAN
count 1
}
}
control.91 {
iface MIXER
name 'AIF1 AD0R Mixer AIF1 DA0R Switch'
value false
comment {
access 'read write'
type BOOLEAN
count 1
}
}
control.92 {
iface MIXER
name 'AIF1 AD0R Mixer AIF2 DACR Switch'
value false
comment {
access 'read write'
type BOOLEAN
count 1
}
}
control.93 {
iface MIXER
name 'AIF1 AD0R Mixer ADCR Switch'
value true
comment {
access 'read write'
type BOOLEAN
count 1
}
}
control.94 {
iface MIXER
name 'AIF1 AD0R Mixer AIF2 DACL Switch'
value false
comment {
access 'read write'
type BOOLEAN
count 1
}
}
control.95 {
iface MIXER
name 'AIF1 AD0L Mixer AIF1 DA0L Switch'
value false
comment {
access 'read write'
type BOOLEAN
count 1
}
}
control.96 {
iface MIXER
name 'AIF1 AD0L Mixer AIF2 DACL Switch'
value false
comment {
access 'read write'
type BOOLEAN
count 1
}
}
control.97 {
iface MIXER
name 'AIF1 AD0L Mixer ADCL Switch'
value true
comment {
access 'read write'
type BOOLEAN
count 1
}
}
control.98 {
iface MIXER
name 'AIF1 AD0L Mixer AIF2 DACR Switch'
value false
comment {
access 'read write'
type BOOLEAN
count 1
}
}
control.99 {
iface MIXER
name 'AIF1IN1R Mux'
value AIF1_DA1R
comment {
access 'read write'
type ENUMERATED
count 1
item.0 AIF1_DA1R
item.1 AIF1_DA1L
item.2 SUM_AIF1DA1L_AIF1DA1R
item.3 AVE_AIF1DA1L_AIF1DA1R
}
}
control.100 {
iface MIXER
name 'AIF1IN1L Mux'
value AIF1_DA1L
comment {
access 'read write'
type ENUMERATED
count 1
item.0 AIF1_DA1L
item.1 AIF1_DA1R
item.2 SUM_AIF1DA1L_AIF1DA1R
item.3 AVE_AIF1DA1L_AIF1DA1R
}
}
control.101 {
iface MIXER
name 'AIF1IN0R Mux'
value AIF1_DA0R
comment {
access 'read write'
type ENUMERATED
count 1
item.0 AIF1_DA0R
item.1 AIF1_DA0L
item.2 SUM_AIF1DA0L_AIF1DA0R
item.3 AVE_AIF1DA0L_AIF1DA0R
}
}
control.102 {
iface MIXER
name 'AIF1IN0L Mux'
value AIF1_DA0L
comment {
access 'read write'
type ENUMERATED
count 1
item.0 AIF1_DA0L
item.1 AIF1_DA0R
item.2 SUM_AIF1DA0L_AIF1DA0R
item.3 AVE_AIF1DA0L_AIF1DA0R
}
}
control.103 {
iface MIXER
name 'AIF1OUT1R Mux'
value AIF1_AD1R
comment {
access 'read write'
type ENUMERATED
count 1
item.0 AIF1_AD1R
item.1 AIF1_AD1L
item.2 SUM_AIF1ADC1L_AIF1ADC1R
item.3 AVE_AIF1ADC1L_AIF1ADC1R
}
}
control.104 {
iface MIXER
name 'AIF1OUT1L Mux'
value AIF1_AD1L
comment {
access 'read write'
type ENUMERATED
count 1
item.0 AIF1_AD1L
item.1 AIF1_AD1R
item.2 SUM_AIF1ADC1L_AIF1ADC1R
item.3 AVE_AIF1ADC1L_AIF1ADC1R
}
}
control.105 {
iface MIXER
name 'AIF1OUT0R Mux'
value AIF1_AD0R
comment {
access 'read write'
type ENUMERATED
count 1
item.0 AIF1_AD0R
item.1 AIF1_AD0L
item.2 SUM_AIF1AD0L_AIF1AD0R
item.3 AVE_AIF1AD0L_AIF1AD0R
}
}
control.106 {
iface MIXER
name 'AIF1OUT0L Mux'
value AIF1_AD0L
comment {
access 'read write'
type ENUMERATED
count 1
item.0 AIF1_AD0L
item.1 AIF1_AD0R
item.2 SUM_AIF1AD0L_AIF1AD0R
item.3 AVE_AIF1AD0L_AIF1AD0R
}
}
control.107 {
iface MIXER
name 'AIF2INR Mux VIR switch aif2inr aif3'
value false
comment {
access 'read write'
type BOOLEAN
count 1
}
}
control.108 {
iface MIXER
name 'AIF2INL Mux VIR switch aif2inl aif3'
value false
comment {
access 'read write'
type BOOLEAN
count 1
}
}
control.109 {
iface MIXER
name 'AIF2INR Mux switch aif2inr aif2'
value false
comment {
access 'read write'
type BOOLEAN
count 1
}
}
control.110 {
iface MIXER
name 'AIF2INL Mux switch aif2inl aif2'
value false
comment {
access 'read write'
type BOOLEAN
count 1
}
}
control.111 {
iface MIXER
name 'External Speaker Switch'
value true
comment {
access 'read write'
type BOOLEAN
count 1
}
}
control.112 {
iface MIXER
name 'Headphone Switch'
value false
comment {
access 'read write'
type BOOLEAN
count 1
}
}
control.113 {
iface MIXER
name 'Earpiece Switch'
value false
comment {
access 'read write'
type BOOLEAN
count 1
}
}
}
state.sndhdmi {
control.1 {
iface MIXER
name 'hdmi audio format Function'
value pcm
comment {
access 'read write'
type ENUMERATED
count 1
item.0 null
item.1 pcm
item.2 AC3
item.3 MPEG1
item.4 MP3
item.5 MPEG2
item.6 AAC
item.7 DTS
item.8 ATRAC
item.9 ONE_BIT_AUDIO
item.10 DOLBY_DIGITAL_PLUS
item.11 DTS_HD
item.12 MAT
item.13 WMAPRO
}
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 117 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 117 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 117 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 117 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 117 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 117 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 117 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 117 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 117 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 117 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 117 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 117 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 87 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 117 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 337 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 MiB

Binary file not shown.

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.0 MiB

Binary file not shown.

@ -0,0 +1,91 @@
[product]
version = "100"
[dram_para]
; params for double face
dram_clk = 552
dram_type = 3
dram_zq = 0x3b3bbb
dram_odt_en = 0x1
dram_para1 = 0x10e410f4
dram_para2 = 0x8001000
dram_mr0 = 0x1c70
dram_mr1 = 0x40
dram_mr2 = 0x18
dram_mr3 = 0x2
dram_tpr0 = 0x47194f
dram_tpr1 = 0x1c2414b
dram_tpr2 = 0x61043
dram_tpr3 = 0x4b005dc
dram_tpr4 = 0x0
dram_tpr5 = 0x0
dram_tpr6 = 0x0
dram_tpr7 = 0x0
dram_tpr8 = 0x0
dram_tpr9 = 0x0
dram_tpr10 = 0x8808
dram_tpr11 = 0x20250000
dram_tpr12 = 0x0
dram_tpr13 = 0x4000803
[card0_boot_para]
card_ctrl = 0
card_high_speed = 1
card_line = 4
sdc_d1 = port:PF0<2><1><2><default>
sdc_d0 = port:PF1<2><1><2><default>
sdc_clk = port:PF2<2><1><2><default>
sdc_cmd = port:PF3<2><1><2><default>
sdc_d3 = port:PF4<2><1><2><default>
sdc_d2 = port:PF5<2><1><2><default>
;sdc_2xmode = 0x0
;sdc_ddrmode = 0x0
;sdc_f_max = 0x0
;sdc_ex_dly_used = 0x0
;sdc_odly_25M = 0xff2fffff
;sdc_sdly_25M = 0xd2fffff
;sdc_odly_50M = 0xffffff00
;sdc_sdly_50M = 0x0
[card2_boot_para]
sdc_io_1v8 = 1
card_ctrl = 2
card_high_speed = 1
card_line = 8
sdc_ds = port:PC1<3><1><3><default>
sdc_clk = port:PC5<3><1><3><default>
sdc_cmd = port:PC6<3><1><3><default>
sdc_d0 = port:PC8<3><1><3><default>
sdc_d1 = port:PC9<3><1><3><default>
sdc_d2 = port:PC10<3><1><3><default>
sdc_d3 = port:PC11<3><1><3><default>
sdc_d4 = port:PC12<3><1><3><default>
sdc_d5 = port:PC13<3><1><3><default>
sdc_d6 = port:PC14<3><1><3><default>
sdc_d7 = port:PC15<3><1><3><default>
sdc_emmc_rst = port:PC16<3><1><3><default>
;sdc_2xmode = 0x0
;sdc_ddrmode = 0x0
;sdc_f_max = 0x0
;sdc_ex_dly_used = 0xffffffff
;sdc_odly_25M = 0xff0dffff
;sdc_sdly_25M = 0xffffffff
;sdc_odly_50M = 0x8000000
;sdc_sdly_50M = 0x0
[twi_para]
twi_port = 0
twi_scl = port:PH0<2><default><default><default>
twi_sda = port:PH1<2><default><default><default>
[uart_para]
uart_debug_port = 0
uart_debug_tx = port:PB8<4><1><default><default>
uart_debug_rx = port:PB9<4><1><default><default>
[jtag_para]
jtag_enable = 0
jtag_ms = port:PB0<4><default><default><default>
jtag_ck = port:PB1<4><default><default><default>
jtag_do = port:PB2<4><default><default><default>
jtag_di = port:PB3<4><default><default><default>

@ -0,0 +1,2 @@
[product]
version = "100"

@ -0,0 +1,3 @@
evdev:input:b0003v15BAp003C*
KEYBOARD_KEY_7006f=brightnessdown
KEYBOARD_KEY_70070=brightnessup

@ -0,0 +1,87 @@
#!/bin/sh -x
#
# This scripts takes a simpleimage and a kernel tarball, resizes the
# secondary partition and creates a rootfs inside it. Then extracts the
# Kernel tarball on top of it, resulting in a full Pine64 disk image.
#
# Latest stuff can be found at the following locations:
# - https://www.stdin.xyz/downloads/people/longsleep/pine64-images/simpleimage-pine64-latest.img.xz
# - https://www.stdin.xyz/downloads/people/longsleep/pine64-images/linux/linux-pine64-latest.tar.xz"
# https://github.com/longsleep/build-pine64-image/
SIMPLEIMAGE="$1"
KERNELTAR="$2"
DISTRO="$3"
COUNT="$4"
if [ -z "$SIMPLEIMAGE" -o -z "$KERNELTAR" ]; then
echo "Usage: $0 <simpleimage.img.xz> <kernel.tar.xz> [distro] [count]"
exit 1
fi
if [ "$(id -u)" -ne "0" ]; then
echo "This script requires root."
exit 1
fi
if [ -z "$DISTRO" ]; then
DISTRO="xenial"
fi
if [ -z "$COUNT" ]; then
COUNT=1
fi
SIMPLEIMAGE=$(readlink -f "$SIMPLEIMAGE")
KERNELTAR=$(readlink -f "$KERNELTAR")
SIZE=3650 # MiB
DATE=$(date +%Y%m%d_%H%M%S_%Z)
PWD=$(readlink -f .)
TEMP=$(mktemp -p $PWD -d -t "teres-build-XXXXXXXXXX")
IMAGE="$DISTRO-teres-bspkernel-$DATE-$COUNT.img"
echo "> Building in $TEMP ..."
cleanup() {
local arg=$?
echo "> Cleaning up ..."
umount "$TEMP/boot" || true
umount "$TEMP/rootfs" || true
kpartx -sd "$TEMP/$IMAGE" || true
rmdir "$TEMP/boot"
rmdir "$TEMP/rootfs"
rm "$TEMP/*" || true
rmdir "$TEMP"
exit $arg
}
trap cleanup EXIT
set -x
# Unpack
unxz -k --stdout "$SIMPLEIMAGE" > "$TEMP/$IMAGE"
# Enlarge
dd if=/dev/zero bs=1M count=$SIZE >> "$TEMP/$IMAGE"
# Resize
echo ",+,L" | sfdisk -N 2 -L -uS --force "$TEMP/$IMAGE"
# Device
mkdir "$TEMP/boot"
mkdir "$TEMP/rootfs"
DEVICE=$(losetup --show --find "$TEMP/$IMAGE")
DEVICENAME=$(basename $DEVICE)
echo "> Device is $DEVICE ..."
kpartx -avs $DEVICE
# Resize filesystem
resize2fs /dev/mapper/${DEVICENAME}p2 || true
# Mount
mount /dev/mapper/${DEVICENAME}p1 "$TEMP/boot"
mount /dev/mapper/${DEVICENAME}p2 "$TEMP/rootfs"
sleep 2
(./make_rootfs.sh "$TEMP/rootfs" "$KERNELTAR" "$DISTRO" "$TEMP/boot")
mv -v "$TEMP/$IMAGE" .

@ -0,0 +1,49 @@
#!/bin/sh
#
# Simple script to create a U-Boot with all the additional parts which are
# required to be accepted by th A64 boot0.
#
# This script requires build variants and tools from several other sources.
# See the variable definitions below. When all files can be found, a U-Boot
# file is created which can be loaded by A64 boot0 just fine.
#Useed parts from : https://github.com/longsleep/build-pine64-image/blob/master/u-boot-postprocess/u-boot-postprocess.sh
set -e
# Blobs as provided in the BSP
BLOBS="../blobs"
UBOOT="../u-boot_new"
TRUSTED_FIRMWARE="../arm-trusted-firmware-a64"
TRUSTED_FIRMWARE_BUILD="release"
SUNXI_PACK_TOOLS="../sunxi-pack-tools/bin"
BUILD="../build"
mkdir -p $BUILD
make -C $UBOOT ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- clean
make -C $UBOOT ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- sun50iw1p1_config
make -C $UBOOT ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- spl
cp $BLOBS/sys_config_teres.fex $BUILD/sys_config_teres.fex
unix2dos $BUILD/sys_config_teres.fex
$SUNXI_PACK_TOOLS/script $BUILD/sys_config_teres.fex
cp $UBOOT/boot0_sdcard_sun50iw1p1.bin $BUILD/boot0_teres.bin.tmp
$SUNXI_PACK_TOOLS/update_boot0 $BUILD/boot0_teres.bin.tmp $BUILD/sys_config_teres.bin sdmmc_card
mv $BUILD/boot0_teres.bin.tmp $BUILD/boot0_teres.bin
make -C $UBOOT ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- spl
cp $UBOOT/fes1_sun50iw1p1.bin $BUILD/fes1_teres.bin.tmp
$SUNXI_PACK_TOOLS/update_boot0 $BUILD/fes1_teres.bin.tmp $BUILD/sys_config_teres.bin sdmmc_card
mv $BUILD/fes1_teres.bin.tmp $BUILD/fes1_teres.bin
make -C $UBOOT ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf-
dtc -Odtb -o $BUILD/a64-teres_uboot.dtb $BLOBS/a64-teres_uboot.dts
cp $BLOBS/sys_config_uboot.fex $BUILD/sys_config_uboot.fex
unix2dos $BUILD/sys_config_uboot.fex
$SUNXI_PACK_TOOLS/script $BUILD/sys_config_uboot.fex
$SUNXI_PACK_TOOLS/update_uboot_fdt $UBOOT/u-boot-sun50iw1p1.bin $BUILD/a64-teres_uboot.dtb $BUILD/u-boot-sun50iw1p1-with-teres-dtb.bin.tmp
$SUNXI_PACK_TOOLS/update_uboot $BUILD/u-boot-sun50iw1p1-with-teres-dtb.bin.tmp $BUILD/sys_config_uboot.bin
mv $BUILD/u-boot-sun50iw1p1-with-teres-dtb.bin.tmp $BUILD/u-boot-sun50iw1p1-with-teres-dtb.bin
$SUNXI_PACK_TOOLS/merge_uboot $UBOOT/u-boot-sun50iw1p1.bin $BLOBS/bl31.bin $BUILD/u-boot-sun50iw1p1-secure-with-teres-dtb.bin.tmp secmonitor
$SUNXI_PACK_TOOLS/merge_uboot $BUILD/u-boot-sun50iw1p1-secure-with-teres-dtb.bin.tmp $BLOBS/scp.bin $BUILD/u-boot-sun50iw1p1-secure-with-teres-dtb.bin.tmp2 scp
$SUNXI_PACK_TOOLS/update_uboot_fdt $BUILD/u-boot-sun50iw1p1-secure-with-teres-dtb.bin.tmp2 $BUILD/a64-teres_uboot.dtb $BUILD/u-boot-sun50iw1p1-secure-with-teres-dtb.bin.tmp3
$SUNXI_PACK_TOOLS/update_uboot $BUILD/u-boot-sun50iw1p1-secure-with-teres-dtb.bin.tmp3 $BUILD/sys_config_uboot.bin
mv $BUILD/u-boot-sun50iw1p1-secure-with-teres-dtb.bin.tmp3 $BUILD/u-boot-sun50iw1p1-secure-with-teres-dtb.bin
echo "Done - created $BUILD/u-boot-sun50iw1p1-secure-with-teres-dtb.bin"

@ -0,0 +1,49 @@
#!/bin/sh
#
# Simple script to create a U-Boot with all the additional parts which are
# required to be accepted by th A64 boot0.
#
# This script requires build variants and tools from several other sources.
# See the variable definitions below. When all files can be found, a U-Boot
# file is created which can be loaded by A64 boot0 just fine.
#Useed parts from : https://github.com/longsleep/build-pine64-image/blob/master/u-boot-postprocess/u-boot-postprocess.sh
set -e
# Blobs as provided in the BSP
BLOBS="../blobs"
UBOOT="../u-boot_new"
TRUSTED_FIRMWARE="../arm-trusted-firmware-a64"
TRUSTED_FIRMWARE_BUILD="release"
SUNXI_PACK_TOOLS="../sunxi-pack-tools/bin"
BUILD="../build"
mkdir -p $BUILD
make -C $UBOOT ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- clean
make -C $UBOOT ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- sun50iw1p1_config
make -C $UBOOT ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- spl
cp $BLOBS/sys_config_teres.fex $BUILD/sys_config_teres.fex
unix2dos $BUILD/sys_config_teres.fex
$SUNXI_PACK_TOOLS/script $BUILD/sys_config_teres.fex
cp $UBOOT/boot0_sdcard_sun50iw1p1.bin $BUILD/boot0_teres.bin.tmp
$SUNXI_PACK_TOOLS/update_boot0 $BUILD/boot0_teres.bin.tmp $BUILD/sys_config_teres.bin sdmmc_card
mv $BUILD/boot0_teres.bin.tmp $BUILD/boot0_teres.bin
make -C $UBOOT ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- spl
cp $UBOOT/fes1_sun50iw1p1.bin $BUILD/fes1_teres.bin.tmp
$SUNXI_PACK_TOOLS/update_boot0 $BUILD/fes1_teres.bin.tmp $BUILD/sys_config_teres.bin sdmmc_card
mv $BUILD/fes1_teres.bin.tmp $BUILD/fes1_teres.bin
make -C $UBOOT ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf-
dtc -Odtb -o $BUILD/a64-teres_uboot.dtb $BLOBS/a64-olinuxino.dts
cp $BLOBS/sys_config_uboot.fex $BUILD/sys_config_uboot.fex
unix2dos $BUILD/sys_config_uboot.fex
$SUNXI_PACK_TOOLS/script $BUILD/sys_config_uboot.fex
$SUNXI_PACK_TOOLS/update_uboot_fdt $UBOOT/u-boot-sun50iw1p1.bin $BUILD/a64-teres_uboot.dtb $BUILD/u-boot-sun50iw1p1-with-teres-dtb.bin.tmp
$SUNXI_PACK_TOOLS/update_uboot $BUILD/u-boot-sun50iw1p1-with-teres-dtb.bin.tmp $BUILD/sys_config_uboot.bin
mv $BUILD/u-boot-sun50iw1p1-with-teres-dtb.bin.tmp $BUILD/u-boot-sun50iw1p1-with-teres-dtb.bin
$SUNXI_PACK_TOOLS/merge_uboot $UBOOT/u-boot-sun50iw1p1.bin $BLOBS/bl31.bin $BUILD/u-boot-sun50iw1p1-secure-with-teres-dtb.bin.tmp secmonitor
$SUNXI_PACK_TOOLS/merge_uboot $BUILD/u-boot-sun50iw1p1-secure-with-teres-dtb.bin.tmp $BLOBS/scp.bin $BUILD/u-boot-sun50iw1p1-secure-with-teres-dtb.bin.tmp2 scp
$SUNXI_PACK_TOOLS/update_uboot_fdt $BUILD/u-boot-sun50iw1p1-secure-with-teres-dtb.bin.tmp2 $BUILD/a64-teres_uboot.dtb $BUILD/u-boot-sun50iw1p1-secure-with-teres-dtb.bin.tmp3
$SUNXI_PACK_TOOLS/update_uboot $BUILD/u-boot-sun50iw1p1-secure-with-teres-dtb.bin.tmp3 $BUILD/sys_config_uboot.bin
mv $BUILD/u-boot-sun50iw1p1-secure-with-teres-dtb.bin.tmp3 $BUILD/u-boot-sun50iw1p1-secure-with-teres-dtb.bin
echo "Done - created $BUILD/u-boot-sun50iw1p1-secure-with-teres-dtb.bin"

@ -0,0 +1,3 @@
# <file system> <dir> <type> <options> <dump> <pass>
/dev/mmcblk1p1 /boot vfat defaults 0 2
/dev/mmcblk1p2 / ext4 defaults,noatime 0 1

@ -0,0 +1,3 @@
blacklist vfe_v4l2
blacklist vfe_io
blacklist 8723bs_vq0

@ -0,0 +1,3 @@
# Disable secondary interface and power management.
options 8723bs if2name=p2p0 rtw_power_mgnt=0
options 8723cs if2name=p2p0 rtw_power_mgnt=0

@ -0,0 +1,2 @@
disp
#8723cs

@ -0,0 +1,2 @@
# Auto load hall driver (LID close).
#hall

@ -0,0 +1,4 @@
# Auto load the sndcodec driver (Audio jack, speakers) when not commented.
#sunxi_codec
#sunxi_i2s
#sunxi_sndcodec

@ -0,0 +1,2 @@
8723bs
#8723cs

@ -0,0 +1,4 @@
KERNEL=="disp", MODE="0770", GROUP="video"
KERNEL=="cedar_dev", MODE="0770", GROUP="video"
KERNEL=="ion", MODE="0770", GROUP="video"
KERNEL=="mali", MODE="0770", GROUP="video"

@ -0,0 +1,97 @@
#!/bin/sh
#
# Simple script to put the Kernel image into a destination folder
# to be booted. The script also copies the a initrd and the conmpiled device
# tree. Usually the destination is a location which can be read while booting
# with U-Boot.
#
# Use this script to populate the first partition of disk images created with
# the simpleimage script of this project.
#
set -e
DEST="$1"
if [ -z "$DEST" ]; then
echo "Usage: $0 <destination-folder> [linux-folder]"
exit 1
fi
BLOBS="../blobs"
LINUX="../linux-a64"
INITRD="./initrd.gz"
BOOTLOGO="../blobs/bootlogo.bmp"
BATTERY="../blobs/bat"
# Targets file names as loaded by U-Boot.
SUBFOLDER="a64"
KERNEL="$SUBFOLDER/Image"
INITRD_IMG="initrd.img"
BOOTLOGO_TARGET="bootlogo.bmp"
BATTERY_TARGET="bat"
if [ "$DEST" = "-" ]; then
DEST="../build"
fi
if [ -n "$2" ]; then
LINUX="$2"
fi
echo "Using Linux from $LINUX ..."
VERSION=$(strings $LINUX/arch/arm64/boot/Image |grep "Linux version"|awk '{print $3}')
echo "Kernel build version $VERSION ..."
if [ -z "$VERSION" ]; then
echo "Failed to get build version, correct <linux-folder>?"
exit 1
fi
# Clean up
mkdir -p "$DEST/$SUBFOLDER"
rm -vf "$DEST/$KERNEL"
rm -vf "$DEST/"*.dtb
# Create and copy Kernel
echo -n "Copying Kernel ..."
cp -vf "$LINUX/arch/arm64/boot/Image" "$DEST/$KERNEL"
echo "$VERSION" > "$DEST/Image.version"
echo " OK"
# Copy initrd
echo -n "Copying initrd ..."
cp -vf "$INITRD" "$DEST/$INITRD_IMG"
echo " OK"
# Create and copy binary device tree
# if grep -q sunxi-drm "$LINUX/arch/arm64/boot/Image"; then
# echo "Kernel with DRM driver!"
# basename="pine64drm"
# fi
# Not found, use device tree from BSP.
echo "Compiling device tree from $BLOBS/${basename}.dts"
dtc -Odtb -o "$DEST/$SUBFOLDER/a64-olinuxino.dtb" "$BLOBS/a64-teres.dts"
# Add bootlogo.
cp -v "$BOOTLOGO" "$DEST/$BOOTLOGO_TARGET"
# Add battery icons.
mkdir -p "$DEST/$BATTERY_TARGET"
cp -v "$BATTERY/bempty.bmp" "$DEST/$BATTERY_TARGET"
cp -v "$BATTERY/low_pwr.bmp" "$DEST/$BATTERY_TARGET"
cp -v "$BATTERY/battery_charge.bmp" "$DEST/$BATTERY_TARGET"
if [ ! -e "$DEST/uEnv.txt" ]; then
cat <<EOF > "$DEST/uEnv.txt"
root=/dev/mmcblk1p2
debug=off
console=tty0 console=ttyS0,115200n8 no_console_suspend
kernel_filename=$KERNEL
initrd_filename=$INITRD_IMG
EOF
fi
sync
echo "Done - boot files in $DEST"

@ -0,0 +1,73 @@
#!/bin/sh
set -e
DEST="$1"
if [ -z "$DEST" ]; then
echo "Usage: $0 <destination-root> [linux-folder]"
exit 1
fi
LINUX="../linux-a64"
if [ -n "$2" ]; then
LINUX="$2"
fi
echo "Using Linux from $LINUX ..."
VERSION=$(strings $LINUX/arch/arm64/boot/Image |grep "Linux version"|awk '{print $3}')
echo "Kernel build version $VERSION ..."
if [ -z "$VERSION" ]; then
echo "Failed to get build version, correct <linux-folder>?"
exit 1
fi
LINUX_ARCH=arm64
CROSS_COMPILE=aarch64-linux-gnu-
cd $LINUX
TARGET="$DEST/usr/src/linux-headers-$VERSION"
mkdir -p "$TARGET"
cp -a Makefile "$TARGET"
mkdir -p "$TARGET/arch/$LINUX_ARCH"
cp -a arch/$LINUX_ARCH/Makefile "$TARGET/arch/$LINUX_ARCH"
cp -a Module.symvers "$TARGET"
# Install Kernel headers
make ARCH=$LINUX_ARCH CROSS_COMPILE=$CROSS_COMPILE headers_install INSTALL_HDR_PATH="$TARGET"
tar cfh - include | (cd "$TARGET"; umask 000; tar xsf -)
tar cfh - scripts | (cd "$TARGET"; umask 000; tar xsf -)
find . -path './scripts/*' -prune -o -path './Documentation/*' -prune -o \
-path './debian/*' -prune -o -type f \
\( -name Makefile -o -name 'Kconfig*' \) -print | \
cpio -pd --preserve-modification-time "$TARGET";
# Clean compile host executables and replace some with target arch.
find "$TARGET/scripts" -type f | while read i; do if file -b $i | egrep -q "^ELF.*executable"; then rm "$i"; fi; done
(cd scripts && ${CROSS_COMPILE}gcc kallsyms.c -o "$TARGET/scripts/kallsyms")
(cd scripts && ${CROSS_COMPILE}gcc pnmtologo.c -o "$TARGET/scripts/pnmtologo")
(cd scripts && ${CROSS_COMPILE}gcc conmakehash.c -o "$TARGET/scripts/conmakehash")
(cd scripts && ${CROSS_COMPILE}gcc bin2c.c -o "$TARGET/scripts/bin2c")
(cd scripts && ${CROSS_COMPILE}gcc recordmcount.c -o "$TARGET/scripts/recordmcount")
(cd scripts && ${CROSS_COMPILE}gcc -I../tools/include sortextable.c -o "$TARGET/scripts/sortextable")
(cd scripts && ${CROSS_COMPILE}gcc unifdef.c -o "$TARGET/scripts/unifdef")
(cd scripts/basic && ${CROSS_COMPILE}gcc fixdep.c -o "$TARGET/scripts/basic/fixdep")
(cd scripts/mod && ${CROSS_COMPILE}gcc modpost.c file2alias.c sumversion.c -o "$TARGET/scripts/mod/modpost")
(cd scripts/mod && ${CROSS_COMPILE}gcc mk_elfconfig.c -o "$TARGET/scripts/mod/mk_elfconfig")
(cd scripts/genksyms && ${CROSS_COMPILE}gcc genksyms.c parse.tab.c lex.lex.c -o "$TARGET/scripts/genksyms/genksyms")
find arch/$LINUX_ARCH/include \
-print | cpio -pdL --preserve-modification-time "$TARGET";
mkdir -p "$TARGET/arch/um"
cp -a arch/um/Makefile* "$TARGET/arch/um/"
mkdir -p "$TARGET/arch/$LINUX_ARCH/kernel"
cp -a arch/$LINUX_ARCH/kernel/asm-offsets.s "$TARGET/arch/$LINUX_ARCH/kernel"
rm -f "$TARGET/include/linux/version.h"
cp -a .config "$TARGET/"
echo "Done - installed Kernel headers to $DEST"

@ -0,0 +1,45 @@
#!/bin/sh
set -e
DEST="$1"
if [ -z "$DEST" ]; then
echo "Usage: $0 <destination-folder> [linux-folder]"
exit 1
fi
LINUX="../linux-a64"
if [ -n "$2" ]; then
LINUX="$2"
fi
echo "Using Linux from $LINUX ..."
VERSION=$(strings $LINUX/arch/arm64/boot/Image |grep "Linux version"|awk '{print $3}')
echo "Kernel build version $VERSION ..."
if [ -z "$VERSION" ]; then
echo "Failed to get build version, correct <linux-folder>?"
exit 1
fi
# Install Kernel modules
make -C $LINUX ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- modules_install INSTALL_MOD_PATH="$DEST"
# Install Kernel firmware
make -C $LINUX ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- firmware_install INSTALL_MOD_PATH="$DEST"
# Fix symbolic links
rm -f "$DEST/lib/modules/$VERSION/source"
rm -f "$DEST/lib/modules/$VERSION/build"
ln -s "/usr/src/linux-headers-$VERSION" "$DEST/lib/modules/$VERSION/build"
# Install extra mali module if found in Kernel tree.
if [ -e $LINUX/modules/gpu/mali400/kernel_mode/driver/src/devicedrv/mali/mali.ko ]; then
v=
mkdir "$DEST/lib/modules/$VERSION/kernel/extramodules"
cp -v $LINUX/modules/gpu/mali400/kernel_mode/driver/src/devicedrv/mali/mali.ko $DEST/lib/modules/$VERSION/kernel/extramodules
depmod -b $DEST $VERSION
fi
echo "Done - installed Kernel modules to $DEST"

@ -0,0 +1,109 @@
#!/bin/sh
#
# Simple script to create a small busybox based initrd. It requires a compiled
# busybox static binary. You can also use any other prebuilt initrd.
#
# Please note that some prebuilt initrds might be inappropriate, for example,
# the ones from the Debian Installer will start an install process, so don't
# use those.
#
# Run this script with fakeroot or as root.
set -e
if [ "$(id -u)" -ne "0" ]; then
exec fakeroot $0 $@
fi
BUSYBOX="../busybox"
TEMP=$(mktemp -d)
TEMPFILE=$(mktemp)
mkdir -p $TEMP/bin
cp -va $BUSYBOX/busybox $TEMP/bin
cd $TEMP
mkdir dev proc sys tmp sbin
mknod dev/console c 5 1
cat > $TEMP/init <<'EOF'
#!/bin/busybox sh
# Install busybox
/bin/busybox --install -s
# Mount the /proc and /sys filesystems.
mount -t proc none /proc
mount -t sysfs none /sys
mount -t devtmpfs none /dev
cmdline() {
local value
value=" $(cat /proc/cmdline) "
value="${value##* $1=}"
value="${value%% *}"
[ "$value" != "" ] && echo "$value"
}
realboot() {
echo "Rootfs: $1";
# Mount real root.
mkdir -p /mnt/root
mount -o rw "$1" /mnt/root
if [ -x /mnt/root/sbin/init -o -h /mnt/root/sbin/init ]; then
# Cleanup.
umount /proc
umount /sys
umount /dev
# Boot the real system.
exec switch_root /mnt/root /sbin/init
else
umount /mnt/root
fi
}
runshell() {
echo "Dropping to a shell."
echo
setsid cttyhack /bin/sh
}
find_parition_by_value() {
echo `blkid | tr -d '"' | grep "$1" | cut -d ':' -f 1 | head -n 1`
}
boot() {
echo "Kernel params: `cat /proc/cmdline`"
local i=5
local kernel_root_param=$(cmdline root)
while [ "$i" -ge 1 ]; do
echo "Waiting for root system $kernel_root_param, countdown : $i";
local root=`find_parition_by_value $kernel_root_param`
if [ -e "$root" ]; then
realboot $root;
fi;
i=$(( $i - 1 ));
sleep 5;
done;
# Default rootfs - sd partition 2
realboot /dev/mmcblk0p2;
runshell;
}
boot;
EOF
chmod 755 $TEMP/init
find . | cpio -H newc -o > $TEMPFILE
cd -
cat $TEMPFILE | gzip >initrd.gz
rm $TEMPFILE
rm -rf $TEMP
sync

@ -0,0 +1,50 @@
#!/bin/sh
set -e
DEST="$1"
if [ -z "$DEST" ]; then
echo "Usage: $0 <destination-folder> [linux-folder] [extra-version]"
exit 1
fi
LINUX="../linux-a64"
if [ -n "$2" ]; then
LINUX="$2"
fi
EXTRAVERSION="$3"
echo "Using Linux from $LINUX ..."
TEMP=$(mktemp -d)
mkdir $TEMP/boot
cleanup() {
if [ -d "$TEMP" ]; then
rm -rf "$TEMP"
fi
}
trap cleanup EXIT
./install_kernel.sh "$TEMP/boot" "$LINUX"
./install_kernel_modules.sh "$TEMP" "$LINUX"
./install_kernel_headers.sh "$TEMP" "$LINUX"
# Use uEnv.txt.in so we do not overwrite customizations on next update.
mv "$TEMP/boot/uEnv.txt" "$TEMP/boot/uEnv.txt.in"
if [ -z "$EXTRAVERSION" -a -e "$LINUX/.version" ]; then
EXTRAVERSION=$(cat "$LINUX/.version")
else
EXTRAVERSION=$(date +%s)
fi
VERSION="$(ls -1tr $TEMP/lib/modules/|tail -n1)-$EXTRAVERSION"
echo "Building $VERSION ..."
tar -C "$TEMP" -cJ --owner=0 --group=0 --xform='s,./,,' -f "$DEST/linux-a64-$VERSION.tar.xz" .
echo "Done - $DEST/linux-a64-$VERSION.tar.xz"

@ -0,0 +1,437 @@
#!/bin/bash -x
#
# Simple script to create a rootfs for aarch64 platforms including support
# for Kernel modules created by the rest of the scripting found in this
# module.
#
# Use this script to populate the second partition of disk images created with
# the simpleimage script of this project.
#
set -e
BUILD="../build"
DEST="$1"
LINUX="$2"
DISTRO="$3"
BOOT="$4"
export LC_ALL=C
if [ -z "$DEST" ]; then
echo "Usage: $0 <destination-folder> [<linux-tarball>] [<distro>] [<boot-folder>]"
exit 1
fi
if [ "$(id -u)" -ne "0" ]; then
echo "This script requires root."
exit 1
fi
DEST=$(readlink -f "$DEST")
if [ -n "$LINUX" -a "$LINUX" != "-" ]; then
LINUX=$(readlink -f "$LINUX")
fi
if [ ! -d "$DEST" ]; then
echo "Destination $DEST not found or not a directory."
exit 1
fi
if [ "$(ls -A -Ilost+found $DEST)" ]; then
echo "Destination $DEST is not empty. Aborting."
exit 1
fi
if [ -z "$DISTRO" ]; then
DISTRO="xenial"
fi
if [ -n "$BOOT" ]; then
BOOT=$(readlink -f "$BOOT")
fi
TEMP=$(mktemp -d)
cleanup() {
if [ -e "$DEST/proc/cmdline" ]; then
umount "$DEST/proc"
fi
if [ -d "$DEST/sys/kernel" ]; then
umount "$DEST/sys"
fi
umount "$DEST/tmp" || true
if [ -d "$TEMP" ]; then
rm -rf "$TEMP"
fi
}
trap cleanup EXIT
ROOTFS=""
UNTAR="bsdtar -xpf"
METHOD="download"
case $DISTRO in
arch)
ROOTFS="http://archlinuxarm.org/os/ArchLinuxARM-aarch64-latest.tar.gz"
;;
xenial)
ROOTFS="http://cdimage.ubuntu.com/ubuntu-base/releases/16.04.2/release/ubuntu-base-16.04.2-base-arm64.tar.gz"
;;
sid|jessie)
ROOTFS="${DISTRO}-base-arm64.tar.gz"
METHOD="debootstrap"
;;
*)
echo "Unknown distribution: $DISTRO"
exit 1
;;
esac
deboostrap_rootfs() {
dist="$1"
tgz="$(readlink -f "$2")"
[ "$TEMP" ] || exit 1
cd $TEMP && pwd
# this is updated very seldom, so is ok to hardcode
debian_archive_keyring_deb='https://ftp.de.debian.org/debian/pool/main/d/debian-archive-keyring/debian-archive-keyring_2014.3_all.deb'
wget -O keyring.deb "$debian_archive_keyring_deb"
ar -x keyring.deb && rm -f control.tar.gz debian-binary && rm -f keyring.deb
DATA=$(ls data.tar.*) && compress=${DATA#data.tar.}
KR=debian-archive-keyring.gpg
bsdtar --include ./usr/share/keyrings/$KR --strip-components 4 -xvf "$DATA"
rm -f "$DATA"
apt-get -y install debootstrap qemu-user-static
qemu-debootstrap --arch=arm64 --keyring=$TEMP/$KR $dist rootfs http://httpredir.debian.org/debian
rm -f $KR
# keeping things clean as this is copied later again
rm -f rootfs/usr/bin/qemu-aarch64-static
bsdtar -C $TEMP/rootfs -a -cf $tgz .
rm -fr $TEMP/rootfs
cd -
}
mkdir -p $BUILD
TARBALL="$BUILD/$(basename $ROOTFS)"
if [ ! -e "$TARBALL" ]; then
if [ "$METHOD" = "download" ]; then
echo "Downloading $DISTRO rootfs tarball ..."
wget -O "$TARBALL" "$ROOTFS"
elif [ "$METHOD" = "debootstrap" ]; then
deboostrap_rootfs "$DISTRO" "$TARBALL"
else
echo "Unknown rootfs creation method"
exit 1
fi
fi
# Extract with BSD tar
echo -n "Extracting ... "
set -x
$UNTAR "$TARBALL" -C "$DEST"
echo "OK"
# Add qemu emulation.
cp /usr/bin/qemu-aarch64-static "$DEST/usr/bin/"
# Prevent services from starting
cat > "$DEST/usr/sbin/policy-rc.d" <<EOF
#!/bin/sh
exit 101
EOF
chmod a+x "$DEST/usr/sbin/policy-rc.d"
do_chroot() {
cmd="$@"
mount -o bind /tmp "$DEST/tmp"
chroot "$DEST" mount -t proc proc /proc
chroot "$DEST" mount -t sysfs sys /sys
chroot "$DEST" $cmd
chroot "$DEST" umount /sys
chroot "$DEST" umount /proc
umount "$DEST/tmp"
}
add_platform_scripts() {
# Install platform scripts
mkdir -p "$DEST/usr/local/sbin"
cp -av ./platform-scripts/* "$DEST/usr/local/sbin/"
chown -R root.root "$DEST/usr/local/sbin"
chmod -R 755 "$DEST/usr/local/sbin"
}
add_systemd_services() {
# Install and enable all systemd services
local services=(./systemd-services/*.service)
local servicename
for service in "${services[@]}"; do
servicename=$(basename $service)
cp -av $service "$DEST/etc/systemd/system/"
chown -R root.root "$DEST/etc/systemd/system"
do_chroot systemctl enable $servicename
done
}
add_udev_rules() {
# Install extra udev rules.
mkdir -p "$DEST/etc/udev/rules.d"
cp -av ./configuration-files/udev-rules.d/* "$DEST/etc/udev/rules.d/"
chown -R root.root "$DEST/etc/udev/rules.d"
}
add_modprobe_d() {
# Install modprobe.d.
mkdir -p "$DEST/etc/modprobe.d"
cp -av ./configuration-files/modprobe.d/* "$DEST/etc/modprobe.d/"
chown -R root.root "$DEST/etc/modprobe.d"
}
add_modules_load_d() {
# Install modules-load.d.
mkdir -p "$DEST/etc/modules-load.d"
cp -av ./configuration-files/modules-load.d/* "$DEST/etc/modules-load.d/"
chown -R root.root "$DEST/etc/modules-load.d"
}
add_prebuilt_packages() {
mkdir -p "$DEST/home/prebuilt"
cp -av ./prebuilt/* "$DEST/home/prebuilt/"
}
#add_firstboot_d() {
# # Install firstboot scripts.
# mkdir -p "$DEST/etc/pine64-firstboot.d"
# cp -av ./configuration-files/pine64-firstboot.d/* "$DEST/etc/pine64-firstboot.d/"
# chown -R root.root "$DEST/etc/pine64-firstboot.d"
#}
add_asound_state() {
mkdir -p "$DEST/var/lib/alsa"
cp -vf ../blobs/asound.state "$DEST/var/lib/alsa/asound.state"
}
add_debian_apt_sources() {
local release="$1"
local aptsrcfile="$DEST/etc/apt/sources.list"
cat > "$aptsrcfile" <<EOF
deb http://httpredir.debian.org/debian ${release} main contrib non-free
#deb-src http://httpredir.debian.org/debian ${release} main contrib non-free
EOF
# No separate security or updates repo for unstable/sid
[ "$release" = "sid" ] || cat >> "$aptsrcfile" <<EOF
deb http://httpredir.debian.org/debian ${release}-updates main contrib non-free
#deb-src http://httpredir.debian.org/debian ${release}-updates main contrib non-free
deb http://security.debian.org/ ${release}/updates main contrib non-free
#deb-src http://security.debian.org/ ${release}/updates main contrib non-free
EOF
}
add_ubuntu_apt_sources() {
local release="$1"
cat > "$DEST/etc/apt/sources.list" <<EOF
deb http://ports.ubuntu.com/ ${release} main restricted universe multiverse
deb-src http://ports.ubuntu.com/ ${release} main restricted universe multiverse
deb http://ports.ubuntu.com/ ${release}-updates main restricted universe multiverse
deb-src http://ports.ubuntu.com/ ${release}-updates main restricted universe multiverse
deb http://ports.ubuntu.com/ ${release}-security main restricted universe multiverse
deb-src http://ports.ubuntu.com/ ${release}-security main restricted universe multiverse
#deb http://ports.ubuntu.com/ ${release}-backports main restricted universe multiverse
#deb-src http://ports.ubuntu.com/ ${release}-backports main restricted universe multiverse
EOF
}
# Run stuff in new system.
case $DISTRO in
arch)
# Cleanup preinstalled Kernel
mv "$DEST/etc/resolv.conf" "$DEST/etc/resolv.conf.dist"
cp /etc/resolv.conf "$DEST/etc/resolv.conf"
sed -i 's|CheckSpace|#CheckSpace|' "$DEST/etc/pacman.conf"
do_chroot pacman -Syu --noconfirm || true
do_chroot pacman -Rsn --noconfirm linux-aarch64 || true
do_chroot pacman -S --noconfirm --needed dosfstools curl xz iw rfkill netctl dialog wpa_supplicant alsa-utils || true
add_platform_scripts
add_systemd_services
add_udev_rules
add_modprobe_d
add_modules_load_d
add_firstboot_d
add_asound_state
cat > "$DEST/second-phase" <<EOF
#!/bin/sh
set -ex
sed -i 's|^#en_US.UTF-8|en_US.UTF-8|' /etc/locale.gen
locale-gen
localectl set-locale LANG=en_US.utf8
localectl set-keymap us
yes | pacman -Scc
EOF
chmod +x "$DEST/second-phase"
do_chroot /second-phase
sed -i 's|#CheckSpace|CheckSpace|' "$DEST/etc/pacman.conf"
rm -f "$DEST/etc/resolv.conf"
mv "$DEST/etc/resolv.conf.dist" "$DEST/etc/resolv.conf"
;;
xenial|sid|jessie)
rm "$DEST/etc/resolv.conf"
cp /etc/resolv.conf "$DEST/etc/resolv.conf"
if [ "$DISTRO" = "xenial" ]; then
DEB=ubuntu
DEBUSER=olimex
DEBUSERPW=olimex
ADDPPACMD="apt-get -y update && \
apt-get install -y software-properties-common && \
apt-add-repository -y ppa:longsleep/ubuntu-pine64-flavour-makers \
"
EXTRADEBS="\
zram-config \
ubuntu-minimal \
sunxi-disp-tool \
network-manager \
wireless-tools \
"
elif [ "$DISTRO" = "sid" -o "$DISTRO" = "jessie" ]; then
DEB=debian
DEBUSER=debian
DEBUSERPW=debian
ADDPPACMD=""
EXTRADEBS="sudo"
else
echo "Unknown DISTRO=$DISTRO"
exit 2
fi
add_${DEB}_apt_sources $DISTRO
add_prebuilt_packages
cat > "$DEST/second-phase" <<EOF
#!/bin/sh
set -ex
export DEBIAN_FRONTEND=noninteractive
locale-gen en_US.UTF-8
$ADDPPACMD
apt-get -y update
apt-get -y install dosfstools curl xz-utils iw rfkill wpasupplicant openssh-server alsa-utils $EXTRADEBS
apt-get -y remove --purge ureadahead
apt-get -y update
adduser --gecos $DEBUSER --disabled-login $DEBUSER --uid 1000
chown -R 1000:1000 /home/$DEBUSER
dpkg -i /home/prebuilt/*
echo "$DEBUSER:$DEBUSERPW" | chpasswd
usermod -a -G sudo,adm,input,video,plugdev $DEBUSER
apt-get -y autoremove
apt-get clean
EOF
chmod +x "$DEST/second-phase"
do_chroot /second-phase
cat > "$DEST/etc/network/interfaces.d/eth0" <<EOF
auto eth0
iface eth0 inet dhcp
EOF
cat > "$DEST/etc/hostname" <<EOF
teres
EOF
cat > "$DEST/etc/hosts" <<EOF
127.0.0.1 localhost
127.0.1.1 teres
# The following lines are desirable for IPv6 capable hosts
::1 localhost ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
EOF
add_platform_scripts
add_systemd_services
add_udev_rules
add_modprobe_d
add_modules_load_d
#add_firstboot_d
add_asound_state
sed -i 's|After=rc.local.service|#\0|;' "$DEST/lib/systemd/system/serial-getty@.service"
rm -f "$DEST/second-phase"
rm -f "$DEST/etc/resolv.conf"
rm -f "$DEST"/etc/ssh/ssh_host_*
do_chroot ln -s /run/resolvconf/resolv.conf /etc/resolv.conf
;;
*)
;;
esac
# Bring back folders
mkdir -p "$DEST/lib"
mkdir -p "$DEST/usr"
# Create fstab
cp -a ./configuration-files/fstab "$DEST/etc/fstab"
chown root.root "$DEST/etc/fstab"
# Direct Kernel install
#if [ -n "$LINUX" -a "$LINUX" != "-" -a -d "$LINUX" ]; then
# # NOTE(longsleep): Passing Kernel as folder is deprecated. Pass a tarball!
#
# mkdir "$DEST/lib/modules"
# # Install Kernel modules
# make -C $LINUX ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- modules_install INSTALL_MOD_PATH="$DEST"
# # Install Kernel firmware
# make -C $LINUX ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- firmware_install INSTALL_MOD_PATH="$DEST"
# # Install Kernel headers
# make -C $LINUX ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- headers_install INSTALL_HDR_PATH="$DEST/usr"
#
# # Install extra mali module if found in Kernel tree.
# if [ -e $LINUX/modules/gpu/mali400/kernel_mode/driver/src/devicedrv/mali/mali.ko ]; then
# v=$(ls $DEST/lib/modules/)
# mkdir "$DEST/lib/modules/$v/kernel/extramodules"
# cp -v $LINUX/modules/gpu/mali400/kernel_mode/driver/src/devicedrv/mali/mali.ko $DEST/lib/modules/$v/kernel/extramodules
# depmod -b $DEST $v
# fi
echo "-----------------------------------------------------------------------------------------------------------------------------------"
if [ -n "$LINUX" -a "$LINUX" != "-" ]; then
# Install Kernel modules from tarball
mkdir $TEMP/kernel
tar -C $TEMP/kernel --numeric-owner -xJf "$LINUX"
if [ -n "$BOOT" -a -e "$BOOT/uEnv.txt" ]; then
# Install Kernel and uEnv.txt too.
echo "Installing Kernel to boot $BOOT ..."
rm -rf "$BOOT/a64"
rm -f "$BOOT/uEnv.txt"
cp -RLp $TEMP/kernel/boot/* "$BOOT/"
mv "$BOOT/uEnv.txt.in" "$BOOT/uEnv.txt"
fi
cp -RLp $TEMP/kernel/lib/* "$DEST/lib/" 2>/dev/null || true
cp -RLp $TEMP/kernel/usr/* "$DEST/usr/"
VERSION=""
if [ -e "$TEMP/kernel/boot/Image.version" ]; then
VERSION=$(cat $TEMP/kernel/boot/Image.version)
fi
if [ -n "$VERSION" ]; then
# Create symlink to headers if not there.
if [ ! -e "$DEST/lib/modules/$VERSION/build" ]; then
ln -s /usr/src/linux-headers-$VERSION "$DEST/lib/modules/$VERSION/build"
fi
depmod -b $DEST $VERSION
fi
# Set Kernel and U-boot update version to current.
#do_chroot /usr/bin/env MARK_ONLY=1 /usr/local/sbin/pine64_update_kernel.sh
#do_chroot /usr/bin/env MARK_ONLY=1 /usr/local/sbin/pine64_update_uboot.sh
fi
# Clean up
rm -f "$DEST/usr/bin/qemu-aarch64-static"
rm -f "$DEST/usr/sbin/policy-rc.d"
rm -f "$DEST/var/lib/dbus/machine-id"
echo "Done - installed rootfs to $DEST"

@ -0,0 +1,133 @@
#!/bin/sh
#
# Simple script to create a disk image which boots to U-Boot on Pine64.
#
# This script uses boot0 binary blob (as extracted from the Pine64 Android
# image) together with a correctly prefixed U-Boot and A DOS partition table
# to create a bootable SDcard image for the Pine64. If a Kernel and DTB is
# found in ../kernel, it is added as well.
#
# U-Boot tree:
# - https://github.com/longsleep/u-boot-pine64/tree/pine64-hacks
#
# Build the U-Boot tree and assemble it with ATF, SCP and FEX and put the
# resulting u-boot-with-dtb.bin file into the ../build directory. The
# u-boot-postprocess script provides an easy way to do all that.
#
set -e
out="$1"
disk_size="$2"
kernel_tarball="$3"
model="$4"
BOOTLOGO="../blobs/bootlogo.bmp"
BATTERY="../blobs/bat"
BOOTLOGO_TARGET="bootlogo.bmp"
BATTERY_TARGET="bat"
if [ -z "$out" ]; then
echo "Usage: $0 <image-file.img> [disk size in MiB] [<kernel-tarball>] [teres]"
exit 1
fi
if [ "$(id -u)" -ne "0" ]; then
echo "This script requires root."
exit 1
fi
if [ -z "$disk_size" ]; then
disk_size=100 #MiB
fi
if [ "$disk_size" -lt 60 ]; then
echo "Disk size must be at least 60 MiB"
exit 2
fi
#if [ -z "$model" = "" ]; then
model="teres"
#fi
echo "Creating $model image $out of size $disk_size MiB ..."
suffix=""
if [ -n "$model" ]; then
suffix="-$model"
fi
#u-boot-sun50iw1p1-secure-with-teres-dtb.bin
boot0="../build/boot0_teres.bin"
uboot="../build/u-boot-sun50iw1p1-secure-with-teres-dtb.bin"
kernel="../build"
temp=$(mktemp -d)
cleanup() {
if [ -d "$temp" ]; then
rm -rf "$temp"
fi
}
trap cleanup EXIT
if [ -n "$kernel_tarball" -a "$kernel_tarball" != "-" ]; then
echo "Using Kernel from $kernel_tarball ..."
tar -C $temp -xJf "$kernel_tarball"
kernel=$temp/boot
mv $temp/boot/uEnv.txt.in $temp/boot/uEnv.txt
fi
boot0_position=8 # KiB
uboot_position=19096 # KiB
part_position=20480 # KiB
boot_size=50 # MiB
# Create beginning of disk
dd if=/dev/zero bs=1M count=$((part_position/1024)) of="$out"
dd if="$boot0" conv=notrunc bs=1k seek=$boot0_position of="$out"
dd if="$uboot" conv=notrunc bs=1k seek=$uboot_position of="$out"
# Create boot file system (VFAT)
dd if=/dev/zero bs=1M count=${boot_size} of=${out}1
mkfs.vfat -n BOOT ${out}1
# Add boot support if there
if [ -e "${kernel}/a64/Image" -a -e "${kernel}/a64/a64-olinuxino.dtb" ]; then
mcopy -sm -i ${out}1 ${kernel}/a64 ::
mcopy -m -i ${out}1 ${kernel}/initrd.img :: || true
mcopy -m -i ${out}1 ${kernel}/uEnv.txt :: || true
mcopy -m -i ${out}1 ${BOOTLOGO} :: || true
mcopy -sm -i ${out}1 ${BATTERY} ::
fi
dd if=${out}1 conv=notrunc oflag=append bs=1M seek=$((part_position/1024)) of="$out"
rm -f ${out}1
# Create additional ext4 file system for rootfs
dd if=/dev/zero bs=1M count=$((disk_size-boot_size-part_position/1024)) of=${out}2
mkfs.ext4 -F -b 4096 -E stride=2,stripe-width=1024 -L rootfs ${out}2
dd if=${out}2 conv=notrunc oflag=append bs=1M seek=$((part_position/1024+boot_size)) of="$out"
rm -f ${out}2
# Add partition table
cat <<EOF | fdisk "$out"
o
n
p
1
$((part_position*2))
+${boot_size}M
t
c
n
p
2
$((part_position*2 + boot_size*1024*2))
t
2
83
w
EOF
sync
echo "Done - image created: $out"

@ -0,0 +1,48 @@
#!/bin/sh
#
# Simple script to create a U-Boot with all the additional parts which are
# required to be accepted by th A64 boot0.
#
# This script requires build variants and tools from several other sources.
# See the variable definitions below. When all files can be found, a U-Boot
# file is created which can be loaded by A64 boot0 just fine.
#Useed parts from : https://github.com/longsleep/build-pine64-image/blob/master/u-boot-postprocess/u-boot-postprocess.sh
set -e
# Blobs as provided in the BSP
BLOBS="../blobs"
# https://github.com/longsleep/u-boot-pine64/tree/pine64-hacks
UBOOT="../u-boot"
# https://github.com/longsleep/arm-trusted-firmware-pine64
TRUSTED_FIRMWARE="../arm-trusted-firmware-a64"
TRUSTED_FIRMWARE_BUILD="release"
# https://github.com/longsleep/sunxi-pack-tools
SUNXI_PACK_TOOLS="../sunxi-pack-tools/bin"
BUILD="../build"
mkdir -p $BUILD
cp -avf $TRUSTED_FIRMWARE/build/sun50iw1p1/$TRUSTED_FIRMWARE_BUILD/bl31.bin $BUILD
cp -avf $UBOOT/u-boot-sun50iw1p1.bin $BUILD/u-boot.bin
cp -avf $BLOBS/scp.bin $BUILD
cp -avf $BLOBS/sys_config.fex $BUILD
# build binary device tree
dtc -Odtb -o $BUILD/a64-teres_uboot.dtb $BLOBS/a64-teres_uboot.dts
unix2dos $BUILD/sys_config.fex
$SUNXI_PACK_TOOLS/script $BUILD/sys_config.fex
# merge_uboot.exe u-boot.bin infile outfile mode[secmonitor|secos|scp]
$SUNXI_PACK_TOOLS/merge_uboot $BUILD/u-boot.bin $BUILD/bl31.bin $BUILD/u-boot-merged.bin secmonitor
$SUNXI_PACK_TOOLS/merge_uboot $BUILD/u-boot-merged.bin $BUILD/scp.bin $BUILD/u-boot-merged2.bin scp
# update_fdt.exe u-boot.bin xxx.dtb output_file.bin
$SUNXI_PACK_TOOLS/update_uboot_fdt $BUILD/u-boot-merged2.bin $BUILD/a64-teres_uboot.dtb $BUILD/u-boot-with-dtb.bin
# Add fex file to u-boot so it actually is accepted by boot0.
$SUNXI_PACK_TOOLS/update_uboot $BUILD/u-boot-with-dtb.bin $BUILD/sys_config.bin
echo "Done - created $BUILD/u-boot-with-dtb.bin"

@ -0,0 +1,142 @@
#!/bin/sh
#
# Simple script to print some health data for Pine64. Some details were
# shamelessly stolen from http://pastebin.com/bSTYCQ5u. Thanks tkaiser.
#
# Run this script like `sudo watch -n2 pine64_health.sh` for a 2 sec update
# or call `sudo pine64_health.sh -w` to get updates every 0.5 seconds (default).
#
set -e
if [ "$(id -u)" -ne "0" ]; then
echo "This script requires root."
exit 1
fi
GPU_ADDR="1c40000.gpu"
print() {
printf "%-15s: %s %s\n" "$1" "$2 $3" "$4"
}
cpu_frequency() {
local cur=$(cat /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_cur_freq)
local mhz=$(awk "BEGIN {printf \"%.2f\",$cur/1000}")
print "CPU freq" $mhz "MHz"
}
scaling_govenor() {
local gov=$(cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor)
print "Governor" $gov
}
cpu_count() {
local cpus=$(grep -c processor /proc/cpuinfo)
print "CPU count" $cpus
}
vcore_voltage() {
local uv=$(cat /sys/devices/platform/axp81x_board/axp-regulator.41/regulator/regulator.2/microvolts)
local v=$(awk "BEGIN {printf \"%.2f\",$uv/1000000}")
print "Core voltage" $v "V"
}
soc_temp() {
local temp=$(cat /sys/devices/virtual/thermal/thermal_zone0/temp)
print "SOC Temp" $temp "C"
}
pmic_temp() {
local pmictemp=$(cat /sys/class/axppower/ic_temp 2>/dev/null)
if [ "X$pmictemp" != "X" ]; then
print "PMIC Temp" $pmictemp "C"
fi
}
bat_capacity() {
local bat_capacity=$(cat /sys/class/power_supply/battery/capacity 2>/dev/null)
if [ "X$bat_capacity" != "X" ]; then
print "Battery" $bat_capacity '%'
fi
}
cooling_state() {
local state=$(cat /sys/devices/virtual/thermal/cooling_device0/cur_state)
print "Cooling state" $state
}
cooling_limit() {
local budget=$(ls -1 -d /sys/devices/soc.0/cpu_budget_cool.* |head -n1)
local limit=$(cat $budget/roomage)
print "Cooling limit" $limit
}
gpu_frequency() {
if [ ! -e /sys/devices/$GPU_ADDR/dvfs/manual ]; then
return
fi
local cur=$(cat /sys/devices/$GPU_ADDR/dvfs/manual|awk '{print $1}')
local mhz=$(awk "BEGIN {printf \"%.2f\",$cur}")
print "GPU freq" $mhz MHz
}
gpu_temp() {
if [ ! -e /sys/devices/$GPU_ADDR/dvfs/tempctrl ]; then
return
fi
local temp=$(cat /sys/devices/$GPU_ADDR/dvfs/tempctrl|awk '{print $6}')
print "GPU Temp" $temp "C"
}
gpu_voltage() {
if [ ! -e /sys/devices/$GPU_ADDR/dvfs/voltage ]; then
return
fi
local mv=$(cat /sys/devices/$GPU_ADDR/dvfs/voltage|awk '{print $1}')
local v=$(awk "BEGIN {printf \"%.2f\",$mv/1000}")
print "GPU voltage" $v "V"
}
all() {
cpu_frequency
gpu_frequency
cpu_count
scaling_govenor
vcore_voltage
gpu_voltage
soc_temp
gpu_temp
pmic_temp
cooling_state
cooling_limit
bat_capacity
}
usage() {
echo "Usage: $0 [-w] [-h]"
}
WATCH=""
for i in "$@"; do
case $i in
-w)
WATCH=1
shift
;;
-h|--help)
usage
exit 0
;;
*)
usage
exit 1
;;
esac
done
if [ -n "$WATCH" ]; then
exec watch -n0.5 "$0"
else
all
fi

@ -0,0 +1,19 @@
#!/bin/bash
UENV_PATH="/boot/uEnv.txt"
set -e
if [ "$(id -u)" -ne "0" ]; then
echo "This script requires root."
exit 1
fi
case $1 in
on) sed -i.bak '/debug=/c\debug=on' $UENV_PATH
echo "Debug on headphone port enabled. Please reboot !"
;;
off) sed -i.bak '/debug=/c\debug=off' $UENV_PATH
echo "Debug on headphone port disabled. Please reboot !"
;;
*)
echo "Unknown option! Usage: ./debug_swirch on|off "
esac

@ -0,0 +1,156 @@
#!/bin/bash
set -e
DESKTOP="$1"
if [ -z "$DESKTOP" ]; then
echo "Usage: $0 <mate|i3>"
exit 1
fi
DISTRO=""
if hash apt-get 2>/dev/null; then
DISTRO=debian
fi
if [ -z "$DISTRO" ]; then
echo "This script requires a Debian based Linux distribution."
exit 1
fi
if [ "$(id -u)" -ne "0" ]; then
echo "This script requires root."
exit 1
fi
# Default packages.
PACKAGES=(
xserver-xorg-video-fbturbo
libvdpau-sunxi1
vdpauinfo
)
# Add packages based on desktop selection.
case $DESKTOP in
mate)
PACKAGES+=(
ubuntu-mate-core
ubuntu-mate-desktop
ubuntu-mate-lightdm-theme
ubuntu-mate-wallpapers-xenial
smplayer
mplayer
lightdm
)
;;
i3|i3wm)
PACKAGES+=(
xserver-xorg-input-all
xfonts-base
slim
rxvt-unicode-lite
i3
i3status
i3lock
suckless-tools
network-manager
pulseaudio
)
;;
*)
echo "Error: unsupported desktop environment $DESKTOP"
exit 2
;;
esac
# Install.
apt -y update
apt -y --no-install-recommends install ${PACKAGES[@]}
# Configuration.
mkdir -p /etc/X11/xorg.conf.d
# Make X11 use fbturbo driver.
cat > "/etc/X11/xorg.conf.d/40-pine64-fbturbo.conf" <<EOF
Section "Device"
Identifier "Allwinner A10/A13 FBDEV"
Driver "fbturbo"
Option "fbdev" "/dev/fb0"
Option "SwapbuffersWait" "true"
EndSection
EOF
# Add configuration for Pinebook touchpad so it is usable.
#cat > "/etc/X11/xorg.conf.d/50-pine64-pinebook-touchpad.conf" <<EOF
#Section "InputClass"
# Identifier "HAILUCK CO.,LTD USB KEYBOARD"
# MatchIsPointer "1"
# MatchDevicePath "/dev/input/event*"
#
# Option "AccelerationProfile" "2"
# Option "AdaptiveDeceleration" "1"
# Option "ConstantDeceleration" "2.4" # Pinebook 14"
#Option "ConstantDeceleration" "1.2" # Pinebook 11"
#EndSection
#EOF
# Kill parport module loading, not available on arm64.
if [ -e "/etc/modules-load.d/cups-filters.conf" ]; then
echo "" >/etc/modules-load.d/cups-filters.conf
fi
# Disable Pulseaudio timer scheduling which does not work with sndhdmi driver.
if [ -e "/etc/pulse/default.pa" ]; then
sed -i 's/load-module module-udev-detect$/& tsched=0/g' /etc/pulse/default.pa
fi
# Enable VDPAU_SUNXI globally.
if [ ! -e "/etc/X11/Xsession.d/30pine64-vdpau-sunxi" ]; then
cat > "/etc/X11/Xsession.d/30pine64-vdpau-sunxi" <<EOF
export VDPAU_DRIVER=sunxi
EOF
fi
# Create directory if not present
[ -d /etc/chromium-browser ] || mkdir /etc/chromium-browser
# Set some default parameters for chromium.
if [ ! -e "/etc/chromium-browser/default" ]; then
cat > "/etc/chromium-browser/default" <<EOF
# Default settings for chromium-browser. This file is sourced by /bin/sh from
# /usr/bin/chromium-browser
# Options to pass to chromium-browser
CHROMIUM_FLAGS="\
--disable-smooth-scrolling \
--disable-low-res-tiling \
--enable-low-end-device-mode \
--num-raster-threads=4 \
--profiler-timing=0 \
--disable-composited-antialiasing \
"
EOF
fi
# Desktop dependent post installation.
#case $DESKTOP in
# i3|i3wm)
# if [ ! -d /usr/share/slim/themes/pine64 ]; then
# cp -ra /usr/share/slim/themes/default /usr/share/slim/themes/pine64
# wget -O /usr/share/slim/themes/pine64/background.png \
# https://github.com/longsleep/build-pine64-image/raw/master/bootlogo/bootlogo-pine64-1366x768.png
# sed -i "s/^current_theme(.*)/current_theme pine64/g" /etc/slim.conf
# fi
# ;;
#
# *)
# ;;
#esac
echo
echo "Done - $DESKTOP installed - you should reboot now."

@ -0,0 +1,126 @@
#!/bin/bash
# Init
FILE="/tmp/out.$$"
GREP="/bin/grep"
#....
# Make sure only root can run our script
if [ "$(id -u)" -ne "0" ]; then
echo "This script requires root."
exit 1
fi
#get boot device
BOOT_PARTITION=`df -P / | tail -n 1 | awk '/.*/ { print substr($1,0,12); }'`
EMMC_DEVICE="/dev/"`cat /proc/partitions | awk '{if ($4 ~ "boot") print substr($4,0,7); }' | head -1`
BLOBS_LOCATION="/blobs"
boot0_position=8 # KiB
uboot_position=19096 # KiB
part_position=20480 # KiB
boot_size=50 # MiB
dir="/usr/local/sbin"
tmp_dir="/tmp"
boot0=${dir}/"blobs/boot0_teres.bin"
uboot=${dir}/"blobs/u-boot_emmc.bin"
EMMC_DIALOG_OPTION=$EMMC_DEVICE"(eMMC)"
if [ "$BOOT_DEVICE" == "/dev/mmcblk0" ]; then
echo "You should boot from SD card"
exit 1
fi
function repartition_emmc {
exec 3>&1;
ans=$(dialog --backtitle "Device" \
--radiolist "Select device:" 10 80 4 \
$EMMC_DEVICE $EMMC_DIALOG_OPTION on \
$BOOT_PARTITION $BOOT_PARTITION off \
2>&1 1>&3 )
exec 3>&-;
echo $ans
exitstatus=$?
if [ $exitstatus = 1 ] || [ $exitstatus = 255 ] ; then
echo "Exit"
exit;
fi
umount ${ans}* 2>&1
dd if=/dev/zero bs=1M count=$((part_position/1024)) of="$ans"
echo "Extract u-boot and boot0 drom boot partition"
dd if=$BOOT_PARTITION of=${tmp_dir}/boot0.bin bs=8k skip=1 count=4
dd if=$BOOT_PARTITION of=${tmp_dir}/u-boot.bin bs=8k skip=2387 count=120
dd if=${tmp_dir}/boot0.bin conv=notrunc bs=1k seek=$boot0_position of="$ans"
dd if=${tmp_dir}/u-boot.bin conv=notrunc bs=1k seek=$uboot_position of="$ans"
rm ${tmp_dir}/boot0.bin ${tmp_dir}/u-boot.bin
cat <<EOF | fdisk "$ans"
o
n
p
1
40960
+50M
t
c
n
p
2
143360
t
2
83
w
EOF
mkfs.vfat -n BOOT ${ans}p1 2>&1
mkfs.ext4 -q -F -b 4096 -E stride=2,stripe-width=1024 -L rootfs ${ans}p2 2>&1
sync
}
function copy_files() {
umount ${ans}*
mount ${ans}p1 /mnt
rsync -aAXv --info=progress2 --no-relative /boot/* /mnt
umount /mnt/
mount ${ans}p2 /mnt
rsync -aAXv --info=progress2 --exclude={"/dev/*","/proc/*","/sys/*","/tmp/*","/run/*","/mnt/*","/media/*","/lost+found"} / /mnt \
cat > /mnt/etc/fstab <<EOF
# <file system> <dir> <type> <options> <dump> <pass>
/dev/mmcblk0p1 /boot vfat defaults 0 2
/dev/mmcblk0p2 / ext4 defaults,noatime 0 1
EOF
sync
}
dialog --title "Confirmation" \
--backtitle "eMMC Installer" \
--yesno "This script will reformat yuor internal eMMC Device. Are you sure ?" 7 60
response=$?
case "$response" in
0) repartition_emmc
copy_files
;;
1) echo "Exit"
exit
;;
255) echo "Esc detected"
exit
;;
*) echo "exit"
;;
esac
# ...

@ -0,0 +1,27 @@
#!/bin/sh
set -e
if [ ! -w /dev/cedar_dev ]; then
# chmod 666 /dev/cedar_dev
echo "Error: /dev/cedar_dev missing or no access"
exit 1
fi
if [ ! -w /dev/ion ]; then
# chmod 666 /dev/ion
echo "Error: /dev/ion missing or no access"
exit 1
fi
if [ ! -w /dev/disp ]; then
# chmod 666 /dev/disp
echo "Error: /dev/disp missing or no access"
exit 1
fi
if [ -z "VDPAU_DRIVER" ]; then
export VDPAU_DRIVER=sunxi
fi
exec mplayer -vo vdpau -vc ffmpeg12vdpau,ffh264vdpau,ffhevcvdpau, "$@"

@ -0,0 +1,39 @@
#!/bin/sh
set -e
if [ "$(id -u)" -ne "0" ]; then
echo "This script requires root."
exit 1
fi
set -x
DEVICE="/dev/mmcblk0"
PART="2"
resize() {
start=$(fdisk -l ${DEVICE}|grep ${DEVICE}p${PART}|awk '{print $2}')
echo $start
set +e
fdisk ${DEVICE} <<EOF
p
d
2
n
p
2
$start
w
EOF
set -e
partx -u ${DEVICE}
resize2fs ${DEVICE}p${PART}
}
resize
echo "Done!"

@ -0,0 +1,126 @@
# A64-OLinuXino Build Instructions
## Linux
### 1. Getting source code and helper scripts
```bash
mkdir a64-olinuxino
cd a64-olinuxino
git clone https://github.com/A64-TERES/linux-a64
git clone https://github.com/A64-TERES/u-boot_new
git clone https://github.com/hehopmajieh/arm-trusted-firmware-a64
git clone https://github.com/A64-TERES/blobs
git clone https://github.com/A64-TERES/sunxi-pack-tools sunxi-pack-tools -b pinebook
git clone https://github.com/A64-TERES/scripts
```
### 2. Setup toolchain
```bash
sudo apt install gcc-aarch64-linux-gnu
sudo apt install gcc-4.7-arm-linux-gnueabihf
sudo apt install kpartx bsdtar mtools
```
### 3. Cross-compile sources
#### Linux
```bash
cd linux-a64
make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- olimex_teres1_defconfig
make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- LOCALVERSION= clean
make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- -j4 LOCALVERSION= Image
make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- -j4 LOCALVERSION= modules
make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- -j4 LOCALVERSION= modules_install INSTALL_MOD_PATH=out INSTALL_MOD_STRIP=1
```
#### ATF
```bash
cd ../arm-trusted-firmware-a64/
make clean
make ARCH=arm CROSS_COMPILE=aarch64-linux-gnu- PLAT=sun50iw1p1 bl31
```
#### Allwinner Pack Tools
```bash
cd ../
make -C sunxi-pack-tools
```
#### U-Boot
```bash
cd scripts/
./build_uboot.sh #A64-Teres
```
or
```bash
./build_uboot_a64.sh #A64-OLinuXino
```
### 4. Helper Scripts
## Ramdisk
Either make one with the steps below or download one from some other place.
Make sure the initrd is for aarch64.
### Get Busybox tree
```bash
cd ../
git clone --depth 1 --branch 1_24_stable --single-branch git://git.busybox.net/busybox busybox
```
### Configure and build Busybox
Build a static busybox for aarch64. Start by copying the `blobs/a64_config_busybox`
file to `.config` of your Busybox folder.
```bash
cp blobs/a64_config_busybox busybox/.config
cd busybox
make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- -j4 oldconfig
make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- -j4
```
### Make initrd.gz
Use the provided `make_initrd.sh` script to create a simple initrd based on
the busybox binary compiled earlier.
```bash
cd ../scripts
./make_initrd.sh
```
### Create bootable image
Create kernel tarball :
```bash
./make_kernel_tarball.sh . ../linux-a64 #This will produce file named linux-a64-xx.yy.zz.tar.xz
```
Create simple image structure :
```bash
sudo ./make_simpleimage.sh teres.img 1000 ./linux-a64-3.10.104-1.tar.xz
sudo xz teres.img
```
Build bootable image :
```bash
sudo ./build_image.sh teres.img.xz ./linux-a64-3.10.104-1.tar.xz xenial
```
if everything is successfully acomplished this command will create file named :
xenial-teres-bspkernel-<date>.img
use dd to write this image to Sd Card :
```bash
dd if=xenial-teres-bspkernel-<date>.img of=/dev/sdX bs=1M
```
After first boot you will able to login with :
user: olimex
pass: olimex
Connection to internet can be enabled using nmtui tool:
```bash
nmtui
```
Feel free to install everything you want, for ex. Graphical desktop :
```bash
./install_desktop.sh mate #will install mate
```

@ -0,0 +1,10 @@
[Unit]
Description=Restart NetworkManager after resume
After=suspend.target
ConditionFileIsExecutable=/usr/sbin/NetworkManager
[Service]
ExecStart=/bin/systemctl --no-block restart NetworkManager.service
[Install]
WantedBy=suspend.target

@ -0,0 +1,14 @@
[Unit]
Description=Restore sound after resume
After=suspend.target
After=tmp.mount
ConditionPathExists=/tmp/.before-suspend-asound.state
ConditionFileIsExecutable=/usr/sbin/alsactl
[Service]
Type=oneshot
ExecStart=/usr/sbin/alsactl -f /tmp/.before-suspend-asound.state restore
ExecStart=/bin/rm -f /tmp/.before-suspend-asound.state
[Install]
WantedBy=suspend.target

@ -0,0 +1,21 @@
[Unit]
Description=Generate SSH keys if not there
Before=ssh.service
ConditionPathExists=|!/etc/ssh/ssh_host_key
ConditionPathExists=|!/etc/ssh/ssh_host_key.pub
ConditionPathExists=|!/etc/ssh/ssh_host_rsa_key
ConditionPathExists=|!/etc/ssh/ssh_host_rsa_key.pub
ConditionPathExists=|!/etc/ssh/ssh_host_dsa_key
ConditionPathExists=|!/etc/ssh/ssh_host_dsa_key.pub
ConditionPathExists=|!/etc/ssh/ssh_host_ecdsa_key
ConditionPathExists=|!/etc/ssh/ssh_host_ecdsa_key.pub
ConditionPathExists=|!/etc/ssh/ssh_host_ed25519_key
ConditionPathExists=|!/etc/ssh/ssh_host_ed25519_key.pub
[Service]
ExecStart=/usr/bin/ssh-keygen -A
Type=oneshot
RemainAfterExit=yes
[Install]
WantedBy=ssh.service

@ -0,0 +1,11 @@
[Unit]
Description=Store sound on suspend
ConditionFileIsExecutable=/usr/sbin/alsactl
[Service]
Type=oneshot
UMask=0077
ExecStart=/usr/sbin/alsactl -f /tmp/.before-suspend-asound.state store
[Install]
WantedBy=sleep.target