Compare commits

..

6 Commits

Author SHA1 Message Date
Elias Ahokas
3857b800e4 add cv as pdf 2025-10-14 12:12:55 +03:00
Elias Ahokas
93302834f7 change url 2025-10-11 02:18:31 +03:00
Elias Ahokas
407c7ac768 edit archetypes 2025-09-29 20:46:54 +03:00
Elias Ahokas
0661c317f0 create page yocto with docker 2025-09-29 20:42:25 +03:00
Elias Ahokas
abd0688375 update confs 2025-09-26 17:54:10 +03:00
Elias Ahokas
120090f36c fix links 2025-09-26 12:39:20 +03:00
10 changed files with 164 additions and 57 deletions

View File

@@ -4,4 +4,4 @@ WORKDIR /app
EXPOSE 1313
CMD ["hugo", "server", "--bind", "0.0.0.0", "--baseURL=/", "-D", "--disableFastRender"]
CMD ["hugo", "server", "-D"]

View File

@@ -8,7 +8,7 @@ Hugo allows for quick websites to be made with markdown.
## Developing
Run test server:
Run test server
```
docker compose up
```
@@ -17,3 +17,8 @@ Deploy updates to server
```
./deploy.sh
```
Create new page
```
hugo new --kind post path/post.md
```

View File

@@ -27,8 +27,5 @@ cover:
caption: ""
relative: false
hidden: true
editPost:
URL: "https://github.com/<path_to_repo>/content"
Text: "Suggest Changes"
appendFilePath: true
---

58
content/CV.md Normal file
View File

@@ -0,0 +1,58 @@
---
title: "CV - Elias Ahokas"
showToc: false
hidemeta: true
comments: false
ShowReadingTime: false
ShowBreadCrumbs: false
ShowPostNavLinks: false
---
## Skills
- C/C++
- Linux
- Git
- Basic electronics
## Education
- Tampere University
- Electrical Engineering - Embedded Devices
- 2021-
- Tornion Yhteislyseon Lukio
- High school
- 2017-2020
## Employment History
- Ryde Finland Oy
- Fleet operator
- Maintenance of the rental scooter fleet
- 2022 - 2023
- SOL Palvelut Oy
- Cleaner
- Cleaning and mainteance of the Outokumpu factory common areas
- 2019
- Outokumpu Stainless Oy
- Park worker
- Maintenance of the factory's park areas
- 2018
- Tornion Kaupunki
- Park worker
- Maintenance of the city's park areas
- 2017
- Kemin Energia Oy
- Maintenance worker
- Maintenance of the electrical company property
## Volunteer work
- Sähkökilta ry
- 2022-2025
- Responsible for maintaining and developing the guild's website. Along with managing additional services such as the information TV in the guild room.
## Languages
- Finnish (native)
- English (fluent)
- German (basics)
- Swedish (basics)

View File

