From 06f4a981fe8e51ad14beebf8be2535b8f34bfe9b Mon Sep 17 00:00:00 2001 From: Gordon Hollingworth Date: Tue, 28 Oct 2014 15:58:41 +0000 Subject: [PATCH] Add usb boot from buildroot image --- Makefile | 5 ++++- Readme.md | 44 +++++++++++++++++++++++++++++++++++++++++++- buildroot.elf | Bin 0 -> 973800 bytes buildroot.patch | 1285 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ main.c | 72 +++++++++++++++++++++++++++++++++++++++++++++++++++++++----------------- msd.bin | Bin 173920 -> 0 bytes msd.elf | Bin 0 -> 201072 bytes usbbootcode.bin | Bin 16654 -> 0 bytes 8 files changed, 1387 insertions(+), 19 deletions(-) create mode 100755 buildroot.elf create mode 100644 buildroot.patch delete mode 100755 msd.bin create mode 100755 msd.elf diff --git a/Makefile b/Makefile index 012a2c4..5873c11 100644 --- a/Makefile +++ b/Makefile @@ -5,4 +5,7 @@ install: rpiboot cp rpiboot /usr/bin mkdir -p /usr/share/rpiboot cp usbbootcode.bin /usr/share/rpiboot - cp msd.bin /usr/share/rpiboot + cp msd.elf /usr/share/rpiboot + +clean: + rm rpiboot diff --git a/Readme.md b/Readme.md index 84a9091..580b40f 100644 --- a/Readme.md +++ b/Readme.md @@ -2,6 +2,24 @@ This is the USB MSD boot code which should work on the Raspberry Pi model A and the Compute Module. +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. + +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_usb_test + ## Building Check out this on your Pi or an Ubuntu linux machine @@ -11,6 +29,30 @@ $ git clone --depth=1 https://github.com/raspberrypi/tools $ cd tools/usbboot $ sudo apt-get install libusb-1.0-0-dev $ make -$ sudo ./rpiboot +$ sudo make install +$ sudo rpiboot + + +## Buildroot building + +# 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 tools/usbboot/usbbootcode.bin tools/usbboot/start_imgfs.elf buildroot/output/images/fatimage + diff --git a/buildroot.elf b/buildroot.elf new file mode 100755 index 0000000..3e047ed Binary files /dev/null and b/buildroot.elf differ diff --git a/buildroot.patch b/buildroot.patch new file mode 100644 index 0000000..1fbb367 --- /dev/null +++ b/buildroot.patch @@ -0,0 +1,1285 @@ +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/main.c b/main.c index d066663..26c6feb 100755 --- a/main.c +++ b/main.c @@ -32,7 +32,8 @@ int ep_write(unsigned char *buf, int len, libusb_device_handle * usb_device) len & 0xffff, len >> 16, NULL, 0, 1000); int a_len; - libusb_bulk_transfer(usb_device, 0x01, buf, len, &a_len, 1000); + ret = libusb_bulk_transfer(usb_device, 0x01, buf, len, &a_len, 100000); + printf("libusb_bulk_transfer returned %d\n", ret); return a_len; } @@ -58,7 +59,9 @@ int main(int argc, char *argv[]) int retcode; FILE *fp1, *fp2; char def1[] = "/usr/share/rpiboot/usbbootcode.bin"; - char def2[] = "/usr/share/rpiboot/msd.bin"; + char def2[] = "/usr/share/rpiboot/msd.elf"; + + char *stage1, *stage2; char *dir; struct MESSAGE_S { @@ -66,17 +69,33 @@ int main(int argc, char *argv[]) unsigned char signature[20]; } message; - fp1 = fopen(def1, "rb"); + if(argc > 2) + { + stage1 = argv[1]; + stage2 = argv[2]; + } + else + { + stage1 = def1; + stage2 = def2; + } + + fp1 = fopen(stage1, "rb"); if (fp1 == NULL) { - printf("Cannot open file %s\n", def1); + printf("Cannot open file %s\n", stage1); exit(-1); } - fp2 = fopen(def2, "rb"); + fp2 = fopen(stage2, "rb"); if (fp2 == NULL) { - printf("Cannot open file %s\n", def2); + 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); } @@ -91,7 +110,8 @@ int main(int argc, char *argv[]) while (1) { - FILE *fp; + FILE *fp, *fp_img = NULL; + struct libusb_device_descriptor desc; printf("Waiting for BCM2835 ...\n"); @@ -107,21 +127,35 @@ int main(int argc, char *argv[]) } while (result); - { - struct libusb_device_descriptor desc; - ret = - libusb_get_device_descriptor(libusb_get_device + ret = + libusb_get_device_descriptor(libusb_get_device (usb_device), &desc); - printf("Found serial = %d: writing file %s\n", - desc.iSerialNumber, - desc.iSerialNumber == 0 ? def1 : def2); - fp = desc.iSerialNumber == 0 ? fp1 : fp2; - } + 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); + printf("Writing %d bytes of program data\n", message.length); + + if(desc.iSerialNumber == 1 && argc == 4) + { + // Been given a filesystem image + fp_img = fopen(argv[3], "rb"); + if(fp_img == NULL) + { + printf("Failed to open image %s\n", argv[3]); + exit(-1); + } + fseek(fp_img, 0, SEEK_END); + message.length += ftell(fp_img); + printf("Adding %d 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) { @@ -129,7 +163,11 @@ int main(int argc, char *argv[]) exit(-1); } - fread(txbuf, 1, message.length, fp); + 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), diff --git a/msd.bin b/msd.bin deleted file mode 100755 index 1a2ab5e..0000000 Binary files a/msd.bin and /dev/null differ diff --git a/msd.elf b/msd.elf new file mode 100755 index 0000000..f8f1aee Binary files /dev/null and b/msd.elf differ diff --git a/usbbootcode.bin b/usbbootcode.bin index 4f61ec9..71a8579 100755 Binary files a/usbbootcode.bin and b/usbbootcode.bin differ -- libgit2 0.21.4