begeistert

BeGeistert 028 coding sprint report

Blog post by PulkoMandy on Fri, 2014-10-31 08:29
Hello world! As you probably know, I'm reporting from Düsseldorf this week, where the BeGeistert coding sprint is about to end. I won't cover the events of the weekend as Humdinger has already written a complete report for it, including videos of all the talks. So let's instead dive into the coding sprint event, and see what we hacked on during the week

BeGeistert 028 impressions

Blog post by humdinger on Tue, 2014-10-28 07:01

After a nice short walk through the light drizzle of the slowly condensing mist that completely shrouded the top of Düsseldorf's landmark Rhine Tower, I arrived pretty early at the Youth Hostel. Entering our conference room I was greeted by its single occupant: Matthias, who I haven't seen at a BeGeistert for some years. We were chatting while I was setting up my gear and one by one more people entered our conference room. Most of them coming from breakfast; they already arrived the day before. I was glad to see most of the regular core developers did manage to come to BeGeistert after all!

Videos of BeGeistert 026 are up

Blog post by humdinger on Thu, 2012-12-06 18:00

A bit late, but finally I managed to process my recordings of the talks at BeGeistert 026 "Marathon". The quality isn't terrific, looks like the picture was much better last time at BG 024, when we apparently didn't darken the room so much. Audio might be slightly better, as I have used compression and a bit of filtering following advice from Haikollegue Sean Collins.
I used Avidemux under Linux for de/muxing the audio track and encoding the final AVIs, and Audacity for processing the audio. The extensive video editing (j/k) was done with Clockwerk and WonderBrush under Haiku, which isn't at all bad, just very unpolished...

Anyway, if you haven't already, check out DaaT's sheepish report of BeGeistert 026 at IsComputerOn.

Now, on to the videos. All hosted on youtube, you can watch them with a few apps even under Haiku (shamefully plugging UberTuber)...

Code Sprint 2012: Debugger

Blog post by anevilyak on Sat, 2012-11-10 14:44
As seen in Ingo's excellent presentation on Haiku's built-in debugging tools, our graphical debugger, while getting quite capable, is still missing a number of important features. As such, I made it my goal this week to try and resolve as many of those as I was able to.

ARM progress!

Blog post by ithamar on Fri, 2012-11-09 19:04

The ARM is moving

After porting the basic VM code from X86 to our ARM port, it has been pretty much 2 years since I worked on it. Last weekend, BeGeistert 026, gave me a chance to work on it again, for a couple of days (nights?) in a row, and I tried to make the most of it.

Besides working on Haiku/ARM it was great to meet up with many of the people I already knew but had not seen for a long time, as well as finally meet the new people behind the names and posts I had followed over recent times.

Anyway, with much help from the people around me I was able to bring Haiku/ARM to the point where it now boots, lights up a couple of icons, and then fails to boot as the boot disk is not found. This means that scheduling, interrupts, and basic vm operations all work!

However, in the process of getting it that far in fairly limited time I had to make a couple of shortcuts that really need to be cleaned up before trying to bring up userland, and see Tracker/Deskbar appear ;)

Hardware Variation

One of the obvious ones is the problem that currently, the kernel will only run so far on the Verdex (Gumstick) target. This is due to the fact that things like timers and interrupts are handled differently between different System-On-Chips. This means that even at this very low level, we'll need to introduce some type of abstraction to be able to run on more then just the Verdex/PXA270 SoC.

As people reading the commit list might have noticed, Francois has commited basic code to support Flattened Device Tree (FDT). This is a way of describing full hardware layout, in a standardized format. This format has been used by OpenFirmware implementations, like the PowerPC machines from Apple, the DEC Alpha machines, and many more.

FDT is becoming mandatory for Linux support on ARM as well, which means there are more and more of these board description files available for hardware we want to run on. The intent therefore is to implement FDT support, making it (theoratically) possible to support newer hardware with only a new FDT file, but also being able to build a single kernel that can run on any ARM device, assuming the necessary drivers are available ofcourse.

