一、编译内核:
1、先手动配置内核
cd osdrv/kernel/linux-3.0.y
cp arch/arm/configs/hi3518e_full_deconfig .config
make ARCH=arm CROSS_COMPILE=arm-hisiv100nptl-linux- menuconfig
选择General tup——》Cross-compiler tool prefix 输入arm-hisiv100nptl-linux- 退出,保存
2、进入/osdrv/Makefile文件中:
将规则hirootfs_build:pushd $(OSDRV_DIR)/pub/$(PUB_ROOTFS)/lib/;$(OSDRV_CROSS)-strip *;popd这一行的注释去掉,为了生成精简版的文件系统。
3、执行make OSDRV_CROSS=arm-hisiv100nptl-linux CHIP=hi3518e all
生成的内核镜像和文件系统放在/osdrv/pub目录中,将uImage和后面生成的文件镜像拷贝到安装tftp服务时创建的目录下面(以下有说明)
统计法实施条例可能出现以下问题:
1、pushd 命令找不到!
ll /bin/sh ——查看/bin/sh的指向,如果结果是dash,修改为bash
ln -s /bin/bash /bin/sh -f
二、制作文件系统:
1、首先将~/mpp2/ko/pinmux_hi3518.sh文件的两行注释掉:
net_mii_mode函数中的:himm 0x200f005c 0x1和himm 0x200f0070 0x1这两行。
2、拷贝该ko文件到~/osdrv/pub/rootfs_uclibc文件下。
3、把~/osdrv/pub/rootfs_uclibc文件夹打包成镜像的命令:
mkfs.jffs2 -d 文件系统的路径 -l -e 0x10000 -o 文件镜像的目标位置/文件镜像名称;
如:
mkfs.jffs2 -d ~/lenglihong/HiSi3518/Hi3518_SDK_V1.0.9.0/osdrv/pub/rootfs_uclibc -l -e 0x10000 -o ~/lenglihong/HiSi3518/Hi3518_SDK_V1.0.9.0/osdrv/pub/rootfs_64k_ko.jffs2
三、烧录过程
在WINDOW 7下的烧录:
(1)、工具
SecureCTR、tftpd32
(2)、具体步骤
1、安装usb转串口的驱动
我的世界你不懂
在~/usb驱动/WIN7驱动2/Prolific_目录下
安装后到设备管理器中查看是否安装成功。
2、安装tftpd32软件,在百度上面随便搜索一个下载,安装后,打开tftpd32软件。
其中当前目录指的是安装tftpd32的安装目录,点击显示目录可以看到该目录下的内容。后面要烧录的镜像文件都是放在这个目录下的,在u-boot控制命令台加载镜像文件的时候,自动从该目录下搜索指定的镜像文件。
服务器IP地址指的是当前PC机的IP地址,当打开tftpd32软件的时候,会自动把你当前PC上的IP地址加载到此处。如果你想修改服务器的IP地址,直接把你的PC的IP地址修改后,打开tftpd32软件,会自动加载的。
3、安装SecureCTR软件,具体步骤请百度。
首先打开SecureCTR软件,选择快速链接,会弹出一个选项框。
在Protocla 下拉菜单中选择 rial ;
Port的选择依据安装驱动时分配的com端口;
波特率选择115200
国家公积金 点击ok
当窗口出现绿色勾时表明链接成功。
4、重新启动开发板,按住ctrl+c进入u-boot的控制台,再根据烧录步骤,输入命令烧kernel和文件系统。但是一定要把相关镜像文件拷贝到tftpd32的安装目录下,不然找不到。
在LINUX下的烧录:
(1)、工具
minicom、tftp
(2)、步骤
1、安装ftpd以及相关软件包
sudo apt-get install xinetd tftpd tftp
2、创建文件/etc/xinetd.d/tftp并且按如下所示配置
rvice tftp
{
protocol = udp
port = 69
socket_type = dgram
wait = yes
ur = nobody
rver = /usr/sbin/in.tftpd
rver_args = /tftpboot
disable = no
}
3、在系统根目录下创建tftproot目录,并修改权限
$sudo mkdir /tftpboot
$sudo chmod -R 777 /tftpboot
$sudo chown -R nobody /tftpboot
4、启动tftp服务
$ sudo /etc/init.d/xinetd stop
$ sudo /etc/init.d/xinetd start
如果出现错误如下:
Rather than invoking init scripts through /etc/init.d, u the rvice(8)
utility, e.g. rvice xinetd stop
Since the script you are attempting to invoke has been converted to an
Upstart job, you may also u the stop(8) utility, e.g. stop xinetd
xinetd stop/waiting
原来新版本下不能用此方式启动 tftp rver了,要用
rvice /etc/init.d/xinetd(服务名)start(stop/restart)
5、检查tftp是否已经启动成功
$ sudo netstat -lnput
红色代表服务已启动。
6、测试:传输一个文件
也可以将localhost改为127.0.0.1
如果出现错误,可能是的权限不够。
用ls -l 文件查看改文件的权限。
文件的权限应该是666若低于该权限,请修改为666。
Sudo Chmod 666 文件;
7、下载minicom
(1)有些linux系统自带了minicom,直接用命令安装就行了:
apt-get install minicom;
也可以从以下地址下载安装:
alioth.debian/projects/minicom/
(2)安装完成后:
用指令"rpm -qa | grep minicom"来确认是否安装了minicom,回车后会显示minicom 的版本信息.
第一次 启动时:
即输入 minicom提示 错误。则 需: minicom -s
启动
出现配置菜单:选rial port tup
进入串口配置
输入A配置串口驱动为/dev/ttyS0(如果使用USB转接口,Serial Device要配置为/dev/ttyUSB0)
输入E配置速率为115200 8N1
输入F将 Hardware Flow Control 设 为 NO
荷兰农业
回车 退出
由 于我们使用minicom作为超级终端控制路由器等设备, 而不是控制modem, 所以需要修改Modem and dialing, 将Init string, Ret string, Hang-up string设置为空. 设置完成后选择Save tup as dfl将当前设置保存为默认设置.(若保存时出错,可能是因为权限不够,用root身份配置爱情哲理minicom则可)
在配置菜单 选Save tup as df1保存(一定要记得这一步)
选Exitwhew退出
下次在输入minicon 即可直接进入。
命令minicom是进入串口超级终端画面,而minicom -s为配置minicom。
说明/dev/ttyS0 对应为串口0 为你连接开发板的端口。
注意:非正常关闭minicom,会在/var/lock下创建几个文件LCK*,这几个文件阻止了minicom的运行,将它们删除后即可恢复
8、接下来就可以进入mincom进行烧录了
若出现TFTP error: 'Access violation'这种错误,可能是因为/tftpboot目录下的镜像文件权限不够,设置成666即可。
可能遇到以下问题:
四、挂载NFS文件系统
1、在你的PC机上安装NFS服务
执行sudo apt-get install nfs-kernel-rver
查看nfs端口是否打开:
netstat -tl
可以看出nfs和sunrpc端口已经处于监听状态。
启动和停止nfs命令如下:
sudo /etc/init.d/nfs-kernel-rver start(stop/restart)
接下来对nfs服务器进行配置:
打开/etc/exports文件,在末尾加入:
/home/kevin *(rw,sync,no_root_squash)
航空模型
注:nfs允许挂载的目录及权限,在文件/etc/exports中进行定义,各字段含义如下:
月亮代表我的心钢琴谱/home/kevin:要共享的目录
* :允许所有的网段访问
rw :读写权限
sync:资料同步写入内在和硬盘
no_root_squash:nfs客户端共享目录使用者权限
重启服务:
#sudo /etc/init.d/portmap restart<---重启portmap,
#sudo /etc/init.d/nfs-kernel-rver restart<---重启nfs服务
#showmount -e<---显示共享出的目录
注:nfs是一个RPC程序,使用它前,需要映射好端口,通过portmap设定