Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Rework USB-PC-Connection #245 #246

Draft
wants to merge 7 commits into
base: master
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
build/
.jekyll*
__pycache__/
__pycache__/
/output
3 changes: 1 addition & 2 deletions .gitmodules
Original file line number Diff line number Diff line change
Expand Up @@ -3,5 +3,4 @@
url = https://github.com/EstherMi/ft-brickly-userguide.git
[submodule "buildroot"]
path = buildroot
url = https://github.com/ftCommunity/buildroot
branch = ftcommunity-TXT
url = https://github.com/buildroot/buildroot.git
73 changes: 58 additions & 15 deletions Makefile
Original file line number Diff line number Diff line change
@@ -1,25 +1,68 @@
ROOT_DIR := $(shell dirname $(realpath $(firstword $(MAKEFILE_LIST))))
OUTPUT_DIR := $(ROOT_DIR)/output
BUILD_DIR := $(OUTPUT_DIR)/build
IMAGE_DIR := $(OUTPUT_DIR)/images
INITRAMFS_DIR := $(OUTPUT_DIR)/initramfs

all: buildroot/Makefile buildroot/.config
make -C buildroot
BR_INIT_ENV := BR2_EXTERNAL=$(ROOT_DIR)


.PHONY: all
all: $(IMAGE_DIR)/rootfs.img $(IMAGE_DIR)/uImage $(IMAGE_DIR)/am335x-kno_txt.dtb

.PHONY: clean
clean:
BR2_EXTERNAL=.. make -C buildroot clean
rm -rf $(OUTPUT_DIR)

.PHONY: prepare-structure
prepare-structure:
mkdir -p $(OUTPUT_DIR)
mkdir -p $(IMAGE_DIR)
mkdir -p $(INITRAMFS_DIR)

.PHONY: prepare
prepare: prepare-structure $(BUILD_DIR)/rootfs/.config $(BUILD_DIR)/initramfs/.config

.PHONY: source
source: rootfs-source initramfs-source

buildroot/Makefile:
.PHONY: rootfs-source
rootfs-source: $(BUILD_DIR)/rootfs/.config
$(MAKE) -C $(BUILD_DIR)/rootfs source

.PHONY: initramfs-source
initramfs-source: $(BUILD_DIR)/initramfs/.config
$(MAKE) -C $(BUILD_DIR)/initramfs source

$(BUILD_DIR)/rootfs/.config: $(ROOT_DIR)/buildroot/Makefile
$(BR_INIT_ENV) $(MAKE) O=$(BUILD_DIR)/rootfs -C $(ROOT_DIR)/buildroot fischertechnik_TXT_rootfs_defconfig

$(BUILD_DIR)/initramfs/.config: $(ROOT_DIR)/buildroot/Makefile
$(BR_INIT_ENV) $(MAKE) O=$(BUILD_DIR)/initramfs -C $(ROOT_DIR)/buildroot fischertechnik_TXT_initramfs_defconfig

$(ROOT_DIR)/buildroot/Makefile:
git submodule update --init buildroot

CONFIG_DEPENDS = \
.gitmodules \
board/fischertechnik/TXT/tisdk_am335x-fischertechnik_txt_defconfig
$(IMAGE_DIR)/rootfs.img: rootfs
$(IMAGE_DIR)/uImage: rootfs
$(IMAGE_DIR)/am335x-kno_txt.dtb: rootfs

.PHONY: rootfs
rootfs: $(BUILD_DIR)/rootfs/.config $(INITRAMFS_DIR)/initramfs.cpio prepare-structure
$(MAKE) -C $(BUILD_DIR)/rootfs
cp $(BUILD_DIR)/rootfs/images/rootfs.squashfs $(IMAGE_DIR)/rootfs.img
cp $(BUILD_DIR)/rootfs/images/uImage $(IMAGE_DIR)/uImage
cp $(BUILD_DIR)/rootfs/images/device_tree.dtb $(IMAGE_DIR)/am335x-kno_txt.dtb

buildroot/.config: $(CONFIG_DEPENDS) buildroot/Makefile
BR2_EXTERNAL=.. make -C buildroot fischertechnik_TXT_defconfig
$(INITRAMFS_DIR)/initramfs.cpio: initramfs

imagedir := buildroot/output/images
.PHONY: initramfs
initramfs: $(BUILD_DIR)/initramfs/.config prepare-structure
$(MAKE) -C $(BUILD_DIR)/initramfs
cp $(BUILD_DIR)/initramfs/images/rootfs.cpio $(INITRAMFS_DIR)/initramfs.cpio

release: all
$(eval version := $(shell cat buildroot/output/target/etc/fw-ver.txt))
$(eval zipfile := build/ftcommunity-txt-$(version).zip)
mkdir -p build
release: $(IMAGE_DIR)/am335x-kno_txt.dtb $(IMAGE_DIR)/rootfs.img $(IMAGE_DIR)/uImage
$(eval version := $(shell cat $(BUILD_DIR)/rootfs/target/etc/fw-ver.txt))
$(eval zipfile := $(IMAGE_DIR)/ftcommunity-txt-$(version).zip)
rm -f $(zipfile)
zip -j $(zipfile) $(imagedir)/am335x-kno_txt.dtb $(imagedir)/rootfs.img $(imagedir)/uImage
zip -j $(zipfile) $(IMAGE_DIR)/am335x-kno_txt.dtb $(IMAGE_DIR)/rootfs.img $(IMAGE_DIR)/uImage
11 changes: 11 additions & 0 deletions board/fischertechnik/TXT/device_table_initramfs.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
# See package/makedevs/README for details
#
# This device table is used to assign proper ownership and permissions
# on various files.
#
# <name> <type> <mode> <uid> <gid> <major> <minor> <start> <inc> <count>
/media/sdcard d 755 0 0 - - - - -
/media/sdcard/boot d 755 0 0 - - - - -
/media/sdcard/root d 755 0 0 - - - - -
/media/sdcard/data d 755 0 0 - - - - -
/newroot d 755 0 0 - - - - -
29 changes: 0 additions & 29 deletions board/fischertechnik/TXT/initramfs.conf

This file was deleted.

25 changes: 0 additions & 25 deletions board/fischertechnik/TXT/initramfs/repartition-sd-card
100644 → 100755
Original file line number Diff line number Diff line change
@@ -1,31 +1,6 @@
#!/bin/busybox sh
mount -t vfat /dev/mmcblk1p1 /media/sdcard/boot -o dmask=077,fmask=177,sync

# Copy the necessary tools from rootfs.img
mount -t auto /media/sdcard/boot/rootfs.img /newroot -o loop,ro
cp /newroot/usr/lib/libfuse.so.2 \
/newroot/lib/libudev.so.1 \
/newroot/lib/librt.so.1 \
/newroot/lib/libpthread.so.0 \
/newroot/usr/lib/libext2fs.so.2 \
/newroot/usr/lib/libcom_err.so.2 \
/newroot/lib/libblkid.so.1 \
/newroot/lib/libuuid.so.1 \
/newroot/usr/lib/libe2p.so.2 \
/newroot/usr/lib/libpng16.so.16 \
/newroot/usr/lib/libjpeg.so.8 \
/newroot/usr/lib/libgif.so.7 \
/newroot/usr/lib/libz.so.1 \
/newroot/lib/libm.so.6 \
/lib
cp /newroot/sbin/mkfs.fat \
/newroot/sbin/mke2fs \
/newroot/usr/bin/psplash \
/newroot/usr/bin/psplash-write \
/newroot/usr/bin/fbv \
/bin
umount /newroot

