小编Tyl*_*ler的帖子

Linux内核模块/ IOCTL:设备的ioctl不合适

我正在编写一个Linux内核模块(LKM)作为伪驱动程序 - 我无法弄清楚如何在LKM(wait.c)和用户级程序(user.c)之间进行IOCTL调用).

设备驱动程序的幻数是0xBF--LKM不与物理块/字符设备通信,它只是一个练习.据我所知,IOCTL调用KERN_IOCTL_CREATE_EVENT格式不正确且幻数不正确.

我试图使用的IOCTL调用是:

#include <sys/ioctl.h>
#define KERN_IOCTL_CREATE_EVENT   _IOWR(WAIT_DEVICE_MAGIC, 1, int)

int main(){
int ret;
int fd;
fd = open("/dev/wait", 0);
if(fd < 0){
    return -1;
}
ret = ioctl(fd, KERN_IOCTL_CREATE_EVENT, 0);
Run Code Online (Sandbox Code Playgroud)

错误:

[fail]: KERN_IOCTL_CREATE_EVENT: Inappropriate ioctl for device
Run Code Online (Sandbox Code Playgroud)

用户模式应用程序可以打开/关闭指向设备的文件描述符:/dev/waitcase/ switchstatement不接受IOCTL调用.有什么建议?

这是输出 # uname -a

Linux vagrant-ubuntu-trusty-64 3.13.11.11+ #1 SMP Mon Dec 1 20:50:23 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux
Run Code Online (Sandbox Code Playgroud)

wait.c

#include <linux/miscdevice.h>
#include <linux/moduleparam.h>
#include …
Run Code Online (Sandbox Code Playgroud)

c linux kernel-module linux-device-driver linux-kernel

7
推荐指数
1
解决办法
8799
查看次数

如何翻译 THREE.PointCloud 对象中的顶点?

我在尝试着:

  • THREE.PointCloud用大约绘制一个对象。150k 点,其中点从 Web 应用程序发送。
  • 缩放THREE.PointCloud对象中的点以获得与此类似的结果(使用 渲染MayaVi):

MayaVi 曲面渲染

问题在于:

  • 传递给THREE.PointCloud对象的数据似乎不准确
  • 在 中渲染时three.js,点被排列成八个立方体,原因不明(我没有对点应用任何缩放或变换)

示例服务器响应(我在本文底部包含了示例数据):

{'geometry': [[-156, 65, 89],
              [268, 84, 337],
              [-205, 68, 170],
              [-87, 69, 52],
              ...
              [289, 81, 143],
              [141, 78, 280],
              [403, 75, 351]],
 'metadata': {'max': {'x': 421, 'y': 105, 'z': 458},
          'min': {'x': -335, 'y': 63, 'z': 39}}}
Run Code Online (Sandbox Code Playgroud)

three.js用于创建点云的代码:

  var container;
  var scene, camera, renderer, controls;
  var geometry, material, mesh;

  init();
  animate();

  function init() {
    scene = new …
Run Code Online (Sandbox Code Playgroud)

javascript 3d three.js

5
推荐指数
1
解决办法
3142
查看次数