diff --git a/extlinux b/extlinux new file mode 100755 index 0000000..a52ef36 --- /dev/null +++ b/extlinux @@ -0,0 +1,66 @@ +#!/usr/bin/python2 + +# Copyright (C) 2015 Red Hat Inc. +# Author(s): Dennis Gilmore +# +# 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() diff --git a/extlinux-bootloader.spec b/extlinux-bootloader.spec index 4b3d517..e347fe5 100644 --- a/extlinux-bootloader.spec +++ b/extlinux-bootloader.spec @@ -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 < - 1.1-1 +- add a new extlinux script to setup dtb handling on arm + * Sat Aug 16 2014 Fedora Release Engineering - 1.0-5 - Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild