August is almost over. The same could be said for the summer, but I am in Greece. I will probably still be using A/C at least until November :P. The first half of the month was really productive, but then I removed two of my wisdom teeth and I had to take it easy. Anyhow let’s see what I got done.
1 2 3 4 5 6 7 8 |
|
While I thought packaging OpenMW would take me longer, I managed to track the dependencies, package them, and make the tests work with some serious two week work.
Let’s say now that you are thinking about contributing to OpenMW, and you are also using Guix (or GuixSD). Here is how you can setup your environment, fast:
1 2 3 4 |
|
And just like that you have an environment with all the openmw dependencies and you are ready to start hacking.
The home project is moving forward. The windows will probably arrive next week (they are currently being painted.) and today I connected the new cat6 underground lines to the phone company’s (OTE) cables. It was a miracle how the old cables were still working, as they were in a miserable condition. I think the result speaks for itself.
I also started working on the hardware for the smart locks. I experimented a bit on my room’s door and this is the prototype.
I am using an Arduino and a mosfet to drive the 12V electric lock. I am also planing to install a cover with a keypad on the outside of the door. Mainly as a way to open the door in case I forget my phone and to cover the missing parts of the door :P.
There are some books that every CS student should read in order to call himself one. One of those is “Structure and Interpretation of Computer Programs” or SICP for short. This book has enough material to teach you more than most students learn in Greek universities in 4 years time. And I finally got my hands on a hard copy!!
In the first 10 days of September I expect to install the new windows/doors in the house so I can finally get the new home network online. I will then be able to start activating the smart home mechanisms and show everyone what I have in mind. I also definitely hope that September will finally be the month I get to finish my thesis text and defend it. We will see how it will go.
Manolis out.
]]>It’s been a long time since I last updated this blog. Between my studies, the last two GSoCs I was a part of and my personal life I had little time to spend on this blog. Now this will change. With this post I will tell you a little about some of the things I am working on and some goals I have in mind.
I hope that by the end of this post my mind will be better organized and get more productive!
Two years ago I announced that I successfully ported GNU Guix to GNU Hurd. But that didn’t mean that everything was done. During GSoC 2016 I started working on creating a Hurd based GuixSD system. Unfortunately the time frame was not enough and it needed more work. But I have continued working on it and hopefully I will be able to deliver a working image soon. I also have help from a fellow hacker called Rene, and which I am really thankful.
I try to push all of my work to the upstream Guix repo, but sometimes my code doesn’t meet the standards. As a result the day to day hacking happens in a github repo.
I will write another post on how to use that repo to actually try Guix on Hurd yourself.
I am using Guix in my everyday life a lot! This mean I had to add a couple of packages, not related to Hurd, in the span of these last 4 years .
The purpose of this thesis is to offer isolation between processes, where a process can be a simple app that read from a sensor to a fully fledged Linux system. And all this on top of a zynq board, called zedboard, which is an FPGA + arm CPU. The plan is to control which process access what hardware. While running on the same system. And did I mention Fiasco is a microkernel? It sounded cool to me!
While the thesis did have some setbacks, which I will talk in another post, it has advanced enough to think that I will be able to defend it sometime in September.
In a future post I will get into the inner working of my thesis. Until then if you are not aware of L4/Fiasco please visit here.
A year go I was given the opportunity to finish the unfinished building which is directly upstairs from the one I am now. Suddenly the idea came. Why not automate as much as I can!? Create a house which will learn its occupants. Design everything from scratch. And I started.
For the sake of not making the post longer than it is now, I will redirect you to my twitter feed and my conversations with David Thompson. In the near future I will add a post which I will get into the details of the house.
David has created a static site generator called haunt in scheme. Eventually I want to move this blog to haunt.
Is this my Grand Plan? Well I am mostly seeing this as a way to bring my thoughts in order and create a plan for the next six months. It doesn’t necessarily mean that I will manage to finish everything but it’s a good way to understand what I want to do, by actually trying to explain everything in my head and in my notes to other people.
By the end of this 6 months period, I will do my best to complete these goals!
Manolis out.
]]>I am sharing what works for me. It may not work for you or it may fail over time. You may suffer data loss or worse. I disclaim all warranties and representations.
When developing a device driver, having access to the linux internals using GDB may be the key to meeting that deadline. On the zedboard, debugging the kernel with GDB is actually very easy with the help of the Xilinx Microprocessor Debugger, or XMD for short.
XMD is included with the Vivado Design Suite from Xilinx. In case you are working with the older ISE Design Suite, the included XMD should work as well.
xmd
.1 2 3 4 5 6 7 |
|
connect arm hw
. This will start a GDB server at localhost:1234
.1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
|
Open a new shell and go to the directory where the kernel sources are located, the
ones you used to build the kernel, and run arm-xilinx-eabi-gdb vmlinux
.
In my case I am using arm-xilinx-eabi-gdb
but any gdb cross-build for arm will do.
We are passing vmlinux
to the debugger, so it can read the kernel symbols.
1 2 3 4 5 6 7 8 9 10 |
|
target remote localhost:1234
1 2 3 4 5 |
|
continue
in the gdb prompt so linux can continue it’s normal operation. You can come back
anytime and stop it in order to debug it.CONFIG_DEBUG_INFO
will do the trick.Disclaimers: I am sharing what works for me. It may not work for you or it may fail over time. You may suffer data loss or worse. I disclaim all warranties and representations. This guide is based on the one from digilent which you can find here, and the one from Jan Gray which you can find here.
For this guide I used an Arch GNU/Linux x86_64 box and the Xilinx ISE Design Suite, version 14.7 which you can get from here. This guide will probably work on any GNU/Linux box which can run the Xilinx tools, but I can’t guarantee anything. If you are using another os, it will probably work with some modifications, but I can’t guarantee that either.
In this post I will guide you through the process of getting a headless Linaro GNU/Linux system running on the ZedBoard. For those of you not familiar with the ZedBoard, which I highly doubt since you are here, read this.
Well, there are two main reasons for that:
To boot the system on the ZedBoard you’ll need a SD memory card. The SD card should have at least 4 GB of storage and it is recommended to use a card with speed-grade 6 or higher to achieve optimal file transfer performance. The SD card needs to be partitioned with two partitions. I suggest to make the first one be about 256MB in size and the second one should take up the remaining space. For optimal performance make sure that the partitions are 4MB aligned. The first partition needs to be formatted with a FAT filesystem. It will hold the bootloader, devicetree and kernel images. Name it ZED_BOOT. The second partition needs to be formatted with a ext4 filesystem. Name it ROOT_FS. It will store the systems root filesystem. Use whatever tool you want to do it :-).
1
|
|
1
|
|
1
|
|
1
|
|
1
|
|
1
|
|
1 2 |
|
1
|
|
1
|
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
|
1 2 |
|
1 2 3 |
|
1
|
|
1
|
|
1
|
|
1
|
|
1 2 |
|
1 2 |
|
1 2 3 |
|
1 2 3 |
|
1 2 |
|
1 2 3 4 |
|
1
|
|
Once you complete these guide instructions, the SD card will have everything it needs to boot Linux on the ZedBoard. Complete the procedures in steps 1-7 to test your SD card with the ZedBoard.