Compare commits
3 Commits
Author | SHA1 | Date | |
---|---|---|---|
|
4b8a0a0d18 | ||
|
338c89504f | ||
|
c07eafd087 |
53
main.go
53
main.go
@@ -71,6 +71,14 @@ func main() {
|
|||||||
log.Fatal("generateInitfsExtra: ", err)
|
log.Fatal("generateInitfsExtra: ", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if err := copyUbootFiles(workDir, devinfo); errors.Is(err, os.ErrNotExist) {
|
||||||
|
log.Println("u-boot files copying skipped: ", err)
|
||||||
|
} else {
|
||||||
|
if err != nil {
|
||||||
|
log.Fatal("copyUbootFiles: ", err)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// Final processing of initramfs / kernel is done by boot-deploy
|
// Final processing of initramfs / kernel is done by boot-deploy
|
||||||
if err := bootDeploy(workDir, *outDir); err != nil {
|
if err := bootDeploy(workDir, *outDir); err != nil {
|
||||||
log.Fatal("bootDeploy: ", err)
|
log.Fatal("bootDeploy: ", err)
|
||||||
@@ -409,6 +417,7 @@ func getInitfsExtraFiles(files misc.StringSet, devinfo deviceinfo.DeviceInfo) er
|
|||||||
log.Println("== Generating initramfs extra ==")
|
log.Println("== Generating initramfs extra ==")
|
||||||
binariesExtra := misc.StringSet{
|
binariesExtra := misc.StringSet{
|
||||||
"/lib/libz.so.1": false,
|
"/lib/libz.so.1": false,
|
||||||
|
"/sbin/btrfs": false,
|
||||||
"/sbin/dmsetup": false,
|
"/sbin/dmsetup": false,
|
||||||
"/sbin/e2fsck": false,
|
"/sbin/e2fsck": false,
|
||||||
"/usr/sbin/parted": false,
|
"/usr/sbin/parted": false,
|
||||||
@@ -566,6 +575,50 @@ func getKernelVersion() (string, error) {
|
|||||||
return strings.TrimSpace(string(contents)), nil
|
return strings.TrimSpace(string(contents)), nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func Copy(srcFile, dstFile string) error {
|
||||||
|
out, err := os.Create(dstFile)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
defer out.Close()
|
||||||
|
|
||||||
|
in, err := os.Open(srcFile)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
defer in.Close()
|
||||||
|
|
||||||
|
_, err = io.Copy(out, in)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func copyUbootFiles(path string, devinfo deviceinfo.DeviceInfo) error {
|
||||||
|
if devinfo.UbootBoardname == "" {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
srcDir := filepath.Join("/usr/share/u-boot", devinfo.UbootBoardname)
|
||||||
|
entries, err := ioutil.ReadDir(srcDir)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
for _, entry := range entries {
|
||||||
|
sourcePath := filepath.Join(srcDir, entry.Name())
|
||||||
|
destPath := filepath.Join(path, entry.Name())
|
||||||
|
|
||||||
|
if err := Copy(sourcePath, destPath); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
func generateInitfs(name string, path string, kernVer string, devinfo deviceinfo.DeviceInfo) error {
|
func generateInitfs(name string, path string, kernVer string, devinfo deviceinfo.DeviceInfo) error {
|
||||||
initfsArchive, err := archive.New()
|
initfsArchive, err := archive.New()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
@@ -16,6 +16,7 @@ import (
|
|||||||
type DeviceInfo struct {
|
type DeviceInfo struct {
|
||||||
AppendDtb string
|
AppendDtb string
|
||||||
Arch string
|
Arch string
|
||||||
|
UbootBoardname string
|
||||||
BootimgAppendSEAndroidEnforce string
|
BootimgAppendSEAndroidEnforce string
|
||||||
BootimgBlobpack string
|
BootimgBlobpack string
|
||||||
BootimgDtbSecond string
|
BootimgDtbSecond string
|
||||||
|
Reference in New Issue
Block a user