wiki:GCI/Coding/HelloWorld

Version 12 (modified by Joel Sherrill, on 09/06/18 at 20:10:51) (diff)

Update per Vijay's suggestions.

GCI Hello World Task

This task consists of following the instructions at GSOC Getting Started and helping improve the instructions.

We prefer you use a GNU/Linux distribution if possible, as these tend to be the best supported.

Directions for Students

Follow the instructions at https://devel.rtems.org/wiki/GSoC/GettingStarted EXCEPT:

  • Use your favorite host operating system to do this. You can do this on Windows using MSYS2, a GNU/Linux distribution, MacOS, FreeBSD, etc. Guidance on many operatiing systems is in the Hosts section of the RTEMS Source Builder manual.
    • In many cases, you can use Virtualbox to execute the operating system virtually. Many operating system images are available are available at https://virtualboxes.org/images/ and https://www.osboxes.org/virtualbox-images/. This allows you to use a Windows computer to run a virtual machine with GNU/Linux or FreeBSD. Note that the virtual machines there may need to be updated and have extra packages installed to be suitable for building RTEMS tools and RTEMS itself.
  • Build your own tools using the RTEMS Source Builder (RSB)
  • Report back on the process to help us improve the GSoC Getting Started page to be current, clear, and correct.
  • Submit a git patch HowTo create git patch to your GCI claimed task (GCI website).
  • Submit a screenshot of your modified running Hello World program to your GCI claimed task (GCI website).
  • Fill in an entry in the Feedback table below.
  • If you run into trouble, ask for help on the RTEMS Users mailing list, IRC channel, or use Google to search for similar problems others may have experienced before.

Feedback

Note: Some sample feedback from previous years is included.

Student Host OS RTEMS Target Feedback
Bryan D. Arch Linux sparc-rtems4.11 While compiling the tools and RTEMS I only encountered two problems. The first one was with binutils; for some reason, it refused to compile outside the source directory, so I compiled it in the source directory. The second problem was with building RTEMS itself. The error was easy to fix though and just required removing the --disable-posix flag when calling ./configure.
Kevin F. Linux Mint 13 LTS sparc-rtems4.11 I made lots of errors myself, but overall the instructions were fairly clear. Perhaps the RSB Quick Start should explain moving executables a bit more (like where to find them) and the RTEMS Quick Start should have remarked that you should put export the PATH to the tools bin you compiled. I needed python2.7-dev installed.
Evan M. Ubuntu sparc-rtems4.11 I found the directions straightforward, although I do admit I had some trouble from time to time. It also seemed like several pages contradicted each other, but that might have been on my side due to my lack of experience.
Kkvazar Q. Fedora 20 sparc-rtems4.11 I wasn't able to finish the task, because I got lost in the documentation, the pages weren't well related and were contradicting. Some useful pages weren't easy to find such as the git README. I expected sb-check to tell me about missing devel libs, but it didn't. 'bootstrap' was hard to find and it failed on missing files. Most of the questions I had were asked online, but weren't answered.
Ralph H. Linux Mint 17.1 sparc-rtems4.11 Instructions were very clear and simple to follow, albeit spread over several pages. Compiling RBS was simple, with the error messages clear (I only had to install CSV). Finding information was easy, and compilation was successful first time (with slight modifications to certain paths to match my projects directory path). I should probably note that I likely had most of the dependencies for compiling RBS, etc. already as I had previously manually built a cross-targeted GCC (and so I was already aware of such things as adding targeting executables to the path, as well as using git relatively proficiently, thus I did not need to locate information on such topics). The source tree of RTEMS is simple to navigate, and there were no issues with rebuilding and debugging/running a modified executable.
Tan G. Ubuntu 15.10 sparc-rtems4.11 I had a fairly difficult time doing the task both because of some errors in the instructions and some of my own. However, most of these could be solved by looking at the logs and searching around a bit. Two problems I had in particular were that build-rep chose python2.7 instead of python2.7-dev and I had to install it directly and the package for git-send-email was named git-email unlike what the instructions said. The first one was especially problematic because I didn't understand the problem until I looked at the error log instead of the incomprehensibly long build log.
Alex S. Debian Jessie (64-bit) sparc-rtems4.11 The documentation was straightforward and easy to follow, but at first the source tree of RTEMS can be confusing, and the architecture-specific tools need to be exported to your PATH to be readily used. The directions for building RBS were harder to follow than for RTEMS. Note for future newcomers: compiling with -j`nproc` will significantly speed up your build on multi-core hosts.
Michał P. Arch Linux sparc-rtems4.11 Instructions were relly easy to follow, I had no problem building RTEMS. Unfortunatelly, RSB scripts assume that /usr/bin/python is python2, but that's an issue with nearly every build script and it's easy to solve, so it was not a big problem.
Owen P. Ubuntu and OS X sparc-rtems4.11 When I built RTEMS the first time on Ubuntu, I thought the instructions were relatively clear, but at sometimes seemed vague to me. I had a few errors when trying to build the tool set with RSB, so I had to dig around in the log files multiple times. When I built RTEMS on OS X, it didn't take long and I found it much easier than doing it on Ubuntu, probably because I already had experience. I was able to get it working the first time.