Code Monkey home page Code Monkey logo

licheerv-nano-build's People

Contributors

0x754c avatar z2z-gugu avatar zepan avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

licheerv-nano-build's Issues

JTAG

Has anyone had any success getting JTAG working?
I've got the sipeed SLOGIC and setup the pinmux for JTAG, but it can't be detected....

git clone crash on main

root@bullhomedocker:/DATAS/RISCV# git clone https://github.com/sipeed/LicheeRV-Nano-Build.git licheeRV-nano
Cloning into 'licheeRV-nano'...
remote: Enumerating objects: 186754, done.
remote: Counting objects: 100% (476/476), done.
remote: Compressing objects: 100% (314/314), done.
error: RPC failed; curl 92 HTTP/2 stream 5 was not closed cleanly: CANCEL (err 8)
error: 4106 bytes of body are still expected
fetch-pack: unexpected disconnect while reading sideband packet
fatal: early EOF
fatal: fetch-pack: invalid index-pack output

Reclaiming ION memory, understanding the parts of the system

ION reserves approx. 30% of the whole RAM (75MB of 256MB):
Ion: Ion memory setup at 0x000000008b300000 size 75 MiB

As far as I understand ION is basically a memory manager for Android. If Android is not used, is ION still necessary? (Are there certain drivers that will not work without ION?)
I don't want to use Android and I would like to have more memory available in the regular Linux userspace. If ION is still needed for some drivers, can the size be reduced to less than the 75 MiB?
(I haven't found documentation regarding this so far, so if there is any documentation I'd be happy to get some pointers as well.)

In most of my potential use-cases I'll probably use the board without using the NPU, audio/video subsystem, no video input and with no video output. (Headless basically)

I also would like to understand more how all the parts of the system & boot process come into play when running in RV mode. My current understanding is:

  1. Mask ROM bootloader fetches 1st stage BL and starts it
  2. FSBL (first stage bootloader, part of image) starts, does the DDR3 RAM init, loads and starts RTOS
  3. FreeRTOS/CVIRTOS starts, creates audio task (on E-core?)
  4. secondary loader invokes OpenSBI (similar to TEE on ARM?)
  5. OpenSBI does some monitor stuff, loads and invokes U-Boot
  6. U-Boot comes up, loads Linux kernel & devicetree, starts Linux kernel
  7. Linux kernel does its things, then invokes init from userland

So mostly I wonder what the FreeRTOS does (apart from audio?), which core it's running on and if it continues running in parallel to the normal OS.
The OpenSBI monitor probably stays active in the background as well when the regular OS comes up?

Anyway, as far as I can see RTOS and SBI don't take up much RAM compared to ION. Therefore I'd like to get rid of ION if it's not needed or at least reduce the ION size.

0410 : dpkg and apt

Good to see that the 0410 c906 image has OpenCV and Python.
But, can not see dpkg nor apt available. Is that possible to include that in the future release? Thanks!
BTW, other two little bords, Milk-V Duo Ubuntu or RV1106 all have dpkg and apt included in the images.

root password ?

Hello, i try the sd, with linux see the interface with USB and can have ssh, but where is the root password PLEASE ?

LicheeRV Nano Image Wifi Reset

硬件: LicheeRV Nano
镜像: https://github.com/sipeed/LicheeRV-Nano-Build/releases/download/20240124/licheervnano-20230124.img.xz

问题:
修改了/etc/wpa_supplicant.conf中的wifi配置, 执行命令wpa_supplicant -i wlan0 -c /etc/wpa_supplicant.conf 会导致wlan0丢失,
重启设备/etc/wpa_supplicant.conf文件会重置原样

找到原因是/etc/rc.local中的/opt/stress-test/stress-test-all.sh &脚本中,有相关wifi test的脚本,注释后可不重置,但是同样出现
执行命令wpa_supplicant -i wlan0 -c /etc/wpa_supplicant.conf 会导致wlan0丢失

Git structure problem

Every time I clone the repo, it shows lot of files being deleted or touched and can't even switch to main branch. Is this issue on my side?

请教sample_venc样例使用摄像头输入的使用方法

我想开发一个需要摄像头采集视频并进行视频编码的应用。我注意到样例代码的sample_venc中有 BIND_VI_VPSS_VENC 和 VI_VPSS_VENC_SBM_MODE 两个testmode,但是并没有相应的使用帮助。
尝试根据代码猜测运行参数如下,执行后程序无报错退出,并没有创建相应视频文件。

# /tmp/sample_venc --bindmode=1 --testMode=2 -c 265 --viWidth=2560 --viHeight=1440 -w 2560 -h 1440 -o /tmp/vo -n 60
[SAMPLE_COMM_SNS_ParseIni]-2164: Parse /mnt/data/sensor_cfg.ini
[parse_source_devnum]-1757: devNum =  1
[parse_sensor_name]-1838: sensor =  GCORE_GC4653_MIPI_4M_30FPS_10BIT
[parse_sensor_busid]-1867: bus_id =  4
[parse_sensor_i2caddr]-1878: sns_i2c_addr =  29
[parse_sensor_mipidev]-1889: mipi_dev =  0
[parse_sensor_laneid]-1900: Lane_id =  4, 3, 2, -1, -1
[parse_sensor_pnswap]-1911: pn_swap =  0, 0, 0, 0, 0
[parse_sensor_mclken]-1933: mclk_en =  1
[parse_sensor_mclk]-1944: mclk =  1
[SAMPLE_PLAT_SYS_INIT]-72: common pool[0] BlkSize 5652480
ISP Vipipe(0) Allocate pa(0x8de20000) va(0x0x3fdb225000) size(291424)
stSnsrMode.u16Width 2560 stSnsrMode.u16Height 1440 25.000000 wdrMode 0 pstSnsObj 0x1062d0
[SAMPLE_COMM_VI_StartMIPI]-494: sensor 0 stDevAttr.devno 0
awbInit ver 6.9@2021500
0 R:1400 B:3100 CT:2850
1 R:1500 B:2500 CT:3900
2 R:2300 B:1600 CT:6500
Golden 1024 1024 1024
WB Quadratic:0
isWdr:0
ViPipe:0,===GC4653 1440P 30fps 10bit LINEAR Init OK!===
********************************************************************************
cvi_bin_isp message
gerritId:      97347          commitId:      fc6ce647       
md5:           d6db2297ddfd44e8252c1f3f888f47b2
sensorNum      1              
sensorName0    4653           

