TXT von SD-Karte booten

Alles rund um TX(T) und RoboPro, mit ft-Hard- und Software
Computing using original ft hard- and software
Forumsregeln
Bitte beachte die Forumsregeln!
Benutzeravatar
Defiant
Beiträge: 409
Registriert: 31 Okt 2010, 21:42
Wohnort: Narn Homeworld
Kontaktdaten:

Re: TXT von SD-Karte booten? Ja geht!

Beitrag von Defiant » 16 Feb 2016, 08:39

richard.kunze hat geschrieben: Kann ich den Zustand der SYSBOOT-Pins per Software auslesen, oder muss ich den TXT dafür zerlegen und auf dem Board auf die Suche gehen?
Nach dem TRM vom AM335x werden die Werte in das CONTROL_STATUS Register geschrieben (Tabelle 26-7), sollte Adresse 0x44E1 0040 sein (Table 2-2 und 9-10), lässt sich unter Linux über die Datei /dev/mem lesen
Der Inhalt dieses Register sollte alle Bootmöglichkeiten verraten.
"Propaganda does not deceive people; it merely helps them to deceive themselves."
E Hoffer

Benutzeravatar
ski7777
Administrator
Beiträge: 915
Registriert: 22 Feb 2014, 14:18
Wohnort: Saarwellingen

Re: TXT von SD-Karte booten? Ja geht!

Beitrag von ski7777 » 16 Feb 2016, 12:07

Hallo,

ich hab auf dem IRC-Server mal einen Chanel TXTos angelegt.

Raphael

Benutzeravatar
MasterOfGizmo
Beiträge: 2727
Registriert: 30 Nov 2014, 07:44

Re: TXT von SD-Karte booten? Ja geht!

Beitrag von MasterOfGizmo » 16 Feb 2016, 15:29

Defiant hat geschrieben:lässt sich unter Linux über die Datei /dev/mem lesen
Und das kann an mit dem Programm devmem2 sogar recht einfach. Devmem2 ist m.E. beim TXT dabei.
Arduino für fischertechnik: ftDuino http://ftduino.de

richard.kunze
Beiträge: 583
Registriert: 26 Dez 2015, 23:49
Wohnort: Rhein-Main-Gebiet

Re: TXT von SD-Karte booten

Beitrag von richard.kunze » 16 Feb 2016, 20:30

Defiant hat geschrieben:Nach dem TRM vom AM335x werden die Werte in das CONTROL_STATUS Register geschrieben (Tabelle 26-7), sollte Adresse 0x44E1 0040 sein (Table 2-2 und 9-10)
Danke!

Dann mal nachsehen:

Code: Alles auswählen

# devmem 0x44e10040
0x00400333
In Binär und nach Tabelle portioniert:

Code: Alles auswählen

 3           2              1
10987654 32 10 98 7 6 54321 098 76543210
00000000 01 00 00 0 0 00000 011 00110011
... weiter aufgedröselt (nach Tabelle 9-10 und 26-7)...

Code: Alles auswählen

sysboot1 = 01 (24 MHz)
testmd   = 00 (fix)
admux    = 00 (No Addr/Data Muxing)
waiten   = 0  (Ignore WAIT input)
bw       = 0  (8-bit data bus)
devtype  = 011 (General Purpose Device)
sysboot0 = 00110011 
sieht plausibel aus und ergibt als Bootreihenfolge

NAND NANDI2C MMC0 UART0

Mist. Wäre zu schön gewesen.

... und zuguterletzt als Referenz und damit es nicht verlorengeht: Das ominöse "TRM" ist das "Technical Reference Manual" für den im TXT verbauten SOC ("System on a Chip") und findet sich hier: http://www.ti.com/lit/ug/spruh73m/spruh73m.pdf

Benutzeravatar
MasterOfGizmo
Beiträge: 2727
Registriert: 30 Nov 2014, 07:44

Re: TXT von SD-Karte booten

Beitrag von MasterOfGizmo » 16 Feb 2016, 21:17

Naja, so schlimm finde ich es nicht, dass der UBoot aus dem Flash kommen muss ...

Hat ,al jemand den dhcpcd auf dem TXT dazu gebracht, die resolv.conf zu aktualisieren? Bei mir fasst er die Datei nicht an. Obwohl ich keine der Optionen sehe, die ihm das normalerweise ausreden ...
Arduino für fischertechnik: ftDuino http://ftduino.de