# Hide cursor and show splash screen
echo -e "\033[?25l\033[9;0]\033[14;0]" > /dev/tty1
psplash -n --filename /ftc-firstboot.png -y 212 --BarCol FCCE04 --BarBkCol 347ECC --BkCol 000000 &
Expand Down
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
CONFIG_KERNEL_XZ=y
CONFIG_SYSVIPC=y
CONFIG_POSIX_MQUEUE=y
CONFIG_NO_HZ=y
Expand All @@ -7,9 +8,10 @@ CONFIG_IKCONFIG=y
CONFIG_IKCONFIG_PROC=y
CONFIG_LOG_BUF_SHIFT=16
CONFIG_BLK_DEV_INITRD=y
CONFIG_INITRAMFS_SOURCE="$${BR2_EXTERNAL_FTCOMMUNITY_TXT_PATH}/output/initramfs/initramfs.cpio"
# CONFIG_RD_GZIP is not set
# CONFIG_RD_BZIP2 is not set
# CONFIG_RD_LZMA is not set
# CONFIG_RD_XZ is not set
# CONFIG_RD_LZO is not set
# CONFIG_RD_LZ4 is not set
CONFIG_EMBEDDED=y
Expand Down Expand Up @@ -291,29 +293,8 @@ CONFIG_USB_TEST=y
CONFIG_NOP_USB_XCEIV=y
CONFIG_AM335X_PHY_USB=y
CONFIG_USB_GADGET=y
CONFIG_USB_CONFIGFS=m
CONFIG_USB_CONFIGFS_SERIAL=y
CONFIG_USB_CONFIGFS_ACM=y
CONFIG_USB_CONFIGFS_OBEX=y
CONFIG_USB_CONFIGFS_NCM=y
CONFIG_USB_CONFIGFS_ECM=y
CONFIG_USB_CONFIGFS_ECM_SUBSET=y
CONFIG_USB_CONFIGFS_RNDIS=y
CONFIG_USB_CONFIGFS_EEM=y
CONFIG_USB_CONFIGFS_MASS_STORAGE=y
CONFIG_USB_CONFIGFS_F_LB_SS=y
CONFIG_USB_CONFIGFS_F_FS=y
CONFIG_USB_AUDIO=m
CONFIG_USB_ETH=m
CONFIG_USB_G_NCM=m
CONFIG_USB_GADGETFS=m
CONFIG_USB_MASS_STORAGE=m
CONFIG_USB_G_SERIAL=m
CONFIG_USB_CDC_COMPOSITE=m
CONFIG_USB_G_ACM_MS=m
CONFIG_USB_G_MULTI=m
CONFIG_USB_G_HID=m
CONFIG_USB_G_WEBCAM=m
CONFIG_USB_ETH=y
# CONFIG_USB_ETH_RNDIS is not set
CONFIG_MMC=y
CONFIG_SDIO_UART=y
CONFIG_MMC_SDHCI=y
Expand Down Expand Up @@ -377,7 +358,8 @@ CONFIG_JFFS2_RUBIN=y
CONFIG_UBIFS_FS=y
CONFIG_SQUASHFS=y
CONFIG_SQUASHFS_FILE_DIRECT=y
CONFIG_SQUASHFS_LZ4=y
# CONFIG_SQUASHFS_ZLIB is not set
CONFIG_SQUASHFS_ZSTD=y
CONFIG_NFS_FS=y
CONFIG_NFS_V3_ACL=y
CONFIG_NFS_V4=y
Expand Down
2 changes: 0 additions & 2 deletions board/fischertechnik/TXT/post-image.sh

This file was deleted.

2 changes: 1 addition & 1 deletion board/fischertechnik/TXT/rootfs/etc/wpa_supplicant.conf
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
ctrl_interface=/var/run/wpa_supplicant
ap_scan=1
update_config=1

