页次: 1
在 sys_config.fex 中有个存储介质那 选norflash,然后,写一个字段
[norflash]
size = 32
再去有个 分区配置的文件 也是 fex类型的,也就是你每次pack时,系统用到的那个文件。看看有没有什么好改的。
我记不住那个单词。
F1C200s 用 tplayerdemo 播放视频,非常抖,关闭播放屏幕显示就正常了,请问这是什么问题呢?
https://bbs.aw-ol.com/topic/1721/share/1可能是以下问题:
① 内存带宽不够
② SDK需要优化
哈哈,你推荐的帖子,开发板都跟我大同小异。
改dclk我试过的,我甚至改到 5 , 明显肉眼已经观测到 圈窗帘 的现象了。MP4该抖还是抖,我晚上再仔细观察下有无改善。
内存我记得有看到过,什么什么 buffer_xxxxxx_num 的定义。就是multimedia的库,不知道有没有拼错,就是多媒体库。
原本是 30,我改成了 40,没什么效果。
您说的是 带宽? 而不是 大小?
意思该芯片的内存总线速度不够?
另外:Tina2.0-D1s的SDK我也有下载过,这个是开放的。基本目录结构跟我手里的 Tina3.5.1 如出一辙,同样有这个库,有这个例子。
缩进不知道怎么乱了,不好意思。我的屏幕驱动就是 ili6122 分辨率也是如此,SDK里本身有,这些没有改动。
;----------------------------------------------------------------------------------
[lcd0]
lcd_used = 1
;-------------------------------------
; avdisplay lcd
;-------------------------------------
lcd_driver_name = "ili6122_800x480"
lcd_if = 0
lcd_x = 800
lcd_y = 480
lcd_width = 109
lcd_height = 70
lcd_dclk_freq = 33
lcd_pwm_used = 1
lcd_pwm_ch = 1
lcd_pwm_freq = 50000
lcd_pwm_pol = 1
lcd_hbp = 46
lcd_ht = 1056
lcd_hspw = 20
lcd_vbp = 23
lcd_vt = 635
lcd_vspw = 10
lcd_lvds_if = 0
lcd_lvds_colordepth = 1
lcd_lvds_mode = 0
lcd_lvds_ch = 0
lcd_lvds_bitwidth = 0
lcd_lvds_io_cross = 0
lcd_cpu_if = 0
lcd_frm = 0
lcd_rb_swap = 0
lcd_io_phase = 0x0000
lcd_gamma_en = 0
lcd_bright_curve_en = 0
lcd_cmap_en = 0
deu_mode = 0
lcdgamma4iep = 22
lcd_io_cfg0 = 0x00000000
smart_color = 90
lcd_bl_en_used = 1
lcd_bl_en = port:PE06<1><0><default><1>
;lcd_power = port:PE06<1><0><default><0>
;lcd_gpio_0 = port:PE06<1><0><default><0>
lcdd2 = port:PD00<2><0><default><default>
lcdd3 = port:PD01<2><0><default><default>
lcdd4 = port:PD02<2><0><default><default>
lcdd5 = port:PD03<2><0><default><default>
lcdd6 = port:PD04<2><0><default><default>
lcdd7 = port:PD05<2><0><default><default>
lcdd10 = port:PD06<2><0><default><default>
lcdd11 = port:PD07<2><0><default><default>
lcdd12 = port:PD08<2><0><default><default>
lcdd13 = port:PD09<2><0><default><default>
lcdd14 = port:PD10<2><0><default><default>
lcdd15 = port:PD11<2><0><default><default>
lcdd18 = port:PD12<2><0><default><default>
lcdd19 = port:PD13<2><0><default><default>
lcdd20 = port:PD14<2><0><default><default>
lcdd21 = port:PD15<2><0><default><default>
lcdd22 = port:PD16<2><0><default><default>
lcdd23 = port:PD17<2><0><default><default>
lcdclk = port:PD18<2><0><3><default>
lcdde = port:PD19<2><0><3><default>
lcdhsync = port:PD20<2><0><3><default>
lcdvsync = port:PD21<2><0><3><default>
这是我LCD的配置,更改了很多次。
SDK优化就没办法了,这个SDK是我从别的工程手里接过来的,还闹了很多不愉快的事情。
大致就是:什么都弄好了,只是整理下,拼凑成为成品,结果我拿到手里才发现。
基本什么都没弄 背光,GUI,媒体播放这些。。。一言难尽。
可是,又是一副指导我,点到为止的架势。。没办法老板相信他。他连IO都不会控制,当时我也不会请教了他,你说东,他就扯西。。。到最后给我发脾气。
领一份工资真的挺难的。
内存大小,貌似可以更改。我记得好像又看到过。我试试吧。
我的系统是TINA3.5.1,系统中自带了一个媒体播放器叫 tplayer。
软件包中有一个 tplaydemo ,用来验证这个库。
其实我只需要能够播放 mp3 mp4就可以了。所以我只测试了mp3,mp4。
mp3播放一切正常,但是播放视频时发现了,屏幕Y轴方向上下抖动的现象。
如果屏幕内容静止,则完全没问题,但是,播放视频时就抖的厉害。状况如下
我没有接喇叭,不好吵到别人,音频是正常的没有卡顿。
我开始以为是视频的分辨率问题,换了一个视频也是类似的情况。
后面怀疑全志的播放器写的有问题,这没办法,咱也看不懂,看的懂自己弄了。
直到 .................... 我鬼使神差的运行了一次 LVGL 例程中的播放器,状况如下
看来只要是一出现类似动画的效果就会这样。
这说明我的显示配置本身有问题。现在 在WINDOWS系统,等下我重启把 sys_config.fex 的配置贴上。
求大神分析下,问题出在哪?
x:800,y:480,depth:18,pclk_khz:33000,le:16,ri:209,up:22,lo:22,hs:30,vs:1,sync:0,vmode:0
x y:这个自然就是屏幕的像素啦。
depth:屏幕的颜色深度,比如RGB888就是32,RGB666是18,具体是看屏幕硬件的接法。
pclk_khz:数据传输的时钟频率,要根据屏幕参数确定,不是越快越好,不然显示会失真或者有雪花的。
le:显示屏前廊,从行同步信号到图像左边沿的像素时钟数。
ri:显示屏后廊,从行同步到图像右边沿的像素时钟数,(可以结合上一条,理解为行同步信号是插入到两组行数据中间)。
up:从场同步到图像上边沿的行数,场信号可以理解为一张图片的起始信号。
lo:从场同步到图像下边沿的行数。
hs:行同步时间长度(像素时钟数)。
vs:场同步时间长度(行数)。
sync、vmode:这两个参数的配置,可以从文件include/uapi/linux/fb.h的211~229行找到一些蛛丝马迹,大概是控制视频刷新的一些参数。
原文作者是:http://cfcx.ltd/embedded/441/
解决了。
RT:
x:800,y:480,depth:18,pclk\khz:33000,le:87,ri:40,up:31,lo:13,hs:1,vs:1,sync:3,vmode:0
比如这个参数,我大概知道的定义:
xy:分辨率
depth:这个是不是指色位深度?
pclk:时钟,这个不能错,后面关于时间的参数,单位都是CLK
le ri:完全不知道什么意思。
up,lo:是某种高低电平相关的?
hs vs:好像所 hs vs 空闲时的状态。
sync:不知道
vmode: 不知道
网大神科普,或者提供相关资料,不慎感激。
@暗水天狼
我倒是可以正常编译工程,不过没用可视化工具生成代码。现在不会往工程里加库。。。。不懂makefile脑壳已经爆炸。
刚开始学Linux关于makefile实在是看不懂,遇到以下问题,往大神不吝赐教。
我的tina版本是3.5.1。
在路径 /home/(name)/tina351/package/gui/littlevgl-8/ 下有5个文件夹
分别是
lv_drivers
lv_examples
lv_lvgl
lv_monitor
lv_project
其中4个是官方SDK里 LVGL目录里原本的。
lv_project是我照猫画虎弄的。
内部有 一个 src文件夹 和 一个makefile ,都是为从 lv_examples 中拷贝过来的。
试着编译,运行这个工程没有问题。现在,想在工程中使用 modbus库。遇到了问题。makefile如下。
#
# Makefile
#
CC ?= gcc
LVGL_DIR_NAME ?= lvgl
LVGL_DIR ?= ${shell pwd}
CFLAGS ?= -O3 -g0 -I$(LVGL_DIR)/ -Wall -Wshadow -Wundef -Wmissing-prototypes -Wno-discarded-qualifiers -Wall -Wextra -Wno-unused-function -Wno-error=strict-prototypes -Wpointer-arith -fno-strict-aliasing -Wno-error=cpp -Wuninitialized -Wmaybe-uninitialized -Wno-unused-parameter -Wno-missing-field-initializers -Wtype-limits -Wsizeof-pointer-memaccess -Wno-format-nonliteral -Wno-cast-qual -Wunreachable-code -Wno-switch-default -Wreturn-type -Wmultichar -Wformat-security -Wno-ignored-qualifiers -Wno-error=pedantic -Wno-sign-compare -Wno-error=missing-prototypes -Wdouble-promotion -Wclobbered -Wdeprecated -Wempty-body -Wtype-limits -Wshift-negative-value -Wstack-usage=2048 -Wno-unused-value -Wno-unused-parameter -Wno-missing-field-initializers -Wuninitialized -Wmaybe-uninitialized -Wall -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wtype-limits -Wsizeof-pointer-memaccess -Wno-format-nonliteral -Wpointer-arith -Wno-cast-qual -Wmissing-prototypes -Wunreachable-code -Wno-switch-default -Wreturn-type -Wmultichar -Wno-discarded-qualifiers -Wformat-security -Wno-ignored-qualifiers -Wno-sign-compare
LDFLAGS ?= -lm -lmodbus
BIN = lv_project
#Collect the files to compile ./tupian.c
MAINSRC = ./ui_main.c ./usr_ui.c ./touch_5_points_cal.c ./main.c
include $(LVGL_DIR)/lvgl/lvgl.mk
include $(LVGL_DIR)/lv_drivers/lv_drivers.mk
#include $(LVGL_DIR)/lv_demos/lv_demo.mk
OBJEXT ?= .o
AOBJS = $(ASRCS:.S=$(OBJEXT))
COBJS = $(CSRCS:.c=$(OBJEXT))
MAINOBJ = $(MAINSRC:.c=$(OBJEXT))
SRCS = $(ASRCS) $(CSRCS) $(MAINSRC)
OBJS = $(AOBJS) $(COBJS)
## MAINOBJ -> OBJFILES
all: default
%.o: %.c
@$(CC) $(CFLAGS) $(LDFLAGS) $(LOCAL_CFLAGS) -c $< -o $@
@echo "CC $<"
default: $(AOBJS) $(COBJS) $(MAINOBJ)
$(CC) -o $(BIN) $(MAINOBJ) $(AOBJS) $(COBJS) $(LDFLAGS)
clean:
rm -f $(BIN) $(AOBJS) $(COBJS) $(MAINOBJ)
在 程序中包含头文件 #include <modbus/modbus.h> 编译不会报错。
但是,代码中调用 mb = modbus_new_rtu(...) 函数就会报错。
...undefined reference to `modbus_new_rtu'...
求大神解惑,为该怎么修改makefile才能在编译时找到这个库。
这个库,在根目录下 make menuconfig -> Libraries 下 已经 * 勾选 libmodbus
就看韦东山的视频和资料,他对这个芯片做了不少教程,能学多少学多少吧。
我用的Tina版本是3.5.1,根目录下 menuconfig 里只有 , miniGui 和 QT。而东山老师说,3.5以上的Tina是支持lvgl的。我没找到。
今天买了一块 d1s 的板子,下载了官方公开的 tina sdk 2.0 正在拷贝中。还一个小时多,哭死。
有没有前辈知道这版 SDK对 LVGL有支持吗?还是要自己移植。
查了很多帖子,都是不是在Tina环境下移植的。
从单片机转过来的,以前最好的片子就玩过F4 ESP32这些。目前很蒙B...
解决了.....我的天...
sleep居然所s级延迟.... 跟windows不一样.
改成usleep就可以了 这玩意是微妙级的
Tina3.5.1中自带的UI是 minigui ,这东西比较老,相应的资料也少。
现在我遇到一个问题:
怎么在minigui的应用程序框架中添加自己的线程?
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
程序中同时使用了 wav播放库 和 modbus库。
wav不用说,如果一定时间内没有给驱动程序送数据流,他就会卡住,表现是声音断断续续。
实测在tinyplay库中:
pcm_writei(ctx.pcm, music_buffer, frame_count) 该函数,如果没有即时调用就会卡顿。
函数内部最终实现的接口是:
ioctl(pcm->fd, SNDRV_PCM_IOCTL_WRITEI_FRAMES, &x)
也就是说 pcm_writei 如果没有及时被执行,则 pcm_writei 会阻塞大约512ms(平时根据设置缓存的大小 几十到100多ms) . 这段时间按个人理解是 重新启动初始化了 pcm设备。
而modbus干脆在读取设备时,干脆就是一个阻塞函数...等待目标地址的设备回应 如果超出规定时间 则放弃该次通讯,报告错误。
仅仅读一个线圈寄存器 我都需要为他花费至少40ms的时间。9600波特率 传输1个字节 大约不到1ms ,来回的报文大概都用掉了 10多MS。
我现在的问题就是 这两者无法 合理的分配时间。。。如果在播放过程中穿插modbus指令,声音就会时不时卡顿。
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
我试着用一个进程来 单独完成播放wav的工作 在程序中添加
void *thread_fun(void *arg)
{
pthread_t tid;
while(1)
{
tid = pthread_self();
printf("hello %u~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\r\n",(unsigned int)tid);
sleep(500);
}
}
并在int MiniGUIMain(int argc, const char *argv[])函数最开始的地方添加 :pthread_create(&id,NULL,thread_fun,NULL);
结果是没什么鸟用....仅仅在应用启动时 输出一条 printf("hello %u~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\r\n",(unsigned int)tid);
后面就毫无动静了。。。minigui正常工作。但是不会一直重复打印内容。
大佬们,有什么高招吗?
好像可以了!!!!
比如我要使用libugpio....只要在makefile中 LOCAL_LDFLAGS = -luguio就可以了....
是不是...只要增加 去掉lib 换成 "l"+"库名"就可以了额....
目前,为已经在我的工程中拷贝了。。。tinyplay相关的库。。。modbus相关的库。。。目前准备把libugpio也拷过来。。。
放歌是能放....modbus也有输出....一切工作正常...但是就是觉得者不科学...当然,科学我也不懂。
让我想起了前段时间看到 有人在ubuntu下 装不上全志的驱动...结果在ubuntu下弄个windows虚拟机烧镜像的事情...:( 对于初学者 这游戏太难了...
实在觉得自己有点蠢。。。:( 你们都是咋搞的阿。。。
学习TINA平台的时候遇到一个问题。
比如我要使用libmodbus:
我在make menuconfig 中勾选*了libmodbus,保存退出编译之后。
在tina/out/c200s-F1C200s/compile_dir/target 中可以找到一个叫 libmodbus-3.1.2的文件夹。
这时候,我引用modbus库的头文件是可以的,并不会报错。
#include <modbus/modbus.h>
但是,当我想使用该头文件内声明的API函数时,出现问题。编译错误提示,找不到函数实体。
比如 modbus_new_rtu modbus_set_slave modbus_connect
实在没办法,我到dl文件夹下,找到libmodbus,这个文件夹下全部是压缩包。解压,把modbus.c.....modbus-rtu.c...等等文件都拷贝到我的工程。。
就可以编译通过 并且这些函数可以正常使用。
目前知道的是tina/dl这个目录下,全部为压缩文件,对应menuconfig下的Libraries --->
我的工程是tina/package/minigui/xxxxx 拷贝了一个F1C200的项目自己改的。
我想知道,如何直接使用这些库...既然编译了...我是不是应该可以通过修改makefile或者其他办法直接使用这些库所提供的API函数。
本人初学者,问的问题比较愚蠢。。。望大神不吝赐教,指点一下。
对于玩mcu的,这玩意容易劝退...
对于不玩mcu的,我个人感觉,还是玩点别的吧...
本人目前在被劝退的路上渐行渐远..
但是,我还没放弃呢!
额................
有什么不同吗?
case xx:
if(xxx)
{
}
break;
董小姐,你嘴角向下的时候很美。
就用旧电脑装一台ubuntu就行了,不嫌弃麻烦 双系统也可以阿。嫌弃占地方 有钱到话去买一台mini主机,也很方便阿。主要就是你现在已经可以编译代码了。一定要记得虚拟机装的什么版本,你就在真机上也装同样的ubuntu版本,内核版本也要注意。这样少采坑。
@哇酷小二
--------------------------------------
额,这还真的可以试试。
现在怀疑 在调用int play_wav_music(const char * partname) 这个函数前是不是应该有一定的初始化动作。但是,在全志提供的例子中,并没有。并且他的例子在我的板子上也没有声音。。。
怀疑要么需要初始化,或者是某个配置文件没有配置。。。。
现在在看aplay和tinyplay的代码,tinyplay相对代码少一点。但是他是通过函数指针把snd_pcm_......相关函数重新包了一次的。
aplay因为牵扯到命令行解释啥的..代码很多。。先看看tinyplay吧。
有没有试过 tinyplay 呢?
---------------------------------------------------------------------
可用哦,一切正常!~~~tiny那几个测试程序都可以用,启动时的开机声音就是tinyplay播放的。
aplay也正常工作。
在模仿全志例程的时候遇到了一个问题,具体如下:
我可以用aplay播放wav文件,但是在工程中无法播放,每次执行到
err = snd_pcm_writei(playback_handle, buf , BUF_LEN/4);
会弹出错误 write to audio interface failed (Broken pipe) "损坏的管道?"
播放WAV的函数是抄的全志洗衣机那个例子,
网上很多帖子都有提到过类似这段代码,但是没有多余什么讲解 。自己看大概是读出wav文件的wave_header_t,
根据结构成员配置打开的pcm设备,最后snd_pcm_writei实现播放,而我的错误就是该函数返回的。
具体如下:
int play_wav_music(const char * partname)
{
int i; int err;
wav;
int headwavcntp;
snd_pcm_t *playback_handle; snd_pcm_hw_params_t *hw_params;
FILE *fp = NULL;
snd_pcm_format_t pcm_fmt;
char buf[BUF_LEN];
/* 打开 wav 文件 */
fprintf(stderr, "open file : %s\n", partname);
fp = fopen(partname, "r");
if (fp == NULL) {
fprintf(stderr, "open test pcm file err\n");
return -1;
}
/* 读文件头结构体 */
headwavcntp = fread(&wav, 1, sizeof(wave_header_t), fp);
if(headwavcntp != sizeof(wave_header_t)){
printf("read wav file head error!\n");
fclose(fp);
return -1;
}
/* 打印 读到的文件信息 */
printf("read wav file head success \n");
printf("bps = %d\n", wav.uBitsPerSample);
printf("chn = %d\n", wav.uChannels);
printf("fs = %d\n", wav.uSampleRate);
/* 判断 是8bit还是16bit */
if(wav.uBitsPerSample == 8){
pcm_fmt = SND_PCM_FORMAT_S8;
}else if(wav.uBitsPerSample == 16){
pcm_fmt = SND_PCM_FORMAT_S16_LE;
}else{
printf("uBitsPerSample not support!\n");
fclose(fp);
return -1;
}
if((err = snd_pcm_open(&playback_handle, "default", SND_PCM_STREAM_PLAYBACK, 0)) < 0){
fprintf(stderr, "cannot open audio device record.pcm (%s)\n", snd_strerror(err));
fclose(fp);
return -1;
}
if((err = snd_pcm_hw_params_malloc(&hw_params)) < 0){
fprintf(stderr, "cannot allocate hardware parameter structure (%s)\n",snd_strerror(err));
goto play_wav_out;
}
if((err = snd_pcm_hw_params_any(playback_handle, hw_params)) < 0){
fprintf(stderr, "cannot initialize hardware parameter structure (%s)\n", snd_strerror(err));
goto play_wav_out;
}
if((err = snd_pcm_hw_params_set_access(playback_handle, hw_params, SND_PCM_ACCESS_RW_INTERLEAVED)) < 0){
fprintf(stderr, "cannot allocate hardware parameter structure (%s)\n",snd_strerror(err));
goto play_wav_out;
}
if((err = snd_pcm_hw_params_set_format(playback_handle, hw_params, pcm_fmt)) < 0){
fprintf(stderr, "cannot allocate hardware parameter structure (%s)\n",snd_strerror(err));
goto play_wav_out;
}
if((err = snd_pcm_hw_params_set_rate(playback_handle, hw_params, wav.uSampleRate, 0)) < 0){
fprintf(stderr , "cannot set sample rate (%s)\n", snd_strerror(err));
goto play_wav_out;
}
if((err = snd_pcm_hw_params_set_channels(playback_handle, hw_params, wav.uChannels)) <0){
fprintf(stderr, "cannot set channel count (%s)\n", snd_strerror(err));
goto play_wav_out;
}
if((err = snd_pcm_hw_params(playback_handle, hw_params)) < 0){
fprintf(stderr, "cannot set parameters (%s)\n", snd_strerror(err));
goto play_wav_out;
}
snd_pcm_hw_params_free(hw_params);
while (!feof(fp)) {
err = fread(buf, 1, BUF_LEN, fp);
if (err < 0){
fprintf(stderr, "read pcm from file err\n");
goto play_wav_out;
}
err = snd_pcm_writei(playback_handle, buf , BUF_LEN/4);
if (err < 0){
fprintf(stderr, "write to audio interface failed (%s)\n", /* 我就是在这里弹出的错误 */
snd_strerror(err));
goto play_wav_out;
}
}
play_wav_out:
fprintf(stderr, "close file\n");
fclose(fp);
fprintf(stderr, "close dev\n");
snd_pcm_close(playback_handle); fprintf(stderr, "ok\n");
return 0;
}
/proc/asound/devies 内容如下:
root@TinaLinux:/proc/asound# cat devices
0: [ 0] : control
16: [ 0- 0]: digital audio playback
24: [ 0- 0]: digital audio capture
33: : timer
设备目录下也正常:
root@TinaLinux:/dev/snd# ls -l
crw-rw---- 1 root root 116, 0 Jan 1 00:00 controlC0
crw-rw---- 1 root root 116, 24 Jan 1 00:00 pcmC0D0c
crw-rw---- 1 root root 116, 16 Jan 1 00:00 pcmC0D0p
crw-rw---- 1 root root 116, 33 Jan 1 00:00 timer
也把snd_pcm_open()函数中的设备名 改变过 现在使用的是默认值 ''default",
改过 "hw:0,0" "plughw:0,0" "default:0" 输出错误信息是一样的。
完整的错误信息是这样的/*怕出不必要的问题,没有播放SD卡上的文件,这个开机.wav在启动过程中 通过壳命令播放过*/:
open file : /etc/kaiji.wav
read wav file head success
bps = 16
chn = 1
fs = 32000
write to audio interface failed (Broken pipe)
close file
close dev
现在无从下爪,大佬们帮看下应该怎么处理,或者给个思路也好。为去读aplay的源码看看,2000多行,估计问题比较大!
把报错部分的摘出来:
while (!feof(fp)) {
err = fread(buf, 1, BUF_LEN, fp);
if (err < 0){
fprintf(stderr, "read pcm from file err\n");
goto play_wav_out;
}
err = snd_pcm_writei(playback_handle, buf , BUF_LEN/4);
if (err < 0){
fprintf(stderr, "write to audio interface failed (%s)\n", /*就在这里输出的 str = "Broken pipe"*/
snd_strerror(err));
goto play_wav_out;
}
}
下载下来用试试看,感觉还是这个UI简洁明了。动不动就win什么什么的,一大堆窗口的UI现在看起来有点头疼了。
@海石生风
好的,我明天去搜一下相关到知识。从MCU转过来的,需要学习的还很多。3Q!
gaocangjian 说:请问,这个错误的 怎么解决 , 他所说的 476kb 到底指的是哪里?
用 df -h 或 mount 命令看看是什么被挂载在 /overlay 上的?
--------------------------------------------------------------------------------------------------
root@TinaLinux:/usr/bin# df -h
Filesystem Size Used Available Use% Mounted on
rootfs 512.0K 36.0K 476.0K 7% /
/dev/root 5.3M 5.3M 0 100% /rom
devtmpfs 20.7M 0 20.7M 0% /dev
tmpfs 28.8M 32.0K 28.8M 0% /tmp
/dev/by-name/rootfs_data
512.0K 36.0K 476.0K 7% /overlay
overlayfs:/overlay 512.0K 36.0K 476.0K 7% /
/dev/mtdblock8 1.3M 72.0K 1.2M 6% /mnt/UDISK
/dev/mmcblk0 486.0M 287.4M 198.6M 59% /mnt/SDCARD
看到了,因该是rootfs_data被挂在了overlay上,36K被占用?我仔细再去看看关于rootfs_data的东西,谢谢你。
改一下partition试试看。
@gaocangjian
开发时用NFS挂载文件系统、或用NFS挂载一个文件夹,实质就是弄一个共享文件夹把程序复制进去即可,发布时才需要写入Flash。
3Q,我用adb push 把编译好的 ipk文件 送到 小机到sd卡中了。。。现在的问题是需要安装。
谢谢,哦,明白了。为手上有128M的NAND,等一下试试看。
-------------------------------------------------------------------------------
我查了相关的资料,在 menuconfig 中勾选了 opkg的支持选项
现在 小机 可用识别 opkg 这个命令 :)
但是新的问题又来了。
root@TinaLinux:/mnt/SDCARD# opkg install F1C200s-board_1.0-1_sunxi.ipk /* 我的命令 我把 ipk PUSH到了SD卡 */
Installing F1C200s-board (1.0-1) to root...
Collected errors:
* verify_pkg_installable: Only have 476kb available on filesystem /overlay, pkg F1C200s-board needs 508
* opkg_install_cmd: Cannot install package F1C200s-board.
请问,这个错误的 怎么解决 , 他所说的 476kb 到底指的是哪里?
刚学SOC现在平台已经搭建好了。
每次修改完应用程序都要重新打包把整个镜像烧写到FLASH中,用LiveSuit。
真的很慢很慢,有时候改几个代码,等几分钟。。。
请教有没有快速点到方法?
目前用adb push把ipk弄到SD卡上... 但是在小机上不能安装。
opkg install xxx 小机不认识
算了,自己找到问了。只有14.04能装上驱动。
睡觉去,希望明天能解决了。:rolleyes:
本人野路子初学者最近学习全智的Linux-Tina,遇到了问题。LiveSuit不弹出烧写对话框,怀疑awusb没有安装上。
具体是:我有两台电脑,一个台式,一个笔记本
我的笔记本电脑,在编译,打包都正常的情况下。
上电短路FLASH引脚,LiveSuit并不能弹出 提示擦出并烧录的对话框。
代码包是在另一台电脑上验证过的,都正常,并且点亮了LCD,显示了自己想要的图形。
ubuntu版本16.04 不是虚拟机
LiveSuit安装包是 全智资料中有一个 tools/aw_tools/LiveSuit...x64 里面有一个 LiveSuit.run 和 一个PDF
运行 ./LiveSuit.run 的信息如下:
--------------------------------------------------------------------------------------------------------
root@ub:~/LiveSuit_For_Linux64# ./LiveSuit.run
You are running on Ubuntu
LiveSuit/
LiveSuit/LiveSuit.sh
LiveSuit/bin/
LiveSuit/bin/regdemo.lua
LiveSuit/bin/LiveProc.Plg
LiveSuit/bin/LiveSuit.lan
LiveSuit/bin/luadec.dll
LiveSuit/bin/imgdec_fun.lua
LiveSuit/bin/LiveSuit
LiveSuit/bin/libQtGui.so.4
LiveSuit/bin/regdecode.lua
LiveSuit/bin/ini_fun.lua
LiveSuit/bin/libQtCore.so.4
LiveSuit/bin/common_fun.lua
LiveSuit/bin/plgvector.dll
LiveSuit/bin/regbasefun.lua
LiveSuit/bin/LangPlg.dll
LiveSuit/bin/luaBase.dll
LiveSuit/bin/luaeFex.dll
awdev-0.5-1dkms.noarch.rpm
awdev-dkms_0.5_all.deb
(Reading database ... 182036 files and directories currently installed.)
Preparing to unpack /tmp/awdev-dkms_0.5_all.deb ...
-------- Uninstall Beginning --------
Module: awdev
Version: 0.5
Kernel: 2.6.32-52-generic (x86_64)
-------------------------------------
Status: This module version was INACTIVE for this kernel.
depmod....(bad exit status: 1)
DKMS: uninstall completed.
------------------------------
Deleting module version: 0.5
completely from the DKMS tree.
------------------------------
Done.
Unpacking awdev-dkms (0.5) over (0.5) ...
Setting up awdev-dkms (0.5) ...
Loading tarball for awdev-0.5
Loading /var/lib/dkms/awdev/0.5/2.6.32-52-generic/x86_64...
DKMS: ldtarball completed.
Creating symlink /var/lib/dkms/awdev/0.5/source ->
/usr/src/awdev-0.5
DKMS: add completed.
First Installation: checking all kernels...
Building only for 4.15.0-112-generic
Building for architecture x86_64
Building initial module for 4.15.0-112-generic
ERROR: Cannot create report: [Errno 17] File exists: '/var/crash/awdev-dkms.0.crash'
Error! Bad return status for module build on kernel: 4.15.0-112-generic (x86_64)
Consult /var/lib/dkms/awdev/0.5/build/make.log for more information.
--------------------------------------------------------------------------------------------------------
问题1:This module version was INACTIVE for this kernel.
貌似这个没问题,我另一台14.04的电脑上也显示不认可的...但是可以正常工作
问题2: ERROR: Cannot create report: [Errno 17] File exists: '/var/crash/awdev-dkms.0.crash'
Error! Bad return status for module build on kernel: 4.15.0-112-generic (x86_64)
这个就表示一脸懵逼。。。。实在不知道该怎么办。
在这之后,LiveSuit.run会在 home/user-name/Bin 生成一个文件夹
这应该是安装后的东西,按照 全智给的PDF 安装USB驱动,###依然不能成功###
具体如下:
----------------------------------------------------------------------------------------------------
root@ub:~/Bin# dpkg -i awdev-dkms_0.5_all.deb
(Reading database ... 182036 files and directories currently installed.)
Preparing to unpack awdev-dkms_0.5_all.deb ...
-------- Uninstall Beginning --------
Module: awdev
Version: 0.5
Kernel: 2.6.32-52-generic (x86_64)
-------------------------------------
Status: This module version was INACTIVE for this kernel.
depmod....(bad exit status: 1)
DKMS: uninstall completed.
------------------------------
Deleting module version: 0.5
completely from the DKMS tree.
------------------------------
Done.
Unpacking awdev-dkms (0.5) over (0.5) ...
Setting up awdev-dkms (0.5) ...
Loading tarball for awdev-0.5
Loading /var/lib/dkms/awdev/0.5/2.6.32-52-generic/x86_64...
DKMS: ldtarball completed.
Creating symlink /var/lib/dkms/awdev/0.5/source ->
/usr/src/awdev-0.5
DKMS: add completed.
First Installation: checking all kernels...
Building only for 4.15.0-112-generic
Building for architecture x86_64
Building initial module for 4.15.0-112-generic
ERROR: Cannot create report: [Errno 17] File exists: '/var/crash/awdev-dkms.0.crash'
Error! Bad return status for module build on kernel: 4.15.0-112-generic (x86_64)
Consult /var/lib/dkms/awdev/0.5/build/make.log for more information.
----------------------------------------------------------------------------------------------------
其实,问题跟上面一样的。应该在运行 ./LiveSuit.run的最后阶段就尝试了安装驱动,但是失败了。
最后的错误提示信息一模一样。
ERROR: Cannot create report: [Errno 17] File exists: '/var/crash/awdev-dkms.0.crash'
Error! Bad return status for module build on kernel: 4.15.0-112-generic (x86_64)
########################################################
但是即使是这样失败的安装,短路FLASH,上电时,仍然可以看到识别了全知的设备。
打印信息如下: lsusb
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 004: ID 8087:0a2a Intel Corp.
Bus 001 Device 003: ID 04f2:b5d7 Chicony Electronics Co., Ltd
Bus 001 Device 002: ID 093a:2510 Pixart Imaging, Inc. Optical Mouse
Bus 001 Device 006: ID 1f3a:efe8 Onda (unverified) V972 tablet in flashing mode
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 006: ID 1f3a:efe8 Onda (unverified) V972 tablet in flashing mode
不要看括号里的信息,我那台能工作的电脑也是这样的。。。忽略了
但是区别就是 那台能工作的电脑 上 如果 lsmod 可以在列表中 找到 awusb
而,这台不能工作的电脑 始终 在mod列表中 找不到 这个mod....
我猜测这应该就是LiveSuit不能正常工作的原因..........
搞了1整天了,现在已经过了0点了..实在搞不懂了...
请大佬们,指点一二,小弟感激不尽...先拜谢大佬了!
页次: 1