-
Notifications
You must be signed in to change notification settings - Fork 1
/
README
237 lines (148 loc) · 7.14 KB
/
README
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
This is a small introduction to the [b]ero*fix User[A]ppFS [f]ramework (baf).
= See Also =
http://developer.beronet.com/index.php/BAF_-_berofix_UserApp_Framework
http://developer.beronet.com/index.php/UserApp_API_Reference
http://developer.beronet.com/index.php/BeroFix_Filesystem_Layout
http://developer.beronet.com/index.php/Baf_modules
= Prerequisites for using baf =
* x86- or x86_64 PC running Linux
* installed build tools (package build-essential on Debian/Ubuntu)
* Python 2.6.0 or newer
= Installing baf =
After extracting the archive or cloning the repository, switch to the directory
and type 'make install'. By default this will install baf to '/usr/local',
so you need to be root for the installation or use 'sudo'.
If you want to install baf to another directory, append 'PREFIX=/some/path'.
So if you'd like to have it installed inside your home-directory, type:
make install PREFIX=~/some/path
The baf-script will be installed in '~/some/path/bin', so make sure this
directory is listed in your $PATH-environment variable!
= Uninstalling baf =
To uninstall baf, switch to the directory where you have extracted the
baf-archive and type:
make uninstall
This will uninstall baf from the location saved to 'INSTALL.LOCATION' while
it was installed.
= Creating a first UserApp =
To create an UserApp, just type:
baf create an_app
This will create a directory structure and some files needed to create an
UserApp in the subdirectory 'an_app'.
= Modules =
A bero*fix UserApp can contain several modules, which help you to manage the
different components of your application.
== Creating a module ==
Switch to the directory mentioned above and type:
baf module create a_module
This will create the skeleton for a module in the 'modules/' directory
called 'a_module'.
If you switch to the directory 'modules/a_module', you will see a few
directories, a Makefile and an empty file called 'mod_files.lst'.
The Makefile is set up to configure, compile and install applications that lie
in the subdirectories of 'src/'. It is very basic, so it should be adjusted to
the needs of the application you want to use. If your program has a configure
script, you will have to add parameters to the 'CONF_OPTS' variable in this
file and maybe adjust the 'MAKE_OPTS' and 'INST_OPTS' variables as well.
The goal should be, that your application installs itself in
'an_app/modules/a_module/'.
The file 'mod_files.lst' should list the files to be installed in your UserApp
in the following way:
src/file=>tgt/file
E.g. if the build-process of an application creates the following files:
* a_module
* bin
* a_bin
* libs
* a_lib.so
* b_lib.so
you should add the following lines to this modules' 'mod_files.lst':
bin/a_bin=>bin/a_bin
lib/a_lib.so=>lib/a_lib.so
lib/b_lib.so=>lib/b_lib.so
All files listed here will be installed, all files not listed ignored.
So you should check that you listed all files needed by your application.
If you want to run an application as service, you might want to add an
init-script to the init-subdirectory of your module. In the directory
'a_module/init' is already a simple example, the file 'S00example'.
Copy or rename it, but keep the scheme S[0-9]{2}[a-zA-Z]{*}. Edit it to the
needs of your UserApp and keep in mind:
The path on bero*fix will be '/userapp/an_app/'!
If you want to run an application periodically, there's also an init-
script names 'S00cronexample'. This example shows how a cron job is added
(and removed) to the cron-daemon running on bero*fix.
Please see [http://www.unixgeeks.org/security/newbie/unix/cron-1.html] for
more information on the syntax of an entry in crontab.
If you want the init-script to be installed, please remember to add it
to your 'mod_files.lst'!
== En-/Disabling a module ==
Modules are enabled by default, if you want to disable a module
(it won't be compiled or installed) or re-enable it, you can do this with the
following commands.
To disable a module, type 'baf module disable a_module' while in root of
your UserApp.
To enable a module, type 'baf module enable a_module' while in root of
your UserApp.
== Compiling a module ==
To compile a module, type 'baf module compile a_module' while in root of
your UserApp.
== Installing a preconfigured module ==
baf provides a mechanism to install preconfigured modules from a repository.
The repository used is configured in the file '.baf.conf'.
Modules provided by a repository can be listed with the command:
baf module list
To search a module, enter the command:
baf module search <searchterm>
And to install a module, use:
baf module install <modulename>
== Deleting a module ==
To delete a module, type 'baf module delete a_module' while in root of
your UserApp.
= Creating an UserAppFS package =
After you've configured your modules, you can create a package that contains
all modules.
To create a package switch to the root-directory of your UserApp-Repository
and type:
baf make
This will compile and install all enabled modules, ask you to modify the file
'pkginfo/VERSION' and create a tar.gz-archive in the directory 'pkg/'.
= the VERSION file =
Before 'baf make' compiles your modules the file 'pkginfo/VERSION' will be
opened with the editor configured in '.baf.conf' and you should edit this
file. In this file are several variables to be set.
The variable 'NAME' sets a simple name for your application, it can consist
of letters, numbers and underscore. Please do not use spaces.
The variable 'VERSION' sets the version of your application. This can be an
integer of your choice.
The variables 'NEED_FIRMWARE', 'NEED_KERNEL', 'NEED_ROOTFS' and 'NEED_APPFS'
will be evaluated while berofix installs your application.
Set it to your needs: E.g. if your application requires an appfs
version 2 to be installed, set 'NEED_APPFS' to 2.
The variable 'SLOTS' sets the slots used by your application. One slot
represents ~1 megabyte of flash used by your application. The userappfs
provides up to eight slots, so try to keep your application as small as
possible. Please round up the space consumed by your application;
the following slot-assignments are recommended:
0 MB to 1 MB = 1 Slot
1 MB to 2 MB = 2 Slots
2 MB to 3 MB = 3 Slots
3 MB to 4 MB = 4 Slots
4 MB to 5 MB = 5 Slots
5 MB to 6 MB = 6 Slots
6 MB to 7 MB = 7 Slots
7 MB to 8 MB = 8 Slots
The variable 'TYPE' sets the type of this package. This variable does not
need to be changed.
The variable 'DESCRIPTION' should contain a small description of your
application.
= The baf configuration file =
The root of an baf application-directory-structure contains a file named
'.baf.conf'.
This file contains the path to the toolchain and the editor used, which
is set to vim by default. If you want to use another editor, like SciTE
or kWrite, just replace to path to vim with the path to your favorite editor.
The third configuration option saved in this file is the url to the
repository used to install pre-configured modules. Bey default this points
to: http://developer.beronet.com/baf-modules/modlist.txt
= That's all folks =
Well, not at all. If you have questions, want to report problems or have suggestions, mail them to us: