Files
comp.ce.460-embedded-linux-…/README.md
2025-09-21 17:14:35 +03:00

71 lines
3.6 KiB
Markdown

# 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 <STUDENT_REPO_URL> [<LOCAL_CLONE_DIR>]`
- by default, if you don't specify `<LOCAL_CLONE_DIR>` 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 <STUDENT_REPO_ROOT>
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 <STUDENT_REPO_ROOT>
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/