PQBIN message
gerritId:      
              commitId:      fc6ce647       
md5:           d6db2297ddfd44e8252c1f3f888f47b2
sensorNum      1              
sensorName0    4653           

author:        lxowalle       desc:          gc4653 30fps   
createTime:    2024-03-26 13:41:34version:                      
tool Version:       v3.0.5.48           mode:      
********************************************************************************
[SAMPLE_COMM_ISP_Thread]-95: ISP Dev 0 running!
0 R:1298 B:3773 CT:2688
1 R:1629 B:2599 CT:3890
2 R:2430 B:1675 CT:7300
Golden 1629 1024 2599
wdrLEOnly:1

想请问一下是否有这个样例使用摄像头输入的命令行使用方法,或者是否有其它使用摄像头输入视频并进行视频编码的样例?

Does the LeechiRV nano support USB-host mode?

I need to plug a specific Wifi adapter to the RV nano via USB, I can't use the wifi adapter that comes with the board.

Does the RV nano support plugging wifi adapter via USB? If so, can the usb-c port be switched to USB Host mode or are there other pins that can be used for that?

Can only boot once with licheervnano-alpine-musl-openrc-20240206-0802.img

I am using licheervnano-alpine-musl-openrc-20240206-0802.img on LicheeRV-Nano-E. It boots okay when I flash the sdcard, but after reboot or poweroff it fails to start up again.

I don't possess a serial cable, so it's hard to debug this. However, after looking at the image I discovered that /etc/local.d/aaa_boot_setup.start runs

cp -arv /mnt/etc/* /etc/
rm -rf /mnt/etc/*
/etc/init.d/S01modload start
/etc/init.d/S04usbdev start

I then started moving the files from /mnt/etc to /etc one by one and rebooting until I was able to reproduce the problem. I believe the culprit is mnt/etc/inittab.

I can fix this myself, but I thought to let you know about this problem. Please let me know if you need any help -- I really like this SBC and I would love to help out with code, documentation, testing, whatever.

SSH unable to connect on A53 image.

unable to connect to SSH on the a53-2024-03-26-11-41.img, from serial console, able to see that Linux was able to boot up on A53 core and able to login in to serial shell. When trying to connect by SSH both from remote and from local, SSH keep getting disconnect.

A53 Boot

修改TF卡旁边的BOOT选择电阻,使下拉5.1K,没有引导到A53,是官方镜像没有考虑兼容A53吗?

sensor_test样例输出的yuv文件颜色错误

如题。

样例代码在SAMPLE_COMM_VI_IniToViCfg中,
https://github.com/sipeed/LicheeRV-Nano-Build/blob/main/middleware/v2/sample/common/sample_common_vi.c#L1040
一行定义的图像格式为VI_PIXEL_FORMAT,即PIXEL_FORMAT_NV21。
但是运行sensor_test样例使用dump_yuv功能,或者根据该样例简化得到如下代码:

测试代码
#include <stdio.h>
#include <cvi_sys.h>

#include <sample_comm.h>

static SAMPLE_VI_CONFIG_S g_stViConfig;
static SAMPLE_INI_CFG_S g_stIniCfg;

static int sys_vi_init(void)
{
	MMF_VERSION_S stVersion;
	SAMPLE_INI_CFG_S	   stIniCfg;
	SAMPLE_VI_CONFIG_S stViConfig;

	PIC_SIZE_E enPicSize;
	SIZE_S stSize;
	CVI_S32 s32Ret = CVI_SUCCESS;
	LOG_LEVEL_CONF_S log_conf;

	CVI_SYS_GetVersion(&stVersion);
	SAMPLE_PRT("MMF Version:%s\n", stVersion.version);

	log_conf.enModId = CVI_ID_LOG;
	log_conf.s32Level = CVI_DBG_INFO;
	CVI_LOG_SetLevelConf(&log_conf);

	// Get config from ini if found.
	if (SAMPLE_COMM_VI_ParseIni(&stIniCfg)) {
		SAMPLE_PRT("Parse complete\n");
	}

	//Set sensor number
	CVI_VI_SetDevNum(stIniCfg.devNum);
	/************************************************
	 * step1:  Config VI
	 ************************************************/
	s32Ret = SAMPLE_COMM_VI_IniToViCfg(&stIniCfg, &stViConfig);
	if (s32Ret != CVI_SUCCESS)
		return s32Ret;

	memcpy(&g_stViConfig, &stViConfig, sizeof(SAMPLE_VI_CONFIG_S));
	memcpy(&g_stIniCfg, &stIniCfg, sizeof(SAMPLE_INI_CFG_S));

	/************************************************
	 * step2:  Get input size
	 ************************************************/
	s32Ret = SAMPLE_COMM_VI_GetSizeBySensor(stIniCfg.enSnsType[0], &enPicSize);
	if (s32Ret != CVI_SUCCESS) {
		CVI_TRACE_LOG(CVI_DBG_ERR, "SAMPLE_COMM_VI_GetSizeBySensor failed with %#x\n", s32Ret);
		return s32Ret;
	}

	s32Ret = SAMPLE_COMM_SYS_GetPicSize(enPicSize, &stSize);
	if (s32Ret != CVI_SUCCESS) {
		CVI_TRACE_LOG(CVI_DBG_ERR, "SAMPLE_COMM_SYS_GetPicSize failed with %#x\n", s32Ret);
		return s32Ret;
	}

	/************************************************
	 * step3:  Init modules
	 ************************************************/
	s32Ret = SAMPLE_PLAT_SYS_INIT(stSize);
	if (s32Ret != CVI_SUCCESS) {
		CVI_TRACE_LOG(CVI_DBG_ERR, "sys init failed. s32Ret: 0x%x !\n", s32Ret);
		return s32Ret;
	}

	s32Ret = SAMPLE_PLAT_VI_INIT(&stViConfig);
	if (s32Ret != CVI_SUCCESS) {
		CVI_TRACE_LOG(CVI_DBG_ERR, "vi init failed. s32Ret: 0x%x !\n", s32Ret);
		return s32Ret;
	}

	return CVI_SUCCESS;
}

static void sys_vi_deinit(void)
{
	SAMPLE_COMM_VI_DestroyIsp(&g_stViConfig);

	SAMPLE_COMM_VI_DestroyVi(&g_stViConfig);

	SAMPLE_COMM_SYS_Exit();
}


static CVI_S32 _vi_get_chn_frame(CVI_U8 chn)
{
	VIDEO_FRAME_INFO_S stVideoFrame;
	VI_CROP_INFO_S crop_info = {0};

	if (CVI_VI_GetChnFrame(0, chn, &stVideoFrame, 3000) == 0) {
		FILE *output;
		size_t image_size = stVideoFrame.stVFrame.u32Length[0] + stVideoFrame.stVFrame.u32Length[1]
				  + stVideoFrame.stVFrame.u32Length[2];
		CVI_VOID *vir_addr;
		CVI_U32 plane_offset, u32LumaSize, u32ChromaSize;
		CVI_CHAR img_name[128] = {0, };

		CVI_TRACE_LOG(CVI_DBG_WARN, "width: %d, height: %d, total_buf_length: %zu\n",
			   stVideoFrame.stVFrame.u32Width,
			   stVideoFrame.stVFrame.u32Height, image_size);

		snprintf(img_name, sizeof(img_name), "sample_%d.yuv", chn);

		output = fopen(img_name, "wb");
		if (output == NULL) {
			memset(img_name, 0x0, sizeof(img_name));
			snprintf(img_name, sizeof(img_name), "/mnt/data/sample_%d.yuv", chn);
			output = fopen(img_name, "wb");
			if (output == NULL) {
				CVI_VI_ReleaseChnFrame(0, chn, &stVideoFrame);
				CVI_TRACE_LOG(CVI_DBG_ERR, "fopen fail\n");
				return CVI_FAILURE;
			}
		}

		u32LumaSize =  stVideoFrame.stVFrame.u32Stride[0] * stVideoFrame.stVFrame.u32Height;
		u32ChromaSize =  stVideoFrame.stVFrame.u32Stride[1] * stVideoFrame.stVFrame.u32Height / 2;
		CVI_VI_GetChnCrop(0, chn, &crop_info);
		if (crop_info.bEnable) {
			u32LumaSize = ALIGN((crop_info.stCropRect.u32Width * 8 + 7) >> 3, DEFAULT_ALIGN) *
				ALIGN(crop_info.stCropRect.u32Height, 2);
			u32ChromaSize = (ALIGN(((crop_info.stCropRect.u32Width >> 1) * 8 + 7) >> 3, DEFAULT_ALIGN) *
				ALIGN(crop_info.stCropRect.u32Height, 2)) >> 1;
		}
		vir_addr = CVI_SYS_Mmap(stVideoFrame.stVFrame.u64PhyAddr[0], image_size);
		CVI_SYS_IonInvalidateCache(stVideoFrame.stVFrame.u64PhyAddr[0], vir_addr, image_size);
		plane_offset = 0;
		for (int i = 0; i < 3; i++) {
			if (stVideoFrame.stVFrame.u32Length[i] != 0) {
				stVideoFrame.stVFrame.pu8VirAddr[i] = vir_addr + plane_offset;
				plane_offset += stVideoFrame.stVFrame.u32Length[i];
				CVI_TRACE_LOG(CVI_DBG_WARN,
					   "plane(%d): paddr(%#lld) vaddr(%p) stride(%d) length(%d)\n",
					   i, stVideoFrame.stVFrame.u64PhyAddr[i],
					   stVideoFrame.stVFrame.pu8VirAddr[i],
					   stVideoFrame.stVFrame.u32Stride[i],
					   stVideoFrame.stVFrame.u32Length[i]);
				fwrite((void *)stVideoFrame.stVFrame.pu8VirAddr[i]
					, (i == 0) ? u32LumaSize : u32ChromaSize, 1, output);
			}
		}
		CVI_SYS_Munmap(vir_addr, image_size);

		if (CVI_VI_ReleaseChnFrame(0, chn, &stVideoFrame) != 0)
			CVI_TRACE_LOG(CVI_DBG_ERR, "CVI_VI_ReleaseChnFrame NG\n");

		fclose(output);
		return CVI_SUCCESS;
	}
	CVI_TRACE_LOG(CVI_DBG_ERR, "CVI_VI_GetChnFrame NG\n");
	return CVI_FAILURE;
}

static CVI_S32 sensor_dump_yuv(void)
{
	CVI_S32 loop = 0;
	CVI_U32 ok = 0, ng = 0;
	CVI_U8  chn = 0;
	int tmp;
	struct timespec start, end;

	chn = 0;
	loop = 5;
	while (loop > 0) {
		if (_vi_get_chn_frame(chn) == CVI_SUCCESS) {
			++ok;
		} else
			++ng;
		//sleep(1);
		if (loop != 11111)
			loop--;
	}
	CVI_TRACE_LOG(CVI_DBG_WARN, "VI GetChnFrame OK(%d) NG(%d)\n", ok, ng);

	CVI_TRACE_LOG(CVI_DBG_WARN, "Dump VI yuv TEST-PASS\n");

	return CVI_SUCCESS;
}


int main() {
    sys_vi_init();
    sensor_dump_yuv();
    sys_vi_deinit();
    return 0;
}

实际输出的图像按照NV21打开,颜色错误。
硬件为LicheeRV Nano 量产版本,软件为当前git最新版本。

touchscreen driver file does not exist

wiki.sipeed.com>LicheeRV Nano>Peripheral>7. Touch Screen
https://wiki.sipeed.com/hardware/en/lichee/RV_Nano/5_peripheral.html

There is the following description.

Connect the touchscreen ribbon to the board's touchscreen interface, paying attention to the wire sequence.
Then execute:
/opt/touch.sh # Load the touchscreen driver
Followed by:
echo 2 | evtest
Touching the screen will display specific coordinates in the terminal.
For reading coordinates and touch events, refer to the input section in /opt/src/vendortest.

In release of the repository here, 2024-05-28-17-33-82a0b7.img.xz is empty under the opt folder.

I want /opt/touch.sh and /opt/src/vendortest files, so I would like them to be made public.

How to ssh into LicheeRV-Nano WE at the FIRST run?

Sorry for my naive question:

My host computer:

~ lsb_release -a
No LSB modules are available.
Distributor ID:	Ubuntu
Description:	Ubuntu 22.04.4 LTS
Release:	22.04
Codename:	jammy~ uname -a
Linux lvision-GT72-6QE 6.5.0-26-generic #26~22.04.1-Ubuntu SMP PREEMPT_DYNAMIC Tue Mar 12 10:22:43 UTC 2 x86_64 x86_64 x86_64 GNU/Linux

I just flashed LicheeRV-Nano-Build c906-2024-04-10-14-19-16d76b.img.gz onto my LicheeRV-Nano WE.

But, I've got no idea how to ssh into the system without an initial WIRED connection to set up the static IP and have ssh server enabled? Wondering if only USB connection, can I set up my WiFi configuration under /etc/default/networks ? By the way, I didn't even see a user folder /home under rootfs. Even if I want to ssh into LicheeRV-Nano, I still ALWAYS need a username, isn't it?

Any manual/doc for this?

Cheers
Pei

Middleware Build Failing

Problem

Middleware build is failing.

Environment

Ubuntu Docker Container (from host/ubuntu) on M1 MacBook Air.

Question(s)

Should the "build all" command result in a completed image? I ask because even though I got a build middleware failed result, the install directory has quite a few files so I'm not sure if I need to run another command to create an image? Or is fixing this middleware failure is necessary.

Contents in the install directory after build:
boot.sd elf fip.bin fip_spl.bin fw_payload_uboot.bin ramboot.itb rawimages rootfs tpu_musl_riscv64

Additional Information

