wiki:GCI/Coding/HelloWorld

GCI Hello World Task

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

A helpful and updated guide is now at https://docs.rtems.org/branches/master/user/start/index.html

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 operating 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) add "no clean" option and report the disk space used by the build, and the build time along with specs on the machine and OS you used.
  • Report back on the process to help us improve the GSoC Getting Started page to be current, clear, and correct, if you run into any issues.
  • 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.

Deliverables for submission

  • Submit a git patch HowTo create git patch to your GCI claimed task (GCI website), which shows you having edited the hello world program with your own custom message.
  • 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 (register on the wiki if you aren't already, login, and find the "edit" button at the bottom of this page, then add your own feedback to the table below)

Feedback

Note: Some sample feedback from previous years is included.

Student Nickname Host OS RTEMS Target Feedback
Brydog. 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.
Kev 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.
Naive. 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.
Ralphhhh. 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 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.
Michał 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.
OP. 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.
Sal Fedora 28 sparc-rtems5 I think that the instructions are well explained but in the wiki, you have to jump from page to page to find everything and there are some things that seem outdated. I think that it would be better to have a unified page with a simple step-by-step explanation of the installation process and then put links for more specific things.
Sal Ubuntu 18.04 on Windows Subsystem for Linux on Windows 10 arm-rtems5 For the host I used Ubuntu 18.04 running on Windows Subsystem for Linux on Windows 10. It worked fine and the process is the same that is used for real GNU/Linux systems. I didn't have to change anything from what I did when I installed RTEMS (with sparc/erc32) in Fedora 28.
The only thing I changed is the RTEMS target to use ARM. I used ARM as the target and arm920 as the BSP. I found the process straightforward because I only had to change the command parts that had sparc to arm, and the ones that had erc32 to arm920.
embeddedt Ubuntu 16.04 sparc-rtems5 Once I found the necessary commands to invoke, the RTEMS Source Builder behaved as it was supposed to. However, I ended up having to search for several documentation pages because they were either missing or difficult to find. I think that a new document should be made that contains either the whole set of steps to follow or all the links we need.
Shashvat CentOS 7 and Ubuntu 18.04 sparc-rtems5 The process described to set up the host operating system was very well compiled , the major problem i faced was that most of the documents envolved for building the rtems5 were not systematically arranged ,the process of quick start should be more explained(it was a bit vague at points.) , i suppose the explainations of various new topics(for me) like BSD(Broad support packages),Targets and architectures should be linked to the quick start , where they are first used. I faced recursive errors due to presence of corrupt files in kernel but later i decided to rebuild the system entirely and the second time it felt much easier .The mentors were very helpful , helped me get through the quick start guide(do not hesitate to ask them questions).the ubuntu installation was quite similar but i faced error while bootstraping as the command was unable to access python lib , so i gave the path again and it worked fine .good luck!!
zehata Ubuntu 18.04.1 sparc-rtems5 While the process is relatively straightforward, there are a few changes that should be made to complete the task successfully. For example, instructions on https://docs.rtems.org/branches/master/user/start/index.html had linked to the Windows-specific guide. Between the 2 code blocks, it was stated that "Build the RTEMS Kernel (Chapter 7 Section 3.2.2 - Building the Kernel) by cloning the repository, running the bootstrap procecure, building and finally installing the kernel:", but 7.3.2.2 is for Windows Hosts only, so I met with some roadblocks when trying to run the code.
Himanshu Fedora 28 sparc-rtems5 The steps for installation and setting up host operating system was very well compiled. Only problem that I faced which is not a big deal during starting of the compilation like changing path from chris user to $HOME which is mentioned in the https://docs.rtems.org/branches/master/user/start/index.html . And everything was fine and program run successfully. Problem arises when I visited old sites for compiling rtems and after on-wards I followed the updated guide which leads me to successful compilation of the program. I think old sites should be either updated or merged. Actually saying a simple step-by-step explanation should be there and then put some extra links for more specific things
Chromico Lubuntu 18.10 sparc-rtems5 At first it was a bit confusing but if you read the documentation, do some research online and ask your mentors for help then you might be able to do it. It takes a lot of patience to get it right and you need to have some experience in using Linux if your planning to use Linux for this but if you don't then its gonna take longer to complete task. The documentation needs a bit more updates and guides on how to fix errors as I had encountered a lot of them when doing this. I will try to make a blog on how to do this when I get the time.
Hölscher Antergos(Arch) sparc-rtems5 I had to install the pax package from the AUR to compile the BSP and the package texinfo-legacy is no longer available in the AUR. This is not mentioned @ https://docs.rtems.org/branches/master/user/hosts/posix.html#archlinux.

Directions for Mentors

Verify the patch, screenshot, and read the feedback above.

Please file tickets when a host's instructions need updating for packages.

Last modified on 03/26/19 at 09:29:30 Last modified on 03/26/19 09:29:30