Kérdés:
Hogyan lehet utánozni a málna pi 2-t az Ubuntu 14.04 PC-n?
dotslash
2016-06-29 15:55:49 UTC
view on stackexchange narkive permalink

Itt kaptam egy képet az újratervezett Raspberry Pi-ről. Nevezzük úgy, hogy pi2-16gb.img

ARM Raspberry Pi 2 B v1.1 modell emulálása Ubuntu PC-n

Most szeretném utánozni fizikailag beillesztem egy Pi 2-be.

Létrehoztam egy indítási szkriptet start_arm_pi.sh így:

  #! / bin / bash # A málna pi kép konfigurációs módban indul. cryptdevice = / dev / mmcblk0p2: crypt_sdcard pánik = 1 rootfstype = ext4 rw init = / bin / bash "\ -hda /path/to/pi2-16gb.img 

De hibával:

  pulseaudio: set_sink_input_volume () failpulseaudio: Ok: Érvénytelen argumentpulseaudio: set_sink_input_mute () failpulseaudio: Ok: Érvénytelen argumentum  

A képről

Valójában a pi2-16gb.img képfájlnak két partíciója van.

/ boot / innen: / dev / mmcblk0p1 és / innen: / dev / mmcblk0p2 . De a / dev / mmcblk0p2 kódot LUKS titkosítás titkosítja.

A kernel.img az un- titkosított partíció /dev/mmcblk0p1

A / dev / mmcblk0p1 partícióban található összes fájl ( / boot / kód> vannak ezen a képen.

enter image description here

És szerintem a cmdline.txt és a config.txt hasznos lehet.

A cmdline.txt tartalma

dwc_otg.fiq_fix_enable = 0 konzol = ttyAMA0,115200 kgdboc = ttyAMA0,115200 konzol = tty1 elevator = deadline root = / dev / mapper / crypt_sdcard cryptdevice = / dev / mmcblk0p2: crypt_sdcard rootfstype = ext4 rootwait

A config.txt tartalma

initramfs initramfs.gz 0x00f00000 hdmi_ignore_hotplug = 1

Van ötlete, amely utánozza Pi-t az Ubuntu PC-n?

Milliót köszönöm !!


frissítve

Egy fizikai Pi 2-n futott ez a kép.

És a TTL soros portról (Tx, Rx) az alábbiak szerint kaptam üzeneteket)

pastebin(dot)com/Y7Xg5WRg

információs sor a kernel parancsról:

[0.000000] A rendszermag parancssora: dma.dmachans = 0x7f35 bcm2708_fb.fbwidth = 656 bcm2708_fb.fbheight = 416 bcm2709.boardrev = 0xa21041 bcmx70c95serf = 0 macaddr = B8: 27: EB: 25: 60: 6F bcm2708_fb.fbswap = 1 bcm2709.disk_led_gpio = 47 bcm2709.disk_led_active_low = 0 sdhci-bcm2708.emmc_clock_freq = 250000000 vc_mem.mc_dem konzol = ttyAMA0,115200 kgdboc = ttyAMA0,115200 konzol = tty1 elevator = határidő gyökér = / dev / mapper / crypt_sdcard cryptdevice = / dev / mmcblk0p2: crypt_sdcard rootfstype = ext4 rootwait

hasznos?


frissítve

Azt tapasztaltam, hogy a qemu támogatja a Raspberry Pi 2-t a 2.6.0 verziótól a doc oldala szerint: wiki.qemu (dot) org / ChangeLog / 2.6

Így összeállítottam a qemu 2.6.0 verziót az Ubuntu 14.04 x86_64 számítógépemen . És elindultam ezzel a paranccsal.

  /usr/local/src/qemu-2.6.0/bin/debug/native/arm-softmmu/qemu-system-arm \ - kernel /path/to/boot_for_pi2/kernel7.img \ -cpu arm1176 -m 256 \ -M raspi2 \ -no-reboot \ -sorial stdio \ -sd /path/to/pi2-16gb.img \ -append "dwc_otg. fiq_fix_enable = 0 konzol = ttyAMA0,115200 kgdboc = ttyAMA0,115200 konzol = tty1 lift = határidőgyökér = / dev / mapper / crypt_sdcard cryptdevice = / dev / mmcblk0p2: crypt_sdcard rootfstype = ext4 "  És most itt van a kimenet.  
  FIGYELMEZTETÉS: A „/path/to/pi2-16gb.img” fájlhoz nem adták meg a képformátumot, és a tesztelés nyers volt. A formátum automatikus észlelése veszélyes a nyers képek esetében, a 0. blokkban az írási műveletek korlátozottak lesznek. A korlátozások eltávolításához határozza meg kifejezetten a „nyers” formátumot.