richard.kunze
Beiträge: 583
Registriert: 26 Dez 2015, 23:49
Wohnort: Rhein-Main-Gebiet

Re: TXT von SD-Karte booten

Beitrag von richard.kunze » 16 Feb 2016, 21:54

MasterOfGizmo hat geschrieben:Naja, so schlimm finde ich es nicht, dass der UBoot aus dem Flash kommen muss ...
Nö, prinzipiell ist da nix Schlimmes dran.

Aber wenn die Bootreihenfolge anders gewesen wäre, dann hätten wir eine SD-Karte basteln können von der der TXT ohne irgendwelche Eingriffe direkt bootet...

richard.kunze
Beiträge: 583
Registriert: 26 Dez 2015, 23:49
Wohnort: Rhein-Main-Gebiet

Re: TXT von SD-Karte booten

Beitrag von richard.kunze » 16 Feb 2016, 22:12

MasterOfGizmo hat geschrieben:Hat mal jemand den dhcpcd auf dem TXT dazu gebracht, die resolv.conf zu aktualisieren? Bei mir fasst er die Datei nicht an. Obwohl ich keine der Optionen sehe, die ihm das normalerweise ausreden ...
Hmmm - wenn ich das richtig im Kopf hab, dann macht das bei dhcpcd normalerweise ein Hook-Script.

Die sonst üblicherweise mitgelieferten Scripte sind aber auf dem TXT nicht mit bei - für meine eigenen Experimente neulich musste ich mir auch selbst eins zusammenhacken, das wpa_supplicant anwirft.
Zuletzt geändert von richard.kunze am 16 Feb 2016, 23:44, insgesamt 1-mal geändert.

Benutzeravatar
MasterOfGizmo
Beiträge: 2727
Registriert: 30 Nov 2014, 07:44

Re: TXT von SD-Karte booten

Beitrag von MasterOfGizmo » 16 Feb 2016, 22:55

WPA_supplicant starte ich aus der interfaces per pre-up. Aber es per dhcpcd zu starten klingt gut.

Die hooks habe ich mir nicht angeschaut. Aber stimmt, da man das normalerweise per no-hook unterdrückt wird das wohl ein hook sein. Danke.
Arduino für fischertechnik: ftDuino http://ftduino.de

richard.kunze
Beiträge: 583
Registriert: 26 Dez 2015, 23:49
Wohnort: Rhein-Main-Gebiet

Re: TXT von SD-Karte booten

Beitrag von richard.kunze » 16 Feb 2016, 23:07

MasterOfGizmo hat geschrieben:WPA_supplicant starte ich aus der interfaces per pre-up.
Ja, das geht auch. Hat aber den Nachteil, dass wpa_supplicant irgendwann aufgibt und sich beendet wenn es kein Netz findet.

Wenn Du wpa_supplicant über dhcpcd startest, dann wirft der das einfach neu an (Zumindest wenn Du dhcpcd selbst mitr "-b" startest - sonst gibt der ebenfalls auf wenn er kein funktionierendes Netz sieht). Andersrum musst Du dich da selbst drum kümmern.

Benutzeravatar
ski7777
Administrator
Beiträge: 915
Registriert: 22 Feb 2014, 14:18
Wohnort: Saarwellingen

Re: TXT von SD-Karte booten

Beitrag von ski7777 » 17 Feb 2016, 06:29

Hallo,

mich würde mal noch interessieren, wie ihr updates bereitstellen wollt?

Code: Alles auswählen

apt-get update && apt-ger -y updrage
ist sicher schnell per web-ui ausgeführt, aber wie kommt der community-Teil auf den TXT, wenn updates verfügbar sind?

Meine Idee:
Man könnte alles als apt Paket installieren und die ftc server als Paket Quelle nutzen.

Raphael

richard.kunze
Beiträge: 583
Registriert: 26 Dez 2015, 23:49
Wohnort: Rhein-Main-Gebiet

Re: TXT von SD-Karte booten

Beitrag von richard.kunze » 17 Feb 2016, 10:54

richard.kunze hat geschrieben:Die sonst üblicherweise mitgelieferten Scripte sind aber auf dem TXT nicht mit bei - für meine eigenen Experimente neulich musste ich mir auch selbst eins zusammenhacken, das wpa_supplicant anwirft.
... und hier ist das Ergebnis - vielleicht kann ja wer was mit anfangen:

