diff --git a/buildroot-external/board/raspberrypi/device_table.txt b/buildroot-external/board/raspberrypi/device_table.txt deleted file mode 100644 index ef47e223..00000000 --- a/buildroot-external/board/raspberrypi/device_table.txt +++ /dev/null @@ -1,26 +0,0 @@ -# See package/makedevs/README for details -# -# This device table is used to assign proper ownership and permissions -# on various files. It doesn't create any device file, as it is used -# in both static device configurations (where /dev/ is static) and in -# dynamic configurations (where devtmpfs, mdev or udev are used). -# -# -/dev d 755 0 0 - - - - - -/tmp d 1777 0 0 - - - - - -/etc d 755 0 0 - - - - - -/root d 700 0 0 - - - - - -/var d 777 0 0 - - - - - -/var/log d 777 0 0 - - - - - -/var/www d 755 33 33 - - - - - -/opt d 777 0 0 - - - - - -/opt/mycroft d 777 0 0 - - - - - -/opt/mycroft/skills d 777 0 0 - - - - - -/etc/shadow f 600 0 0 - - - - - -/etc/passwd f 644 0 0 - - - - - -/etc/network/if-up.d d 755 0 0 - - - - - -/etc/network/if-pre-up.d d 755 0 0 - - - - - -/etc/network/if-down.d d 755 0 0 - - - - - -/etc/network/if-post-down.d d 755 0 0 - - - - - -# uncomment this to allow starting x as non-root -#/usr/X11R6/bin/Xfbdev f 4755 0 0 - - - - - diff --git a/buildroot-external/configs/mycroftos_rpi3_defconfig b/buildroot-external/configs/mycroftos_rpi3_defconfig index 4d3ca831..1b2b2c27 100644 --- a/buildroot-external/configs/mycroftos_rpi3_defconfig +++ b/buildroot-external/configs/mycroftos_rpi3_defconfig @@ -12,16 +12,16 @@ BR2_TOOLCHAIN_GLIBC_GCONV_LIBS_COPY=y BR2_TARGET_GENERIC_HOSTNAME="MycroftOS" BR2_TARGET_GENERIC_ISSUE="Welcome to MycroftOS" BR2_INIT_SYSTEMD=y -BR2_ROOTFS_DEVICE_TABLE="../buildroot-external/board/raspberrypi3/device_table.txt" 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_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_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 @@ -30,7 +30,7 @@ BR2_LINUX_KERNEL_CUSTOM_REPO_VERSION="7688b39276ff9952df381d79de63b258e73971ce" 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_PACKAGE_BUSYBOX_CONFIG="$(BR2_EXTERNAL)/busybox.config" BR2_PACKAGE_BUSYBOX_INDIVIDUAL_BINARIES=y BR2_PACKAGE_ALSA_UTILS=y BR2_PACKAGE_ALSA_UTILS_ALSACONF=y @@ -203,10 +203,12 @@ 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_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 diff --git a/buildroot-external/package/mycroft-service/mycroft-service.mk b/buildroot-external/package/mycroft-service/mycroft-service.mk index 31012d2e..05ee9a92 100644 --- a/buildroot-external/package/mycroft-service/mycroft-service.mk +++ b/buildroot-external/package/mycroft-service/mycroft-service.mk @@ -10,10 +10,6 @@ MYCROFT_SERVICE_SITE_METHOD = local MYCROFT_SERVICE_LICENSE = Apache License 2.0 MYCROFT_SERVICE_LICENSE_FILES = LICENSE -define MYCROFT_SERVICE_USERS - mycroft -1 mycroft -1 * /home/mycroft /bin/sh audio,pulse-access -endef - 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/ diff --git a/buildroot-external/package/mycroft-service/start-mycroft.sh b/buildroot-external/package/mycroft-service/start-mycroft.sh index a2c8acab..d6e122c6 100755 --- a/buildroot-external/package/mycroft-service/start-mycroft.sh +++ b/buildroot-external/package/mycroft-service/start-mycroft.sh @@ -83,7 +83,7 @@ export LANG=en_US.UTF-8 export LANGUAGE=en_US.UTF-8 function init-once() { - fbv -f -d 1 /opt/mycroft/splash/logo.png > /dev/null 2>&1 + 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 diff --git a/buildroot-external/package/mycroft-service/stop-mycroft.sh b/buildroot-external/package/mycroft-service/stop-mycroft.sh index d664b7ba..17bb2e9f 100755 --- a/buildroot-external/package/mycroft-service/stop-mycroft.sh +++ b/buildroot-external/package/mycroft-service/stop-mycroft.sh @@ -99,7 +99,7 @@ case ${OPT} in end-process audio end-process speech end-process enclosure - fbv -f -d 1 /opt/mycroft/splash/background.png > /dev/null 2>&1 + sudo fbv -f -d 1 /opt/mycroft/splash/background.png > /dev/null 2>&1 ;; "bus") end-process messagebus.service diff --git a/buildroot-external/package/respeaker/respeaker.mk b/buildroot-external/package/respeaker/respeaker.mk index d44cd0ef..bc518f27 100644 --- a/buildroot-external/package/respeaker/respeaker.mk +++ b/buildroot-external/package/respeaker/respeaker.mk @@ -12,7 +12,7 @@ RESPEAKER_DEPENDENCIES = rpi-firmware rpi-userland dtc $(eval $(kernel-module)) define RESPEAKER_INSTALL_TARGET_CMDS - $(INSTALL) -D -m 644 $(@D)/seeed-voicecard.service \ + $(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 \ @@ -26,6 +26,8 @@ define RESPEAKER_INSTALL_TARGET_CMDS $(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/start-seeed-voicecard.sh \ + $(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/ diff --git a/buildroot-external/package/respeaker/seeed-voicecard.service b/buildroot-external/package/respeaker/seeed-voicecard.service new file mode 100644 index 00000000..a13279a3 --- /dev/null +++ b/buildroot-external/package/respeaker/seeed-voicecard.service @@ -0,0 +1,12 @@ +[Unit] +Description=Seeed Voicecard service +After=alsa-restore.service + +[Service] +Type=oneshot +RemainAfterExit=yes +ExecStart=/usr/bin/start-seeed-voicecard.sh +User=root + +[Install] +WantedBy=sysinit.target diff --git a/buildroot-external/package/respeaker/start-seeed-voicecard.sh b/buildroot-external/package/respeaker/start-seeed-voicecard.sh new file mode 100755 index 00000000..960228e4 --- /dev/null +++ b/buildroot-external/package/respeaker/start-seeed-voicecard.sh @@ -0,0 +1,11 @@ +#!/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 diff --git a/buildroot-external/rootfs-overlay/etc/fstab b/buildroot-external/rootfs-overlay/etc/fstab index 8fc43c36..0a983ae3 100644 --- a/buildroot-external/rootfs-overlay/etc/fstab +++ b/buildroot-external/rootfs-overlay/etc/fstab @@ -6,5 +6,6 @@ tmpfs /dev/shm tmpfs mode=0777 0 0 tmpfs /tmp tmpfs mode=1777 0 0 tmpfs /run tmpfs mode=0755,nosuid,nodev 0 0 sysfs /sys sysfs defaults 0 0 +tmpfs /var/log tmpfs defaults 0 0 tmpfs /var/tmp tmpfs defaults 0 0 tmpfs /ramdisk tmpfs rw,nodev,nosuid,size=20M 0 0 diff --git a/buildroot-external/rootfs-overlay/etc/ssh/sshd_config b/buildroot-external/rootfs-overlay/etc/ssh/sshd_config index 44fff67b..3807b886 100644 --- a/buildroot-external/rootfs-overlay/etc/ssh/sshd_config +++ b/buildroot-external/rootfs-overlay/etc/ssh/sshd_config @@ -29,10 +29,11 @@ # Authentication: #LoginGraceTime 2m -PermitRootLogin yes +PermitRootLogin no #StrictModes yes #MaxAuthTries 6 #MaxSessions 10 +AllowUsers *@* #PubkeyAuthentication yes diff --git a/buildroot-external/rootfs-overlay/etc/sudoers b/buildroot-external/rootfs-overlay/etc/sudoers index 60b4b4ed..c1563c91 100644 --- a/buildroot-external/rootfs-overlay/etc/sudoers +++ b/buildroot-external/rootfs-overlay/etc/sudoers @@ -94,4 +94,4 @@ root ALL=(ALL) ALL ## Read drop-in files from /etc/sudoers.d ## (the '#' here does not indicate a comment) -includedir /etc/sudoers.d +#includedir /etc/sudoers.d diff --git a/buildroot-external/rootfs-overlay/etc/tmpfiles.d/mycroft.conf b/buildroot-external/rootfs-overlay/etc/tmpfiles.d/mycroft.conf new file mode 100644 index 00000000..78f8b414 --- /dev/null +++ b/buildroot-external/rootfs-overlay/etc/tmpfiles.d/mycroft.conf @@ -0,0 +1,4 @@ +d /var/log/mycroft 700 mycroft mycroft +d /opt/mycroft 755 mycroft mycroft +d /opt/mycroft/skills 755 mycroft mycroft +d /opt/mycroft/splash 755 mycroft mycroft diff --git a/buildroot-external/user_table.txt b/buildroot-external/user_table.txt new file mode 100644 index 00000000..e1c2bb57 --- /dev/null +++ b/buildroot-external/user_table.txt @@ -0,0 +1 @@ +mycroft -1 mycroft -1 =mycroft /home/mycroft /bin/sh gpio,audio,pulse,pulse-access Mycroft user