75 Commits

Author SHA1 Message Date
Jeffrey Townsend
cd4d013a69 Custom init scripts can now be added to /etc/sysinit.d for execution prior autoboot. 2019-02-17 18:36:22 +00:00
Jeffrey Townsend
311b1c7b08 Merge pull request #478 from OrdnanceNetworks/fix-low-entrypy-at-boot
ordnance: Initialize Linux Random Number Generator (RNG) early
2018-12-26 09:15:38 -08:00
Jeffrey Townsend
96a697bdcc Tool updates to support armhf. 2018-12-25 15:42:07 +00:00
Sergey Popovich
e12e40f335 ordnance: Initialize Linux Random Number Generator (RNG) early
We start using Linux RNG from initrd with low entropy pools and random
data quality might not be good. Kernel warns us about the problem with
following messages in dmesg(1):

  [    4.786307] random: onl-mounts: uninitialized urandom read (16 bytes read, 46 bits of entropy available)
  [    5.307536] random: onl-mounts: uninitialized urandom read (16 bytes read, 83 bits of entropy available)
  [    5.354480] random: blkid: uninitialized urandom read (6 bytes read, 89 bits of entropy available)
  [    5.366963] random: blkid: uninitialized urandom read (6 bytes read, 90 bits of entropy available)
  [    5.379385] random: blkid: uninitialized urandom read (6 bytes read, 90 bits of entropy available)
  [    5.391910] random: blkid: uninitialized urandom read (6 bytes read, 90 bits of entropy available)
  [    5.546389] random: onl-pki: uninitialized urandom read (16 bytes read, 96 bits of entropy available)
  [    8.881398] random: mktemp: uninitialized urandom read (6 bytes read, 109 bits of entropy available)
  [    9.026771] random: swiget: uninitialized urandom read (16 bytes read, 109 bits of entropy available)

Since main rootfs isn't mounted we can't load entropy saved from
previous runtime by systemd-random-seed (for systemd) and
/etc/init.d/urandom (for sysvinit).

Moreover even if we able to load this data, direct write to /dev/urandom
or /dev/random does not change entropy count according to random(4) man
page and /proc/sys/kernel/random/entropy_avail contents after loading
data to /dev/urandom or /dev/random.

To address this we should generate pseudo random data suitable for use
as RNG seed based on frequently changed information in system and use
some cryptographic grade hash to hide this info from RNG.

Use MIT licensed initrng.py Python implementation for Linux RNG early
init to seed RNG before executing onl-mounts and other stuff from early
userspace in initramfs.

Signed-off-by: Sergey Popovich <sergey.popovich@ordnance.co>
2018-11-07 08:16:27 +02:00
Sergey Popovich
e2c1fcc335 initrds: ifup: Move NETRETRIES handling to "dhcp" code path
This variable is only required and used for dynamic network configs:
validating and configuring it for rest of the paths isn't necessary.

While there split warning message to two lines to make code and
runtime output more readable.

Signed-off-by: Sergey Popovich <sergey.popovich@ordnance.co>
2018-09-26 11:08:15 +03:00
Sergey Popovich
cdad662745 initrds: ifup: Do not apply any config if NETAUTO=none
There are three types of value accepted by NETAUTO:

    1) "dhcp" for automatic network settings via DHCP
    2) "up" to bring link up, wait for IPv6 tentative and link up
       operstate
    3) anything else: apply static configuration, wait for IPv6
       tentative and link up operstate

Note that empty ("") value is subset of 3) and we only skip link up
operstate monitoring for it since commit 3e89468cd0
("Don't require link-up on ma1 if NETAUTO is not specified.").

Add fourth case with NETAUTO=none to skip all but NETHW (hardware
address) from boot-config file and support different management
adapter config methods (e.g. Debian network config system).

This also fixes incorrect "return" statement usage outside of function
introduced with commit 3e89468cd0
("Don't require link-up on ma1 if NETAUTO is not specified.") and adds
newline before wait_link_up() to make code more readable.

