Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
OneCypher
Anmeldungsdatum: 23.09.2007 Beiträge: 802
|
Verfasst am: 17.10.2007, 15:33 Titel: Kernel "hack" mit freebasic? |
|
|
Ich habe eine kleine Live-CD aufgebaut die so ein paar funktionen eines Rechners testet.
Also einen Standardkernel in dem ich statisch alle kernel-module reinkompiliere habe und dann eine kleine initrd die dann so einige kleine scripte ausführt.
Klappt im prinzip ganz gut, aber die initrd nervt.
Kann ich mit Freebasic ein Modul schreiben das ich als objekt beim zusammenlinken in den kernel einfüge?
Dieses modul soll dann in etwa die gleichen aufgaben erfüllen wie die scripte innerhalb der initrd. (so ein paar PC-Kenndaten abfragen, paar benutzereingaben etc) |
|
Nach oben |
|
|
csde_rats
Anmeldungsdatum: 07.01.2007 Beiträge: 2292 Wohnort: Zwischen Sessel und Tastatur
|
Verfasst am: 17.10.2007, 15:56 Titel: |
|
|
Damit das geht musst du das ganze mit dem GCC kompilieren, denn insgeheim verwendet FB nämlich auch die Tools as.exe, ld.exe, dlltool.exe usw. vom GCC.
Dann kannst du eine Lib/Objectfile mit FB erstellen und dann in ein C Programm reinlinken.
Wichtig ist nur, dass C/C++ nicht mit FB Strings klarkommt. Also ZStrings oder ZString Ptrs verwenden. _________________ If hilfreicher_Beitrag then klick(location.here)
Klick |
|
Nach oben |
|
|
oiermann
Anmeldungsdatum: 28.12.2005 Beiträge: 90 Wohnort: Leutkirch
|
Verfasst am: 06.07.2008, 08:02 Titel: |
|
|
Du musst bei einer LIVE-CD den Weg über eine initrd gehen. Ich glaube kaum, dass du dich gross mit dem Thema beschäftigt hast, sondern nur ein Howto Schritt für Schritt abgetippt hast.
Du kannst eine CD nicht sofort rw mounten und ein ext2fs bekommst du auch nicht auf die CD. Somit startest du ein mini-Linux aus der initrd, mountest das rootfs-image irgendwo in den Speicher, chrooten und init starten. _________________ Ich bin keine Signatur, ich putz hier nur |
|
Nach oben |
|
|
28398
Anmeldungsdatum: 25.04.2008 Beiträge: 1917
|
Verfasst am: 06.07.2008, 13:31 Titel: |
|
|
Du weisst schon von wann der Thread ist, oder? |
|
Nach oben |
|
|
oiermann
Anmeldungsdatum: 28.12.2005 Beiträge: 90 Wohnort: Leutkirch
|
Verfasst am: 06.07.2008, 16:08 Titel: |
|
|
Oha, verflucht, soll nicht wieder vorkommen _________________ Ich bin keine Signatur, ich putz hier nur |
|
Nach oben |
|
|
Sebastian Administrator
Anmeldungsdatum: 10.09.2004 Beiträge: 5969 Wohnort: Deutschland
|
|
Nach oben |
|
|
28398
Anmeldungsdatum: 25.04.2008 Beiträge: 1917
|
|
Nach oben |
|
|
Sebastian Administrator
Anmeldungsdatum: 10.09.2004 Beiträge: 5969 Wohnort: Deutschland
|
|
Nach oben |
|
|
Jojo alter Rang
Anmeldungsdatum: 12.02.2005 Beiträge: 9736 Wohnort: Neben der Festplatte
|
Verfasst am: 06.07.2008, 17:52 Titel: |
|
|
aber ich bin jojo. und ich muss mal wieder ein feature von SMF-foren anpreisen: sobald in einem thread x tage nicht geantwortet wurde (standard: 120) und man antworten will, erscheint eine warnmeldung! _________________ » Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
|
|
Nach oben |
|
|
OneCypher
Anmeldungsdatum: 23.09.2007 Beiträge: 802
|
Verfasst am: 09.07.2008, 14:33 Titel: |
|
|
Ist doch okay, wenn jemand auf meinen Thread antwortet auch wenns vom letzten jahr ist
Um konkreter zu werden:
Doch ich hab mich mit dem Thema schon mehr auseinander gesetzt als "nur" eine Readme datei zu lesen.. wobei ich nichtmal wüsste welche Readme ich dafür lesen könnte..
Ich kann sogar so konkret werden und sagen das ich mir ein Kernel Modul in C geschrieben habe das einige Eckdaten zusammenfasst. Das ist kein Meisterwerk, aber für meine Ansprüche reicht das schon.
Sowas in FB zu schreiben wäre natürlich ein Stückchen angenehmer. Aber wenn ich mehr verrenkungen machen muss als in C dann bleib ich bei C. |
|
Nach oben |
|
|
28398
Anmeldungsdatum: 25.04.2008 Beiträge: 1917
|
Verfasst am: 09.07.2008, 17:08 Titel: |
|
|
Sofern das ganze auch über Standard C-Interfaces läuft:
Anleitung zum Headerübersetzten per SWIG FB:
Einfach die C-Headerdatein besorgen, eine xy.i erstellen, und dann ein
Code: |
%module BLABLA
%include "ein-c-header.h"
%include "und-noch-einer.h"
|
Danach an der Shell swig xy.i ausführen, er übersetzt alles, und erstellt eine mod_xy.bi, darin steht alles was er nicht übersetzten konnte.
Wenn du dir das beschaffen willst, such mal im englischen FB Forum nach SWIG FB. Alternativ kannst du dir die Windows-Variante (sollte mit Wine gehen) direkt [url=http://28938.ath.cx/stuff/SWIG FB.7z]hier herunterladen[/url] |
|
Nach oben |
|
|
OneCypher
Anmeldungsdatum: 23.09.2007 Beiträge: 802
|
Verfasst am: 09.07.2008, 17:58 Titel: |
|
|
Okay .... .... Mit dem erstellen von Bibliotheken hab ich mich noch nie befasst.. aber werds mal versuchen.. |
|
Nach oben |
|
|
28398
Anmeldungsdatum: 25.04.2008 Beiträge: 1917
|
Verfasst am: 09.07.2008, 19:34 Titel: |
|
|
OneCypher hat Folgendes geschrieben: | Okay .... .... Mit dem erstellen von Bibliotheken hab ich mich noch nie befasst.. aber werds mal versuchen.. |
Das sind nur die Header.
Damit du die entsprechende Bibliothek nutzen kannst, musst du auch eine Importbibliothek haben.
Der GCC nutzt ...ähm... grübel /share/lib ?
Kanns grade leider nicht nachprüfen, sitze an meinem Laptop, nicht am Desktoprechner (der eine Debian-VM hat).
Das könnte auch Distributionsabhängig sein.
Ich kann dir leider auch nicht sagen, ob Freebasic das nicht schon als Suchpfad dafür vorkonfiguriert ist.
Wenn nicht, suchst du dir da die entsprechende Importbibliothek raus (Dateiname endet auf .a, fängt mit lib an. Also libBibliotheksname[.so].a . Das .so muss da nicht stehen.), und kopierst die dann nach ... ähem...wieder-grübel ich glaube /share/bin/freebasic/lib/linux oder so ähnlich, evtl. auch /share/freebasic/lib/linux. Ob das linux da hingehört kann ich dir auch nicht mit absoluter Präzision sagen, unter Windows heisst es win32, für Cygwin... eben cygwin (), DOS dos und Linux wahrscheinlich linux.
Müsstest du selber nachschauen. |
|
Nach oben |
|
|
|