我正在移植/编译androidvncserver为我的android设备,但是当我运行它(作为根),我不断收到mmap错误。
有问题的代码如下所示:
/* Android does not use /dev/fb0. */ #define FB_DEVICE "/dev/graphics/fb0" if ((fbfd = open(FB_DEVICE, O_RDONLY)) == -1) { printf("cannot open fb device %s\n", FB_DEVICE); exit(EXIT_FAILURE); } <SNIP> fbmmap = mmap(NULL, pixels * bytespp, PROT_READ, MAP_SHARED, fbfd, 0); if (fbmmap == MAP_FAILED) { printf("mmap failed errno = %d\n", errno); exit(EXIT_FAILURE); }
我正在寻找关于如何进一步debugging的想法。
对于logging,像素= 614400和bytespp = 4。 另外,/ dev / graphics / fb0由root(group = graphics)拥有,拥有660的权限。
prmatta,
错误代码22是EINVAL
。
从mmap()
文档告诉你…
EINVAL我们不喜欢开始或长度或偏移。 (例如,它们太大,或者不在页面边界上对齐。)
也许你没有页面调整你的记忆?