Run build_middleware() function 
make: '/root/LicheeRV-Nano-Build/install/soc_sg2002_licheervnano_sd/rootfs' is up to date.
~/LicheeRV-Nano-Build/middleware/v2 ~/LicheeRV-Nano-Build/build
make[1]: Entering directory '/root/LicheeRV-Nano-Build/middleware/v2/3rdparty'
make[1]: Entering directory '/root/LicheeRV-Nano-Build/middleware/v2/component/isp'
#################################################
#                                               #
#   Compiling '3rdparty libs' Configs as below  #
pushd sensor/sg200x && \
make all && \
popd;
#                                               #
~/LicheeRV-Nano-Build/middleware/v2/component/isp/sensor/sg200x ~/LicheeRV-Nano-Build/middleware/v2/component/isp
#################################################
make[2]: Entering directory '/root/LicheeRV-Nano-Build/middleware/v2/component/isp/sensor/cv182x'
make[2]: Entering directory '/root/LicheeRV-Nano-Build/middleware/v2/3rdparty/cli'
pushd  gcore_gc4653 && make all && popd
pushd  ov_os04a10 && make all && popd
pushd  sms_sc035gs && make all && popd
pushd  lontium_lt6911 && make all && popd
~/LicheeRV-Nano-Build/middleware/v2/component/isp/sensor/sg200x/gcore_gc4653 ~/LicheeRV-Nano-Build/middleware/v2/component/isp/sensor/sg200x
#################################################
~/LicheeRV-Nano-Build/middleware/v2/component/isp/sensor/sg200x/ov_os04a10 ~/LicheeRV-Nano-Build/middleware/v2/component/isp/sensor/sg200x
~/LicheeRV-Nano-Build/middleware/v2/component/isp/sensor/sg200x/sms_sc035gs ~/LicheeRV-Nano-Build/middleware/v2/component/isp/sensor/sg200x
~/LicheeRV-Nano-Build/middleware/v2/component/isp/sensor/sg200x/lontium_lt6911 ~/LicheeRV-Nano-Build/middleware/v2/component/isp/sensor/sg200x
make[3]: Entering directory '/root/LicheeRV-Nano-Build/middleware/v2/component/isp/sensor/cv182x/ov_os04a10'
make[3]: Entering directory '/root/LicheeRV-Nano-Build/middleware/v2/component/isp/sensor/cv182x/lontium_lt6911'
make[3]: Entering directory '/root/LicheeRV-Nano-Build/middleware/v2/component/isp/sensor/cv182x/gcore_gc4653'
#
make[3]: Entering directory '/root/LicheeRV-Nano-Build/middleware/v2/component/isp/sensor/cv182x'
make[3]: Entering directory '/root/LicheeRV-Nano-Build/middleware/v2/component/isp/sensor/cv182x/sms_sc035gs'
# Compiling 'component libs' Configs as below...
# SENSOR_LIST=gcore_gc4653 ov_os04a10 sms_sc035gs lontium_lt6911
#
make[2]: Leaving directory '/root/LicheeRV-Nano-Build/middleware/v2/3rdparty/cli'
#################################################
/root/LicheeRV-Nano-Build/middleware/v2/3rdparty
make[2]: *** write jobserver: Bad file descriptor.  Stop.
make[2]: *** Waiting for unfinished jobs....
make[2]: Entering directory '/root/LicheeRV-Nano-Build/middleware/v2/3rdparty/inih'
riscv64-unknown-linux-musl-gcc -Os -mcpu=c906fdv -march=rv64imafdcv0p7xthead -mcmodel=medany -mabi=lp64d -std=gnu11 -g -Wall -Wextra -fPIC -ffunction-sections -fdata-sections -Wl,--gc-sections -I/root/LicheeRV-Nano-Build/ramdisk/rootfs/public/gdbserver/include -I/root/LicheeRV-Nano-Build/ramdisk/rootfs/public/libcrypto/include -I/root/LicheeRV-Nano-Build/ramdisk/rootfs/public/libz/include -I/root/LicheeRV-Nano-Build/ramdisk/rootfs/public/otaserver/include -I/root/LicheeRV-Nano-Build/ramdisk/rootfs/public/rsyslog/include -I/root/LicheeRV-Nano-Build/ramdisk/rootfs/public/crontabs/include -mno-ldd -DARCH_SG200X -D__SOC_MARS__   -c -o gcore_gc4653/gc4653_cmos.o gcore_gc4653/gc4653_cmos.c
riscv64-unknown-linux-musl-gcc -Os -mcpu=c906fdv -march=rv64imafdcv0p7xthead -mcmodel=medany -mabi=lp64d -std=gnu11 -g -Wall -Wextra -fPIC -ffunction-sections -fdata-sections -Wl,--gc-sections -I/root/LicheeRV-Nano-Build/ramdisk/rootfs/public/gdbserver/include -I/root/LicheeRV-Nano-Build/ramdisk/rootfs/public/libcrypto/include -I/root/LicheeRV-Nano-Build/ramdisk/rootfs/public/libz/include -I/root/LicheeRV-Nano-Build/ramdisk/rootfs/public/otaserver/include -I/root/LicheeRV-Nano-Build/ramdisk/rootfs/public/rsyslog/include -I/root/LicheeRV-Nano-Build/ramdisk/rootfs/public/crontabs/include -mno-ldd -DARCH_SG200X -D__SOC_MARS__   -c -o gcore_gc4653/gc4653_sensor_ctl.o gcore_gc4653/gc4653_sensor_ctl.c
riscv64-unknown-linux-musl-gcc -Os -mcpu=c906fdv -march=rv64imafdcv0p7xthead -mcmodel=medany -mabi=lp64d -std=gnu11 -g -Wall -Wextra -fPIC -ffunction-sections -fdata-sections -Wl,--gc-sections -I/root/LicheeRV-Nano-Build/ramdisk/rootfs/public/gdbserver/include -I/root/LicheeRV-Nano-Build/ramdisk/rootfs/public/libcrypto/include -I/root/LicheeRV-Nano-Build/ramdisk/rootfs/public/libz/include -I/root/LicheeRV-Nano-Build/ramdisk/rootfs/public/otaserver/include -I/root/LicheeRV-Nano-Build/ramdisk/rootfs/public/rsyslog/include -I/root/LicheeRV-Nano-Build/ramdisk/rootfs/public/crontabs/include -mno-ldd -DARCH_SG200X -D__SOC_MARS__   -c -o ov_os04a10/os04a10_sensor_ctl.o ov_os04a10/os04a10_sensor_ctl.c
riscv64-unknown-linux-musl-gcc -Os -mcpu=c906fdv -march=rv64imafdcv0p7xthead -mcmodel=medany -mabi=lp64d -std=gnu11 -g -Wall -Wextra -fPIC -ffunction-sections -fdata-sections -Wl,--gc-sections -I/root/LicheeRV-Nano-Build/ramdisk/rootfs/public/gdbserver/include -I/root/LicheeRV-Nano-Build/ramdisk/rootfs/public/libcrypto/include -I/root/LicheeRV-Nano-Build/ramdisk/rootfs/public/libz/include -I/root/LicheeRV-Nano-Build/ramdisk/rootfs/public/otaserver/include -I/root/LicheeRV-Nano-Build/ramdisk/rootfs/public/rsyslog/include -I/root/LicheeRV-Nano-Build/ramdisk/rootfs/public/crontabs/include -mno-ldd -DARCH_SG200X -D__SOC_MARS__   -c -o ov_os04a10/os04a10_cmos.o ov_os04a10/os04a10_cmos.c
riscv64-unknown-linux-musl-gcc -Os -mcpu=c906fdv -march=rv64imafdcv0p7xthead -mcmodel=medany -mabi=lp64d -std=gnu11 -g -Wall -Wextra -fPIC -ffunction-sections -fdata-sections -Wl,--gc-sections -I/root/LicheeRV-Nano-Build/ramdisk/rootfs/public/gdbserver/include -I/root/LicheeRV-Nano-Build/ramdisk/rootfs/public/libcrypto/include -I/root/LicheeRV-Nano-Build/ramdisk/rootfs/public/libz/include -I/root/LicheeRV-Nano-Build/ramdisk/rootfs/public/otaserver/include -I/root/LicheeRV-Nano-Build/ramdisk/rootfs/public/rsyslog/include -I/root/LicheeRV-Nano-Build/ramdisk/rootfs/public/crontabs/include -mno-ldd -DARCH_SG200X -D__SOC_MARS__   -c -o sms_sc035gs/sc035gs_sensor_ctl.o sms_sc035gs/sc035gs_sensor_ctl.c
riscv64-unknown-linux-musl-gcc -Os -mcpu=c906fdv -march=rv64imafdcv0p7xthead -mcmodel=medany -mabi=lp64d -std=gnu11 -g -Wall -Wextra -fPIC -ffunction-sections -fdata-sections -Wl,--gc-sections -I/root/LicheeRV-Nano-Build/ramdisk/rootfs/public/gdbserver/include -I/root/LicheeRV-Nano-Build/ramdisk/rootfs/public/libcrypto/include -I/root/LicheeRV-Nano-Build/ramdisk/rootfs/public/libz/include -I/root/LicheeRV-Nano-Build/ramdisk/rootfs/public/otaserver/include -I/root/LicheeRV-Nano-Build/ramdisk/rootfs/public/rsyslog/include -I/root/LicheeRV-Nano-Build/ramdisk/rootfs/public/crontabs/include -mno-ldd -DARCH_SG200X -D__SOC_MARS__   -c -o sms_sc035gs/sc035gs_cmos.o sms_sc035gs/sc035gs_cmos.c
riscv64-unknown-linux-musl-gcc -Os -mcpu=c906fdv -march=rv64imafdcv0p7xthead -mcmodel=medany -mabi=lp64d -std=gnu11 -g -Wall -Wextra -fPIC -ffunction-sections -fdata-sections -Wl,--gc-sections -I/root/LicheeRV-Nano-Build/ramdisk/rootfs/public/gdbserver/include -I/root/LicheeRV-Nano-Build/ramdisk/rootfs/public/libcrypto/include -I/root/LicheeRV-Nano-Build/ramdisk/rootfs/public/libz/include -I/root/LicheeRV-Nano-Build/ramdisk/rootfs/public/otaserver/include -I/root/LicheeRV-Nano-Build/ramdisk/rootfs/public/rsyslog/include -I/root/LicheeRV-Nano-Build/ramdisk/rootfs/public/crontabs/include -mno-ldd -DARCH_SG200X -D__SOC_MARS__   -c -o lontium_lt6911/lt6911_cmos.o lontium_lt6911/lt6911_cmos.c
riscv64-unknown-linux-musl-gcc -Os -mcpu=c906fdv -march=rv64imafdcv0p7xthead -mcmodel=medany -mabi=lp64d -std=gnu11 -g -Wall -Wextra -fPIC -ffunction-sections -fdata-sections -Wl,--gc-sections -I/root/LicheeRV-Nano-Build/ramdisk/rootfs/public/gdbserver/include -I/root/LicheeRV-Nano-Build/ramdisk/rootfs/public/libcrypto/include -I/root/LicheeRV-Nano-Build/ramdisk/rootfs/public/libz/include -I/root/LicheeRV-Nano-Build/ramdisk/rootfs/public/otaserver/include -I/root/LicheeRV-Nano-Build/ramdisk/rootfs/public/rsyslog/include -I/root/LicheeRV-Nano-Build/ramdisk/rootfs/public/crontabs/include -mno-ldd -DARCH_SG200X -D__SOC_MARS__   -c -o lontium_lt6911/lt6911_sensor_ctl.o lontium_lt6911/lt6911_sensor_ctl.c
make[2]: *** write jobserver: Bad file descriptor.  Stop.
make[2]: *** Waiting for unfinished jobs....
sms_sc035gs/sc035gs_cmos.c:12:10: fatal error: linux/cvi_type.h: No such file or directory
   12 | #include <linux/cvi_type.h>
      |          ^~~~~~~~~~~~~~~~~~
