一、编译内核:
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 setup——》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_DriverInstaller_v110.exe目录下 安装后到设备管理器中查看是否安装成功。
2、安装tftpd32软件〃在百度上面随便搜索一个下载〃安装后〃打开tftpd32软件。
其中当前目录指的是安装tftpd32的安装目录〃点击显示目录可以看到该目录下的内容。后面要烧录的镜像文件都是放在这个目录下的〃在u-boot控制命令台加载镜像文件的时候〃自动从该目录下搜索指定的镜像文件。
服务器IP地址指的是当前PC机的IP地址〃当打开tftpd32软件的时候〃会自动把你当前PC上的IP地址加载到此处。如果你想修改服务器的IP地址〃直接把你的PC的IP地址修改后〃打开tftpd32软件〃会自动加载的。 3、安装SecureCTR软件〃具体步骤请百度。
首先打开SecureCTR软件〃选择快速链接〃会弹出一个选项框。 在Protocla 下拉菜单中选择 serial ; 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并且按如下所示配置
service tftp {
protocol = udp port = 69 socket_type = dgram
wait = yes user = nobody
server = /usr/sbin/in.tftpd server_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, use the service(8) utility, e.g. service xinetd stop
Since the script you are attempting to invoke has been converted to an Upstart job, you may also use the stop(8) utility, e.g. stop xinetd xinetd stop/waiting
原来新版本下不能用此方式启动 tftp server了〃要用 service /etc/init.d/xinetd(服务名)start(stop/restart) 5、检查tftp是否已经启动成功 $ sudo netstat -lnput
红色代表服务已启
动。 6、测试:传输一个文件
也可以将localhost改为127.0.0.1
如果出现错误〃可能是hello.txt的权限不够。 用ls -l 文件查看改文件的权限。
相关推荐: