Compare commits
6 Commits
1cc0afa342
...
main
Author | SHA1 | Date | |
---|---|---|---|
![]() |
3857b800e4 | ||
![]() |
93302834f7 | ||
![]() |
407c7ac768 | ||
![]() |
0661c317f0 | ||
![]() |
abd0688375 | ||
![]() |
120090f36c |
@@ -4,4 +4,4 @@ WORKDIR /app
|
||||
|
||||
EXPOSE 1313
|
||||
|
||||
CMD ["hugo", "server", "--bind", "0.0.0.0", "--baseURL=/", "-D", "--disableFastRender"]
|
||||
CMD ["hugo", "server", "-D"]
|
||||
|
@@ -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
|
||||
```
|
||||
|
@@ -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
58
content/CV.md
Normal 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)
|
85
content/projects/How I sped up Yocto setup with Docker.md
Normal file
85
content/projects/How I sped up Yocto setup with Docker.md
Normal 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.
|
@@ -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!
|
||||
|
@@ -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ä
|
@@ -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!"
|
||||
|
20
hugo.yaml
20
hugo.yaml
@@ -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
BIN
static/ahokas_elias_cv.pdf
Normal file
Binary file not shown.
Reference in New Issue
Block a user