题主是新手,在参照https://whycan.com/t_5221.html/,从git下载好开发包之后,执行以下操作
make widora_mangopi_r3_defconfig
make -j8
第一次是正常编译且生成固件了
但因为在第一次运行lvgl的时候,显示的有问题,代码里只是显示了一个居中对齐的label,但是却跑到了右下角
lvgl代码:
int main(void)
{
/*LittlevGL init*/
lv_init();
/*Linux frame buffer device init*/
fbdev_init();
/*A small buffer for LittlevGL to draw the screen's content*/
static lv_color_t buf[DISP_BUF_SIZE];
/*Initialize a descriptor for the buffer*/
static lv_disp_draw_buf_t disp_buf;
lv_disp_draw_buf_init(&disp_buf, buf, NULL, DISP_BUF_SIZE);
/*Initialize and register a display driver*/
static lv_disp_drv_t disp_drv;
lv_disp_drv_init(&disp_drv);
disp_drv.draw_buf = &disp_buf;
disp_drv.flush_cb = fbdev_flush;
disp_drv.hor_res = 800;
disp_drv.ver_res = 480;
lv_disp_drv_register(&disp_drv);
/* Linux input device init */
// evdev_init();
/* Initialize and register a display input driver */
lv_indev_drv_t indev_drv;
lv_indev_drv_init(&indev_drv); /*Basic initialization*/
indev_drv.type = LV_INDEV_TYPE_POINTER;
indev_drv.read_cb = evdev_read;
lv_indev_t * my_indev = lv_indev_drv_register(&indev_drv);
/*Create a Demo*/
// lv_100ask_demo_course_1_3_1();
lv_obj_t * label = lv_label_create(lv_scr_act());
lv_label_set_text(label, "Hello lvgl!");
lv_obj_align(label, LV_ALIGN_CENTER, 0, 0);
/*Handle LitlevGL tasks (tickless mode)*/
while(1) {
lv_task_handler();
usleep(5000);
}
return 0;
}
题主尝试修改UBoot里面的config,
原始完整参数: x:800,y:480,depth:18,pclk_khz:30000,le:16,ri:209,up:22,lo:22,hs:30,vs:1,sync:0,vmode:0
修改成: 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
(PS: 还没验证,因为报错了,感觉改这里没什么作用)
接着题主怕不生效,执行了make clean; make -j8
结果到最后就报错了,但执行find / -name libpython3.8.so.1.0 是能找到这个文件的
python3.8: error while loading shared libraries: libpython3.8.so.1.0: cannot open shared object file: No such file or directory
求大神解惑,急!
最近编辑记录 8z00z8 (2022-03-27 20:07:16)
离线
buildroot 编译固件不建议执行 make clean,
如果想重新编译某个package正确做法是
① 删除 output/build/xxxxxxx/.stamp_built
或
② 删除 output/build/xxxxxxx 这个目录
即可
然后你重新make时候就会看到重新编译这个package了。
离线
至于 libpython3.8.so.1.0,你多贴一些日志记录,目前这个截图看不出问题。
这是make之后的日志
root@100ask:/home/book/work/buildroot-tiny200# make
>>> host-python3 3.8.6 Building
PATH="/home/book/work/buildroot-tiny200/output/host/bin:/home/book/work/buildroot-tiny200/output/host/sbin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/opt/gcc-linaro-7.2.1-2017.11-x86_64_arm-linux-gnueabi/bin:/opt/buildroot-tiny200/host/bin" PKG_CONFIG="/home/book/work/buildroot-tiny200/output/host/bin/pkg-config" PKG_CONFIG_SYSROOT_DIR="/" PKG_CONFIG_ALLOW_SYSTEM_CFLAGS=1 PKG_CONFIG_ALLOW_SYSTEM_LIBS=1 PKG_CONFIG_LIBDIR="/home/book/work/buildroot-tiny200/output/host/lib/pkgconfig:/home/book/work/buildroot-tiny200/output/host/share/pkgconfig" ac_cv_have_long_long_format=yes ac_cv_file__dev_ptmx=yes ac_cv_file__dev_ptc=yes ac_cv_working_tzset=yes ac_cv_prog_HAS_HG=/bin/false ac_cv_little_endian_double=yes /usr/bin/make -j9 PATH="/home/book/work/buildroot-tiny200/output/host/bin:/home/book/work/buildroot-tiny200/output/host/sbin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/opt/gcc-linaro-7.2.1-2017.11-x86_64_arm-linux-gnueabi/bin:/opt/buildroot-tiny200/host/bin" PKG_CONFIG="/home/book/work/buildroot-tiny200/output/host/bin/pkg-config" PKG_CONFIG_SYSROOT_DIR="/" PKG_CONFIG_ALLOW_SYSTEM_CFLAGS=1 PKG_CONFIG_ALLOW_SYSTEM_LIBS=1 PKG_CONFIG_LIBDIR="/home/book/work/buildroot-tiny200/output/host/lib/pkgconfig:/home/book/work/buildroot-tiny200/output/host/share/pkgconfig" AR="/usr/bin/ar" AS="/usr/bin/as" LD="/usr/bin/ld" NM="/usr/bin/nm" CC="/usr/bin/gcc" GCC="/usr/bin/gcc" CXX="/usr/bin/g++" CPP="/usr/bin/cpp" OBJCOPY="/usr/bin/objcopy" RANLIB="/usr/bin/ranlib" CPPFLAGS="-I/home/book/work/buildroot-tiny200/output/host/include" CFLAGS="-O2 -I/home/book/work/buildroot-tiny200/output/host/include" CXXFLAGS="-O2 -I/home/book/work/buildroot-tiny200/output/host/include" LDFLAGS="-L/home/book/work/buildroot-tiny200/output/host/lib -Wl,-rpath,/home/book/work/buildroot-tiny200/output/host/lib" INTLTOOL_PERL=/usr/bin/perl -C /home/book/work/buildroot-tiny200/output/build/host-python3-3.8.6 regen-importlib
make[1]: Entering directory '/home/book/work/buildroot-tiny200/output/build/host-python3-3.8.6'
# Regenerate Python/importlib_external.h
# from Lib/importlib/_bootstrap_external.py using _freeze_importlib
./Programs/_freeze_importlib importlib._bootstrap_external \
./Lib/importlib/_bootstrap_external.py \
./Python/importlib_external.h.new
python3.8 ./Tools/scripts/update_file.py ./Python/importlib_external.h ./Python/importlib_external.h.new
python3.8: error while loading shared libraries: libpython3.8.so.1.0: cannot open shared object file: No such file or directory
Makefile:724: recipe for target 'regen-importlib' failed
make[1]: *** [regen-importlib] Error 127
make[1]: Leaving directory '/home/book/work/buildroot-tiny200/output/build/host-python3-3.8.6'
package/pkg-generic.mk:266: recipe for target '/home/book/work/buildroot-tiny200/output/build/host-python3-3.8.6/.stamp_built' failed
make: *** [/home/book/work/buildroot-tiny200/output/build/host-python3-3.8.6/.stamp_built] Error 2
root@100ask:/home/book/work/buildroot-tiny200#
离线
buildroot 编译固件不建议执行 make clean,
如果想重新编译某个package正确做法是
① 删除 output/build/xxxxxxx/.stamp_built
或
② 删除 output/build/xxxxxxx 这个目录即可
然后你重新make时候就会看到重新编译这个package了。
终于编译通过了,我删除了output/build/host-python3-x.x.x的文件夹,然后装了一下python38,重新make就好了,感谢!
离线