Signed-off-by: Sergey Popovich <sergey.popovich@ordnance.co>
2018-09-26 11:08:15 +03:00
Wataru Ishida
a681cf6c81 Support building systemd based system
Signed-off-by: Wataru Ishida <ishida@nel-america.com>
2018-05-31 19:41:23 -07:00
Carl D. Roth
d39868c23b load the efivarfs module if possible 2018-05-02 16:38:14 -07:00
Jeffrey Townsend
0d96386d95 Merge pull request #315 from DeltaProducts/ag6248-feb-12
add platform support for ag6248c and ag6248c_poe
2018-04-04 08:35:14 -07:00
Jeffrey Townsend
41bf6970e5 Add option for local script execution during autoboot. 2018-04-02 18:54:54 +00:00
shaohua.xiong
65cd247a0a add platform support for ag6248c and ag6248c_poe 2018-02-23 16:25:05 +08:00
Carl D. Roth
e8fb96d1ff Support local file paths with colons 2018-02-02 19:28:34 -08:00
Carl D. Roth
32a1e64c4b Move ESP to standard location 2017-08-25 10:51:32 -07:00
Carl D. Roth
639ab22ce7 Merge branch 'master' of github.com:opencomputeproject/OpenNetworkLinux into roth_uefi 2017-08-24 17:31:25 -07:00
Jeffrey Townsend
3e89468cd0 Don't require link-up on ma1 if NETAUTO is not specified. 2017-08-17 22:47:54 +00:00
Carl D. Roth
94a3f32ee1 Merge branch 'master' of github.com:opencomputeproject/OpenNetworkLinux into roth_uefi 2017-08-14 15:04:15 -07:00
Carl D. Roth
a57d222661 Mount efivarfs in loader and propagate it to the SWI 2017-08-07 18:16:23 -07:00
Carl D. Roth
15efbdc540 Add EFI-BOOT mount point
- optional
- depend on hokey "EFI System" GPT label, YMMV
- *TODO* use proper GPT UUID matching
2017-08-07 18:16:16 -07:00
Carl D. Roth
c0b3bd68ac Pick the largest squashfs 2017-07-27 16:54:16 -07:00
Carl D. Roth
ec14deed3d Merge branch 'master' of github.com:opencomputeproject/OpenNetworkLinux
Conflicts:
	packages/base/all/initrds/loader-initrd-files/src/bin/swiprep
2017-07-27 15:54:50 -07:00
Carl D. Roth
14517423b2 Handler larger SWI files
- download SWI to a 1GiB tmpfs
- determine of the embedded squashfs will fit in the tmpfs
- resize the tmpfs if necessary
2017-07-27 14:51:30 -07:00
Carl D. Roth
eea0a9b161 Better handling for failed unzip (like, for disk full) 2017-07-27 14:07:57 -07:00
Jeffrey Townsend
05165f61ea - Place DHCP options in /var/run/udhcpc
- Request default-url and siaddr.
2017-07-19 17:57:32 +00:00
Jeffrey Townsend
725f3171fa Improve SWI handling for reduced processor/memory environments.
- Increase SWI bootmode timeout
- Unzip the rootfs directly into the target directory instead of through a pipe.
2017-05-26 16:02:07 +00:00
Jeffrey Townsend
00ddfde529 Do not bring the interface down during setup. 2017-04-13 23:49:36 +00:00
Sung-Kuang (Max) Chung
1a90e3c514 Added community support email opennetworklinux@googlegroups.com,
as support@bigswitch.com "is a support line for commercial Big Switch
products for customer with paid licenses."
2016-12-07 21:56:03 -08:00
Jeffrey Townsend
eca7a60349 Recover default boot-config into /mnt/onl/boot. 2016-11-09 21:45:37 +00:00
Carl D. Roth
19d19ef51c Fix swiget for if SWI is missing 2016-11-07 13:12:54 -08:00
Jeffrey Townsend
820cc3d973 - DHCP Timeout support in the Loader environment
When $NETAUTO=dhcp the transaction will now timeout after $NETRETRIES attempts.
  If the system has a local install or SWI then booting can continue.

  For systems which require DHCP to be functional before booting can continue
  (for example SWIs downloaded via URL rather than locally) then NETRETRIES=infinite should be set in the boot-config.

  NETRETRIES can be set to any number of attempts, or infinite. The default value is 5 attempts.

