github.com/u-root/u-root@v7.0.1-0.20200915234505-ad7babab0a8e+incompatible/pkg/checker/dmesg.go (about) 1 // Copyright 2017-2019 the u-root Authors. All rights reserved 2 // Use of this source code is governed by a BSD-style 3 // license that can be found in the LICENSE file. 4 5 package checker 6 7 import ( 8 "strings" 9 10 "golang.org/x/sys/unix" 11 ) 12 13 func getDmesg() (string, error) { 14 b := make([]byte, 256*1024) 15 n, err := unix.Klogctl(unix.SYSLOG_ACTION_READ_ALL, b) 16 if err != nil { 17 return "", err 18 } 19 return string(b[:n]), nil 20 } 21 22 func grep(b, pattern string) []string { 23 lines := strings.Split(b, "\n") 24 ret := make([]string, 0) 25 for _, line := range lines { 26 if strings.Contains(line, pattern) { 27 ret = append(ret, line) 28 } 29 } 30 return ret 31 }