From 52a1e2932bcb83154ba66e0c1643160319450d37 Mon Sep 17 00:00:00 2001 From: Markus Zolliker Date: Mon, 7 Apr 2025 15:32:15 +0200 Subject: [PATCH] rpit/write_to: quit when no proposed disk is available --- README.md | 2 +- rpi/write_to | 47 ++++++++++++++++++++++++++--------------------- 2 files changed, 27 insertions(+), 22 deletions(-) diff --git a/README.md b/README.md index 9c4473c..88aa23a 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # Installation tools for APUs and Raspberry Pi boxes -Supports teh following boxes used at LIN sample environment: +Supports the following boxes used at LIN sample environment: - bare-apu: Linux box - controlbox: from FRM2 diff --git a/rpi/write_to b/rpi/write_to index 00e9ae5..b98dbe3 100755 --- a/rpi/write_to +++ b/rpi/write_to @@ -92,6 +92,7 @@ Example on Markus Mac: Please unpower the box with compute module, start this script again and put power immediately.""" + def write_image(kind): if kind == 'eemc': print("\nmake sure microUSB 'SLAVE' is connected to this computer") @@ -100,34 +101,38 @@ def write_image(kind): else: pass proposed = find_raspi(kind) - if not proposed and kind == 'emmc': - # we may install rpiboot here if not available - # git clone --depth=1 https://github.com/raspberrypi/usbboot - # cd usbboot - # make - # ./rpiboot + if not proposed: + if kind == 'emmc': + # we may install rpiboot here if not available + # git clone --depth=1 https://github.com/raspberrypi/usbboot + # cd usbboot + # make + # ./rpiboot - print('not found - put rpi in bootloader mode') - if not rpiboot() and not rpiboot(): - print(rescue) - return - for _ in range(10): - proposed = find_raspi(kind) - if proposed: - break - time.sleep(0.1) - else: - list_external() - print('can not find CM') - return + print('not found - put rpi in bootloader mode') + if not rpiboot() and not rpiboot(): + print(rescue) + return + for _ in range(10): + proposed = find_raspi(kind) + if proposed: + break + time.sleep(0.1) + else: + list_external() + print('can not find CM') + return list_external() - if len(proposed) > 1: + if len(proposed) == 1: + dev = proposed[0] + elif len(proposed) > 1: if kind == 'emmc': print('several potential devices for CM:', proposed) return dev = input('select device to write to {" ".join(proposed)}: ') else: - dev = proposed[0] + print('none of above disks seems to be the sd card') + return images = check_output(['sudo', '-u', 'zolliker', 'ssh', IMAGES_HOST, f'cd {IMAGES_DIR} ; ls {IMAGES_PAT}']).decode('latin-1').split('\n') for file in sorted(images): print(file)