- Wait for ma1 linkup in the loader
  A short wait has been introduced to allow ma1 to linkup prior to continuing.
2016-10-26 12:39:26 -07:00
Jeffrey Townsend
43c30cf187 The onl-pki script has moved. 2016-10-26 12:35:12 -07:00
Shengzhou Liu
479247cf7c Add arm64 support for initrds and buildroot 2016-08-17 00:57:17 +08:00
Jeffrey Townsend
f7bb2a4e50 Deprecated. 2016-07-29 15:30:10 -07:00
Jeffrey Townsend
d23e8e1ace Full path must be used. 2016-07-29 15:29:47 -07:00
Carl D. Roth
50f43798e9 Merge branch 'master' of github.com:opencomputeproject/OpenNetworkLinux
Conflicts:
	builds/any/installer/grub/builds/Makefile
	builds/any/installer/uboot/builds/Makefile
	packages/base/all/initrds/loader-initrd-files/src/lib/boot1
	packages/base/all/vendor-config-onl/PKG.yml
	packages/base/all/vendor-config-onl/src/python/onl/mounts/__init__.py
2016-07-21 12:39:10 -07:00
Jeffrey Townsend
5ac829e85f Don't copy the local sysconfig directory. 2016-06-08 11:36:09 -07:00
Jeffrey Townsend
e6e16a5f48 Now provided by sysconfig. 2016-06-08 17:40:04 +00:00
Carl D. Roth
05561cd482 Record SWI data before switchroot
- also update version location(s)
2016-06-01 18:49:20 -07:00
Carl D. Roth
6bd030c898 Record SWI data before booting 2016-06-01 18:48:52 -07:00
Carl D. Roth
dbc63575e7 Update swiprep version locations, add --record option 2016-06-01 18:48:35 -07:00
Carl D. Roth
35db5ffb43 Better implementation of 'latest'
- swi file timestamp is unreliable if clock is not set correctly
- extract build timestamp from manifest if available
- extract timestamp-ish string from 'version' file or from swi filename
2016-05-27 13:06:14 -07:00
Carl D. Roth
b21007c70a Install manifest.json if available
- Hurr, fix unzip arguments
- put manifest and/or version at root level too
2016-05-27 13:02:53 -07:00
Jeffrey Townsend
09d6ba8cae - initmounts -> onl-mounts
- pki -> onl-pki
2016-05-27 19:38:48 +00:00
Carl D. Roth
9194aff9da Don't install an empty version file 2016-05-27 11:36:44 -07:00
Carl D. Roth
c4669a6dc0 Merge branch 'master' of github.com:opencomputeproject/OpenNetworkLinux
Conflicts:
	builds/amd64/installer/legacy/builds/Makefile
	builds/any/installer/grub/builds/Makefile
	builds/any/installer/legacy/fit/builds/Makefile
	builds/any/installer/uboot/builds/Makefile
	packages/base/all/initrds/loader-initrd-files/PKG.yml
	packages/platforms-closed
2016-05-26 14:42:37 -07:00
Carl D. Roth
e17ea293e2 Refactor boot, boot1, implement directory-based installs 2016-05-26 14:06:00 -07:00
Carl D. Roth
c2e6da45a4 Factored out swi unpack/mount/overlay stuffs 2016-05-26 14:03:50 -07:00
Carl D. Roth
8041b7bf7c Deprecate initnetdev
- moved to onl-vendor-config-onl
- onl-loader-initscripts is now deprecated
2016-05-25 11:48:34 -07:00
Carl D. Roth
dbb2989314 Refactor to use swiget and swimount
- working (almost) support for persistent installs
2016-05-25 11:13:46 -07:00
Carl D. Roth
168495e04b Move 'latest' SWI calculation into swiget 2016-05-25 11:13:46 -07:00
Carl D. Roth
6a17f71234 Factor out the SWI retrieval and directory mounting 2016-05-25 11:13:45 -07:00