Merge "Change ginstall to not write bootloaders to older GFHD254s."
diff --git a/ginstall/ginstall.py b/ginstall/ginstall.py
index c53f1af..1d233c6 100755
--- a/ginstall/ginstall.py
+++ b/ginstall/ginstall.py
@@ -72,6 +72,7 @@
'SYSBLOCK': '/sys/block',
'MMCBLK0BOOT0': '/dev/mmcblk0boot0',
'MMCBLK0BOOT1': '/dev/mmcblk0boot1',
+ 'MEMINFO': '/proc/meminfo',
}
MMC_RO_LOCK = {
@@ -132,6 +133,16 @@
return open(F['ETCVERSION']).read().strip()
+def GetMemTotal():
+ total = open(F['MEMINFO']).readline()
+ total = total.split(' ')
+ total = filter(None, total)
+ if len(total) != 3:
+ print 'Error parsing /proc/meminfo'
+ return 0
+ return 1024 * int(total[1])
+
+
def GetInternalHarddisk():
for blkdev in sorted(glob.glob(F['SYSBLOCK'] + '/sd?')):
dev_path = os.path.realpath(blkdev + '/device')
@@ -760,6 +771,9 @@
Raises:
Fatal: if install fails
"""
+ if GetPlatform() == 'GFHD254' and GetMemTotal() < 4*1e9:
+ print 'Skipping bootloader on 2GB lockdown.'
+ return
loader_start = loader.filelike.tell()
installed = False
diff --git a/ginstall/ginstall_test.py b/ginstall/ginstall_test.py
index 928cf58..8deac64 100755
--- a/ginstall/ginstall_test.py
+++ b/ginstall/ginstall_test.py
@@ -357,5 +357,14 @@
return uloader, uloader_data
+ def testGetMemTotal(self):
+ ginstall.F['MEMINFO'] = 'testdata/proc/meminfo1'
+ total = ginstall.GetMemTotal()
+ self.assertTrue(total > 4*1e9)
+ ginstall.F['MEMINFO'] = 'testdata/proc/meminfo2'
+ total = ginstall.GetMemTotal()
+ self.assertTrue(total < 4*1e9)
+
+
if __name__ == '__main__':
unittest.main()
diff --git a/ginstall/testdata/proc/meminfo1 b/ginstall/testdata/proc/meminfo1
new file mode 100644
index 0000000..0a6b71a
--- /dev/null
+++ b/ginstall/testdata/proc/meminfo1
@@ -0,0 +1,40 @@
+MemTotal: 4144364 kB
+MemFree: 2207124 kB
+MemAvailable: 2654112 kB
+Buffers: 146000 kB
+Cached: 354176 kB
+SwapCached: 0 kB
+Active: 317572 kB
+Inactive: 438000 kB
+Active(anon): 255532 kB
+Inactive(anon): 35648 kB
+Active(file): 62040 kB
+Inactive(file): 402352 kB
+Unevictable: 0 kB
+Mlocked: 0 kB
+HighTotal: 3932160 kB
+HighFree: 2175912 kB
+LowTotal: 212204 kB
+LowFree: 31212 kB
+SwapTotal: 0 kB
+SwapFree: 0 kB
+Dirty: 0 kB
+Writeback: 0 kB
+AnonPages: 255416 kB
+Mapped: 81892 kB
+Shmem: 35788 kB
+Slab: 20328 kB
+SReclaimable: 10616 kB
+SUnreclaim: 9712 kB
+KernelStack: 2792 kB
+PageTables: 7436 kB
+NFS_Unstable: 0 kB
+Bounce: 0 kB
+WritebackTmp: 0 kB
+CommitLimit: 2072180 kB
+Committed_AS: 891408 kB
+VmallocTotal: 761856 kB
+VmallocUsed: 41868 kB
+VmallocChunk: 703484 kB
+CmaTotal: 2965504 kB
+CmaFree: 1427640 kB
diff --git a/ginstall/testdata/proc/meminfo2 b/ginstall/testdata/proc/meminfo2
new file mode 100644
index 0000000..cc3fab8
--- /dev/null
+++ b/ginstall/testdata/proc/meminfo2
@@ -0,0 +1,40 @@
+MemTotal: 2144364 kB
+MemFree: 2207200 kB
+MemAvailable: 2654188 kB
+Buffers: 146000 kB
+Cached: 354176 kB
+SwapCached: 0 kB
+Active: 317580 kB
+Inactive: 438000 kB
+Active(anon): 255540 kB
+Inactive(anon): 35648 kB
+Active(file): 62040 kB
+Inactive(file): 402352 kB
+Unevictable: 0 kB
+Mlocked: 0 kB
+HighTotal: 3932160 kB
+HighFree: 2175912 kB
+LowTotal: 212204 kB
+LowFree: 31288 kB
+SwapTotal: 0 kB
+SwapFree: 0 kB
+Dirty: 0 kB
+Writeback: 0 kB
+AnonPages: 255420 kB
+Mapped: 81892 kB
+Shmem: 35788 kB
+Slab: 20316 kB
+SReclaimable: 10616 kB
+SUnreclaim: 9700 kB
+KernelStack: 2792 kB
+PageTables: 7432 kB
+NFS_Unstable: 0 kB
+Bounce: 0 kB
+WritebackTmp: 0 kB
+CommitLimit: 2072180 kB
+Committed_AS: 891408 kB
+VmallocTotal: 761856 kB
+VmallocUsed: 41868 kB
+VmallocChunk: 703484 kB
+CmaTotal: 2965504 kB
+CmaFree: 1427540 kB