我正在移植/编译androidvnc服务器对于我的 Android 设备,但是当我运行它(以 root 身份)时,我不断收到 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);
}
我正在寻找有关如何进一步调试此问题的想法。
根据记录,像素 = 614400,字节数 = 4。另外,/dev/graphics/fb0 属于 root (group=graphics),权限为 660。
prmatta,
错误代码 22 是EINVAL
.
来自mmap()文档告诉你...
EINVAL 我们不喜欢开始或长度
或偏移。 (例如,它们太大,
或者未在页面边界上对齐。)
也许您没有对内存进行页面对齐?
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)