├── .gitignore ├── README.md ├── build.sh ├── buildroot-2017.02.tar.gz ├── gpioexpand ├── Config.in ├── board │ ├── kernelconfig-gpioexpand.fragment │ ├── kernelconfig-recovery.armv6 │ └── overlay │ │ └── etc │ │ └── init.d │ │ └── S99gpioext ├── configs │ └── gpioexpand_defconfig ├── external.desc ├── external.mk └── package │ ├── pigpio │ ├── Config.in │ └── pigpio.mk │ └── rpi-firmware-custom │ ├── Config.in │ └── rpi-firmware-custom.mk └── output ├── LICENSE ├── cmdline.txt └── config.txt /.gitignore: -------------------------------------------------------------------------------- 1 | /buildroot-2017.02 2 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # gpioexpander 2 | 3 | Buildroot based ethernet gadget which gives a host access to PIGPIO to control GPIO pins 4 | 5 | ## Documentation 6 | 7 | See the [wiki](https://github.com/raspberrypi/gpioexpander/wiki/) 8 | 9 | -------------------------------------------------------------------------------- /build.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | BUILDROOT=buildroot-2017.02 4 | 5 | 6 | if [ ! -e $BUILDROOT ]; then 7 | tar xzf $BUILDROOT.tar.gz 8 | fi 9 | 10 | if [ ! -e $BUILDROOT/.config ]; then 11 | make -C $BUILDROOT BR2_EXTERNAL="$PWD/gpioexpand" gpioexpand_defconfig 12 | fi 13 | 14 | make -C $BUILDROOT BR2_EXTERNAL="$PWD/gpioexpand" 15 | 16 | cp $BUILDROOT/output/images/rootfs.cpio.gz output/gpioexpand.img 17 | cp $BUILDROOT/output/images/zImage output/kernel.img 18 | cp $BUILDROOT/output/images/rpi-firmware/*.elf output 19 | cp $BUILDROOT/output/images/rpi-firmware/*.dat output 20 | cp $BUILDROOT/output/images/rpi-firmware/bootcode.bin output 21 | cp $BUILDROOT/output/images/*.dtb output 22 | mkdir -p output/overlays 23 | mv output/dwc2-overlay.dtb output/overlays/dwc2.dtbo 24 | 25 | echo 26 | echo Build complete. Files are in output folder. 27 | echo 28 | -------------------------------------------------------------------------------- /buildroot-2017.02.tar.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/raspberrypi/gpioexpander/0ac076590cc81dba3434be70d16d5d498540ce71/buildroot-2017.02.tar.gz -------------------------------------------------------------------------------- /gpioexpand/Config.in: -------------------------------------------------------------------------------- 1 | source "$BR2_EXTERNAL_GPIOEXPAND_PATH/package/pigpio/Config.in" 2 | source "$BR2_EXTERNAL_GPIOEXPAND_PATH/package/rpi-firmware-custom/Config.in" 3 | -------------------------------------------------------------------------------- /gpioexpand/board/kernelconfig-gpioexpand.fragment: -------------------------------------------------------------------------------- 1 | # 2 | # Use the standard recovery config with the following additions 3 | # 4 | 5 | CONFIG_LOCALVERSION="-gpioext" 6 | 7 | CONFIG_IPV6=y 8 | 9 | CONFIG_USB_DWCOTG=n 10 | CONFIG_USB_NET_SMSC95XX=n 11 | CONFIG_BRCMFMAC=n 12 | 13 | CONFIG_USB_DWC2=y 14 | CONFIG_USB_GADGET=y 15 | CONFIG_USB_CONFIGFS=y 16 | CONFIG_USB_CONFIGFS_SERIAL=y 17 | CONFIG_USB_CONFIGFS_ACM=y 18 | CONFIG_USB_CONFIGFS_OBEX=y 19 | CONFIG_USB_CONFIGFS_ECM=y 20 | CONFIG_USB_CONFIGFS_MASS_STORAGE=y 21 | CONFIG_USB_CONFIGFS_F_FS=y 22 | CONFIG_USB_CONFIGFS_F_HID=y 23 | 24 | CONFIG_I2C_CHARDEV=y 25 | CONFIG_I2C_GPIO=y 26 | CONFIG_PWM_BCM2835=y 27 | CONFIG_BCM_VCIO=y 28 | 29 | -------------------------------------------------------------------------------- /gpioexpand/board/kernelconfig-recovery.armv6: -------------------------------------------------------------------------------- 1 | # CONFIG_ARM_PATCH_PHYS_VIRT is not set 2 | CONFIG_PHYS_OFFSET=0 3 | CONFIG_LOCALVERSION="-rescue" 4 | # CONFIG_LOCALVERSION_AUTO is not set 5 | # CONFIG_SWAP is not set 6 | CONFIG_SYSVIPC=y 7 | CONFIG_POSIX_MQUEUE=y 8 | CONFIG_NO_HZ=y 9 | CONFIG_HIGH_RES_TIMERS=y 10 | CONFIG_IKCONFIG=y 11 | CONFIG_IKCONFIG_PROC=y 12 | CONFIG_BLK_DEV_INITRD=y 13 | CONFIG_EMBEDDED=y 14 | # CONFIG_SLUB_DEBUG is not set 15 | # CONFIG_COMPAT_BRK is not set 16 | # CONFIG_BLK_DEV_BSG is not set 17 | CONFIG_ARCH_BCM2708=y 18 | CONFIG_PREEMPT=y 19 | CONFIG_AEABI=y 20 | CONFIG_CMA=y 21 | CONFIG_UACCESS_WITH_MEMCPY=y 22 | CONFIG_ZBOOT_ROM_TEXT=0x0 23 | CONFIG_ZBOOT_ROM_BSS=0x0 24 | CONFIG_CPU_FREQ=y 25 | CONFIG_CPU_FREQ_GOV_POWERSAVE=y 26 | CONFIG_CPU_FREQ_GOV_USERSPACE=y 27 | CONFIG_CPU_FREQ_GOV_ONDEMAND=y 28 | CONFIG_CPU_IDLE=y 29 | CONFIG_VFP=y 30 | # CONFIG_COREDUMP is not set 31 | # CONFIG_SUSPEND is not set 32 | CONFIG_NET=y 33 | CONFIG_PACKET=y 34 | CONFIG_UNIX=y 35 | CONFIG_INET=y 36 | CONFIG_IP_MULTICAST=y 37 | CONFIG_SYN_COOKIES=y 38 | # CONFIG_INET_XFRM_MODE_TRANSPORT is not set 39 | # CONFIG_INET_XFRM_MODE_TUNNEL is not set 40 | # CONFIG_INET_XFRM_MODE_BEET is not set 41 | # CONFIG_INET_DIAG is not set 42 | # CONFIG_IPV6 is not set 43 | CONFIG_CFG80211=y 44 | CONFIG_DEVTMPFS=y 45 | CONFIG_DEVTMPFS_MOUNT=y 46 | CONFIG_FW_LOADER_USER_HELPER_FALLBACK=y 47 | CONFIG_DMA_CMA=y 48 | CONFIG_CMA_SIZE_MBYTES=5 49 | CONFIG_BLK_DEV_LOOP=y 50 | CONFIG_BLK_DEV_RAM=y 51 | CONFIG_NETDEVICES=y 52 | # CONFIG_ETHERNET is not set 53 | CONFIG_USB_USBNET=y 54 | # CONFIG_USB_NET_AX8817X is not set 55 | # CONFIG_USB_NET_AX88179_178A is not set 56 | # CONFIG_USB_NET_CDCETHER is not set 57 | # CONFIG_USB_NET_CDC_NCM is not set 58 | CONFIG_USB_NET_SMSC95XX=y 59 | # CONFIG_USB_NET_NET1080 is not set 60 | # CONFIG_USB_NET_CDC_SUBSET is not set 61 | # CONFIG_USB_NET_ZAURUS is not set 62 | CONFIG_BRCMFMAC=y 63 | CONFIG_BRCMFMAC_USB=y 64 | # CONFIG_INPUT_MOUSEDEV_PSAUX is not set 65 | CONFIG_INPUT_EVDEV=y 66 | # CONFIG_INPUT_KEYBOARD is not set 67 | # CONFIG_INPUT_MOUSE is not set 68 | CONFIG_INPUT_TOUCHSCREEN=y 69 | CONFIG_TOUCHSCREEN_RPI_FT5406=y 70 | # CONFIG_SERIO is not set 71 | CONFIG_BRCM_CHAR_DRIVERS=y 72 | CONFIG_BCM_VC_CMA=y 73 | # CONFIG_LEGACY_PTYS is not set 74 | # CONFIG_DEVKMEM is not set 75 | CONFIG_SERIAL_AMBA_PL011=y 76 | CONFIG_SERIAL_AMBA_PL011_CONSOLE=y 77 | # CONFIG_HW_RANDOM is not set 78 | CONFIG_RAW_DRIVER=y 79 | CONFIG_GPIO_SYSFS=y 80 | CONFIG_POWER_SUPPLY=y 81 | CONFIG_POWER_RESET=y 82 | CONFIG_POWER_RESET_GPIO=y 83 | # CONFIG_HWMON is not set 84 | CONFIG_THERMAL=y 85 | CONFIG_THERMAL_BCM2835=y 86 | CONFIG_FB=y 87 | CONFIG_FB_BCM2708=y 88 | CONFIG_FRAMEBUFFER_CONSOLE=y 89 | CONFIG_HIDRAW=y 90 | CONFIG_HID_A4TECH=y 91 | CONFIG_HID_APPLE=y 92 | CONFIG_HID_BELKIN=y 93 | CONFIG_HID_CHERRY=y 94 | CONFIG_HID_CHICONY=y 95 | CONFIG_HID_CYPRESS=y 96 | CONFIG_HID_EZKEY=y 97 | CONFIG_HID_HOLTEK=y 98 | CONFIG_HID_LOGITECH=y 99 | CONFIG_HID_MICROSOFT=y 100 | CONFIG_HID_MONTEREY=y 101 | CONFIG_HID_ORTEK=y 102 | CONFIG_HID_SUNPLUS=y 103 | CONFIG_USB=y 104 | CONFIG_USB_ANNOUNCE_NEW_DEVICES=y 105 | CONFIG_USB_DWCOTG=y 106 | CONFIG_MMC=y 107 | CONFIG_MMC_BLOCK_MINORS=32 108 | CONFIG_MMC_BCM2835=y 109 | CONFIG_MMC_BCM2835_DMA=y 110 | CONFIG_MMC_BCM2835_SDHOST=y 111 | CONFIG_MMC_SDHCI=y 112 | CONFIG_MMC_SDHCI_PLTFM=y 113 | CONFIG_NEW_LEDS=y 114 | CONFIG_LEDS_CLASS=y 115 | CONFIG_LEDS_GPIO=y 116 | CONFIG_LEDS_TRIGGERS=y 117 | CONFIG_LEDS_TRIGGER_TIMER=y 118 | CONFIG_LEDS_TRIGGER_ONESHOT=y 119 | CONFIG_LEDS_TRIGGER_HEARTBEAT=y 120 | CONFIG_LEDS_TRIGGER_BACKLIGHT=y 121 | CONFIG_LEDS_TRIGGER_CPU=y 122 | CONFIG_LEDS_TRIGGER_GPIO=y 123 | CONFIG_LEDS_TRIGGER_DEFAULT_ON=y 124 | CONFIG_LEDS_TRIGGER_INPUT=y 125 | CONFIG_DMADEVICES=y 126 | CONFIG_DMA_BCM2835=y 127 | CONFIG_DMA_BCM2708=y 128 | CONFIG_MAILBOX=y 129 | CONFIG_BCM2835_MBOX=y 130 | # CONFIG_IOMMU_SUPPORT is not set 131 | CONFIG_RASPBERRYPI_FIRMWARE=y 132 | CONFIG_EXT4_FS=y 133 | CONFIG_EXT4_FS_POSIX_ACL=y 134 | CONFIG_EXT4_FS_SECURITY=y 135 | CONFIG_FANOTIFY=y 136 | CONFIG_FUSE_FS=y 137 | CONFIG_FSCACHE=y 138 | CONFIG_CACHEFILES=y 139 | CONFIG_UDF_FS=y 140 | CONFIG_MSDOS_FS=y 141 | CONFIG_VFAT_FS=y 142 | CONFIG_TMPFS=y 143 | CONFIG_TMPFS_POSIX_ACL=y 144 | CONFIG_CONFIGFS_FS=y 145 | CONFIG_SQUASHFS=y 146 | CONFIG_SQUASHFS_LZO=y 147 | # CONFIG_NETWORK_FILESYSTEMS is not set 148 | CONFIG_NLS_DEFAULT="utf8" 149 | CONFIG_NLS_CODEPAGE_437=y 150 | CONFIG_NLS_CODEPAGE_850=y 151 | CONFIG_NLS_CODEPAGE_852=y 152 | CONFIG_NLS_ASCII=y 153 | CONFIG_NLS_ISO8859_1=y 154 | CONFIG_NLS_ISO8859_2=y 155 | CONFIG_NLS_ISO8859_3=y 156 | CONFIG_NLS_ISO8859_4=y 157 | CONFIG_NLS_ISO8859_5=y 158 | CONFIG_NLS_ISO8859_6=y 159 | CONFIG_NLS_ISO8859_7=y 160 | CONFIG_NLS_ISO8859_9=y 161 | CONFIG_NLS_ISO8859_13=y 162 | CONFIG_NLS_ISO8859_14=y 163 | CONFIG_NLS_ISO8859_15=y 164 | CONFIG_NLS_UTF8=y 165 | CONFIG_PRINTK_TIME=y 166 | CONFIG_MAGIC_SYSRQ=y 167 | # CONFIG_DEBUG_PREEMPT is not set 168 | # CONFIG_DEBUG_BUGVERBOSE is not set 169 | # CONFIG_FTRACE is not set 170 | # CONFIG_ARM_UNWIND is not set 171 | # CONFIG_CRYPTO_HW is not set 172 | -------------------------------------------------------------------------------- /gpioexpand/board/overlay/etc/init.d/S99gpioext: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | case "$1" in 4 | start) 5 | GADGET=/sys/kernel/config/usb_gadget/g1 6 | SERIAL=`cat /proc/cpuinfo | grep Serial | cut -d ' ' -f 2` 7 | if [ -n "$SERIAL" ]; then 8 | MAC="fa:${SERIAL:6:2}:${SERIAL:8:2}:${SERIAL:10:2}:${SERIAL:12:2}:${SERIAL:14:2}" 9 | else 10 | MAC="fa:31:43:14:31:43" 11 | fi 12 | 13 | mount -t configfs none /sys/kernel/config 14 | mkdir -p $GADGET 15 | (cd $GADGET 16 | # FIXME: obtain proper USB ID instead of using f055 (FOSS) 17 | echo 0xf055 > idVendor 18 | echo 0x0001 > idProduct 19 | mkdir strings/0x409 20 | echo $SERIAL > strings/0x409/serialnumber 21 | echo "Raspberry Pi" > strings/0x409/manufacturer 22 | echo "Pi Zero - GPIO expansion board" > strings/0x409/product 23 | mkdir configs/c.1 24 | mkdir configs/c.1/strings/0x409 25 | echo "Config 1" > configs/c.1/strings/0x409/configuration 26 | echo 500 > configs/c.1/MaxPower 27 | mkdir functions/acm.usb0 28 | ln -s functions/acm.usb0 configs/c.1 29 | mkdir functions/ecm.usb0 30 | echo $MAC > functions/ecm.usb0/host_addr 31 | ln -s functions/ecm.usb0 configs/c.1 32 | # Assuming there is only ever going to be one UDC 33 | ls /sys/class/udc > UDC 34 | ) 35 | 36 | # Set led0 trigger to none, so apps can use it for other purposes 37 | echo none > /sys/class/leds/led0/trigger 38 | echo 255 > /sys/class/leds/led0/brightness 39 | 40 | echo 41 | echo "IP configuration:" 42 | echo 43 | ifconfig usb0 add fe80::1/64 up 44 | ifconfig -a 45 | 46 | pigpiod -x -1 47 | 48 | echo 49 | echo "pigpiod is accessible through the IPv6 link local address (e.g. fe80::1%usb0)" 50 | echo "shell access is available through USB for debugging (screen /dev/ttyACM0 115200)" 51 | echo 52 | ;; 53 | stop) 54 | kill `cat /var/run/pigpiod.pid` 55 | ;; 56 | restart|reload) 57 | "$0" stop 58 | "$0" start 59 | ;; 60 | *) 61 | echo "Usage: $0 {start|stop|restart}" 62 | exit 1 63 | esac 64 | 65 | exit $? 66 | -------------------------------------------------------------------------------- /gpioexpand/configs/gpioexpand_defconfig: -------------------------------------------------------------------------------- 1 | BR2_arm=y 2 | BR2_arm1176jzf_s=y 3 | BR2_KERNEL_HEADERS_4_8=y 4 | # BR2_UCLIBC_INSTALL_UTILS is not set 5 | BR2_TARGET_GENERIC_HOSTNAME="extzero" 6 | BR2_TARGET_GENERIC_ROOT_PASSWD="raspberry" 7 | BR2_TARGET_GENERIC_GETTY_PORT="ttyGS0" 8 | BR2_TARGET_GENERIC_GETTY_BAUDRATE_115200=y 9 | BR2_ROOTFS_OVERLAY="$(BR2_EXTERNAL_GPIOEXPAND_PATH)/board/overlay/" 10 | BR2_LINUX_KERNEL=y 11 | BR2_LINUX_KERNEL_CUSTOM_GIT=y 12 | BR2_LINUX_KERNEL_CUSTOM_REPO_URL="https://github.com/raspberrypi/linux.git" 13 | BR2_LINUX_KERNEL_CUSTOM_REPO_VERSION="rpi-4.4.y" 14 | BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y 15 | BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="$(BR2_EXTERNAL_GPIOEXPAND_PATH)/board/kernelconfig-recovery.armv6" 16 | BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILES="$(BR2_EXTERNAL_GPIOEXPAND_PATH)/board/kernelconfig-gpioexpand.fragment" 17 | BR2_LINUX_KERNEL_DTS_SUPPORT=y 18 | BR2_LINUX_KERNEL_INTREE_DTS_NAME="bcm2708-rpi-b-plus bcm2708-rpi-0-w overlays/dwc2-overlay" 19 | BR2_PACKAGE_PIGPIO=y 20 | BR2_PACKAGE_RPI_FIRMWARE_CUSTOM=y 21 | BR2_PACKAGE_RPI_FIRMWARE_CUSTOM_INSTALL_DTBS=n 22 | BR2_PACKAGE_RPI_FIRMWARE_CUSTOM_INSTALL_DTB_OVERLAYS=n 23 | BR2_TARGET_ROOTFS_CPIO=y 24 | BR2_TARGET_ROOTFS_CPIO_GZIP=y 25 | # BR2_TARGET_ROOTFS_TAR is not set 26 | -------------------------------------------------------------------------------- /gpioexpand/external.desc: -------------------------------------------------------------------------------- 1 | name: GPIOEXPAND -------------------------------------------------------------------------------- /gpioexpand/external.mk: -------------------------------------------------------------------------------- 1 | include $(sort $(wildcard $(BR2_EXTERNAL_GPIOEXPAND_PATH)/package/*/*.mk)) 2 | -------------------------------------------------------------------------------- /gpioexpand/package/pigpio/Config.in: -------------------------------------------------------------------------------- 1 | config BR2_PACKAGE_PIGPIO 2 | bool "pigpio" 3 | help 4 | pigpio is a C library for the Raspberry which allows control of the General Purpose Input Outputs (GPIO). 5 | 6 | http://abyz.co.uk/rpi/pigpio/ 7 | -------------------------------------------------------------------------------- /gpioexpand/package/pigpio/pigpio.mk: -------------------------------------------------------------------------------- 1 | ################################################################################ 2 | # 3 | # pigpio 4 | # 5 | ################################################################################ 6 | 7 | # v61 8 | PIGPIO_VERSION = 114653357b8bf8b15213c52fbe5bcb2695d7d90b 9 | PIGPIO_SITE = $(call github,joan2937,pigpio,$(PIGPIO_VERSION)) 10 | PIGPIO_LICENSE = unlicense 11 | PIGPIO_LICENSE_FILES = UNLICENCE 12 | PIGPIO_INSTALL_STAGING = YES 13 | 14 | define PIGPIO_BUILD_CMDS 15 | $(MAKE) $(TARGET_CONFIGURE_OPTS) -C $(@D) all 16 | endef 17 | 18 | # 19 | # Custom installation commands to prevent dependency on Python 20 | # 21 | define PIGPIO_INSTALL_STAGING_CMDS 22 | $(INSTALL) -D -m 0644 $(@D)/pigpio.h $(STAGING_DIR)/usr/include/pigpio.h 23 | $(INSTALL) -D -m 0644 $(@D)/pigpiod_if.h $(STAGING_DIR)/usr/include/pigpio_if.h 24 | $(INSTALL) -D -m 0644 $(@D)/pigpiod_if2.h $(STAGING_DIR)/usr/include/pigpio_if2.h 25 | $(INSTALL) -D -m 0755 $(@D)/libpigpio.so* $(STAGING_DIR)/usr/lib 26 | $(INSTALL) -D -m 0755 $(@D)/libpigpiod_if.so* $(STAGING_DIR)/usr/lib 27 | $(INSTALL) -D -m 0755 $(@D)/libpigpiod_if2.so* $(STAGING_DIR)/usr/lib 28 | endef 29 | 30 | define PIGPIO_INSTALL_TARGET_CMDS 31 | $(INSTALL) -D -m 0755 $(@D)/libpigpio.so* $(TARGET_DIR)/usr/lib 32 | $(INSTALL) -D -m 0755 $(@D)/libpigpiod_if.so* $(TARGET_DIR)/usr/lib 33 | $(INSTALL) -D -m 0755 $(@D)/libpigpiod_if2.so* $(TARGET_DIR)/usr/lib 34 | $(INSTALL) -D -m 0755 $(@D)/pigpiod $(TARGET_DIR)/usr/sbin/pigpiod 35 | $(INSTALL) -D -m 0755 $(@D)/pigs $(TARGET_DIR)/usr/bin/pigs 36 | endef 37 | 38 | $(eval $(generic-package)) 39 | -------------------------------------------------------------------------------- /gpioexpand/package/rpi-firmware-custom/Config.in: -------------------------------------------------------------------------------- 1 | config BR2_PACKAGE_RPI_FIRMWARE_CUSTOM 2 | bool "rpi-firmware" 3 | depends on BR2_arm 4 | help 5 | RaspberryPi Firmware 6 | Pre-compiled binaries of the current bootloader and GPU firmware 7 | 8 | https://github.com/raspberrypi/firmware 9 | 10 | if BR2_PACKAGE_RPI_FIRMWARE_CUSTOM 11 | 12 | choice 13 | bool "Firmware to boot" 14 | default BR2_PACKAGE_RPI_FIRMWARE_CUSTOM_DEFAULT 15 | help 16 | There are three different firmware files: 17 | - the default firmware, that enables standard GPU features; 18 | - the extended firmware, that enables additional GPU features 19 | (eg. more audio/video codecs); 20 | - the cut-down firmware, for emergency situations, with only 21 | features required to boot a Linux kernel. 22 | 23 | config BR2_PACKAGE_RPI_FIRMWARE_CUSTOM_DEFAULT 24 | bool "default" 25 | help 26 | The default firmware, that enables standard GPU features. 27 | 28 | config BR2_PACKAGE_RPI_FIRMWARE_CUSTOM_X 29 | bool "extended ('x', more codecs)" 30 | help 31 | The extended firmware, that enables additional GPU features 32 | (eg. more audio/video codecs). 33 | 34 | config BR2_PACKAGE_RPI_FIRMWARE_CUSTOM_CD 35 | bool "cut-down ('cd', emergency)" 36 | help 37 | The cut-down firmware, for emergency situations, with only 38 | features required to boot a Linux kernel. 39 | 40 | endchoice 41 | 42 | config BR2_PACKAGE_RPI_FIRMWARE_CUSTOM_BOOT 43 | string 44 | default "" if BR2_PACKAGE_RPI_FIRMWARE_CUSTOM_DEFAULT 45 | default "_x" if BR2_PACKAGE_RPI_FIRMWARE_CUSTOM_X 46 | default "_cd" if BR2_PACKAGE_RPI_FIRMWARE_CUSTOM_CD 47 | 48 | config BR2_PACKAGE_RPI_FIRMWARE_CUSTOM_INSTALL_DTBS 49 | bool "Install Device Tree Blobs (DTBs)" 50 | depends on !BR2_LINUX_KERNEL_DTS_SUPPORT 51 | default y 52 | help 53 | If you are using a Linux kernel <= 3.18, you should say 'y' here. 54 | 55 | If you are using a Linux kernel >= 3.19, you should say 'n' here, 56 | and enable BR2_LINUX_KERNEL_DTS_SUPPORT to let the kernel build 57 | the DTB. 58 | 59 | config BR2_PACKAGE_RPI_FIRMWARE_CUSTOM_INSTALL_DTB_OVERLAYS 60 | bool "Install DTB overlays" 61 | depends on BR2_PACKAGE_RPI_FIRMWARE_CUSTOM_INSTALL_DTBS \ 62 | || BR2_LINUX_KERNEL_DTS_SUPPORT 63 | default y 64 | help 65 | Say 'y' here if you need to load one or more of the DTB overlays, 66 | to support HATs (Hardware Attached on Top, add-on modules). 67 | 68 | config BR2_PACKAGE_RPI_FIRMWARE_CUSTOM_INSTALL_VCDBG 69 | bool "vcdbg" 70 | depends on BR2_TOOLCHAIN_USES_GLIBC 71 | depends on BR2_INSTALL_LIBSTDCPP # rpi-userland 72 | select BR2_PACKAGE_RPI_USERLAND 73 | help 74 | Install vcdbg, to help debug communication with the GPU. 75 | 76 | comment "vcdbg needs a glibc toolchain w/ C++" 77 | depends on !BR2_TOOLCHAIN_USES_GLIBC || !BR2_INSTALL_LIBSTDCPP 78 | 79 | endif # BR2_PACKAGE_RPI_FIRMWARE_CUSTOM 80 | -------------------------------------------------------------------------------- /gpioexpand/package/rpi-firmware-custom/rpi-firmware-custom.mk: -------------------------------------------------------------------------------- 1 | ################################################################################ 2 | # 3 | # rpi-firmware 4 | # 5 | ################################################################################ 6 | 7 | RPI_FIRMWARE_CUSTOM_VERSION = 7a661e021417ebd6552494006b64c3eb2ebca644 8 | #RPI_FIRMWARE_CUSTOM_VERSION = 0f315f88ac91f9be93544bfd757f8d55ca4cf099 9 | #RPI_FIRMWARE_CUSTOM_VERSION = b84b5f08db920a1cafb838bb2914b9dcf7c597da 10 | RPI_FIRMWARE_CUSTOM_SITE = $(call github,raspberrypi,firmware,$(RPI_FIRMWARE_CUSTOM_VERSION)) 11 | RPI_FIRMWARE_CUSTOM_LICENSE = BSD-3c 12 | RPI_FIRMWARE_CUSTOM_LICENSE_FILES = boot/LICENCE.broadcom 13 | RPI_FIRMWARE_CUSTOM_INSTALL_IMAGES = YES 14 | 15 | ifeq ($(BR2_PACKAGE_RPI_FIRMWARE_CUSTOM_INSTALL_DTBS),y) 16 | define RPI_FIRMWARE_CUSTOM_INSTALL_DTB 17 | $(INSTALL) -D -m 0644 $(@D)/boot/bcm2708-rpi-b.dtb $(BINARIES_DIR)/rpi-firmware/bcm2708-rpi-b.dtb 18 | $(INSTALL) -D -m 0644 $(@D)/boot/bcm2708-rpi-b-plus.dtb $(BINARIES_DIR)/rpi-firmware/bcm2708-rpi-b-plus.dtb 19 | $(INSTALL) -D -m 0644 $(@D)/boot/bcm2709-rpi-2-b.dtb $(BINARIES_DIR)/rpi-firmware/bcm2709-rpi-2-b.dtb 20 | $(INSTALL) -D -m 0644 $(@D)/boot/bcm2710-rpi-3-b.dtb $(BINARIES_DIR)/rpi-firmware/bcm2710-rpi-3-b.dtb 21 | endef 22 | endif 23 | 24 | ifeq ($(BR2_PACKAGE_RPI_FIRMWARE_CUSTOM_INSTALL_DTB_OVERLAYS),y) 25 | define RPI_FIRMWARE_CUSTOM_INSTALL_DTB_OVERLAYS 26 | for ovldtb in $(@D)/boot/overlays/*.dtbo; do \ 27 | $(INSTALL) -D -m 0644 $${ovldtb} $(BINARIES_DIR)/rpi-firmware/overlays/$${ovldtb##*/} || exit 1; \ 28 | done 29 | endef 30 | endif 31 | 32 | ifeq ($(BR2_PACKAGE_RPI_FIRMWARE_CUSTOM_INSTALL_VCDBG),y) 33 | define RPI_FIRMWARE_CUSTOM_INSTALL_TARGET_CMDS 34 | $(INSTALL) -D -m 0700 $(@D)/$(if BR2_ARM_EABIHF,hardfp/)opt/vc/bin/vcdbg \ 35 | $(TARGET_DIR)/usr/sbin/vcdbg 36 | endef 37 | endif # INSTALL_VCDBG 38 | 39 | define RPI_FIRMWARE_CUSTOM_INSTALL_IMAGES_CMDS 40 | $(INSTALL) -D -m 0644 $(@D)/boot/bootcode.bin $(BINARIES_DIR)/rpi-firmware/bootcode.bin 41 | $(INSTALL) -D -m 0644 $(@D)/boot/start$(BR2_PACKAGE_RPI_FIRMWARE_CUSTOM_BOOT).elf $(BINARIES_DIR)/rpi-firmware/start.elf 42 | $(INSTALL) -D -m 0644 $(@D)/boot/fixup$(BR2_PACKAGE_RPI_FIRMWARE_CUSTOM_BOOT).dat $(BINARIES_DIR)/rpi-firmware/fixup.dat 43 | $(INSTALL) -D -m 0644 package/rpi-firmware/config.txt $(BINARIES_DIR)/rpi-firmware/config.txt 44 | $(INSTALL) -D -m 0644 package/rpi-firmware/cmdline.txt $(BINARIES_DIR)/rpi-firmware/cmdline.txt 45 | $(RPI_FIRMWARE_CUSTOM_INSTALL_DTB) 46 | $(RPI_FIRMWARE_CUSTOM_INSTALL_DTB_OVERLAYS) 47 | endef 48 | 49 | $(eval $(generic-package)) 50 | -------------------------------------------------------------------------------- /output/LICENSE: -------------------------------------------------------------------------------- 1 | === 2 | Overview 3 | === 4 | 5 | This image incorporates the following packages: 6 | 7 | "PACKAGE","VERSION","LICENSE","LICENSE FILES","SOURCE ARCHIVE","SOURCE SITE" 8 | "uclibc","1.0.22","LGPLv2.1+","COPYING.LIB","uClibc-ng-1.0.22.tar.xz","http://downloads.uclibc-ng.org/releases/1.0.22" 9 | "linux-headers","4.8.17","GPLv2","COPYING","linux-4.8.17.tar.xz","https://cdn.kernel.org/pub/linux/kernel/v4.x" 10 | "busybox","1.26.2","GPLv2","LICENSE","busybox-1.26.2.tar.bz2","http://www.busybox.net/downloads" 11 | "linux","rpi-4.4.y","GPLv2","COPYING","linux-rpi-4.4.y.tar.gz","https://github.com/raspberrypi/linux.git" 12 | "pigpio","114653357b8bf8b15213c52fbe5bcb2695d7d90b","unlicense","UNLICENCE","pigpio-114653357b8bf8b15213c52fbe5bcb2695d7d90b.tar.gz","https://github.com/joan2937/pigpio/archive/114653357b8bf8b15213c52fbe5bcb2695d7d90b" 13 | "rpi-firmware-custom","b84b5f08db920a1cafb838bb2914b9dcf7c597da","BSD-3c","boot/LICENCE.broadcom","rpi-firmware-custom-b84b5f08db920a1cafb838bb2914b9dcf7c597da.tar.gz","https://github.com/raspberrypi/firmware/archive/b84b5f08db920a1cafb838bb2914b9dcf7c597da" 14 | 15 | Note: the "custom" in "rpi-firmware-custom" refers to that we are using a git version different than the buildroot-2017.02 default. 16 | The software itself is not custom, and can be downloaded from normal raspberrypi/firmware github. 17 | 18 | 19 | === 20 | uClibc license 21 | === 22 | 23 | GNU LESSER GENERAL PUBLIC LICENSE 24 | Version 2.1, February 1999 25 | 26 | Copyright (C) 1991, 1999 Free Software Foundation, Inc. 27 | 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA 28 | Everyone is permitted to copy and distribute verbatim copies 29 | of this license document, but changing it is not allowed. 30 | 31 | [This is the first released version of the Lesser GPL. It also counts 32 | as the successor of the GNU Library Public License, version 2, hence 33 | the version number 2.1.] 34 | 35 | Preamble 36 | 37 | The licenses for most software are designed to take away your 38 | freedom to share and change it. By contrast, the GNU General Public 39 | Licenses are intended to guarantee your freedom to share and change 40 | free software--to make sure the software is free for all its users. 41 | 42 | This license, the Lesser General Public License, applies to some 43 | specially designated software packages--typically libraries--of the 44 | Free Software Foundation and other authors who decide to use it. You 45 | can use it too, but we suggest you first think carefully about whether 46 | this license or the ordinary General Public License is the better 47 | strategy to use in any particular case, based on the explanations below. 48 | 49 | When we speak of free software, we are referring to freedom of use, 50 | not price. Our General Public Licenses are designed to make sure that 51 | you have the freedom to distribute copies of free software (and charge 52 | for this service if you wish); that you receive source code or can get 53 | it if you want it; that you can change the software and use pieces of 54 | it in new free programs; and that you are informed that you can do 55 | these things. 56 | 57 | To protect your rights, we need to make restrictions that forbid 58 | distributors to deny you these rights or to ask you to surrender these 59 | rights. These restrictions translate to certain responsibilities for 60 | you if you distribute copies of the library or if you modify it. 61 | 62 | For example, if you distribute copies of the library, whether gratis 63 | or for a fee, you must give the recipients all the rights that we gave 64 | you. You must make sure that they, too, receive or can get the source 65 | code. If you link other code with the library, you must provide 66 | complete object files to the recipients, so that they can relink them 67 | with the library after making changes to the library and recompiling 68 | it. And you must show them these terms so they know their rights. 69 | 70 | We protect your rights with a two-step method: (1) we copyright the 71 | library, and (2) we offer you this license, which gives you legal 72 | permission to copy, distribute and/or modify the library. 73 | 74 | To protect each distributor, we want to make it very clear that 75 | there is no warranty for the free library. Also, if the library is 76 | modified by someone else and passed on, the recipients should know 77 | that what they have is not the original version, so that the original 78 | author's reputation will not be affected by problems that might be 79 | introduced by others. 80 | 81 | Finally, software patents pose a constant threat to the existence of 82 | any free program. We wish to make sure that a company cannot 83 | effectively restrict the users of a free program by obtaining a 84 | restrictive license from a patent holder. Therefore, we insist that 85 | any patent license obtained for a version of the library must be 86 | consistent with the full freedom of use specified in this license. 87 | 88 | Most GNU software, including some libraries, is covered by the 89 | ordinary GNU General Public License. This license, the GNU Lesser 90 | General Public License, applies to certain designated libraries, and 91 | is quite different from the ordinary General Public License. We use 92 | this license for certain libraries in order to permit linking those 93 | libraries into non-free programs. 94 | 95 | When a program is linked with a library, whether statically or using 96 | a shared library, the combination of the two is legally speaking a 97 | combined work, a derivative of the original library. The ordinary 98 | General Public License therefore permits such linking only if the 99 | entire combination fits its criteria of freedom. The Lesser General 100 | Public License permits more lax criteria for linking other code with 101 | the library. 102 | 103 | We call this license the "Lesser" General Public License because it 104 | does Less to protect the user's freedom than the ordinary General 105 | Public License. It also provides other free software developers Less 106 | of an advantage over competing non-free programs. These disadvantages 107 | are the reason we use the ordinary General Public License for many 108 | libraries. However, the Lesser license provides advantages in certain 109 | special circumstances. 110 | 111 | For example, on rare occasions, there may be a special need to 112 | encourage the widest possible use of a certain library, so that it becomes 113 | a de-facto standard. To achieve this, non-free programs must be 114 | allowed to use the library. A more frequent case is that a free 115 | library does the same job as widely used non-free libraries. In this 116 | case, there is little to gain by limiting the free library to free 117 | software only, so we use the Lesser General Public License. 118 | 119 | In other cases, permission to use a particular library in non-free 120 | programs enables a greater number of people to use a large body of 121 | free software. For example, permission to use the GNU C Library in 122 | non-free programs enables many more people to use the whole GNU 123 | operating system, as well as its variant, the GNU/Linux operating 124 | system. 125 | 126 | Although the Lesser General Public License is Less protective of the 127 | users' freedom, it does ensure that the user of a program that is 128 | linked with the Library has the freedom and the wherewithal to run 129 | that program using a modified version of the Library. 130 | 131 | The precise terms and conditions for copying, distribution and 132 | modification follow. Pay close attention to the difference between a 133 | "work based on the library" and a "work that uses the library". The 134 | former contains code derived from the library, whereas the latter must 135 | be combined with the library in order to run. 136 | 137 | GNU LESSER GENERAL PUBLIC LICENSE 138 | TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 139 | 140 | 0. This License Agreement applies to any software library or other 141 | program which contains a notice placed by the copyright holder or 142 | other authorized party saying it may be distributed under the terms of 143 | this Lesser General Public License (also called "this License"). 144 | Each licensee is addressed as "you". 145 | 146 | A "library" means a collection of software functions and/or data 147 | prepared so as to be conveniently linked with application programs 148 | (which use some of those functions and data) to form executables. 149 | 150 | The "Library", below, refers to any such software library or work 151 | which has been distributed under these terms. A "work based on the 152 | Library" means either the Library or any derivative work under 153 | copyright law: that is to say, a work containing the Library or a 154 | portion of it, either verbatim or with modifications and/or translated 155 | straightforwardly into another language. (Hereinafter, translation is 156 | included without limitation in the term "modification".) 157 | 158 | "Source code" for a work means the preferred form of the work for 159 | making modifications to it. For a library, complete source code means 160 | all the source code for all modules it contains, plus any associated 161 | interface definition files, plus the scripts used to control compilation 162 | and installation of the library. 163 | 164 | Activities other than copying, distribution and modification are not 165 | covered by this License; they are outside its scope. The act of 166 | running a program using the Library is not restricted, and output from 167 | such a program is covered only if its contents constitute a work based 168 | on the Library (independent of the use of the Library in a tool for 169 | writing it). Whether that is true depends on what the Library does 170 | and what the program that uses the Library does. 171 | 172 | 1. You may copy and distribute verbatim copies of the Library's 173 | complete source code as you receive it, in any medium, provided that 174 | you conspicuously and appropriately publish on each copy an 175 | appropriate copyright notice and disclaimer of warranty; keep intact 176 | all the notices that refer to this License and to the absence of any 177 | warranty; and distribute a copy of this License along with the 178 | Library. 179 | 180 | You may charge a fee for the physical act of transferring a copy, 181 | and you may at your option offer warranty protection in exchange for a 182 | fee. 183 | 184 | 2. You may modify your copy or copies of the Library or any portion 185 | of it, thus forming a work based on the Library, and copy and 186 | distribute such modifications or work under the terms of Section 1 187 | above, provided that you also meet all of these conditions: 188 | 189 | a) The modified work must itself be a software library. 190 | 191 | b) You must cause the files modified to carry prominent notices 192 | stating that you changed the files and the date of any change. 193 | 194 | c) You must cause the whole of the work to be licensed at no 195 | charge to all third parties under the terms of this License. 196 | 197 | d) If a facility in the modified Library refers to a function or a 198 | table of data to be supplied by an application program that uses 199 | the facility, other than as an argument passed when the facility 200 | is invoked, then you must make a good faith effort to ensure that, 201 | in the event an application does not supply such function or 202 | table, the facility still operates, and performs whatever part of 203 | its purpose remains meaningful. 204 | 205 | (For example, a function in a library to compute square roots has 206 | a purpose that is entirely well-defined independent of the 207 | application. Therefore, Subsection 2d requires that any 208 | application-supplied function or table used by this function must 209 | be optional: if the application does not supply it, the square 210 | root function must still compute square roots.) 211 | 212 | These requirements apply to the modified work as a whole. If 213 | identifiable sections of that work are not derived from the Library, 214 | and can be reasonably considered independent and separate works in 215 | themselves, then this License, and its terms, do not apply to those 216 | sections when you distribute them as separate works. But when you 217 | distribute the same sections as part of a whole which is a work based 218 | on the Library, the distribution of the whole must be on the terms of 219 | this License, whose permissions for other licensees extend to the 220 | entire whole, and thus to each and every part regardless of who wrote 221 | it. 222 | 223 | Thus, it is not the intent of this section to claim rights or contest 224 | your rights to work written entirely by you; rather, the intent is to 225 | exercise the right to control the distribution of derivative or 226 | collective works based on the Library. 227 | 228 | In addition, mere aggregation of another work not based on the Library 229 | with the Library (or with a work based on the Library) on a volume of 230 | a storage or distribution medium does not bring the other work under 231 | the scope of this License. 232 | 233 | 3. You may opt to apply the terms of the ordinary GNU General Public 234 | License instead of this License to a given copy of the Library. To do 235 | this, you must alter all the notices that refer to this License, so 236 | that they refer to the ordinary GNU General Public License, version 2, 237 | instead of to this License. (If a newer version than version 2 of the 238 | ordinary GNU General Public License has appeared, then you can specify 239 | that version instead if you wish.) Do not make any other change in 240 | these notices. 241 | 242 | Once this change is made in a given copy, it is irreversible for 243 | that copy, so the ordinary GNU General Public License applies to all 244 | subsequent copies and derivative works made from that copy. 245 | 246 | This option is useful when you wish to copy part of the code of 247 | the Library into a program that is not a library. 248 | 249 | 4. You may copy and distribute the Library (or a portion or 250 | derivative of it, under Section 2) in object code or executable form 251 | under the terms of Sections 1 and 2 above provided that you accompany 252 | it with the complete corresponding machine-readable source code, which 253 | must be distributed under the terms of Sections 1 and 2 above on a 254 | medium customarily used for software interchange. 255 | 256 | If distribution of object code is made by offering access to copy 257 | from a designated place, then offering equivalent access to copy the 258 | source code from the same place satisfies the requirement to 259 | distribute the source code, even though third parties are not 260 | compelled to copy the source along with the object code. 261 | 262 | 5. A program that contains no derivative of any portion of the 263 | Library, but is designed to work with the Library by being compiled or 264 | linked with it, is called a "work that uses the Library". Such a 265 | work, in isolation, is not a derivative work of the Library, and 266 | therefore falls outside the scope of this License. 267 | 268 | However, linking a "work that uses the Library" with the Library 269 | creates an executable that is a derivative of the Library (because it 270 | contains portions of the Library), rather than a "work that uses the 271 | library". The executable is therefore covered by this License. 272 | Section 6 states terms for distribution of such executables. 273 | 274 | When a "work that uses the Library" uses material from a header file 275 | that is part of the Library, the object code for the work may be a 276 | derivative work of the Library even though the source code is not. 277 | Whether this is true is especially significant if the work can be 278 | linked without the Library, or if the work is itself a library. The 279 | threshold for this to be true is not precisely defined by law. 280 | 281 | If such an object file uses only numerical parameters, data 282 | structure layouts and accessors, and small macros and small inline 283 | functions (ten lines or less in length), then the use of the object 284 | file is unrestricted, regardless of whether it is legally a derivative 285 | work. (Executables containing this object code plus portions of the 286 | Library will still fall under Section 6.) 287 | 288 | Otherwise, if the work is a derivative of the Library, you may 289 | distribute the object code for the work under the terms of Section 6. 290 | Any executables containing that work also fall under Section 6, 291 | whether or not they are linked directly with the Library itself. 292 | 293 | 6. As an exception to the Sections above, you may also combine or 294 | link a "work that uses the Library" with the Library to produce a 295 | work containing portions of the Library, and distribute that work 296 | under terms of your choice, provided that the terms permit 297 | modification of the work for the customer's own use and reverse 298 | engineering for debugging such modifications. 299 | 300 | You must give prominent notice with each copy of the work that the 301 | Library is used in it and that the Library and its use are covered by 302 | this License. You must supply a copy of this License. If the work 303 | during execution displays copyright notices, you must include the 304 | copyright notice for the Library among them, as well as a reference 305 | directing the user to the copy of this License. Also, you must do one 306 | of these things: 307 | 308 | a) Accompany the work with the complete corresponding 309 | machine-readable source code for the Library including whatever 310 | changes were used in the work (which must be distributed under 311 | Sections 1 and 2 above); and, if the work is an executable linked 312 | with the Library, with the complete machine-readable "work that 313 | uses the Library", as object code and/or source code, so that the 314 | user can modify the Library and then relink to produce a modified 315 | executable containing the modified Library. (It is understood 316 | that the user who changes the contents of definitions files in the 317 | Library will not necessarily be able to recompile the application 318 | to use the modified definitions.) 319 | 320 | b) Use a suitable shared library mechanism for linking with the 321 | Library. A suitable mechanism is one that (1) uses at run time a 322 | copy of the library already present on the user's computer system, 323 | rather than copying library functions into the executable, and (2) 324 | will operate properly with a modified version of the library, if 325 | the user installs one, as long as the modified version is 326 | interface-compatible with the version that the work was made with. 327 | 328 | c) Accompany the work with a written offer, valid for at 329 | least three years, to give the same user the materials 330 | specified in Subsection 6a, above, for a charge no more 331 | than the cost of performing this distribution. 332 | 333 | d) If distribution of the work is made by offering access to copy 334 | from a designated place, offer equivalent access to copy the above 335 | specified materials from the same place. 336 | 337 | e) Verify that the user has already received a copy of these 338 | materials or that you have already sent this user a copy. 339 | 340 | For an executable, the required form of the "work that uses the 341 | Library" must include any data and utility programs needed for 342 | reproducing the executable from it. However, as a special exception, 343 | the materials to be distributed need not include anything that is 344 | normally distributed (in either source or binary form) with the major 345 | components (compiler, kernel, and so on) of the operating system on 346 | which the executable runs, unless that component itself accompanies 347 | the executable. 348 | 349 | It may happen that this requirement contradicts the license 350 | restrictions of other proprietary libraries that do not normally 351 | accompany the operating system. Such a contradiction means you cannot 352 | use both them and the Library together in an executable that you 353 | distribute. 354 | 355 | 7. You may place library facilities that are a work based on the 356 | Library side-by-side in a single library together with other library 357 | facilities not covered by this License, and distribute such a combined 358 | library, provided that the separate distribution of the work based on 359 | the Library and of the other library facilities is otherwise 360 | permitted, and provided that you do these two things: 361 | 362 | a) Accompany the combined library with a copy of the same work 363 | based on the Library, uncombined with any other library 364 | facilities. This must be distributed under the terms of the 365 | Sections above. 366 | 367 | b) Give prominent notice with the combined library of the fact 368 | that part of it is a work based on the Library, and explaining 369 | where to find the accompanying uncombined form of the same work. 370 | 371 | 8. You may not copy, modify, sublicense, link with, or distribute 372 | the Library except as expressly provided under this License. Any 373 | attempt otherwise to copy, modify, sublicense, link with, or 374 | distribute the Library is void, and will automatically terminate your 375 | rights under this License. However, parties who have received copies, 376 | or rights, from you under this License will not have their licenses 377 | terminated so long as such parties remain in full compliance. 378 | 379 | 9. You are not required to accept this License, since you have not 380 | signed it. However, nothing else grants you permission to modify or 381 | distribute the Library or its derivative works. These actions are 382 | prohibited by law if you do not accept this License. Therefore, by 383 | modifying or distributing the Library (or any work based on the 384 | Library), you indicate your acceptance of this License to do so, and 385 | all its terms and conditions for copying, distributing or modifying 386 | the Library or works based on it. 387 | 388 | 10. Each time you redistribute the Library (or any work based on the 389 | Library), the recipient automatically receives a license from the 390 | original licensor to copy, distribute, link with or modify the Library 391 | subject to these terms and conditions. You may not impose any further 392 | restrictions on the recipients' exercise of the rights granted herein. 393 | You are not responsible for enforcing compliance by third parties with 394 | this License. 395 | 396 | 11. If, as a consequence of a court judgment or allegation of patent 397 | infringement or for any other reason (not limited to patent issues), 398 | conditions are imposed on you (whether by court order, agreement or 399 | otherwise) that contradict the conditions of this License, they do not 400 | excuse you from the conditions of this License. If you cannot 401 | distribute so as to satisfy simultaneously your obligations under this 402 | License and any other pertinent obligations, then as a consequence you 403 | may not distribute the Library at all. For example, if a patent 404 | license would not permit royalty-free redistribution of the Library by 405 | all those who receive copies directly or indirectly through you, then 406 | the only way you could satisfy both it and this License would be to 407 | refrain entirely from distribution of the Library. 408 | 409 | If any portion of this section is held invalid or unenforceable under any 410 | particular circumstance, the balance of the section is intended to apply, 411 | and the section as a whole is intended to apply in other circumstances. 412 | 413 | It is not the purpose of this section to induce you to infringe any 414 | patents or other property right claims or to contest validity of any 415 | such claims; this section has the sole purpose of protecting the 416 | integrity of the free software distribution system which is 417 | implemented by public license practices. Many people have made 418 | generous contributions to the wide range of software distributed 419 | through that system in reliance on consistent application of that 420 | system; it is up to the author/donor to decide if he or she is willing 421 | to distribute software through any other system and a licensee cannot 422 | impose that choice. 423 | 424 | This section is intended to make thoroughly clear what is believed to 425 | be a consequence of the rest of this License. 426 | 427 | 12. If the distribution and/or use of the Library is restricted in 428 | certain countries either by patents or by copyrighted interfaces, the 429 | original copyright holder who places the Library under this License may add 430 | an explicit geographical distribution limitation excluding those countries, 431 | so that distribution is permitted only in or among countries not thus 432 | excluded. In such case, this License incorporates the limitation as if 433 | written in the body of this License. 434 | 435 | 13. The Free Software Foundation may publish revised and/or new 436 | versions of the Lesser General Public License from time to time. 437 | Such new versions will be similar in spirit to the present version, 438 | but may differ in detail to address new problems or concerns. 439 | 440 | Each version is given a distinguishing version number. If the Library 441 | specifies a version number of this License which applies to it and 442 | "any later version", you have the option of following the terms and 443 | conditions either of that version or of any later version published by 444 | the Free Software Foundation. If the Library does not specify a 445 | license version number, you may choose any version ever published by 446 | the Free Software Foundation. 447 | 448 | 14. If you wish to incorporate parts of the Library into other free 449 | programs whose distribution conditions are incompatible with these, 450 | write to the author to ask for permission. For software which is 451 | copyrighted by the Free Software Foundation, write to the Free 452 | Software Foundation; we sometimes make exceptions for this. Our 453 | decision will be guided by the two goals of preserving the free status 454 | of all derivatives of our free software and of promoting the sharing 455 | and reuse of software generally. 456 | 457 | NO WARRANTY 458 | 459 | 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO 460 | WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. 461 | EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR 462 | OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY 463 | KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE 464 | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 465 | PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE 466 | LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME 467 | THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 468 | 469 | 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN 470 | WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY 471 | AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU 472 | FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR 473 | CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE 474 | LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING 475 | RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A 476 | FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF 477 | SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH 478 | DAMAGES. 479 | 480 | END OF TERMS AND CONDITIONS 481 | 482 | How to Apply These Terms to Your New Libraries 483 | 484 | If you develop a new library, and you want it to be of the greatest 485 | possible use to the public, we recommend making it free software that 486 | everyone can redistribute and change. You can do so by permitting 487 | redistribution under these terms (or, alternatively, under the terms of the 488 | ordinary General Public License). 489 | 490 | To apply these terms, attach the following notices to the library. It is 491 | safest to attach them to the start of each source file to most effectively 492 | convey the exclusion of warranty; and each file should have at least the 493 | "copyright" line and a pointer to where the full notice is found. 494 | 495 | 496 | Copyright (C) 497 | 498 | This library is free software; you can redistribute it and/or 499 | modify it under the terms of the GNU Lesser General Public 500 | License as published by the Free Software Foundation; either 501 | version 2.1 of the License, or (at your option) any later version. 502 | 503 | This library is distributed in the hope that it will be useful, 504 | but WITHOUT ANY WARRANTY; without even the implied warranty of 505 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 506 | Lesser General Public License for more details. 507 | 508 | You should have received a copy of the GNU Lesser General Public 509 | License along with this library; if not, write to the Free Software 510 | Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA 511 | 512 | Also add information on how to contact you by electronic and paper mail. 513 | 514 | You should also get your employer (if you work as a programmer) or your 515 | school, if any, to sign a "copyright disclaimer" for the library, if 516 | necessary. Here is a sample; alter the names: 517 | 518 | Yoyodyne, Inc., hereby disclaims all copyright interest in the 519 | library `Frob' (a library for tweaking knobs) written by James Random Hacker. 520 | 521 | , 1 April 1990 522 | Ty Coon, President of Vice 523 | 524 | That's all there is to it! 525 | 526 | 527 | 528 | 529 | 530 | === 531 | Busybox license 532 | === 533 | 534 | --- A note on GPL versions 535 | 536 | BusyBox is distributed under version 2 of the General Public License (included 537 | in its entirety, below). Version 2 is the only version of this license which 538 | this version of BusyBox (or modified versions derived from this one) may be 539 | distributed under. 540 | 541 | ------------------------------------------------------------------------ 542 | GNU GENERAL PUBLIC LICENSE 543 | Version 2, June 1991 544 | 545 | Copyright (C) 1989, 1991 Free Software Foundation, Inc. 546 | 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA 547 | Everyone is permitted to copy and distribute verbatim copies 548 | of this license document, but changing it is not allowed. 549 | 550 | Preamble 551 | 552 | The licenses for most software are designed to take away your 553 | freedom to share and change it. By contrast, the GNU General Public 554 | License is intended to guarantee your freedom to share and change free 555 | software--to make sure the software is free for all its users. This 556 | General Public License applies to most of the Free Software 557 | Foundation's software and to any other program whose authors commit to 558 | using it. (Some other Free Software Foundation software is covered by 559 | the GNU Library General Public License instead.) You can apply it to 560 | your programs, too. 561 | 562 | When we speak of free software, we are referring to freedom, not 563 | price. Our General Public Licenses are designed to make sure that you 564 | have the freedom to distribute copies of free software (and charge for 565 | this service if you wish), that you receive source code or can get it 566 | if you want it, that you can change the software or use pieces of it 567 | in new free programs; and that you know you can do these things. 568 | 569 | To protect your rights, we need to make restrictions that forbid 570 | anyone to deny you these rights or to ask you to surrender the rights. 571 | These restrictions translate to certain responsibilities for you if you 572 | distribute copies of the software, or if you modify it. 573 | 574 | For example, if you distribute copies of such a program, whether 575 | gratis or for a fee, you must give the recipients all the rights that 576 | you have. You must make sure that they, too, receive or can get the 577 | source code. And you must show them these terms so they know their 578 | rights. 579 | 580 | We protect your rights with two steps: (1) copyright the software, and 581 | (2) offer you this license which gives you legal permission to copy, 582 | distribute and/or modify the software. 583 | 584 | Also, for each author's protection and ours, we want to make certain 585 | that everyone understands that there is no warranty for this free 586 | software. If the software is modified by someone else and passed on, we 587 | want its recipients to know that what they have is not the original, so 588 | that any problems introduced by others will not reflect on the original 589 | authors' reputations. 590 | 591 | Finally, any free program is threatened constantly by software 592 | patents. We wish to avoid the danger that redistributors of a free 593 | program will individually obtain patent licenses, in effect making the 594 | program proprietary. To prevent this, we have made it clear that any 595 | patent must be licensed for everyone's free use or not licensed at all. 596 | 597 | The precise terms and conditions for copying, distribution and 598 | modification follow. 599 | 600 | GNU GENERAL PUBLIC LICENSE 601 | TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 602 | 603 | 0. This License applies to any program or other work which contains 604 | a notice placed by the copyright holder saying it may be distributed 605 | under the terms of this General Public License. The "Program", below, 606 | refers to any such program or work, and a "work based on the Program" 607 | means either the Program or any derivative work under copyright law: 608 | that is to say, a work containing the Program or a portion of it, 609 | either verbatim or with modifications and/or translated into another 610 | language. (Hereinafter, translation is included without limitation in 611 | the term "modification".) Each licensee is addressed as "you". 612 | 613 | Activities other than copying, distribution and modification are not 614 | covered by this License; they are outside its scope. The act of 615 | running the Program is not restricted, and the output from the Program 616 | is covered only if its contents constitute a work based on the 617 | Program (independent of having been made by running the Program). 618 | Whether that is true depends on what the Program does. 619 | 620 | 1. You may copy and distribute verbatim copies of the Program's 621 | source code as you receive it, in any medium, provided that you 622 | conspicuously and appropriately publish on each copy an appropriate 623 | copyright notice and disclaimer of warranty; keep intact all the 624 | notices that refer to this License and to the absence of any warranty; 625 | and give any other recipients of the Program a copy of this License 626 | along with the Program. 627 | 628 | You may charge a fee for the physical act of transferring a copy, and 629 | you may at your option offer warranty protection in exchange for a fee. 630 | 631 | 2. You may modify your copy or copies of the Program or any portion 632 | of it, thus forming a work based on the Program, and copy and 633 | distribute such modifications or work under the terms of Section 1 634 | above, provided that you also meet all of these conditions: 635 | 636 | a) You must cause the modified files to carry prominent notices 637 | stating that you changed the files and the date of any change. 638 | 639 | b) You must cause any work that you distribute or publish, that in 640 | whole or in part contains or is derived from the Program or any 641 | part thereof, to be licensed as a whole at no charge to all third 642 | parties under the terms of this License. 643 | 644 | c) If the modified program normally reads commands interactively 645 | when run, you must cause it, when started running for such 646 | interactive use in the most ordinary way, to print or display an 647 | announcement including an appropriate copyright notice and a 648 | notice that there is no warranty (or else, saying that you provide 649 | a warranty) and that users may redistribute the program under 650 | these conditions, and telling the user how to view a copy of this 651 | License. (Exception: if the Program itself is interactive but 652 | does not normally print such an announcement, your work based on 653 | the Program is not required to print an announcement.) 654 | 655 | These requirements apply to the modified work as a whole. If 656 | identifiable sections of that work are not derived from the Program, 657 | and can be reasonably considered independent and separate works in 658 | themselves, then this License, and its terms, do not apply to those 659 | sections when you distribute them as separate works. But when you 660 | distribute the same sections as part of a whole which is a work based 661 | on the Program, the distribution of the whole must be on the terms of 662 | this License, whose permissions for other licensees extend to the 663 | entire whole, and thus to each and every part regardless of who wrote it. 664 | 665 | Thus, it is not the intent of this section to claim rights or contest 666 | your rights to work written entirely by you; rather, the intent is to 667 | exercise the right to control the distribution of derivative or 668 | collective works based on the Program. 669 | 670 | In addition, mere aggregation of another work not based on the Program 671 | with the Program (or with a work based on the Program) on a volume of 672 | a storage or distribution medium does not bring the other work under 673 | the scope of this License. 674 | 675 | 3. You may copy and distribute the Program (or a work based on it, 676 | under Section 2) in object code or executable form under the terms of 677 | Sections 1 and 2 above provided that you also do one of the following: 678 | 679 | a) Accompany it with the complete corresponding machine-readable 680 | source code, which must be distributed under the terms of Sections 681 | 1 and 2 above on a medium customarily used for software interchange; or, 682 | 683 | b) Accompany it with a written offer, valid for at least three 684 | years, to give any third party, for a charge no more than your 685 | cost of physically performing source distribution, a complete 686 | machine-readable copy of the corresponding source code, to be 687 | distributed under the terms of Sections 1 and 2 above on a medium 688 | customarily used for software interchange; or, 689 | 690 | c) Accompany it with the information you received as to the offer 691 | to distribute corresponding source code. (This alternative is 692 | allowed only for noncommercial distribution and only if you 693 | received the program in object code or executable form with such 694 | an offer, in accord with Subsection b above.) 695 | 696 | The source code for a work means the preferred form of the work for 697 | making modifications to it. For an executable work, complete source 698 | code means all the source code for all modules it contains, plus any 699 | associated interface definition files, plus the scripts used to 700 | control compilation and installation of the executable. However, as a 701 | special exception, the source code distributed need not include 702 | anything that is normally distributed (in either source or binary 703 | form) with the major components (compiler, kernel, and so on) of the 704 | operating system on which the executable runs, unless that component 705 | itself accompanies the executable. 706 | 707 | If distribution of executable or object code is made by offering 708 | access to copy from a designated place, then offering equivalent 709 | access to copy the source code from the same place counts as 710 | distribution of the source code, even though third parties are not 711 | compelled to copy the source along with the object code. 712 | 713 | 4. You may not copy, modify, sublicense, or distribute the Program 714 | except as expressly provided under this License. Any attempt 715 | otherwise to copy, modify, sublicense or distribute the Program is 716 | void, and will automatically terminate your rights under this License. 717 | However, parties who have received copies, or rights, from you under 718 | this License will not have their licenses terminated so long as such 719 | parties remain in full compliance. 720 | 721 | 5. You are not required to accept this License, since you have not 722 | signed it. However, nothing else grants you permission to modify or 723 | distribute the Program or its derivative works. These actions are 724 | prohibited by law if you do not accept this License. Therefore, by 725 | modifying or distributing the Program (or any work based on the 726 | Program), you indicate your acceptance of this License to do so, and 727 | all its terms and conditions for copying, distributing or modifying 728 | the Program or works based on it. 729 | 730 | 6. Each time you redistribute the Program (or any work based on the 731 | Program), the recipient automatically receives a license from the 732 | original licensor to copy, distribute or modify the Program subject to 733 | these terms and conditions. You may not impose any further 734 | restrictions on the recipients' exercise of the rights granted herein. 735 | You are not responsible for enforcing compliance by third parties to 736 | this License. 737 | 738 | 7. If, as a consequence of a court judgment or allegation of patent 739 | infringement or for any other reason (not limited to patent issues), 740 | conditions are imposed on you (whether by court order, agreement or 741 | otherwise) that contradict the conditions of this License, they do not 742 | excuse you from the conditions of this License. If you cannot 743 | distribute so as to satisfy simultaneously your obligations under this 744 | License and any other pertinent obligations, then as a consequence you 745 | may not distribute the Program at all. For example, if a patent 746 | license would not permit royalty-free redistribution of the Program by 747 | all those who receive copies directly or indirectly through you, then 748 | the only way you could satisfy both it and this License would be to 749 | refrain entirely from distribution of the Program. 750 | 751 | If any portion of this section is held invalid or unenforceable under 752 | any particular circumstance, the balance of the section is intended to 753 | apply and the section as a whole is intended to apply in other 754 | circumstances. 755 | 756 | It is not the purpose of this section to induce you to infringe any 757 | patents or other property right claims or to contest validity of any 758 | such claims; this section has the sole purpose of protecting the 759 | integrity of the free software distribution system, which is 760 | implemented by public license practices. Many people have made 761 | generous contributions to the wide range of software distributed 762 | through that system in reliance on consistent application of that 763 | system; it is up to the author/donor to decide if he or she is willing 764 | to distribute software through any other system and a licensee cannot 765 | impose that choice. 766 | 767 | This section is intended to make thoroughly clear what is believed to 768 | be a consequence of the rest of this License. 769 | 770 | 8. If the distribution and/or use of the Program is restricted in 771 | certain countries either by patents or by copyrighted interfaces, the 772 | original copyright holder who places the Program under this License 773 | may add an explicit geographical distribution limitation excluding 774 | those countries, so that distribution is permitted only in or among 775 | countries not thus excluded. In such case, this License incorporates 776 | the limitation as if written in the body of this License. 777 | 778 | 9. The Free Software Foundation may publish revised and/or new versions 779 | of the General Public License from time to time. Such new versions will 780 | be similar in spirit to the present version, but may differ in detail to 781 | address new problems or concerns. 782 | 783 | Each version is given a distinguishing version number. If the Program 784 | specifies a version number of this License which applies to it and "any 785 | later version", you have the option of following the terms and conditions 786 | either of that version or of any later version published by the Free 787 | Software Foundation. If the Program does not specify a version number of 788 | this License, you may choose any version ever published by the Free Software 789 | Foundation. 790 | 791 | 10. If you wish to incorporate parts of the Program into other free 792 | programs whose distribution conditions are different, write to the author 793 | to ask for permission. For software which is copyrighted by the Free 794 | Software Foundation, write to the Free Software Foundation; we sometimes 795 | make exceptions for this. Our decision will be guided by the two goals 796 | of preserving the free status of all derivatives of our free software and 797 | of promoting the sharing and reuse of software generally. 798 | 799 | NO WARRANTY 800 | 801 | 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY 802 | FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN 803 | OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES 804 | PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED 805 | OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 806 | MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS 807 | TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE 808 | PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, 809 | REPAIR OR CORRECTION. 810 | 811 | 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING 812 | WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR 813 | REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, 814 | INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING 815 | OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED 816 | TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY 817 | YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER 818 | PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE 819 | POSSIBILITY OF SUCH DAMAGES. 820 | 821 | END OF TERMS AND CONDITIONS 822 | 823 | How to Apply These Terms to Your New Programs 824 | 825 | If you develop a new program, and you want it to be of the greatest 826 | possible use to the public, the best way to achieve this is to make it 827 | free software which everyone can redistribute and change under these terms. 828 | 829 | To do so, attach the following notices to the program. It is safest 830 | to attach them to the start of each source file to most effectively 831 | convey the exclusion of warranty; and each file should have at least 832 | the "copyright" line and a pointer to where the full notice is found. 833 | 834 | 835 | Copyright (C) 836 | 837 | This program is free software; you can redistribute it and/or modify 838 | it under the terms of the GNU General Public License as published by 839 | the Free Software Foundation; either version 2 of the License, or 840 | (at your option) any later version. 841 | 842 | This program is distributed in the hope that it will be useful, 843 | but WITHOUT ANY WARRANTY; without even the implied warranty of 844 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 845 | GNU General Public License for more details. 846 | 847 | You should have received a copy of the GNU General Public License 848 | along with this program; if not, write to the Free Software 849 | Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA 850 | 851 | 852 | Also add information on how to contact you by electronic and paper mail. 853 | 854 | If the program is interactive, make it output a short notice like this 855 | when it starts in an interactive mode: 856 | 857 | Gnomovision version 69, Copyright (C) year name of author 858 | Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. 859 | This is free software, and you are welcome to redistribute it 860 | under certain conditions; type `show c' for details. 861 | 862 | The hypothetical commands `show w' and `show c' should show the appropriate 863 | parts of the General Public License. Of course, the commands you use may 864 | be called something other than `show w' and `show c'; they could even be 865 | mouse-clicks or menu items--whatever suits your program. 866 | 867 | You should also get your employer (if you work as a programmer) or your 868 | school, if any, to sign a "copyright disclaimer" for the program, if 869 | necessary. Here is a sample; alter the names: 870 | 871 | Yoyodyne, Inc., hereby disclaims all copyright interest in the program 872 | `Gnomovision' (which makes passes at compilers) written by James Hacker. 873 | 874 | , 1 April 1989 875 | Ty Coon, President of Vice 876 | 877 | This General Public License does not permit incorporating your program into 878 | proprietary programs. If your program is a subroutine library, you may 879 | consider it more useful to permit linking proprietary applications with the 880 | library. If this is what you want to do, use the GNU Library General 881 | Public License instead of this License. 882 | 883 | 884 | === 885 | Linux kernel license 886 | === 887 | 888 | 889 | NOTE! This copyright does *not* cover user programs that use kernel 890 | services by normal system calls - this is merely considered normal use 891 | of the kernel, and does *not* fall under the heading of "derived work". 892 | Also note that the GPL below is copyrighted by the Free Software 893 | Foundation, but the instance of code that it refers to (the Linux 894 | kernel) is copyrighted by me and others who actually wrote it. 895 | 896 | Also note that the only valid version of the GPL as far as the kernel 897 | is concerned is _this_ particular version of the license (ie v2, not 898 | v2.2 or v3.x or whatever), unless explicitly otherwise stated. 899 | 900 | Linus Torvalds 901 | 902 | ---------------------------------------- 903 | 904 | GNU GENERAL PUBLIC LICENSE 905 | Version 2, June 1991 906 | 907 | Copyright (C) 1989, 1991 Free Software Foundation, Inc. 908 | 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA 909 | Everyone is permitted to copy and distribute verbatim copies 910 | of this license document, but changing it is not allowed. 911 | 912 | Preamble 913 | 914 | The licenses for most software are designed to take away your 915 | freedom to share and change it. By contrast, the GNU General Public 916 | License is intended to guarantee your freedom to share and change free 917 | software--to make sure the software is free for all its users. This 918 | General Public License applies to most of the Free Software 919 | Foundation's software and to any other program whose authors commit to 920 | using it. (Some other Free Software Foundation software is covered by 921 | the GNU Library General Public License instead.) You can apply it to 922 | your programs, too. 923 | 924 | When we speak of free software, we are referring to freedom, not 925 | price. Our General Public Licenses are designed to make sure that you 926 | have the freedom to distribute copies of free software (and charge for 927 | this service if you wish), that you receive source code or can get it 928 | if you want it, that you can change the software or use pieces of it 929 | in new free programs; and that you know you can do these things. 930 | 931 | To protect your rights, we need to make restrictions that forbid 932 | anyone to deny you these rights or to ask you to surrender the rights. 933 | These restrictions translate to certain responsibilities for you if you 934 | distribute copies of the software, or if you modify it. 935 | 936 | For example, if you distribute copies of such a program, whether 937 | gratis or for a fee, you must give the recipients all the rights that 938 | you have. You must make sure that they, too, receive or can get the 939 | source code. And you must show them these terms so they know their 940 | rights. 941 | 942 | We protect your rights with two steps: (1) copyright the software, and 943 | (2) offer you this license which gives you legal permission to copy, 944 | distribute and/or modify the software. 945 | 946 | Also, for each author's protection and ours, we want to make certain 947 | that everyone understands that there is no warranty for this free 948 | software. If the software is modified by someone else and passed on, we 949 | want its recipients to know that what they have is not the original, so 950 | that any problems introduced by others will not reflect on the original 951 | authors' reputations. 952 | 953 | Finally, any free program is threatened constantly by software 954 | patents. We wish to avoid the danger that redistributors of a free 955 | program will individually obtain patent licenses, in effect making the 956 | program proprietary. To prevent this, we have made it clear that any 957 | patent must be licensed for everyone's free use or not licensed at all. 958 | 959 | The precise terms and conditions for copying, distribution and 960 | modification follow. 961 | 962 | GNU GENERAL PUBLIC LICENSE 963 | TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 964 | 965 | 0. This License applies to any program or other work which contains 966 | a notice placed by the copyright holder saying it may be distributed 967 | under the terms of this General Public License. The "Program", below, 968 | refers to any such program or work, and a "work based on the Program" 969 | means either the Program or any derivative work under copyright law: 970 | that is to say, a work containing the Program or a portion of it, 971 | either verbatim or with modifications and/or translated into another 972 | language. (Hereinafter, translation is included without limitation in 973 | the term "modification".) Each licensee is addressed as "you". 974 | 975 | Activities other than copying, distribution and modification are not 976 | covered by this License; they are outside its scope. The act of 977 | running the Program is not restricted, and the output from the Program 978 | is covered only if its contents constitute a work based on the 979 | Program (independent of having been made by running the Program). 980 | Whether that is true depends on what the Program does. 981 | 982 | 1. You may copy and distribute verbatim copies of the Program's 983 | source code as you receive it, in any medium, provided that you 984 | conspicuously and appropriately publish on each copy an appropriate 985 | copyright notice and disclaimer of warranty; keep intact all the 986 | notices that refer to this License and to the absence of any warranty; 987 | and give any other recipients of the Program a copy of this License 988 | along with the Program. 989 | 990 | You may charge a fee for the physical act of transferring a copy, and 991 | you may at your option offer warranty protection in exchange for a fee. 992 | 993 | 2. You may modify your copy or copies of the Program or any portion 994 | of it, thus forming a work based on the Program, and copy and 995 | distribute such modifications or work under the terms of Section 1 996 | above, provided that you also meet all of these conditions: 997 | 998 | a) You must cause the modified files to carry prominent notices 999 | stating that you changed the files and the date of any change. 1000 | 1001 | b) You must cause any work that you distribute or publish, that in 1002 | whole or in part contains or is derived from the Program or any 1003 | part thereof, to be licensed as a whole at no charge to all third 1004 | parties under the terms of this License. 1005 | 1006 | c) If the modified program normally reads commands interactively 1007 | when run, you must cause it, when started running for such 1008 | interactive use in the most ordinary way, to print or display an 1009 | announcement including an appropriate copyright notice and a 1010 | notice that there is no warranty (or else, saying that you provide 1011 | a warranty) and that users may redistribute the program under 1012 | these conditions, and telling the user how to view a copy of this 1013 | License. (Exception: if the Program itself is interactive but 1014 | does not normally print such an announcement, your work based on 1015 | the Program is not required to print an announcement.) 1016 | 1017 | These requirements apply to the modified work as a whole. If 1018 | identifiable sections of that work are not derived from the Program, 1019 | and can be reasonably considered independent and separate works in 1020 | themselves, then this License, and its terms, do not apply to those 1021 | sections when you distribute them as separate works. But when you 1022 | distribute the same sections as part of a whole which is a work based 1023 | on the Program, the distribution of the whole must be on the terms of 1024 | this License, whose permissions for other licensees extend to the 1025 | entire whole, and thus to each and every part regardless of who wrote it. 1026 | 1027 | Thus, it is not the intent of this section to claim rights or contest 1028 | your rights to work written entirely by you; rather, the intent is to 1029 | exercise the right to control the distribution of derivative or 1030 | collective works based on the Program. 1031 | 1032 | In addition, mere aggregation of another work not based on the Program 1033 | with the Program (or with a work based on the Program) on a volume of 1034 | a storage or distribution medium does not bring the other work under 1035 | the scope of this License. 1036 | 1037 | 3. You may copy and distribute the Program (or a work based on it, 1038 | under Section 2) in object code or executable form under the terms of 1039 | Sections 1 and 2 above provided that you also do one of the following: 1040 | 1041 | a) Accompany it with the complete corresponding machine-readable 1042 | source code, which must be distributed under the terms of Sections 1043 | 1 and 2 above on a medium customarily used for software interchange; or, 1044 | 1045 | b) Accompany it with a written offer, valid for at least three 1046 | years, to give any third party, for a charge no more than your 1047 | cost of physically performing source distribution, a complete 1048 | machine-readable copy of the corresponding source code, to be 1049 | distributed under the terms of Sections 1 and 2 above on a medium 1050 | customarily used for software interchange; or, 1051 | 1052 | c) Accompany it with the information you received as to the offer 1053 | to distribute corresponding source code. (This alternative is 1054 | allowed only for noncommercial distribution and only if you 1055 | received the program in object code or executable form with such 1056 | an offer, in accord with Subsection b above.) 1057 | 1058 | The source code for a work means the preferred form of the work for 1059 | making modifications to it. For an executable work, complete source 1060 | code means all the source code for all modules it contains, plus any 1061 | associated interface definition files, plus the scripts used to 1062 | control compilation and installation of the executable. However, as a 1063 | special exception, the source code distributed need not include 1064 | anything that is normally distributed (in either source or binary 1065 | form) with the major components (compiler, kernel, and so on) of the 1066 | operating system on which the executable runs, unless that component 1067 | itself accompanies the executable. 1068 | 1069 | If distribution of executable or object code is made by offering 1070 | access to copy from a designated place, then offering equivalent 1071 | access to copy the source code from the same place counts as 1072 | distribution of the source code, even though third parties are not 1073 | compelled to copy the source along with the object code. 1074 | 1075 | 4. You may not copy, modify, sublicense, or distribute the Program 1076 | except as expressly provided under this License. Any attempt 1077 | otherwise to copy, modify, sublicense or distribute the Program is 1078 | void, and will automatically terminate your rights under this License. 1079 | However, parties who have received copies, or rights, from you under 1080 | this License will not have their licenses terminated so long as such 1081 | parties remain in full compliance. 1082 | 1083 | 5. You are not required to accept this License, since you have not 1084 | signed it. However, nothing else grants you permission to modify or 1085 | distribute the Program or its derivative works. These actions are 1086 | prohibited by law if you do not accept this License. Therefore, by 1087 | modifying or distributing the Program (or any work based on the 1088 | Program), you indicate your acceptance of this License to do so, and 1089 | all its terms and conditions for copying, distributing or modifying 1090 | the Program or works based on it. 1091 | 1092 | 6. Each time you redistribute the Program (or any work based on the 1093 | Program), the recipient automatically receives a license from the 1094 | original licensor to copy, distribute or modify the Program subject to 1095 | these terms and conditions. You may not impose any further 1096 | restrictions on the recipients' exercise of the rights granted herein. 1097 | You are not responsible for enforcing compliance by third parties to 1098 | this License. 1099 | 1100 | 7. If, as a consequence of a court judgment or allegation of patent 1101 | infringement or for any other reason (not limited to patent issues), 1102 | conditions are imposed on you (whether by court order, agreement or 1103 | otherwise) that contradict the conditions of this License, they do not 1104 | excuse you from the conditions of this License. If you cannot 1105 | distribute so as to satisfy simultaneously your obligations under this 1106 | License and any other pertinent obligations, then as a consequence you 1107 | may not distribute the Program at all. For example, if a patent 1108 | license would not permit royalty-free redistribution of the Program by 1109 | all those who receive copies directly or indirectly through you, then 1110 | the only way you could satisfy both it and this License would be to 1111 | refrain entirely from distribution of the Program. 1112 | 1113 | If any portion of this section is held invalid or unenforceable under 1114 | any particular circumstance, the balance of the section is intended to 1115 | apply and the section as a whole is intended to apply in other 1116 | circumstances. 1117 | 1118 | It is not the purpose of this section to induce you to infringe any 1119 | patents or other property right claims or to contest validity of any 1120 | such claims; this section has the sole purpose of protecting the 1121 | integrity of the free software distribution system, which is 1122 | implemented by public license practices. Many people have made 1123 | generous contributions to the wide range of software distributed 1124 | through that system in reliance on consistent application of that 1125 | system; it is up to the author/donor to decide if he or she is willing 1126 | to distribute software through any other system and a licensee cannot 1127 | impose that choice. 1128 | 1129 | This section is intended to make thoroughly clear what is believed to 1130 | be a consequence of the rest of this License. 1131 | 1132 | 8. If the distribution and/or use of the Program is restricted in 1133 | certain countries either by patents or by copyrighted interfaces, the 1134 | original copyright holder who places the Program under this License 1135 | may add an explicit geographical distribution limitation excluding 1136 | those countries, so that distribution is permitted only in or among 1137 | countries not thus excluded. In such case, this License incorporates 1138 | the limitation as if written in the body of this License. 1139 | 1140 | 9. The Free Software Foundation may publish revised and/or new versions 1141 | of the General Public License from time to time. Such new versions will 1142 | be similar in spirit to the present version, but may differ in detail to 1143 | address new problems or concerns. 1144 | 1145 | Each version is given a distinguishing version number. If the Program 1146 | specifies a version number of this License which applies to it and "any 1147 | later version", you have the option of following the terms and conditions 1148 | either of that version or of any later version published by the Free 1149 | Software Foundation. If the Program does not specify a version number of 1150 | this License, you may choose any version ever published by the Free Software 1151 | Foundation. 1152 | 1153 | 10. If you wish to incorporate parts of the Program into other free 1154 | programs whose distribution conditions are different, write to the author 1155 | to ask for permission. For software which is copyrighted by the Free 1156 | Software Foundation, write to the Free Software Foundation; we sometimes 1157 | make exceptions for this. Our decision will be guided by the two goals 1158 | of preserving the free status of all derivatives of our free software and 1159 | of promoting the sharing and reuse of software generally. 1160 | 1161 | NO WARRANTY 1162 | 1163 | 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY 1164 | FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN 1165 | OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES 1166 | PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED 1167 | OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 1168 | MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS 1169 | TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE 1170 | PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, 1171 | REPAIR OR CORRECTION. 1172 | 1173 | 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING 1174 | WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR 1175 | REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, 1176 | INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING 1177 | OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED 1178 | TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY 1179 | YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER 1180 | PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE 1181 | POSSIBILITY OF SUCH DAMAGES. 1182 | 1183 | END OF TERMS AND CONDITIONS 1184 | 1185 | How to Apply These Terms to Your New Programs 1186 | 1187 | If you develop a new program, and you want it to be of the greatest 1188 | possible use to the public, the best way to achieve this is to make it 1189 | free software which everyone can redistribute and change under these terms. 1190 | 1191 | To do so, attach the following notices to the program. It is safest 1192 | to attach them to the start of each source file to most effectively 1193 | convey the exclusion of warranty; and each file should have at least 1194 | the "copyright" line and a pointer to where the full notice is found. 1195 | 1196 | 1197 | Copyright (C) 1198 | 1199 | This program is free software; you can redistribute it and/or modify 1200 | it under the terms of the GNU General Public License as published by 1201 | the Free Software Foundation; either version 2 of the License, or 1202 | (at your option) any later version. 1203 | 1204 | This program is distributed in the hope that it will be useful, 1205 | but WITHOUT ANY WARRANTY; without even the implied warranty of 1206 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 1207 | GNU General Public License for more details. 1208 | 1209 | You should have received a copy of the GNU General Public License 1210 | along with this program; if not, write to the Free Software 1211 | Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA 1212 | 1213 | 1214 | Also add information on how to contact you by electronic and paper mail. 1215 | 1216 | If the program is interactive, make it output a short notice like this 1217 | when it starts in an interactive mode: 1218 | 1219 | Gnomovision version 69, Copyright (C) year name of author 1220 | Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. 1221 | This is free software, and you are welcome to redistribute it 1222 | under certain conditions; type `show c' for details. 1223 | 1224 | The hypothetical commands `show w' and `show c' should show the appropriate 1225 | parts of the General Public License. Of course, the commands you use may 1226 | be called something other than `show w' and `show c'; they could even be 1227 | mouse-clicks or menu items--whatever suits your program. 1228 | 1229 | You should also get your employer (if you work as a programmer) or your 1230 | school, if any, to sign a "copyright disclaimer" for the program, if 1231 | necessary. Here is a sample; alter the names: 1232 | 1233 | Yoyodyne, Inc., hereby disclaims all copyright interest in the program 1234 | `Gnomovision' (which makes passes at compilers) written by James Hacker. 1235 | 1236 | , 1 April 1989 1237 | Ty Coon, President of Vice 1238 | 1239 | This General Public License does not permit incorporating your program into 1240 | proprietary programs. If your program is a subroutine library, you may 1241 | consider it more useful to permit linking proprietary applications with the 1242 | library. If this is what you want to do, use the GNU Library General 1243 | Public License instead of this License. 1244 | 1245 | 1246 | 1247 | === 1248 | Raspberry Pi boot firmware license 1249 | === 1250 | 1251 | Copyright (c) 2006, Broadcom Corporation. 1252 | Copyright (c) 2015, Raspberry Pi (Trading) Ltd 1253 | All rights reserved. 1254 | 1255 | Redistribution. Redistribution and use in binary form, without 1256 | modification, are permitted provided that the following conditions are 1257 | met: 1258 | 1259 | * This software may only be used for the purposes of developing for, 1260 | running or using a Raspberry Pi device. 1261 | * Redistributions must reproduce the above copyright notice and the 1262 | following disclaimer in the documentation and/or other materials 1263 | provided with the distribution. 1264 | * Neither the name of Broadcom Corporation nor the names of its suppliers 1265 | may be used to endorse or promote products derived from this software 1266 | without specific prior written permission. 1267 | 1268 | DISCLAIMER. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND 1269 | CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, 1270 | BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND 1271 | FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 1272 | COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 1273 | INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, 1274 | BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS 1275 | OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND 1276 | ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR 1277 | TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE 1278 | USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH 1279 | DAMAGE. 1280 | 1281 | 1282 | === 1283 | pigpio license 1284 | === 1285 | 1286 | This is free and unencumbered software released into the public domain. 1287 | 1288 | Anyone is free to copy, modify, publish, use, compile, sell, or 1289 | distribute this software, either in source code form or as a compiled 1290 | binary, for any purpose, commercial or non-commercial, and by any 1291 | means. 1292 | 1293 | In jurisdictions that recognize copyright laws, the author or authors 1294 | of this software dedicate any and all copyright interest in the 1295 | software to the public domain. We make this dedication for the benefit 1296 | of the public at large and to the detriment of our heirs and 1297 | successors. We intend this dedication to be an overt act of 1298 | relinquishment in perpetuity of all present and future rights to this 1299 | software under copyright law. 1300 | 1301 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 1302 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 1303 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. 1304 | IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR 1305 | OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, 1306 | ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 1307 | OTHER DEALINGS IN THE SOFTWARE. 1308 | 1309 | For more information, please refer to 1310 | 1311 | -------------------------------------------------------------------------------- /output/cmdline.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/raspberrypi/gpioexpander/0ac076590cc81dba3434be70d16d5d498540ce71/output/cmdline.txt -------------------------------------------------------------------------------- /output/config.txt: -------------------------------------------------------------------------------- 1 | dtoverlay=dwc2,dr_mode=peripheral 2 | kernel=kernel.img 3 | initramfs gpioexpand.img 4 | --------------------------------------------------------------------------------