summaryrefslogtreecommitdiffstats
path: root/rules/rootfs.in
blob: 2b7c50363df0f695aa4f7979da8f1b18e3477a6e (plain)
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
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
## SECTION=rootfs

# ----------------------------------------------------------------------------
menu "directories in rootfs         "
# ----------------------------------------------------------------------------

config ROOTFS
	bool
	prompt "Create Directories in /"
	default y
	select BUSYBOX_FEATURE_SHADOWPASSWDS if ROOTFS_SHADOW && BUSYBOX
	select HOST_FIGLET if ROOTFS_ISSUE
	help
	  In order to support a standard root filesystem some subdirectories are
	  mandatory. They will be created by ptxdist automatically. Some
	  other directories are may be required on demand. This menu entry here
	  gives you the ability to create them.

if ROOTFS

config ROOTFS_DEV
	bool
	prompt "/dev"
	default y
	help
	  This directory contains system's device nodes. This is a common
	  location and name. For example udev depends on the existence of this
	  directory

config ROOTFS_DEV_INITIAL
	depends on ROOTFS_DEV
	bool
	prompt "create initial device nodes"
	help
	  install /dev/null, /dev/zero and /dev/console device nodes.
	  udev needs at least these nodes to startup. If you use udev
	  say yes here

config ROOTFS_HOME
	bool
	prompt "/home"
	default y
	help
	  home/ is a common location to store users private data. As ptxdist does
	  not support users out of the box, its up to yourself to create
	  additional subdirectories here and also provide the permission info.

config ROOTFS_HOME_ROOT
	bool
	prompt "/root"
	default y
	help
	  root/ is the usual location to store roots private data.

# Media Mountpoints

menuconfig ROOTFS_MEDIA
	bool
	prompt "/media                      "

config ROOTFS_MEDIA1
	prompt "Mountpoint 1"
	string
	depends on ROOTFS_MEDIA
	help
	  This string defines a mountpoint directory in /media

config ROOTFS_MEDIA2
	prompt "Mountpoint 2"
	string
	depends on ROOTFS_MEDIA && ROOTFS_MEDIA1!=""
	help
	  This string defines a mountpoint directory in /media

config ROOTFS_MEDIA3
	prompt "Mountpoint 3"
	string
	depends on ROOTFS_MEDIA && ROOTFS_MEDIA2!=""
	help
	  This string defines a mountpoint directory in /media

config ROOTFS_MEDIA4
	prompt "Mountpoint 4"
	string
	depends on ROOTFS_MEDIA && ROOTFS_MEDIA3!=""
	help
	  This string defines a mountpoint directory in /media

config ROOTFS_MEDIA5
	prompt "Mountpoint 5"
	string
	depends on ROOTFS_MEDIA && ROOTFS_MEDIA4!=""
	help
	  This string defines a mountpoint directory in /media

config ROOTFS_MEDIA6
	prompt "Mountpoint 6"
	string
	depends on ROOTFS_MEDIA && ROOTFS_MEDIA5!=""
	help
	  This string defines a mountpoint directory in /media

config ROOTFS_MEDIA7
	prompt "Mountpoint 7"
	string
	depends on ROOTFS_MEDIA && ROOTFS_MEDIA6!=""
	help
	  This string defines a mountpoint directory in /media

config ROOTFS_MEDIA8
	prompt "Mountpoint 8"
	string
	depends on ROOTFS_MEDIA && ROOTFS_MEDIA7!=""
	help
	  This string defines a mountpoint directory in /media

config ROOTFS_MEDIA9
	prompt "Mountpoint 9"
	string
	depends on ROOTFS_MEDIA && ROOTFS_MEDIA8!=""
	help
	  This string defines a mountpoint directory in /media

config ROOTFS_MEDIA10
	prompt "Mountpoint 10"
	string
	depends on ROOTFS_MEDIA && ROOTFS_MEDIA9!=""
	help
	  This string defines a mountpoint directory in /media

# ok, that's all for /media.

config ROOTFS_MNT
	bool
	prompt "/mnt"
	default y
	help
	  This is a common directory to temporarily mount external media. Its
	  always a good idea to select this entry.

config ROOTFS_PROC
	bool
	prompt "/proc"
	default y
	help
	  Create a /proc directory in the root filesystem.
	  You should say yes here.

config ROOTFS_RUN
	bool
	prompt "/run"
	default y
	help
	  Create a /run directory in the root filesystem.

config ROOTFS_SYS
	bool
	prompt "/sys"
	default y
	help
	  Create a /sys directory in the root filesystem.
	  2.6 kernel users should say yes here.

config ROOTFS_TMP
	bool
	prompt "/tmp"
	default y
	help
	  Create a /tmp directory in the root filesystem.
	  You should say yes here.

menu "/var                        "

