= GSoC Getting Started = [[TOC(GSoC/GettingStarted, depth=2)]] GSoC 2008 was the first time the RTEMS Project participated in the [wiki:GSoC Google Summer of Code]. After talking to mentors from other projects, we noticed that we all suffered from a "getting started" issue. You are more likely to have a successful project for any organization in GSoC if you are able to build their code, run their examples and make minor modifications. The quicker you cross this hurdle, the sooner you will be doing "real" work. Please join the [wiki:TBR/Website/RTEMSMailingLists rtems-users and rtems-devel mailing lists] and speak up. Ask questions. Help correct any deficiency in code or documentation you spot, including on the wiki. The ultimate goal of GSoC is not money, it is getting students to become part of the open source community. = Configure a Development Computer = You will be best served by using a Virtual Machine image we create that has all the tools installed ready to run. The image uses Virtual Box and should run on most modern computers. GSoC is about the working on open source and the projects listed and not about a specific complexity of a project like RTEMS, for example the tools. You can find out more about the virtual machine images on the [wiki:Virtual_Machines_for_RTEMS_Development_ Virtual Machines for RTEMS Development] page. If you use GNU/Linux and are familiar with using it we provide RPM based prebuilt tools for some GNU/Linux distribution. Some of the core RTEMS developers use [http://fedoraproject.org/ Fedora] or [http://www.centos.org/ CentOS] and we are can support you when if you use one these development host operating system. Some users have had success using Debian and Ubuntu with [wiki:TBR/Website/Debian_and_Ubuntu prebuilt tools], although you may need to [wiki:Building_the_RTEMS_toolset_on_Ubuntu_ build your own toolchain] how-ever this adds complexity to the task so be warned. As of February 2012 we suggest using Fedora 16 or CentOS 6. We will ALWAYS be on a version that is supported by the distribution. Other [wiki:TBR/UserManual/RTEMS_Development_Hosts development hosts] can also be used but are less well-supported. This step involves the following steps. * Install or update GNU/Linux distribution as needed. * Install RTEMS Tools. See [wiki:TBR/UserManual/RTEMS_Development_Hosts RTEMS Development Hosts] for information but remember we encourage you to use Fedora and thus you will follow the APT/Yum instructions. Make sure to get the right tools for the current version of RTEMS (the development HEAD, as of February 2012 these are the rtems-4.11 tools). As you will be compiling code, it is recommended to have a reasonably fast machine. = Configure and Build RTEMS for SPARC/SIS = * Check out RTEMS from Git. See [wiki:Developer/Git RTEMS Git Repository] for information. * Bootstrap RTEMS (covered in Wiki page referenced above). * Build RTEMS for the SPARC/sis BSP. [wiki:TBR/UserManual/Quick_Start Quick Start] shows how to do this. * Run hello world example in source tree. * Install RTEMS. The gdb session with the unmodified hello world will look something like the following (should have your user name and newer version of RTEMS): [[Image(SPARC-SIS-HelloWorld.png)]] Note that this image is careful not to show you how to configure or build the executable being run. = Configure and Build RTEMS for "Preferred" BSP = The preferred BSP depends on your project but your first choice should be a BSP that runs on a simulator included in gdb. SPARC/sis is a good candidate because it is easy to work with. If your project requires a BSP to support TCP/IP of something else not supported by SPARC/sis, then still first try a simple environment like SPARC/sis and then move on to the one that will support your project. Discuss your project requirements on the RTEMS mailing list and let the community help point you in the right direction. If SPARC/sis is not the right test platform for your project then you will need to ensure you know how to run hello world on your preferred BSP. = Prove You Can Work On RTEMS = Modify the hello world example to include your name. Something like "Hello Fred!". Then send us enough to prove to us that you did this. We want to know you can work with RTEMS. Create a patch of your changes: see [wiki:Developer/Contributing Contributing] and [wiki:Git Git]. This will look like: {{{ diff --git a/testsuites/samples/hello/init.c b/testsuites/samples/hello/init.c index 8874030..dda8175 100644 --- a/testsuites/samples/hello/init.c +++ b/testsuites/samples/hello/init.c @@ -33,9 +33,10 @@ rtems_task Init( rtems_task_argument ignored ) { - printf( "\n\n*** HELLO WORLD TEST ***\n" ); - printf( "Hello World\n" ); - printf( "*** END OF HELLO WORLD TEST ***\n" ); + printf( "\n\n*** GSOC HELLO WORLD TEST ***\n" ); + printf( "This is Joel's Hello World\n" ); + printf( "Welcome to RTEMS and Google Summer of Code 2009\n" ); + printf( "*** END OF GSOC HELLO WORLD TEST ***\n" ); exit( 0 ); } }}} * Take a "snapshot" of your modified hello world and send us the png. On GNU/Linux, you should be able to press the "Prnt Scrn" button or use the "xwd" command. This is a snapshot that [wiki:User:JoelSherrill Joel Sherrill] took after running the hello world program with the above changes. [[Image(SPARC-SIS-HelloWorld-Modded.png)]] = Send patch and screenshot = Ask on the mailing list about how to submit the proof. We want you to be open and active. = Other targets = If your project requires more of a test environment than SPARC/sis provides, then repeat the hello world steps on the BSP we help you select. If your project involves developing a new BSP, then you may want to run on a BSP from the same target architecture on a simulator. Again we will help you select the BSP. We will assist you in anyway possible along the way. We want you to have a functional RTEMS Development Environment as soon as possible so you can move on to the real project. = Interact = Check out the [wiki:GSoC RTEMSSummerOfCode] page. Join the [wiki:Developer/IRC IRC channel] and [wiki:TBR/Website/RTEMSMailingLists mailing lists]. Become part of the RTEMS community. Talk to [[RTEMS_Mentors|potential mentors]].