树莓派(Raspberry Pi)2B编译安装Robopeak USB屏幕驱动

树莓派安装的系统是Linux raspberrypi 4.1.19+,以下的命令都是通过SSH在树莓派的系统上直接执行的。

1.编译树莓派内核

参照Ubuntu 16.04 (x64)树莓派B+(Raspberry Pi B+)源代码编译

2.安装git

3.安装编译工具

我们在编译树莓派内核的时候,使用的gcc的版本是4.8.3版本(rpi-tools目录下),但是遗憾的是,树莓派自带的gcc的版本却是4.6.3,用这个版本的gcc编译出来的内核驱动可能会直接崩溃的,我们最好手工指定使用的gcc跟我们编译内核的时候的版本一致。换句话说,如果哪天我们编译内核的gcc再次升级,那么我们也需要手工在树莓派内部指定相同版本。

4.拷贝刚刚编译树莓派内核的源代码到当前的树莓派系统磁盘

从树莓派上拔下SD卡,插入到编译内核的Ubuntu 16.04 (x64)系统上,拷贝源代码

5.建立内核模块库目录的链接

重新插上SD卡,并且启动进入树莓派系统

6.检测源代码目录下是否存在Module.symvers

这个文件在我们编译内核之后应该是存在的,如果不存在,需要重新编译内核。
没有Module.symvers或用错了Module.symvers都可能会造成你加载模块时报Exec format error.

7.将当前正在使用的系统的内核配置作为编译内核时候的配置

8.生成编译内核所需要的文件

9.修改驱动程序的默认版本号与本系统相同

修改里面的内容为使用uname -r命令显示的内容,此系统版本显示为4.4.12+,修改后的内容如下:

如果不进行上述的修改,会导致编译出来的内核文件在加载的时候提示disagrees about version of symbol module_layout,而无法成功加载驱动。

10.下载驱动程序源代码

11.切换到驱动程序的源代码目录

12.编译源代码

编译完成后使用

查看是不是与使用

显示的完全相同,如果不完全相同,则需要继续进行上面的调整。

13.安装编译好的驱动

执行完成后,会在/dev目录下面生成fb1这个文件。

执行

如果出现花屏,则驱动一切正常。

此处存在一个大坑。如果按照说明文档把驱动拷贝到

或者直接运行,

则运行时候报错:

这个问题是由于驱动存放的目录不正确导致的。

14.将RoboPeakMini USB显示器驱动程序的内核模块设定为自动启动

然后在文件尾部增加一行rp_usbdisplay

参考链接


发布者

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注