Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Using prebuilt linuxsdk docker image #8

Open
fanghuaqi opened this issue Nov 3, 2022 · 8 comments
Open

Using prebuilt linuxsdk docker image #8

fanghuaqi opened this issue Nov 3, 2022 · 8 comments
Assignees
Labels
documentation Improvements or additions to documentation

Comments

@fanghuaqi
Copy link
Member

fanghuaqi commented Nov 3, 2022

We have prepared a linuxsdk docker image located in https://hub.docker.com/repository/docker/nucleisoftware/linuxsdk, you can use the docker image there, if you don't want to step the environment by yourself.

If you don't want to use docker, please following #4 to download code

The following branches are enabled with docker support:
Available tags: https://hub.docker.com/repository/docker/nucleisoftware/linuxsdk/tags

  • dev_nuclei_next: nucleisoftware/linuxsdk:ci , later on it will be nucleisoftware/linuxsdk:dev_nuclei_next
  • dev_nuclei_5.10/dev_nuclei_5.10_v2/dev_nuclei_6.1/dev_nuclei_6.1_v2/dev_nuclei_6.6_v2: docker tag is the branch name, eg. for branch dev_nuclei_5.10, the docker image is nucleisoftware/linuxsdk:dev_nuclei_5.10

NOTE For evaluating optee, see #13 , this docker image is uploaded by @fanghuaqi manually, not ci generated.

Recommended docker tags: dev_nuclei_5.10_v2, dev_nuclei_6.1_v2, dev_nuclei_6.6_v2

NOTE: not work for upload freeloader, you need to copy the freeloader to out side of docker, and program to flash using openocd and gdb by yourself, see https://github.com/Nuclei-Software/nuclei-linux-sdk/wiki/Program-freeloader

Sample steps:

  1. Make sure your docker is installed in your linux environment, see https://docs.docker.com/engine/install/ubuntu/
  2. Make sure you have good connection to docker hub, otherwise use mirror of docker hub, search it by yourself
  3. Use the docker image of linux sdk
# In Host
## if using docker hub mirror from docker.mirrors.sjtug.sjtu.edu.cn , you can run like this
# docker run -it docker.mirrors.sjtug.sjtu.edu.cn/nucleisoftware/linuxsdk:dev_nuclei_5.10_v2
# Here below just pull docker from official docker hub
docker run -it nucleisoftware/linuxsdk:dev_nuclei_5.10_v2
# In docker now, user/pwd: nuclei/riscv123
cd nuclei-linux-sdk
# build project just follow https://github.com/Nuclei-Software/nuclei-linux-sdk#show-help
# this linux sdk repo cloned in this docker image is not full clone
# if you want to update source code or checkout different branch, do it as you like

image

image

@fanghuaqi fanghuaqi added the documentation Improvements or additions to documentation label Nov 3, 2022
@fanghuaqi fanghuaqi self-assigned this Nov 3, 2022
@fanghuaqi
Copy link
Member Author

fanghuaqi commented Nov 3, 2022

In this docker image, SOC=demosoc CORE=ux600 is default prebuilt with freeloader and bootimages, you can directly use it, Nuclei QEMU is also installed, but Nuclei OpenOCD is not installed.

2023.11.24 -> For latest image, it use the default config in Makefile.

fanghuaqi added a commit that referenced this issue Jun 26, 2023
Not tested with dma device, only test boot with bit ux900_best_config_8c_vcu118_50M_a865d7fa5_ae96c6e3b_202306121521.bit

OpenSBI v0.9
   ____                    _____ ____ _____
  / __ \                  / ____|  _ \_   _|
 | |  | |_ __   ___ _ __ | (___ | |_) || |
 | |  | | '_ \ / _ \ '_ \ \___ \|  _ < | |
 | |__| | |_) |  __/ | | |____) | |_) || |_
  \____/| .__/ \___|_| |_|_____/|____/_____|
        | |
        |_|

Platform Name             : Nuclei Evaluation SoC
Platform Features         : timer,mfdeleg
Platform HART Count       : 8
Firmware Base             : 0xa0000000
Firmware Size             : 156 KB
Runtime SBI Version       : 0.2

Domain0 Name              : root
Domain0 Boot HART         : 0
Domain0 HARTs             : 0*,1*,2*,3*,4*,5*,6*,7*
Domain0 Region00          : 0x00000000a0000000-0x00000000a003ffff ()
Domain0 Region01          : 0x0000000000000000-0xffffffffffffffff (R,W,X)
Domain0 Next Address      : 0x00000000a0200000
Domain0 Next Arg1         : 0x00000000a8000000
Domain0 Next Mode         : S-mode
Domain0 SysReset          : yes

Boot HART ID              : 0
Boot HART Domain          : root
Boot HART ISA             : rv64imafdcbsu
Boot HART Features        : scounteren,mcounteren,time
Boot HART PMP Count       : 16
Boot HART PMP Granularity : 4096
Boot HART PMP Address Bits: 30
Boot HART MHPM Count      : 0
Boot HART MHPM Count      : 0
Boot HART MIDELEG         : 0x0000000000000222
Boot HART MEDELEG         : 0x000000000000b109

U-Boot 2021.01-00019-gb9162c6c8f (Jun 26 2023 - 10:38:33 +0800)

CPU:   rv64imafdc
Model: nuclei,evalsoc
DRAM:  1.5 GiB
Board: Initialized
MMC:   Nuclei SPI version 0xee010102
spi@10034000:mmc@0: 0
In:    serial@10013000
Out:   serial@10013000
Err:   serial@10013000
Net:   No ethernet found.
Hit any key to stop autoboot:  0
switch to partitions #0, OK
mmc0 is current device
Scanning mmc 0:1...
Found U-Boot script /boot.scr
725 bytes read in 319 ms (2 KiB/s)
Boot images located in .
Loading kernel: ./uImage.lz4
3988041 bytes read in 18370 ms (211.9 KiB/s)
Loading ramdisk: ./uInitrd.lz4
5487300 bytes read in 25156 ms (212.9 KiB/s)
./kernel.dtb not found, ignore it
Starts booting from SD
   Image Name:   Linux
   Image Type:   RISC-V Linux Kernel Image (lz4 compressed)
   Data Size:    3987977 Bytes = 3.8 MiB
   Load Address: a0400000
   Entry Point:  a0400000
   Verifying Checksum ... OK
   Image Name:   Initrd
   Image Type:   RISC-V Linux RAMDisk Image (lz4 compressed)
   Data Size:    5487236 Bytes = 5.2 MiB
   Load Address: 00000000
   Entry Point:  00000000
   Verifying Checksum ... OK
   Booting using the fdt blob at 0xa8000000
   Uncompressing Kernel Image
   Using Device Tree in place at 00000000a8000000, end 00000000a80046f9

Starting kernel ...