bgscan="simple:30:-60:3600"
2 changes: 1 addition & 1 deletion buildroot
37 changes: 37 additions & 0 deletions configs/fischertechnik_TXT_initramfs_defconfig
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
BR2_arm=y
BR2_cortex_a8=y
BR2_ARM_FPU_NEON=y
BR2_ARM_INSTRUCTIONS_THUMB2=y
BR2_GLOBAL_PATCH_DIR="$(BR2_EXTERNAL_FTCOMMUNITY_TXT_PATH)/patches"
BR2_PER_PACKAGE_DIRECTORIES=y
BR2_TOOLCHAIN_EXTERNAL=y
BR2_TOOLCHAIN_EXTERNAL_GDB_SERVER_COPY=y
BR2_TARGET_OPTIMIZATION="-pipe"
BR2_TARGET_GENERIC_HOSTNAME="FT-txt"
BR2_TARGET_GENERIC_ISSUE="Welcome to FT-txt"
BR2_INIT_NONE=y
BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_EUDEV=y
BR2_ROOTFS_DEVICE_TABLE="system/device_table.txt $(BR2_EXTERNAL_FTCOMMUNITY_TXT_PATH)/board/fischertechnik/TXT/device_table_initramfs.txt"
BR2_ROOTFS_MERGED_USR=y
# BR2_TARGET_ENABLE_ROOT_LOGIN is not set
BR2_TARGET_GENERIC_GETTY_PORT="ttyO0"
BR2_TARGET_GENERIC_GETTY_BAUDRATE_115200=y
BR2_TARGET_GENERIC_GETTY_TERM="linux"
BR2_ENABLE_LOCALE_WHITELIST="C en_US de de_AT de_DE de_CH fr es nl pt"
BR2_GENERATE_LOCALE="en_US de_DE fr_FR nl_NL"
BR2_ROOTFS_USERS_TABLES="$(BR2_EXTERNAL_FTCOMMUNITY_TXT_PATH)/board/fischertechnik/TXT/user.tab"
BR2_ROOTFS_OVERLAY="$(BR2_EXTERNAL_FTCOMMUNITY_TXT_PATH)/board/fischertechnik/TXT/initramfs"
BR2_PACKAGE_BUSYBOX_SHOW_OTHERS=y
BR2_PACKAGE_DOSFSTOOLS=y
BR2_PACKAGE_DOSFSTOOLS_MKFS_FAT=y
BR2_PACKAGE_E2FSPROGS=y
BR2_PACKAGE_FBV=y
BR2_PACKAGE_PSPLASH=y
BR2_PACKAGE_LIBFUSE=y
BR2_PACKAGE_LINUX_PAM=y
# BR2_PACKAGE_IFUPDOWN_SCRIPTS is not set
BR2_TARGET_ROOTFS_CPIO=y
BR2_TARGET_ROOTFS_CPIO_XZ=y
# BR2_TARGET_ROOTFS_TAR is not set
BR2_PACKAGE_HOST_KMOD=y
BR2_PACKAGE_HOST_UBOOT_TOOLS=y
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ BR2_TARGET_OPTIMIZATION="-pipe"
BR2_TARGET_GENERIC_HOSTNAME="FT-txt"
BR2_TARGET_GENERIC_ISSUE="Welcome to FT-txt"
BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_EUDEV=y
BR2_ROOTFS_DEVICE_TABLE="system/device_table.txt $(BR2_EXTERNAL_FTCOMMUNITY_TXT_PATH)/board/fischertechnik/TXT/device_table.txt"
BR2_ROOTFS_DEVICE_TABLE="system/device_table.txt $(BR2_EXTERNAL_FTCOMMUNITY_TXT_PATH)/board/fischertechnik/TXT/device_table_rootfs.txt"
BR2_ROOTFS_MERGED_USR=y
# BR2_TARGET_ENABLE_ROOT_LOGIN is not set
BR2_TARGET_GENERIC_GETTY_PORT="ttyO0"
Expand All @@ -21,20 +21,20 @@ BR2_GENERATE_LOCALE="en_US de_DE fr_FR nl_NL"
BR2_TARGET_TZ_INFO=y
BR2_TARGET_LOCALTIME="Europe/Berlin"
BR2_ROOTFS_USERS_TABLES="$(BR2_EXTERNAL_FTCOMMUNITY_TXT_PATH)/board/fischertechnik/TXT/user.tab"
BR2_ROOTFS_OVERLAY="$(BR2_EXTERNAL_FTCOMMUNITY_TXT_PATH)/board/fischertechnik/TXT/rootfs $(FTC_TXT_CUSTOM)"
BR2_ROOTFS_OVERLAY="$(BR2_EXTERNAL_FTCOMMUNITY_TXT_PATH)/board/fischertechnik/TXT/rootfs"
BR2_ROOTFS_POST_BUILD_SCRIPT="$(BR2_EXTERNAL_FTCOMMUNITY_TXT_PATH)/board/fischertechnik/TXT/post-build.sh"
BR2_ROOTFS_POST_IMAGE_SCRIPT="$(BR2_EXTERNAL_FTCOMMUNITY_TXT_PATH)/board/fischertechnik/TXT/post-image.sh"
BR2_LINUX_KERNEL=y
BR2_LINUX_KERNEL_CUSTOM_GIT=y
BR2_LINUX_KERNEL_CUSTOM_REPO_URL="https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git"
BR2_LINUX_KERNEL_CUSTOM_REPO_VERSION="v4.14.97"
BR2_LINUX_KERNEL_PATCH="$(BR2_EXTERNAL_FTCOMMUNITY_TXT_PATH)/board/fischertechnik/TXT/patches/linux"
BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y
BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="$(BR2_EXTERNAL_FTCOMMUNITY_TXT_PATH)/board/fischertechnik/TXT/tisdk_am335x-fischertechnik_txt_defconfig"
BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="$(BR2_EXTERNAL_FTCOMMUNITY_TXT_PATH)/board/fischertechnik/TXT/linux_defconfig"
BR2_LINUX_KERNEL_UIMAGE=y
BR2_LINUX_KERNEL_XZ=y
BR2_LINUX_KERNEL_UIMAGE_LOADADDR="0x80008000"
BR2_LINUX_KERNEL_DTS_SUPPORT=y
BR2_LINUX_KERNEL_CUSTOM_DTS_PATH="$(BR2_EXTERNAL_FTCOMMUNITY_TXT_PATH)/board/fischertechnik/TXT/am335x-kno_txt.dts"
BR2_LINUX_KERNEL_CUSTOM_DTS_PATH="$(BR2_EXTERNAL_FTCOMMUNITY_TXT_PATH)/board/fischertechnik/TXT/device_tree.dts"
BR2_PACKAGE_BUSYBOX_SHOW_OTHERS=y
BR2_PACKAGE_ALSA_UTILS=y
BR2_PACKAGE_ALSA_UTILS_APLAY=y
Expand Down Expand Up @@ -126,8 +126,6 @@ BR2_PACKAGE_OPENCV3_WITH_PNG=y
BR2_PACKAGE_OPENCV3_WITH_V4L=y
BR2_PACKAGE_PANGO=y
BR2_PACKAGE_ZBAR=y
BR2_PACKAGE_JITTERENTROPY_LIBRARY=y
BR2_PACKAGE_LIBHID=y
BR2_PACKAGE_LIBV4L_UTILS=y
BR2_PACKAGE_LIBFCGI=y
BR2_PACKAGE_LIBNETFILTER_CONNTRACK=y
Expand Down Expand Up @@ -190,11 +188,8 @@ BR2_PACKAGE_ED=y
BR2_PACKAGE_JOE=y
BR2_PACKAGE_LESS=y
BR2_PACKAGE_NANO=y
BR2_TARGET_ROOTFS_INITRAMFS=y
BR2_TARGET_ROOTFS_INITRAMFS_CUSTOM=y
BR2_TARGET_ROOTFS_INITRAMFS_CUSTOM_CONTENTS="$(BR2_EXTERNAL_FTCOMMUNITY_TXT_PATH)/board/fischertechnik/TXT/initramfs.conf"
BR2_TARGET_ROOTFS_SQUASHFS=y
BR2_TARGET_ROOTFS_SQUASHFS4_LZ4=y
BR2_TARGET_ROOTFS_SQUASHFS4_ZSTD=y
# BR2_TARGET_ROOTFS_TAR is not set
BR2_PACKAGE_FT_BT_REMOTE_SERVER=y
BR2_PACKAGE_LIBROBOINT=y
Expand Down