If I can find the time, I'll write up a post about FDT, if Francois does not beat me to it ;) In docs/develop/ports/arm/urls.txt Francois was so kind to store an extensive list of URLs about FDT, so feel free to browse if you are interested in helping out.

Where's that page?

Another thing that needs work is the ARM VM implementation. Currently, all it really does, is the page table bookkeeping, but permissions are not handled, memory/caching types are not handled, not to mention that ARMv6 and ARMv7 support will need more work as well. My idea is to finish the VM for ARMv5 first, and then implement v6 and v7 support in a proper OO manner, by making subclasses of the base ARM VM classes.

ARMv5 has no builtin support of tracking page status bits that our VM expects (dirty/accessed), so we'll have to work around that. However, ARMv7 (and some ARMv6) do have that, so there's a fair amount of work to do.

Drivers and Busses

No I'm not talking of public transport here :P For a properly usable embedded ARM target, there's a lot of things besides the kernel proper that will need implementing. There's SPI and I2C controllers to support, there's storage like raw NAND, or MMC/SD to support, many things that aren't support as of yet in Haiku for other architectures.

Some of these will present new features for our non-ARM targets too (SD/MMC support will make Laptop users happy, I imagine), but quite few will not but will be critical to get a seriously usable system on ARM devices...

Where to go from here?

As the current target is a QEMU supported platform, anyone who wants to can join in and help out. I invite anyone interested in helping out with Haiku/ARM to follow the guide for compiling for ARM and start poking at the code. I tend to have very little time in general, payed work taking up the most of my time, so don't just wait for me to complete the port!

However, feel free to contact me with questions/flames/anything if you want, as I'll try and help out as much as I can, there's nothing I want more then for this port to reach completion!

BG026 Coding Sprint report

Blog post by PulkoMandy on Fri, 2012-11-09 08:49

Hi there !
This week was the BeGeistert coding sprint. I assume you already read the great report at IsComputerOn about the conferences for this week-end, so here's just a summary of the work done durint the coding sprint.

ARM Port - Ithamar Adema, René Gollent, Adrien Destugues

Ithamar was holding the keyboard on this one. He's working on low-level Android stuff as his paid job, so he has a good understanding of the hardware and the Linux kernel that serves as a reference.

The ARM port was started as a Google Summer of Code project back in 2009. The project got the kernel compiling, and the bootloader working. Things more or less stayed there after that. However, with the recent release of the Raspberry Pi and some other cheap ARM-based hardware, there is interest for ARM again.

Ithamar is working with the Gumstix Verdex board. This is what was used for the work in 2009. That board is quite old by now, but it has a complete emulation in QEmu which is very useful for debugging the kernel.

We worked on getting interrupts, context switching, and page faults working. This brings the kernel to the point where it says "Cannot find any boot partitions", because there is no mass storage driver yet (it also lights 4 icons on the bootscreen, which is also working). We tried to add the usb mass storage driver, but that reliably triggers a panic which also happens, but only sometimes, on x86.

