-
Notifications
You must be signed in to change notification settings - Fork 2
NP2300+ Emulation
Norman Zhi edited this page May 9, 2026
·
1 revision
NP2300+-specific steps.
Download NP2300+(INAND V1.02).* from NP2300+TF卡修复升级程序V1.02.rar from official website:
https://downloads.youxuepai.com/source/list.shtml#117&name=NP2300+
#!/bin/bash -ex
in="NP2300+(INAND V1.02).idx"
# Create NP7000 system image
./dump_mop_image.py -s $((8*1024*1024*1024)) "$in" .
# (Optional) Convert NAND image to qcow2 format
qemu-img convert -f raw -O qcow2 image.bin image.qcow2Optionally create qcow2 overlay files, as snapshots, like this:
qemu-img create -f qcow2 -F qcow2 -b image.qcow2 image_overlay.qcow2The gpio-matrix-keypad device includes a very basic config parser for mapping keyboard input to device matrix keyboard.
Key names can be found in qemu/qapi/ui.json,
Or use --trace gpio_matrix_keypad_event QEMU trace log option to see key events.
Create a yaml mapping file named keymap.yaml:
---
keymap:
pin-0: "home" # HOME
pin-1: "up" # UP
pin-2: "down" # DOWN
pin-3: "left" # LEFT
pin-4: "right" # RIGHT
pin-5: "ret" # ENTER
pin-6: "esc" # ESC
pin-7: "pgup" # VOL+
pin-8: "pgdn" # VOL-
pin-9: "f12" # POWER
pin-28: "1" # charging not done
pin-29: "2" # charger & USB not connected
pin-30: "3" # MSC1 SD card removed
pin-31: "4" # BOOT_SEL1: 0: MSC0, 1: NANDsystem_image=image_overlay.qcow2
mmc_image=mmc_overlay.qcow2
./qemu-system-mipsel \
-M noah_np2300p -cpu JZ4755 \
-d guest_errors,unimp \
-bios jz4750.bin \
-parallel null \
-serial none \
-serial tcp:localhost:7646 \
-global gpio-matrix-keypad.map-file=keymap.yaml \
-spice port=5910,disable-ticketing=on \
-display none \
-audio spice \
\
-blockdev driver=file,node-name=mmc0_qcow2,filename=$system_image \
-blockdev qcow2,node-name=mmc0,file=mmc0_qcow2 \
-device sd-card,spec_version=3,drive=mmc0,bus=sd-bus-msc0 \
\
-blockdev driver=file,node-name=mmc1_qcow2,filename=$mmc_image \
-blockdev qcow2,node-name=mmc1,file=mmc1_qcow2 \
-device sd-card,spec_version=3,drive=mmc1,bus=sd-bus-msc1Note that we are using jz4750.bin bootrom, although the SoC is JZ4755.
The jz4755.bin bootrom does not support booting from MSC0 yet.
TODO