mirror of https://github.com/kidoman/embd
Merge d14f3923ee
into d3d8c0c5c6
This commit is contained in:
commit
9ee7fb8b8e
|
@ -67,7 +67,7 @@ func parseVersion(str string) (major, minor, patch int, err error) {
|
|||
return major, minor, patch, err
|
||||
}
|
||||
|
||||
func kernelVersion() (major, minor, patch int, err error) {
|
||||
func KernelVersion() (major, minor, patch int, err error) {
|
||||
output, err := execOutput("uname", "-r")
|
||||
if err != nil {
|
||||
return 0, 0, 0, err
|
||||
|
@ -105,7 +105,7 @@ func cpuInfo() (model, hardware string, revision int, err error) {
|
|||
|
||||
// DetectHost returns the detected host and its revision number.
|
||||
func DetectHost() (host Host, rev int, err error) {
|
||||
major, minor, patch, err := kernelVersion()
|
||||
major, minor, patch, err := KernelVersion()
|
||||
if err != nil {
|
||||
return HostNull, 0, err
|
||||
}
|
||||
|
|
|
@ -14,7 +14,6 @@ import (
|
|||
"io/ioutil"
|
||||
"os"
|
||||
"strings"
|
||||
|
||||
"github.com/golang/glog"
|
||||
"github.com/kidoman/embd"
|
||||
"github.com/kidoman/embd/host/generic"
|
||||
|
@ -99,12 +98,12 @@ var spiDeviceMinor int = 1
|
|||
|
||||
func ensureFeatureEnabled(id string) error {
|
||||
glog.V(3).Infof("bbb: enabling feature %v", id)
|
||||
pattern := "/sys/devices/bone_capemgr.*/slots"
|
||||
file, err := embd.FindFirstMatchingFile(pattern)
|
||||
|
||||
slotsFile, err := slotsFilename()
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
bytes, err := ioutil.ReadFile(file)
|
||||
bytes, err := ioutil.ReadFile(slotsFile)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
@ -113,7 +112,7 @@ func ensureFeatureEnabled(id string) error {
|
|||
glog.V(3).Infof("bbb: feature %v already enabled", id)
|
||||
return nil
|
||||
}
|
||||
slots, err := os.OpenFile(file, os.O_WRONLY, os.ModeExclusive)
|
||||
slots, err := os.OpenFile(slotsFile, os.O_WRONLY, os.ModeExclusive)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
@ -128,12 +127,12 @@ func ensureFeatureEnabled(id string) error {
|
|||
// potentially cause a kernel panic and unsettle things. So the
|
||||
// recommended thing to do is to simply reboot.
|
||||
func ensureFeatureDisabled(id string) error {
|
||||
pattern := "/sys/devices/bone_capemgr.*/slots"
|
||||
file, err := embd.FindFirstMatchingFile(pattern)
|
||||
|
||||
slotsFile, err := slotsFilename()
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
slots, err := os.OpenFile(file, os.O_RDWR, os.ModeExclusive)
|
||||
slots, err := os.OpenFile(slotsFile, os.O_RDWR, os.ModeExclusive)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
@ -184,3 +183,20 @@ func init() {
|
|||
}
|
||||
})
|
||||
}
|
||||
// slotsFilename returns the full path and filename of the Capemgr slots file
|
||||
func slotsFilename() (filename string, err error) {
|
||||
major, _, _, err := embd.KernelVersion()
|
||||
if err != nil {
|
||||
return "", err
|
||||
}
|
||||
if major > 3 {
|
||||
filename = "/sys/devices/platform/bone_capemgr/slots"
|
||||
} else {
|
||||
pattern := "/sys/devices/bone_capemgr.*/slots"
|
||||
filename, err = embd.FindFirstMatchingFile(pattern)
|
||||
if err != nil {
|
||||
return "", err
|
||||
}
|
||||
}
|
||||
return filename, err
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue