embedded-linux

___ answer5090106 ___

Sie können die folgende Tastenkombination versuchen

SysRq + c

oder

  

echo c & gt; / proc / sysrq-trigger

    
___ tag123linux ___ LINUX FRAGEN MÜSSEN PROGRAMMIEREN VERWANDT SEIN. Verwenden Sie dieses Tag nur dann, wenn sich Ihre Frage auf das Programmieren mit Linux-APIs oder das Linux-spezifische Verhalten bezieht, nicht nur, weil Sie Ihren Code unter Linux ausführen. Wenn Sie Linux-Unterstützung benötigen, können Sie https://unix.stackexchange.com oder https://askubuntu.com ausprobieren ___ qstnhdr ___ Wie testet man den Kernel auf Kernel Panics? ___ tag123linuxkernel ___ Dieses Tag ist für Fragen zu den Interna des Linux-Kernels selbst gedacht - insbesondere zum Schreiben von Code, der im Kontext des Kernels läuft (wie Kernel-Module oder Treiber). Fragen zum Schreiben von Userspace-Code in Linux sollten stattdessen mit [linux] getaggt werden. Da sich die Interna des Linux-Kernels ständig ändern, ist es hilfreich, genau die Kernel-Version (en) anzugeben, an denen Sie interessiert sind. ___ qstntxt ___

Ich teste den Linux-Kernel auf einem Embedded-Gerät und möchte Situationen / Szenarien finden, in denen der Linux-Kernel Panics auslösen würde.

Können Sie einige Testschritte vorschlagen (manuell oder mit Code automatisiert), um Kernel Panics zu erzeugen?

    
___ answer11813201 ___

Es ist bekannt, dass Crashme unbekannte Kernel-Panic-Situationen findet, aber es muss auf eine potente Art und Weise ausgeführt werden, die eine Vielzahl von Signalausnahmen erzeugt, die innerhalb des Prozesses und einer Vielzahl von Prozessausstiegsbedingungen behandelt werden.

Der Hauptzweck der von Crashme erzeugten Nachrichten besteht darin, festzustellen, ob genügend interessante Dinge passieren, um eine mögliche Potenz anzuzeigen. Wenn beispielsweise der Aufruf %code% benötigt wird, um Speicher mit %code% als Anweisungen auszuführen, und wenn Sie% cr_de% im Quelltext crashme.c für Ihre Plattform nicht aktiviert haben, dann Crashme ist impotent.

Es scheint, dass Betriebssysteme auf x64-Architekturen dazu neigen, die Ausführung von Datensegmenten zu deaktivieren. Kürzlich habe ich die crashme.c auf Ссылка aktualisiert, um %code% im Falle von %code% zu verwenden und getestet auf einem laufenden MacBook Pro MAC OS X Löwe. Dies ist das erste ernsthafte Update für Crashme seit 1994. Rechne damit, bald Centos und Freebsd zu sehen.

    
___ answer5085831 ___

Es gibt eine Vielzahl von Tools, die Sie verwenden können, um Ihren Computer zum Absturz zu bringen:

crashme versucht, zufälligen Code auszuführen; Dies ist gut zum Testen des Lebenszykluscodes des Prozesses.

fsx ist ein Werkzeug, um zu versuchen, den Dateisystemcode ausgiebig auszuüben; es ist gut zum Testen von Treibern, Block-io und Dateisystemcode.

Das Linux-Testprojekt zielt darauf ab, ein großes Repository von Kernel-Testfällen zu erstellen. Es ist möglicherweise nicht speziell mit abstürzenden Systemen ausgelegt, aber es kann viel dazu beitragen, dass Sie und Ihr Team alles so halten, wie es geplant ist. (Beachten Sie, dass das LTP nicht proskriptiv ist - die Kernel-Gemeinschaft behandelt ihre Tests nicht als etwas Wichtiges - aber das LTP-Team versucht sehr, deskriptiv zu sein was der Kernel tut und was nicht.)

Wenn Ihr Gerät mit dem Netzwerk verbunden ist, können Sie nmap mit einer Vielzahl von Scanoptionen ausführen: %code% versucht dies finde Versionen aller laufenden Dienste (dies kann stressig sein), %code% wird versuchen, das Betriebssystem zu bestimmen, indem man seltsame Netzwerkpakete auf die Maschine wirft und nach Antworten rät, was die Ausgabe ist.

Das nessus Scan-Tool übernimmt auch die Versionsidentifizierung laufender Services; Es kann aber auch Verbesserungen gegenüber nmap bieten oder auch nicht.

