Other platforms
If you want to work on another plateform that we don't support, here are a few notes.
MacOS ARM
I don't know if that's possible and how to it, but if you want to figure that out:
- ask the assistants and teachers about the feasability
- look at what needs to be installed by reading our automation with Ansible in sye.yml and base.yml
- look at already solved errors under troubleshooting.md to find some hints
- please contribute here what you found and how to fixed the errors you encountered (shoot me an email at samuel.roland at master dot hes-so.ch).
good luck !
Arch setup
I don't have time to test this but some friends have figured out this list of packages, tested in Docker. Thanks to Kenan Augsburger and Mario Ferreira to have contributed these Arch commands !
See details
pacman -Suyy
pacman -S wget dnsmasq net-tools musl make cmake mtools uboot-tools dtc gcc qemu-system-arm qemu-system-aarch64 sudo arm-none-eabi-gcc dosfstools bridge-utils
paru -S ncurses5-compat-libs python2-bin # for debug
When building SO3, if you have an issue with a yaml thing, Mario Ferreira has made this little patch, you can create a file named fix_libyaml_compilation.diff including this
See file
diff --git a/so3/scripts/dtc/Makefile b/so3/scripts/dtc/Makefile
index 53da0b4..6b08f39 100644
--- a/so3/scripts/dtc/Makefile
+++ b/so3/scripts/dtc/Makefile
@@ -11,16 +11,17 @@ dtc-objs += dtc-lexer.lex.o dtc-parser.tab.o
# Source files need to get at the userspace version of libfdt_env.h to compile
HOST_EXTRACFLAGS := -I$(srctree)/$(src)/libfdt
-ifeq ($(shell pkg-config --exists yaml-0.1 2>/dev/null && echo yes),)
-ifneq ($(CHECK_DTBS),)
-$(error dtc needs libyaml for DT schema validation support. \
- Install the necessary libyaml development package.)
-endif
+# ifeq ($(shell pkg-config --exists yaml-0.1 2>/dev/null && echo yes),)
+# ifneq ($(CHECK_DTBS),)
+# $(error dtc needs libyaml for DT schema validation support. \
+# Install the necessary libyaml development package.)
+# endif
+# HOST_EXTRACFLAGS += -DNO_YAML
+# else
+# dtc-objs += yamltree.o
+# HOSTLDLIBS_dtc := $(shell pkg-config yaml-0.1 --libs)
+# endif
HOST_EXTRACFLAGS += -DNO_YAML
-else
-dtc-objs += yamltree.o
-HOSTLDLIBS_dtc := $(shell pkg-config yaml-0.1 --libs)
-endif
# Generated files need one more search path to include headers in source tree
#HOSTCFLAGS_dtc-lexer.lex.o := -I $(src)
and then apply the patch with git apply ./fix_libyaml_compilation.diff. Just make sure to not commit these changes in your lab.