Merge branch 'release-0.1.0_alpha4'

This commit is contained in:
Peter Steenbergen 2019-12-12 11:37:30 +01:00
commit 362318fa77
495 changed files with 4979 additions and 827 deletions

2
.gitmodules vendored
View File

@ -1,4 +1,4 @@
[submodule "buildroot"]
path = buildroot
url = https://github.com/buildroot/buildroot.git
branch = 2018.11.x
branch = 2019.11.x

43
Makefile Normal file
View File

@ -0,0 +1,43 @@
RELEASE_DIR = release
BUILDROOT=buildroot
BUILDROOT_EXTERNAL=buildroot-external
DEFCONFIG_DIR = $(BUILDROOT_EXTERNAL)/configs
TARGETS := $(notdir $(patsubst %_defconfig,%,$(wildcard $(DEFCONFIG_DIR)/*_defconfig)))
TARGETS_CONFIG := $(notdir $(patsubst %_defconfig,%-config,$(wildcard $(DEFCONFIG_DIR)/*_defconfig)))
.NOTPARALLEL: $(TARGETS) $(TARGETS_CONFIG) all
.PHONY: $(TARGETS) $(TARGETS_CONFIG) all clean help
all: $(TARGETS)
$(RELEASE_DIR):
mkdir -p $(RELEASE_DIR)
$(TARGETS_CONFIG): %-config:
@echo "config $*"
$(MAKE) -C $(BUILDROOT) BR2_EXTERNAL=../$(BUILDROOT_EXTERNAL) "$*_defconfig"
$(TARGETS): %: $(RELEASE_DIR) %-config
@echo "build $@"
$(MAKE) -C $(BUILDROOT) BR2_EXTERNAL=../$(BUILDROOT_EXTERNAL) 2>&1 | tee logs/buildroot_$@_output.txt
cp -f $(BUILDROOT)/output/images/sdcard.img $(RELEASE_DIR)/MycroftOS_$@.img
# Do not clean when building for one target
ifneq ($(words $(filter $(TARGETS),$(MAKECMDGOALS))), 1)
@echo "clean $@"
$(MAKE) -C $(BUILDROOT) BR2_EXTERNAL=../$(BUILDROOT_EXTERNAL) clean
endif
@echo "finished $@"
clean:
$(MAKE) -C $(BUILDROOT) BR2_EXTERNAL=../$(BUILDROOT_EXTERNAL) clean
help:
@echo "Supported targets: $(TARGETS)"
@echo "Run 'make <target>' to build a target image."
@echo "Run 'make all' to build all target images."
@echo "Run 'make clean' to clean the build output."
@echo "Run 'make <target>-config' to configure buildroot for a target."

View File

@ -6,9 +6,9 @@ More information about the development, process, ideas etc. at https://www.j1nx.
More information about the Mycroft A.I. software stack at https://mycroft.ai
## System.
- Linux kernel 4.14 (LT)
- Buildroot 2018.11.x
- Mycroft 18.08.x
- Linux kernel 4.19.x
- Buildroot 2019.11.x
- Mycroft 19.08.x
- Raspberry Pi 3B (initial development hardware)
## Stats:

@ -1 +1 @@
Subproject commit 93d8af974346d95e66f5582e420dd0fb35d32916
Subproject commit 836b84a7743cbf7d6b745efd023217bed47e34e8

View File

@ -1,9 +1,17 @@
menu "Mycroft A.I. Personal Assistant"
source "$BR2_EXTERNAL_MYCROFTOS_PATH/package/firstboot-service/Config.in"
source "$BR2_EXTERNAL_MYCROFTOS_PATH/package/prepare_system-service/Config.in"
source "$BR2_EXTERNAL_MYCROFTOS_PATH/package/python-mycroft/Config.in"
source "$BR2_EXTERNAL_MYCROFTOS_PATH/package/mycroft-service/Config.in"
source "$BR2_EXTERNAL_MYCROFTOS_PATH/package/mycroft-splash/Config.in"
menu "Additional drivers, libraries and/or applications"
source "$BR2_EXTERNAL_MYCROFTOS_PATH/package/alsa-plugins/Config.in"
source "$BR2_EXTERNAL_MYCROFTOS_PATH/package/fann/Config.in"
source "$BR2_EXTERNAL_MYCROFTOS_PATH/package/respeaker/Config.in"
endmenu
menu "Additional external python modules"
source "$BR2_EXTERNAL_MYCROFTOS_PATH/package/python-adapt-parser/Config.in"
source "$BR2_EXTERNAL_MYCROFTOS_PATH/package/python-appdirs/Config.in"
source "$BR2_EXTERNAL_MYCROFTOS_PATH/package/python-bs4/Config.in"
source "$BR2_EXTERNAL_MYCROFTOS_PATH/package/python-cachetools/Config.in"
source "$BR2_EXTERNAL_MYCROFTOS_PATH/package/python-casttube/Config.in"
@ -23,16 +31,15 @@ menu "Additional external python modules"
source "$BR2_EXTERNAL_MYCROFTOS_PATH/package/python-gtts/Config.in"
source "$BR2_EXTERNAL_MYCROFTOS_PATH/package/python-gtts_token/Config.in"
source "$BR2_EXTERNAL_MYCROFTOS_PATH/package/python-humanhash3/Config.in"
source "$BR2_EXTERNAL_MYCROFTOS_PATH/package/python-ifaddr/Config.in"
source "$BR2_EXTERNAL_MYCROFTOS_PATH/package/python-inflection/Config.in"
source "$BR2_EXTERNAL_MYCROFTOS_PATH/package/python-lazy/Config.in"
source "$BR2_EXTERNAL_MYCROFTOS_PATH/package/python-monotonic/Config.in"
source "$BR2_EXTERNAL_MYCROFTOS_PATH/package/python-msk/Config.in"
source "$BR2_EXTERNAL_MYCROFTOS_PATH/package/python-msm/Config.in"
source "$BR2_EXTERNAL_MYCROFTOS_PATH/package/python-mycroft/Config.in"
source "$BR2_EXTERNAL_MYCROFTOS_PATH/package/python-oauth2client/Config.in"
source "$BR2_EXTERNAL_MYCROFTOS_PATH/package/python-olefile/Config.in"
source "$BR2_EXTERNAL_MYCROFTOS_PATH/package/python-padaos/Config.in"
source "$BR2_EXTERNAL_MYCROFTOS_PATH/package/python-padatious/Config.in"
source "$BR2_EXTERNAL_MYCROFTOS_PATH/package/python-pako/Config.in"
source "$BR2_EXTERNAL_MYCROFTOS_PATH/package/python-pep8/Config.in"
source "$BR2_EXTERNAL_MYCROFTOS_PATH/package/python-petact/Config.in"
source "$BR2_EXTERNAL_MYCROFTOS_PATH/package/python-pocketsphinx/Config.in"
@ -42,7 +49,7 @@ menu "Additional external python modules"
source "$BR2_EXTERNAL_MYCROFTOS_PATH/package/python-pychromecast/Config.in"
source "$BR2_EXTERNAL_MYCROFTOS_PATH/package/python-pyee/Config.in"
source "$BR2_EXTERNAL_MYCROFTOS_PATH/package/python-pygithub/Config.in"
source "$BR2_EXTERNAL_MYCROFTOS_PATH/package/python-pyjwt/Config.in"
source "$BR2_EXTERNAL_MYCROFTOS_PATH/package/python-pymplayer/Config.in"
source "$BR2_EXTERNAL_MYCROFTOS_PATH/package/python-requests-futures/Config.in"
source "$BR2_EXTERNAL_MYCROFTOS_PATH/package/python-rsa/Config.in"
source "$BR2_EXTERNAL_MYCROFTOS_PATH/package/python-sgmllib3k/Config.in"
@ -54,3 +61,4 @@ menu "Additional external python modules"
source "$BR2_EXTERNAL_MYCROFTOS_PATH/package/python-xmlrunner/Config.in"
source "$BR2_EXTERNAL_MYCROFTOS_PATH/package/python-xxhash/Config.in"
endmenu
endmenu

View File

@ -1 +1 @@
root=/dev/mmcblk0p2 console=ttyAMA0,115200 consoleblank=0 loglevel=0 vt.global_cursor_default=0 logo.nologo rootwait noswap quiet
dwc_otg.lpm_enable=0 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline fsck.repair=yes console=tty2 consoleblank=0 loglevel=0 vt.global_cursor_default=0 logo.nologo rootwait noswap quiet

View File

@ -0,0 +1,30 @@
image boot.vfat {
vfat {
files = {
"bcm2711-rpi-4-b.dtb",
"rpi-firmware/cmdline.txt",
"rpi-firmware/config.txt",
"rpi-firmware/fixup4.dat",
"rpi-firmware/start4.elf",
"rpi-firmware/overlays",
"zImage"
}
}
size = 32M
}
image sdcard.img {
hdimage {
}
partition boot {
partition-type = 0xC
bootable = "true"
image = "boot.vfat"
}
partition rootfs {
partition-type = 0x83
image = "rootfs.ext4"
}
}

View File

@ -23,11 +23,11 @@ __EOF__
--aarch64)
# Run a 64bits kernel (armv8)
sed -e '/^kernel=/s,=.*,=Image,' -i "${BINARIES_DIR}/rpi-firmware/config.txt"
if ! grep -qE '^arm_control=0x200' "${BINARIES_DIR}/rpi-firmware/config.txt"; then
if ! grep -qE '^arm_64bit=1' "${BINARIES_DIR}/rpi-firmware/config.txt"; then
cat << __EOF__ >> "${BINARIES_DIR}/rpi-firmware/config.txt"
# enable 64bits support
arm_control=0x200
arm_64bit=1
__EOF__
fi
@ -49,10 +49,18 @@ __EOF__
done
# Pass an empty rootpath. genimage makes a full copy of the given rootpath to
# ${GENIMAGE_TMP}/root so passing TARGET_DIR would be a waste of time and disk
# space. We don't rely on genimage to build the rootfs image, just to insert a
# pre-built one in the disk image.
trap 'rm -rf "${ROOTPATH_TMP}"' EXIT
ROOTPATH_TMP="$(mktemp -d)"
rm -rf "${GENIMAGE_TMP}"
genimage \
--rootpath "${TARGET_DIR}" \
genimage \
--rootpath "${ROOTPATH_TMP}" \
--tmppath "${GENIMAGE_TMP}" \
--inputpath "${BINARIES_DIR}" \
--outputpath "${BINARIES_DIR}" \

View File

@ -8,6 +8,7 @@ These instructions apply to all models of the Raspberry Pi:
- the "enhanced" models A+ and B+,
- the model B2 (aka Raspberry Pi 2)
- the model B3 (aka Raspberry Pi 3).
- the model B4 (aka Raspberry Pi 4).
How to build it
===============
@ -34,6 +35,10 @@ For model 3 B and B+:
$ make raspberrypi3_defconfig
For model 4 B:
$ make raspberrypi4_defconfig
Build the rootfs
----------------
@ -57,6 +62,7 @@ After building, you should obtain this tree:
+-- bcm2709-rpi-2-b.dtb [1]
+-- bcm2710-rpi-3-b.dtb [1]
+-- bcm2710-rpi-3-b-plus.dtb [1]
+-- bcm2711-rpi-4-b.dtb [1]
+-- boot.vfat
+-- rootfs.ext4
+-- rpi-firmware/
@ -72,7 +78,7 @@ After building, you should obtain this tree:
[1] Not all of them will be present, depending on the RaspberryPi
model you are using.
[2] Only for the Raspberry Pi 3 Model (overlay pi3-miniuart-bt is needed
[2] Only for the Raspberry Pi 3/4 Models (overlay pi3-miniuart-bt is needed
to enable the RPi3 serial console otherwise occupied by the bluetooth
chip). Alternative would be to disable the serial console in cmdline.txt
and /etc/inittab.

View File

@ -0,0 +1 @@
raspberrypi

View File

@ -6,8 +6,10 @@ BR2_CCACHE=y
BR2_CCACHE_DIR="../ccache"
BR2_GLOBAL_PATCH_DIR="../buildroot-patches"
BR2_TOOLCHAIN_BUILDROOT_GLIBC=y
BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_14=y
BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_19=y
BR2_BINUTILS_VERSION_2_32_X=y
BR2_TOOLCHAIN_BUILDROOT_CXX=y
BR2_TOOLCHAIN_BUILDROOT_FORTRAN=y
BR2_TOOLCHAIN_GLIBC_GCONV_LIBS_COPY=y
BR2_TARGET_GENERIC_HOSTNAME="MycroftOS"
BR2_TARGET_GENERIC_ISSUE="Welcome to MycroftOS"
@ -18,18 +20,23 @@ BR2_SYSTEM_BIN_SH_BASH=y
BR2_SYSTEM_DHCP="eth0"
# BR2_ENABLE_LOCALE_PURGE is not set
BR2_GENERATE_LOCALE="en_US.UTF-8"
BR2_ROOTFS_OVERLAY="../buildroot-external/rootfs-overlay"
BR2_ROOTFS_POST_BUILD_SCRIPT="../buildroot-external/board/raspberrypi3/post-build.sh"
BR2_ROOTFS_POST_IMAGE_SCRIPT="../buildroot-external/board/raspberrypi3/post-image.sh"
BR2_SYSTEM_ENABLE_NLS=y
BR2_ROOTFS_USERS_TABLES="$(BR2_EXTERNAL)/user_table.txt"
BR2_ROOTFS_OVERLAY="$(BR2_EXTERNAL)/rootfs-overlay"
BR2_ROOTFS_POST_BUILD_SCRIPT="$(BR2_EXTERNAL)/board/raspberrypi3/post-build.sh"
BR2_ROOTFS_POST_IMAGE_SCRIPT="$(BR2_EXTERNAL)/board/raspberrypi3/post-image.sh"
BR2_ROOTFS_POST_SCRIPT_ARGS="--add-pi3-miniuart-bt-overlay"
BR2_LINUX_KERNEL=y
BR2_LINUX_KERNEL_CUSTOM_GIT=y
BR2_LINUX_KERNEL_CUSTOM_REPO_URL="https://github.com/raspberrypi/linux.git"
BR2_LINUX_KERNEL_CUSTOM_REPO_VERSION="8ec2a2d27dd3e3e32113445592f44ea974b21732"
BR2_LINUX_KERNEL_CUSTOM_REPO_VERSION="6018f7ebfe5e7fa01f499300b796f409a817241b"
BR2_LINUX_KERNEL_DEFCONFIG="bcm2709"
BR2_LINUX_KERNEL_DTS_SUPPORT=y
BR2_LINUX_KERNEL_INTREE_DTS_NAME="bcm2710-rpi-3-b bcm2710-rpi-3-b-plus bcm2710-rpi-cm3"
BR2_PACKAGE_BUSYBOX_CONFIG="../buildroot-external/busybox.config"
BR2_LINUX_KERNEL_DTB_OVERLAY_SUPPORT=y
BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL=y
BR2_PACKAGE_LINUX_TOOLS_GPIO=y
BR2_PACKAGE_BUSYBOX_CONFIG="$(BR2_EXTERNAL)/busybox.config"
BR2_PACKAGE_BUSYBOX_INDIVIDUAL_BINARIES=y
BR2_PACKAGE_ALSA_UTILS=y
BR2_PACKAGE_ALSA_UTILS_ALSACONF=y
@ -48,8 +55,13 @@ BR2_PACKAGE_ALSA_UTILS_BAT=y
BR2_PACKAGE_ALSA_UTILS_IECSET=y
BR2_PACKAGE_ALSA_UTILS_SPEAKER_TEST=y
BR2_PACKAGE_BLUEZ_ALSA=y
BR2_PACKAGE_FAAD2=y
BR2_PACKAGE_FFMPEG_GPL=y
BR2_PACKAGE_FFMPEG_NONFREE=y
BR2_PACKAGE_FFMPEG_FFPLAY=y
BR2_PACKAGE_FFMPEG_FFPROBE=y
BR2_PACKAGE_FFMPEG_AVRESAMPLE=y
BR2_PACKAGE_FFMPEG_POSTPROC=y
BR2_PACKAGE_FLAC=y
BR2_PACKAGE_MIMIC=y
BR2_PACKAGE_MIMIC_AUDIO_BACKEND_ALSA=y
@ -70,7 +82,7 @@ BR2_PACKAGE_BINUTILS_TARGET=y
BR2_PACKAGE_CHECK=y
BR2_PACKAGE_DIFFUTILS=y
BR2_PACKAGE_FINDUTILS=y
BR2_PACKAGE_GIT=y
BR2_PACKAGE_GIT_CRYPT=y
BR2_PACKAGE_GREP=y
BR2_PACKAGE_JQ=y
BR2_PACKAGE_MAKE=y
@ -78,17 +90,79 @@ BR2_PACKAGE_PKGCONF=y
BR2_PACKAGE_E2FSPROGS=y
BR2_PACKAGE_E2FSPROGS_RESIZE2FS=y
BR2_PACKAGE_NTFS_3G=y
BR2_PACKAGE_DIRECTFB=y
BR2_PACKAGE_DIRECTFB_TIFF=y
BR2_PACKAGE_DIRECTFB_IMLIB2=y
BR2_PACKAGE_FBV=y
BR2_PACKAGE_FREERDP=y
BR2_PACKAGE_ARMBIAN_FIRMWARE=y
BR2_PACKAGE_ARMBIAN_FIRMWARE_XR819=y
BR2_PACKAGE_ARMBIAN_FIRMWARE_AP6212=y
BR2_PACKAGE_LINUX_FIRMWARE=y
BR2_PACKAGE_LINUX_FIRMWARE_IBT=y
BR2_PACKAGE_LINUX_FIRMWARE_QUALCOMM_6174A_BT=y
BR2_PACKAGE_LINUX_FIRMWARE_TI_CC2560=y
BR2_PACKAGE_LINUX_FIRMWARE_ATHEROS_6002=y
BR2_PACKAGE_LINUX_FIRMWARE_ATHEROS_6003=y
BR2_PACKAGE_LINUX_FIRMWARE_ATHEROS_6004=y
BR2_PACKAGE_LINUX_FIRMWARE_ATHEROS_7010=y
BR2_PACKAGE_LINUX_FIRMWARE_ATHEROS_9170=y
BR2_PACKAGE_LINUX_FIRMWARE_ATHEROS_9271=y
BR2_PACKAGE_LINUX_FIRMWARE_ATHEROS_10K_QCA998X=y
BR2_PACKAGE_LINUX_FIRMWARE_ATHEROS_10K_QCA6174=y
BR2_PACKAGE_LINUX_FIRMWARE_IWLWIFI_3160=y
BR2_PACKAGE_LINUX_FIRMWARE_IWLWIFI_3168=y
BR2_PACKAGE_LINUX_FIRMWARE_IWLWIFI_5000=y
BR2_PACKAGE_LINUX_FIRMWARE_IWLWIFI_6000G2A=y
BR2_PACKAGE_LINUX_FIRMWARE_IWLWIFI_6000G2B=y
BR2_PACKAGE_LINUX_FIRMWARE_IWLWIFI_7260=y
BR2_PACKAGE_LINUX_FIRMWARE_IWLWIFI_7265D=y
BR2_PACKAGE_LINUX_FIRMWARE_IWLWIFI_8000C=y
BR2_PACKAGE_LINUX_FIRMWARE_IWLWIFI_8265=y
BR2_PACKAGE_LINUX_FIRMWARE_IWLWIFI_9XXX=y
BR2_PACKAGE_LINUX_FIRMWARE_LIBERTAS_SD8686_V8=y
BR2_PACKAGE_LINUX_FIRMWARE_LIBERTAS_SD8686_V9=y
BR2_PACKAGE_LINUX_FIRMWARE_LIBERTAS_SD8688=y
BR2_PACKAGE_LINUX_FIRMWARE_MWIFIEX_SD8787=y
BR2_PACKAGE_LINUX_FIRMWARE_MWIFIEX_SD8797=y
BR2_PACKAGE_LINUX_FIRMWARE_MWIFIEX_USB8797=y
BR2_PACKAGE_LINUX_FIRMWARE_MWIFIEX_USB8801=y
BR2_PACKAGE_LINUX_FIRMWARE_MWIFIEX_SD8887=y
BR2_PACKAGE_LINUX_FIRMWARE_MWIFIEX_SD8897=y
BR2_PACKAGE_LINUX_FIRMWARE_MWIFIEX_USB8897=y
BR2_PACKAGE_LINUX_FIRMWARE_MWIFIEX_PCIE8897=y
BR2_PACKAGE_LINUX_FIRMWARE_MEDIATEK_MT7601U=y
BR2_PACKAGE_LINUX_FIRMWARE_QUALCOMM_6174=y
BR2_PACKAGE_LINUX_FIRMWARE_RALINK_RT61=y
BR2_PACKAGE_LINUX_FIRMWARE_RALINK_RT73=y
BR2_PACKAGE_LINUX_FIRMWARE_RALINK_RT2XX=y
BR2_PACKAGE_LINUX_FIRMWARE_RTL_81XX=y
BR2_PACKAGE_LINUX_FIRMWARE_RTL_87XX=y
BR2_PACKAGE_LINUX_FIRMWARE_RTL_88XX=y
BR2_PACKAGE_LINUX_FIRMWARE_REDPINE_RS9113=y
BR2_PACKAGE_LINUX_FIRMWARE_TI_WL127X=y
BR2_PACKAGE_LINUX_FIRMWARE_TI_WL128X=y
BR2_PACKAGE_LINUX_FIRMWARE_TI_WL18XX=y
BR2_PACKAGE_LINUX_FIRMWARE_BNX2X=y
BR2_PACKAGE_LINUX_FIRMWARE_CXGB4_T4=y
BR2_PACKAGE_LINUX_FIRMWARE_CXGB4_T5=y
BR2_PACKAGE_LINUX_FIRMWARE_INTEL_E100=y
BR2_PACKAGE_LINUX_FIRMWARE_QLOGIC_4X=y
BR2_PACKAGE_LINUX_FIRMWARE_RTL_8169=y
BR2_PACKAGE_RPI_BT_FIRMWARE=y
BR2_PACKAGE_RPI_FIRMWARE=y
BR2_PACKAGE_RPI_FIRMWARE_X=y
BR2_PACKAGE_RPI_WIFI_FIRMWARE=y
BR2_PACKAGE_UX500_FIRMWARE=y
BR2_PACKAGE_WILC1000_FIRMWARE=y
BR2_PACKAGE_WILINK_BT_FIRMWARE=y
BR2_PACKAGE_ZD1211_FIRMWARE=y
BR2_PACKAGE_DBUS_PYTHON=y
BR2_PACKAGE_KBD=y
BR2_PACKAGE_PARTED=y
BR2_PACKAGE_SPI_TOOLS=y
BR2_PACKAGE_PYTHON3=y
BR2_PACKAGE_PYTHON3_PY_PYC=y
BR2_PACKAGE_PYTHON3_PY_ONLY=y
BR2_PACKAGE_PYTHON3_BZIP2=y
BR2_PACKAGE_PYTHON3_CODECSCJK=y
BR2_PACKAGE_PYTHON3_CURSES=y
@ -98,10 +172,12 @@ BR2_PACKAGE_PYTHON3_SQLITE=y
BR2_PACKAGE_PYTHON3_XZ=y
BR2_PACKAGE_PYTHON_ALSAAUDIO=y
BR2_PACKAGE_PYTHON_ARROW=y
BR2_PACKAGE_PYTHON_CFFI=y
BR2_PACKAGE_PYTHON_COLORAMA=y
BR2_PACKAGE_PYTHON_CONFIGSHELL_FB=y
BR2_PACKAGE_PYTHON_CRYPTOGRAPHY=y
BR2_PACKAGE_PYTHON_DAEMONIZE=y
BR2_PACKAGE_PYTHON_GOBJECT=y
BR2_PACKAGE_PYTHON_INFLECTION=y
BR2_PACKAGE_PYTHON_LXML=y
BR2_PACKAGE_PYTHON_NETADDR=y
BR2_PACKAGE_PYTHON_OAUTHLIB=y
@ -110,37 +186,59 @@ BR2_PACKAGE_PYTHON_PIP=y
BR2_PACKAGE_PYTHON_PSUTIL=y
BR2_PACKAGE_PYTHON_PYCLI=y
BR2_PACKAGE_PYTHON_PYCRYPTO=y
BR2_PACKAGE_PYTHON_PYJWT=y
BR2_PACKAGE_PYTHON_PYTZ=y
BR2_PACKAGE_PYTHON_PYUSB=y
BR2_PACKAGE_PYTHON_PYYAML=y
BR2_PACKAGE_PYTHON_SERIAL=y
BR2_PACKAGE_PYTHON_SPIDEV=y
BR2_PACKAGE_PYTHON_TEXTTABLE=y
BR2_PACKAGE_PYTHON_TORNADO=y
BR2_PACKAGE_PYTHON_WEBSOCKET_CLIENT=y
BR2_PACKAGE_PYTHON_WRAPT=y
BR2_PACKAGE_LIBAO=y
BR2_PACKAGE_LIBCDDB=y
BR2_PACKAGE_LIBMAD=y
BR2_PACKAGE_LIBSIDPLAY2=y
BR2_PACKAGE_OPUSFILE=y
BR2_PACKAGE_PORTAUDIO=y
BR2_PACKAGE_PORTAUDIO_OSS=y
BR2_PACKAGE_SPEEXDSP=y
BR2_PACKAGE_WEBRTC_AUDIO_PROCESSING=y
BR2_PACKAGE_LIBARCHIVE=y
BR2_PACKAGE_LIBARCHIVE_BSDTAR=y
BR2_PACKAGE_LIBARCHIVE_BSDCPIO=y
BR2_PACKAGE_LIBARCHIVE_BSDCAT=y
BR2_PACKAGE_LIBZIP=y
BR2_PACKAGE_CA_CERTIFICATES=y
BR2_PACKAGE_GNUTLS=y
BR2_PACKAGE_GNUTLS_OPENSSL=y
BR2_PACKAGE_LIBSSH2=y
BR2_PACKAGE_LIBOPENSSL_BIN=y
BR2_PACKAGE_LIBOPENSSL_ENGINES=y
BR2_PACKAGE_LIBCONFIG=y
BR2_PACKAGE_LIBNFS=y
BR2_PACKAGE_BCM2835=y
BR2_PACKAGE_LIBRSVG=y
BR2_PACKAGE_MRAA=y
BR2_PACKAGE_WIRINGPI=y
BR2_PACKAGE_LIBYAML=y
BR2_PACKAGE_LIBASS=y
BR2_PACKAGE_LIBBLURAY=y
BR2_PACKAGE_LIBDVBPSI=y
BR2_PACKAGE_LIBMATROSKA=y
BR2_PACKAGE_LIBMPEG2=y
BR2_PACKAGE_LIBMPEG2_BINS=y
BR2_PACKAGE_LIBOPENH264=y
BR2_PACKAGE_LIBOPUSENC=y
BR2_PACKAGE_LIBTHEORA=y
BR2_PACKAGE_X264=y
BR2_PACKAGE_X265=y
BR2_PACKAGE_C_ARES=y
BR2_PACKAGE_LIBCURL=y
BR2_PACKAGE_CURL=y
BR2_PACKAGE_LIBHTTPPARSER=y
BR2_PACKAGE_LIBTIRPC=y
BR2_PACKAGE_LIBFRIBIDI=y
BR2_PACKAGE_NGHTTP2=y
BR2_PACKAGE_LIBUV=y
BR2_PACKAGE_LIBUNISTRING=y
BR2_PACKAGE_NCURSES_WCHAR=y
BR2_PACKAGE_NCURSES_TARGET_PROGS=y
@ -148,24 +246,36 @@ BR2_PACKAGE_PCRE_16=y
BR2_PACKAGE_PCRE_32=y
BR2_PACKAGE_PCRE2_16=y
BR2_PACKAGE_PCRE2_32=y
BR2_PACKAGE_CONNMAN=y
BR2_PACKAGE_CONNMAN_WIFI=y
BR2_PACKAGE_CONNMAN_BLUETOOTH=y
BR2_PACKAGE_AVAHI=y
BR2_PACKAGE_CRDA=y
BR2_PACKAGE_IFUPDOWN=y
BR2_PACKAGE_IPTABLES=y
BR2_PACKAGE_IW=y
BR2_PACKAGE_NTP=y
BR2_PACKAGE_OPENSSH=y
BR2_PACKAGE_WGET=y
BR2_PACKAGE_WIRELESS_TOOLS=y
BR2_PACKAGE_WPA_SUPPLICANT=y
BR2_PACKAGE_WPA_SUPPLICANT_AP_SUPPORT=y
BR2_PACKAGE_WPA_SUPPLICANT_EAP=y
BR2_PACKAGE_WPA_SUPPLICANT_WPS=y
BR2_PACKAGE_WPA_SUPPLICANT_CLI=y
BR2_PACKAGE_WPA_SUPPLICANT_WPA_CLIENT_SO=y
BR2_PACKAGE_WPA_SUPPLICANT_PASSPHRASE=y
BR2_PACKAGE_WPA_SUPPLICANT_DBUS=y
BR2_PACKAGE_BASH_COMPLETION=y
BR2_PACKAGE_FILE=y
BR2_PACKAGE_SCREEN=y
BR2_PACKAGE_SUDO=y
BR2_PACKAGE_TIME=y
BR2_PACKAGE_WHICH=y
BR2_PACKAGE_HTOP=y
BR2_PACKAGE_RSYSLOG=y
BR2_PACKAGE_START_STOP_DAEMON=y
BR2_PACKAGE_SYSKLOGD=y
BR2_PACKAGE_SYSTEMD_FIRSTBOOT=y
BR2_PACKAGE_SYSTEMD_LOCALED=y
BR2_PACKAGE_SYSTEMD_RFKILL=y
BR2_PACKAGE_TAR=y
BR2_PACKAGE_UTIL_LINUX_HWCLOCK=y
BR2_PACKAGE_UTIL_LINUX_KILL=y
@ -184,6 +294,14 @@ BR2_PACKAGE_HOST_PYTHON_CYTHON=y
BR2_PACKAGE_HOST_PYTHON_LXML=y
BR2_PACKAGE_HOST_PYTHON_SIX=y
BR2_PACKAGE_HOST_PYTHON_XLRD=y
BR2_PACKAGE_HOST_PYTHON3=y
BR2_PACKAGE_HOST_PYTHON3_SSL=y
BR2_PACKAGE_FIRSTBOOT_SERVICE=y
BR2_PACKAGE_PREPARE_SYSTEM_SERVICE=y
BR2_PACKAGE_PYTHON_MYCROFT=y
BR2_PACKAGE_MYCROFT_SERVICE=y
BR2_PACKAGE_MYCROFT_SPLASH=y
BR2_PACKAGE_ALSA_PLUGINS=y
BR2_PACKAGE_FANN=y
BR2_PACKAGE_RESPEAKER=y
BR2_PACKAGE_PYTHON_ADAPT_PARSER=y
@ -196,19 +314,19 @@ BR2_PACKAGE_PYTHON_GOOGLE_API_PYTHON_CLIENT=y
BR2_PACKAGE_PYTHON_GPIOZERO=y
BR2_PACKAGE_PYTHON_GTTS=y
BR2_PACKAGE_PYTHON_HUMANHASH3=y
BR2_PACKAGE_PYTHON_INFLECTION=y
BR2_PACKAGE_PYTHON_LAZY=y
BR2_PACKAGE_PYTHON_MSK=y
BR2_PACKAGE_PYTHON_MYCROFT=y
BR2_PACKAGE_PYTHON_OAUTH2CLIENT=y
BR2_PACKAGE_PYTHON_OLEFILE=y
BR2_PACKAGE_PYTHON_PADATIOUS=y
BR2_PACKAGE_PYTHON_PAKO=y
BR2_PACKAGE_PYTHON_PEP8=y
BR2_PACKAGE_PYTHON_PETACT=y
BR2_PACKAGE_PYTHON_POCKETSPHINX=y
BR2_PACKAGE_PYTHON_PRECISE_RUNNER=y
BR2_PACKAGE_PYTHON_PULSECTL=y
BR2_PACKAGE_PYTHON_PYCHROMECAST=y
BR2_PACKAGE_PYTHON_PYJWT=y
BR2_PACKAGE_PYTHON_PYMPLAYER=y
BR2_PACKAGE_PYTHON_REQUESTS_FUTURES=y
BR2_PACKAGE_PYTHON_SGMLLIB3K=y
BR2_PACKAGE_PYTHON_SOURCE=y

View File

@ -0,0 +1,336 @@
BR2_arm=y
BR2_cortex_a72=y
BR2_ARM_FPU_NEON_VFPV4=y
BR2_DL_DIR="../downloads"
BR2_CCACHE=y
BR2_CCACHE_DIR="../ccache"
BR2_GLOBAL_PATCH_DIR="../buildroot-patches"
BR2_TOOLCHAIN_BUILDROOT_GLIBC=y
BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_19=y
BR2_BINUTILS_VERSION_2_32_X=y
BR2_TOOLCHAIN_BUILDROOT_CXX=y
BR2_TOOLCHAIN_BUILDROOT_FORTRAN=y
BR2_TOOLCHAIN_GLIBC_GCONV_LIBS_COPY=y
BR2_TARGET_GENERIC_HOSTNAME="MycroftOS"
BR2_TARGET_GENERIC_ISSUE="Welcome to MycroftOS"
BR2_INIT_SYSTEMD=y
BR2_TARGET_GENERIC_ROOT_PASSWD="mycroft"
BR2_SYSTEM_BIN_SH_BASH=y
# BR2_TARGET_GENERIC_GETTY is not set
BR2_SYSTEM_DHCP="eth0"
# BR2_ENABLE_LOCALE_PURGE is not set
BR2_GENERATE_LOCALE="en_US.UTF-8"
BR2_SYSTEM_ENABLE_NLS=y
BR2_ROOTFS_USERS_TABLES="$(BR2_EXTERNAL)/user_table.txt"
BR2_ROOTFS_OVERLAY="$(BR2_EXTERNAL)/rootfs-overlay"
BR2_ROOTFS_POST_BUILD_SCRIPT="$(BR2_EXTERNAL)/board/raspberrypi4/post-build.sh"
BR2_ROOTFS_POST_IMAGE_SCRIPT="$(BR2_EXTERNAL)/board/raspberrypi4/post-image.sh"
BR2_ROOTFS_POST_SCRIPT_ARGS="--add-pi3-miniuart-bt-overlay"
BR2_LINUX_KERNEL=y
BR2_LINUX_KERNEL_CUSTOM_GIT=y
BR2_LINUX_KERNEL_CUSTOM_REPO_URL="https://github.com/raspberrypi/linux.git"
BR2_LINUX_KERNEL_CUSTOM_REPO_VERSION="6018f7ebfe5e7fa01f499300b796f409a817241b"
BR2_LINUX_KERNEL_DEFCONFIG="bcm2711"
BR2_LINUX_KERNEL_DTS_SUPPORT=y
BR2_LINUX_KERNEL_INTREE_DTS_NAME="bcm2711-rpi-4-b"
BR2_LINUX_KERNEL_DTB_OVERLAY_SUPPORT=y
BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL=y
BR2_PACKAGE_LINUX_TOOLS_GPIO=y
BR2_PACKAGE_BUSYBOX_CONFIG="$(BR2_EXTERNAL)/busybox.config"
BR2_PACKAGE_BUSYBOX_INDIVIDUAL_BINARIES=y
BR2_PACKAGE_ALSA_UTILS=y
BR2_PACKAGE_ALSA_UTILS_ALSACONF=y
BR2_PACKAGE_ALSA_UTILS_ACONNECT=y
BR2_PACKAGE_ALSA_UTILS_ALSALOOP=y
BR2_PACKAGE_ALSA_UTILS_ALSAUCM=y
BR2_PACKAGE_ALSA_UTILS_ALSATPLG=y
BR2_PACKAGE_ALSA_UTILS_AMIDI=y
BR2_PACKAGE_ALSA_UTILS_AMIXER=y
BR2_PACKAGE_ALSA_UTILS_APLAY=y
BR2_PACKAGE_ALSA_UTILS_APLAYMIDI=y
BR2_PACKAGE_ALSA_UTILS_ARECORDMIDI=y
BR2_PACKAGE_ALSA_UTILS_ASEQDUMP=y
BR2_PACKAGE_ALSA_UTILS_ASEQNET=y
BR2_PACKAGE_ALSA_UTILS_BAT=y
BR2_PACKAGE_ALSA_UTILS_IECSET=y
BR2_PACKAGE_ALSA_UTILS_SPEAKER_TEST=y
BR2_PACKAGE_BLUEZ_ALSA=y
BR2_PACKAGE_FAAD2=y
BR2_PACKAGE_FFMPEG_GPL=y
BR2_PACKAGE_FFMPEG_NONFREE=y
BR2_PACKAGE_FFMPEG_FFPLAY=y
BR2_PACKAGE_FFMPEG_FFPROBE=y
BR2_PACKAGE_FFMPEG_AVRESAMPLE=y
BR2_PACKAGE_FFMPEG_POSTPROC=y
BR2_PACKAGE_FLAC=y
BR2_PACKAGE_MIMIC=y
BR2_PACKAGE_MIMIC_AUDIO_BACKEND_ALSA=y
BR2_PACKAGE_MPG123=y
BR2_PACKAGE_MPV=y
BR2_PACKAGE_PULSEAUDIO=y
BR2_PACKAGE_PULSEAUDIO_DAEMON=y
BR2_PACKAGE_VLC=y
BR2_PACKAGE_GZIP=y
BR2_PACKAGE_LZ4=y
BR2_PACKAGE_LZOP=y
BR2_PACKAGE_P7ZIP=y
BR2_PACKAGE_UNRAR=y
BR2_PACKAGE_UNZIP=y
BR2_PACKAGE_ZIP=y
BR2_PACKAGE_BINUTILS=y
BR2_PACKAGE_BINUTILS_TARGET=y
BR2_PACKAGE_CHECK=y
BR2_PACKAGE_DIFFUTILS=y
BR2_PACKAGE_FINDUTILS=y
BR2_PACKAGE_GIT_CRYPT=y
BR2_PACKAGE_GREP=y
BR2_PACKAGE_JQ=y
BR2_PACKAGE_MAKE=y
BR2_PACKAGE_PKGCONF=y
BR2_PACKAGE_E2FSPROGS=y
BR2_PACKAGE_E2FSPROGS_RESIZE2FS=y
BR2_PACKAGE_NTFS_3G=y
BR2_PACKAGE_DIRECTFB=y
BR2_PACKAGE_DIRECTFB_TIFF=y
BR2_PACKAGE_DIRECTFB_IMLIB2=y
BR2_PACKAGE_FBV=y
BR2_PACKAGE_FREERDP=y
BR2_PACKAGE_ARMBIAN_FIRMWARE=y
BR2_PACKAGE_ARMBIAN_FIRMWARE_XR819=y
BR2_PACKAGE_ARMBIAN_FIRMWARE_AP6212=y
BR2_PACKAGE_LINUX_FIRMWARE=y
BR2_PACKAGE_LINUX_FIRMWARE_IBT=y
BR2_PACKAGE_LINUX_FIRMWARE_QUALCOMM_6174A_BT=y
BR2_PACKAGE_LINUX_FIRMWARE_TI_CC2560=y
BR2_PACKAGE_LINUX_FIRMWARE_ATHEROS_6002=y
BR2_PACKAGE_LINUX_FIRMWARE_ATHEROS_6003=y
BR2_PACKAGE_LINUX_FIRMWARE_ATHEROS_6004=y
BR2_PACKAGE_LINUX_FIRMWARE_ATHEROS_7010=y
BR2_PACKAGE_LINUX_FIRMWARE_ATHEROS_9170=y
BR2_PACKAGE_LINUX_FIRMWARE_ATHEROS_9271=y
BR2_PACKAGE_LINUX_FIRMWARE_ATHEROS_10K_QCA998X=y
BR2_PACKAGE_LINUX_FIRMWARE_ATHEROS_10K_QCA6174=y
BR2_PACKAGE_LINUX_FIRMWARE_IWLWIFI_3160=y
BR2_PACKAGE_LINUX_FIRMWARE_IWLWIFI_3168=y
BR2_PACKAGE_LINUX_FIRMWARE_IWLWIFI_5000=y
BR2_PACKAGE_LINUX_FIRMWARE_IWLWIFI_6000G2A=y
BR2_PACKAGE_LINUX_FIRMWARE_IWLWIFI_6000G2B=y
BR2_PACKAGE_LINUX_FIRMWARE_IWLWIFI_7260=y
BR2_PACKAGE_LINUX_FIRMWARE_IWLWIFI_7265D=y
BR2_PACKAGE_LINUX_FIRMWARE_IWLWIFI_8000C=y
BR2_PACKAGE_LINUX_FIRMWARE_IWLWIFI_8265=y
BR2_PACKAGE_LINUX_FIRMWARE_IWLWIFI_9XXX=y
BR2_PACKAGE_LINUX_FIRMWARE_LIBERTAS_SD8686_V8=y
BR2_PACKAGE_LINUX_FIRMWARE_LIBERTAS_SD8686_V9=y
BR2_PACKAGE_LINUX_FIRMWARE_LIBERTAS_SD8688=y
BR2_PACKAGE_LINUX_FIRMWARE_MWIFIEX_SD8787=y
BR2_PACKAGE_LINUX_FIRMWARE_MWIFIEX_SD8797=y
BR2_PACKAGE_LINUX_FIRMWARE_MWIFIEX_USB8797=y
BR2_PACKAGE_LINUX_FIRMWARE_MWIFIEX_USB8801=y
BR2_PACKAGE_LINUX_FIRMWARE_MWIFIEX_SD8887=y
BR2_PACKAGE_LINUX_FIRMWARE_MWIFIEX_SD8897=y
BR2_PACKAGE_LINUX_FIRMWARE_MWIFIEX_USB8897=y
BR2_PACKAGE_LINUX_FIRMWARE_MWIFIEX_PCIE8897=y
BR2_PACKAGE_LINUX_FIRMWARE_MEDIATEK_MT7601U=y
BR2_PACKAGE_LINUX_FIRMWARE_QUALCOMM_6174=y
BR2_PACKAGE_LINUX_FIRMWARE_RALINK_RT61=y
BR2_PACKAGE_LINUX_FIRMWARE_RALINK_RT73=y
BR2_PACKAGE_LINUX_FIRMWARE_RALINK_RT2XX=y
BR2_PACKAGE_LINUX_FIRMWARE_RTL_81XX=y
BR2_PACKAGE_LINUX_FIRMWARE_RTL_87XX=y
BR2_PACKAGE_LINUX_FIRMWARE_RTL_88XX=y
BR2_PACKAGE_LINUX_FIRMWARE_REDPINE_RS9113=y
BR2_PACKAGE_LINUX_FIRMWARE_TI_WL127X=y
BR2_PACKAGE_LINUX_FIRMWARE_TI_WL128X=y
BR2_PACKAGE_LINUX_FIRMWARE_TI_WL18XX=y
BR2_PACKAGE_LINUX_FIRMWARE_BNX2X=y
BR2_PACKAGE_LINUX_FIRMWARE_CXGB4_T4=y
BR2_PACKAGE_LINUX_FIRMWARE_CXGB4_T5=y
BR2_PACKAGE_LINUX_FIRMWARE_INTEL_E100=y
BR2_PACKAGE_LINUX_FIRMWARE_QLOGIC_4X=y
BR2_PACKAGE_LINUX_FIRMWARE_RTL_8169=y
BR2_PACKAGE_RPI_BT_FIRMWARE=y
BR2_PACKAGE_RPI_FIRMWARE=y
BR2_PACKAGE_RPI_FIRMWARE_VARIANT_PI4=y
BR2_PACKAGE_RPI_FIRMWARE_X=y
BR2_PACKAGE_RPI_WIFI_FIRMWARE=y
BR2_PACKAGE_UX500_FIRMWARE=y
BR2_PACKAGE_WILC1000_FIRMWARE=y
BR2_PACKAGE_WILINK_BT_FIRMWARE=y
BR2_PACKAGE_ZD1211_FIRMWARE=y
BR2_PACKAGE_DBUS_PYTHON=y
BR2_PACKAGE_KBD=y
BR2_PACKAGE_PARTED=y
BR2_PACKAGE_SPI_TOOLS=y
BR2_PACKAGE_PYTHON3=y
BR2_PACKAGE_PYTHON3_PY_ONLY=y
BR2_PACKAGE_PYTHON3_BZIP2=y
BR2_PACKAGE_PYTHON3_CODECSCJK=y
BR2_PACKAGE_PYTHON3_CURSES=y
BR2_PACKAGE_PYTHON3_DECIMAL=y
BR2_PACKAGE_PYTHON3_OSSAUDIODEV=y
BR2_PACKAGE_PYTHON3_SQLITE=y
BR2_PACKAGE_PYTHON3_XZ=y
BR2_PACKAGE_PYTHON_ALSAAUDIO=y
BR2_PACKAGE_PYTHON_ARROW=y
BR2_PACKAGE_PYTHON_COLORAMA=y
BR2_PACKAGE_PYTHON_CONFIGSHELL_FB=y
BR2_PACKAGE_PYTHON_CRYPTOGRAPHY=y
BR2_PACKAGE_PYTHON_DAEMONIZE=y
BR2_PACKAGE_PYTHON_GOBJECT=y
BR2_PACKAGE_PYTHON_INFLECTION=y
BR2_PACKAGE_PYTHON_LXML=y
BR2_PACKAGE_PYTHON_NETADDR=y
BR2_PACKAGE_PYTHON_OAUTHLIB=y
BR2_PACKAGE_PYTHON_PILLOW=y
BR2_PACKAGE_PYTHON_PIP=y
BR2_PACKAGE_PYTHON_PSUTIL=y
BR2_PACKAGE_PYTHON_PYCLI=y
BR2_PACKAGE_PYTHON_PYCRYPTO=y
BR2_PACKAGE_PYTHON_PYJWT=y
BR2_PACKAGE_PYTHON_PYTZ=y
BR2_PACKAGE_PYTHON_PYUSB=y
BR2_PACKAGE_PYTHON_PYYAML=y
BR2_PACKAGE_PYTHON_SERIAL=y
BR2_PACKAGE_PYTHON_SPIDEV=y
BR2_PACKAGE_PYTHON_TEXTTABLE=y
BR2_PACKAGE_PYTHON_TORNADO=y
BR2_PACKAGE_PYTHON_WEBSOCKET_CLIENT=y
BR2_PACKAGE_PYTHON_WRAPT=y
BR2_PACKAGE_LIBAO=y
BR2_PACKAGE_LIBCDDB=y
BR2_PACKAGE_LIBMAD=y
BR2_PACKAGE_LIBSIDPLAY2=y
BR2_PACKAGE_OPUSFILE=y
BR2_PACKAGE_PORTAUDIO=y
BR2_PACKAGE_PORTAUDIO_OSS=y
BR2_PACKAGE_SPEEXDSP=y
BR2_PACKAGE_WEBRTC_AUDIO_PROCESSING=y
BR2_PACKAGE_LIBARCHIVE=y
BR2_PACKAGE_LIBARCHIVE_BSDTAR=y
BR2_PACKAGE_LIBARCHIVE_BSDCPIO=y
BR2_PACKAGE_LIBARCHIVE_BSDCAT=y
BR2_PACKAGE_LIBZIP=y
BR2_PACKAGE_CA_CERTIFICATES=y
BR2_PACKAGE_GNUTLS=y
BR2_PACKAGE_GNUTLS_OPENSSL=y
BR2_PACKAGE_LIBSSH2=y
BR2_PACKAGE_LIBOPENSSL_BIN=y
BR2_PACKAGE_LIBOPENSSL_ENGINES=y
BR2_PACKAGE_LIBCONFIG=y
BR2_PACKAGE_LIBNFS=y
BR2_PACKAGE_LIBRSVG=y
BR2_PACKAGE_MRAA=y
BR2_PACKAGE_WIRINGPI=y
BR2_PACKAGE_LIBASS=y
BR2_PACKAGE_LIBBLURAY=y
BR2_PACKAGE_LIBDVBPSI=y
BR2_PACKAGE_LIBMATROSKA=y
BR2_PACKAGE_LIBMPEG2=y
BR2_PACKAGE_LIBMPEG2_BINS=y
BR2_PACKAGE_LIBOPENH264=y
BR2_PACKAGE_LIBOPUSENC=y
BR2_PACKAGE_LIBTHEORA=y
BR2_PACKAGE_X264=y
BR2_PACKAGE_X265=y
BR2_PACKAGE_C_ARES=y
BR2_PACKAGE_LIBCURL=y
BR2_PACKAGE_CURL=y
BR2_PACKAGE_LIBHTTPPARSER=y
BR2_PACKAGE_LIBTIRPC=y
BR2_PACKAGE_NGHTTP2=y
BR2_PACKAGE_LIBUV=y
BR2_PACKAGE_LIBUNISTRING=y
BR2_PACKAGE_NCURSES_WCHAR=y
BR2_PACKAGE_NCURSES_TARGET_PROGS=y
BR2_PACKAGE_PCRE_16=y
BR2_PACKAGE_PCRE_32=y
BR2_PACKAGE_PCRE2_16=y
BR2_PACKAGE_PCRE2_32=y
BR2_PACKAGE_AVAHI=y
BR2_PACKAGE_CRDA=y
BR2_PACKAGE_IFUPDOWN=y
BR2_PACKAGE_IPTABLES=y
BR2_PACKAGE_IW=y
BR2_PACKAGE_NTP=y
BR2_PACKAGE_OPENSSH=y
BR2_PACKAGE_WGET=y
BR2_PACKAGE_WIRELESS_TOOLS=y
BR2_PACKAGE_WPA_SUPPLICANT=y
BR2_PACKAGE_WPA_SUPPLICANT_AP_SUPPORT=y
BR2_PACKAGE_WPA_SUPPLICANT_EAP=y
BR2_PACKAGE_WPA_SUPPLICANT_WPS=y
BR2_PACKAGE_WPA_SUPPLICANT_CLI=y
BR2_PACKAGE_WPA_SUPPLICANT_WPA_CLIENT_SO=y
BR2_PACKAGE_WPA_SUPPLICANT_PASSPHRASE=y
BR2_PACKAGE_WPA_SUPPLICANT_DBUS=y
BR2_PACKAGE_BASH_COMPLETION=y
BR2_PACKAGE_FILE=y
BR2_PACKAGE_SCREEN=y
BR2_PACKAGE_SUDO=y
BR2_PACKAGE_TIME=y
BR2_PACKAGE_WHICH=y
BR2_PACKAGE_HTOP=y
BR2_PACKAGE_RSYSLOG=y
BR2_PACKAGE_START_STOP_DAEMON=y
BR2_PACKAGE_SYSKLOGD=y
BR2_PACKAGE_SYSTEMD_FIRSTBOOT=y
BR2_PACKAGE_SYSTEMD_LOCALED=y
BR2_PACKAGE_SYSTEMD_RFKILL=y
BR2_PACKAGE_TAR=y
BR2_PACKAGE_UTIL_LINUX_HWCLOCK=y
BR2_PACKAGE_UTIL_LINUX_KILL=y
BR2_PACKAGE_UTIL_LINUX_MORE=y
BR2_PACKAGE_NANO=y
BR2_PACKAGE_VIM=y
# BR2_PACKAGE_VIM_RUNTIME is not set
BR2_TARGET_ROOTFS_EXT2=y
BR2_TARGET_ROOTFS_EXT2_4=y
BR2_TARGET_ROOTFS_EXT2_SIZE="1024M"
# BR2_TARGET_ROOTFS_TAR is not set
BR2_PACKAGE_HOST_DOSFSTOOLS=y
BR2_PACKAGE_HOST_GENIMAGE=y
BR2_PACKAGE_HOST_MTOOLS=y
BR2_PACKAGE_HOST_PYTHON_CYTHON=y
BR2_PACKAGE_HOST_PYTHON_LXML=y
BR2_PACKAGE_HOST_PYTHON_SIX=y
BR2_PACKAGE_HOST_PYTHON_XLRD=y
BR2_PACKAGE_HOST_PYTHON3=y
BR2_PACKAGE_HOST_PYTHON3_SSL=y
BR2_PACKAGE_FIRSTBOOT_SERVICE=y
BR2_PACKAGE_PREPARE_SYSTEM_SERVICE=y
BR2_PACKAGE_PYTHON_MYCROFT=y
BR2_PACKAGE_MYCROFT_SERVICE=y
BR2_PACKAGE_MYCROFT_SPLASH=y
BR2_PACKAGE_ALSA_PLUGINS=y
BR2_PACKAGE_FANN=y
BR2_PACKAGE_RESPEAKER=y
BR2_PACKAGE_PYTHON_ADAPT_PARSER=y
BR2_PACKAGE_PYTHON_COLORZERO=y
BR2_PACKAGE_PYTHON_COVERALLS=y
BR2_PACKAGE_PYTHON_DEPRECATED=y
BR2_PACKAGE_PYTHON_FASTENERS=y
BR2_PACKAGE_PYTHON_FEEDPARSER=y
BR2_PACKAGE_PYTHON_GOOGLE_API_PYTHON_CLIENT=y
BR2_PACKAGE_PYTHON_GPIOZERO=y
BR2_PACKAGE_PYTHON_GTTS=y
BR2_PACKAGE_PYTHON_HUMANHASH3=y
BR2_PACKAGE_PYTHON_LAZY=y
BR2_PACKAGE_PYTHON_MSK=y
BR2_PACKAGE_PYTHON_OAUTH2CLIENT=y
BR2_PACKAGE_PYTHON_OLEFILE=y
BR2_PACKAGE_PYTHON_PADATIOUS=y
BR2_PACKAGE_PYTHON_PAKO=y
BR2_PACKAGE_PYTHON_PEP8=y
BR2_PACKAGE_PYTHON_PETACT=y
BR2_PACKAGE_PYTHON_POCKETSPHINX=y
BR2_PACKAGE_PYTHON_PRECISE_RUNNER=y
BR2_PACKAGE_PYTHON_PULSECTL=y
BR2_PACKAGE_PYTHON_PYCHROMECAST=y
BR2_PACKAGE_PYTHON_PYMPLAYER=y
BR2_PACKAGE_PYTHON_REQUESTS_FUTURES=y
BR2_PACKAGE_PYTHON_SGMLLIB3K=y
BR2_PACKAGE_PYTHON_SOURCE=y
BR2_PACKAGE_PYTHON_SPEECHRECOGNITION=y
BR2_PACKAGE_PYTHON_VLC=y
BR2_PACKAGE_PYTHON_XMLRUNNER=y

View File

@ -0,0 +1,9 @@
config BR2_PACKAGE_ALSA_PLUGINS
bool "alsa-plugins"
depends on BR2_PACKAGE_ALSA_LIB
select BR2_PACKAGE_LIBSAMPLERATE
help
Advanced Linux Sound Architecture Plugins
http://www.alsa-project.org/

View File

@ -0,0 +1,2 @@
# Locally calculated
sha256 161772303da521abbbf1d91f63b470c4791392d5728f2192a42d71292078f907 alsa-plugins-1.1.9.tar.bz2

View File

@ -0,0 +1,24 @@
################################################################################
#
# alsa-plugins
#
################################################################################
ALSA_PLUGINS_VERSION = 1.1.9
ALSA_PLUGINS_SOURCE = alsa-plugins-$(ALSA_PLUGINS_VERSION).tar.bz2
ALSA_PLUGINS_SITE = ftp://ftp.alsa-project.org/pub/plugins
ALSA_PLUGINS_LICENSE = LGPL-2.1+ (library), GPL-2.0+ (aserver)
ALSA_PLUGINS_LICENSE_FILES = COPYING aserver/COPYING
ALSA_PLUGINS_CFLAGS = $(TARGET_CFLAGS)
ALSA_PLUGINS_AUTORECONF = YES
ALSA_PLUGINS_DEPENDENCIES = alsa-lib libsamplerate pulseaudio
ALSA_PLUGINS_CONF_OPTS = \
--with-plugindir=/usr/lib/alsa-lib \
--localstatedir=/var \
--disable-jack \
--enable-samplerate \
--enable-pulseaudio \
--disable-avcodec \
--with-speex=builtin
$(eval $(autotools-package))

View File

@ -0,0 +1,8 @@
config BR2_PACKAGE_FIRSTBOOT_SERVICE
bool "firstboot-service"
help
A systemd service that only runs on first boot
which can be used to run certain scripts that
prepare the rootfs. For now being used to auto
expand the filesystem over the full size of the
SD card.

View File

@ -0,0 +1,4 @@
#!/bin/bash
#
/usr/sbin/resizeSD &&
rm /etc/firstboot

View File

@ -0,0 +1,24 @@
################################################################################
#
# firstboot-service
#
################################################################################
FIRSTBOOT_SERVICE_VERSION = 0.1.0
FIRSTBOOT_SERVICE_SITE = $(BR2_EXTERNAL_MYCROFTOS_PATH)/package/firstboot-service
FIRSTBOOT_SERVICE_SITE_METHOD = local
FIRSTBOOT_SERVICE_LICENSE = Apache License 2.0
FIRSTBOOT_SERVICE_LICENSE_FILES = LICENSE
define FIRSTBOOT_SERVICE_INSTALL_TARGET_CMDS
$(INSTALL) -m 0755 $(@D)/resizeSD $(TARGET_DIR)/usr/sbin/
$(INSTALL) -m 0755 $(@D)/firstboot $(TARGET_DIR)/usr/sbin/
$(INSTALL) -D -m 644 $(@D)/firstboot.service \
$(TARGET_DIR)/usr/lib/systemd/system/firstboot.service
mkdir -p $(TARGET_DIR)/etc/systemd/system/sysinit.target.wants
ln -fs ../../../../usr/lib/systemd/system/firstboot.service \
$(TARGET_DIR)/etc/systemd/system/sysinit.target.wants/firstboot.service
touch $(TARGET_DIR)/etc/firstboot
endef
$(eval $(generic-package))

View File

@ -0,0 +1,16 @@
[Unit]
Description=First Boot run script
DefaultDependencies=no
Conflicts=shutdown.target
After=systemd-remount-fs.service
Before=sysinit.target shutdown.target
ConditionPathIsReadWrite=/etc
ConditionPathExists=/etc/firstboot
[Service]
Type=oneshot
RemainAfterExit=yes
ExecStart=/usr/sbin/firstboot
[Install]
WantedBy=sysinit.target

View File

@ -0,0 +1,9 @@
#!/bin/bash
#
printf "Resize data partition ..."
parted /dev/mmcblk0 unit % resizepart 2 100% &&
partprobe /dev/mmcblk0 &&
sync &&
resize2fs /dev/mmcblk0p2 &&
echo "[OK]"

View File

@ -0,0 +1,6 @@
config BR2_PACKAGE_MYCROFT_SERVICE
bool "mycroft-service"
help
Start the Mycroft A.I. software as service.
https://mycroft.ai/

View File

@ -0,0 +1,23 @@
################################################################################
#
# mycroft-service
#
################################################################################
MYCROFT_SERVICE_VERSION = 0.1.0
MYCROFT_SERVICE_SITE = $(BR2_EXTERNAL_MYCROFTOS_PATH)/package/mycroft-service
MYCROFT_SERVICE_SITE_METHOD = local
MYCROFT_SERVICE_LICENSE = Apache License 2.0
MYCROFT_SERVICE_LICENSE_FILES = LICENSE
define MYCROFT_SERVICE_INSTALL_TARGET_CMDS
$(INSTALL) -m 0755 $(@D)/start-mycroft.sh $(TARGET_DIR)/usr/bin/
$(INSTALL) -m 0755 $(@D)/stop-mycroft.sh $(TARGET_DIR)/usr/bin/
$(INSTALL) -D -m 644 $(@D)/mycroft.service \
$(TARGET_DIR)/usr/lib/systemd/system/mycroft.service
mkdir -p $(TARGET_DIR)/etc/systemd/system/multi-user.target.wants
ln -fs ../../../../usr/lib/systemd/system/mycroft.service \
$(TARGET_DIR)/etc/systemd/system/multi-user.target.wants/mycroft.service
endef
$(eval $(generic-package))

View File

@ -0,0 +1,15 @@
[Unit]
Description=Mycroft AI
After=pulseaudio.service
[Service]
User=mycroft
WorkingDirectory=/home/mycroft
ExecStart=start-mycroft.sh all
ExecStop=stop-mycroft.sh all
Type=forking
Restart=always
RestartSec=3
[Install]
WantedBy=multi-user.target

View File

@ -23,31 +23,34 @@ DIR="$( pwd )"
function help() {
echo "${script}: Mycroft command/service launcher"
echo "usage: ${script} [command] [params]"
echo "usage: ${script} [COMMAND] [restart] [params]"
echo
echo "Services:"
echo "Services COMMANDs:"
echo " all runs core services: bus, audio, skills, voice"
echo " debug runs core services, then starts the CLI"
echo
echo "Services:"
echo " audio the audio playback service"
echo " bus the messagebus service"
echo " skills the skill service"
echo " voice voice capture service"
# echo " wifi wifi setup service"
echo " enclosure mark_1 enclosure service"
echo
echo "Tools:"
echo "Tool COMMANDs:"
echo " cli the Command Line Interface"
echo " unittest run mycroft-core unit tests (requires pytest)"
echo " skillstest run the skill autotests for all skills (requires pytest)"
echo
echo "Utils:"
echo "Util COMMANDs:"
echo " audiotest attempt simple audio validation"
echo " audioaccuracytest more complex audio validation"
echo " sdkdoc generate sdk documentation"
echo
echo "Options:"
echo " restart (optional) Force the service to restart if running"
echo
echo "Examples:"
echo " ${script} all"
echo " ${script} all restart"
echo " ${script} cli"
echo " ${script} unittest"
@ -72,7 +75,33 @@ function name-to-script-path() {
esac
}
first_time=true
# set the right locale / language settings
export LC_ALL=en_US.UTF-8
export LANG=en_US.UTF-8
export LANGUAGE=en_US.UTF-8
function init-once() {
sudo fbv -f -d 1 /opt/mycroft/splash/logo.png > /dev/null 2>&1
if ($first_time) ; then
echo "Initializing..."
# Check if Mycroft log folders are present and if not
# create those logging folders
if [[ ! -w /var/log/mycroft/ ]] ; then
# Creating needed folders
printf "Creating /var/log/mycroft/ directory"
if [[ ! -d /var/log/mycroft/ ]] ; then
mkdir /var/log/mycroft/
fi
fi
first_time=false
fi
}
function launch-process() {
init-once
name-to-script-path ${1}
# Launch process in foreground
@ -80,12 +109,28 @@ function launch-process() {
python3 -m ${_module} $_params
}
function require-process() {
# Launch process if not found
name-to-script-path ${1}
if ! pgrep -f "python3 -m ${_module}" > /dev/null ; then
# Start required process
launch-background ${1}
fi
}
function launch-background() {
init-once
# Check if given module is running and start (or restart if running)
name-to-script-path ${1}
if pgrep -f "python3 -m ${_module}" > /dev/null ; then
echo "Restarting: ${1}"
"${DIR}/stop-mycroft.sh" ${1}
if ($_force_restart) ; then
echo "Restarting: ${1}"
"${DIR}/stop-mycroft.sh" ${1}
else
# Already running, no need to restart
return
fi
else
echo "Starting background service $1"
fi
@ -107,25 +152,27 @@ function launch-all() {
launch-background skills
launch-background audio
launch-background voice
# Determine platform type
if [[ -r /etc/mycroft/mycroft.conf ]] ; then
mycroft_platform=$( jq -r ".enclosure.platform" < /etc/mycroft/mycroft.conf )
if [[ $mycroft_platform = "mycroft_mark_1" ]] ; then
# running on a Mark 1, start enclosure service
launch-background enclosure
fi
fi
launch-background enclosure
}
_opt=$1
_force_restart=false
shift
if [[ "${1}" == "restart" ]] || [[ "${_opt}" == "restart" ]] ; then
_force_restart=true
if [[ "${_opt}" == "restart" ]] ; then
# Support "start-mycroft.sh restart all" as well as "start-mycroft.sh all restart"
_opt=$1
fi
shift
fi
_params=$@
case ${_opt} in
"all")
launch-all
;;
"bus")
launch-background ${_opt}
;;
@ -138,24 +185,47 @@ case ${_opt} in
"voice")
launch-background ${_opt}
;;
"debug")
launch-all
launch-process cli
;;
"cli")
require-process bus
require-process skills
launch-process ${_opt}
;;
# TODO: Restore support for Wifi Setup on a Picroft, etc.
# "wifi")
# launch-background ${_opt}
# ;;
"unittest")
pytest test/unittests/ --cov=mycroft "$@"
;;
"singleunittest")
pytest "$@"
;;
"skillstest")
pytest test/integrationtests/skills/discover_tests.py "$@"
;;
"audiotest")
launch-process ${_opt}
;;
"audioaccuracytest")
launch-process ${_opt}
;;
"sdkdoc")
cd doc
make ${opt}
cd ..
;;
"enclosure")
launch-background ${_opt}
;;
*)
help
;;
esac

View File

@ -31,7 +31,7 @@ function help() {
echo " audio stop the audio playback service"
echo " skills stop the skill service"
echo " voice stop voice capture service"
echo " enclosure stop mark_1 enclosure service"
echo " enclosure stop enclosure (hardware/gui interface) service"
echo
echo "Examples:"
echo " ${script}"
@ -50,8 +50,9 @@ function process-running() {
function end-process() {
if process-running $1 ; then
echo -n "Stopping $1..."
pid=$( pgrep -f "python3 -m mycroft.*${1}" )
# Find the process by name, only returning the oldest if it has children
pid=$( pgrep -o -f "python3 -m mycroft.*${1}" )
echo -n "Stopping $1 (${pid})..."
kill -SIGINT ${pid}
# Wait up to 5 seconds (50 * 0.1) for process to stop
@ -67,7 +68,8 @@ function end-process() {
if process-running $1 ; then
echo "failed to stop."
echo -n " Killing $1..."
pid=$( pgrep -o -f "python3 -m mycroft.*${1}" )
echo -n " Killing $1 (${pid})..."
kill -9 ${pid}
echo "killed."
result=120
@ -80,8 +82,10 @@ function end-process() {
fi
}
result=0 # default, no change
OPT=$1
shift
@ -94,15 +98,8 @@ case ${OPT} in
end-process skills
end-process audio
end-process speech
# determine platform type
if [[ -r /etc/mycroft/mycroft.conf ]] ; then
mycroft_platform=$( jq -r ".enclosure.platform" < /etc/mycroft/mycroft.conf )
if [[ $mycroft_platform == "mycroft_mark_1" ]] ; then
# running on a Mark 1, stop enclosure service
end-process enclosure
fi
fi
end-process enclosure
sudo fbv -f -d 1 /opt/mycroft/splash/background.png > /dev/null 2>&1
;;
"bus")
end-process messagebus.service
@ -119,6 +116,7 @@ case ${OPT} in
"enclosure")
end-process enclosure
;;
*)
help
;;

View File

@ -0,0 +1,6 @@
config BR2_PACKAGE_MYCROFT_SPLASH
bool "mycroft-splash"
help
Show Mycroft A.I. branded splash screens on boot/halt.
https://mycroft.ai/ https://www.j1nx.nl

View File

@ -0,0 +1,8 @@
[Unit]
Description=Mycroft AI boot splash screen
[Service]
ExecStart=fbv -f -d 1 /opt/mycroft/splash/boot.png > /dev/null 2>&1
[Install]
WantedBy=basic.target

View File

@ -0,0 +1,11 @@
[Unit]
Description=Mycroft AI halt splash screen
DefaultDependencies=no
Before=halt.target
[Service]
ExecStart=fbv -f -d 1 /opt/mycroft/splash/down.png > /dev/null 2>&1
Type=oneshot
[Install]
WantedBy=halt.target poweroff.target

View File

@ -0,0 +1,36 @@
################################################################################
#
# mycroft-splash
#
################################################################################
MYCROFT_SPLASH_VERSION = 0.1.0
MYCROFT_SPLASH_SITE = $(BR2_EXTERNAL_MYCROFTOS_PATH)/package/mycroft-splash
MYCROFT_SPLASH_SITE_METHOD = local
MYCROFT_SPLASH_LICENSE = Apache License 2.0
MYCROFT_SPLASH_LICENSE_FILES = LICENSE
define MYCROFT_SPLASH_INSTALL_TARGET_CMDS
$(INSTALL) -D -m 644 $(@D)/boot-splashscreen.service \
$(TARGET_DIR)/usr/lib/systemd/system/boot-splashscreen.service
mkdir -p $(TARGET_DIR)/etc/systemd/system/basic.target.wants
ln -fs ../../../../usr/lib/systemd/system/boot-splashscreen.service \
$(TARGET_DIR)/etc/systemd/system/basic.target.wants/boot-splashscreen.service
$(INSTALL) -D -m 644 $(@D)/halt-splashscreen.service \
$(TARGET_DIR)/usr/lib/systemd/system/halt-splashscreen.service
mkdir -p $(TARGET_DIR)/etc/systemd/system/halt.target.wants
ln -fs ../../../../usr/lib/systemd/system/halt-splashscreen.service \
$(TARGET_DIR)/etc/systemd/system/halt.target.wants/halt-splashscreen.service
mkdir -p $(TARGET_DIR)/etc/systemd/system/poweroff.target.wants
ln -fs ../../../../usr/lib/systemd/system/halt-splashscreen.service \
$(TARGET_DIR)/etc/systemd/system/poweroff.target.wants/halt-splashscreen.service
$(INSTALL) -D -m 644 $(@D)/off-splashscreen.service \
$(TARGET_DIR)/usr/lib/systemd/system/off-splashscreen.service
mkdir -p $(TARGET_DIR)/etc/systemd/system/shutdown.target.wants
ln -fs ../../../../usr/lib/systemd/system/off-splashscreen.service \
$(TARGET_DIR)/etc/systemd/system/shutdown.target.wants/off-splashscreen.service
endef
$(eval $(generic-package))

View File

@ -0,0 +1,12 @@
[Unit]
Description=Mycroft AI safe power off splash screen
DefaultDependencies=no
After=umount.target
Before=final.target
[Service]
ExecStart=fbv -f -d 1 /opt/mycroft/splash/off.png > /dev/null 2>&1
Type=oneshot
[Install]
WantedBy=shutdown.target

View File

@ -0,0 +1,6 @@
config BR2_PACKAGE_PREPARE_SYSTEM_SERVICE
bool "prepare_system-service"
help
A systemd service that prepares the system.
Used to change/move files before everything
gets loaded.

View File

@ -0,0 +1,21 @@
#!/bin/bash
#
set -x
exec 1>/var/log/$(basename $0).log 2>&1
mkdir -p /boot
mount -t vfat /dev/mmcblk0p1 /boot
echo performance > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
rm /var/lib/alsa/asound.state
rm /etc/pulse/default.pa
rm /etc/pulse/system.pa
rm /etc/pulse/daemon.conf
ln -s /var/lib/alsa/default-asound.state /var/lib/alsa/asound.state
ln -s /etc/pulse/pulseaudio-default.pa /etc/pulse/default.pa
ln -s /etc/pulse/pulseaudio-system.pa /etc/pulse/system.pa
ln -s /etc/pulse/pulseaudio-daemon.conf /etc/pulse/daemon.conf
alsactl restore

View File

@ -0,0 +1,22 @@
################################################################################
#
# prepare_system-service
#
################################################################################
PREPARE_SYSTEM_SERVICE_VERSION = 0.1.0
PREPARE_SYSTEM_SERVICE_SITE = $(BR2_EXTERNAL_MYCROFTOS_PATH)/package/prepare_system-service
PREPARE_SYSTEM_SERVICE_SITE_METHOD = local
PREPARE_SYSTEM_SERVICE_LICENSE = Apache License 2.0
PREPARE_SYSTEM_SERVICE_LICENSE_FILES = LICENSE
define PREPARE_SYSTEM_SERVICE_INSTALL_TARGET_CMDS
$(INSTALL) -m 0755 $(@D)/prepare_system $(TARGET_DIR)/usr/sbin/
$(INSTALL) -D -m 644 $(@D)/prepare_system.service \
$(TARGET_DIR)/usr/lib/systemd/system/prepare_system.service
mkdir -p $(TARGET_DIR)/etc/systemd/system/sysinit.target.wants
ln -fs ../../../../usr/lib/systemd/system/prepare_system.service \
$(TARGET_DIR)/etc/systemd/system/sysinit.target.wants/prepare_system.service
endef
$(eval $(generic-package))

View File

@ -0,0 +1,14 @@
[Unit]
Description=System prepare run script
DefaultDependencies=no
Conflicts=shutdown.target
After=systemd-remount-fs.service
Before=sysinit.target shutdown.target
[Service]
Type=oneshot
RemainAfterExit=yes
ExecStart=/usr/sbin/prepare_system
[Install]
WantedBy=sysinit.target

View File

@ -1,3 +1,3 @@
# md5, sha256 from https://pypi.org/pypi/adapt-parser/json
md5 f415b363a15c3077a9624280a5bc2d37 adapt-parser-0.3.0.tar.gz
sha256 9445c9be4fcf3c519d1fbc605ea289349e11c2eb581db72242b61d12cc4d337f adapt-parser-0.3.0.tar.gz
sha256 1d1f2340603f2146ccf1e005afbe2c4599b16f0c2939110125ccc09ef9721bbc adapt-parser-0.3.4.tar.gz

View File

@ -4,9 +4,9 @@
#
################################################################################
PYTHON_ADAPT_PARSER_VERSION = 0.3.0
PYTHON_ADAPT_PARSER_VERSION = 0.3.4
PYTHON_ADAPT_PARSER_SOURCE = adapt-parser-$(PYTHON_ADAPT_PARSER_VERSION).tar.gz
PYTHON_ADAPT_PARSER_SITE = https://files.pythonhosted.org/packages/36/a4/3ef82c754a8fb079a98d0adb66be1e3dc7a42d6faafdf1f106924a48c352
PYTHON_ADAPT_PARSER_SITE = https://files.pythonhosted.org/packages/01/80/2a437b4b59ada21209a420e44d9597d13f3853df3f16040d3077e1a7976a
PYTHON_ADAPT_PARSER_SETUP_TYPE = setuptools
$(eval $(python-package))

View File

@ -0,0 +1,7 @@
config BR2_PACKAGE_PYTHON_APPDIRS
bool "python-appdirs"
help
A small Python module for determining appropriate platform-
specific dirs, e.g. a "user data dir".
http://github.com/ActiveState/appdirs

View File

@ -0,0 +1,5 @@
# md5, sha256 from https://pypi.org/pypi/appdirs/json
md5 44c679904082a2133f5566c8a0d3ab42 appdirs-1.4.3.tar.gz
sha256 9e5896d1372858f8dd3344faf4e5014d21849c756c8d5701f78f8a103b372d92 appdirs-1.4.3.tar.gz
# Locally computed sha256 checksums
sha256 36ddb4d0a745a93ab203203d7190814b1b89727d254caff48c7a7afbbd47000b LICENSE.txt

View File

@ -0,0 +1,14 @@
################################################################################
#
# python-appdirs
#
################################################################################
PYTHON_APPDIRS_VERSION = 1.4.3
PYTHON_APPDIRS_SOURCE = appdirs-$(PYTHON_APPDIRS_VERSION).tar.gz
PYTHON_APPDIRS_SITE = https://files.pythonhosted.org/packages/48/69/d87c60746b393309ca30761f8e2b49473d43450b150cb08f3c6df5c11be5
PYTHON_APPDIRS_SETUP_TYPE = setuptools
PYTHON_APPDIRS_LICENSE = MIT
PYTHON_APPDIRS_LICENSE_FILES = LICENSE.txt
$(eval $(python-package))

View File

@ -1,3 +1,3 @@
# md5, sha256 from https://pypi.org/pypi/casttube/json
md5 da6bc1693f9b343237e75760537b4c3c casttube-0.1.0.tar.gz
sha256 d3787a38eb3a2bb2c1dc82e9e26387ff056de214b26817cf0bbed2f2a83a5d5c casttube-0.1.0.tar.gz
sha256 f25b3c634efe702896233690f7590e8d6311590910f18dbb763b90419d9ef53c casttube-0.2.0.tar.gz

View File

@ -4,9 +4,9 @@
#
################################################################################
PYTHON_CASTTUBE_VERSION = 0.1.0
PYTHON_CASTTUBE_VERSION = 0.2.0
PYTHON_CASTTUBE_SOURCE = casttube-$(PYTHON_CASTTUBE_VERSION).tar.gz
PYTHON_CASTTUBE_SITE = https://files.pythonhosted.org/packages/a1/57/00f76daff3a80f3e84ec25ac25e982f1aca77df16174b900a1c2ec1d9af1
PYTHON_CASTTUBE_SITE = https://files.pythonhosted.org/packages/54/d1/8edc98ef2aa08eed8dd72e2ef31b6658ba222ea8d228a4c2c3e73a58991a
PYTHON_CASTTUBE_SETUP_TYPE = setuptools
$(eval $(python-package))

View File

@ -1,6 +1,6 @@
# md5, sha256 from https://pypi.org/pypi/gTTS/json
md5 a74588d23840f07badb195bda8138b2d gTTS-2.0.1.tar.gz
sha256 c85ca77ad71181209068d7437275bd35182f38cfef5a2dd7b8fcd4ba1b78ec1a gTTS-2.0.1.tar.gz
sha256 79300af5a61936fd525a0805d5fa85ae77db7301932af251e52fcefddb14de60 gTTS-2.0.4.tar.gz
sha256 124dfc447056cc622989319ebb553d56cfd5c197c345cee3397b675a6da84f58 gTTS-1.1.7.tar.gz
# Locally computed sha256 checksums
sha256 d762ddea99fa1eddb0a03d040a97e4e1404f432f7c70d4b49d391858230a22aa LICENSE

View File

@ -4,12 +4,11 @@
#
################################################################################
PYTHON_GTTS_VERSION = 2.0.1
PYTHON_GTTS_VERSION = 2.0.4
PYTHON_GTTS_SOURCE = gTTS-$(PYTHON_GTTS_VERSION).tar.gz
PYTHON_GTTS_SITE = https://files.pythonhosted.org/packages/52/6e/ae8bd869f7166ab541721e9af7b31d7e54901ce96622620e23e2ae141055
PYTHON_GTTS_SITE = https://files.pythonhosted.org/packages/6b/1c/4c4e9ddde4856e9ea44c6f2e5cb9785cca446ce9addd81ffd1cacad6ddec
PYTHON_GTTS_SETUP_TYPE = setuptools
PYTHON_GTTS_LICENSE = MIT
PYTHON_GTTS_LICENSE_FILES = LICENSE
$(eval $(python-package))
$(eval $(host-python-package))

View File

@ -1,7 +0,0 @@
config BR2_PACKAGE_PYTHON_IFADDR
bool "python-ifaddr"
help
Enumerates all IP addresses on all network adapters of the
system.
https://github.com/pydron/ifaddr

View File

@ -1,3 +0,0 @@
# md5, sha256 from https://pypi.org/pypi/ifaddr/json
md5 37bf17655723fc085156bf7c595abd04 ifaddr-0.1.4.zip
sha256 cf2a8fbb578da2844d999a0a453825f660ed2d3fc47dcffc5f673dd8de4f0f8b ifaddr-0.1.4.zip

View File

@ -1,18 +0,0 @@
################################################################################
#
# python-ifaddr
#
################################################################################
PYTHON_IFADDR_VERSION = 0.1.4
PYTHON_IFADDR_SOURCE = ifaddr-$(PYTHON_IFADDR_VERSION).zip
PYTHON_IFADDR_SITE = https://files.pythonhosted.org/packages/12/40/97ef30db32e0c798fc557af403ea263dbeae8d334571603f02e19f4021a0
PYTHON_IFADDR_SETUP_TYPE = setuptools
define PYTHON_IFADDR_EXTRACT_CMDS
$(UNZIP) -d $(@D) $(DL_DIR)/python-ifaddr/$(PYTHON_IFADDR_SOURCE)
mv $(@D)/ifaddr-$(PYTHON_IFADDR_VERSION)/* $(@D)
$(RM) -r $(@D)/ifaddr-$(PYTHON_IFADDR_VERSION)
endef
$(eval $(python-package))

View File

@ -1,6 +0,0 @@
config BR2_PACKAGE_PYTHON_INFLECTION
bool "python-inflection"
help
A port of Ruby on Rails inflector to Python.
http://github.com/jpvanhal/inflection

View File

@ -1,5 +0,0 @@
# md5, sha256 from https://pypi.org/pypi/inflection/json
md5 7941165e9f148e0520023941c0886b40 inflection-0.3.1.tar.gz
sha256 18ea7fb7a7d152853386523def08736aa8c32636b047ade55f7578c4edeb16ca inflection-0.3.1.tar.gz
# Locally computed sha256 checksums
sha256 4a3f52ac1012a90db398e4c55f1d1bea501dddafef8a4b3adb7533b1d820e148 LICENSE

View File

@ -1,14 +0,0 @@
################################################################################
#
# python-inflection
#
################################################################################
PYTHON_INFLECTION_VERSION = 0.3.1
PYTHON_INFLECTION_SOURCE = inflection-$(PYTHON_INFLECTION_VERSION).tar.gz
PYTHON_INFLECTION_SITE = https://files.pythonhosted.org/packages/d5/35/a6eb45b4e2356fe688b21570864d4aa0d0a880ce387defe9c589112077f8
PYTHON_INFLECTION_SETUP_TYPE = setuptools
PYTHON_INFLECTION_LICENSE = MIT
PYTHON_INFLECTION_LICENSE_FILES = LICENSE
$(eval $(python-package))

View File

@ -0,0 +1,6 @@
config BR2_PACKAGE_PYTHON_LAZY
bool "python-lazy"
help
Lazy attributes for Python objects.
https://github.com/stefanholek/lazy

View File

@ -0,0 +1,5 @@
# md5, sha256 from https://pypi.org/pypi/lazy/json
md5 f4e5a0a5d2add47352a7e10ee87f8211 lazy-1.4.zip
sha256 2c6d27a5ab130fb85435320651a47403adcb37ecbcc501b0c6606391f65f5b43 lazy-1.4.zip
# Locally computed sha256 checksums
sha256 8ba489d9fecfaabf369f6ee4394e689d21b313547531898e2942173f877bfee2 LICENSE

View File

@ -0,0 +1,20 @@
################################################################################
#
# python-lazy
#
################################################################################
PYTHON_LAZY_VERSION = 1.4
PYTHON_LAZY_SOURCE = lazy-$(PYTHON_LAZY_VERSION).zip
PYTHON_LAZY_SITE = https://files.pythonhosted.org/packages/ce/10/2c0cd8a601fff792f814b89233859e3fce2e266a5defd8af3bcadbe5c7ef
PYTHON_LAZY_SETUP_TYPE = setuptools
PYTHON_LAZY_LICENSE = BSD-2-Clause
PYTHON_LAZY_LICENSE_FILES = LICENSE
define PYTHON_LAZY_EXTRACT_CMDS
$(UNZIP) -d $(@D) $(DL_DIR)/python-lazy/$(PYTHON_LAZY_SOURCE)
mv $(@D)/lazy-$(PYTHON_LAZY_VERSION)/* $(@D)
$(RM) -r $(@D)/lazy-$(PYTHON_LAZY_VERSION)
endef
$(eval $(python-package))

View File

@ -0,0 +1,25 @@
From a918c7274654865534f42590608407b2d61d1972 Mon Sep 17 00:00:00 2001
From: Peter Steenbergen <info@j1nx.nl>
Date: Sun, 8 Dec 2019 12:34:31 +0100
Subject: [PATCH 1/1] Only install typing requirement if Python version < 3.5
---
setup.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/setup.py b/setup.py
index 62928e2..b4b6746 100644
--- a/setup.py
+++ b/setup.py
@@ -26,7 +26,7 @@ setup(
version='0.3.14', # Also update in msk/__init__.py
packages=['msk', 'msk.actions'],
package_data={'msk': ['licenses/*']},
- install_requires=['GitPython', 'typing', 'msm>=0.5.13', 'pygithub', 'requests', 'colorama'],
+ install_requires=['GitPython', 'typing;python_version<"3.5"', 'msm>=0.5.13', 'pygithub', 'requests', 'colorama'],
url='https://github.com/MycroftAI/mycroft-skills-kit',
license='Apache-2.0',
author='Mycroft AI',
--
2.24.0.rc1

View File

@ -1,7 +1,6 @@
config BR2_PACKAGE_PYTHON_MSK
bool "python-msk"
select BR2_PACKAGE_PYTHON_GITPYTHON # runtime
select BR2_PACKAGE_PYTHON_TYPING # runtime
select BR2_PACKAGE_PYTHON_MSM # runtime
select BR2_PACKAGE_PYTHON_PYGITHUB # runtime
help

View File

@ -2,3 +2,5 @@
md5 1460094aeffac634008ba1dd12348c3b msk-0.3.11.tar.gz
sha256 d5c157a60eecba4c3b07de89e43e85dec366b5ecdd3677f7e73c0c4cddf01b74 msk-0.3.11.tar.gz
sha256 8e5a1fb7afa22977a9d6ee0835ac52420b74324c1d2088286aacc485a521e573 msk-0.3.12.tar.gz
sha256 55be86ff2cd0087016759f2b15b40861cda2a8d8a8d0c669fdacdf32a77a10da msk-0.3.13.tar.gz
sha256 6620b5412316cc4b3111d0720424ac6a1a837b2bc3e6fb0c11076e95b6496d29 msk-0.3.14.tar.gz

View File

@ -4,9 +4,9 @@
#
################################################################################
PYTHON_MSK_VERSION = 0.3.12
PYTHON_MSK_VERSION = 0.3.14
PYTHON_MSK_SOURCE = msk-$(PYTHON_MSK_VERSION).tar.gz
PYTHON_MSK_SITE = https://files.pythonhosted.org/packages/34/91/fad24465ad7d07184d2b7e965415f62acf90e5488cfd3fec56c89430f01b
PYTHON_MSK_SITE = https://files.pythonhosted.org/packages/ef/de/d21d7d7c59f54b02910da5f4e5b77af9c40f5477079bcdfd0170e5ed4517
PYTHON_MSK_SETUP_TYPE = setuptools
$(eval $(python-package))

View File

@ -0,0 +1,26 @@
From 61a1116fc464df46bd934d45fc4a22dcfee52607 Mon Sep 17 00:00:00 2001
From: Peter Steenbergen <info@j1nx.nl>
Date: Sat, 21 Sep 2019 12:18:38 +0200
Subject: [PATCH 1/1] Add MycroftOS enclosure tag to SKILL_GROUPS
---
msm/mycroft_skills_manager.py | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/msm/mycroft_skills_manager.py b/msm/mycroft_skills_manager.py
index b36540e..327f1fc 100644
--- a/msm/mycroft_skills_manager.py
+++ b/msm/mycroft_skills_manager.py
@@ -86,7 +86,8 @@ def save_device_skill_state(func):
class MycroftSkillsManager(object):
SKILL_GROUPS = {'default', 'mycroft_mark_1', 'picroft', 'kde',
- 'respeaker', 'mycroft_mark_2', 'mycroft_mark_2pi'}
+ 'respeaker', 'mycroft_mark_2', 'mycroft_mark_2pi',
+ 'MycroftOS'}
DEFAULT_SKILLS_DIR = "/opt/mycroft/skills"
def __init__(self, platform='default', skills_dir=None, repo=None,
--
2.11.0

View File

@ -0,0 +1,25 @@
From 79bfc57404cd8d42236283b44f956209ff486e21 Mon Sep 17 00:00:00 2001
From: Peter Steenbergen <info@j1nx.nl>
Date: Sun, 8 Dec 2019 12:54:33 +0100
Subject: [PATCH 1/1] Only install typing if Python version < 3.5
---
setup.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/setup.py b/setup.py
index 5e3167a..18eb0fc 100644
--- a/setup.py
+++ b/setup.py
@@ -26,7 +26,7 @@ setup(
version='0.8.3',
packages=['msm'],
install_requires=[
- 'GitPython', 'typing', 'fasteners', 'pyyaml', 'pako',
+ 'GitPython', 'typing;python_version<"3.5"', 'fasteners', 'pyyaml', 'pako',
'lazy'
],
url='https://github.com/MycroftAI/mycroft-skills-manager',
--
2.24.0.rc1

View File

@ -1,7 +1,6 @@
config BR2_PACKAGE_PYTHON_MSM
bool "python-msm"
select BR2_PACKAGE_PYTHON_GITPYTHON # runtime
select BR2_PACKAGE_PYTHON_TYPING # runtime
help
Mycroft Skills Manager.

View File

@ -1,6 +1,5 @@
# md5, sha256 from https://pypi.org/pypi/msm/json
md5 fe54a2aecd6751bef66fdcd27ffd3cdc msm-0.5.19.tar.gz
sha256 0f67b73e277a73ff4c97ecdf0aa6e10b1202bc09d2666f69170f9aa20653c573 msm-0.5.19.tar.gz
sha256 5d58fadc96d8d0c7b5290875d5ba1859333f372c2069c14881aa2b32e5e0e37d msm-0.6.3.tar.gz
sha256 c201785997f3b766ec376a89bbb3367889ac542183ca26733ffe002bb94917b4 msm-0.8.3.tar.gz
# Locally computed sha256 checksums
sha256 a6cba85bc92e0cff7a450b1d873c0eaa2e9fc96bf472df0247a26bec77bf3ff9 LICENSE

View File

@ -4,9 +4,9 @@
#
################################################################################
PYTHON_MSM_VERSION = 0.6.3
PYTHON_MSM_VERSION = 0.8.3
PYTHON_MSM_SOURCE = msm-$(PYTHON_MSM_VERSION).tar.gz
PYTHON_MSM_SITE = https://files.pythonhosted.org/packages/8d/07/7fd52f9c7690925d48fffea97ec594beee797a75afd1e082ffe7b90dd341
PYTHON_MSM_SITE = https://files.pythonhosted.org/packages/d5/b5/a7b53d4fc7ccbca6fe41f19c26a61c4a67a38068fe823e571b3e3519eb4b
PYTHON_MSM_SETUP_TYPE = setuptools
PYTHON_MSM_LICENSE = Apache-2.0
PYTHON_MSM_LICENSE_FILES = LICENSE

View File

@ -1,6 +1,6 @@
From e5c877740c298fc07fcbadd29ca00c02cfb49ca5 Mon Sep 17 00:00:00 2001
From 840f9594d7876fbcb3a4b446a4b78618a032e774 Mon Sep 17 00:00:00 2001
From: Peter Steenbergen <info@j1nx.nl>
Date: Tue, 29 Jan 2019 10:25:42 +0100
Date: Fri, 6 Dec 2019 09:25:01 +0100
Subject: [PATCH 1/1] Bump python-dateutil requirement to 2.7.5
---
@ -8,18 +8,18 @@ Subject: [PATCH 1/1] Bump python-dateutil requirement to 2.7.5
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/requirements.txt b/requirements.txt
index 5fe21dfa80..7f481ccb93 100644
index 5d89f9fb11..f1be1a6724 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -15,7 +15,7 @@ psutil==5.2.1
@@ -14,7 +14,7 @@ psutil==5.2.1
pocketsphinx==0.1.0
inflection==0.3.1
pillow==4.1.1
pillow==6.2.1
-python-dateutil==2.6.0
+python-dateutil==2.7.5
pychromecast==0.7.7
pychromecast==3.2.2
python-vlc==1.1.2
pulsectl==17.7.4
google-api-python-client==1.6.4
--
2.11.0
2.24.0.rc1

View File

@ -1,26 +0,0 @@
From 9fbd29b3c0442191706468fdd14270749e358211 Mon Sep 17 00:00:00 2001
From: Peter Steenbergen <info@j1nx.nl>
Date: Fri, 25 Jan 2019 13:04:53 +0100
Subject: [PATCH 1/1] Bump python-tornado requirement to 5.1.1 This because
4.5.3 does not compile on the host with Python 3.7
---
requirements.txt | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/requirements.txt b/requirements.txt
index 94ffe987e8..5fe21dfa80 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -5,7 +5,7 @@ gTTS-token==1.1.3
PyAudio==0.2.11
pyee==1.0.1
SpeechRecognition==3.8.1
-tornado==4.5.3
+tornado==5.1.1
websocket-client==0.32.0
requests-futures==0.9.5
pyalsaaudio==0.8.2
--
2.11.0

View File

@ -1,8 +1 @@
sha256 90255931a864a4abe30f28c470009cf798dc72221cab16ba41712d80b19e28e4 python-mycroft-v18.8.1.tar.gz
sha256 af18bd9ee1c6e3bbc6b424af39b352179d05fc337d04573eadba37b01f7105f6 python-mycroft-v18.8.2.tar.gz
sha256 25c583e40e888a99ea6fb0817960952bc26dcf8facf87f77f3363ac0c3c3b9d9 python-mycroft-v18.8.3.tar.gz
sha256 42950284980d415d5cf75c91ad1e59080770cf82a12dc294f106b97fdf8c65c0 python-mycroft-v18.8.4.tar.gz
sha256 35d6c2d6155ea9b1887b296164a8ee7f1abf8e58b192a4829aaa59a7592909fa python-mycroft-v18.8.5.tar.gz
sha256 14d936dea78379a58c80b2d8268be87e5e89b3147a6f48fa85c6db4c37dc8b56 python-mycroft-v18.8.10.tar.gz
sha256 f3a4dcfbf4690df6a885cab40c7069d67b61e8cd5d81f85cf892dd38b3902aff python-mycroft-v18.8.11.tar.gz
sha256 b7ddc81be63310c28bc5da1e39745429941311362364dc44b67e3bc69139bb94 python-mycroft-v18.8.12.tar.gz
sha256 879c8c5ecb3aabe20480569b791ddcf22f105b9e8156ccad7d5c4eb17a2a452a python-mycroft-599fc576905b2dfc22bfdecbf9f478cc68ebd480.tar.gz

View File

@ -4,9 +4,9 @@
#
################################################################################
PYTHON_MYCROFT_VERSION = v18.8.12
PYTHON_MYCROFT_SITE = $(call github,MycroftAI,mycroft-core,release/$(PYTHON_MYCROFT_VERSION))
PYTHON_MYCROFT_VERSION = 599fc576905b2dfc22bfdecbf9f478cc68ebd480
PYTHON_MYCROFT_SITE = $(call github,MycroftAI,mycroft-core,$(PYTHON_MYCROFT_VERSION))
PYTHON_MYCROFT_SETUP_TYPE = setuptools
PYTHON_MYCROFT_LICENSE_FILES =
PYTHON_MYCROFT_LICENSE_FILES = LICENSE
$(eval $(python-package))

View File

@ -3,3 +3,4 @@ sha256 06fb231807f1c82d6fe8014e81d8a97124219fe6bcbccc020d445ca22d437146 padaos-
md5 5dbb47982c859449f06decde6d240bd9 padaos-0.1.7.tar.gz
sha256 0703a5fec01a5b40038e90a32c39ac4c2c59b2a91b9bd1624408f017a2f61db3 padaos-0.1.7.tar.gz
sha256 287310c7299a1c3ea2d0f8193caf83944d297a30a131b298bc29379acc46714e padaos-0.1.8.tar.gz
sha256 47be66fed43f35b5347722aa45ee3c2df64ea1718cf805b2f1da81ed2c98ee83 padaos-0.1.9.tar.gz

View File

@ -4,9 +4,9 @@
#
################################################################################
PYTHON_PADAOS_VERSION = 0.1.8
PYTHON_PADAOS_VERSION = 0.1.9
PYTHON_PADAOS_SOURCE = padaos-$(PYTHON_PADAOS_VERSION).tar.gz
PYTHON_PADAOS_SITE = https://files.pythonhosted.org/packages/1b/5a/8b9053ef320f958b52c8881e0a8147faea5dd87e0fbf26958b7069ab7f76
PYTHON_PADAOS_SITE = https://files.pythonhosted.org/packages/5d/d9/f1e366c164c551c79e988c43fa282aea6e671d7842e6f70164ae09ad6376
PYTHON_PADAOS_SETUP_TYPE = setuptools
$(eval $(python-package))

View File

@ -1,3 +1,3 @@
# md5, sha256 from https://pypi.org/pypi/padatious/json
md5 6e9d8b85814090a1c3c39774ef24124e padatious-0.4.5.tar.gz
sha256 81cefa5c3baf5fe8e3c6987216c1c438eff59f2026bce8ae6302871c7edbd69b padatious-0.4.5.tar.gz
md5 cf7bbc745f6689d53f0646d8747f744b padatious-0.4.6.tar.gz
sha256 03bebbe81ebf67526b7e7300cfb8fa5ad2f30ed0aa71e4e54e6e8ed292ff9883 padatious-0.4.6.tar.gz

View File

@ -4,9 +4,9 @@
#
################################################################################
PYTHON_PADATIOUS_VERSION = 0.4.5
PYTHON_PADATIOUS_VERSION = 0.4.6
PYTHON_PADATIOUS_SOURCE = padatious-$(PYTHON_PADATIOUS_VERSION).tar.gz
PYTHON_PADATIOUS_SITE = https://files.pythonhosted.org/packages/00/ca/5d2262ec5ca90afa94706b78c770de9f48298d3048cd65dc0ad79ffcfb10
PYTHON_PADATIOUS_SITE = https://files.pythonhosted.org/packages/1f/37/0022764d88b1aacb7f42a9e3ba5250b10212d8b6cf6223c58e639d669a6c
PYTHON_PADATIOUS_SETUP_TYPE = setuptools
$(eval $(python-package))

View File

@ -0,0 +1,7 @@
config BR2_PACKAGE_PYTHON_PAKO
bool "python-pako"
select BR2_PACKAGE_PYTHON_APPDIRS # runtime
help
The universal package manager library.
https://github.com/MycroftAI/pako

View File

@ -0,0 +1,5 @@
# md5, sha256 from https://pypi.org/pypi/pako/json
md5 8eb7077075091c50e4b8a9f939607277 pako-0.2.3.tar.gz
sha256 6be55fd8c5a2a6f02974f37438c1c47a3d9e764ce81c9d0a1a8c9a1815a59778 pako-0.2.3.tar.gz
# Locally computed sha256 checksums
sha256 a6cba85bc92e0cff7a450b1d873c0eaa2e9fc96bf472df0247a26bec77bf3ff9 LICENSE

View File

@ -0,0 +1,14 @@
################################################################################
#
# python-pako
#
################################################################################
PYTHON_PAKO_VERSION = 0.2.3
PYTHON_PAKO_SOURCE = pako-$(PYTHON_PAKO_VERSION).tar.gz
PYTHON_PAKO_SITE = https://files.pythonhosted.org/packages/96/91/bf16a2f64a6628dfbfd9218f0331fbf73655530608ddd2f8fb597fdb9458
PYTHON_PAKO_SETUP_TYPE = setuptools
PYTHON_PAKO_LICENSE = Apache-2.0
PYTHON_PAKO_LICENSE_FILES = LICENSE
$(eval $(python-package))

View File

@ -1,5 +1,5 @@
# md5, sha256 from https://pypi.org/pypi/pychromecast/json
sha256 addc87ecb769c6883756081e0e775d6cac0b45b6698419d7419c589ff7f55244 PyChromecast-0.7.7.tar.gz
sha256 da8a5a5a0d6c1046e818b586b247dd41f556ffa2a2e80f09cff6497c2db5879e PyChromecast-3.2.2.tar.gz
md5 4449701d330e33b8694aa7582662958c PyChromecast-2.3.0.tar.gz
sha256 f385168e34d2ef47f976c8e41bad2f58f5ca004634c0ccb1a12623d8beb2fa38 PyChromecast-2.3.0.tar.gz
# Locally computed sha256 checksums

View File

@ -4,9 +4,9 @@
#
################################################################################
PYTHON_PYCHROMECAST_VERSION = 0.7.7
PYTHON_PYCHROMECAST_VERSION = 3.2.2
PYTHON_PYCHROMECAST_SOURCE = PyChromecast-$(PYTHON_PYCHROMECAST_VERSION).tar.gz
PYTHON_PYCHROMECAST_SITE = https://files.pythonhosted.org/packages/cf/07/9a95c424e080f4b4e3b0b58cc91e67b03ce67e7f1a4f204e886d2838665f
PYTHON_PYCHROMECAST_SITE = https://files.pythonhosted.org/packages/3d/56/21a75152eb64c16d9379639c408869ae15de553e25af18db3c3bbcfc4bfa
PYTHON_PYCHROMECAST_SETUP_TYPE = setuptools
PYTHON_PYCHROMECAST_LICENSE = MIT
PYTHON_PYCHROMECAST_LICENSE_FILES = LICENSE

View File

@ -4,9 +4,9 @@
#
################################################################################
PYTHON_PYEE_VERSION = 1.0.1
PYTHON_PYEE_VERSION = 5.0.0
PYTHON_PYEE_SOURCE = pyee-$(PYTHON_PYEE_VERSION).tar.gz
PYTHON_PYEE_SITE = https://files.pythonhosted.org/packages/0b/94/6820b8b1a21ce4d6a1c807342ac35cf4d5fd89b94b3f12e10de3c34d5507
PYTHON_PYEE_SITE = https://files.pythonhosted.org/packages/c6/35/b37e4ffbf46063c883675e028e38e2a24b67433fd587f188e2a5005d9329
PYTHON_PYEE_SETUP_TYPE = distutils
PYTHON_PYEE_LICENSE = MIT

View File

@ -1,6 +0,0 @@
config BR2_PACKAGE_PYTHON_PYJWT
bool "python-pyjwt"
help
JSON Web Token implementation in Python.
http://github.com/jpadilla/pyjwt

View File

@ -1,5 +0,0 @@
# md5, sha256 from https://pypi.org/pypi/pyjwt/json
md5 2731c6b66b67b95d1944f072f5fa35a9 PyJWT-1.6.4.tar.gz
sha256 4ee413b357d53fd3fb44704577afac88e72e878716116270d722723d65b42176 PyJWT-1.6.4.tar.gz
# Locally computed sha256 checksums
sha256 ec82af815b5f9da8685afb300cc5beb7949e1c22b79b6c1c054796cefdf6cac6 LICENSE

View File

@ -1,14 +0,0 @@
################################################################################
#
# python-pyjwt
#
################################################################################
PYTHON_PYJWT_VERSION = 1.6.4
PYTHON_PYJWT_SOURCE = PyJWT-$(PYTHON_PYJWT_VERSION).tar.gz
PYTHON_PYJWT_SITE = https://files.pythonhosted.org/packages/00/5e/b358c9bb24421e6155799d995b4aa3aa3307ffc7ecae4ad9d29fd7e07a73
PYTHON_PYJWT_SETUP_TYPE = setuptools
PYTHON_PYJWT_LICENSE = MIT
PYTHON_PYJWT_LICENSE_FILES = LICENSE
$(eval $(python-package))

View File

@ -0,0 +1,6 @@
config BR2_PACKAGE_PYTHON_PYMPLAYER
bool "python-pymplayer"
help
mplayer python api.
https://github.com/JarbasAl/py_mplayer

View File

@ -0,0 +1,2 @@
# sha256 from https://pypi.org
sha256 f4048a6e882a093affc52469889fbbfa0514fec2e4b01b39446f9d795ab44333 python-pymplayer-eaa0a1dbfc60cb0f4f1b3e495d665714c089474a.tar.gz

View File

@ -0,0 +1,12 @@
################################################################################
#
# python-pymplayer
#
################################################################################
PYTHON_PYMPLAYER_VERSION = eaa0a1dbfc60cb0f4f1b3e495d665714c089474a
PYTHON_PYMPLAYER_SITE = git://github.com/JarbasAl/py_mplayer.git
PYTHON_PYMPLAYER_SETUP_TYPE = distutils
PYTHON_PYMPLAYER_LICENSE = MIT
$(eval $(python-package))

View File

@ -6,9 +6,13 @@
PYTHON_SPEECHRECOGNITION_VERSION = 3.8.1
PYTHON_SPEECHRECOGNITION_SITE = $(call github,Uberi,speech_recognition,$(PYTHON_SPEECHRECOGNITION_VERSION))
PYTHON_SPEECHRECOGNITION_INSTALL_STAGING = YES
PYTHON_SPEECHRECOGNITION_DEPENDENCIES = flac \
python-pyaudio \
python-pocketsphinx \
python-google-api-python-client
PYTHON_SPEECHRECOGNITION_LICENSE = Apache-2.0
PYTHON_SPEECHRECOGNITION_LICENSE_FILES = LICENSE
PYTHON_SPEECHRECOGNITION_SETUP_TYPE = setuptools
$(eval $(python-package))
$(eval $(host-python-package))

View File

@ -1,8 +0,0 @@
#!/bin/sh
#
# Load seeed-voicecard modules....
#
modprobe snd-soc-seeed-voicecard
modprobe snd-soc-ac108
modprobe snd-soc-wm8960

View File

@ -1,11 +0,0 @@
#!/bin/sh
#
# Configure seeed-voicecard....
#
echo "Starting seeed-voicecard..."
mount -t configfs none /sys/kernel/config
mkdir -p /boot
mount -t vfat /dev/mmcblk0p1 /boot
/usr/bin/seeed-voicecard
touch /var/lock/seeed-voicecard

View File

@ -0,0 +1,3 @@
snd-soc-seeed-voicecard
snd-soc-ac108
snd-soc-wm8960

View File

@ -1,2 +1,4 @@
# Locally computed
sha256 9f38d832acbfc7f07a58f15222d2fdcc0a9215ede488ccafb5c89a3e8223883d respeaker-be0812c70be29b0666a89f22a9d403cfb4c48fca.tar.gz
sha256 b68fb60cc173dc18e15bfc8eff97b57c3ef3085f2738c463ca9fa52d13d13896 respeaker-6c6b9ab7deb607aa985048ea170428729afc07a9.tar.gz
sha256 981002329f1227334a166e0fec0f547831bca5e9d840ef096499cce8f063752c respeaker-277aeacb81f4252767f234ae813ea535411f6138.tar.gz

View File

@ -4,7 +4,7 @@
#
################################################################################
RESPEAKER_VERSION = be0812c70be29b0666a89f22a9d403cfb4c48fca
RESPEAKER_VERSION = 277aeacb81f4252767f234ae813ea535411f6138
RESPEAKER_SITE = $(call github,respeaker,seeed-voicecard,$(RESPEAKER_VERSION))
RESPEAKER_LICENSE = GNU General Public License v3.0
RESPEAKER_DEPENDENCIES = rpi-firmware rpi-userland dtc
@ -12,20 +12,41 @@ RESPEAKER_DEPENDENCIES = rpi-firmware rpi-userland dtc
$(eval $(kernel-module))
define RESPEAKER_INSTALL_TARGET_CMDS
$(INSTALL) -D -m 0755 $(BR2_EXTERNAL_MYCROFTOS_PATH)/package/respeaker/S16respeaker_modules \
$(TARGET_DIR)/etc/init.d/S16respeaker_modules
$(INSTALL) -D -m 0755 $(BR2_EXTERNAL_MYCROFTOS_PATH)/package/respeaker/S60seeed_voicecard \
$(TARGET_DIR)/etc/init.d/S60seeed_voicecard
$(INSTALL) -D -m 0644 $(BR2_EXTERNAL_MYCROFTOS_PATH)/package/respeaker/seeed-voicecard.service \
$(TARGET_DIR)/usr/lib/systemd/system/seeed-voicecard.service
mkdir -p $(TARGET_DIR)/etc/systemd/system/sysinit.target.wants
ln -fs ../../../../usr/lib/systemd/system/seeed-voicecard.service \
$(TARGET_DIR)/etc/systemd/system/sysinit.target.wants/seeed-voicecard.service
$(INSTALL) -D -m 0644 $(BR2_EXTERNAL_MYCROFTOS_PATH)/package/respeaker/respeaker.conf \
$(TARGET_DIR)/etc/modules-load.d/respeaker.conf
mkdir -p $(TARGET_DIR)/etc/voicecard
rm $(@D)/dkms.conf
$(INSTALL) -D -m 0644 $(@D)/*.conf $(TARGET_DIR)/etc/voicecard
$(INSTALL) -D -m 0644 $(@D)/*.state $(TARGET_DIR)/etc/voicecard
$(INSTALL) -D -m 0755 $(@D)/seeed-voicecard $(TARGET_DIR)/usr/bin
$(INSTALL) -D -m 0755 $(BR2_EXTERNAL_MYCROFTOS_PATH)/package/respeaker/seeed-voicecard \
$(TARGET_DIR)/usr/bin
$(INSTALL) -D -m 0644 $(@D)/seeed-2mic-voicecard.dtbo $(BINARIES_DIR)/rpi-firmware/overlays/
$(INSTALL) -D -m 0644 $(@D)/seeed-4mic-voicecard.dtbo $(BINARIES_DIR)/rpi-firmware/overlays/
$(INSTALL) -D -m 0644 $(@D)/seeed-8mic-voicecard.dtbo $(BINARIES_DIR)/rpi-firmware/overlays/
mkdir -p $(TARGET_DIR)/usr/share/pulseaudio/alsa-mixer/profile-sets/
$(INSTALL) -D -m 0644 $(@D)/pulseaudio/pulse_config_4mic/seeed-voicecard.conf \
$(TARGET_DIR)/usr/share/pulseaudio/alsa-mixer/profile-sets/seeed-voicecard-4mic.conf
$(INSTALL) -D -m 0644 $(@D)/pulseaudio/pulse_config_6mic/seeed-voicecard.conf \
$(TARGET_DIR)/usr/share/pulseaudio/alsa-mixer/profile-sets/seeed-voicecard-8mic.conf
$(INSTALL) -D -m 0644 $(@D)/pulseaudio/91-seeedvoicecard.rules \
$(TARGET_DIR)/etc/udev/rules.d/91-seeedvoicecard.rules
$(INSTALL) -D -m 0644 $(@D)/pulseaudio/pulse_config_4mic/default.pa \
$(TARGET_DIR)/etc/pulse/seeed-voicecard-4mic-default.pa
$(INSTALL) -D -m 0644 $(@D)/pulseaudio/pulse_config_4mic/daemon.conf \
$(TARGET_DIR)/etc/pulse/seeed-voicecard-4mic-daemon.conf
$(INSTALL) -D -m 0644 $(@D)/pulseaudio/pulse_config_6mic/default.pa \
$(TARGET_DIR)/etc/pulse/seeed-voicecard-8mic-default.pa
$(INSTALL) -D -m 0644 $(@D)/pulseaudio/pulse_config_6mic/daemon.conf \
$(TARGET_DIR)/etc/pulse/seeed-voicecard-8mic-daemon.conf
endef
$(eval $(generic-package))

View File

@ -0,0 +1,155 @@
#!/bin/bash
#
# Copyright (c) 2018 Baozhu Zuo <zuobaozhu@gmail.com>
#
# Permission is hereby granted, free of charge, to any person obtaining a copy
# of this software and associated documentation files (the "Software"), to deal
# in the Software without restriction, including without limitation the rights
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
# copies of the Software, and to permit persons to whom the Software is
# furnished to do so, subject to the following conditions:
#
# The above copyright notice and this permission notice shall be included in
# all copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
# THE SOFTWARE.
set -x
exec 1>/var/log/$(basename $0).log 2>&1
#enable i2c interface
dtparam i2c_arm=on
modprobe i2c-dev
#enable spi interface
dtparam spi=on
_VER_RUN=
function get_kernel_version() {
local ZIMAGE IMG_OFFSET
_VER_RUN=""
[ -z "$_VER_RUN" ] && {
ZIMAGE=/boot/kernel.img
IMG_OFFSET=$(LC_ALL=C grep -abo $'\x1f\x8b\x08\x00' $ZIMAGE | head -n 1 | cut -d ':' -f 1)
_VER_RUN=$(dd if=$ZIMAGE obs=64K ibs=4 skip=$(( IMG_OFFSET / 4)) | zcat | grep -a -m1 "Linux version" | strings | awk '{ print $3; }')
}
echo "$_VER_RUN"
return 0
}
CONFIG=/boot/config.txt
get_overlay() {
ov=$1
if grep -q -E "^dtoverlay=$ov" $CONFIG; then
echo 0
else
echo 1
fi
}
do_overlay() {
ov=$1
RET=$2
DEFAULT=--defaultno
CURRENT=0
if [ $(get_overlay $ov) -eq 0 ]; then
DEFAULT=
CURRENT=1
fi
if [ $RET -eq $CURRENT ]; then
ASK_TO_REBOOT=1
fi
if [ $RET -eq 0 ]; then
sed $CONFIG -i -e "s/^#dtoverlay=$ov/dtoverlay=$ov/"
if ! grep -q -E "^dtoverlay=$ov" $CONFIG; then
printf "dtoverlay=$ov\n" >> $CONFIG
fi
STATUS=enabled
elif [ $RET -eq 1 ]; then
sed $CONFIG -i -e "s/^dtoverlay=$ov/#dtoverlay=$ov/"
STATUS=disabled
else
return $RET
fi
}
is_1a=$(i2cdetect -y 1 0x1a 0x1a | egrep "(1a|UU)" | awk '{print $2}')
is_35=$(i2cdetect -y 1 0x35 0x35 | egrep "(35|UU)" | awk '{print $2}')
is_3b=$(i2cdetect -y 1 0x3b 0x3b | egrep "(3b|UU)" | awk '{print $2}')
RPI_HATS="seeed-2mic-voicecard seeed-4mic-voicecard seeed-8mic-voicecard"
overlay=""
if [ "x${is_1a}" != "x" ] && [ "x${is_35}" == "x" ] ; then
echo "install 2mic"
overlay=seeed-2mic-voicecard
asound_state=/etc/voicecard/wm8960_asound.state
fi
if [ "x${is_3b}" != "x" ] && [ "x${is_35}" == "x" ] ; then
echo "install 4mic"
overlay=seeed-4mic-voicecard
asound_state=/etc/voicecard/ac108_asound.state
pulse_default=/etc/pulse/seeed-voicecard-4mic-default.pa
pulse_daemon=/etc/pulse/seeed-voicecard-4mic-daemon.conf
fi
if [ "x${is_3b}" != "x" ] && [ "x${is_35}" != "x" ] ; then
echo "install 6mic"
overlay=seeed-8mic-voicecard
asound_state=/etc/voicecard/ac108_6mic.state
pulse_default=/etc/pulse/seeed-voicecard-8mic-default.pa
pulse_daemon=/etc/pulse/seeed-voicecard-8mic-daemon.conf
fi
if [ "$overlay" ]; then
echo Install $overlay ...
# Remove old configuration
rm /var/lib/alsa/asound.state
rm /etc/pulse/default.pa
rm /etc/pulse/system.pa
rm /etc/pulse/daemon.conf
kernel_ver=$(get_kernel_version)
# echo kernel_ver=$kernel_ver
# TODO: dynamic dtoverlay Bug of v4.19.x
# no DT node phandle inserted.
if [[ "$kernel_ver" =~ ^4\.19.*$ ]]; then
for i in $RPI_HATS; do
if [ "$i" == "$overlay" ]; then
do_overlay $overlay 0
else
echo Uninstall $i ...
do_overlay $i 1
fi
done
fi
#make sure the driver loads correctly
dtoverlay $overlay || true
#install soundstate
echo "create $overlay asound status file"
ln -s $asound_state /var/lib/alsa/asound.state
#install pulseaudio files
echo "create $overlay pulse default file"
ln -s $pulse_default /etc/pulse/default.pa
echo "create $overlay pulse system file"
ln -s $pulse_default /etc/pulse/system.pa
echo "create $overlay pulse daemon file"
ln -s $pulse_daemon /etc/pulse/daemon.conf
fi
alsactl restore
touch /var/lock/seeed-voicecard

View File

@ -0,0 +1,12 @@
[Unit]
Description=Seeed Voicecard service
After=alsa-restore.service
[Service]
Type=oneshot
RemainAfterExit=yes
ExecStart=/usr/bin/seeed-voicecard
User=root
[Install]
WantedBy=sysinit.target

View File

@ -0,0 +1,6 @@
if [ -n "$BASH_VERSION" ]; then
# include .bashrc if it exists
if [ -f "$HOME/.bashrc" ]; then
. "$HOME/.bashrc"
fi
fi

View File

@ -0,0 +1,5 @@
export TERM=xterm-xfree86
PS1='\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w \$\[\033[00m\] '
export NODE_PATH=/usr/lib/node_modules

View File

@ -0,0 +1,6 @@
if [ -n "$BASH_VERSION" ]; then
# include .bashrc if it exists
if [ -f "$HOME/.bashrc" ]; then
. "$HOME/.bashrc"
fi
fi

View File

@ -1,19 +1,14 @@
defaults.ctl.card 0
defaults.pcm.card 0
defaults.pcm.device 0
pcm.!default {
type plug
slave.pcm "master"
# Use PulseAudio by default
pcm.!default {
type pulse
fallback "sysdefault"
hint {
show on
description "Default ALSA Output (currently PulseAudio Sound Server)"
}
}
ctl.!default {
type hw card 0
}
pcm.master {
type softvol
slave.pcm "plughw:0"
control.name "Master"
control.card 0
type pulse
fallback "sysdefault"
}

View File

@ -1,22 +0,0 @@
#!/bin/sh
#
# Loading boot splash
#
start() {
printf "Loading boot splash ..."
cat /dev/zero 1> /dev/fb0 2>/dev/null
fbv -f -d 1 /opt/mycroft/splash/boot.png > /dev/null 2>&1
echo "[OK]"
}
case "$1" in
start)
start
;;
*)
echo "Usage: $0 {start}"
exit 1
esac
exit $?

View File

@ -1,25 +0,0 @@
#!/bin/sh
#
# Resize SD card
#
start() {
printf "Resize data partition ..."
parted /dev/mmcblk0 unit % resizepart 2 yes 100% &&
partprobe /dev/mmcblk0 &&
sync &&
resize2fs /dev/mmcblk0p2 &&
chmod -x /etc/init.d/S00resize_sdcard &&
echo "[OK]"
}
case "$1" in
start)
start
;;
*)
echo "Usage: $0 {start}"
exit 1
esac
exit $?

View File

@ -1,3 +0,0 @@
modprobe snd-bcm2835
modprobe spi-bcm2835
#modprobe snd-usb-audio

View File

@ -1,4 +0,0 @@
alsactl init
amixer cset numid=3 1
amixer sset PCM 95%

View File

@ -1,41 +0,0 @@
#!/bin/sh
#
# Prepare Mycroft software stack.
#
start() {
# set the right locale / language settings
export LC_ALL=en_US.UTF-8
export LANG=en_US.UTF-8
export LANGUAGE=en_US.UTF-8
# Check if Mycroft log folders are present and if not
# create those logging folders
if [[ ! -w /var/log/mycroft/ ]] ; then
# Creating needed folders
printf "Creating /var/log/mycroft/ directory"
if [[ ! -d /var/log/mycroft/ ]] ; then
mkdir /var/log/mycroft/
fi
fi
# Check if /.mycroft exist already and if not
# create a symbolic link to /root/.mycroft
if [[ ! -w /.mycroft/ ]] ; then
# Creating .mycroft symlink
printf "Creating /.mycroft/ symlink"
if [[ ! -d /.mycroft/ ]] ; then
ln -s /root/.mycroft /.mycroft
fi
fi
}
case "$1" in
start)
start
;;
*)
echo "Usage: $0 {start}"
exit 1
esac
exit $?

View File

@ -1,37 +0,0 @@
#!/bin/sh
#
# Starts Mycroft services.
#
start() {
printf "Starting Mycroft services: "
umask 077
bash /usr/bin/start-mycroft.sh all
echo "OK"
}
stop() {
printf "Stopping Mycroft services: "
bash /usr/bin/stop-mycroft.sh all
echo "OK"
}
restart() {
stop
start
}
case "$1" in
start)
start
;;
stop)
stop
;;
restart|reload)
restart
;;
*)
echo "Usage: $0 {start|stop|restart}"
exit 1
esac
exit $?

View File

@ -1,10 +1,25 @@
{
"play_wav_cmdline": "aplay -Dhw:0,0 %1",
"play_mp3_cmdline": "mpg123 -a hw:0,0 %1",
"ipc_path": "/ramdisk/mycroft/ipc/",
"listener": {
"mute_during_output": false
},
"ignore_logs": ["enclosure.mouth.viseme", "enclosure.mouth.display"],
"log_level": "DEBUG"
"play_wav_cmdline": "paplay %1",
"play_mp3_cmdline": "mpg123 %1",
"ipc_path": "/ramdisk/mycroft/ipc/",
"enclosure": {
"platform": "MycroftOS",
"platform_build": 1
},
"listener": {
"mute_during_output": false
},
"tts": {
"module": "mimic2",
"mimic2": {
"lang": "en-us",
"url": "https://mimic-api.mycroft.ai/synthesize?text=",
"preloaded_cache": "/opt/mycroft/preloaded_cache/Mimic2"
},
"pulse_duck": true
},
"skills": {
"priority_skills": ["mycroft-pairing", "mycroft-volume"]
},
"log_level": "INFO"
}

Some files were not shown because too many files have changed in this diff Show More