10 Commits

14 changed files with 139 additions and 18 deletions

View File

@@ -14,6 +14,7 @@ BBLAYERS ?= " \
${TOPDIR}/../layers/meta-openembedded/meta-networking \
${TOPDIR}/../layers/meta-openembedded/meta-perl \
${TOPDIR}/../layers/meta-openembedded/meta-python \
${TOPDIR}/../layers/meta-openembedded/meta-webserver \
${TOPDIR}/../layers/meta-raspberrypi \
${TOPDIR}/../layers/meta-virtualization \
${TOPDIR}/../layers/meta-security \

View File

@@ -40,6 +40,8 @@ TCLIBC = "glibc"
ENABLE_WIDEC = "false"
ENABLE_WIDEC_class-native = "true"
DEFAULT_TIMEZONE = "Europe/Berlin"
# Drop native language support. This removes the
# eglibc->bash->gettext->libc-posix-clang-wchar dependency.
USE_NLS="no"

View File

@@ -11,5 +11,5 @@ BBFILE_COLLECTIONS += "meta-blackfinn"
BBFILE_PATTERN_meta-blackfinn = "^${LAYERDIR}/"
BBFILE_PRIORITY_meta-blackfinn = "12"
LAYERSERIES_COMPAT_meta-blackfinn = "gatesgarth dunfell zeus warrior thud sumo rocko"
LAYERSERIES_COMPAT_meta-blackfinn = "hardknott gatesgarth dunfell zeus warrior thud sumo rocko"

View File

@@ -24,8 +24,8 @@ RDEPENDS_${PN} += " \
python3 \
python3-gunicorn \
python3-flask \
rpi.gpio \
w1thermsensor \
python3-rpi.gpio \
python3-w1thermsensor \
"
FILES_${PN} = " \

View File

@@ -24,7 +24,7 @@ RDEPENDS_${PN} += "\
python3 \
python3-gunicorn \
python3-flask \
rpi.gpio \
python3-rpi.gpio \
"
FILES_${PN} = " \

View File

@@ -1,10 +1,11 @@
LICENSE = "GPLv2"
LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/GPL-2.0;md5=801f80980d171dd6425610833a22dbe6"
LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/GPL-2.0-only;md5=801f80980d171dd6425610833a22dbe6"
FILESEXTRAPATHS_prepend := "${THISDIR}/files:"
SRC_URI += " \
file://S20load_modules.sh \
file://S99firstboot.sh \
file://S49cgroups_mount.sh \
file://ntp.conf \
file://ntpd \
@@ -17,6 +18,7 @@ do_install_append () {
install -m 0644 ${WORKDIR}/ntp.conf ${D}${sysconfdir}
install -m 0755 ${WORKDIR}/ntpd ${D}${sysconfdir}/init.d/
install -m 0755 ${WORKDIR}/S20load_modules.sh ${D}${sysconfdir}/rcS.d/
install -m 0755 ${WORKDIR}/S99firstboot.sh ${D}${sysconfdir}/rcS.d/
install -m 0755 ${WORKDIR}/S49cgroups_mount.sh ${D}${sysconfdir}/rcS.d/
cd ${D}${sysconfdir}/rcS.d/

View File

