Busybox: Ein Schweizer Taschenmesser voller kleiner Befehle. SCHRITT 1: Erstellen Sie eine Verzeichnisstruktur Erstellen Sie das Stammdateisystemverzeichnis, das hauptsächlich die folgenden Verzeichnisse enthält /dev /etc /lib /usr /var /proc /tmp /home /root /mnt /bin /sbin /sys #mkdir /home/rootfs #cd /home/rootfs #mkdir dev usw. lib usr var proc tmp home root mnt sys SCHRITT 2: Verwenden Sie busybox zum Erstellen von /bin /sbin linuxrc Wechseln Sie in das Verzeichnis busybox-1.16.1 und führen Sie es aus #defconfig erstellen #Menükonfiguration erstellen Busybox-Einstellung -----> Build-Optionen -----> //1 Wählen Sie die statische Kompilierung von Busybox. [*]BusyBox als statische Binärdatei erstellen (keine gemeinsam genutzten Bibliotheken) //2. Geben Sie den Cross-Compiler als (/usr/local/arm/4.3.2/bin/arm-linux-)Cross-Compiler-Präfix an Installationsoptionen -----> (Wählen Sie das Verzeichnis zum Speichern der generierten Dateien aus, oder Sie können sie ohne Kopieren direkt in das Root-Dateisystem einfügen.) //3. Wählen Sie „/usr nicht verwenden“ Busybox-Bibliotheksoptimierung---> [*]Benutzernamen-Vervollständigung [*]Ausgefallene Shell-Eingabeaufforderungen [*]Cursorposition vom Terminal abfragen //4. Der kompilierte Busybox-Shell-Befehlsinterpreter unterstützt die Anzeige des aktuellen Pfads und der Hostinformationen Speichern und beenden
Im Busybox-Verzeichnis finden Sie das Verzeichnis _install, das drei Dateien enthält: /bin /sbin und linuxrc. Kopieren Sie diese drei Verzeichnisse bzw. Dateien in den im ersten Schritt erstellten Rootfs-Ordner. Denken Sie daran, den Parameter -a anzugeben, da das Bin-Verzeichnis größtenteils aus Links besteht. Wenn Sie den Parameter -a nicht angeben, wird er nach dem Kopieren entsprechend kopiert und hat nicht mehr die Form eines Links. SCHRITT 3 Erstellen Sie das Verzeichnis etc: (hauptsächlich die Datei etc/inittab, etc/init.d/rcs, etc/fstab) 1) Wechseln Sie in das Verzeichnis etc. des Root-Dateisystems rootfs und führen Sie die folgenden Vorgänge aus: Kopieren Sie #cp –r busybox-1.16.1/Beispiele/bootfloopy/usw./* rootfs/usw. Ändern Sie inittab (erstellen Sie darauf basierend andere Unterprozesse). Die Originaldatei ist: 1 ::sysinit:/etc/init.d/rcS 2 ::respawn:-/bin/sh 3 tty2::askfirst:-/bin/sh 4 ::ctrlaltdel:/bin/umount -a -r Nach der Änderung: ---(1): Starten Sie den Computer, ohne sich anzumelden, und öffnen Sie direkt die Shell (die Zahl davor ist die Zeilennummer). 1 ::sysinit:/etc/init.d/rcS 2 #::respawn:-/bin/sh 3 #::respawn:-/bin/login 4 console::askfirst:-/bin/sh 5 #tty2::askfirst:-/bin/sh 6 ::ctrlaltdel:/bin/umount -a -r ---(2): Zum Booten müssen Sie sich anmelden (die Zahl davor ist die Zeilennummer) 1 ::sysinit:/etc/init.d/rcS 2 #::respawn:-/bin/sh 3 ::respawn:-/bin/login 4 #console::askfirst:-/bin/sh 5 #tty2::askfirst:-/bin/sh 6 ::ctrlaltdel:/bin/umount -a -r 2) Kopieren Sie /etc/passwd, /etc/group, /etc/shadow auf der virtuellen Maschine nach rootfs/etc # cp /etc/passwd rootfs/etc # cp /etc/Gruppe rootfs/etc # cp /etc/Schattendächer/etc Ändern Sie die folgenden drei Dateien und speichern Sie nur die Elemente, die sich auf root beziehen. Der Inhalt variiert je nach der jeweiligen Situation. Ändern Sie das Passwort in root:x:0:0:root:/root:/bin/sh, was bedeutet, dass nur mit root in Zusammenhang stehende Elemente gespeichert werden, und ändern Sie es abschließend in /bin/ash. Ändern Sie die Gruppe in root:x:0:root Schatten zur Wenn Sie sich beim Entwicklungsboard anmelden, müssen Sie Ihren Benutzernamen und Ihr Passwort eingeben, die mit denen der virtuellen Maschine identisch sind. 3) Profil ändern PATH=/bin:/sbin:/usr/bin:/usr/sbin //Umgebungsvariable für ausführbares Programm export LD_LIBRARY_PATH=/lib:/usr/lib //Umgebungsvariable für dynamische Linkbibliothek /bin/Hostname osee BENUTZER="`id -un`" LOGNAME=$USER HOSTNAME='/bin/hostname' PS1='[\u@\h \W]# ' //Hostnamen, aktuellen Pfad und weitere Informationen anzeigen: 4) Ändern Sie die Datei etc/init.d/rc.S (fügen Sie Befehle zur automatischen Ausführung hinzu) #! /bin/sh /bin/mount -n -t ramfs ramfs /var /bin/mount -n -t ramfs ramfs /tmp /bin/mount -n -t sysfs keine /sys /bin/mount -n -t ramfs keine /dev /bin/mkdir /var/tmp /bin/mkdir /var/modules /bin/mkdir /var/run /bin/mkdir /var/log /bin/mkdir -p /dev/pts //Erforderlich für den Telnet-Dienst /bin/mkdir -p /dev/shm //Erforderlich für den Telnet-Dienst #echo /sbin/mdev > /proc/sys/kernel/hotplug //Automatisches USB-Mounting erfordert /sbin/mdev -s //Starten Sie mdev, um automatisch Gerätedateiknoten unter /dev zu erstellen /bin/mount -a ########Netzwerk konfigurieren###################################### /sbin/ifconfig lo 127.0.0.1 Netzmaske 255.0.0.0 /sbin/ifconfig eth0 192.168.1.70 /sbin/ifconfig eth0 Netzmaske 255.255.255.0 /sbin/route add default gw 192.168.1.1 eth0 /sbin/ifconfig eth1 192.168.1.71 Netzmaske 255.255.255.0 /sbin/route add default gw 192.168.1.1 eth1 5) Ändern Sie die Datei etc/fstab und fügen Sie die folgende Datei hinzu, um das proc tmpfs-Dateisystem zu mounten #Geräte-Einhängepunkt-Typ Optionen Dump Fsck Reihenfolge keine /dev/pts devpts Modus=0622 0 0 tmpfs /dev/shm tmpfs-Standardwerte 0 0 proc /proc proc-Standardwerte 0 0 SCHRITT 4 Erstellen Sie das Lib-Verzeichnis: (~/at91/x-tools/arm-zch-linux-gnueabi/arm-zch-linux-gnueabi/sysroot/lib, ich kopiere einfach die SO-Datei in dieses Verzeichnis) 1 Kopieren Sie die folgenden dynamischen Bibliotheken nach rootfs/lib 2 Kopieren Sie die folgenden dynamischen Bibliotheken nach rootfs/lib SCHRITT 5 Erstellen Sie das lmdev-Verzeichnis: Methode 1: Gerätedateien statisch erstellen cat /proc/devices mknod-Konsole c 5 1 mknod null c 1 3 mknod ttySAC0 c 204 64 mknod mtdblock0 b 31 0 Methode 2: Verwenden Sie mdev, um eine Gerätedatei zu erstellen Stellen Sie sicher, dass Ihr Kernel Beim Start des Kernels wird mdev automatisch ausgeführt Ändern Sie etc/fstab, um das Root-Dateisystem automatisch zu mounten. Ändern Sie etc/init.d/rcS, um automatisch auszuführende Befehle hinzuzufügen. Zusammenfassen Oben sind die detaillierten Schritte zum Transplantieren von Busybox zum Erstellen eines minimalen Root-Dateisystems, die vom Herausgeber vorgestellt wurden. Ich hoffe, dass es für alle hilfreich sein wird. Wenn Sie Fragen haben, hinterlassen Sie mir bitte eine Nachricht und der Herausgeber wird Ihnen rechtzeitig antworten. Ich möchte auch allen für ihre Unterstützung der Website 123WORDPRESS.COM danken! Das könnte Sie auch interessieren:
|
>>: Detaillierter Vergleich von Ember.js und Vue.js
Die Ausführungsreihenfolge der SQL-Abfrageanweisu...
Inhaltsverzeichnis 1. Der Unterschied zwischen Fu...
transformieren und übersetzen Transformieren bezi...
Wenn Sie einer Option das Attribut selected = &quo...
1. Laden Sie zunächst die neueste Version von MyS...
Standardmäßig läuft Docker über einen nicht verne...
Inhaltsverzeichnis 1. Grundlegende Verwendung von...
Inhaltsverzeichnis Problembeschreibung Historisch...
Jeder, der schon einmal Windows Remote Desktop zu...
Dieser Artikel stellt 4 Methoden zum Erzielen ein...
Überblick: Oracle Scott-Benutzer haben vier Tabel...
Eine Reihe von MySQL-Bibliotheken zum Testen. Die...
Schritt 1: Den aktuellen Kernel anzeigen rew $ un...
Dieser Artikel dokumentiert die Installation von ...
MySQL effiziente Abfrage MySQL verzichtet auf „Gr...