compilation terminated.
lontium_lt6911/lt6911_cmos.c:12:10: fatal error: linux/cvi_type.h: No such file or directory
   12 | #include <linux/cvi_type.h>
      |          ^~~~~~~~~~~~~~~~~~
make[3]: *** [<builtin>: sms_sc035gs/sc035gs_cmos.o] Error 1
compilation terminated.
gcore_gc4653/gc4653_sensor_ctl.c:14:10: fatal error: linux/vi_snsr.h: No such file or directory
   14 | #include <linux/vi_snsr.h>
      |          ^~~~~~~~~~~~~~~~~
make[3]: *** write jobserver: Bad file descriptor.  Stop.
make[3]: *** Waiting for unfinished jobs....
sms_sc035gs/sc035gs_sensor_ctl.c:14:10: fatal error: linux/vi_snsr.h: No such file or directory
   14 | #include <linux/vi_snsr.h>
      |          ^~~~~~~~~~~~~~~~~
compilation terminated.
compilation terminated.
ov_os04a10/os04a10_sensor_ctl.c:14:10: fatal error: linux/vi_snsr.h: No such file or directory
   14 | #include <linux/vi_snsr.h>
      |          ^~~~~~~~~~~~~~~~~
compilation terminated.
gcore_gc4653/gc4653_cmos.c:12:10: fatal error: linux/cvi_type.h: No such file or directory
   12 | #include <linux/cvi_type.h>
      |          ^~~~~~~~~~~~~~~~~~
make[3]: *** [<builtin>: gcore_gc4653/gc4653_sensor_ctl.o] Error 1
make[3]: *** write jobserver: Bad file descriptor.  Stop.
compilation terminated.
/root/LicheeRV-Nano-Build/middleware/v2/component/isp/sensor/sg200x/ov_os04a10/os04a10_sensor_ctl.c: In function 'os04a10_init':
/root/LicheeRV-Nano-Build/middleware/v2/component/isp/sensor/sg200x/ov_os04a10/os04a10_sensor_ctl.c:257:2: warning: implicit declaration of function 'system' [-Wimplicit-function-declaration]
  257 |  system("devmem 0x0300116C 32 0x3");
      |  ^~~~~~