A Linux tömörítése ... kész, a kernel indítása.  

De itt megállt, és a qemu ablak fekete, semmi ...

Ez azt jelenti, hogy valami nincs rendben a kernel?

A kernel7.img fájl a / boot / partícióból származik.


updated

Sikeresen, de hibával indítottam az emulátort ...

  /usr/local/src/qemu-2.6.0/bin/debug/native/arm-softmmu / qemu-system-arm \ -kernel /path/to/kernel-qemu-4.4.11-jessie \ -m 256 \ -cpu arm1176 \ -M versatilepb \ -no-reboot \ -sorial stdio \ -hda / media / alex / F049-1FB6 / 2016-05-27-raspbian-jessie.img \ -append "dwc_otg.lpm_enable = 0 root = / dev / sda2 rootfstype = ext4 elevator = deadline fsck.repair = yes rootwait init = / bin / bash "\  

Az illesztőprogram felszerelhető. Itt teszteltem egy legfrissebb raszbi képpel p> github (dot) com / dhruvvyas90 / qemu-rpi-kernel

De volt egy kernelpánikom ...

Itt a hiba részletesen.

debug error kernel panic

Nem úgy tűnik, hogy a "#!" És a "/ bin / bash" között van szóköz. Úgy gondolom, hogy a szkript működéséhez szükség van a szóközre.
Rendben van. Nem ez a dolog.
Nem szabad "Versatile" vagy "Qemu" kernelt használni a legújabb QEMU verzióval. Használja a valódi Raspberry Kernelt (vonja ki a képből?).
Kipróbáltam a képből származó kernelt, de még nem is töltődött be. Tehát milyen CPU-modellt kell beállítanom a `qemu` 2.6 használatához?
Új kérdést tettem fel a qemuval és a keresztkompilált málna pi-2 kernellel a busyboxszal az initramfs-ben: http: //raspberrypi.stackexchange.com/questions/56302/qemu-2-7-0-for-the-raspi2-machine- ne-mutasd csak a második-tty-konzolt-csak
Érdekes kérdésed van, de sajnos nincs egyértelműen megfogalmazva. Először úgy tűnik, hogy problémája van a pulseaudióval. Ezután megemlítesz 3 különböző kernelt (`kernel.img`,` kernel7.img` és `kernel-qemu-4.4.11-jessie`), és én küzdök, hogy megértsem, melyikre van szükséged a rendszerindításhoz, és mi történt, amikor mindegyiket kipróbálta. A kontextus megadása jó, de ebben az esetben a tényleges kérdés teljesen el van rejtve a nem alapvető információkban.
Az [Emulation on a Linux PC] lehetséges másolata (https://raspberrypi.stackexchange.com/questions/165/emulation-on-a-linux-pc)
Kettő válaszokat:
Ruslan
2017-08-14 21:55:40 UTC
view on stackexchange narkive permalink

Sikerült elindítanom a Raspbian Jessie Lite-t a Kubuntu 14.04-en, miután a QEMU-t gitből állítottam össze. Van egy kis probléma: Nem tettem a billentyűzet bevitelét működőképessé (inkább a virtuális soros terminált kell használnom).

Egyébként a következőt tettem:

1) Fordítsd le a QEMU-t a gitből (állítsd be az opciókat az igényeidnek megfelelően, de ezek elég jól működtek nekem):

  $ sudo apt-get build-dep qemu $ git klón https: // github. com / qemu / qemu $ cd qemu $ ./configure --prefix = $ HOME / opt / qemu --with-sdlabi = 1.2 \ --disable-gtk --enable-sdl $ make $ make install  

2) A Raspbian képpartíció elrendezésének meghatározása:

  $ fdisk -l 2017-07-05-raspbian-jessie-lite.imgDisk 2017-07-05-raspbian-jessie -lite.img: 2147 MB, 2147483648 bájt255 fej, 63 szektor / sáv, 261 henger, összesen 4194304 szektor Egységek = 1 * 512 = 512 bájt szektorok Szektor mérete (logikai / fizikai): 512 bájt / 512 bájt optimális): 512 byte / 512 byte Lemezazonosító: 0x5e88b289 Device Boot Start End Blocks Id System2017-07-05-raspbian-jessie -lite.img1 8192 93596 42702+ c W95 FAT32 (LBA) 2017-07-05-raspbian-jessie-lite.img2 94208 4194303 2050048 83 Linux  

3) A Mount Raspbian image első partíciója figyelembe véve a fenti partíciók kezdetének adatait (8192. szektor az 1. partícióhoz):

  $ cd ~ / raspbian $ sudo mkdir -pv / mnt / tmp $ sudo mount ./2017- 07-05-raspbian-jessie-lite.img / mnt / tmp / -oloop, offset = $ ((8192 * 512))  

4) Vigye onnan a kezdeti cmdline.txt fájlt, valamint a helyes kernel és a .dtb fájl:

  $ cp -v /mnt/tmp/{kernel7.img,bcm2709-rpi-2-b. dtb, cmdline.txt}.  

5) Csatolja le a képet:

  $ sudo umount / mnt / tmp  

6) Annak elkerülése érdekében, hogy a kernel panaszkodjon arra, hogy a gyökérpartíció meghaladja az SD-kártya méretét, csatoljon egy kis nullát a képhez (itt 2 GiB-t választok - ez egy kicsit túlterhelés, de nem fog fájni, az Ön igényeinek megfelelően):

  $ fallocate -l 2G ./2017-07-05-raspbian-jessie-lite.img  

7) Mi végre végre tud hajtani egy első indítást, ahol a kezdeti szkript átméretezi a fájlrendszert, hogy illeszkedjen az egész eszközhöz:

  $ ~ / opt / qemu / bin / qemu-system-arm -M raspi2 -kernel ./kernel7.img \ -dtb ./bcm2709-rpi-2-b.dtb -sd ./2017-07-05-raspbian-jessie-lite.img \ -append "$ (<cmdline.txt)"  

A kernel nem fog alaphelyzetbe állni, ezért amikor kinyomtatja a sysrq: SysRq: Resetting fájlt, egyszerűen megöli a QEMU-t a Ctrl + C segítségével vagy bezárja annak ablakát.

8) Csatlakoztassa újra a rendszerindító partíciót, és másolja a frissített cmdline.txt:

  $ sudo mount ./2017-07-05-raspbian-jessie-lite fájlt. img / mnt / tmp / -oloop, offset = $ (((8192 * 512)) $ cp -v /mnt/tmp/cmdline.txt. $ sudo umount / mnt / tmp  

9) Végül indítsd el a QEMU-t, ahogy a 7. lépésben tetted, és a Raspbian normálisan elindul, így egy-két perc múlva a bejelentkezési üzenet jelenik meg.

Mivel most nem működik a billentyűzet (úgy tűnik, ez az RPi QEMU korlátozása), akkor valószínűleg telepítenie kell a virtuális soros konzolt. Ehhez ellenőrizze, hogy a végső cmdline.txt console = ttyAMA0,115200 (és nincs-e más említése a ttyAMA0 -ról) és QEMU parancs sor -sorial stdio opció van jelen. Ez megadja a QEMU által használt terminálon a bejelentkezési kérdést, ahol beírhatja és használhatja a rendszerét.

A QEMU elpusztulásának elkerülése érdekében, amikor a soros konzolba írja be a Ctrl + C billentyűt, lásd: ez a Unix.SE bejegyzés.

Köszönet a megosztásért! Néhány beállítással [itt] is elkészítettem (https://serverfault.com/questions/787038/rasbianarm-in-qemu-emulator-with-kernel-panic-not-syncing-attempted-to-kill/787042#787042 )
Dave Newton
2016-06-29 18:54:28 UTC
view on stackexchange narkive permalink

Csak a kifejezetten támogatott (vagy a hozzáadott) eszközöket tudja utánozni, például: http://qemu.weilnetz.de/qemu-doc.html#ARM-System-emulator.

AFAICT az RPi hardver egyes részeit testreszabás nélkül nem támogatjuk.

De úgy látom, hogy a `qemu` 2.6 verzió már támogatja a málna pi 2-t. http://wiki.qemu.org/ChangeLog/2.6 Milyen parancsokat kell használnom a kép indításához? Összeállítottam egy újabb `qemu 2.6` -t már tesztelésre.
Az idézett kiadási megjegyzésekből: "Új részleges Raspberry Pi 2 emuláció" raspi2 "típusú géppel. Egyelőre a Windows és a Raspbian régebbi verzióit tudja elindítani, de számos eszköz hiányzik, beleértve az USB-t is." Tehát valószínűleg csak használjon Wheezy (nem Jessie) képeket, és az USB nem működik (ami meglehetősen triviális).
@PhilB. "... hiányzik számos eszköz" elég homályos, nem? Ez azt jelenti, hogy az integrált hardver, például az audio nem működik.
@PhilB. Frissítettem ezt a kérdést. És a qemu nem megfelelően indította a kernelt. @Dave Newton, most nem fogok más eszközt csatolni hozzá. Lehetséges legyen utánozni, csak maga az `img` fájl.


Ezt a kérdést és választ automatikusan lefordították angol nyelvről.Az eredeti tartalom elérhető a stackexchange oldalon, amelyet köszönünk az cc by-sa 3.0 licencért, amely alatt terjesztik.
Loading...