We also did some work (with remote help from Oliver Tappe) in getting the ARM toolchain working on Haiku. The compiler can now be built, and u-boot tools are ported (they are required to build a bootable image that the u(boot bootloader can work with). The build of an ARM version of Haiku still requires a tool to create partitions from the command line, and some scripts changes to use our own mkdos command instead of dosfstools mkdosfs. Ithamar may work on this since he now has installed Haiku on his laptop.

FDT support - François Revol

As part of his work on the PowerPC port, François is working on Flattened Device Tree support. The FDT is a data structure passed by the u-boot bootloader to the booted kernel. It describes the hardware the kernel is running on, and allows to find where are the serial port, frame buffer, keyboard, mass storage, RAM, etc. needed by Haiku. This avoids hardcoding drivers to fixed addresses for these peripherals. Since u(boot is also used on ARM devices, this work will be reused there as well. This will make it easier to port Haiku to more hardware with PPC and ARM chips.

BMenu tracking code rework - Alexandre Deckner

The code in BMenu is one of the most messy parts of the interface kit. Each menu is actually a BWindow, which means it gets its own thread and event loop. As a menu tends to share a lot of data with its submenus, the code is very messy and has a lot of small bugs. Alexandre is reworking this code to use a better solution.

WebPositive service kit network backend - Alexandre Deckner

The Services Kit is another of our past GSoC projects (2010). The plan is to have a full-featured http API for getting information from web services more easily. The kit has been merged into Haiku but is completely undocumented, so it's not seeing much use.

Alexandre started by merging some patches for better https support. He then tested the kit by writing a weather deskbar replicant that makes use of it.

But the core of this work was on the WebPositive broser. The browser currently uses WebKit's default Curl backend. While being the default, this is not used by most WebKit based browsers and has a number of problems with cookies, caching, and https connexions, as well as being quite slow. The idea is to replace this with a backend relying on the services kit, to avoid this problem. This means the cookies and other information will be shared with other applications using the kit.

Debugger improvements - René Gollent

René worked on watchpoints support in Debugger. That's one more step on making it a suitable replacement to GDB.

Stack&Tile fixes, ALE, and more - Clemens Zeidler

Clemens is currently working on his phd at the university of Aukland. The research department has some projects focused on improving user interface interaction. They use Haiku as a prototype for their research, as it is easier to modify things that affect the whole system. You already kow their work as the Stack and Tile support and the Aukland Layout Model.

This year Clemens showed us the Aukland Layout Editor which is a drag and drop tools for laying out an user interface. It can be used at runtime on ALM-based windows to freely alter the layout. Clemens asked each of us to go through a set of test applications to see if we managed to use the feature to make our work more efficient. There is also support for graphically routing events (such as a button click) to actions, in a way similar to the Cortex application. That stuff looks very promising.

Clemens also fixed some Stack and Tile related bugs in Haiku.

fRiSS user interface update - Adrien Destugues

fRiSS is an RSS and ATOM feed reader for Haiku. It just displays news items from your favourite websites in a window or a desktop replicant. fRiSS is available in Haiku as an optional package, and I'm working on improving it.

With the apha 4 release around the corner, I wanted to improve the user interface that was quickly hacked together. I cleaned up the code and improved the drwaing so it looks more like a regular Haiku application. This was finished right in time for the Alpha 4 code freeze, so people installing alpha 4 will get the very latest version of fRiSS.

NetSurf browser improvements - Adrien Destugues

NetSurf is a web browser. Originally developped for RiscOS, it has a focus on being very fast and lightweight. The BeOS port was started by François Revol with the target of replacing NetPositive. His main use for that was using Netsurf as a replicant inside the BeHappy application. this means while the html rendering works very well, the UI shell around it stayed very basic.

My work included adding graphical toolbar buttons, a download window (not saving the file to disk yet !), some event loop fixes to avoid network activity freezig when the UI is not doing anything, and updating the port to the latest sources from NetSurf git tree. I also added the support for automatically stacking windows using Stack&Tile, which removes the need for any in-application tabbing. I hope to see more applications supporting that soon, maybe starting with Terminal.

NetSurf is a very nice browser and much faster than the alternatives on Haiku. Its main drawback is the lack of JavaScript support, but the developpers are actively working on that. I think this browser has some potential for becoming the standard choice in Haiku. It is also much faster to compile than WebPositive with the whole WebKit framework, which makes it a lot easier to improve on it.

One last mention : I also did some work on APlayer, a release should not be too far but there are some issues I'd like to solve first.

The end.

Overall, this was a pretty good coding sprint with lots of stuff going on. We also saw some remote activity as the Alpha 4 release saw his code freeze happen during the week and is now in final testing stage. If all goes well, it will be available on monday.

A Short BeGeistert 025 Report

Blog post by humdinger on Fri, 2012-04-06 05:05

As this was one of the smallest BeGeistert meetings, this report will be quite short as well...

I arrived at the airport on Saturday morning at about 9:15 and made it to the nice location at Düsseldorf's youth hostel at 10 o'clock. After weeks with temperatures up to 20 °C, the good weather took a day off and I made the 10 minute walk from the station "Luegplatz" to the hostel in a very fine drizzle and shivering 10 °C...

Syndicate content