Startscript. Liegt beim mir auf der SD-Karte unter /mnt/wlan-client/wlan-client und ist nach /etc/init.d/S99_wlan_client verlinkt damit es beim Booten automatisch startet:

Code: Alles auswählen

#!/bin/sh
#
# Start wpa_supplicant and dhcpcd for wlan0
#
BASE_PATH="/mnt/wlan-client"
PATH=/bin/:/sbin/:/usr/bin/:/usr/sbin/

case "$1" in
  start)
 	echo "Starting dhcpcd for wlan0..."
	 dhcpcd -b -c "$BASE_PATH/dhcpcd-hook.sh" wlan0
	;;
  stop)
	echo -n "Stopping dhcpcd..."
	dhcpcd -x wlan0
	;;
  restart|reload)
	"$0" stop
	"$0" start
	;;
  *)
	echo "Usage: $0 {start|stop|restart}"
	exit 1
esac

exit $?
Hook-Script für dhcpcd. Kümmert sich um wpa_supplicant und resolv.conf (die liegt auf dem TXT unter /tmp, /etc/resolv.conf ist nur ein Symlink). Gehört nach $BASE_PATH/dhcpcd-hook.sh

Code: Alles auswählen

#!/bin/sh

BASE_PATH="/mnt/wlan-client"

case "$reason" in
    NOCARRIER)
        # Check if wpa_supplicant is already running and exit if yes
        wpa_cli status >/dev/null 2>&1 && exit 0
        wpa_supplicant -iwlan0 -B -c "$BASE_PATH/wpa_supplicant.conf" 
        ;;
   STOPPED)
        wpa_cli terminate
        ;;
   BOUND|REBIND|REBOOT)
        rm -f /tmp/resolv.conf
        if [ -n "$new_domain_name_servers" ] ; then
            for server in $new_domain_name_servers; do 
                echo "nameserver $server" >> /tmp/resolv.conf
            done
        fi
        ;;   
esac
... und schliesslich noch die Konfiguration für wpa_supplicant (bereinigt um die echten Login-Informationen). Gehört nach $BASE_PATH/wpa_supplicant.conf

Code: Alles auswählen

ctrl_interface=/var/run/wpa_supplicant
ap_scan=1

network={
	ssid="...."
	psk=...
}
Da kann man auch noch weitere Netzwerke eintragen (am einfachsten mit Hilfe von wpa_passphrase, ist auf dem TXT dabei), wpa_supplicant probiert die dann reihum durch bis eine Verbindung klappt.

Benutzeravatar
MasterOfGizmo
Beiträge: 2727
Registriert: 30 Nov 2014, 07:44

Re: TXT von SD-Karte booten

Beitrag von MasterOfGizmo » 17 Feb 2016, 21:56

Wieso das Start-Script? Einfach in /etc/network/interfaces wlan0 mit auto und DHCP eintragen. Dann wird der dhcpcd automatisch gestartet. Und mit den hooks müsste man auch WPA starten koennen. Klappt bei mir aber irgendwie noch nicht. Ich habe die hook scripte aus dem source-Archiv auf die SD Karte gelegt, aber dhcpcd scheint sie zu ignorieren ... Morgen mal schauen ...
Arduino für fischertechnik: ftDuino http://ftduino.de

richard.kunze
Beiträge: 583
Registriert: 26 Dez 2015, 23:49
Wohnort: Rhein-Main-Gebiet

Re: TXT von SD-Karte booten

Beitrag von richard.kunze » 17 Feb 2016, 23:43

MasterOfGizmo hat geschrieben:Wieso das Start-Script?
Weils simpler und weniger invasiv ist.

So hab ich drei Scripte auf der SD-Karte und einen Symlink in /etc/init.d, auf dem "normalen" Weg müsste ich mindestens an /etc/network/interfaces schrauben, die fehlenden Scripte für dhcpcd nachinstallieren und das vorhandene /etc/wpa_supplicant.conf modifizieren (ja, auf dem TXT gibts das) und hätte keine Ahnung, was das nächste Firmware-Update mit dem ganzen modifizierten Kram anstellt.

Außerdem hab ich mit dem Gedanken gespielt, das Script als /etc/init.d/wlan_ap zu installieren um statt des eingebauten WLAN-AP das Client-WLAN über die TXT-Oberfläche ein- und ausschalten zu können...

Antworten