add a new extlinux script to setup dtb handling on arm
This commit is contained in:
parent
114c6be3a7
commit
cddc13b5ad
|
@ -0,0 +1,66 @@
|
|||
#!/usr/bin/python2
|
||||
|
||||
# Copyright (C) 2015 Red Hat Inc.
|
||||
# Author(s): Dennis Gilmore <dennis@ausil.us>
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify it
|
||||
# under the terms of the GNU General Public License as published by the
|
||||
# Free Software Foundation; either version 2 of the License, or (at your
|
||||
# option) any later version. See http://www.gnu.org/copyleft/gpl.html for
|
||||
# the full text of the license.
|
||||
|
||||
|
||||
def is_calxeda():
|
||||
#is the system a calxeda one
|
||||
fd = open('/proc/cpuinfo','r')
|
||||
cpuinfo = fd.readlines()
|
||||
fd.close()
|
||||
for line in cpuinfo:
|
||||
if line.startswith('Hardware'):
|
||||
if line.split(' ')[1].startswith('Highbank'):
|
||||
return True
|
||||
if line.split(' ')[1].startswith('Midway'):
|
||||
return True
|
||||
return False
|
||||
|
||||
def update_sysconfig():
|
||||
'''
|
||||
update /etc/sysconfig/uboot to reflect if the platform provides its own dtb and
|
||||
we do not need to pass anything.
|
||||
'''
|
||||
configfile = '/etc/sysconfig/uboot'
|
||||
fd = open(configfile, 'r')
|
||||
uboot = fd.read()
|
||||
fd.close()
|
||||
newuboot = uboot.replace('#SHIPSDTB=no','SHIPSDTB=yes')
|
||||
fd = open(configfile, 'w')
|
||||
fd.write(newuboot)
|
||||
fd.close()
|
||||
|
||||
def insert_fdtdir():
|
||||
'''
|
||||
insert into /boot/extlinux/extlinux.conf a fdtdir line
|
||||
'''
|
||||
configfile = '/boot/extlinux/extlinux.conf'
|
||||
fd = open(configfile, 'r')
|
||||
extlinux = fd.readlines()
|
||||
fd.close()
|
||||
newextlinux = []
|
||||
fdtdirline = ''
|
||||
for line in extlinux:
|
||||
newextlinux.append(line)
|
||||
if line.startswith('\tkernel'):
|
||||
fdtdirline = line.replace('kernel','fdtdir').replace('vmlinuz', 'dtb')
|
||||
if line.startswith('\tappend'):
|
||||
newextlinux.append(fdtdirline)
|
||||
fd = open(configfile, 'w')
|
||||
fd.writelines(newextlinux)
|
||||
fd.close()
|
||||
|
||||
if __name__ == "__main__":
|
||||
# platform ships its own dtb
|
||||
if is_calxeda():
|
||||
update_sysconfig()
|
||||
else:
|
||||
# need to add fdtdir to extlinux.conf
|
||||
insert_fdtdir()
|
|
@ -1,10 +1,11 @@
|
|||
Name: extlinux-bootloader
|
||||
Version: 1.0
|
||||
Release: 5%{?dist}
|
||||
Version: 1.1
|
||||
Release: 1%{?dist}
|
||||
Summary: The EXTLINUX bootloader framework, for booting the local system
|
||||
|
||||
License: GPLv2+
|
||||
URL: http://fedoraproject.org/wiki/extlinux-bootloader
|
||||
Source1: extlinux
|
||||
|
||||
Provides: syslinux-extlinux
|
||||
|
||||
|
@ -26,14 +27,7 @@ mkdir -p %{buildroot}/boot/extlinux/
|
|||
|
||||
mkdir -p %{buildroot}/etc
|
||||
( cd %{buildroot}/etc && ln -s ../boot/extlinux/extlinux.conf . )
|
||||
cat > %{buildroot}%{_sbindir}/extlinux <<EOF
|
||||
#!/bin/bash
|
||||
# dummy script to allow anaconda code to call extlinux to install bootloader
|
||||
# needed to allow the same code used for anaconda to work everywhere
|
||||
true
|
||||
EOF
|
||||
chmod 755 %{buildroot}%{_sbindir}/extlinux
|
||||
|
||||
install -p %{SOURCE1} %{buildroot}%{_sbindir}
|
||||
|
||||
%files
|
||||
%doc
|
||||
|
@ -44,6 +38,9 @@ chmod 755 %{buildroot}%{_sbindir}/extlinux
|
|||
|
||||
|
||||
%changelog
|
||||
* Mon Mar 30 2015 Dennis Gilmore <dennis@ausil.us> - 1.1-1
|
||||
- add a new extlinux script to setup dtb handling on arm
|
||||
|
||||
* Sat Aug 16 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.0-5
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild
|
||||
|
||||
|
|
Loading…
Reference in New Issue