Return to

FermiOS: An OS development for Raspi 3



GNU Autoconf can go die in a fire. Custom written Makefiles that assume sane config that is documented in README is the way to go IMO.

Also said Makefiles should make editing them (at least the flags and stuff) easy.


What made you go with BitBucket? I’ve never used it, so I’m not talking shit, just curious.


The fact that am too poor to self-host and they allow free private repos. Also the fact that I hate how social github is lol


I hear that… wish there were more people with that mindset


I think I could make the var names in the Makefile bit easier to read. I am just in this habit of making them short. :man_shrugging:

Might rewrite it and try to fix the jobs problem.


Umm… I just realised something scary and cool while starting at your source… this is the tools needed to use the Raspberry Pi as a fucking microcontroller…

Its a fucking Quad Core 1GHz stm32 blue pill rn…

With USB and Ethernet, assuming someone writes a barebones driver for it…

This opens so many opportunities…

The first thing I feel like doing is writing an Arduino target for it!

Thank you for opening this up… I know your project is to build an OS, but I am thinking I could build a real time system from this, by dedicating a core to handling the USB and network IO, there are 3 cores left to running a real time application.


I plan to write drivers :wink: It’s gonna take some time, especially with uni.


Some resources (will add to top too):

1: AFAIK BCM2837 has same peripherals as BCM2835. The difference between them are ARM core and more clocked VideoCore.
2: You probs want ARM® Architecture Reference Manual ARMv8, for ARMv8-A architecture profile
and Arm Cortex-A53 MPCore Processor Technical Reference Manual


I have been looking at the peripherals to see what toys are hidden in silicon.

the Triple I2C controller and 15(!!) Software configurable DMA channels look fun :smiling_imp:


How experienced are you in this kind of stuff? Coz looks like a lot :stuck_out_tongue:
I am one helluva noob, just tryina learn shit.


@akaiotak Im half way through an EEE degree, so I understand most of the theory, but never get to play with this stuff…

My experience with embedded development starts at Arduinos and ends at trying to build rust programs for STMF103xx parts.

I am excited by this cos I feel like someone has just handed me the worlds fanciest microcontroller and said “have fun, don’t break it”. But instead of being a $300 dev board from ST or Xilinx its a $35 PC that I already own!


@akaiotak did you find any information on talking to the GPU?


Yeah, I used that to get the board serial. You talk with the VideoCore via the mailbox.

I just skimmed it to implement basic stuff. Still need to read on it.



Couldn’t fall asleep so decided to play around with message box to query stuff on Raspi:

Actual hardware:


As you can see, there are some quirks to iron out. Can’t read the clock rate on actual hardware… Also max clock rate should be 1.2 GHz on Raspi 3 B :man_shrugging:

Also need to factor some code :wink: :

Anyways, that was kinda fun, but I think I finally feel like sleeping.

That’s it for now.



Super small update (won’t even bother writing in OP):

just refactored the mbox calls from main into separate functions. Didn’t even look into fixing the clock bug on real HW. :man_shrugging: gotta go write some thesis.



Another smol update (that I won’t bother to add to OP):

Just threw some ugly code together to test sending data over serial. The goal atm is to write a bootloader over serial.




Smol Update: FML Edition :expressionless::gun:

Half a day of work to realize I have faulty serial connection on real hardwre… (kept rewriting my code, kept thinking I am doing something wrong lol)

Redid the serial boot interface, as well as, wrote a script to actually upload the kernel over serial from host.


code is shit, and needs refactor, hence why it’s in dev branch.



Ripped apart my Arduino breadboard USB 2 serial contraption. I am not sure if it’s the culprit, but I definitely get output cut at some point when using that.

But I went and ordered some stuff that might help me out:

  • Logic analyser
  • Multimeter


Sorry to hear about your tools letting you down,

Its great to see progress though. Keep at it man!


It’s here my dudes!