Toegang tot en wijzigen van de bootloaderinstellingen

methode 1: via het wachtwoord

Je kunt jezelf toegang verschaffen tot de bootloader door het bootloader wachtwoord in te geven (via Ctrl+C, Ctrl+V, gewoon typen gaat te traag). Zodra toon opstart zie je in het putty scherm de output van het bootproces. Op enig moment volgt dan:

Enter password – autoboot in 2 sec.

Tot nu toe zijn twee bootloaderwachtwoorden gevonden, behorend bij twee versies van de bootloader. Deze versie wordt weergegeven bij het opstarten van toon:

U-Boot 2010.09-R6 (Mar 14 2012 – 11:15:10)

CPU: Freescale i.MX27 at 400.168 MHz
… etc.

De wachtwoorden zijn:

Bootloader versie wachtwoord

U-Boot 2010.09-R6 f4E9J
U-Boot 2010.09-R8 3BHf2

Het wachtwoord is hoofdlettergevoelig, dus bijvoorbeeld f is niet hetzelfde als F. Copy/paste het wachtwoord (met erachter) in de putty console zodra erom gevraagd wordt. Dit stopt de bootloader en presenteert de U-Boot prompt:

U-Boot>

Let op dat het wachtwoord niet zichtbaar is als je het ingeeft. Je ziet pas wat je intikt als U-Boot een seriele console voor je geopend heeft.

Als, om wat voor reden dan ook, je niet in staat bent om het wachtwoord in te geven, of je hebt een toon met een tot nu toe onbekend wachtwoord, dan kun je de bootloader onderbreken door de NAND chip kort te sluiten, of de bootloader software van toon dumpen (met behulp van JTAG hardware en -software). Zeker het laatste is nogal gedoe, ga ik hier niet op in.

methode 2: NAND chip tijdelijk kortsluiten

Je kunt in het boot-menu terecht komen door op het goede moment tijdens opstarten een paar verbindingen van de NAND chip kort te sluiten, met een klein metalen schroevendraaiertje. Op het moment dat “Checking crc” of woorden van die strekking in je putty console verschijnen, sluit je pin 8 en 9 (!CE en !RE, NOT chip enable en NOT read enable) kort. Dit geeft een zgn. crc error in de bootloader, die reageert met een interactieve prompt (om e.e.a. te kunnen verhelpen). Handig.

NB: De NAND chip is de enige Samsung chip op de printplaat.

Dichtgespijkerde versies van U-Boot

Vanaf begin 2016 wordt er een nieuwere versie van de bootloader op toon geinstalleerd. Deze geeft de volgende versieregel bij het opstarten:

U-Boot 2010.09-R10 (Dec 14 2015 – 19:28:18)

Deze versie vraagt ook om een wachtwoord, maar dat is onbekend en nogal wat beter versleuteld dan in vorige versies (SHA256 encryptie). Toons met een serienummer beginnend met 16 (en hoger waarschijnlijk) hebben deze versie.

Uit eerdere discussies met Quby volgde dat elke toon nu z’n eigen wachtwoord heeft (dus dikke kans dat het te maken heeft met de naam van je toon (eneco-001-xxxxxx), de MAC adressen, serienummers of andere individuele kenmerken van je toon). Leuke info, maar daar heben we dus niks aan.

De schroevendraaiermethode werkt bij deze toons ook niet, als je de bootloader onderbreekt krijg je het volgende:

———————————————————
Welcome to the bootloader, adventurous adventurer.

We congratulate you on your perseverance and inventivity!

Would you like an easier way in?
Please visit quby.com/open-system for more information.

Game on! 🙂
———————————————————

De link geeft je de mogelijkheid om Quby toon voor je te laten rooten, (waarschijnlijk gooien ze de VPN keys weg, en zetten ze de software in standalone mode). Heb ik geen ervaring mee. Als je dit niet wilt, rest als enige mogelijkheid om een ander bootloader te nemen, en die met JTAG hardware naar je toon te uploaden.

Benodigdheden, naast de eerder genoemde spullen

  1. JTAG interface. Ik gebruik een kloon JLink, gekocht op ebay voor $15,– of daaromtrent.
  2. Bekabeling voor de JTAG interface van toon. Zul je waarschijnlijk zelf moeten maken, zie hierboven voor pinbezetting.
  3. OpenOCD software, versie 0.9.0 of later. Hier op te halen: https://sourceforge.net/projects/openocd/files/openocd/ (en leer ermee werken!)
  4. Een telnet client.
  5. U-boot image en een toon configuratiefile, voor openocd. Te vinden in de downloads thread van dit forum.

Te verrichten handelingen

  1. Pak de bootloader en ed20.cfg file uit op een handige plek, bij elkaar.
  2. Koppel de JTAG interface en de seriele interface aan toon en je PC.
  3. Open een terminal programma voor je seriele interface, en eentje voor je telnet client.
  4. Start toon op.
  5. Open een root shell voor OpenOCD en start openocd: $ openocd -f -f ed20.cfg
  6. Open een telnet sessie om openocd aan te sturen: telnet localhost 4444
  7. Halt de processor, via het openocd commando soft_reset_halt:

> soft_reset_halt
requesting target halt and executing a soft reset
target halted in ARM state due to debug-request, current mode: Supervisor
cpsr: 0x000000d3 pc: 0x00000000
MMU: disabled, D-Cache: disabled, I-Cache: disabled

7a: Als je een raspberry pi als JTAG interface gebruikt, voer dan ook nog uit:

> reset halt

Dit stopt de processor bij deze JTAG hardware.

8: Upload het u-boot image naar toon’s geheugen. Het upload adres is 0xa1f00000:

> load_image u-boot.bin 0xa1f00000
166504 bytes written at address 0xa1f00000
downloaded 166504 bytes in 2.548540s (63.802 KiB/s)

9: Herstart de processor op het u-boot upload adres:

> resume 0xa1f00000

Dit resulteert in een reboot, en geeft de mogelijkheid om de bootloader te onderbreken.

10: Knip/plak het wachtwoord (toon + ) in de seriele terminal. Dit stopt de bootloader en geeft de u-boot prompt:

U-Boot>

Ik zou het bijna vergeten: Game over … (voorlopig, dan toch 😉 )

Voor Mensen die een raspberry pi 2 of 3 willen gebruiken voor de JTAG procedure heeft rboers een zeer gedetailleerde beschrijving gemaakt. Die is hier te vinden: https://www.domoticaforum.eu/viewtopic.php?f=87&t=11230&start=210#p83745

 

Door naar stap 5: U-boot environment aanpassen

Terug naar stap 3: Toon openmaken en de seriele kabel aansluiten

3 gedachten over “Toegang tot en wijzigen van de bootloaderinstellingen

Geef een antwoord

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *