1 (edytowany przez jzef 2017-01-02 14:44:43)

Temat: OpenWrt x86 z RAM

Interesuje mnie jak odpalić OpenWrt z pamięci RAM tzn. z obrazu dysku wczytanego do RAM.

Debiana Live odpalam za pomocą dwóch plików: vmlinuz2 initrd2.img tak:

title Debian Live
kernel /pxe/images/debian-live/vmlinuz2 boot=live live-media-path=/pxe/images/debian-live/live/ config vga=791
initrd /pxe/images/debian-live/initrd2.img

Coś tam mi się udało jak w make menuconfig zaznaczyłem:
Target Images -> ramdisk i wybrałem np. opcję kompresji gzip
Zbudowało mi plik wielkości 4MB: openwrt-x86-generic-ramfs.bzImage

Odpaliłem ten plik jako kernel za pomocą GRUB4DOS:

title OpenWrt CC 15.05.1
kernel /pxe/images/openwrt/ramfs.bzImage

ale nie działa LuCI i w konsoli jest nieznana rewizja: CHAOS CALMER (Chaos Calmer, unknown)
Próbowałem najpierw odpalać plik openwrt-x86-generic-vmlinuz ale kończy się to Kernel panic i komunikatem iż nie może zamontować systemu plików rootfs
Da się jakoś odpalić normalną wersję z RAM?

2

Odp: OpenWrt x86 z RAM

Zbuduj sobie obraz initramfs, będziesz miał rootfs zintegrowane z kernelem.

3

Odp: OpenWrt x86 z RAM

pepe2k napisał/a:

Zbuduj sobie obraz initramfs, będziesz miał rootfs zintegrowane z kernelem.

Czy to chodzi o tę opcję w make menuconfig? :
http://savepic.net/8779615m.png
Zbudowałem, ale w którym pliku w /bin mam tego szukać po kompilacji? Zbudowało mi takie pliki:

openwrt/bin/x86

openwrt-x86-generic-rootfs-squashfs.img
openwrt-x86-generic-Generic-rootfs.tar.gz
openwrt-x86-generic-ramfs.bzImage
openwrt-x86-generic-vmlinuz
openwrt-x86-generic-rootfs-ext4.img.gz
openwrt-x86-generic-combined-squashfs.img
openwrt-x86-generic-combined-ext4.img.gz

4 (edytowany przez pepe2k 2017-01-02 16:06:20)

Odp: OpenWrt x86 z RAM

Nie, to się nazywa "ramdisk" (a obraz będzie miał w nazwie "initramfs") i musisz to sobie najpierw dodać do FEATURES w target/linux/x86/generic/target.mk (albo w głównym Makefile, w target/linux/x86/Makefile) - sprawdź sobie jak to jest zrobione w innych targetach (np. oxnas, realview).

Potem usuń katalog tmp i po wejściu w menuconfig, w "Target Images" powinna pojawić się opcja "ramdisk" (nie mam pojęcia jak to zbudowałeś wcześniej jak domyślnie dla x86/generic ramdisk nie jest dostępny).

5

Odp: OpenWrt x86 z RAM

pepe2k napisał/a:

Nie, to się nazywa "ramdisk" (a obraz będzie miał w nazwie "initramfs") i musisz to sobie najpierw dodać do FEATURES w target/linux/x86/generic/target.mk (albo w głównym Makefile, w target/linux/x86/Makefile) - sprawdź sobie jak to jest zrobione w innych targetach (np. oxnas, realview).

Potem usuń katalog tmp i po wejściu w menuconfig, w "Target Images" powinna pojawić się opcja "ramdisk" (nie mam pojęcia jak to zbudowałeś wcześniej jak domyślnie dla x86/generic ramdisk nie jest dostępny).

Czytałeś mój pierwszy post? Przecież opcja ramdisk jest dostępna domyślnie w make menuconfig bez żadnych modyfikacji i buduje to plik o nazwie: openwrt-x86-generic-ramfs.bzImage i ten odpala z RAM ale tak jak napisałem bez LuCI.

No chyba, że ten Twój ramdisk to zupełnie coś innego?

6

Odp: OpenWrt x86 z RAM

jzef napisał/a:
pepe2k napisał/a:

Nie, to się nazywa "ramdisk" (a obraz będzie miał w nazwie "initramfs") i musisz to sobie najpierw dodać do FEATURES w target/linux/x86/generic/target.mk (albo w głównym Makefile, w target/linux/x86/Makefile) - sprawdź sobie jak to jest zrobione w innych targetach (np. oxnas, realview).

Potem usuń katalog tmp i po wejściu w menuconfig, w "Target Images" powinna pojawić się opcja "ramdisk" (nie mam pojęcia jak to zbudowałeś wcześniej jak domyślnie dla x86/generic ramdisk nie jest dostępny).

Czytałeś mój pierwszy post? Przecież opcja ramdisk jest dostępna domyślnie w make menuconfig bez żadnych modyfikacji i buduje to plik o nazwie: openwrt-x86-generic-ramfs.bzImage i ten odpala z RAM ale tak jak napisałem bez LuCI.

Ops, mój błąd, sprawdzałem na swoich, zmodyfikowanych źródłach... no skoro się uruchamia, to znaczy że działa. Sprawdź, czy masz LuCI na liście zainstalowanych pakietów i czy rzeczywiście pliki są dodane do obrazu.

7

Odp: OpenWrt x86 z RAM

pepe2k napisał/a:

Sprawdź, czy masz LuCI na liście zainstalowanych pakietów i czy rzeczywiście pliki są dodane do obrazu.

Kompilowałem praktycznie z domyślnymi opcjami w make menuconfig - jedynie ustawiłem Target na x86 i 3 sterowniki dźwięku. Jeśli LuCI nie jest domyślnie włączone to pewnie nie skompilowało - niestety nie zdążyłem sprawdzić bo postanowiłem wyczyścić ręcznie folder /bin/x86 ale wyczyściłem chyba za dużo bo nie mogę teraz odpalić ani make menuconfig ani make

Od nowa kompiluję wszystko na świeżym systemie roll roll

P.S. i stanęło mi na pobieraniu jakiegoś patcha. Da się jakoś wznowić od tego momentu kompilację czy trzeba puszczać od nowa?

8

Odp: OpenWrt x86 z RAM

Po prostu zrób make, pójdzie dalej.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.