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.