<div dir="ltr"><div dir="ltr"><br></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Wed, Jul 15, 2020 at 5:33 AM Chris Johns <<a href="mailto:chrisj@rtems.org" target="_blank">chrisj@rtems.org</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">On 15/7/20 4:30 am, Mritunjay Sharma wrote:<br>
> Hello everyone,<br>
> <br>
> Pardon my mistake for that long thread. From now on the daily updates will be<br>
> given on a thread that will end every week. <br>
<br>
Thank you :)<br>
<br>
> 1) I studied about <a href="https://github.com/RTEMS/rtems-libbsd" rel="noreferrer" target="_blank">https://github.com/RTEMS/rtems-libbsd</a><br>
> 2) Tried to fix the error that I reported yesterday: <br>
> <br>
> ```<br>
<br>
Why cut the compile command line used to build this file out of the message? The<br>
compiler command is important because it lets us see what paths are being used<br>
and I think there may be a problem with them.<br>
<br>
> ../posix/rtems_init.c:38:10: fatal error: rtems/bsd/bsd.h: No such file or directory<br>
>  #include <rtems/bsd/bsd.h><br>
>           ^~~~~~~~~~~~~~~~~<br>
<br>
I cannot duplicate this because I am not sure what the sequence of commands are<br>
you used to get to here. I am sorry if I missed it in a previous post.<br>
<br>
The error indicates a set up issue. It normally means the networking software<br>
(rtems-libbsd) has not been installed into a prefix path EPICS looks in.<br></blockquote><div><br></div><div>I am posting the entire command set further ahead in the email which will make things</div><div>easier to understand.  </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<br>
> compilation terminated.<br>
> make[4]: ***<br>
> [/home/mritunjay/development/EPICS/epics-playground/configure/RULES_BUILD:235:<br>
> rtems_init.o] Error 1<br>
> make[4]: Leaving directory<br>
> '/home/mritunjay/development/EPICS/epics-playground/modules/libcom/RTEMS/O.RTEMS-pc386'<br>
> make[3]: ***<br>
> [/home/mritunjay/development/EPICS/epics-playground/configure/RULES_ARCHS:58:<br>
> install.RTEMS-pc386] Error 2<br>
> make[3]: Leaving directory<br>
> '/home/mritunjay/development/EPICS/epics-playground/modules/libcom/RTEMS'<br>
> make[2]: ***<br>
> [/home/mritunjay/development/EPICS/epics-playground/configure/RULES_DIRS:84:<br>
> RTEMS.install] Error 2<br>
> make[2]: Leaving directory<br>
> '/home/mritunjay/development/EPICS/epics-playground/modules/libcom'<br>
> make[1]: *** [../configure/RULES_DIRS:84: libcom.install] Error 2<br>
> make[1]: Leaving directory<br>
> '/home/mritunjay/development/EPICS/epics-playground/modules'<br>
> make: *** [configure/RULES_DIRS:84: modules.install] Error 2<br>
> <br>
> ```<br>
> <br>
> I am still not successful even though I tried to search for it. <br>
<br>
I doubt there will be anything to search for. You are solving the problem and<br>
creating the first info to be searched. We need to debug the problem.<br>
<br>
> On the advice of Heinz, I have already built EPICS 7 with RTEMS4.10<br>
> by hand and am on the verge of doing the same for EPICS7 with RTEMS5 <br>
> for pc-386. <br>
<br>
I am sorry I do not understand what "on the verge of doing the same" means.<br></blockquote><div><br></div><div>I am sorry for the misunderstanding. It means that after these bugs are resolved with this </div><div>discussion I will successfully be able to build EPICS7 with RTEMS5  </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<br>
> However, I will like to request all my mentors to help me set the goals<br>
> for this week and where should I begin next?<br>
<br>
Could you please update your blog with the exact command sequences you are using<br>
to build EPICS7 for RTEMS 4.10 and EPICS7 for RTEMS 5 for a PC? <br></blockquote><div><br></div><div>While I will be updating the commands in the blog, I am posting the same here for easier reference: </div><div><br></div><div>Building EPICS7 for RTEMS4.10 with pc-386: </div><div><br></div><div><div><div>In order to do that, I made the directory</div><div><br></div><div>i) $HOME/development/rtems/</div><div>ii) I extracted rtems-4.10 from here <a href="https://ftp.rtems.org/pub/rtems/releases/4.10/4.10.2/" target="_blank">https://ftp.rtems.org/pub/rtems/releases/4.10/</a></div><div>iii)I created another directory rtems/src</div><div>iv)Inside src, I cloned rsb and moved to 4.10 branch.</div><div>v) After performing checks, I entered to rsb/rtems and used this command:</div><div>'../source-builder/sb-set-builder --prefix=/home/mritunjay/development/rtems/4.10 4.10/rtems-i386'.</div><div>vi) Now the directory structure under $HOME/development/rtems/ looked like: </div><div>      | rtems-4.10</div><div>      | 4.10</div><div>      | src/rsb</div><div>      | kernel/pc386</div><div>I also used this command: "export PATH=$HOME/development/rtems/4.10/bin:$PATH"<br></div><div>vi) Then I went to rtems/rtems-4.10 and used this command: </div><div>"./bootstrap -c && $HOME/development/rtems/src/rsb/source-builder/sb-bootstrap"</div><div>vi) After this I went insid directory $HOME/development/rtems/kernel/pc-386</div><div>vii) Inside pc-386, I used the following command:</div><div>''$HOME/development/rtems_dev/rtems-4.10.2/configure --target=i386-rtems4.10 --enable-posix  --enable-rtemsbsp=pc386 --enable-tests=samples --prefix=$HOME/development/rtems/4.10 --enable-cxx"</div><div>viii) Then I entered the make command which ran successfully and the make install was also successful.</div><div><br></div><div>So all the errors were resolved and I moved on to build EPICS now for RTEMS 4.10.</div></div><div>I also used this command: </div><div>'''export RTEMS_MAKEFILE_PATH=$HOME/development/rtems/4.10/i386-rtems4.10/pc386''<br></div><div>Location of epics-base in my system is as follows:</div><div>"$HOME/development/EPICS/epics-base"<br></div><div><br></div><div><div>After this, I followed the tutorial Heinz sent to build EPICS for rtems-4.10 for pc-386 which is:</div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Very roughly:<br>git clone —recursive epics-base<br><br>in epics-base/configure/CONFIG_SITE<br>set<br>CROSS_COMPILER_TARGET_ARCHS=  <br></blockquote><div>   What I entered:</div><div>   CROSS_COMPILER_TARGET_ARCHS=  RTEMS-pc386-qemu</div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">e.g. RTEMS-pc386<br>or RTEMS-xilinx_zynq_a9_qemu<br><br>in epics-base/configure/os there must be a file for the target used,<br>e.g.<br>CONFIG.Common.RTEMS-xilinx_zynq_a9_qemu<br>or<br>CONFIG.Common.RTEMS-pc386<br></blockquote><div>Checked.  CONFIG.Common.RTEMS-pc386 was there</div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><br>Then you have to set in configure/os/CONFIG_SITE.Common.RTEMS<br>where to find RTEMS:<span style="color:rgb(80,0,80)"><br><br># Where to find RTEMS<br>#<br># APS:<br>#RTEMS_VERSION = 4.10.2<br>#RTEMS_BASE = /usr/local/vw/rtems/rtems-$(RTEMS_VERSION)</span></blockquote><div><br></div><div>In my system, I entered this: </div><div>#APS </div>RTEMS_VERSION = 4.10<br>RTEMS_BASE = /home/mritunjay/development/rtems/$(RTEMS_VERSION)<br><div><br></div><div>I followed the above instructions and used the 'make' command. </div></div></div><div>It was successful for RTEMS 4.10 and EPICS 7.  </div><div><br></div><div>I was following almost the same set of commands and steps for RTEMS5 as well with changes </div><div>in RTEMS source and the prefix such that the directory structure under $HOME/development/rtems/ looked like: </div><div><div>      | rtems-5 (source from git set in `5` branch)</div><div>      | 5 (prefix)</div><div>      | src/rsb (switched to `5` branch)</div><div>      | kernels-5/pc386</div><div><br></div><div>I used this command inside kernels-5/pc386:</div><div><br></div><div>`$HOME/development/rtems/rtems-5/configure --target=i386-rtems5 --enable-rtemsbsp=pc386 --enable-tests=samples --prefix=$HOME/development/rtems/5 --enable-cxx --enable-networking --enable-posix`. <br></div><div>The make and make install was successful here. </div><div><br></div><div>After this, I used a different epics-base (The one I downloaded from Heinz's playground)</div><div>and made corresponding changes in the file for RTEMS5 as described above in the tutorial sent by Heinz.</div><div>When I ran `make` inside the `playground` epics-base, I got the error that I mentioned. </div><div></div></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<br>
Have you run EPIRC7 for 4.10 in qemu? If so did the network come up and work?<br></blockquote><div><br></div><div>Yes, I ran EPICS7 for 4.10 in qemu. I  r<span style="color:rgb(0,0,0);white-space:pre-wrap">an the EPICS test suites for RTEMS in QEMU using the  </span></div><div><span style="color:rgb(0,0,0);white-space:pre-wrap">following command:</span></div><div><span style="color:rgb(0,0,0);white-space:pre-wrap"><br></span></div><div><span style="color:rgb(0,0,0);white-space:pre-wrap">```</span>qemu-system-i386 -no-reboot -m 128 -boot n -serial stdio  -net nic -net user,tftp=$PWD,bootfile=bin/RTEMS-pc386-qemu/dbTestHarness```</div><div><br></div><div>The QEMU emulator successfully opened then and it showed that all the tests passed.</div><div>I am attaching the screenshot as well.</div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<br>
Have you run the rtems-libbsd test executables in qemu?<br></blockquote><div><br></div><div>I am not sure if I have done this. Can you please tell what can be the command for it? </div><div><br></div><div>Thanks</div><div>Mritunjay </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<br>
Thanks<br>
Chris<br>
</blockquote></div></div>