lontium_lt6911/lt6911_sensor_ctl.c:14:10: fatal error: linux/vi_snsr.h: No such file or directory
   14 | #include <linux/vi_snsr.h>
      |          ^~~~~~~~~~~~~~~~~
compilation terminated.
make[2]: *** [Makefile:279: all_sensor] Error 1
make[2]: *** write jobserver: Bad file descriptor.  Stop.
make[1]: *** [Makefile:9: all] Error 2
make[1]: Leaving directory '/root/LicheeRV-Nano-Build/middleware/v2/component/isp'
make: *** [Makefile:49: component] Error 2
make: *** Waiting for unfinished jobs....
ov_os04a10/os04a10_cmos.c:13:10: fatal error: linux/cvi_type.h: No such file or directory
   13 | #include <linux/cvi_type.h>
      |          ^~~~~~~~~~~~~~~~~~
compilation terminated.
/root/LicheeRV-Nano-Build/middleware/v2/component/isp/sensor/sg200x/lontium_lt6911/lt6911_sensor_ctl.c: In function 'lt6911_probe':
/root/LicheeRV-Nano-Build/middleware/v2/component/isp/sensor/sg200x/lontium_lt6911/lt6911_sensor_ctl.c:193:2: warning: implicit declaration of function 'system' [-Wimplicit-function-declaration]
  193 |  system("devmem 0x0300116C 32 0x3");
      |  ^~~~~~
/root/LicheeRV-Nano-Build/middleware/v2/component/isp/sensor/sg200x/sms_sc035gs/sc035gs_sensor_ctl.c: In function sc035gs_linear_1296P30_init':
/root/LicheeRV-Nano-Build/middleware/v2/component/isp/sensor/sg200x/sms_sc035gs/sc035gs_sensor_ctl.c:212:2: warning: implicit declaration of function 'system' [-Wimplicit-function-declaration]
  212 |  system("devmem 0x0300116C 32 0x3");
      |  ^~~~~~
[riscv64-unknown-linux-musl-gcc] lt6911_sensor_ctl.o
make[3]: *** write jobserver: Bad file descriptor.  Stop.
make[3]: *** Waiting for unfinished jobs....
[riscv64-unknown-linux-musl-gcc] sc035gs_sensor_ctl.o
make[3]: *** write jobserver: Bad file descriptor.  Stop.
make[3]: *** Waiting for unfinished jobs....
[riscv64-unknown-linux-musl-gcc] lt6911_cmos.o
make[3]: *** write jobserver: Bad file descriptor.  Stop.
[riscv64-unknown-linux-musl-gcc] os04a10_sensor_ctl.o
make[3]: *** write jobserver: Bad file descriptor.  Stop.
make[3]: *** Waiting for unfinished jobs....
[riscv64-unknown-linux-musl-gcc] gc4653_sensor_ctl.o
make[3]: *** write jobserver: Bad file descriptor.  Stop.
make[3]: *** Waiting for unfinished jobs....
[riscv64-unknown-linux-musl-gcc] sc035gs_cmos.o
make[3]: *** write jobserver: Bad file descriptor.  Stop.
[riscv64-unknown-linux-musl-gcc] ini.o
make[2]: *** write jobserver: Bad file descriptor.  Stop.
make[1]: *** [Makefile:8: all] Error 1
make[1]: Leaving directory '/root/LicheeRV-Nano-Build/middleware/v2/3rdparty'
make: *** [Makefile:41: 3rdparty] Error 2
 build middleware failed !! 
~/LicheeRV-Nano-Build/build
root@c058ed84e6c2:~/LicheeRV-Nano-Build# [riscv64-unknown-linux-musl-gcc] gc4653_cmos.o
make[3]: *** write jobserver: Bad file descriptor.  Stop.
[riscv64-unknown-linux-musl-gcc] os04a10_cmos.o
make[3]: *** write jobserver: Bad file descriptor.  Stop.

Build Error: riscv64-unknown-linux-musl-gcc: not found

I tried to follow along to build the image and came across the following error.

My machine is an M1 Macbook Air but I'm using the Ubuntu docker container provided. Any idea what could be wrong? Or any documentation that might be helpful?

Run build_uboot() function 
 Run _link_uboot_logo() function 
  [TARGET] u-boot-dts 
find /root/LicheeRV-Nano-Build/build/boards/sg200x \
	\( -path "*linux/*.dts*" -o -path "*dts_riscv/*.dts*" \) \
	-exec cp {} /root/LicheeRV-Nano-Build/u-boot-2021.10/arch/riscv/dts/ \;
find /root/LicheeRV-Nano-Build/build/boards/default/dts/sg200x -name *.dts* -exec cp {} /root/LicheeRV-Nano-Build/u-boot-2021.10/arch/riscv/dts/ \;
  [TARGET] u-boot-build 
ln -snrf /root/LicheeRV-Nano-Build/build/output/sg2002_licheervnano_sd/cvi_board_memmap.h /root/LicheeRV-Nano-Build/u-boot-2021.10/include/
rm -f /root/LicheeRV-Nano-Build/u-boot-2021.10/board/cvitek/cvi_board_init.c
ln -s /root/LicheeRV-Nano-Build/build/boards/sg200x/sg2002_licheervnano_sd/u-boot/cvi_board_init.c /root/LicheeRV-Nano-Build/u-boot-2021.10/board/cvitek/cvi_board_init.c
rm -f /root/LicheeRV-Nano-Build/u-boot-2021.10/include/cvitek/cvitek.h
ln -s /root/LicheeRV-Nano-Build/build/boards/sg200x/sg2002_licheervnano_sd/u-boot/cvitek.h /root/LicheeRV-Nano-Build/u-boot-2021.10/include/cvitek/cvitek.h
make -j8 -C /root/LicheeRV-Nano-Build/u-boot-2021.10 olddefconfig
make[1]: Entering directory '/root/LicheeRV-Nano-Build/u-boot-2021.10'
make[2]: Entering directory '/root/LicheeRV-Nano-Build/u-boot-2021.10/build/sg2002_licheervnano_sd'
/bin/sh: 1: riscv64-unknown-linux-musl-gcc: not found
  GEN     Makefile
