--- a/src/serdisp_specific_framebuffer.c +++ b/src/serdisp_specific_framebuffer.c @@ -312,13 +312,15 @@ serdisp_t* serdisp_framebuffer_setup(con if (fb_success) { /* check if colour mode is supported */ - if (! (vinfo.bits_per_pixel == 16 || vinfo.bits_per_pixel == 24 || vinfo.bits_per_pixel == 32) ) { + if (! (vinfo.bits_per_pixel == 1 ||vinfo.bits_per_pixel == 16 || vinfo.bits_per_pixel == 24 || vinfo.bits_per_pixel == 32) ) { sd_error(SERDISP_ERUNTIME, "unsupported colour depth (%d)", vinfo.bits_per_pixel); fb_success = 0; } } - - dd->scrbuf_size = vinfo.xres * vinfo.yres * vinfo.bits_per_pixel/8; + if (vinfo.bits_per_pixel == 1) + dd->scrbuf_size = (vinfo.xres * vinfo.yres) / 8; + else + dd->scrbuf_size = vinfo.xres * vinfo.yres * vinfo.bits_per_pixel/8; if (fb_success) { /* map framebuffer device to memory */