全志文件管理器移植到RK3288(一)----配置内核支持nfs和cifs
2014-11-04 14:21
477 查看
全志文件管理器移植到RK3288(一)----配置内核支持nfs和cifs
对于全志的浏览器功能和界面都做的挺好的,所以就想把它放到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上用。然后遇到了很多问题。
最让我头痛的是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][Android6.0] 移植笔记 --- RK818配置不正确导致无法开机调试
- 配置内核支持NFS启动文件系统
- 全志文件管理器移植到RK3288(二)----framework添加接口模块
- 全志文件管理器移植到RK3288(三)----修改文件浏览器
- rk3288修改内核生成/dev/ttyUSBX,完成对身份证阅读器的支持
- utu2440内核移植根文件移植配置nfs
- 210支持nfs方式挂载文件系统的内核配置
- Porting:uboot烧写、linux内核烧写、根文件系统烧写:系统移植,nfs同步网络配置
- 配置内核支持NFS启动文件系统
- 配置内核支持NFS启动文件系统
- mini2440无盘启动------配置支持NFS的内核-----2
- NFS的配置,内核以及host端。
- S3c6410 linux内核移植(1)---下载与配置
- mini6410基于linux2.6.36内核通过NFS启动根文件系统总结(二uboot移植)
- Linux-2.6.32.2内核在mini2440上的移植(十)---配置USB外设
- 移植u-boot-2011.03到S3C2440(utu2440)的方法与步骤###8. u-boot引导启动nand flash中内核和根文件系统cramfs和用户文件系统yaffs2支持
- 【引用】Linux-2.6.32.2内核在mini2440上的移植(十)---配置USB外设
- Linux-2.6.32.2内核在mini2440上的移植(十)---配置USB外设
- Linux-2.6.32.2内核在mini2440上的移植(九)---配置USB外设
- linux开发板支持NFS文件系统配置