config ROOTFS_VAR_OVERLAYFS
	bool
	prompt "overlay '/var' with RAM disk"
	depends on INITMETHOD_SYSTEMD
	help
	  This lets the whole '/var' content be writable transparently via an
	  'overlayfs'.
	  Reading content happens from the underlying root filesystem, while
	  changed content gets stored into a RAM disk instead. This enables all
	  applications to read initial data (configuration files for example)
	  and let them change this data even if the root filesystem is read-only.
	  Due to this behavior all changes made at run-time aren't persistent
	  by default.
	  Read documentation chapter 'Read Only Filesystem' for further details.
	  In order to use the default mount units and mount options, you need
	  to enable the 'mkdir' and 'rmdir' commands (from 'coreutils' or
	  'busybox') and use a Linux kernel 4.18 or newer. By replacing the
	  default files in
	  'projectroot/usr/lib/systemd/system/run-varoverlayfs.mount',
	  'projectroot/usr/lib/systemd/system/var.mount' and
	  'projectroot/usr/sbin/mount.varoverlayfs' by your own variants,
	  you can adapt these requirements.

config ROOTFS_VAR_RUN
	bool
	select ROOTFS_RUN
	prompt "/var/run"
	default y
	help
	  Ensure a '/var/run' directory is available at run-time. This will
	  always be a symlink to '/run'.

config ROOTFS_VAR_LOG
	bool
	prompt "/var/log"
	default y
	help
	  This directory is intended for log files and directories. Say 'y' here
	  to ensure a '/var/log' directory is available at run-time.

config ROOTFS_VAR_LOCK
	bool
	prompt "/var/lock"
	default y
	help
	  This directory is intended for application lock files. Say 'y' here
	  to ensure a '/var/lock' directory is available at run-time.

config ROOTFS_VAR_LIB
	bool
	prompt "/var/lib"
	help
	  This directory is intended for application variable state information.
	  Say 'y' here to ensure a '/var/lib' directory is available at
	  run-time.

config ROOTFS_VAR_CACHE
	bool
	prompt "/var/cache"
	help
	  This directory is intended for application cache data. Say 'y' here
	  to ensure a '/var/cache' directory is available at run-time.

config ROOTFS_VAR_SPOOL
	bool
	prompt "/var/spool"
	help
	  This directory is intended for application spool data. Say 'y' here to
	  ensure a '/var/spool' directory is available at run-time.

config ROOTFS_VAR_SPOOL_CRON
	bool
	prompt "/var/spool/cron"
	help
	  Create a '/var/spool/cron' directory in the root filesystem.

config ROOTFS_VAR_TMP
	bool
	prompt "/var/tmp"
	default y
	help
	  This directory is intended for temporary files preserved between
	  system reboots. Say 'y' here to ensure a '/var/tmp' directory is
	  available at run-time.

endmenu
endif # ROOTFS

# ----------------------------------------------------------------------------

endmenu

# ----------------------------------------------------------------------------
menu "files in rootfs               "
# ----------------------------------------------------------------------------

config ROOTFS_PASSWD
	bool
	prompt "install /etc/passwd"
	default y
	help
	  If enabled, it installs the "./projectroot/etc/passwd" file if
	  present, else a generic one from the ptxdist directory.

config ROOTFS_SHADOW
	bool
	prompt "install /etc/shadow"
	default y
	help
	  If enabled, it installs the "./projectroot/etc/shadow" file if
	  present, else a generic one from the ptxdist directory.

config ROOTFS_GROUP
	bool
	default y
	prompt "install /etc/group"
	help
	  If enabled, it installs the "./projectroot/etc/group" file if
	  present, else a generic one from the ptxdist directory.

config ROOTFS_GSHADOW
	bool
	default y
	prompt "install /etc/gshadow"
	help
	  If enabled, it installs the "./projectroot/etc/gshadow" file if
	  present, else a generic one from the ptxdist directory.

config ROOTFS_FSTAB
	bool
	default y
	prompt "install /etc/fstab"
	help
	  If enabled, it installs the "./projectroot/etc/fstab" file if
	  present, else a generic one from the ptxdist directory.

choice
	prompt "install /etc/mtab"
	default ROOTFS_MTAB_LINK_SELF_MOUNTS

	config ROOTFS_MTAB_FILE
		bool
		prompt "from file"
		help
		  If enabled, it installs the "./projectroot/etc/mtab" file if
		  present, else a generic one from the ptxdist directory.

	config ROOTFS_MTAB_LINK_MOUNTS
		bool
		prompt "link to /proc/mounts"
		help
		  If enabled, it installs /etc/mtab as a link to /proc/mounts

	config ROOTFS_MTAB_LINK_SELF_MOUNTS
		bool
		prompt "link to /proc/self/mounts"
		help
		  If enabled, it installs /etc/mtab as a link to /proc/self/mounts

	config ROOTFS_MTAB_LINK_VAR
		bool
		prompt "link to /var/tmp/mtab"
		help
		  If enabled, it installs /etc/mtab as a link to /var/tmp/mtab
