mirror of https://github.com/kidoman/embd
Corrected location for bbb Capemgr slots file
for Kernel versions 4 and above
This commit is contained in:
parent
adc3d47305
commit
d14f3923ee
|
@ -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