@@ -0,0 +1,110 @@
#!/bin/sh
function generate_hostname() {
mac=$( ifconfig |grep eth0 | grep -io '[0-9a-f:]\{15\}[0-9a-f]\{2\}' )
mac=${mac//:}
nic=${mac:6}
nic=$(( 16#$nic ))
let length=32
for i in 4 3 2 1 0; do
let div=$length**$i
let idx=$nic/$div
let nic=$nic%$div
if [ $idx = 0 ] ; then
res=a
elif [ $idx = 1 ] ; then
res=b
elif [ $idx = 2 ] ; then
res=c
elif [ $idx = 3 ] ; then
res=d
elif [ $idx = 4 ] ; then
res=e
elif [ $idx = 5 ] ; then
res=f
elif [ $idx = 6 ] ; then
res=g
elif [ $idx = 7 ] ; then
res=h
elif [ $idx = 8 ] ; then
res=i
elif [ $idx = 9 ] ; then
res=j
elif [ $idx = 10 ] ; then
res=k
elif [ $idx = 11 ] ; then
res=m
elif [ $idx = 12 ] ; then
res=n
elif [ $idx = 13 ] ; then
res=p
elif [ $idx = 14 ] ; then
res=q
elif [ $idx = 15 ] ; then
res=r
elif [ $idx = 16 ] ; then
res=s
elif [ $idx = 17 ] ; then
res=t
elif [ $idx = 18 ] ; then
res=u
elif [ $idx = 19 ] ; then
res=v
elif [ $idx = 20 ] ; then
res=w
elif [ $idx = 21 ] ; then
res=x
elif [ $idx = 22 ] ; then
res=y
elif [ $idx = 23 ] ; then
res=z
elif [ $idx = 24 ] ; then
res=2
elif [ $idx = 25 ] ; then
res=3
elif [ $idx = 26 ] ; then
res=4
elif [ $idx = 27 ] ; then
res=5
elif [ $idx = 28 ] ; then
res=6
elif [ $idx = 29 ] ; then
res=7
elif [ $idx = 30 ] ; then
res=8
elif [ $idx = 31 ] ; then
res=9
fi
basex="$basex${res}"
done
old_hostname=$( cat /etc/hostname )
new_hostname=unknown-$basex
if [ $old_hostname = raspberrypi3-64 ]
then
new_hostname=rpi3-$basex
fi
if [ $old_hostname = raspberrypi4-64 ]
then
new_hostname=rpi4-$basex
fi
echo $new_hostname > /etc/hostname
}
FLAG="/var/local/firstboot.log"
if [ ! -f $FLAG ]; then
echo "First boot"
touch $FLAG
generate_hostname
generate_avahi_service
reboot
fi

View File

@@ -7,8 +7,8 @@ require console-image-base.inc
DEV_SDK_INSTALL += " \
git \
make \
python-pip \
python-dev \
python3-pip \
python3-dev \
bash \
packagegroup-core-buildessential \
"

View File

@@ -29,7 +29,7 @@ DEV_SDK_INSTALL = " \
file \
perl-modules \
pkgconfig \
python-modules \
python3-modules \
"
EXTRA_TOOLS_INSTALL = " \
@@ -42,7 +42,6 @@ EXTRA_TOOLS_INSTALL = " \
findutils \
i2c-tools \
less \
mc \
procps \
rsync \
sysfsutils \
@@ -57,7 +56,6 @@ EXTRA_TOOLS_INSTALL = " \
"
MQTT = " \
python-paho-mqtt \
"
PYTHON_LIBS = " \

View File

@@ -6,7 +6,9 @@ require app-container-image.bb
IMAGE_INSTALL += " \
busybox \
busybox-initcfg \
greenhouse \
tzdata \
"
# docker run

View File

@@ -0,0 +1,14 @@
SUMMARY = "homeserver host system"
HOMEPAGE = "https://blackfinn.de"
LICENSE = "MIT"
require docker-host-image.bb
require dev-image.inc
IMAGE_INSTALL_append = " \
nginx \
python3-docker-compose \
"
export IMAGE_BASENAME = "homeserver-image"

View File

@@ -31,16 +31,10 @@ IMAGE_INSTALL += " \
IMAGE_INSTALL_append_beaglebone-yocto = " linux-firmware-rtl8192cu"
set_local_timezone() {
ln -sf /usr/share/zoneinfo/Europe/Berlin ${IMAGE_ROOTFS}/etc/localtime
}
disable_bootlogd() {
echo BOOTLOGD_ENABLE=no > ${IMAGE_ROOTFS}/etc/default/bootlogd
}
ROOTFS_POSTPROCESS_COMMAND += " \
set_local_timezone ; \
disable_bootlogd ; \
"

View File

@@ -11,8 +11,6 @@ inherit pypi setuptools3
PYPI_PACKAGE = "w1thermsensor"
# TARGET_CFLAGS += "-fcommon"
RDEPENDS_${PN} = " \
python3 \
"