===== Week 11 [ Mon 2 Aug 2010 - Sun 8 Aug 2010 ] ===== ==== Day 1 [ Mon 2 Aug 2010 ] ==== Git commit: [[http://git.etherboot.org/?p=people/andreif/gpxe.git;a=commit;h=aa205b0d6b511e989af68d07794859dac6829be3|aa205b0d6b511e989af68d07794859dac6829be3]] Back after a long week with not much activity. I am commited to finish this last mini-project, consisting of getting Xen to work under gPXE, using multiboot. After yesterday's meeting it has been decided that an extra ''imgdecode'' command would make matters unnecessarily complicated for the end user. Therefore, decoding will be done automatically after an image is fetched. If users want to avoid this behaviour, the ''imgfetch'' command will have an ''--nodecode'' flag. I implemented the necessary modifications today, along with gzip header parsing. If things go well, tomorrow I will decompress the first image using gPXE. After that, I will focus on getting Xen to work. ==== Day 2 [ Tue 3 Aug 2010 ] ==== Git commit: [[http://git.etherboot.org/?p=people/andreif/gpxe.git;a=commit;h=9436fefddae93ad660784f030aa95523b70dfb68|9436fefddae93ad660784f030aa95523b70dfb68]] Ported the decoding code today from the zlib library, but I didn't get to test it or arrange it properly. I am curious of the impact of calling copy_to/from_user for every byte. I'll probably have to rethink that part alltogether. ==== Day 3 [ Wed 4 Aug 2010 ] ==== Git commit: [[http://git.etherboot.org/?p=people/andreif/gpxe.git;a=commit;h=bfee6adeaa089b26f5b2ddcf684c961978889a08|bfee6adeaa089b26f5b2ddcf684c961978889a08]] Argh. Not a good day. Spent most of it chasing a silly bug. Stefan suggested that we should use the ISIZE field from the gzip trailer so we allocate all of the buffer in advance so we don't keep calling realloc. I did that, got the length from the field but I still had the original image's length in the malloc() call. Needless to say that I exceeded its bound and weird stuff started happening. Eventually I solved this and everything was fine. The code is still a mess, but it works. Tomorrow I'll remove unnecessary comments and rearrange it a bit. ==== Day 4 [ Thu 5 Aug 2010 ] ==== Git commit: [[http://git.etherboot.org/?p=people/andreif/gpxe.git;a=commit;h=17e0dcec786d5d223d7cac173d70117984bb5009|17e0dcec786d5d223d7cac173d70117984bb5009]] Cleaned the decoder code and fixed an memcpy issue which I suspect came from the fact that the source and destination fields were overlapping. Note to self: also try memmove. This still needs some work, but I am anxious to get to the Xen part and make it work, so I'll start working on that tomorrow. ==== Day 5 [ Fri 6 Aug 2010 ] ==== me.away() ==== Day 6 [ Sat 7 Aug 2010 ] ==== Today I wanted to create a basic Xen setup so I started browsing the Internet for information. After finding several sites I set out to compile the hypervisor from source and found some pre-built dom0 images. At first I struggled with getting the GRUB 2 menu entries correct since there have been some changes since GRUB legacy. Some of these changes affect multiboot images (such as Xen), so I should keep this in mind when I end up making changes. Eventuall I got to a point where the hypervisor booted, but the dom0 kernel had problems in finding the root partition. I'll dig into this tomorrow. ==== Day 7 [ Sun 8 Aug 2010 ] ==== I fixed yesterday's root partition issue by getting a new kernel and generating a new initrd. It booted, but unfortunately the keyboard does not work X| Teh horror.