General tips for SeS
Introduction
This course needs around 25-30GB of disk storage.
Download all lectures PDF at once
There are 19 PDF files to download (as of 2026-01-07). Instead of getting them manually, you can download them all at once.
curl -s https://codeberg.org/samuelroland/productivity/raw/branch/main/MSE/ses/lectures-download.fish > /tmp/dl.fish
fish /tmp/dl.fish
Using devcontainers outside VSCode
You prefer your native terminal instead of the one in VSCode ? You edit your code in another IDE like Neovim, Zed or Helix ?
You can use the devcontainer CLI to enter inside from any terminal.
Faster buildroot compilation
TODO document and test
Commit your changes in Buildroot
Please do commit locally your code after the end of each lab, to easily go in the past. Starting at lab 7, you'll have to go in the past and you might regret it if you do it manually.
Use picocom without sudo
> picocom -b 115200 /dev/ttyUSB0
...
FATAL: cannot open /dev/ttyUSB0: Permission denied
Using sudo works but you really should not use sudo if you can do it in another way.
The file /dev/ttyUSB0 is only accessible by root and the dialout group
> ls -la /dev/ttyUSB0
crw-rw----. 1 root dialout 188, 0 Oct 31 11:25 /dev/ttyUSB0
You can join the dialout group with this command.
sudo usermod -aG dialout $USER
Avoid pluggin out to reboot
In the U-boot shell you can run reset to reboot the board like if you plugged out the cable and plugged it in again.
In the busybox shell, you can run reboot and it will do the same.
install gitleaks
Course pages
https://ma-ses.github.io/homepage/
Buildroot helper
TODO finish and document.
Lab advices
Initramfs
Make sure to create the /lib64 symlink to /lib into your initramfs to avoid /init: error while loading shared libraries: libresolv.so.2, even tough they are alreay present in /lib...
You can list all the shared libraries of an executable with ldd. This loads recursively the whole list of .so files. ldd /bin/cryptsetup
TPM lab
I advice you to open the man page of every tpm2_* command at least once, this is very instructive.