Sie können Ihr Gerät auch an Benutzer weitergeben. Sie finden die verrücktesten Dinge, die mit Software zu tun haben, sie werden Fehler entdecken, die Sie nie für nötig halten würden. :)

    
___ tag123embeddedwindux ___ Embedded Linux ist die Verwendung von Linux in eingebetteten Computersystemen wie Mobiltelefonen, Personal Digital Assistants, Media Playern, Set-Top-Boxen und anderen Geräten der Unterhaltungselektronik, Netzwerkausrüstung, Maschinensteuerung, Industrieautomatisierung, Navigationsausrüstung und Medizin Instrumente. ___ tag123linuxdevicedriver ___ Gerätetreiber übernehmen im Linux-Kernel eine besondere Rolle. Es sind programmatisch abstrahierte "Black Boxes", die ein bestimmtes Hardware-Teil auf eine wohldefinierte interne Programmierschnittstelle reagieren lassen. Sie verbergen vollständig die Details, wie das Gerät funktioniert. ___
1
Antwort

was bedeutet "wenig Speicher" in Linux

HI Ich bin Koreanisch und bekomme wenig Verwirrung über "Das Boot-Programm kopiert sich zuerst auf eine feste Adresse mit hohem Speicher, um wenig Arbeitsspeicher für das Betriebssystem freizumachen." Was ich über den geringen Speicher, den i...
18.06.2012, 03:42
6
Antworten

Linux verfügbarer Gesamtspeicher

Ich versuche eine gute Formel herauszufinden, wie viel Speicher verfügbar ist. Ich verwende momentan die folgende Formel: freeMem = MemFree + Buffers + Cached - Shmem . Nach dieser Formel verliert mein eingebettetes System jedoch Speicher. Jet...
01.12.2011, 21:52
0
Antworten

Wie man bluetoothctl wie hcitool lescan verwendet, um wiederholte Proximity Beacons zu melden

Ich kann hcitool lescan mit dem Flag --duplicates verwenden, um periodische LE Advertising Reports (Proximity Beacons) von zwei nahegelegenen BLE-Geräten zu erfassen: %Vor% Hier ist dieser Scan erneut, mit Zeitstempeln hinzugefügt, um die Pe...
13.04.2016, 19:17
2
Antworten

Valgrind Kreuzkompilierung für ARMv5tel

Ich habe configure mit der folgenden Option ausgeführt: %Vor% führte dann make Ich habe den folgenden Fehler festgestellt: %Vor% Vermisse ich etwas? swathi     
19.11.2010, 18:51
3
Antworten

Wie füge ich ein A-Paket zum Buildroot hinzu, das in einem Git-Repository verfügbar ist?

Ich mache ein Embedded-Linux-System und wollte den Paketen das Paket bluez '(und Bluetooth-Dienstprogramme) hinzufügen der Buildroot-Umgebung. Leider scheint die Tar-Kugel nicht verfügbar zu sein, aber die Quelle ist von Git repositiory ver...
04.11.2011, 19:53
3
Antworten

Wie baue ich meine Linux C ++ App, um eine Verbindung zu einer alten Version von libc herzustellen?

Ich habe eine App auf Ubuntu 12.04 erstellt und habe versucht, sie auf einem Embedded-System auszuführen. Ich habe apt-cache show libc6 auf meinem Dev-Rechner ausgeführt, der (neben anderen Dingen) anzeigt %Vor% Die Version von libc6, die...
09.07.2012, 14:57
1
Antwort

was ist der Grund für dieses MMC Lesen in Linux [geschlossen]

Was ist der Grund für dieses MMC-Lese-Problem in Linux ..? bitte helfen sie das zu lösen ...? Bitte überprüfen Sie mein Kernel-Boot-Protokoll unten helfen mir, dies zu lösen .. Ich habe die relevanten Treiber für mmc aktiviert, die mit dem ne...
20.09.2013, 08:17
1
Antwort

Wo finde ich einen Rebol 3 Micro-Webserver?

Es gibt viele nette kleine Web-Server, die in Rebol 2 geschrieben sind, aber Rebol 3 hat ein anderes Netzwerk-Modell, und ich suche einen Web-Server, der damit arbeitet. Ich suche nichts Fantastisches. Es ist einfach, auf einem Embedded-Board...
07.07.2013, 22:17
1
Antwort

valgrind auf dem ARM9?

Ich sehe, dass Valgrind ein ARM7-Ziel hat, aber ich finde widersprüchliche Informationen darüber, ob Valgrind Unterstützung für den ARM9 hat. Das ARM9-Ziel, mit dem ich arbeite, läuft unter Linux. Hat jemand speziell Valgrind auf einem ARM9-Z...
16.06.2011, 20:24
1
Antwort

Gibt es eine Möglichkeit, einen Aufruf an den Linux-Kernel mit meiner eigenen Softirq zu machen

Ähnlich wie der Systemaufruf auf int 0x80 funktioniert, ist es möglich, meinen eigenen ISR innerhalb des Kernels zu implementieren, so dass auf Softirq int 0x120 oder mit einem anderen Softirq-Programmzähler von Benutzerraum zu Kernelra...
17.04.2016, 21:05