Start the assignment from the header inside the `src/` directory.
Start the assignment from the header inside the `src/` directory.
Please note that you must provide a `Kbuild` file and the module name must be `uart16550.ko`.
Please note that you must provide a `Kbuild` file and the module name must be `ssr.ko`.
> **Warning**
> **Warning**
> You must not change this header, it will be overwritten by the checker.
> You must not change this header, it will be overwritten by the checker.
> You can include any other headers in your project.
> You can include any other headers in your project.
The first option is to code in the `src/` and run the checker using the following command:
The first option is to code in the `src/` and run the checker using the following command:
```
```
$ ./local.sh checker 2-uart
$ ./local.sh checker 3-raid
```
```
This will start the docker, start the SO2 VM inside the docker and run the checher for you inside the VM.
This will start the docker, start the SO2 VM inside the docker and run the checher for you inside the VM.
If your run on Linux you can add the `--privileged` argument to the previous command and the checker will run with KVM support.
If your run on Linux you can add the `--privileged` argument to the previous command and the checker will run with KVM support.
...
@@ -40,8 +40,8 @@ Thus the container will be started in privileged mode and you have access to KVM
...
@@ -40,8 +40,8 @@ Thus the container will be started in privileged mode and you have access to KVM
After executing the last command you should get a prompter in the docker.
After executing the last command you should get a prompter in the docker.
> **Warning**
> **Warning**
> When running in interactive mode the `src/` directory is mounted to the `/linux/tools/labs/skels/assignments/2-uart` directory inside the docker.
> When running in interactive mode the `src/` directory is mounted to the `/linux/tools/labs/skels/assignments/3-raid` directory inside the docker.
> The previous directory is shared with the VM as well in `skels/assignments/2-uart`.
> The previous directory is shared with the VM as well in `skels/assignments/3-raid`.
> So any change in one would affect the other.
> So any change in one would affect the other.
> **Be careful not to delete your code!**.
> **Be careful not to delete your code!**.
> We encourage you to make as many commits as possible on your **private** gitlab repo!
> We encourage you to make as many commits as possible on your **private** gitlab repo!
...
@@ -63,25 +63,24 @@ To exit from the VM, you can use the following key combination:
...
@@ -63,25 +63,24 @@ To exit from the VM, you can use the following key combination:
CTRL + A X
CTRL + A X
```
```
4. Copy the `*.ko` into the `skels/assginments/2-uart-checker` directory
4. Copy the `*.ko` into the `skels/assginments/3-raid-checker` directory
```
```
# you should be in /home/root inside the VM
# you should be in /home/root inside the VM
$ cd skels/assignments/2-uart-checker
$ cd skels/assignments/3-raid-checker
$ cp ../2-uart/uart16550.ko .
$ cp ../3-raid/ssr.ko .
# If you cannot find the solution.ko symlink in the checker directory
# You should also copy the run-test executable from the _test directory
# you should also copy the solution.ko from the _test directory
# this executable is part of the checker
# this module is part of the checker
$ cp _test/run-test .
$ cp _test/solution.ko .
```
```
5. Run the checker
5. Run the checker
```
```
# you should be in skels/assignments/2-uart-checker inside the VM
# you should be in skels/assignments/3-raid-checker inside the VM
sh _checker
sh _checker
```
```
## Submiting the assignment
## Submiting the assignment
1. Create a `*.zip` archive containing all the source files and headers of your solution and a `Kbuild` file that results in the `uart16550.ko` module.
1. Create a `*.zip` archive containing all the source files and headers of your solution and a `Kbuild` file that results in the `ssr.ko` module.
> **Warning**
> **Warning**
> Please, keep in mind that you are not allowed to change the header inside the `/src` directory (`vmchecker-next` will overwrite this file, along with others).
> Please, keep in mind that you are not allowed to change the header inside the `/src` directory (`vmchecker-next` will overwrite this file, along with others).
> Also, make sure the sources are in the **root of the archive**.
> Also, make sure the sources are in the **root of the archive**.