@@ -0,0 +1,85 @@
---
title: "How I Sped Up Yocto Setup With Docker"
date: 2025-09-29T11:24:40+03:00
tags: []
author: "Elias Ahokas"
showToc: true
TocOpen: false
draft: false
hidemeta: false
comments: false
description: "Enhancing given environments to avoid extra work."
canonicalURL: "https://canonical.url/to/page"
disableHLJS: true # to disable highlightjs
disableShare: false
disableHLJS: false
hideSummary: false
searchHidden: false
ShowReadingTime: true
ShowBreadCrumbs: true
ShowPostNavLinks: true
ShowWordCount: true
ShowRssButtonInSectionTermList: true
UseHugoToc: true
cover:
image: ""
alt: ""
caption: ""
relative: false
hidden: true
---
## The problem
On a course called embedded linux drivers the given method of development was a premade virtual machine. It was only available in a single computer classroom that was often crowded. To avoid using the class and work on my own machine three options were given. I could copy the existing VM image from the classroom, make my own image or install it directly on my machine.
Using a VM was not ideal on my machine. It introduces a lot of overhead and requires a lot of disk space which my machine simply does not have. Installing directly on the host was also out of question as the project required a lot of outdated dependencies.
## The solution
I wanted a solution which would require the least amount of disk usage and which could be quickly ported to other machines. The solution would also need to make management of dependencies easy. A perfect situation for using Docker!
I created a Dockerfile which installs all the needed dependencies and uses the ancient ubuntu version required by the ancient version of Yocto. I also created bash scripts for automating the workflow.
Now I can just quickly clone the project repository, run a script and the whole environment is built!
## Advantages compared to the old environment
Now working on a new machine can be started in minutes. Compared to the old environment which required installation of virtual machines, the amount of time saved is huge. Setup time was reduced from an hour or two to a couple of minutes.
Even continuing to work on the project was made faster. The old environment required starting from a snapshot and cloning the project every time. Also all the build caches and stuff would disappear when closing the vm. Now the project is simply mounted from the host and work can continue immediately.
## Technical details
With docker all versions can be specified easily. For example the Yocto version used is recommended to be run with ubuntu version 18.04. This can be achieved simply by using the ubuntu base image and specifying the tag:
```
FROM ubuntu:18.04
```
And the dependencies can be installed easily during the building of the container:
```
RUN apt-get update && apt-get install -y \
gawk wget git-core diffstat unzip texinfo gcc-multilib \
build-essential chrpath socat cpio python python3 python3-pip python3-pexpect \
xz-utils debianutils iputils-ping
```
The shell scripts I created help fasten the development. There is no complex logic or similar in the scripts. They mainly aid the development so that you don't need to remember specific commands. For example running the container can be done with a simple script which contains the complex volume mounts and such:
```
docker run -it --rm \
-v "$REPO_ROOT:/home/yocto/yocto" \
-v "$REPO_ROOT/cache:/opt" \
$IMAGE_NAME \
bash -c "source /home/yocto/yocto/poky/oe-init-build-env /home/yocto/yocto/build && exec bash"
```
## Sharing the solution
I tried to make my solution as portable as possible so that other students can use my solution aswell. I added documentation so that you don't need to know that much about docker.
Finally I shared my environment as a git patch file. As all of the student repositories were based on the same upstream repository this was easy. A student only needs to apply the patch and run the scripts provided.
The base repository with the added Docker environment can be found [here.](https://git.sirian.me/sirian/comp.ce.460-embedded-linux-drivers) Note the repository only contains the base repository without yocto installed yet.
## Conclusion
I believe I should be able to install all the programs that I use. This has been one of the hardest ones to install. Mainly because of the dependencies. Docker has been a powerfull tool to manage all these dependencies.
Building this environment has given me valuable experience on how to automate and containerize embedded development environments.

View File

@@ -27,10 +27,7 @@ cover:
caption: ""
relative: false
hidden: true
editPost:
URL: "https://github.com/<path_to_repo>/content"
Text: "Suggest Changes"
appendFilePath: true
---
# Welcome to my portfolio!

View File

@@ -1,37 +0,0 @@
---
title: "Test2"
date: 2025-09-25T21:34:04+03:00
tags: []
author: "Elias Ahokas"
showToc: true
TocOpen: false
draft: false
hidemeta: false
comments: false
description: "Desc Text."
canonicalURL: "https://canonical.url/to/page"
disableHLJS: true # to disable highlightjs
disableShare: false
disableHLJS: false
hideSummary: false
searchHidden: false
ShowReadingTime: true
ShowBreadCrumbs: true
ShowPostNavLinks: true
ShowWordCount: true
ShowRssButtonInSectionTermList: true
UseHugoToc: true
cover:
image: ""
alt: ""
caption: ""
relative: false
hidden: true
editPost:
URL: "https://github.com/<path_to_repo>/content"
Text: "Suggest Changes"
appendFilePath: true
---
# test
sisältöä tässä

View File

@@ -4,6 +4,6 @@ docker compose up -d hugo-dev
docker compose exec hugo-dev hugo --minify
docker compose down
rsync -av --delete public/ sirian@172.16.0.1:/home/sirian/www/portfolio
rsync -av --delete public/ sirian@vepsi:/home/sirian/www/portfolio
echo "Site deployed!"

View File

@@ -1,4 +1,4 @@
baseURL: https://sirian.me/
baseURL: https://ahokas.dev
languageCode: fi-FI
title: Elias Ahokas
theme: ["PaperMod"]
@@ -20,8 +20,8 @@ params:
author: "Elias Ahokas"
DateFormat: "2.1.2006"
defaultTheme: auto
disableThemeToggle: false
defaultTheme: dark
disableThemeToggle: true
ShowReadingTime: true
ShowShareButtons: false
@@ -42,21 +42,23 @@ params:
socialIcons:
- name: gitea
url: "todo"
url: "https://git.sirian.me/sirian"
- name: linkedin
url: "todo"
url: "https://www.linkedin.com/in/elias-a-80a643127/"
menu:
main:
- name: Projects
url: /projects/
weight: 10
- name: About
url: /about/
weight: 20
#- name: About
# url: /about/
# weight: 20
- name: CV
url: /cv/
url: /ahokas_elias_cv.pdf
weight: 30
params:
target: _blank
markup:
highlight:

BIN
static/ahokas_elias_cv.pdf Normal file

Binary file not shown.