diff --git a/usbboot/Makefile b/usbboot/Makefile deleted file mode 100755 index 3e7d1e4e0..000000000 --- a/usbboot/Makefile +++ /dev/null @@ -1,21 +0,0 @@ -rpiboot: main.c - $(CC) -g -o $@ $< -lusb-1.0 - -install: rpiboot - cp rpiboot /usr/bin - mkdir -p /usr/share/rpiboot - cp usbbootcode.bin /usr/share/rpiboot - cp msd.elf /usr/share/rpiboot - cp buildroot.elf /usr/share/rpiboot - -uninstall: - rm -f /usr/bin/rpiboot - rm -f /usr/share/rpiboot/usbbootcode.bin - rm -f /usr/share/rpiboot/msd.elf - rm -f /usr/share/rpiboot/buildroot.elf - rmdir --ignore-fail-on-non-empty /usr/share/rpiboot/ - -clean: - rm rpiboot - -.PHONY: install uninstall clean diff --git a/usbboot/Readme.md b/usbboot/Readme.md index 7f7e69206..20723f145 100644 --- a/usbboot/Readme.md +++ b/usbboot/Readme.md @@ -1,57 +1,6 @@ # USB boot code -This is the USB MSD boot code which should work on the Raspberry Pi model A and the Compute Module. +Please note, this code has now moved to -The BCM2835 device has a number of different modes for booting, the most obvious one is the SD card -which looks for a file called bootcode.bin on the first FAT partition of the SD card to boot from. +https://github.com/raspberrypi/usbboot.git -The second method it can use is USB, the BCM2835 becomes a USB device which a standard PC (a Windows -or Linux PC or even a Raspberry Pi) will enumerate. The usbbootcode.bin is then squirted down the USB -to the BCM2835. - -This is then executing the second stage boot process that normally looks for a file called config.txt -and start.elf on the SD card and loads start.elf (or whatever version of start you require depending -on the settings in config.txt). - -With usbbootcode.bin it re-enumerates as a device (but this time with a serial number of 1 to distinguish -the second stage from the primary boot) and waits for a message packet from the host. After -The message packet it receives the data (the length is in the message packet), and it then checks the -length of the downloaded information (should be an .elf file either msd.elf or buildroot.elf), if the -length is greater than the size of the elf file, it assumes the rest of the data is a FAT16 image of a -filesystem as created using the Raspberry Pi buildroot target raspberrypi_defconfig - -## Building - -Clone this on your Pi or an Ubuntu linux machine - -``` -$ git clone --depth=1 https://github.com/raspberrypi/tools -$ cd tools/usbboot -$ sudo apt-get install libusb-1.0-0-dev -$ make -$ sudo make install -$ sudo rpiboot -``` - -Checkout the upstream buildroot from git - -``` -git clone git://git.buildroot.net/buildroot -``` - -Patch with Pi patches (requires raspberrypi/tools from above) - -``` -cd buildroot -patch -p1 < ../tools/usbboot/buildroot.patch -make raspberrypi_defconfig -make -``` - -Note: you'll need superuser password to finish the build and create the image - -Running - -``` -sudo rpiboot -b buildroot/output/images/fatimage -``` diff --git a/usbboot/buildroot.elf b/usbboot/buildroot.elf deleted file mode 100755 index 3e047ed96..000000000 Binary files a/usbboot/buildroot.elf and /dev/null differ diff --git a/usbboot/buildroot.patch b/usbboot/buildroot.patch deleted file mode 100644 index 1fbb367bc..000000000 --- a/usbboot/buildroot.patch +++ /dev/null @@ -1,1285 +0,0 @@ -diff -Nur '--exclude=.git' '--exclude=output' '--exclude=dl' buildroot_clean/board/raspberrypi/usb_test/busybox.config buildroot/board/raspberrypi/usb_test/busybox.config ---- buildroot_clean/board/raspberrypi/usb_test/busybox.config 1970-01-01 01:00:00.000000000 +0100 -+++ buildroot/board/raspberrypi/usb_test/busybox.config 2014-10-28 12:02:45.137361450 +0000 -@@ -0,0 +1,1026 @@ -+# -+# Automatically generated make config: don't edit -+# Busybox version: 1.22.1 -+# Fri Sep 19 20:20:25 2014 -+# -+CONFIG_HAVE_DOT_CONFIG=y -+ -+# -+# Busybox Settings -+# -+ -+# -+# General Configuration -+# -+# CONFIG_DESKTOP is not set -+# 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 is not set -+# CONFIG_FEATURE_COMPRESS_USAGE is not set -+CONFIG_FEATURE_INSTALLER=y -+# CONFIG_INSTALL_NO_USR is not set -+# CONFIG_LOCALE_SUPPORT is not set -+# CONFIG_UNICODE_SUPPORT is not set -+# CONFIG_UNICODE_USING_LOCALE is not set -+# CONFIG_FEATURE_CHECK_UNICODE_IN_ENV is not set -+CONFIG_SUBST_WCHAR=0 -+CONFIG_LAST_SUPPORTED_WCHAR=0 -+# 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_LONG_OPTS=y -+CONFIG_FEATURE_DEVPTS=y -+CONFIG_FEATURE_CLEAN_UP=y -+CONFIG_FEATURE_UTMP=y -+CONFIG_FEATURE_WTMP=y -+# CONFIG_FEATURE_PIDFILE is not set -+CONFIG_PID_FILE_PATH="" -+CONFIG_FEATURE_SUID=y -+# CONFIG_FEATURE_SUID_CONFIG is not set -+# CONFIG_FEATURE_SUID_CONFIG_QUIET is not set -+# 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 is not set -+ -+# -+# Build Options -+# -+# CONFIG_STATIC is not set -+# 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_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 is not set -+CONFIG_FEATURE_RTMINMAX=y -+CONFIG_PASSWORD_MINLEN=6 -+CONFIG_MD5_SMALL=1 -+CONFIG_SHA3_SMALL=1 -+# CONFIG_FEATURE_FAST_TOP is not set -+# 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=y -+CONFIG_FEATURE_EDITING_HISTORY=999 -+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=y -+CONFIG_IOCTL_HEX2STR_ERROR=y -+CONFIG_FEATURE_HWIB=y -+ -+# -+# Applets -+# -+ -+# -+# Archival Utilities -+# -+# CONFIG_FEATURE_SEAMLESS_XZ is not set -+# CONFIG_FEATURE_SEAMLESS_LZMA is not set -+# CONFIG_FEATURE_SEAMLESS_BZ2 is not set -+# CONFIG_FEATURE_SEAMLESS_GZ is not set -+# 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 is not set -+# CONFIG_UNLZMA is not set -+# CONFIG_FEATURE_LZMA_FAST is not set -+# CONFIG_LZMA is not set -+CONFIG_UNXZ=y -+CONFIG_XZ=y -+# CONFIG_BZIP2 is not set -+# CONFIG_CPIO is not set -+# CONFIG_FEATURE_CPIO_O is not set -+# CONFIG_FEATURE_CPIO_P is not set -+# CONFIG_DPKG is not set -+# CONFIG_DPKG_DEB is not set -+# CONFIG_FEATURE_DPKG_DEB_EXTRACT_ONLY is not set -+# CONFIG_GZIP is not set -+# CONFIG_FEATURE_GZIP_LONG_OPTIONS is not set -+CONFIG_GZIP_FAST=0 -+# CONFIG_LZOP is not set -+# CONFIG_LZOP_COMPR_HIGH is not set -+# CONFIG_RPM is not set -+# CONFIG_RPM2CPIO is not set -+CONFIG_TAR=y -+CONFIG_FEATURE_TAR_CREATE=y -+# CONFIG_FEATURE_TAR_AUTODETECT is not set -+CONFIG_FEATURE_TAR_FROM=y -+# CONFIG_FEATURE_TAR_OLDGNU_COMPATIBILITY is not set -+# CONFIG_FEATURE_TAR_OLDSUN_COMPATIBILITY is not set -+CONFIG_FEATURE_TAR_GNU_EXTENSIONS=y -+CONFIG_FEATURE_TAR_LONG_OPTIONS=y -+CONFIG_FEATURE_TAR_TO_COMMAND=y -+# CONFIG_FEATURE_TAR_UNAME_GNAME is not set -+# CONFIG_FEATURE_TAR_NOPRESERVE_TIME is not set -+# CONFIG_FEATURE_TAR_SELINUX is not set -+CONFIG_UNZIP=y -+ -+# -+# Coreutils -+# -+# CONFIG_BASENAME is not set -+CONFIG_CAT=y -+CONFIG_DATE=y -+CONFIG_FEATURE_DATE_ISOFMT=y -+# CONFIG_FEATURE_DATE_NANO is not set -+CONFIG_FEATURE_DATE_COMPAT=y -+# CONFIG_HOSTID is not set -+# CONFIG_ID is not set -+# CONFIG_GROUPS is not set -+CONFIG_TEST=y -+CONFIG_FEATURE_TEST_64=y -+CONFIG_TOUCH=y -+# CONFIG_FEATURE_TOUCH_NODEREF is not set -+CONFIG_FEATURE_TOUCH_SUSV3=y -+# CONFIG_TR is not set -+# CONFIG_FEATURE_TR_CLASSES is not set -+# CONFIG_FEATURE_TR_EQUIV is not set -+# CONFIG_BASE64 is not set -+# CONFIG_WHO is not set -+# CONFIG_USERS is not set -+# CONFIG_CAL is not set -+# CONFIG_CATV is not set -+# CONFIG_CHGRP is not set -+# CONFIG_CHMOD is not set -+# CONFIG_CHOWN is not set -+# CONFIG_FEATURE_CHOWN_LONG_OPTIONS is not set -+# CONFIG_CHROOT is not set -+# CONFIG_CKSUM is not set -+# CONFIG_COMM is not set -+CONFIG_CP=y -+# CONFIG_FEATURE_CP_LONG_OPTIONS is not set -+# CONFIG_CUT is not set -+CONFIG_DD=y -+CONFIG_FEATURE_DD_SIGNAL_HANDLING=y -+# CONFIG_FEATURE_DD_THIRD_STATUS_LINE is not set -+CONFIG_FEATURE_DD_IBS_OBS=y -+# CONFIG_DF is not set -+# CONFIG_FEATURE_DF_FANCY is not set -+# CONFIG_DIRNAME is not set -+# CONFIG_DOS2UNIX is not set -+# CONFIG_UNIX2DOS is not set -+# CONFIG_DU is not set -+# CONFIG_FEATURE_DU_DEFAULT_BLOCKSIZE_1K is not set -+CONFIG_ECHO=y -+CONFIG_FEATURE_FANCY_ECHO=y -+# CONFIG_ENV is not set -+# CONFIG_FEATURE_ENV_LONG_OPTIONS is not set -+# CONFIG_EXPAND is not set -+# CONFIG_FEATURE_EXPAND_LONG_OPTIONS is not set -+CONFIG_EXPR=y -+CONFIG_EXPR_MATH_SUPPORT_64=y -+CONFIG_FALSE=y -+# CONFIG_FOLD is not set -+# CONFIG_FSYNC is not set -+# CONFIG_HEAD is not set -+# CONFIG_FEATURE_FANCY_HEAD is not set -+CONFIG_INSTALL=y -+CONFIG_FEATURE_INSTALL_LONG_OPTIONS=y -+CONFIG_LN=y -+# CONFIG_LOGNAME is not set -+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 is not set -+CONFIG_MKNOD=y -+CONFIG_MV=y -+CONFIG_FEATURE_MV_LONG_OPTIONS=y -+# CONFIG_NICE is not set -+# CONFIG_NOHUP is not set -+# CONFIG_OD is not set -+# CONFIG_PRINTENV is not set -+# CONFIG_PRINTF is not set -+# CONFIG_PWD is not set -+# CONFIG_READLINK is not set -+# CONFIG_FEATURE_READLINK_FOLLOW is not set -+# CONFIG_REALPATH is not set -+CONFIG_RM=y -+CONFIG_RMDIR=y -+# CONFIG_FEATURE_RMDIR_LONG_OPTIONS is not set -+# CONFIG_SEQ is not set -+# CONFIG_SHA1SUM is not set -+# CONFIG_SHA256SUM is not set -+# CONFIG_SHA512SUM is not set -+# CONFIG_SHA3SUM is not set -+CONFIG_SLEEP=y -+# CONFIG_FEATURE_FANCY_SLEEP is not set -+# CONFIG_FEATURE_FLOAT_SLEEP is not set -+# CONFIG_SORT is not set -+# CONFIG_FEATURE_SORT_BIG is not set -+# CONFIG_SPLIT is not set -+# CONFIG_FEATURE_SPLIT_FANCY is not set -+# CONFIG_STAT is not set -+# CONFIG_FEATURE_STAT_FORMAT is not set -+# CONFIG_STTY is not set -+# CONFIG_SUM is not set -+CONFIG_SYNC=y -+# CONFIG_TAC is not set -+# CONFIG_TAIL is not set -+# CONFIG_FEATURE_FANCY_TAIL is not set -+# CONFIG_TEE is not set -+# CONFIG_FEATURE_TEE_USE_BLOCK_IO is not set -+CONFIG_TRUE=y -+# CONFIG_TTY is not set -+CONFIG_UNAME=y -+# CONFIG_UNEXPAND is not set -+# CONFIG_FEATURE_UNEXPAND_LONG_OPTIONS is not set -+# CONFIG_UNIQ is not set -+# CONFIG_USLEEP is not set -+# CONFIG_UUDECODE is not set -+# CONFIG_UUENCODE is not set -+# CONFIG_WC is not set -+# CONFIG_FEATURE_WC_LARGE is not set -+# CONFIG_WHOAMI is not set -+# CONFIG_YES is not set -+ -+# -+# 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 is not set -+# CONFIG_FGCONSOLE is not set -+# CONFIG_CLEAR is not set -+# CONFIG_DEALLOCVT is not set -+# CONFIG_DUMPKMAP is not set -+# CONFIG_KBD_MODE is not set -+# CONFIG_LOADFONT is not set -+# CONFIG_LOADKMAP is not set -+# CONFIG_OPENVT is not set -+CONFIG_RESET=y -+# CONFIG_RESIZE is not set -+# CONFIG_FEATURE_RESIZE_PRINT is not set -+# CONFIG_SETCONSOLE is not set -+# CONFIG_FEATURE_SETCONSOLE_LONG_OPTIONS is not set -+# CONFIG_SETFONT is not set -+# CONFIG_FEATURE_SETFONT_TEXTUAL_MAP is not set -+CONFIG_DEFAULT_SETFONT_DIR="" -+# CONFIG_SETKEYCODES is not set -+# CONFIG_SETLOGCONS is not set -+# CONFIG_SHOWKEY is not set -+# CONFIG_FEATURE_LOADFONT_PSF2 is not set -+# CONFIG_FEATURE_LOADFONT_RAW is not set -+ -+# -+# 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 is not set -+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 is not set -+# CONFIG_FEATURE_AWK_LIBM is not set -+# CONFIG_FEATURE_AWK_GNU_EXTENSIONS is not set -+# CONFIG_CMP is not set -+CONFIG_DIFF=y -+# CONFIG_FEATURE_DIFF_LONG_OPTIONS is not set -+CONFIG_FEATURE_DIFF_DIR=y -+# CONFIG_ED is not set -+# CONFIG_PATCH is not set -+# CONFIG_SED is not set -+CONFIG_VI=y -+CONFIG_FEATURE_VI_MAX_LEN=4096 -+CONFIG_FEATURE_VI_8BIT=y -+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_ALLOW_EXEC=y -+ -+# -+# Finding Utilities -+# -+# CONFIG_FIND is not set -+# CONFIG_FEATURE_FIND_PRINT0 is not set -+# CONFIG_FEATURE_FIND_MTIME is not set -+# CONFIG_FEATURE_FIND_MMIN is not set -+# CONFIG_FEATURE_FIND_PERM is not set -+# CONFIG_FEATURE_FIND_TYPE is not set -+# CONFIG_FEATURE_FIND_XDEV is not set -+# CONFIG_FEATURE_FIND_MAXDEPTH is not set -+# CONFIG_FEATURE_FIND_NEWER is not set -+# CONFIG_FEATURE_FIND_INUM is not set -+# CONFIG_FEATURE_FIND_EXEC is not set -+# CONFIG_FEATURE_FIND_USER is not set -+# CONFIG_FEATURE_FIND_GROUP is not set -+# CONFIG_FEATURE_FIND_NOT is not set -+# CONFIG_FEATURE_FIND_DEPTH is not set -+# CONFIG_FEATURE_FIND_PAREN is not set -+# CONFIG_FEATURE_FIND_SIZE is not set -+# CONFIG_FEATURE_FIND_PRUNE is not set -+# CONFIG_FEATURE_FIND_DELETE is not set -+# CONFIG_FEATURE_FIND_PATH is not set -+# CONFIG_FEATURE_FIND_REGEX is not set -+# CONFIG_FEATURE_FIND_CONTEXT is not set -+# CONFIG_FEATURE_FIND_LINKS is not set -+CONFIG_GREP=y -+CONFIG_FEATURE_GREP_EGREP_ALIAS=y -+CONFIG_FEATURE_GREP_FGREP_ALIAS=y -+CONFIG_FEATURE_GREP_CONTEXT=y -+# CONFIG_XARGS is not set -+# CONFIG_FEATURE_XARGS_SUPPORT_CONFIRMATION is not set -+# CONFIG_FEATURE_XARGS_SUPPORT_QUOTES is not set -+# CONFIG_FEATURE_XARGS_SUPPORT_TERMOPT is not set -+# CONFIG_FEATURE_XARGS_SUPPORT_ZERO_TERM is not set -+ -+# -+# Init Utilities -+# -+# CONFIG_BOOTCHARTD is not set -+# CONFIG_FEATURE_BOOTCHARTD_BLOATED_HEADER is not set -+# CONFIG_FEATURE_BOOTCHARTD_CONFIG_FILE is not set -+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=y -+CONFIG_FEATURE_KILL_DELAY=0 -+CONFIG_FEATURE_INIT_SCTTY=y -+CONFIG_FEATURE_INIT_SYSLOG=y -+CONFIG_FEATURE_EXTRA_QUIET=y -+# CONFIG_FEATURE_INIT_COREDUMPS is not set -+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 is not set -+# CONFIG_REMOVE_SHELL is not set -+CONFIG_FEATURE_SHADOWPASSWDS=y -+# CONFIG_USE_BB_PWD_GRP is not set -+# CONFIG_USE_BB_SHADOW is not set -+CONFIG_USE_BB_CRYPT=y -+# CONFIG_USE_BB_CRYPT_SHA is not set -+# CONFIG_ADDUSER is not set -+# CONFIG_FEATURE_ADDUSER_LONG_OPTIONS is not set -+# CONFIG_FEATURE_CHECK_NAMES is not set -+CONFIG_FIRST_SYSTEM_ID=0 -+CONFIG_LAST_SYSTEM_ID=0 -+# CONFIG_ADDGROUP is not set -+# CONFIG_FEATURE_ADDGROUP_LONG_OPTIONS is not set -+# CONFIG_FEATURE_ADDUSER_TO_GROUP is not set -+# CONFIG_DELUSER is not set -+# CONFIG_DELGROUP is not set -+# CONFIG_FEATURE_DEL_USER_FROM_GROUP is not set -+CONFIG_GETTY=y -+CONFIG_LOGIN=y -+# CONFIG_LOGIN_SESSION_AS_CHILD is not set -+# CONFIG_PAM is not set -+# CONFIG_LOGIN_SCRIPTS is not set -+CONFIG_FEATURE_NOLOGIN=y -+CONFIG_FEATURE_SECURETTY=y -+CONFIG_PASSWD=y -+CONFIG_FEATURE_PASSWD_WEAK_CHECK=y -+# CONFIG_CRYPTPW is not set -+# CONFIG_CHPASSWD is not set -+CONFIG_FEATURE_DEFAULT_PASSWD_ALGO="des" -+# CONFIG_SU is not set -+# CONFIG_FEATURE_SU_SYSLOG is not set -+# CONFIG_FEATURE_SU_CHECKS_SHELLS is not set -+# CONFIG_SULOGIN is not set -+# CONFIG_VLOCK is not set -+ -+# -+# Linux Ext2 FS Progs -+# -+CONFIG_CHATTR=y -+CONFIG_FSCK=y -+CONFIG_LSATTR=y -+# CONFIG_TUNE2FS is not set -+ -+# -+# Linux Module Utilities -+# -+# CONFIG_MODINFO is not set -+# CONFIG_MODPROBE_SMALL is not set -+# CONFIG_FEATURE_MODPROBE_SMALL_OPTIONS_ON_CMDLINE is not set -+# CONFIG_FEATURE_MODPROBE_SMALL_CHECK_ALREADY_LOADED is not set -+CONFIG_INSMOD=y -+CONFIG_RMMOD=y -+CONFIG_LSMOD=y -+CONFIG_FEATURE_LSMOD_PRETTY_2_6_OUTPUT=y -+CONFIG_MODPROBE=y -+# 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=y -+CONFIG_FEATURE_MODUTILS_ALIAS=y -+CONFIG_FEATURE_MODUTILS_SYMBOLS=y -+CONFIG_DEFAULT_MODULES_DIR="/lib/modules" -+CONFIG_DEFAULT_DEPMOD_FILE="modules.dep" -+ -+# -+# Linux System Utilities -+# -+# CONFIG_BLOCKDEV is not set -+# CONFIG_FSTRIM is not set -+CONFIG_MDEV=y -+CONFIG_FEATURE_MDEV_CONF=y -+CONFIG_FEATURE_MDEV_RENAME=y -+# CONFIG_FEATURE_MDEV_RENAME_REGEXP is not set -+CONFIG_FEATURE_MDEV_EXEC=y -+# CONFIG_FEATURE_MDEV_LOAD_FIRMWARE is not set -+# CONFIG_REV is not set -+# CONFIG_ACPID is not set -+# CONFIG_FEATURE_ACPID_COMPAT is not set -+CONFIG_BLKID=y -+# CONFIG_FEATURE_BLKID_TYPE is not set -+CONFIG_DMESG=y -+CONFIG_FEATURE_DMESG_PRETTY=y -+# CONFIG_FBSET is not set -+# CONFIG_FEATURE_FBSET_FANCY is not set -+# CONFIG_FEATURE_FBSET_READMODE is not set -+# CONFIG_FDFLUSH is not set -+# CONFIG_FDFORMAT is not set -+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=y -+CONFIG_FEATURE_FDISK_ADVANCED=y -+# CONFIG_FINDFS is not set -+# CONFIG_FLOCK is not set -+CONFIG_FREERAMDISK=y -+# CONFIG_FSCK_MINIX is not set -+# CONFIG_MKFS_EXT2 is not set -+# CONFIG_MKFS_MINIX is not set -+# CONFIG_FEATURE_MINIX2 is not set -+# CONFIG_MKFS_REISER is not set -+# CONFIG_MKFS_VFAT is not set -+CONFIG_GETOPT=y -+CONFIG_FEATURE_GETOPT_LONG=y -+CONFIG_HEXDUMP=y -+# CONFIG_FEATURE_HEXDUMP_REVERSE is not set -+# CONFIG_HD is not set -+CONFIG_HWCLOCK=y -+CONFIG_FEATURE_HWCLOCK_LONG_OPTIONS=y -+CONFIG_FEATURE_HWCLOCK_ADJTIME_FHS=y -+# CONFIG_IPCRM is not set -+# CONFIG_IPCS is not set -+CONFIG_LOSETUP=y -+# CONFIG_LSPCI is not set -+CONFIG_LSUSB=y -+# CONFIG_MKSWAP is not set -+# CONFIG_FEATURE_MKSWAP_UUID is not set -+CONFIG_MORE=y -+CONFIG_MOUNT=y -+# CONFIG_FEATURE_MOUNT_FAKE is not set -+# CONFIG_FEATURE_MOUNT_VERBOSE is not set -+# CONFIG_FEATURE_MOUNT_HELPERS is not set -+# CONFIG_FEATURE_MOUNT_LABEL is not set -+# CONFIG_FEATURE_MOUNT_NFS is not set -+CONFIG_FEATURE_MOUNT_CIFS=y -+CONFIG_FEATURE_MOUNT_FLAGS=y -+CONFIG_FEATURE_MOUNT_FSTAB=y -+# CONFIG_PIVOT_ROOT is not set -+# CONFIG_RDATE is not set -+# CONFIG_RDEV is not set -+# CONFIG_READPROFILE is not set -+# CONFIG_RTCWAKE is not set -+# CONFIG_SCRIPT is not set -+# CONFIG_SCRIPTREPLAY is not set -+# CONFIG_SETARCH is not set -+# CONFIG_SWAPONOFF is not set -+# CONFIG_FEATURE_SWAPON_PRI is not set -+# CONFIG_SWITCH_ROOT is not set -+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 is not set -+# CONFIG_FEATURE_VOLUMEID_CRAMFS is not set -+CONFIG_FEATURE_VOLUMEID_EXFAT=y -+CONFIG_FEATURE_VOLUMEID_EXT=y -+CONFIG_FEATURE_VOLUMEID_F2FS=y -+CONFIG_FEATURE_VOLUMEID_FAT=y -+# CONFIG_FEATURE_VOLUMEID_HFS is not set -+# CONFIG_FEATURE_VOLUMEID_ISO9660 is not set -+# CONFIG_FEATURE_VOLUMEID_JFS is not set -+# CONFIG_FEATURE_VOLUMEID_LINUXRAID is not set -+# CONFIG_FEATURE_VOLUMEID_LINUXSWAP is not set -+# CONFIG_FEATURE_VOLUMEID_LUKS is not set -+# CONFIG_FEATURE_VOLUMEID_NILFS is not set -+# CONFIG_FEATURE_VOLUMEID_NTFS is not set -+# CONFIG_FEATURE_VOLUMEID_OCFS2 is not set -+# CONFIG_FEATURE_VOLUMEID_REISERFS is not set -+# CONFIG_FEATURE_VOLUMEID_ROMFS is not set -+# CONFIG_FEATURE_VOLUMEID_SQUASHFS is not set -+# CONFIG_FEATURE_VOLUMEID_SYSV is not set -+# CONFIG_FEATURE_VOLUMEID_UDF is not set -+# CONFIG_FEATURE_VOLUMEID_XFS is not set -+ -+# -+# Miscellaneous Utilities -+# -+# CONFIG_CONSPY is not set -+CONFIG_LESS=y -+CONFIG_FEATURE_LESS_MAXLINES=9999999 -+CONFIG_FEATURE_LESS_BRACKETS=y -+CONFIG_FEATURE_LESS_FLAGS=y -+# CONFIG_FEATURE_LESS_MARKS is not set -+CONFIG_FEATURE_LESS_REGEXP=y -+# CONFIG_FEATURE_LESS_WINCH is not set -+# CONFIG_FEATURE_LESS_ASK_TERMINAL is not set -+# CONFIG_FEATURE_LESS_DASHCMD is not set -+# CONFIG_FEATURE_LESS_LINENUMS is not set -+# CONFIG_NANDWRITE is not set -+# CONFIG_NANDDUMP is not set -+# CONFIG_RFKILL is not set -+# CONFIG_SETSERIAL is not set -+# CONFIG_UBIATTACH is not set -+# CONFIG_UBIDETACH is not set -+# CONFIG_UBIMKVOL is not set -+# CONFIG_UBIRMVOL is not set -+# CONFIG_UBIRSVOL is not set -+# CONFIG_UBIUPDATEVOL is not set -+# CONFIG_WALL is not set -+# CONFIG_ADJTIMEX is not set -+# CONFIG_BBCONFIG is not set -+# CONFIG_FEATURE_COMPRESS_BBCONFIG is not set -+# CONFIG_BEEP is not set -+CONFIG_FEATURE_BEEP_FREQ=0 -+CONFIG_FEATURE_BEEP_LENGTH_MS=0 -+# CONFIG_CHAT is not set -+# CONFIG_FEATURE_CHAT_NOFAIL is not set -+# CONFIG_FEATURE_CHAT_TTY_HIFI is not set -+# CONFIG_FEATURE_CHAT_IMPLICIT_CR is not set -+# CONFIG_FEATURE_CHAT_SWALLOW_OPTS is not set -+# CONFIG_FEATURE_CHAT_SEND_ESCAPES is not set -+# CONFIG_FEATURE_CHAT_VAR_ABORT_LEN is not set -+# CONFIG_FEATURE_CHAT_CLR_ABORT is not set -+# CONFIG_CHRT is not set -+# CONFIG_CROND is not set -+# CONFIG_FEATURE_CROND_D is not set -+# CONFIG_FEATURE_CROND_CALL_SENDMAIL is not set -+CONFIG_FEATURE_CROND_DIR="" -+# CONFIG_CRONTAB is not set -+# CONFIG_DC is not set -+# CONFIG_FEATURE_DC_LIBM is not set -+# 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 is not set -+# CONFIG_FEATURE_EJECT_SCSI is not set -+# CONFIG_FBSPLASH is not set -+# 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 is not set -+# CONFIG_INOTIFYD is not set -+# CONFIG_LAST is not set -+# CONFIG_FEATURE_LAST_SMALL is not set -+# CONFIG_FEATURE_LAST_FANCY is not set -+CONFIG_HDPARM=y -+CONFIG_FEATURE_HDPARM_GET_IDENTITY=y -+# CONFIG_FEATURE_HDPARM_HDIO_SCAN_HWIF is not set -+# CONFIG_FEATURE_HDPARM_HDIO_UNREGISTER_HWIF is not set -+# CONFIG_FEATURE_HDPARM_HDIO_DRIVE_RESET is not set -+# CONFIG_FEATURE_HDPARM_HDIO_TRISTATE_HWIF is not set -+# CONFIG_FEATURE_HDPARM_HDIO_GETSET_DMA is not set -+CONFIG_MAKEDEVS=y -+# CONFIG_FEATURE_MAKEDEVS_LEAF is not set -+CONFIG_FEATURE_MAKEDEVS_TABLE=y -+# CONFIG_MAN is not set -+# CONFIG_MICROCOM is not set -+# CONFIG_MOUNTPOINT is not set -+# CONFIG_MT is not set -+# CONFIG_RAIDAUTORUN is not set -+# CONFIG_READAHEAD is not set -+CONFIG_RUNLEVEL=y -+# CONFIG_RX is not set -+# CONFIG_SETSID is not set -+CONFIG_STRINGS=y -+# CONFIG_TASKSET is not set -+# CONFIG_FEATURE_TASKSET_FANCY is not set -+CONFIG_TIME=y -+# CONFIG_TIMEOUT is not set -+# CONFIG_TTYSIZE is not set -+# CONFIG_VOLNAME is not set -+# CONFIG_WATCHDOG is not set -+ -+# -+# Networking Utilities -+# -+CONFIG_NAMEIF=y -+# CONFIG_FEATURE_NAMEIF_EXTENDED is not set -+# CONFIG_NBDCLIENT is not set -+# CONFIG_NC is not set -+# CONFIG_NC_SERVER is not set -+# CONFIG_NC_EXTRA is not set -+# CONFIG_NC_110_COMPAT is not set -+CONFIG_PING=y -+# CONFIG_PING6 is not set -+CONFIG_FEATURE_FANCY_PING=y -+# CONFIG_WHOIS is not set -+# CONFIG_FEATURE_IPV6 is not set -+# CONFIG_FEATURE_UNIX_LOCAL is not set -+# CONFIG_FEATURE_PREFER_IPV4_ADDRESS is not set -+# CONFIG_VERBOSE_RESOLUTION_ERRORS is not set -+# CONFIG_ARP is not set -+# CONFIG_ARPING is not set -+# CONFIG_BRCTL is not set -+# CONFIG_FEATURE_BRCTL_FANCY is not set -+# CONFIG_FEATURE_BRCTL_SHOW is not set -+# CONFIG_DNSD is not set -+# CONFIG_ETHER_WAKE is not set -+# CONFIG_FAKEIDENTD is not set -+# CONFIG_FTPD is not set -+# CONFIG_FEATURE_FTP_WRITE is not set -+# CONFIG_FEATURE_FTPD_ACCEPT_BROKEN_LIST is not set -+# CONFIG_FTPGET is not set -+# CONFIG_FTPPUT is not set -+# CONFIG_FEATURE_FTPGETPUT_LONG_OPTIONS is not set -+CONFIG_HOSTNAME=y -+# CONFIG_HTTPD is not set -+# CONFIG_FEATURE_HTTPD_RANGES is not set -+# CONFIG_FEATURE_HTTPD_USE_SENDFILE is not set -+# CONFIG_FEATURE_HTTPD_SETUID is not set -+# CONFIG_FEATURE_HTTPD_BASIC_AUTH is not set -+# CONFIG_FEATURE_HTTPD_AUTH_MD5 is not set -+# CONFIG_FEATURE_HTTPD_CGI is not set -+# CONFIG_FEATURE_HTTPD_CONFIG_WITH_SCRIPT_INTERPR is not set -+# CONFIG_FEATURE_HTTPD_SET_REMOTE_PORT_TO_ENV is not set -+# CONFIG_FEATURE_HTTPD_ENCODE_URL_STR is not set -+# CONFIG_FEATURE_HTTPD_ERROR_PAGES is not set -+# CONFIG_FEATURE_HTTPD_PROXY is not set -+# CONFIG_FEATURE_HTTPD_GZIP is not set -+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 is not set -+# CONFIG_IFENSLAVE is not set -+# CONFIG_IFPLUGD is not set -+# CONFIG_IFUPDOWN is not set -+CONFIG_IFUPDOWN_IFSTATE_PATH="" -+# CONFIG_FEATURE_IFUPDOWN_IP is not set -+# CONFIG_FEATURE_IFUPDOWN_IP_BUILTIN is not set -+# CONFIG_FEATURE_IFUPDOWN_IFCONFIG_BUILTIN is not set -+# CONFIG_FEATURE_IFUPDOWN_IPV4 is not set -+# CONFIG_FEATURE_IFUPDOWN_IPV6 is not set -+# CONFIG_FEATURE_IFUPDOWN_MAPPING is not set -+# 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 is not set -+CONFIG_IP=y -+CONFIG_FEATURE_IP_ADDRESS=y -+CONFIG_FEATURE_IP_LINK=y -+CONFIG_FEATURE_IP_ROUTE=y -+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 is not set -+# CONFIG_FEATURE_IPCALC_FANCY is not set -+# CONFIG_FEATURE_IPCALC_LONG_OPTIONS is not set -+# CONFIG_NETSTAT is not set -+# CONFIG_FEATURE_NETSTAT_WIDE is not set -+# CONFIG_FEATURE_NETSTAT_PRG is not set -+# CONFIG_NSLOOKUP is not set -+# CONFIG_NTPD is not set -+# CONFIG_FEATURE_NTPD_SERVER is not set -+# CONFIG_PSCAN is not set -+# CONFIG_ROUTE is not set -+# CONFIG_SLATTACH is not set -+# CONFIG_TCPSVD is not set -+# CONFIG_TELNET is not set -+# CONFIG_FEATURE_TELNET_TTYPE is not set -+# CONFIG_FEATURE_TELNET_AUTOLOGIN is not set -+# CONFIG_TELNETD is not set -+# CONFIG_FEATURE_TELNETD_STANDALONE is not set -+# CONFIG_FEATURE_TELNETD_INETD_WAIT is not set -+# CONFIG_TFTP is not set -+# CONFIG_TFTPD is not set -+# CONFIG_FEATURE_TFTP_GET is not set -+# CONFIG_FEATURE_TFTP_PUT is not set -+# CONFIG_FEATURE_TFTP_BLOCKSIZE is not set -+# CONFIG_FEATURE_TFTP_PROGRESS_BAR is not set -+# CONFIG_TFTP_DEBUG is not set -+# CONFIG_TRACEROUTE is not set -+# CONFIG_TRACEROUTE6 is not set -+# CONFIG_FEATURE_TRACEROUTE_VERBOSE is not set -+# CONFIG_FEATURE_TRACEROUTE_SOURCE_ROUTE is not set -+# CONFIG_FEATURE_TRACEROUTE_USE_ICMP is not set -+# CONFIG_TUNCTL is not set -+# CONFIG_FEATURE_TUNCTL_UG is not set -+# CONFIG_UDHCPC6 is not set -+# CONFIG_UDHCPD is not set -+# CONFIG_DHCPRELAY is not set -+# CONFIG_DUMPLEASES is not set -+# CONFIG_FEATURE_UDHCPD_WRITE_LEASES_EARLY is not set -+# CONFIG_FEATURE_UDHCPD_BASE_IP_ON_MAC is not set -+CONFIG_DHCPD_LEASES_FILE="" -+CONFIG_UDHCPC=y -+CONFIG_FEATURE_UDHCPC_ARPING=y -+# CONFIG_FEATURE_UDHCP_PORT is not set -+CONFIG_UDHCP_DEBUG=0 -+# CONFIG_FEATURE_UDHCP_RFC3397 is not set -+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="" -+# CONFIG_UDPSVD is not set -+# CONFIG_VCONFIG is not set -+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_ZCIP is not set -+ -+# -+# Print Utilities -+# -+# CONFIG_LPD is not set -+# CONFIG_LPR is not set -+# CONFIG_LPQ is not set -+ -+# -+# Mail Utilities -+# -+# CONFIG_MAKEMIME is not set -+CONFIG_FEATURE_MIME_CHARSET="" -+# CONFIG_POPMAILDIR is not set -+# CONFIG_FEATURE_POPMAILDIR_DELIVERY is not set -+# CONFIG_REFORMIME is not set -+# CONFIG_FEATURE_REFORMIME_COMPAT is not set -+# CONFIG_SENDMAIL is not set -+ -+# -+# Process Utilities -+# -+# CONFIG_IOSTAT is not set -+# CONFIG_LSOF is not set -+# CONFIG_MPSTAT is not set -+# CONFIG_NMETER is not set -+# CONFIG_PMAP is not set -+# CONFIG_POWERTOP is not set -+# CONFIG_PSTREE is not set -+# CONFIG_PWDX is not set -+# CONFIG_SMEMCAP is not set -+# CONFIG_TOP is not set -+# CONFIG_FEATURE_TOP_CPU_USAGE_PERCENTAGE is not set -+# CONFIG_FEATURE_TOP_CPU_GLOBAL_PERCENTS is not set -+# CONFIG_FEATURE_TOP_SMP_CPU is not set -+# CONFIG_FEATURE_TOP_DECIMALS is not set -+# CONFIG_FEATURE_TOP_SMP_PROCESS is not set -+# CONFIG_FEATURE_TOPMEM is not set -+CONFIG_UPTIME=y -+# CONFIG_FEATURE_UPTIME_UTMP_SUPPORT is not set -+CONFIG_FREE=y -+# CONFIG_FUSER is not set -+CONFIG_KILL=y -+CONFIG_KILLALL=y -+CONFIG_KILLALL5=y -+# CONFIG_PGREP is not set -+# CONFIG_PIDOF is not set -+# CONFIG_FEATURE_PIDOF_SINGLE is not set -+# CONFIG_FEATURE_PIDOF_OMIT is not set -+# CONFIG_PKILL is not set -+CONFIG_PS=y -+CONFIG_FEATURE_PS_WIDE=y -+CONFIG_FEATURE_PS_LONG=y -+# CONFIG_FEATURE_PS_TIME is not set -+# CONFIG_FEATURE_PS_ADDITIONAL_COLUMNS is not set -+# CONFIG_FEATURE_PS_UNUSUAL_SYSTEMS is not set -+# CONFIG_RENICE is not set -+# CONFIG_BB_SYSCTL is not set -+# CONFIG_FEATURE_SHOW_THREADS is not set -+# CONFIG_WATCH is not set -+ -+# -+# Runit Utilities -+# -+# CONFIG_RUNSV is not set -+# CONFIG_RUNSVDIR is not set -+# CONFIG_FEATURE_RUNSVDIR_LOG is not set -+# CONFIG_SV is not set -+CONFIG_SV_DEFAULT_SERVICE_DIR="" -+# CONFIG_SVLOGD is not set -+# CONFIG_CHPST is not set -+# CONFIG_SETUIDGID is not set -+# CONFIG_ENVUIDGID is not set -+# CONFIG_ENVDIR is not set -+# CONFIG_SOFTLIMIT is not set -+# 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=y -+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_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 is not set -+# CONFIG_HUSH is not set -+# CONFIG_HUSH_BASH_COMPAT is not set -+# CONFIG_HUSH_BRACE_EXPANSION is not set -+# CONFIG_HUSH_HELP is not set -+# CONFIG_HUSH_INTERACTIVE is not set -+# CONFIG_HUSH_SAVEHISTORY is not set -+# CONFIG_HUSH_JOB is not set -+# CONFIG_HUSH_TICK is not set -+# CONFIG_HUSH_IF is not set -+# CONFIG_HUSH_LOOPS is not set -+# CONFIG_HUSH_CASE is not set -+# CONFIG_HUSH_FUNCTIONS is not set -+# CONFIG_HUSH_LOCAL is not set -+# CONFIG_HUSH_RANDOM_SUPPORT is not set -+# CONFIG_HUSH_EXPORT_N is not set -+# CONFIG_HUSH_MODE_X is not set -+# 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 is not set -+CONFIG_FEATURE_SH_EXTRA_QUIET=y -+# CONFIG_FEATURE_SH_STANDALONE is not set -+# CONFIG_FEATURE_SH_NOFORK is not set -+# CONFIG_FEATURE_SH_HISTFILESIZE is not set -+ -+# -+# System Logging Utilities -+# -+CONFIG_SYSLOGD=y -+CONFIG_FEATURE_ROTATE_LOGFILE=y -+CONFIG_FEATURE_REMOTE_LOG=y -+# CONFIG_FEATURE_SYSLOGD_DUP is not set -+# CONFIG_FEATURE_SYSLOGD_CFG is not set -+CONFIG_FEATURE_SYSLOGD_READ_BUFFER_SIZE=256 -+# CONFIG_FEATURE_IPC_SYSLOG is not set -+CONFIG_FEATURE_IPC_SYSLOG_BUFFER_SIZE=0 -+# CONFIG_LOGREAD is not set -+# CONFIG_FEATURE_LOGREAD_REDUCED_LOCKING is not set -+# CONFIG_FEATURE_KMSG_SYSLOG is not set -+CONFIG_KLOGD=y -+CONFIG_FEATURE_KLOGD_KLOGCTL=y -+CONFIG_LOGGER=y -diff -Nur '--exclude=.git' '--exclude=output' '--exclude=dl' buildroot_clean/board/raspberrypi/usb_test/linux.config buildroot/board/raspberrypi/usb_test/linux.config ---- buildroot_clean/board/raspberrypi/usb_test/linux.config 1970-01-01 01:00:00.000000000 +0100 -+++ buildroot/board/raspberrypi/usb_test/linux.config 2014-10-28 12:03:03.969362013 +0000 -@@ -0,0 +1,200 @@ -+# CONFIG_ARM_PATCH_PHYS_VIRT is not set -+CONFIG_LOCALVERSION="-quick" -+# CONFIG_LOCALVERSION_AUTO is not set -+# CONFIG_SWAP is not set -+CONFIG_SYSVIPC=y -+CONFIG_POSIX_MQUEUE=y -+CONFIG_NO_HZ=y -+CONFIG_HIGH_RES_TIMERS=y -+CONFIG_IKCONFIG=y -+CONFIG_IKCONFIG_PROC=y -+CONFIG_BLK_DEV_INITRD=y -+CONFIG_RD_LZO=y -+CONFIG_KALLSYMS_ALL=y -+CONFIG_EMBEDDED=y -+CONFIG_PERF_EVENTS=y -+# CONFIG_COMPAT_BRK is not set -+CONFIG_SLAB=y -+CONFIG_MODULES=y -+CONFIG_MODULE_UNLOAD=y -+CONFIG_MODVERSIONS=y -+CONFIG_MODULE_SRCVERSION_ALL=y -+# CONFIG_BLK_DEV_BSG is not set -+CONFIG_ARCH_BCM2708=y -+CONFIG_PREEMPT=y -+CONFIG_AEABI=y -+CONFIG_UACCESS_WITH_MEMCPY=y -+CONFIG_ZBOOT_ROM_TEXT=0x0 -+CONFIG_ZBOOT_ROM_BSS=0x0 -+CONFIG_CMDLINE="dwc_otg.lpm_enable=0 console=ttyAMA0,115200 kgdboc=ttyAMA0,115200 root=/dev/mmcblk0p2 rootfstype=ext4 rootwait" -+CONFIG_CPU_FREQ=y -+CONFIG_CPU_FREQ_DEFAULT_GOV_POWERSAVE=y -+CONFIG_CPU_FREQ_GOV_PERFORMANCE=y -+CONFIG_CPU_FREQ_GOV_USERSPACE=y -+CONFIG_CPU_FREQ_GOV_ONDEMAND=y -+CONFIG_CPU_FREQ_GOV_CONSERVATIVE=y -+CONFIG_CPU_IDLE=y -+CONFIG_VFP=y -+CONFIG_BINFMT_MISC=y -+CONFIG_NET=y -+CONFIG_PACKET=y -+CONFIG_UNIX=y -+CONFIG_INET=y -+CONFIG_IP_MULTICAST=y -+CONFIG_IP_PNP=y -+CONFIG_IP_PNP_DHCP=y -+CONFIG_IP_PNP_RARP=y -+CONFIG_SYN_COOKIES=y -+# CONFIG_INET_XFRM_MODE_TRANSPORT is not set -+# CONFIG_INET_XFRM_MODE_TUNNEL is not set -+# CONFIG_INET_XFRM_MODE_BEET is not set -+# CONFIG_INET_LRO is not set -+# CONFIG_INET_DIAG is not set -+# CONFIG_IPV6 is not set -+# CONFIG_WIRELESS is not set -+CONFIG_DEVTMPFS=y -+CONFIG_DEVTMPFS_MOUNT=y -+CONFIG_BLK_DEV_LOOP=y -+CONFIG_BLK_DEV_RAM=y -+CONFIG_SCSI=y -+# CONFIG_SCSI_PROC_FS is not set -+# CONFIG_SCSI_LOWLEVEL is not set -+CONFIG_NETDEVICES=y -+# CONFIG_NET_VENDOR_BROADCOM is not set -+# CONFIG_NET_VENDOR_CIRRUS is not set -+# CONFIG_NET_VENDOR_FARADAY is not set -+# CONFIG_NET_VENDOR_INTEL is not set -+# CONFIG_NET_VENDOR_MARVELL is not set -+# CONFIG_NET_VENDOR_MICREL is not set -+# CONFIG_NET_VENDOR_NATSEMI is not set -+# CONFIG_NET_VENDOR_SEEQ is not set -+# CONFIG_NET_VENDOR_STMICRO is not set -+# CONFIG_NET_VENDOR_WIZNET is not set -+CONFIG_USB_USBNET=y -+# CONFIG_USB_NET_AX8817X is not set -+# CONFIG_USB_NET_CDCETHER is not set -+# CONFIG_USB_NET_CDC_NCM is not set -+CONFIG_USB_NET_SMSC95XX=y -+# CONFIG_USB_NET_NET1080 is not set -+# CONFIG_USB_NET_CDC_SUBSET is not set -+# CONFIG_USB_NET_ZAURUS is not set -+# CONFIG_WLAN is not set -+# CONFIG_INPUT_MOUSEDEV is not set -+CONFIG_INPUT_EVDEV=y -+# CONFIG_INPUT_KEYBOARD is not set -+# CONFIG_INPUT_MOUSE is not set -+# CONFIG_SERIO is not set -+# CONFIG_LEGACY_PTYS is not set -+# CONFIG_DEVKMEM is not set -+CONFIG_SERIAL_AMBA_PL011=y -+CONFIG_SERIAL_AMBA_PL011_CONSOLE=y -+CONFIG_TTY_PRINTK=y -+CONFIG_HW_RANDOM=y -+CONFIG_HW_RANDOM_BCM2708=y -+CONFIG_RAW_DRIVER=y -+CONFIG_THERMAL=y -+CONFIG_THERMAL_BCM2835=y -+CONFIG_WATCHDOG=y -+CONFIG_BCM2708_WDT=y -+CONFIG_REGULATOR=y -+CONFIG_REGULATOR_DEBUG=y -+CONFIG_REGULATOR_FIXED_VOLTAGE=y -+CONFIG_REGULATOR_VIRTUAL_CONSUMER=y -+CONFIG_REGULATOR_USERSPACE_CONSUMER=y -+CONFIG_FB=y -+CONFIG_FB_BCM2708=y -+CONFIG_FRAMEBUFFER_CONSOLE=y -+CONFIG_LOGO=y -+# CONFIG_LOGO_LINUX_MONO is not set -+# CONFIG_LOGO_LINUX_VGA16 is not set -+CONFIG_SOUND=y -+CONFIG_SND=y -+CONFIG_SND_BCM2835=y -+# CONFIG_SND_USB is not set -+CONFIG_USB=y -+CONFIG_USB_ANNOUNCE_NEW_DEVICES=y -+CONFIG_USB_DWCOTG=y -+CONFIG_MMC=y -+CONFIG_MMC_SDHCI=y -+CONFIG_MMC_SDHCI_PLTFM=y -+CONFIG_MMC_SDHCI_BCM2708=y -+CONFIG_MMC_SDHCI_BCM2708_DMA=y -+CONFIG_MMC_BCM2835=y -+CONFIG_MMC_BCM2835_DMA=y -+CONFIG_NEW_LEDS=y -+CONFIG_LEDS_CLASS=y -+CONFIG_LEDS_TRIGGERS=y -+# CONFIG_IOMMU_SUPPORT is not set -+CONFIG_EXT4_FS=y -+CONFIG_EXT4_FS_POSIX_ACL=y -+CONFIG_EXT4_FS_SECURITY=y -+CONFIG_AUTOFS4_FS=y -+CONFIG_FSCACHE=y -+CONFIG_CACHEFILES=y -+CONFIG_MSDOS_FS=y -+CONFIG_VFAT_FS=y -+CONFIG_FAT_DEFAULT_IOCHARSET="ascii" -+CONFIG_TMPFS=y -+CONFIG_TMPFS_POSIX_ACL=y -+CONFIG_CONFIGFS_FS=y -+# CONFIG_MISC_FILESYSTEMS is not set -+CONFIG_NFS_FS=y -+CONFIG_NFS_V3_ACL=y -+CONFIG_NFS_V4=y -+CONFIG_ROOT_NFS=y -+CONFIG_NFS_FSCACHE=y -+CONFIG_NLS_DEFAULT="utf8" -+CONFIG_NLS_CODEPAGE_437=y -+CONFIG_NLS_CODEPAGE_737=y -+CONFIG_NLS_CODEPAGE_775=y -+CONFIG_NLS_CODEPAGE_850=y -+CONFIG_NLS_CODEPAGE_852=y -+CONFIG_NLS_CODEPAGE_855=y -+CONFIG_NLS_CODEPAGE_857=y -+CONFIG_NLS_CODEPAGE_860=y -+CONFIG_NLS_CODEPAGE_861=y -+CONFIG_NLS_CODEPAGE_862=y -+CONFIG_NLS_CODEPAGE_863=y -+CONFIG_NLS_CODEPAGE_864=y -+CONFIG_NLS_CODEPAGE_865=y -+CONFIG_NLS_CODEPAGE_866=y -+CONFIG_NLS_CODEPAGE_869=y -+CONFIG_NLS_CODEPAGE_936=y -+CONFIG_NLS_CODEPAGE_950=y -+CONFIG_NLS_CODEPAGE_932=y -+CONFIG_NLS_CODEPAGE_949=y -+CONFIG_NLS_CODEPAGE_874=y -+CONFIG_NLS_ISO8859_8=y -+CONFIG_NLS_CODEPAGE_1250=y -+CONFIG_NLS_CODEPAGE_1251=y -+CONFIG_NLS_ASCII=y -+CONFIG_NLS_ISO8859_1=y -+CONFIG_NLS_ISO8859_2=y -+CONFIG_NLS_ISO8859_3=y -+CONFIG_NLS_ISO8859_4=y -+CONFIG_NLS_ISO8859_5=y -+CONFIG_NLS_ISO8859_6=y -+CONFIG_NLS_ISO8859_7=y -+CONFIG_NLS_ISO8859_9=y -+CONFIG_NLS_ISO8859_13=y -+CONFIG_NLS_ISO8859_14=y -+CONFIG_NLS_ISO8859_15=y -+CONFIG_NLS_UTF8=y -+CONFIG_PRINTK_TIME=y -+CONFIG_DEBUG_FS=y -+CONFIG_DETECT_HUNG_TASK=y -+# CONFIG_DEBUG_PREEMPT is not set -+# CONFIG_DEBUG_BUGVERBOSE is not set -+# CONFIG_FTRACE is not set -+CONFIG_KGDB=y -+CONFIG_KGDB_KDB=y -+# CONFIG_ARM_UNWIND is not set -+CONFIG_CRYPTO_CBC=y -+CONFIG_CRYPTO_HMAC=y -+CONFIG_CRYPTO_MD5=y -+CONFIG_CRYPTO_SHA1=y -+CONFIG_CRYPTO_DES=y -+# CONFIG_CRYPTO_ANSI_CPRNG is not set -+# CONFIG_CRYPTO_HW is not set -+CONFIG_CRC_ITU_T=y -+CONFIG_LIBCRC32C=y -diff -Nur '--exclude=.git' '--exclude=output' '--exclude=dl' buildroot_clean/board/raspberrypi/usb_test/post_build.sh buildroot/board/raspberrypi/usb_test/post_build.sh ---- buildroot_clean/board/raspberrypi/usb_test/post_build.sh 1970-01-01 01:00:00.000000000 +0100 -+++ buildroot/board/raspberrypi/usb_test/post_build.sh 2014-10-09 12:39:36.112227340 +0100 -@@ -0,0 +1,21 @@ -+#!/bin/bash -+ -+mkdir -p output/sd_card -+cp output/build/rpi-firmware-*/boot/start_cd.elf output/sd_card/start.elf -+cp output/build/rpi-firmware-*/boot/bootcode.bin output/sd_card/ -+echo "ramfsfile=rootfs" > output/sd_card/config.txt -+echo "ramfsaddr=0xffffffff" >> output/sd_card/config.txt -+cp output/images/zImage output/sd_card/kernel.img -+cp output/images/rootfs.cpio.lzo output/sd_card/rootfs -+ -+FSIZE=`du output/sd_card/ | cut -f 1` -+dd if=/dev/zero of=output/images/fatimage bs=1KiB count=$(($FSIZE+20)) -+sudo losetup /dev/loop0 output/images/fatimage -+sudo mkfs.vfat /dev/loop0 -+mkdir -p output/tmp -+sudo mount /dev/loop0 output/tmp -+sudo cp output/sd_card/kernel.img output/tmp -+sudo cp output/sd_card/rootfs output/tmp -+sudo cp output/sd_card/config.txt output/tmp -+sudo umount /dev/loop0 -+sudo losetup -d /dev/loop0 -diff --git buildroot_clean/configs/raspberrypi_defconfig buildroot/configs/raspberrypi_defconfig -index 835657c..9b7175c 100644 ---- buildroot_clean/configs/raspberrypi_defconfig -+++ buildroot/configs/raspberrypi_defconfig -@@ -4,7 +4,7 @@ BR2_arm1176jzf_s=y - BR2_TOOLCHAIN_BUILDROOT_LARGEFILE=y - BR2_TOOLCHAIN_BUILDROOT_CXX=y - --BR2_TARGET_GENERIC_GETTY_PORT="tty1" -+BR2_TARGET_GENERIC_GETTY_PORT="ttyAMA0" - - BR2_PACKAGE_RPI_FIRMWARE=y - -@@ -20,3 +20,12 @@ BR2_LINUX_KERNEL_CUSTOM_REPO_VERSION="c256eb9968c8997dce47350d2075e42f1b3991d3" - BR2_LINUX_KERNEL_USE_DEFCONFIG=y - BR2_LINUX_KERNEL_DEFCONFIG="bcmrpi_quick" - BR2_LINUX_KERNEL_ZIMAGE=y -+ -+# Changes to do USB buildroot booting -+BR2_TARGET_GENERIC_ROOT_PASSWD="raspberry" -+BR2_ROOTFS_POST_IMAGE_SCRIPT="board/raspberrypi/usb_test/post_build.sh" -+BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y -+BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="board/raspberrypi/usb_test/linux.config" -+BR2_PACKAGE_BUSYBOX_CONFIG="board/raspberrypi/usb_test/busybox.config" -+BR2_TARGET_ROOTFS_CPIO=y -+BR2_TARGET_ROOTFS_CPIO_LZO=y diff --git a/usbboot/main.c b/usbboot/main.c deleted file mode 100755 index 1b4e0428c..000000000 --- a/usbboot/main.c +++ /dev/null @@ -1,379 +0,0 @@ -#include "libusb-1.0/libusb.h" -#include -#include -#include - -#include - -int verbose = 0; -int out_ep = 1; -int in_ep = 2; - -void usage(int error) -{ - FILE * dest = error ? stderr : stdout; - - fprintf(dest, "Usage: rpiboot\n"); - fprintf(dest, " or: rpiboot -b fatimage\n"); - fprintf(dest, "Boot a Raspberry Pi Model A or Compute Module through USB\n"); - fprintf(dest, "\n"); - fprintf(dest, "rpiboot : Boot the device into Mass Storage Device mode\n"); - fprintf(dest, "rpiboot -b fatimage : Boot the device into a buildroot linux image\n"); - fprintf(dest, "\n"); - fprintf(dest, "Further options:\n"); - fprintf(dest, " -x executable : Autoexecute function\n"); - fprintf(dest, " This option is used to trigger the execution of a\n"); - fprintf(dest, " script after finishing the USB boot process\n"); - fprintf(dest, " -l : Sit in a loop permanently\n"); - fprintf(dest, " -v : Verbose output"); - fprintf(dest, " -h : This help\n"); - exit(-1); -} - -libusb_device_handle * LIBUSB_CALL open_device_with_vid( - libusb_context *ctx, uint16_t vendor_id) -{ - struct libusb_device **devs; - struct libusb_device *found = NULL; - struct libusb_device *dev; - struct libusb_device_handle *handle = NULL; - size_t i = 0; - int r; - - if (libusb_get_device_list(ctx, &devs) < 0) - return NULL; - - while ((dev = devs[i++]) != NULL) { - struct libusb_device_descriptor desc; - r = libusb_get_device_descriptor(dev, &desc); - if (r < 0) - goto out; - if(verbose) - printf("Found device %d idVendor=0x%04x idProduct=0x%04x\n", i, desc.idVendor, desc.idProduct); - if (desc.idVendor == vendor_id) { - if(desc.idProduct == 0x2763 || - desc.idProduct == 0x2764) - { - if(verbose) printf("Device located successfully\n"); - found = dev; - break; - } - } - } - - if (found) { - r = libusb_open(found, &handle); - if (r < 0) - { - if(verbose) printf("Failed to open the requested device\n"); - handle = NULL; - } - } - -out: - libusb_free_device_list(devs, 1); - return handle; - -} - -int Initialize_Device(libusb_context ** ctx, libusb_device_handle ** usb_device) -{ - int ret = 0; - int interface; - struct libusb_config_descriptor *config; - - *usb_device = open_device_with_vid(*ctx, 0x0a5c); - if (*usb_device == NULL) - { - return -1; - } - - libusb_get_active_config_descriptor(libusb_get_device(*usb_device), &config); - - if(config->bNumInterfaces == 1) - { - interface = 0; - out_ep = 1; - in_ep = 2; - } - else - { - interface = 1; - out_ep = 3; - in_ep = 4; - } - - ret = libusb_claim_interface(*usb_device, interface); - if (ret) - { - printf("Failed to claim interface\n"); - return ret; - } - - printf("Initialised device correctly\n"); - - return ret; -} - -int ep_write(unsigned char *buf, int len, libusb_device_handle * usb_device) -{ - int a_len; - int ret = - libusb_control_transfer(usb_device, LIBUSB_REQUEST_TYPE_VENDOR, 0, - len & 0xffff, len >> 16, NULL, 0, 1000); - - if(ret != 0) - { - printf("Failed control transfer\n"); - return ret; - } - - ret = libusb_bulk_transfer(usb_device, out_ep, buf, len, &a_len, 100000); - if(verbose) - printf("libusb_bulk_transfer returned %d\n", ret); - - return a_len; -} - -int ep_read(unsigned char *buf, int len, libusb_device_handle * usb_device) -{ - int ret = - libusb_control_transfer(usb_device, - LIBUSB_REQUEST_TYPE_VENDOR | - LIBUSB_ENDPOINT_IN, 0, len & 0xffff, - len >> 16, buf, len, 1000); - - return len; -} - -int main(int argc, char *argv[]) -{ - int result; - libusb_context *ctx; - libusb_device_handle *usb_device; - unsigned char *txbuf; - int size; - int retcode; - int last_serial = -1; - FILE *fp1, *fp2, *fp; - - char def1_inst[] = "/usr/share/rpiboot/usbbootcode.bin"; - char def2_inst[] = "/usr/share/rpiboot/msd.elf"; - char def3_inst[] = "/usr/share/rpiboot/buildroot.elf"; - - char def1_loc[] = "./usbbootcode.bin"; - char def2_loc[] = "./msd.elf"; - char def3_loc[] = "./buildroot.elf"; - - char *def1, *def2, *def3; - - char *stage1 = NULL, *stage2 = NULL; - char *fatimage = NULL, *executable = NULL; - int loop = 0; - -// if local file version exists use it else use installed - if( access( def1_loc, F_OK ) != -1 ) { def1 = def1_loc; } else { def1 = def1_inst; } - if( access( def2_loc, F_OK ) != -1 ) { def2 = def2_loc; } else { def2 = def2_inst; } - if( access( def3_loc, F_OK ) != -1 ) { def3 = def3_loc; } else { def3 = def3_inst; } - - stage1 = def1; - stage2 = def2; - - struct MESSAGE_S { - int length; - unsigned char signature[20]; - } message; - -#if defined (__CYGWIN__) - //printf("Running under Cygwin\n"); -#else - //exit if not run as sudo - if(getuid() != 0) - { - printf("Must be run with sudo...\n"); - exit(-1); - } -#endif - - // Skip the command name - argv++; argc--; - while(*argv) - { - if(strcmp(*argv, "-b") == 0) - { - argv++; argc--; - if(argc < 1) - usage(1); - stage1 = def1; - stage2 = def3; - fatimage = *argv; - } - else if(strcmp(*argv, "-h") == 0 || strcmp(*argv, "--help") == 0) - { - usage(0); - } - else if(strcmp(*argv, "-x") == 0) - { - argv++; argc--; - executable = *argv; - } - else if(strcmp(*argv, "-l") == 0) - { - loop = 1; - } - else if(strcmp(*argv, "-v") == 0) - { - verbose = 1; - } - else - { - usage(1); - } - - argv++; argc--; - } - - fp1 = fopen(stage1, "rb"); - if (fp1 == NULL) - { - printf("Cannot open file %s\n", stage1); - exit(-1); - } - - fp2 = fopen(stage2, "rb"); - if (fp2 == NULL) - { - printf("Cannot open file %s\n", stage2); - exit(-1); - } - if(strcmp(stage2 + strlen(stage2) - 4, ".elf")) - { - printf("Third stage needs to be .elf format\n"); - exit(-1); - } - - int ret = libusb_init(&ctx); - if (ret) - { - printf("Failed to initialise libUSB\n"); - exit(-1); - } - - libusb_set_debug(ctx, verbose ? LIBUSB_LOG_LEVEL_WARNING : 0); - - do - { - FILE *fp_img = NULL; - struct libusb_device_descriptor desc; - struct libusb_config_descriptor *config; - - printf("Waiting for BCM2835 ...\n"); - - // Wait for a device to get plugged in - do - { - result = Initialize_Device(&ctx, &usb_device); - if(result == 0) - { - libusb_get_device_descriptor(libusb_get_device - (usb_device), &desc); - printf("Found serial number %d\n", desc.iSerialNumber); - // Make sure we've re-enumerated since the last time - if(desc.iSerialNumber == last_serial) - { - result = -1; - libusb_close(usb_device); - } - - libusb_get_active_config_descriptor(libusb_get_device(usb_device), &config); - } - - if (result) - { - usleep(100); - } - } - while (result); - - last_serial = desc.iSerialNumber; - printf("Found serial = %d: writing file %s\n", - desc.iSerialNumber, - desc.iSerialNumber == 0 ? stage1 : stage2); - fp = desc.iSerialNumber == 0 ? fp1 : fp2; - - fseek(fp, 0, SEEK_END); - message.length = ftell(fp); - fseek(fp, 0, SEEK_SET); - - if(desc.iSerialNumber == 1 && fatimage != NULL) - { - // Been given a filesystem image - fp_img = fopen(fatimage, "rb"); - if(fp_img == NULL) - { - printf("Failed to open image %s\n", fatimage); - exit(-1); - } - fseek(fp_img, 0, SEEK_END); - message.length += ftell(fp_img); - if(verbose) printf("Adding %ld bytes of binary to end of elf\n", ftell(fp_img)); - fseek(fp_img, 0, SEEK_SET); - } - - txbuf = (unsigned char *)malloc(message.length); - if (txbuf == NULL) - { - printf("Failed to allocate memory\n"); - exit(-1); - } - - size = fread(txbuf, 1, message.length, fp); - if(fp_img) - { - size += fread(txbuf + size, 1, message.length - size, fp_img); - } - - size = - ep_write((unsigned char *)&message, sizeof(message), - usb_device); - if (size != sizeof(message)) - { - printf("Failed to write correct length, returned %d\n", - size); - exit(-1); - } - if(verbose) printf("Writing %d bytes\n", message.length); - size = ep_write(txbuf, message.length, usb_device); - if (size != message.length) - { - printf("Failed to read correct length, returned %d\n", - size); - exit(-1); - } - - sleep(1); - size = - ep_read((unsigned char *)&retcode, sizeof(retcode), - usb_device); - - if (retcode == 0) - { - printf("Successful read %d bytes \n", size); - - if(fp == fp2 && executable) - { - system(executable); - } - } - else - printf("Failed : 0x%x", retcode); - - libusb_close(usb_device); - sleep(1); - } - while(fp == fp1 || loop); - - libusb_exit(ctx); - - return 0; -} diff --git a/usbboot/msd.elf b/usbboot/msd.elf deleted file mode 100755 index fd7a0fd71..000000000 Binary files a/usbboot/msd.elf and /dev/null differ diff --git a/usbboot/usbbootcode.bin b/usbboot/usbbootcode.bin deleted file mode 100755 index bdd2e7147..000000000 Binary files a/usbboot/usbbootcode.bin and /dev/null differ