# COMP.CE.460 Embedded Linux Drivers -------------------------------------------------------------------------------- ## Quick guide to resume your work after rebooting the VM If you are using HTTPS remotes, you might want to run `git config --global credential.helper 'cache --timeout=3600'` before cloning: this way you will have to input your username and password only after 1 hour without interacting with your remote. 1. `cd ~` 2. `git clone --recurse-submodules []` - by default, if you don't specify `` the local clone will be in `~/NN/`, if for any reason, during the first exercise you used a different name or path, make sure to replicate the one you used previously, or the layers configuration you committed previously will be incorrect; ## Quick guide to pull new exercise instructions It is sufficient to run the following script (**from the root of your repository**): ```bash cd scripts/update_from_course_upstream.sh ``` Alternatively you could [download the script from your browser][update_from_course_upstream] to `/tmp/`, and then run it **from the root of your repository**: ```bash cd bash /tmp/update_from_course_upstream.sh ``` ## Quick guide to submit the exercise assignment 1. `git commit` - remember to *add* new files 2. `git push` 3. Create tag for submission in GitLab - format `ExNN_submissionN` 4. `git push --tags` 5. Submit a link to the tag on the corresponding assignment in [Moodle][moodle.COMP.CE.460] ## How to use SSH remotes Using HTTPS remotes becomes quickly frustrating as it requires to input your credentials several times, even multiple times for a single `git` command. Read [Using a persistent SSH key for project access][semipermanent-ssh-keys] for tips on how to securely use a semipermanent `git` profile with SSH keys for the shared VM environment of the course. **Note**: If you choose to setup access through SSH keys, remember to use the SSH remote URL to clone your student repository and for the `course_upstream` remote. If you decide to use HTTPS remotes, you might want to run `git config --global credential.helper 'cache --timeout=3600'` before cloning: this way you will have to input your username and password only after 1 hour without interacting with your remote. ## Git Help If you need training to use Git, visit [Git Course in Plussa][git-plussa]. ## Docker instructions 1. Install yocto as a submodule as instructed on the first assignment 2. Install docker on your machine. [Instructions][docker-install-instructions] 3. Download yocto cache files and extract them to cache/ 4. Change directory to scripts/ 5. Build the image by executing ./build_docker_image.sh 6. To run the container execute ./run_docker_container.sh The sstate_cache files are mounted in the container to /opt. Similar to the virtual machine provided. This allows parallel development with both environments. The whole project is mounted to /home/yocto/yocto. **Note**: All paths need to be relative. Use ${TOPDIR} to refer to the project root in yocto configs. [moodle.COMP.CE.460]: https://moodle.tuni.fi/course/view.php?id=50067 [git-plussa]: https://plus.tuni.fi/tie-git/ [course_upstream project]: https://course-gitlab.tuni.fi/comp-ce-460-embedded-linux-drivers_2025-2026/course_upstream [semipermanent-ssh-keys]: semipermanent-ssh-keys.md [update_from_course_upstream]: https://course-gitlab.tuni.fi/comp-ce-460-embedded-linux-drivers_2025-2026/course_upstream/raw/main/scripts/update_from_course_upstream.sh [docker-install-instructions]: https://docs.docker.com/engine/install/