全志文件管理器移植到RK3288(一)----配置内核支持nfs和cifs
来源:互联网 发布:知其然还要知其所以然 编辑:程序博客网 时间:2024/05/17 10:07
对于全志的浏览器功能和界面都做的挺好的,所以就想把它放到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内核的所有步骤了。完结
- 全志文件管理器移植到RK3288(一)----配置内核支持nfs和cifs
- 全志文件管理器移植到RK3288(三)----修改文件浏览器
- 全志文件管理器移植到RK3288(二)----framework添加接口模块
- 网络文件协议(NFS和CIFS)
- utu2440内核移植根文件移植配置nfs
- linux运维-访问网络共享服务(cifs和nfs)
- 配置内核支持NFS启动文件系统
- 配置内核支持NFS启动文件系统
- 配置Linux内核支持NFS服务
- freenas 安装配置, nfs, cifs, smb类似cifs
- NFS/CIFS
- CIFS,NFS
- cifs,nfs
- 移植linux内核到s3c6410(配置内核make menuconfig)
- (NFS移植到arm上)编译portmap和nfs-utils
- 运维笔记17 (文件共享(samb,cifs),ftp服务的配置和使用(vsftpd))
- linux内核移植、配置及nfs文件系统挂载
- 如何用nfs命令烧写内核和文件系统(网络下载文件到nandflash)(未完)
- Linux下的两类I/O操作总结
- ubuntu启动脚本的一些笔记
- 微信思维
- 大数阶乘(c++)
- 内核回调 之 一"读"到底
- 全志文件管理器移植到RK3288(一)----配置内核支持nfs和cifs
- 11.short s1 = 1; s1 = s1 + 1;有什么错? short s1 = 1; s1 += 1;有什么错?
- php获取毫秒时间戳
- Android内核的编译与裁剪
- linux中shell变量$#,$@,$0,$1,$2的含义解释
- 略时间中秒的部分,使时间中的秒变成0
- 自己编写ASSERT()宏(对调试程序很有帮助)
- C++虚函数及虚函数表解析
- lie to me