Debugging RISCV-64 bootloader in QEMU

Blog post by kallisti5 on Sun, 2021-01-17 09:36

Debugging early bootloader code can be extremely difficult. The lack of printf and other classical black-box debugging tools means you’re limited to one of the following methods of debugging lockups:

  1. Arm chair debugging, Changing code, compiling, booting, repeat.
  2. Using GDB or another debugger tool and stepping through code watching outcome.

Obviously #2 above is more ideal than #1. Welcome to debugging by attaching gdb to qemu!

The steps below really should apply to any architecture. Just replace riscv64 with your architecture of choice.

Hello from the Haiku Promotion 'Team'!

Blog post by jt15s on Thu, 2020-12-31 21:33

Hi there, I’m jt15s, a new Haiku community member! I’ve been following the project for a few years now since I stumbled upon an article about Haiku.

If you read the title (which I’m assuming you did), you’re probably going, “wait, we have a promotion team?” Well, yes, now we do. As an informal “team” of two (currently), we are super excited to share our plans to help promote Haiku and make more people aware of it. In fact, this is the second iteration of a promotion team for Haiku. Until 2010, there was an active promotions team. Unfortunately, those who were involved on the team are not active in the Haiku community anymore and hence promotion efforts have mostly been dormant - until now.

Haiku activity report - November and December 2020

Blog post by PulkoMandy on Tue, 2020-12-22 10:53

Welcome to the November-December activity report!

This report covers hrev54716-hrev54805 (about 5 weeks of work).

Code cleanup

mt fixed various warnings, use-after-free, memory leaks, and dead code problems detected by the clang static analyzer.

X512 reworked app_server memory management to use owning pointers and avoid some memory leaks and use-after-free cases. This led to a rework of the classes used for that purpose, in particular AutoDeleter and its variants, to be more efficient and more flexible.

Haiku Depot and Better Icon Handling

Blog post by apl on Tue, 2020-11-17 12:00

HaikuDepot displays icons through a number of areas of its user interface. Early in the history of the Haiku packaging system, there were very few packages and very few icons. HaikuDepot started off by downloading each individually from HaikuDepotServer.

Download as Tar then Unpack

Downloading each icon file individually was fine for a while, but as the package and hence icon count grew it became necessary to rework this system. HaikuDepotServer later provided the icons as a compressed tar-ball containing all of the icons. You can download this yourself. The tar-ball is unpacked on the Haiku computer into a directory and then the HaikuDepot application reads the individual files from the local disk system.

Haiku activity report - October 2020

Blog post by PulkoMandy on Mon, 2020-11-16 10:14

Welcome to the October activity report!

I had managed to get other people to write the report for a few months, but not for October, apparently. So, I’m back!

This report covers hrev54609-hrev54715 (about a month and a half work).

The focus is not much on new and exciting features this month, there is a lot of bug fixing and cleanup work going on, as well as some performance improvements, and compatibility fixes for easier application porting.

Haiku Activity Report - September 2020

Blog post by bitigchi on Thu, 2020-10-01 13:00

Welcome to the Haiku Monthly Activity Report for September 2020. This report covers revisions from hrev54539 to hrev54608.

System Sounds Contest

We’ve started a contest for the system sounds, and currently it’s ongoing. For more details, see the contest post.

Applications

AlwaysLivid improved the after-install UX via a bunch of Installer and FirstBootPrompt fixes. Now it is possible to exit the FirstBootPrompt to Desktop without having to restart the system.

AlwaysLivid added Mail auto-configure data for mailbox.org and riseup.net.

Haiku Activity Report - August 2020

Blog post by bitigchi on Sun, 2020-09-06 13:00

Welcome to the Haiku Monthly Activity Report for August 2020. This report covers revisions from hrev54480 to hrev54538.

This month is not active as the last one, but we have exciting improvements in the pipeline, since GSOC 2020 is coming to an end, and our developers are working hard to review GSOC projects at a fast pace.

Applications

Humdinger improved accessibility on WebPositive by adding a missing tooltip on Settings window.

Rust on Haiku: the Case of the Disappearing Deceased Threads

Blog post by nielx on Sun, 2020-09-06 07:21

Summer! The time to slow down, relax, go to strange places, and do the projects that are long overdue. This summer I had the joy of spending my time in a lovely house near Lyon in France. In many ways the summer was like others, meaning there was plenty of wine and a lot of relaxing activities. At the same time, the Covid situation did give me a lot of reasons to scale back exploratory activities at the tourist hot spots, and instead focus on activities close to home. I decided to seize the opportunity and to see if I could dive into one of my long-standing pet peeves in the Haiku ecosystem.

For a long time I have been maintaining the build of the Rust compiler and development tools on Haiku. For this purpose, I maintain a separate tree with the Rust source, with some patches and specific build instructions. My ultimate end goal is to have Rust build on Haiku from the original source, without any specific patches or workarounds. Instead we are in the situation where we cannot build rust on Haiku itself (instead we need to cross-compile it), and we need a customization to be able to run the Rust compiler (rustc) and package manager (cargo) on Haiku. This summer my goal would be to find out the underlying issue, and fix it so that the patch will no longer be necessary in the future. Let’s go!

GSoC2020 Final Report: Input Preferences

Blog post by PreetpalKaur on Mon, 2020-08-31 21:15

GSoC 2020 Final Report

This is the final report of the GSoC 2020 project

The proposal is available here:

Work Done:

  • Added the icons for each connected device in the input preferences application.
  • Removed the unwanted devices from the device list when they are not connected to the computer.
  • Improved the look of 4th and 5th button of the mouse and added the 6th button of the mouse and its working.
  • Made the Joystick GUI.
  • Made the Wacom tablet GUI.
  • Implemented the input preferences to hold settings for each mouse separately.

Commits:

https://review.haiku-os.org/q/owner:preetpalok123%2540gmail.com

GSoC 2020 Final Report: Improving and Extending Services Kit

Blog post by leorize on Mon, 2020-08-31 02:00

Hi all. This is my final report on my project aiming to improve Services Kit, the networking backend behind most native Haiku application, most notably WebPositive.

Progress made during GSoC

You may find the patches here:

Here’s the summary of some of the outstanding changes:

  • BMemoryRingIO is introduced for high-speed cross-thread communication. This is an implemenation of a circular buffer with BDataIO interface. The intended use case for this is for a HTTP/2 implementation, where one thread will be the multiplexer and request threads will make use of this to retrieve from the multiplexer.
  • BUrlRequest will now output directly into a BDataIO. This simplifies the API for users as they can now reuse BDataIO implementations within Haiku like BFile, BMallocIO, etc. without having to implement a BUrlProtocolListener.
  • Introducing BUrlSession as a context manager allowing request handlers to access and store session data. What this will enable is the ability to reuse previously opened connections, which should reduce latency when requests are opened against previously connected hosts. This portion is still a WIP.
  • A clean up and rearchitecture of HaikuWebKit (WebPositive’s engine) networking was done which should improve reliablity. The rearchitecture also come with fixes for HTTP authentication and redirection, which should now function as well as other browsers.

I’ll be honest, I’m not happy with (relatively) small the amount of work that I have done during this GSoC, and I’m sorry for have not followed up with my set goals.