Rockbox.org home
Downloads
Release release
Dev builds dev builds
Extras extras
themes themes
Documentation
Manual manual
Wiki wiki
Device Status device status
Support
Forums forums
Mailing lists mailing lists
IRC IRC
Development
Bugs bugs
Patches patches
Dev Guide dev guide
Search



Donate

Rockbox Technical Forums


Login with username, password and session length
Home Help Search Staff List Login Register
News:

Welcome to the Rockbox Technical Forums!

+  Rockbox Technical Forums
|-+  Rockbox Development
| |-+  Starting Development and Compiling
| | |-+  How to start on my own custom firmware - I have programming knowledge
« previous next »
  • Print
Pages: [1]

Author Topic: How to start on my own custom firmware - I have programming knowledge  (Read 4165 times)

Offline opalelement

  • Member
  • *
  • Posts: 2
How to start on my own custom firmware - I have programming knowledge
« on: December 28, 2009, 12:42:59 PM »
Greetings all :D

I have been into programming for about 7 years now, mostly with C#, PHP, HTML, and JavaScript, but I have also used ASP, ASP.NET, VB2005, Java, and Flash/ActionScript.

I wish to create my own custom firmware (everything, not just appearance) for my Sansa E200R, but I have a few questions first.

1) Can custom firmware be made using parts of Rockbox, such as the bootloader?
2) What would be the best programming language to use? It doesn't have to be one that I know already, I am about 95% self taught* and can learn a new one such as C++ if need be.
3) Is it possible to completely destroy the E200R, or will it be possible to revert it through recovery mode?

Thank you for all replies in advance.

* Self-taught doesn't mean the occasional boredom "Hello World" examples. I build things like content management systems, user login/registration/management systems, phpBB3 modifications, and Facebook applications. You can Google my name, Opalelement, to see my experience.
Logged

Offline [Saint]

  • Rockbox Expert
  • Member
  • *
  • Posts: 1662
  • Hayden Pearce
    • Google+
Re: How to start on my own custom firmware - I have programming knowledge
« Reply #1 on: December 28, 2009, 01:19:01 PM »
Opalement,

It all depends entirely on whether or not you actually mean it when you say that you wish to develop everything for your firmware...or if you want to use elements already implemented by Rockbox.
If the answer to the question is the former, then I'd say...feel free to *attempt* to develop a firmware for your target entirely from scratch if you wish, and use whatever programming language you care to use....as it's entirely up to you.

However if the answer is the latter, then you're constrained to using the same language as the original developers, since you will be borrowing rather heavily from their already established code.

To "completely redevelop" a new OS for your target that compared with rockbox in any way, shape, or form would certainly take a substantially large amount of time and effort that could be better directed towards the further development of the current code.

To get to it's current state Rockbox has taken many years of development, and many, many, many more developers.

Even if you worked on it fulltime, it's a HUGE effort, and the groundwork of a free, open source FW has already been laid in Rockbox...

I'd suggest downloading the Rockbox Source via SVN and having a look at that before committing to the task of making an entirely new effort for one target alone.

It's piss-easy for even a novice user to apply changes to a copy of the SVN and recompile their own build of rockbox, compared with "nigh on impossible" to generate a new, complete working OS for your target from scratch.

As for: Will I kill my DAP in doing so?

If you rockbox as a base, then probably not.

But if you do choose to start messing around with things yourself and attemp to build an entirely new...."everything" from scratch, expect to brick a few players before you get it right...

One advantage of making a custom rockbox build is that the target chips architecture has already been investigated and understood (a massive task), and the code supports multiple targets, as opposed to just one.

Simply suggestions,
[St.]
« Last Edit: December 28, 2009, 01:39:07 PM by [St.] »
Logged
Using PMs to annoy devs about bugs/patches is not a good way to have the issue looked at.

Offline nls

  • Developer
  • Member
  • *
  • Posts: 460
Re: How to start on my own custom firmware - I have programming knowledge
« Reply #2 on: December 28, 2009, 04:34:12 PM »
I think developing your own firmware can be a very good learning exercise but as you probably understand and as was stated before, creating something like rockbox takes a *lot* of work (the rockbox hacking started 8 years ago and the project has more than 500 contributors by now).
The language to use is usually a question of understanding what you need and what that language needs to support it. Rockbox is written in C for a good reason.
If you want to create something that is your own firmware in a sense i'd suggest trying to port rockbox to a new player as it will probably give you a better understanding of how firmwares work without needing to rewrite everything from scratch, a new port is usually a *lot* of work as it is :)
Or if you are more interested in the apps layer, replace a part of it with something you like.
Logged

Offline opalelement

  • Member
  • *
  • Posts: 2
Re: How to start on my own custom firmware - I have programming knowledge
« Reply #3 on: December 28, 2009, 05:37:58 PM »
Thank you for your comments :)

Is there a way to view the source files of Rockbox where I can edit them, and then a way to compile them to firmware?

EDIT: Just found this: http://www.rockbox.org/wiki/SimpleGuideToCompiling

Next question; is it possible to edit/compile the firmware with Visual Studio?
« Last Edit: December 28, 2009, 05:49:04 PM by opalelement »
Logged

Offline saratoga

  • Developer
  • Member
  • *
  • Posts: 8974
Re: How to start on my own custom firmware - I have programming knowledge
« Reply #4 on: December 28, 2009, 06:43:13 PM »
Quote from: opalelement on December 28, 2009, 05:37:58 PM
Next question; is it possible to edit/compile the firmware with Visual Studio?

You can edit them, but will not be able to compile.  This is because VS doesn't understand our build system, and also because it does not include a suitable compiler.  Instead, I recommend following the directions on that page.
Logged

Offline [Saint]

  • Rockbox Expert
  • Member
  • *
  • Posts: 1662
  • Hayden Pearce
    • Google+
Re: How to start on my own custom firmware - I have programming knowledge
« Reply #5 on: December 29, 2009, 08:25:20 PM »
RE compiling Rockbox:

Win OS

Use VMware or CygWin, I reccommend Cygwin...but it's purely personal preference that seems to dictate who prefers what.

If you're more comfortable using the command line, use CygWin. If you want something with OOTB mouse support and a shiny GUI, use the VMware image.

However, for the actual "editing" of the rockbox source, I'd reccommend downloading SciTE (a scintilla based text editor that will keep dos/unix line endings intact and supports syntax highlighting for many languages), unless you're happier using nano or VIM.


Linux

Pretty sure there's a Wiki page for this as well...couldn't be too much different from the CygWin method I'd say.



[St.]
Logged
Using PMs to annoy devs about bugs/patches is not a good way to have the issue looked at.

Offline yapper

  • Rockbox Expert
  • Member
  • *
  • Posts: 794
Re: How to start on my own custom firmware - I have programming knowledge
« Reply #6 on: December 29, 2009, 10:05:38 PM »
VMware offers significant advantages in terms of build times over Cygwin.
Logged
G2 iPod 20GB / Sansa c240 v1 + 2GB microSD / Sansa c250 v1 / Sansa e250 v1 + 8GB microSDHC / Sansa Fuze v2 + 32GB microSDHC

Offline [Saint]

  • Rockbox Expert
  • Member
  • *
  • Posts: 1662
  • Hayden Pearce
    • Google+
Re: How to start on my own custom firmware - I have programming knowledge
« Reply #7 on: December 29, 2009, 11:24:10 PM »
Quote from: yapper on December 29, 2009, 10:05:38 PM
VMware offers significant advantages in terms of build times over Cygwin.

Such as.....?

I'm not being a smartass, I'm genuinely interested to hear your opinion.
There's a HUGE bias between users of both build environments, and ultimately, they both achieve the same thing...so I'm just wondering as to why VMware is any better than Cygwin?

I mean, is it just personal opinion, or is it actually better for some reason?

I see CygWin as having the added advantage of offering an incredibly powerful UNIX command line OS to those who are forced to, or would prefer to use a Win OS whereas (to my knowledge) VMware just compiles Rockbox.
That fact obviously makes it a "specialized tool", and I appreciate the fact that it's faster (CygWin won't be winning any medals for speed when compiling a build), but other than speed (as system variables like crappy hardware *could* make VMware perform just as slowly on some systems) and a shiny GUI....what other advantages does it give the user?

I'd very much appreciate your (or anyone else's) opinion on the topic,



[St.]
Logged
Using PMs to annoy devs about bugs/patches is not a good way to have the issue looked at.

Offline saratoga

  • Developer
  • Member
  • *
  • Posts: 8974
Re: How to start on my own custom firmware - I have programming knowledge
« Reply #8 on: December 29, 2009, 11:26:43 PM »
Quote from: [St.] on December 29, 2009, 11:24:10 PM
Quote from: yapper on December 29, 2009, 10:05:38 PM
VMware offers significant advantages in terms of build times over Cygwin.

Such as.....?


I think you misread what you quoted.  The advantage hes talking about is the build time.  Cygwin is slow and so most people prefer not to use it.
Logged

Offline [Saint]

  • Rockbox Expert
  • Member
  • *
  • Posts: 1662
  • Hayden Pearce
    • Google+
Re: How to start on my own custom firmware - I have programming knowledge
« Reply #9 on: December 29, 2009, 11:54:11 PM »
I did, completely.

Thanks for pointing that out.
I managed to read it at least three times as

"VMware offers significant advantages in terms of build over Cygwin."

instead of

"VMware offers significant advantages in terms of build times over Cygwin."

completely missing out the important factor "times"  ::)

Time for new glasses perhaps, *sigh*


Sorry guys.

EDIT:

Question: Does VMware have support for dual core processors?
CygWin does, and I find it compiles quite quickly on *my* system, but I'm wondering whether or not that's the sole reason.
From memory, it was not (noticably at least) any slower than VMware on my system.
« Last Edit: December 29, 2009, 11:58:49 PM by [St.] »
Logged
Using PMs to annoy devs about bugs/patches is not a good way to have the issue looked at.

Offline Llorean

  • Member
  • *
  • Posts: 12931
Re: How to start on my own custom firmware - I have programming knowledge
« Reply #10 on: December 30, 2009, 12:17:29 AM »
Did you really use VMWare? You talk about how Cygwin offers a linux command line and such - VMWare is a copy of Linux running in a virtual machine. You even compile Rockbox in VMWare through that very same command line interface you're talking about liking in Cygwin.

In every possible way it offers a more genuine and whole Linux experience than Cygwin does.

And I think if you go back and use the time tool to compare compile times you'll see a significant difference between vmware compile times and cygwin compile times.
Logged

  • Print
Pages: [1]
« previous next »
+  Rockbox Technical Forums
|-+  Rockbox Development
| |-+  Starting Development and Compiling
| | |-+  How to start on my own custom firmware - I have programming knowledge
 

  • SMF 2.0.17 | SMF © 2019, Simple Machines
  • Rockbox Privacy Policy
  • XHTML
  • RSS
  • WAP2

Page created in 0.102 seconds with 14 queries.