Admin SnowHead Geschrieben 21. Juli 2005 Admin Melden Share Geschrieben 21. Juli 2005 @-=The Brain=- Nee, auf das Display hast Du keinen Zugriff. Dafür stellt die ppcboot keine Schnittstelle bereit. Du bekommst also nur die Infos, die sie freiwillig über die Konsole schickt. Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
kai-t Geschrieben 21. Juli 2005 Melden Share Geschrieben 21. Juli 2005 Hmmm, also ich weiß ja nicht. Dieser umweg über den Bootmanager find ich nun nicht so doll. Natürlich bin ich auch dafür sourcen die es schon gibt zu verwenden, ganz klar, faul bin ich auch, aber ein externes Programm zu öffnen und quasi die kontrolle über den Programmablauf völligst zu verlieren finde ich nicht gut. Gerade an so einem kritischen Punkt. Wie bemerkst du zum Beispiel das die Box den Boot Request nie gesendet hat, Die antwort nicht erhalten hat usw. Das bekommst du an der stelle doch garnicht mehr mit.... Mir ist schon klar das du da nochmal einiges an arbeit reininvestiern musst, aber ich helfe dir da auch gerne. Leider kenn ich mich mit c# nun nicht so doll aus, aber in pseudocode oder ner anderen sprache kann ich dir es grob erklären. Prinzipiell sollte das ganze nicht so schwierig sein. Du musst erstmal rausbekommen wie du mit c# netzwerkports anspricht. Hab das ganze mal in Perl gemacht war ganz einfach. Da gabs ein fertiges package zum includen. So wird das bei c# ja auch sein. Wie kommst du auf Port 67 und 69?? Jede beschreibung des Themas sagt port 67 und 68! Such doch einfach mal in google nach bootp und c# da gibts bestimmt schon was zum wiederverwenden. Prinzipiell ist es nur ein lauschen am Port und sobald etwas reinkommet ein gültige BootP antwort zu geben. Danach weiß die box bescheid und kennt deinen PC als Server und fragt dann über TFTP die PPCBOOT an. Hierfür kannst du auchmal schauen was du für TFTP für c# findest. Du musst der Box dann nur noch per TFTP die PPCBOOT schicken den rest macht sie von alleine. Naja vieleicht nicht ganz die 13.img muss sehr wahrscheinlich auch noch per NFS rübergeschubst werden. Oha da hatte ich jetzt nicht drann gedacht. Da musst du auch noch schauen ob du was c# mäßiges für NFS, findest. Weiß jetzt nicht ob man der box das ding auch anders schicken kann. Ne antwort bekommst du von der Box dann bestimmt irgendwie auch über eines der Protokolle... Naja ist dann doch etwas schwieriger. Vieleicht für die Version 2.0 aber schöner wäre es. Schreib mir dochmal ob das mit c# stimmt dann schau ich mal was sich finden lässt... Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Admin SnowHead Geschrieben 21. Juli 2005 Admin Melden Share Geschrieben 21. Juli 2005 @-=The Brain=- Also für die Version 2.0 muß ich kai-t beipflichten. Da wäre ne eigene Unter- stützung des Flashens schon ganz wünschenswert. Zumal dann ja vielleicht das nervige Abschalten des Hyperthreadings bei XP und nem Pentium weg- fallen könnte. Du würdest da also ein neues Basistool als Ablösung für den Bootmanager kreieren. Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
kai-t Geschrieben 21. Juli 2005 Melden Share Geschrieben 21. Juli 2005 Wie gesagt schreib mir mal ob ich mit c# richtig liege dann such ich mal obs nicht was fertiges für BootP und TFTP und NFS gibt. Wenn man da was findet das die Basisfunktionalität als package bereitstellt ist es kein hexenwerk. Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
-=The Brain=- Geschrieben 21. Juli 2005 Autor Melden Share Geschrieben 21. Juli 2005 @kai-t da hast Du natürlich Recht. Das stimmt mit dem Nutzen des Boot-Managers. Nervt mich ja auch selber. Grundsätzlich ist das eigene Schreiben des Tools nicht wirklich das Schwierige Thema. Bei wird es halt am Verständnis scheitern Kommunikation PC Also werde ich mich noch mal ran machen, und das Ganze dann doch selber schreiben. Naja ... und eigentlich ist was eigenes ja sowieso besser. @SnowHead Basistool Also wie gesagt, ich mache mich dran. Eigenes ist schon besser. Ist ja bald Weekend. Da habe ich ja Zeit! Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
kai-t Geschrieben 21. Juli 2005 Melden Share Geschrieben 21. Juli 2005 Ja aber gib mir mal etwas hilfe, verwendest du c# oder was für eine sprache? Kennst du ne seite wie cpan wo es packages dafür gibt? Gruß Kai Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
-=The Brain=- Geschrieben 21. Juli 2005 Autor Melden Share Geschrieben 21. Juli 2005 (bearbeitet) @kai-t Ja, ich schreibe das in C Sharp. Wenn ich auf der Suche nach Code-Schnipseln in C Sharp bin, dann suche ich eigentlich aussschließlich hier : codeproject.com. Da werde ich eigentlich immer fündig. Grüße bearbeitet 21. Juli 2005 von -=The Brain=- Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
derberg_de Geschrieben 21. Juli 2005 Melden Share Geschrieben 21. Juli 2005 könnte man noch als datensicherung die satelittes.xml mit einfügen.die gehört nämlich zu den settings dazu Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
-=The Brain=- Geschrieben 21. Juli 2005 Autor Melden Share Geschrieben 21. Juli 2005 @derberg_de Gerade geschehen! Danke für den Tip. Ich bin ja sowieso dankbar, wenn jemand noch hier oder da was findet, was zu andern oder zu verbessern ist. @kai-t Du musst erstmal rausbekommen wie du mit c# netzwerkports anspricht. Hab das ganze mal in Perl gemacht war ganz einfach. Da gabs ein fertiges package zum includen. So wird das bei c# ja auch sein. Das habe ich ja schon. Funktioniert auch. Also ich habe gerade mal ein kleines Prog geschrieben, was am UDP-Port lauscht und das Broadcast-Datenpaket der DBox beim Einschalten empfängt. Bzw. mir eine Meldung am Bildschirm ausgibt, das auf dem Port Daten empfangen wurden. Nun sehe ich im Moment das Problem bzw. stehe ich gerade dort, ich muss ja der DBox ähnlich DHCP eine IP-Adresse und ein passendes Sub-Netz anbieten bzw. dieses der Ethernet-Karte der Box zuweisen. Und da hakt es gerade. Danach weiß die box bescheid und kennt deinen PC als Server und fragt dann über TFTP die PPCBOOT an. ... [sNIP] ... Du musst der Box dann nur noch per TFTP die PPCBOOT schicken den rest macht sie von alleine. Das ist wirklich alles? Der DBox per TFTP die ppcboot anbieten. Und diese ppcboot macht den Rest ? Bzw. fordert das entsprechende Image an ? Das ist wirklich alles ? Das kann ich fast nicht glauben .... Vieleicht für die Version 2.0 aber schöner wäre es. Nee nee ... wenn, dann will ich es schon ordentlich machen. Also den ganzen Programmteil mit dem Bootmanager habe ich rausgeschmissen. Wird also nicht erst in der 2.0 !!! Grüße Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
-=The Brain=- Geschrieben 21. Juli 2005 Autor Melden Share Geschrieben 21. Juli 2005 Was ist eigentlich genau der Unterschied zwischen DHCP und BOOTP ? Würde eine DBOX2 in einem Windows-Netzwerk mit DHCP-Server die vom DHCP zugeteilten Einstellungen übernehmen? Denn dieses BOOTP brauche ich doch (wenn ich es richtig heraus gelesen habe) nur, umd der Netzwerkkarte IP, Subnetz, Gateway etc. zuzuweisen. Oder habe ich einen Denkfehler ? Denn ich habe mir gerade mal DHCP-Zuweisungen unter C Sharp angesehen. Und das ist relativ simpel. Grüße Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Aikonia Geschrieben 21. Juli 2005 Melden Share Geschrieben 21. Juli 2005 Hallo, ohne wiki wären wir wirklich verloren: Das DHCP-Protokoll stellt eine Erweiterung der BOOTP-Parameter dar. Gruß Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
-=The Brain=- Geschrieben 21. Juli 2005 Autor Melden Share Geschrieben 21. Juli 2005 (bearbeitet) @Aikonia erst mal Danke für den Link. Aber genau als ich diesen Link, bzw. den Text dahinter gelesen habe, da kam mir die Frage ob eine DBox auf einen DHCP-Server antworten würde. Also ganz genau gesagt wollte ich wissen, ob mir der DHCP-Dienst beim Flashen einer DBOx, deren IP-Adresse und MAC-Adresse ich nicht kenne, helfen kann !? Denn dann würde ich es gerne versuchen das Problem per DHCP zu lösen. Aber ich schätze mal wohl eher nicht ... Grüße bearbeitet 21. Juli 2005 von -=The Brain=- Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
kai-t Geschrieben 21. Juli 2005 Melden Share Geschrieben 21. Juli 2005 Hi, also wenn ich das richtig verstanden habe macht die Box ja eine Anfrage an Broadcast, also alle Netzwerkkarten und Geräte empfangen sie. Nun und darauf erwartet sie da sie ja keine ip hat auch eine Antwort auf Broadcast. D.h. das Paket das du sendest muss an 255.255.255.255 gerichtet sein somit ist es laut definition eine Broadcast sendung die die Ip lose Dbox empfängt. Enthalten muss das paket so wie ich das verstanden habe folgendes: Die Hardware-Adresse des Clients. Der Client erwartet eine Antwort mit seiner Hardware-Adresse, um zu erkennen, dass das Paket für ihn ist. (Also als Hardware Adresse musst du wohl die Mac Adresse der Dbox schicken. Dies hat sie dir vorher in der Anfrage an Broadcast auch mit übermittelt. Lass dir einfach die Daten die sie sendet mal ausgeben da müsste die Mac mit dabei sein. Um zu sehen welches die Mac sein könnte lese die Mac vom Typenschild deiner Dbox ab und lass dir die Gesendeten daten in Hex anzeigen.) Die Zufallszahl, die in der Anfrage vom Client erzeugt wurde. (Hmmm, hier wirds etwas schwierig. Dafür müsste ich auchmal so ne BootP anfrage sehen. Irgendwo ist darin ne zufallszahl enthalten. Kann man mal nur hoffen das die anfrage der Dbox die selbe reihenfolge der Parameter hat wie unsere antwort, Dann sollte die Zufallszahl direkt hinter der Mac Adresse kommen. Diese musst du wieder mit zurück schicken) Das wichtigste überhaupt: Die IP-Adresse der Client-Maschine (Hier kannst du der Dbox nun ne Passende Ip Adresse geben!) Die IP-Adresse und der Hostname des Boot-Servers. Von dort kann im nächsten Schritt über TFTP ein Betriebssystem geladen werden. (Also die Ip von deinem PC dort fragt die Box als nächstes an) Der Name und die Pfadangabe der Bootdatei. Die Bootdatei enthält den Kernel, der anschließend mit TFTP übertragen wird. (Also die Box pullt sich das schon qusi. du gibst ihr hier schon mit das sie ne ppcboot von dir bekommt) Name des Verzeichnisses, das vom Kernel über NFS als root (/) Partition eingebunden werden soll (Das ist die stelle die im Bootmanager bei NFS steht und dort wo die 13.img liegen muss) Der festplattenlose BOOTP-Client lauscht also auf dem vorgegebenen Port, und wartet auf eine Antwort vom Server. Empfängt er ein Paket, wird die MAC-Adresse mit der eigenen, sowie die Zufallszahl mit der gesendeten verglichen. Erkennt der Client, dass die Antwort für ihn gedacht ist, wird die IP-Adresse dem Netzwerk-Interface zugewiesen So also prinzipiell ganz einfach. Dein Problem ist du musst quasi während des BootP schon nen TFTP Server emulieren weil die Box direkt auf die BootP antwort von dir versuchen wird unter deinen mitgegeben daten also IP, Dateiname, Verzeichniss die Bootdatei vom TFTP Server zu holen, der muss in dem Moment also schon von dir bereitgestellt werden. Danach wirds noch heftiger in der PPCBoot wird die Box veranlasst eine datei von dem bei der BootP Antwort als root gegebenen NFS mount zu flashen. Der name ist 13.img, aber nur weil das in der PPCBoot so steht das kann man per hexeditor auch in Brain.img ändern. Nun auf jedenfall muss da ein NFS Server für die Box emuliert werden damit sie sich das image holen kann... Also du musst nach einer BootP Antwort sofort einen TFTP Server und einen NFS Server parat haben. Mit minimaler funktionalität natürlich. So das eben die Box die Dateien dort abholen kann. Das muss auch in c# gebaut werden.... Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
-=The Brain=- Geschrieben 22. Juli 2005 Autor Melden Share Geschrieben 22. Juli 2005 (bearbeitet) @kai-t Guten Morgen. Ich merke schon, das Projekt weitet sich ganz schön aus. Naja, aber macht mir ja auch wirklich Spaß, meinen Horizont ein wenig zu erweitern. So, also ich habe jetzt mal das Datenpaket aufgefangen das die DBox beim Anschalten per Broadcast sendet. Den Hex-Code habe ich auch schon mal ein wenig zerpflückt ... ganz schöne Sisyphus-Arbeit. Also hier mal der Hex-Code. Ich hoffe, Du kannst irgendwas damit anfangen : Ich habe mal die Spalten A, B, C, D, E, F, G, H, I, J, K, L, M, N, O und P eingefügt, um die Daten wie in einer Tabelle beschreiben zu können ! A B C D E F G H I J K L M N O P 0000 ff ff ff ff ff ff 00 50 9c 1b xx xx 08 00 45 00 .......P...s..E. 0010 01 48 00 00 00 00 3c 11 7d a6 00 00 00 00 ff ff .H....<.}....... 0020 ff ff 00 00 00 43 01 34 00 00 01 01 06 00 00 00 .....C.4........ 0030 15 7c 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .|.............. 0040 00 00 00 00 00 00 00 50 9c 1b xx xx 00 00 00 00 .......P...s.... 0050 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 0060 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 0070 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 0080 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 0090 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 0100 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 0110 00 00 00 00 00 00 63 82 53 63 00 00 00 00 00 00 ......c.Sc...... 0120 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 0130 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 0140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 0150 00 00 00 00 00 00 ...... Was ich bis jetzt herausgefunden habe : 0000A bis 0000F sind die ff:ff:ff:ff:ff:ff für den Broadcast 0000G bis 0000L ist die MAC-Adresse meiner DBox (habe ich geändert !) 0010H steht für (0x11) -> UDP-Protokoll 0010I bis 0010J ist die CheckSumme (0x7da6) 0010K bis 0010N ist IP der DBox bei der Anfrage (00.00.00.00) 0010O bis 0020B ist die IP an die das UDP-Paket geschickt wurde (255.255.255.255) 0050G bis 0090J ist der Server-Host-Name (hier natürlich nicht bekannt) 0090G bis 0110F ist das Bootfile. In diesem Fall also NULL. Ich denke mal, hier kommt dann irgendwie die ppcboot ins Spiel !? 0110G bis 0110J das ist diese ominöse Zufalls-Check-Zahl Also so weit kann ich jetzt das Gesendete Datenpaket annehmen und auch anzeigen / auswerten lassen. Wenn ich jetzt richtig weiter denke, dann muss ich doch auf dieses Paket die passende Antwort senden. Also die zu verwendende IP etc. Oder ? Grüße [EDIT] Kann ein Admin mal den Namen des Themas ändern? Denn so richtig trifft der ja nun nicht mehr zu ... [/EDIT] bearbeitet 22. Juli 2005 von -=The Brain=- Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Admin SnowHead Geschrieben 22. Juli 2005 Admin Melden Share Geschrieben 22. Juli 2005 @-=The Brain=- Bin zwar nicht kai-t, aber Du hast Recht. Jetzt mußt Du die erste Antwort an die Box senden. Inhalt ist ja in den beiden Links beschrieben. 2. BOOTP reply. The server responds with the client's IP address, the server's IP address (it's own), and the IP address of a default gateway. Welchen Threadnamen hättest Du denn gern? Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
kai-t Geschrieben 22. Juli 2005 Melden Share Geschrieben 22. Juli 2005 Ja korrekt. Versuch dieses Paket mal anzupassen und auf port 68 an 255.255.255.255 zu schicken. Vergebe ne IP für die Box, ne IP für dich, PCCboot. Wenn du der box ein korrektes Paket auf port 68 liefert wird sie als reaktion darauf, eine TFTP Anfrage auf port 69 losschicken. Diese geht an die IP die du als deine vorher im BOOTP Paket angegeben hast. Dieses neue Paket wäre dann wieder wichtig. Mit diesem versucht sie vom TFTP Server die PPCboot Datei zu holen. Vieleicht langt es darauf das PPCBoot file auf Port 69 an sie zu senden. Das wäre super. @Snowhead: Die antwort ist etwas komplizierter. Ich denke das Antwortpaket muss genauso aussehen wie es Brain beschreibt. Du musst alles mitliefern. Mac adressen, Ips, lokation der PPCBoot und eben auch die zufallszahl. Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Admin SnowHead Geschrieben 22. Juli 2005 Admin Melden Share Geschrieben 22. Juli 2005 @kai-t Ja klar, in dem empfangenen Datenpaket werden die vom Server zu erzeugenden Werte eingetragen und das Paket zurückgeschickt. Das ist einfacher, als es von Grund auf neu zu bauen. Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
-=The Brain=- Geschrieben 22. Juli 2005 Autor Melden Share Geschrieben 22. Juli 2005 @SnowHead Guten Morgen. Welchen Threadnamen hättest Du den gern? Wie wäre es mit "... wenns mal wieder länger dauert ..." ? @kai-t Ich versuche mal mein Glück. Muss ja irgendwie zu lösen sein! Wenn meine Box auf eine von mir gestricktes Datenpaket ordentlich antwortet und die gesendeten Daten akzeptiert, werde ich das dann gleich hier verkünden . Dann müssen wir sehen, wie es weiter geht. Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
kai-t Geschrieben 22. Juli 2005 Melden Share Geschrieben 22. Juli 2005 Wie gesagt so wie ich das verstehe läuft das so ab: Anfrage der box auf Port 67 -> Die die du jetzt empfängst Deine Antwort muss raus auf Port 68 Wenn diese korrekt ist wird die Box ein PPCBoot file auf Port 69 anfragen. Die Antwort muss dann ebenfalls auf Port 69 kommen. Wenn wir soweit wären wäre das schon super. Gruß Kai Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Admin SnowHead Geschrieben 22. Juli 2005 Admin Melden Share Geschrieben 22. Juli 2005 @-=The Brain=- Hab den Thread mal umbenannt. Damit Du Ihn wiederfindest, hier der neue Titel: Der Werkzeugkasten für die DBox2Entwicklung eines Verwaltungsprogramms Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
kai-t Geschrieben 22. Juli 2005 Melden Share Geschrieben 22. Juli 2005 Hi, hi, wenn er ihn nicht wiederfindet hilft ihm das hier auch nicht da er es ja nicht findet :-) Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Admin SnowHead Geschrieben 22. Juli 2005 Admin Melden Share Geschrieben 22. Juli 2005 @kai-t Alter Nögler! Er war ja noch im Thread drin. Da braucht er ihn ja erst mal nicht zu finden. Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
kai-t Geschrieben 22. Juli 2005 Melden Share Geschrieben 22. Juli 2005 Na ok, ich denke er wird ihn wiederfinden :-) Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
-=The Brain=- Geschrieben 22. Juli 2005 Autor Melden Share Geschrieben 22. Juli 2005 @kai-t Hi, hi, wenn er ihn nicht wiederfindet hilft ihm das hier auch nicht da er es ja nicht findet :-) Bei uns nennt man das Haare spalten ... . Nach ewig langem Suchen und durchstöbern des Keywelt-Board´s habe ich den Thread aber zum Glück wieder gefunden. Und den Namen auch gleich in den Monitor geritzt, damit ich ihn auch immer wieder finde ... Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Admin SnowHead Geschrieben 22. Juli 2005 Admin Melden Share Geschrieben 22. Juli 2005 @-=The Brain=- Nach ewig langem Suchen und durchstöbern des Keywelt-Board´s habe ich den Thread aber zum Glück wieder gefunden. Und den Namen auch gleich in den Monitor geritzt, damit ich ihn auch immer wieder finde ... So was nennt man bei uns Sarkasmus. Nun aber back to topic. Ich hab zu Hause noch ein paar gute Netzwerkanalysetools rumliegen, mit denen man den Datenverkehr sehr komfortabel dokumentieren kann. Wenn Du mit so einem Proggy mal schaust, was der Bootmanager macht, kommst Du bestimmt einen Riesenschritt weiter. Kannst bei Interesse ja mal einen Funk geben. Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Empfohlene Beiträge