/root/LicheeRV-Nano-Build/u-boot-2021.10/scripts/kconfig/Makefile:105: *** No configuration exists for this target on this architecture.  Stop.
scripts/kconfig/conf  --olddefconfig Kconfig
/root/LicheeRV-Nano-Build/u-boot-2021.10/scripts/gcc-version.sh: 26: riscv64-unknown-linux-musl-gcc: not found
/root/LicheeRV-Nano-Build/u-boot-2021.10/scripts/gcc-version.sh: 27: riscv64-unknown-linux-musl-gcc: not found
/root/LicheeRV-Nano-Build/u-boot-2021.10/scripts/gcc-version.sh: 29: riscv64-unknown-linux-musl-gcc: not found
/root/LicheeRV-Nano-Build/u-boot-2021.10/scripts/gcc-version.sh: 26: riscv64-unknown-linux-musl-gcc: not found
/root/LicheeRV-Nano-Build/u-boot-2021.10/scripts/gcc-version.sh: 27: riscv64-unknown-linux-musl-gcc: not found
/root/LicheeRV-Nano-Build/u-boot-2021.10/scripts/gcc-version.sh: 29: riscv64-unknown-linux-musl-gcc: not found
Kconfig:66: syntax error
Kconfig:65: invalid option
/root/LicheeRV-Nano-Build/u-boot-2021.10/scripts/clang-version.sh: 15: riscv64-unknown-linux-musl-gcc: not found
make[3]: *** [/root/LicheeRV-Nano-Build/u-boot-2021.10/scripts/kconfig/Makefile:75: olddefconfig] Error 1
make[2]: *** [/root/LicheeRV-Nano-Build/u-boot-2021.10/Makefile:578: olddefconfig] Error 2
make[2]: Leaving directory '/root/LicheeRV-Nano-Build/u-boot-2021.10/build/sg2002_licheervnano_sd'
make[1]: *** [Makefile:178: sub-make] Error 2
make[1]: Leaving directory '/root/LicheeRV-Nano-Build/u-boot-2021.10'
make: *** [Makefile:187: u-boot-build] Error 2

如何升级 OpenSBI 版本

如题,想测试自己写的裸机 s-mode 程序,但是这里的 OpenSBI 版本太低,只有 0.9,支持的 SBI Runtime 是 v0.2。不知道 sdk 里边对opensbi做了哪些更改?谢谢。

framebuffer acceleration

The Lichee RV nano + 7inch touchpanel (currently the only LCD available) displays images slowly.
In release of the repository here, 2024-05-28-17-33-82a0b7.img.xz is framebuffer acceleration is disabled.
Also, since the virtual resolution is large, I want this to be the same size as the device.

# fbset
mode "800x1280-0"
        # D: 0.012 MHz, H: 0.011 kHz, V: 0.008 Hz
        geometry 800 1280 800 2560 32
        timings 85208760 137 55 35 2 79 9
        accel false
        rgba 8/0,8/8,8/16,8/24
endmode

Could you please disclose how to enable framebuffer acceleration in the Lichee RV nano.
And, please show me how to do virtual resolution configration.

mdnsd进程导致内存泄漏

按照教程 用了C906的配置 build_all 编译出img之后, 用dd 命令把img 烧进tf卡(金士顿的),
上电启动后 free 查看可用内存一直再减少, 大概5s 少0.1M, 直到内存耗光

挨个kill 了进程后, 发现kill了 mdnsd 进程后, 泄漏终于停止了........,这个进程看起来是dns服务的守护进程, 没有用过, 不知道有没有人遇到过这个问题
MobaXterm_COM3SiliconLabsCP210xUSBtoUARTBridgeCOM3_20240330_020359.log
具体可以看看我提供的log

还有个疑问, 我看淘宝上板子 的描述内存应该是256M, 为啥我的才150M.....

build_all not good

Ok build_all and 👍🏽

qt5svg a9752b00a03438de8e5b080073816e12409404b7 Fixing libtool files
for la in $(find /DATAS/RISCV/licheeRV-nano/buildroot/output/per-package/qt5svg/host/riscv64-buildroot-linux-musl/sysroot/usr/lib* -name "*.la"); do
cp -a "${la}" "${la}.fixed" &&
/usr/bin/sed -i -e "s:/DATAS/RISCV/licheeRV-nano/buildroot/output:@BASE_DIR@:g"
-e "s:/DATAS/RISCV/licheeRV-nano/buildroot/output/per-package/qt5svg/host/riscv64-buildroot-linux-musl/sysroot:@STAGING_DIR@:g"

-e "s:(['= ])/usr:\1@STAGING_DIR@/usr:g"
-e "s:(['= ])/lib:\1@STAGING_DIR@/lib:g"

-e "s:@STAGING_DIR@:/DATAS/RISCV/licheeRV-nano/buildroot/output/per-package/qt5svg/host/riscv64-buildroot-linux-musl/sysroot:g"
-e "s:@BASE_DIR@:/DATAS/RISCV/licheeRV-nano/buildroot/output:g"
"${la}.fixed" &&
if cmp -s "${la}" "${la}.fixed"; then
rm -f "${la}.fixed";
else
mv "${la}.fixed" "${la}";
fi || exit 1;
done
make[1]: Leaving directory '/DATAS/RISCV/licheeRV-nano/buildroot'
make: *** [Makefile:558: br-rootfs-pack] Error 2

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.