Пытаюсь запустить nano-X GUI на uclinux. Не запускается из за того, что mmap на /dev/fb0 возвращает No such device.
Сам фреймбуфер находится в памяти микроконтроллера и определяется через Device tree. Драйвер используется simplefb.
Если следать cat /dev/urandom > /dev/fb0 экран заполняется шумом, т.е. вроде как драйвер нормально работает.
В самом драйвере, по умолчанию, нет функции fb_mmap, пытался прикрутить свою, в ней просто писал printk(«Hello»), на экране ничего не появилось, такое ощущение что mmap и не пытается вызвать эту функцию из драйвера.
В нете читал что mmap на системах без MMU не работает с блочными устройствами.
Фреймбуффер к блочным относится?
Какие есть варианты получить доступ к фреймбуфферу из приложения?
Притом что адрес известен, но при попытке записи по этому адресу из приложения, ядро падает с исключением Mem manage fault, если же писать туда что-либо из драйвера - все нормально пишется, это я проверял через ioctl, т.е. в драйвере просто делал заливку экрана одним цветом, а из приложения вызывал ioctl и экран заливался нужным цветом.
Вариант через open/lseek/write работает, но ну его нафиг.