mirror of
https://github.com/siderolabs/talos.git
synced 2025-08-26 17:11:19 +02:00
This change aims to standardize the boot process. It introduces the concept of a phase, which is comprised of tasks. Phases are ran in serial and the tasks that make up a phase are ran concurrently. Signed-off-by: Andrew Rynhard <andrew@andrewrynhard.com>
28 lines
696 B
Go
28 lines
696 B
Go
/* This Source Code Form is subject to the terms of the Mozilla Public
|
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
|
|
|
package kmsg
|
|
|
|
import (
|
|
"log"
|
|
"os"
|
|
|
|
"github.com/pkg/errors"
|
|
"golang.org/x/sys/unix"
|
|
)
|
|
|
|
// Setup configures the log package to write to the kernel ring buffer via
|
|
// /dev/kmsg.
|
|
func Setup(prefix string) (*os.File, error) {
|
|
out, err := os.OpenFile("/dev/kmsg", os.O_RDWR|unix.O_CLOEXEC|unix.O_NONBLOCK|unix.O_NOCTTY, 0666)
|
|
if err != nil {
|
|
return nil, errors.Wrap(err, "failed to open /dev/kmsg")
|
|
}
|
|
log.SetOutput(out)
|
|
log.SetPrefix(prefix + " ")
|
|
log.SetFlags(0)
|
|
|
|
return out, nil
|
|
}
|