endchoice

config ROOTFS_MTAB_LINK_VAR_FAKE_OVERLAYFS
	bool
	depends on ROOTFS_MTAB_LINK_VAR
	select FAKE_OVERLAYFS
	select FAKE_OVERLAYFS_VAR_TMP if !FAKE_OVERLAYFS_VAR
	prompt "use fake-overlayfs to create /var/tmp/mtab"

config ROOTFS_HOSTNAME
	bool
	default y
	prompt "install /etc/hostname"

config ROOTFS_ETC_HOSTNAME
	string
	prompt "hostname"
	default "${PTXCONF_PROJECT}"
	depends on ROOTFS_HOSTNAME

config ROOTFS_HOSTS
	bool
	prompt "install /etc/hosts"
	help
	  If enabled, it installs the "./projectroot/etc/hosts" file if
	  present, else a generic one from the ptxdist directory.

config ROOTFS_ISSUE
	bool
	prompt "install /etc/issue"
	default y
	help
	  If enabled, it installs the "./projectroot/etc/issue" file if
	  present, else a generic one will be generated using 'figlet'.

config ROOTFS_MODPROBE_CONF
	bool
	prompt "install /etc/modprobe.conf"
	help
	  If enabled, it installs the "./projectroot/etc/modprobe.conf" file if
	  present. Default options for kernel modules can be configured in that
	  file. It's read either in busybox modprobe or in the module-init-tools
	  modprobe implementation.

config ROOTFS_NSSWITCH_CONF
	bool
	default y
	prompt "install /etc/nsswitch.conf"
	help
	  If enabled, it installs the "./projectroot/etc/nsswitch.conf" file if
	  present, else a generic one from the ptxdist directory.

config ROOTFS_PROFILE
	bool
	default y
	prompt "install /etc/profile"
	help
	  If enabled, it installs "./projectroot/etc/profile" (for init-shells)
	  and "./projectroot/etc/profile.environment" (for sub-shells) files if
	  present, else generic ones from the ptxdist directory.

config ROOTFS_PROTOCOLS
	bool
	prompt "install /etc/protocols"
	help
	  If enabled, it installs the "./projectroot/etc/protocols" file if
	  present, else a generic one from the ptxdist directory.

choice
	prompt "install /etc/resolv.conf"
	default ROOTFS_RESOLV_FILE

	config ROOTFS_RESOLV_FILE
		bool
		prompt "from file"
		help
		  If enabled, it installs the "./projectroot/etc/resolv.conf" file if
		  present, else a generic one from the ptxdist directory.

	config ROOTFS_RESOLV_LINK
		bool
		prompt "link to /proc/net/pnp"
		help
		  If enabled, it installs /etc/resolv.conf as a link to /proc/net/pnp.

	config ROOTFS_RESOLV_RUN
		bool
		prompt "link to /run/resolv.conf"
		help
		  If enabled, it installs /etc/resolv.conf as a link to
		  /run/resolv.conf. This is useful if the root filesystem is mounted
		  read-only.

	config ROOTFS_RESOLV_SYSTEMD
		bool
		depends on SYSTEMD_NETWORK
		prompt "link to /run/systemd/resolve/resolv.conf"
		help
		  If enabled, it installs /etc/resolv.conf as a link to
		  /run/systemd/resolve/resolv.conf. This file is provided by
		  systemd-resolved and is filled with data from the systemd
		  managed interfaces.

	config ROOTFS_RESOLV_STATIC
		bool
		depends on SYSTEMD_NETWORK
		prompt "link to /usr/lib/systemd/resolv.conf"
		help
		  If enabled, it installs /etc/resolv.conf as a link to
		  /usr/lib/systemd/resolv.conf.
		  This static file is provided by systemd that lists
		  the 127.0.0.53 DNS stub as only DNS server.
		  This mode of operation is recommended by systemd.

	config ROOTFS_RESOLV_NONE
		bool
		prompt "none"
		help
		  If enabled, no /etc/resolv.conf will be install.
endchoice

config ROOTFS_SERVICES
	bool
	default y
	prompt "install /etc/services"
	help
	  If enabled, it installs the "./projectroot/etc/services" file if
	  present, else a generic one from the ptxdist directory.

choice
	prompt "install /init"
	default ROOTFS_INIT_NONE

	config ROOTFS_INIT_LINK
		bool
		prompt "link to /sbin/init"
		help
		  Create a symlink from /init to /sbin/init. This is useful for
		  initramfs for example in which /init is executed by default.

	config ROOTFS_INIT_BIN
		bool
		prompt "binary from file"
		help
		  Install the /init binary instead of a symlink to /sbin/init.

	config ROOTFS_INIT_NONE
		bool
		prompt "none"
		help
		  If enabled, no /init will be install.
endchoice

endmenu