[    0.000000] Linux version 5.10.0+ (hqfang@whml1.corp.nucleisys.com) (riscv-nuclei-linux-gnu-gcc (GCC) 10.2.0, GNU ld (GNU Binutils) 2.36.1) #8 SMP Wed Ju3
[    0.000000] OF: fdt: Ignoring memory range 0xa0000000 - 0xa0400000
[    0.000000] earlycon: sbi0 at I/O port 0x0 (options '')
[    0.000000] printk: bootconsole [sbi0] enabled
[    0.000000] efi: UEFI not found.
[    0.000000] Initial ramdisk at: 0x(____ptrval____) (5488640 bytes)
[    0.000000] Zone ranges:
[    0.000000]   DMA32    [mem 0x00000000a0400000-0x00000000fdffffff]
[    0.000000]   Normal   empty
[    0.000000] Movable zone start for each node
[    0.000000] Early memory node ranges
[    0.000000]   node   0: [mem 0x00000000a0400000-0x00000000fdffffff]
[    0.000000] Initmem setup node 0 [mem 0x00000000a0400000-0x00000000fdffffff]
[    0.000000] software IO TLB: mapped [mem 0x00000000f8b75000-0x00000000fcb75000] (64MB)
[    0.000000] SBI specification v0.2 detected
[    0.000000] SBI implementation ID=0x1 Version=0x9
[    0.000000] SBI v0.2 TIME extension detected
[    0.000000] SBI v0.2 IPI extension detected
[    0.000000] SBI v0.2 RFENCE extension detected
[    0.000000] SBI v0.2 HSM extension detected
[    0.000000] riscv: ISA extensions acdfim
[    0.000000] riscv: ELF capabilities acdfim
[    0.000000] ccm-block-size for hart 0 is 64 bytes
[    0.000000] ccm-block-size for hart 1 is 64 bytes
[    0.000000] ccm-block-size for hart 2 is 64 bytes
[    0.000000] ccm-block-size for hart 3 is 64 bytes
[    0.000000] ccm-block-size for hart 4 is 64 bytes
[    0.000000] ccm-block-size for hart 5 is 64 bytes
[    0.000000] ccm-block-size for hart 6 is 64 bytes
[    0.000000] ccm-block-size for hart 7 is 64 bytes
[    0.000000] percpu: Embedded 16 pages/cpu s25112 r8192 d32232 u65536
[    0.000000] Built 1 zonelists, mobility grouping on.  Total pages: 378750
[    0.000000] Kernel command line: earlycon=sbi console=ttyNUC0
[    0.000000] Dentry cache hash table entries: 262144 (order: 9, 2097152 bytes, linear)
[    0.000000] Inode-cache hash table entries: 131072 (order: 8, 1048576 bytes, linear)
[    0.000000] Sorting __ex_table...
[    0.000000] mem auto-init: stack:off, heap alloc:off, heap free:off
[    0.000000] Memory: 1426756K/1536000K available (4680K kernel code, 4170K rwdata, 2048K rodata, 188K init, 328K bss, 109244K reserved, 0K cma-reserved)
[    0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=8, Nodes=1
[    0.000000] rcu: Hierarchical RCU implementation.
[    0.000000] rcu: RCU calculated value of scheduler-enlistment delay is 10 jiffies.
[    0.000000] NR_IRQS: 64, nr_irqs: 64, preallocated irqs: 0
[    0.000000] riscv-intc: 64 local interrupts mapped
[    0.000000] plic: interrupt-controller@1c000000: mapped 53 interrupts with 8 handlers for 16 contexts.
[    0.000000] random: get_random_bytes called from 0xffffffe00000296a with crng_init=0
[    0.000000] riscv_timer_init_dt: Registering clocksource cpuid [0] hartid [0]
[    0.000000] clocksource: riscv_clocksource: mask: 0xffffffffffffffff max_cycles: 0x1ef4687b1, max_idle_ns: 112843571739654 ns
[    0.000091] sched_clock: 64 bits at 32kHz, resolution 30517ns, wraps every 70368744171142ns
[    0.009552] Calibrating delay loop (skipped), value calculated using timer frequency.. 0.06 BogoMIPS (lpj=327)
[    0.019287] pid_max: default: 32768 minimum: 301
[    0.026458] Mount-cache hash table entries: 4096 (order: 3, 32768 bytes, linear)
[    0.034271] Mountpoint-cache hash table entries: 4096 (order: 3, 32768 bytes, linear)
[    0.064056] rcu: Hierarchical SRCU implementation.
[    0.070983] EFI services will not be available.
[    0.082244] smp: Bringing up secondary CPUs ...
[    0.169860] smp: Brought up 1 node, 8 CPUs
[    0.182922] devtmpfs: initialized
[    0.208374] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns
[    0.218017] futex hash table entries: 2048 (order: 5, 131072 bytes, linear)
[    0.229919] pinctrl core: initialized pinctrl subsystem
[    0.239105] NET: Registered protocol family 16
[    0.249542] DMA: preallocated 256 KiB GFP_KERNEL pool for atomic allocations
[    0.260681] DMA: preallocated 256 KiB GFP_KERNEL|GFP_DMA32 pool for atomic allocations
[    0.402984] clocksource: Switched to clocksource riscv_clocksource
[    0.423797] NET: Registered protocol family 2
[    0.439056] tcp_listen_portaddr_hash hash table entries: 1024 (order: 2, 16384 bytes, linear)
[    0.448089] TCP established hash table entries: 16384 (order: 5, 131072 bytes, linear)
[    0.460571] TCP bind hash table entries: 16384 (order: 6, 262144 bytes, linear)
[    0.476745] TCP: Hash tables configured (established 16384 bind 16384)
[    0.487182] UDP hash table entries: 1024 (order: 3, 32768 bytes, linear)
[    0.494995] UDP-Lite hash table entries: 1024 (order: 3, 32768 bytes, linear)
[    0.505981] NET: Registered protocol family 1
[    0.516571] RPC: Registered named UNIX socket transport module.
[    0.521942] RPC: Registered udp transport module.
[    0.526916] RPC: Registered tcp transport module.
[    0.531463] RPC: Registered tcp NFSv4.1 backchannel transport module.
[    0.540344] Trying to unpack rootfs image as initramfs...
[    4.281127] Freeing initrd memory: 5352K
[    4.295257] workingset: timestamp_bits=62 max_order=19 bucket_order=0
[    4.378204] jffs2: version 2.2. (NAND)  2001-2006 Red Hat, Inc.
[    4.390380] JFS: nTxBlock = 8192, nTxLock = 65536
[    5.575775] NET: Registered protocol family 38
[    5.579864] io scheduler mq-deadline registered
[    5.584503] io scheduler kyber registered
[    6.147094] 10013000.serial: ttyNUC0 at MMIO 0x10013000 (irq = 1, base_baud = 3125000) is a Nuclei UART/USART
[    6.156890] printk: console [ttyNUC0] enabled
[    6.156890] printk: console [ttyNUC0] enabled
[    6.165344] printk: bootconsole [sbi0] disabled
[    6.165344] printk: bootconsole [sbi0] disabled
[    6.293090] brd: module loaded
[    6.401885] loop: module loaded
[    6.408660] nuclei_spi 10014000.spi: mapped; irq=2, cs=4
[    6.420745] spi-nor spi0.0: w25q128 (16384 Kbytes)
[    6.474884] random: fast init done
[    7.360473] ftl_cs: FTL header not found.
[    7.374755] nuclei_spi 10034000.spi: mapped; irq=4, cs=4
[    7.423553] mmc_spi spi1.0: SD/MMC host mmc0, no DMA, no WP, no poweroff, cd polling
[    7.436187] ipip: IPv4 and MPLS over IPv4 tunneling driver
[    7.454040] NET: Registered protocol family 10
[    7.471221] Segment Routing with IPv6
[    7.475402] sit: IPv6, IPv4 and MPLS over IPv4 tunneling driver
[    7.488555] NET: Registered protocol family 17
[    7.509246] Freeing unused kernel memory: 188K
[    7.535247] Run /init as init process
[    7.596862] mmc0: host does not support reading read-only switch, assuming write-enable
[    7.604522] mmc0: new SDHC card on SPI
[    7.623382] mmcblk0: mmc0:0000 SD32G 29.7 GiB
[    7.678588]  mmcblk0: p1
Starting syslogd: OK
Starting klogd: OK
Running sysctl: OK
Starting mdev... OK
modprobe: can't change directory to '/lib/modules': No such file or directory
Saving random seed: [   13.721649] random: dd: uninitialized urandom read (512 bytes read)
OK

Welcome to Nuclei System Technology
nucleisys login: root
Password:
processor       : 0
hart            : 0
isa             : rv64imafdc
mmu             : sv39

processor       : 1
hart            : 1
isa             : rv64imafdc
mmu             : sv39

processor       : 2
hart            : 2
isa             : rv64imafdc
mmu             : sv39

processor       : 3
hart            : 3
isa             : rv64imafdc
mmu             : sv39

processor       : 4
hart            : 4
isa             : rv64imafdc
mmu             : sv39

processor       : 5
hart            : 5
isa             : rv64imafdc
mmu             : sv39

processor       : 6
hart            : 6
isa             : rv64imafdc
mmu             : sv39

processor       : 7
hart            : 7
isa             : rv64imafdc
mmu             : sv39

Signed-off-by: Huaqi Fang <578567190@qq.com>
@fanghuaqi
Copy link
Member Author

fanghuaqi commented Nov 23, 2023

Since 2023.11.23, branch dev_nuclei_5.10/dev_nuclei_5.10_v2/dev_nuclei_6.1/dev_nuclei_6.1_v2 are enabled with docker image support, docker tag is the branch name, eg. for branch dev_nuclei_5.10, the docker image is nucleisoftware/linuxsdk:dev_nuclei_5.10

@fanghuaqi
Copy link
Member Author

fanghuaqi commented Nov 27, 2023

Since 2023.11.27, the prebuilt docker image(ci generated) for branch dev_nuclei_5.10/dev_nuclei_5.10_v2/dev_nuclei_6.1/dev_nuclei_6.1_v2/dev_nuclei_next size decreased from near 8G to about 2G, this decrease is caused by the linux sdk source code in these images are shallow cloned(with --depth 10), if you want to pull the complete source code, you need to run git fetch --unshallow, but it will cost time and may fail depending on your network to github.

Note: now in these images, gitee remote is remoted due to gitee mirror is now not working, see #10 (comment)

@fanghuaqi
Copy link
Member Author

Since 2023.12.20, the prebuilt docker image(ci generated) for branch dev_nuclei_6.6_v2 using gcc13 is pushed to https://hub.docker.com/r/nucleisoftware/linuxsdk , tag dev_nuclei_6.6_v2

@fanghuaqi
Copy link
Member Author

fanghuaqi commented Dec 22, 2023

Docker hub mirror see https://gist.github.com/y0ngb1n/7e8f16af3242c7815e7ca2f0833d3ea6

gist.github.com 无法访问问题,请自行百度解决

screenhost of above link content @ 2023.12.22

image

@sunao2002002
Copy link

What is the password for nuclei when using the docker image?

@fanghuaqi
Copy link
Member Author

What is the password for nuclei when using the docker image?

# In docker now, user/pwd: nuclei/riscv123

@sunao2002002
Copy link

What is the password for nuclei when using the docker image?

# In docker now, user/pwd: nuclei/riscv123

Thanks for the answer. It works.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
documentation Improvements or additions to documentation
Projects
None yet
Development

No branches or pull requests

2 participants