mirror of
https://git.rtems.org/rtems-libbsd/
synced 2025-05-13 02:34:39 +08:00
README.md: Update to RTEMS 6
This commit is contained in:
parent
0ad7038558
commit
95fde102a8
93
README.md
93
README.md
@ -8,23 +8,22 @@ package is designed to be updated from the FreeBSD kernel sources and contains
|
||||
more than just the networking code.
|
||||
|
||||
To build this package you need a current RTEMS tool set for your architecture,
|
||||
and a recent RTEMS kernel for your BSP configured with networking disabled
|
||||
built and installed. If you already have this you can skip to step 3 of the
|
||||
build procedure.
|
||||
and a recent RTEMS kernel for your BSP installed. If you already have this, you
|
||||
can skip to step 5 of the build procedure.
|
||||
|
||||
Building and Installing LibBSD
|
||||
------------------------------
|
||||
|
||||
The following instructions show you how to build and install RTEMS Tools and
|
||||
RTEMS kernel for your BSP in separate paths. Using separate paths for the tools
|
||||
and BSPs lets you manage what you have installed. If you are happy with a
|
||||
single path you can use the same path in each stage.
|
||||
The following instructions show you how to build and install the RTEMS Tool
|
||||
Suite for the `arm` target, the RTEMS kernel using the
|
||||
`arm/xilinx_zynq_a9_qemu` Board Support Package (BSP), and the LibBSD for this
|
||||
BSP.
|
||||
|
||||
The Waf build support for RTEMS requires you provide your BSP name as an
|
||||
architecture and BSP pair. You must provide both or Waf will generate an error
|
||||
message during the configure phase.
|
||||
|
||||
We will build an Xilinx Zynq QEMU BSP using the name
|
||||
We will build an Xilinx Zynq Qemu BSP using the name
|
||||
*arm/xilinx_zynq_a9_qemu*. You can copy and paste the shell commands below to
|
||||
do this. The individual steps are explained afterwards.
|
||||
|
||||
@ -37,30 +36,23 @@ git clone git://git.rtems.org/rtems.git
|
||||
git clone git://git.rtems.org/rtems-libbsd.git
|
||||
cd "$sandbox"
|
||||
cd rtems-source-builder/rtems
|
||||
../source-builder/sb-set-builder --prefix="$sandbox/rtems/5" 5/rtems-arm
|
||||
../source-builder/sb-set-builder --prefix="$sandbox/rtems/6" 6/rtems-arm
|
||||
cd "$sandbox"
|
||||
cd rtems
|
||||
PATH="$sandbox/rtems/5/bin:$PATH" ./bootstrap
|
||||
cd "$sandbox"
|
||||
mkdir b-xilinx_zynq_a9_qemu
|
||||
cd b-xilinx_zynq_a9_qemu
|
||||
PATH="$sandbox/rtems/5/bin:$PATH" "$sandbox/rtems/configure" \
|
||||
--target=arm-rtems5 --prefix="$sandbox/rtems/5" \
|
||||
--disable-networking --enable-rtemsbsp=xilinx_zynq_a9_qemu
|
||||
PATH="$sandbox/rtems/5/bin:$PATH" make
|
||||
PATH="$sandbox/rtems/5/bin:$PATH" make install
|
||||
echo -e "[arm/xilinx_zynq_a9_qemu]\nRTEMS_POSIX_API = True" > config.ini
|
||||
./waf configure --prefix "$sandbox/rtems/6"
|
||||
./waf
|
||||
./waf install
|
||||
cd "$sandbox"
|
||||
cd rtems-libbsd
|
||||
git submodule init
|
||||
git submodule update rtems_waf
|
||||
./waf configure --prefix="$sandbox/rtems/5" \
|
||||
./waf configure --prefix="$sandbox/rtems/6" \
|
||||
--rtems-bsps=arm/xilinx_zynq_a9_qemu \
|
||||
--buildset=buildset/default.ini
|
||||
./waf
|
||||
./waf install
|
||||
qemu-system-arm -no-reboot -serial null -serial mon:stdio -net none \
|
||||
-nographic -M xilinx-zynq-a9 -m 256M \
|
||||
-kernel build/arm-rtems5-xilinx_zynq_a9_qemu-default/selectpollkqueue01.exe
|
||||
../rtems/6/bin/rtems-test --rtems-bsp=xilinx_zynq_a9_qemu build
|
||||
```
|
||||
|
||||
1. Create a sandbox directory:
|
||||
@ -84,31 +76,21 @@ $ git clone git://git.rtems.org/rtems-libbsd.git
|
||||
```
|
||||
$ cd "$sandbox"
|
||||
$ cd rtems-source-builder/rtems
|
||||
$ ../source-builder/sb-set-builder --prefix="$sandbox/rtems/5" 5/rtems-arm
|
||||
$ ../source-builder/sb-set-builder --prefix="$sandbox/rtems/6" 6/rtems-arm
|
||||
```
|
||||
|
||||
4. Bootstrap the RTEMS sources:
|
||||
4. Build and install the RTEMS Board Support Packages (BSP) you want to use:
|
||||
|
||||
```
|
||||
$ cd "$sandbox"
|
||||
$ cd rtems
|
||||
$ PATH="$sandbox/rtems/5/bin:$PATH" ./bootstrap
|
||||
$ echo -e "[arm/xilinx_zynq_a9_qemu]\nRTEMS_POSIX_API = True" > config.ini
|
||||
$ ./waf configure --prefix "$sandbox/rtems/6"
|
||||
$ ./waf
|
||||
$ ./waf install
|
||||
```
|
||||
|
||||
5. Build and install the RTEMS Board Support Packages (BSP) you want to use:
|
||||
|
||||
```
|
||||
$ cd "$sandbox"
|
||||
$ mkdir b-xilinx_zynq_a9_qemu
|
||||
$ cd b-xilinx_zynq_a9_qemu
|
||||
$ PATH="$sandbox/rtems/5/bin:$PATH" "$sandbox/rtems/configure" \
|
||||
--target=arm-rtems5 --prefix="$sandbox/rtems/5" \
|
||||
--disable-networking --enable-rtemsbsp=xilinx_zynq_a9_qemu
|
||||
$ PATH="$sandbox/rtems/5/bin:$PATH" make
|
||||
$ PATH="$sandbox/rtems/5/bin:$PATH" make install
|
||||
```
|
||||
|
||||
6. Populate the rtems_waf git submodule. Note, make sure you specify
|
||||
5. Populate the rtems_waf git submodule. Note, make sure you specify
|
||||
'rtems_waf' or the FreeBSD kernel source will be cloned:
|
||||
|
||||
```
|
||||
@ -118,7 +100,7 @@ $ git submodule init
|
||||
$ git submodule update rtems_waf
|
||||
```
|
||||
|
||||
7. Run Waf's configure with your specific settings. In this case the path to
|
||||
6. Run Waf's configure with your specific settings. In this case the path to
|
||||
the tools and RTEMS are provided on the command line and so do not need to
|
||||
be in your path or environment [1]. You can use
|
||||
'--rtems-archs=arm,sparc,i386' or
|
||||
@ -133,12 +115,12 @@ $ git submodule update rtems_waf
|
||||
```
|
||||
$ cd "$sandbox"
|
||||
$ cd rtems-libbsd
|
||||
$ ./waf configure --prefix="$sandbox/rtems/5" \
|
||||
$ ./waf configure --prefix="$sandbox/rtems/6" \
|
||||
--rtems-bsps=arm/xilinx_zynq_a9_qemu \
|
||||
--buildset=buildset/default.ini
|
||||
```
|
||||
|
||||
8. Build and install. The LibBSD package will be installed into the prefix
|
||||
7. Build and install. The LibBSD package will be installed into the prefix
|
||||
provided to configure:
|
||||
|
||||
```
|
||||
@ -148,23 +130,22 @@ $ ./waf
|
||||
$ ./waf install
|
||||
```
|
||||
|
||||
9. Run the tests on QEMU, for example using VDE:
|
||||
9. Run the tests:
|
||||
|
||||
```
|
||||
$ qemu-system-arm -no-reboot -serial null -serial mon:stdio \
|
||||
-net nic,model=cadence_gem -net vde,id=vde0,sock=/tmp/vde1 \
|
||||
-nographic -M xilinx-zynq-a9 -m 256M \
|
||||
-kernel build/arm-rtems5-xilinx_zynq_a9_qemu/selectpollkqueue01.exe
|
||||
$ cd "$sandbox"
|
||||
$ cd rtems-libbsd
|
||||
$ ../rtems/6/bin/rtems-test --rtems-bsp=xilinx_zynq_a9_qemu build
|
||||
```
|
||||
|
||||
[1] It is good practice to keep your environment as empty as possible. Setting
|
||||
paths to tools or specific values to configure or control a build is
|
||||
dangerous because settings can leak between different builds and change
|
||||
what you expect a build to do. The Waf tool used here lets you specify on
|
||||
the command line the tools and RTEMS paths and this is embedded in Waf's
|
||||
configuration information. If you have a few source trees working at any
|
||||
one time with different tool sets or configurations you can easly move
|
||||
between them safe in the knowledge that one build will not infect another.
|
||||
It is good practice to keep your environment as empty as possible. Setting
|
||||
paths to tools or specific values to configure or control a build is dangerous
|
||||
because settings can leak between different builds and change what you expect a
|
||||
build to do. The Waf tool used here lets you specify on the command line the
|
||||
tools and RTEMS paths and this is embedded in Waf's configuration information.
|
||||
If you have a few source trees working at any one time with different tool sets
|
||||
or configurations you can easly move between them safe in the knowledge that
|
||||
one build will not infect another.
|
||||
|
||||
Branches
|
||||
--------
|
||||
@ -273,7 +254,7 @@ qemu-system-arm -serial null -serial mon:stdio -nographic \
|
||||
-M xilinx-zynq-a9 -m 256M \
|
||||
-net tap,ifname=qtap,script=no,downscript=no \
|
||||
-net nic,model=cadence_gem,macaddr=0e:b0:ba:5e:ba:12 \
|
||||
-kernel build/arm-rtems5-xilinx_zynq_a9_qemu-default/media01.exe
|
||||
-kernel build/arm-rtems6-xilinx_zynq_a9_qemu-default/media01.exe
|
||||
```
|
||||
|
||||
After some seconds it will acquire a IPv4 link-local address, e.g.
|
||||
|
Loading…
x
Reference in New Issue
Block a user