瑞芯微Rockchip开发者社区
直播中

毛头大小子

12年用户 610经验值
私信 关注
[问答]

怎样去修改RK3288的内核以便支持cifs和nfs呢

怎样去修改RK3288的内核以便支持cifs和nfs呢?

怎样去修改RK3288文件浏览器的应用呢?

回帖(1)

张晓宁

2022-3-10 14:25:41
  对于全志的浏览器功能和界面都做的挺好的,所以就想把它放到RK3288上用。然后遇到了很多问题。
  最让我头痛的是RK3288的内核没有支持nfs,cifs好像有支持,但是测试没成功。
  因为对安卓还是停留在应用层打转,所以花了好多时间查资料。现把我知道的记录一下,说不定也可以帮别人。
  需要修改的地方:
  1.修改linux内核,支持cifs和nfs(有些本身就支持的就不用修改)
  2.修改framework,增加服务service和api接口提供root权限给应用层
  3.修改文件浏览器应用
  下面具体说明如何修改:
  (1)修改linux内核,或者叫配置文件来添加cifs和nfs的支持。
  在终端进入linux源码根目录:例如RK3288


  然后输入:make menuconfig


  接着点击enter,就会弹出一个蓝色背景的图形界面的配置界面


  看到这个界面时,按上下键,找到File systems ---》
  按enter进入,然后选择
  Network File Systems ---》
  这里通常左边的中括号都默认是*的,如果没有,就按空格键切换选择。


  然后按enter进入



  此时按上下键,我们就看到了关键词nfs和cifs,这个就是我们需要修改的地方了。如图,按图对应选择上。 怎么选择了?就是按上下键选上对应需要改的,然后按空格键切换。此时会有三种标识:[]、
  、[M],这三种标识的意思大概是:[]就是空,没选择上;
  这个就是把该模块编译到内核里;[M]这个是把该模块编译成单独的动态库文件,如cifs.ko和nfs.ko,.ko文件可以通过命令insmod cifs.ko来手动添加。当然我们肯定是选择编译到内核里。此时就配置完了,按多次ESC键会弹出保存,选择保存就可以了。
  选择yes,点击enter,linux内核配置就算是完成了。但是我们要重新编译内核。在终端,此时还是在kernel目录下,执行make kernel.img
  等执行玩,我们就会在该目录下多了一个kernel.img文件,如果不放心是不是刚编译出来的,右键属性查看时间。
  以上算是成功修改kernel了,我们可以通过工具烧写kernel.img到开发板,或者编译出完整的固件来升级系统,我就是编译出.zip文件然后用sdcard来升级的。
  当你升级了自己重新编译的kernel,如何验证呢?
  1.终端下,cat /proc/version 看看时间是不是对了,如下
  root@rk3288:/ # cat /proc/version
  Linux version 3.10.0 (zxzh@moons-104) (gcc version 4.6.x-google 20120106 (prerelease) (GCC) ) #5 SMP PREEMPT Wed Oct 29 17:01:01 CST 2014
  2.终端下,cat /proc/filesystems 看看有没nfs和cifs项,如下


  root@rk3288:/ # cat /proc/filesystems
  看到有nfs和cifs,顿时我就开心了。说明内核已经支持了。不过还是不放心,是否真的可用呢?我们来测测。


  1.cifs挂载
  终端下执行,当然这里需要root权限
  busybox mount -t cifs -o username=admin,password=123456 //192.168.7.251 /mnt/cifs
  一执行,发现错误,提示mount: No such file or directory
  当时就急了,怎么不行啊。后来发现挂载的目录没有创建,然后就mkdir /mnt/cifs
  又提示错误 mkdir failed for /mnt/nfs, Read-only file system
  好吧,这个目录没权限创建文件,换一个目录
  mkdir /mnt/sdcard/cifs,嗯嗯,这次没报错,cd /mnt/sdcard也看到cifs文件夹了。ok,我们继续执行挂载命令,当然这次挂载路径改了
  终端下,busybox mount -t cifs -o username=admin,password=123456 //192.168.7.251 /mnt/sdcard/cifs
  哈哈,没报错了,cd /mnt/sdcard/cifs,嗯,有文件了,说明成功了。但是怎么中文乱码的。应该是格式不对。加上 iocharset=utf8,如下
  busybox mount -t cifs -o username=admin,password=123456,iocharset=utf8 //192.168.7.251 /mnt/sdcard/cifs
  ok,不会乱码了。
  2.nfs挂载
  与cifs挂载差不多
  在终端下,mount -t nfs -o nolock 192.168.7.4:/home/share /mnt/sdcard/nfs
  好了,也成功了。
  以上就是修改linux内核的所有步骤了。完结
举报

更多回帖

发帖
×
20
完善资料,
赚取积分