好贷网好贷款

linux常见问题之系统移植的概念区分

发布时间:2016-12-5 10:30:00 编辑:www.fx114.net 分享查询网我要评论
本篇文章主要介绍了"linux常见问题之系统移植的概念区分",主要涉及到linux常见问题之系统移植的概念区分方面的内容,对于linux常见问题之系统移植的概念区分感兴趣的同学可以参考一下。

1. 首先要清楚要让板子跑起来必须有三个文件:         <1> u-boot ,系统引导,没有它系统起不来         <2> kernel  , 内核         <3> rootfs  ,根文件系统     所谓移植就是把这三部分根据实际需求移植到板子上,让板子跑起来 2. 要明白并不是每次把u-boot 和kernel 等修改编译完了都要写到nandflash里面,完全可以现在内存里跑一下,在最后没问题的时候写到nan  dflash里,就是平时说   的产品定型了写到板子上,直接在板子上启动(突然想起去年的时候问我的同学怎么把程序写到板子里去,当时他还搞的很神秘,知道毕业都没告诉我,呵呵,其实就是写到nandflash里啦). 3. 先说在内存跑的:    a. 烧写u-boot,先让引导系统跑起来     运行串口通信程序(putty)   Session ->Serial(选择usb通信)->Flow control->None   关闭开发板电源,将拨码开关SW1调至0001(usb启动模式)后打开电源     (因为此刻板子里没系统引导程序u-boot ,所以要选择usb启动)       启动dnw程序    Configuration  -> Options -> Download Address(0x2ff80000);并设置串口与波特率     加载运行USB Installer_DDR2.bin    USBPort à Transmit à Transmit,选中image目录下的USB Installer_DDR2.bin     加载运行u-boot.bin        USBPort àTransmit àTransmit,选中image目录下的u-boot.bin        设置并保存环境变量 # printenv    // 查看环境变量的值并按如下设置 # setenv  baudrate 115200 # setenv  ethaddr  11:22:33:44:55:66 # setenv  gatewayip  192.168.1.1 # setenv  serverip  192.168.1.100       //  serverip要和虚拟机的ip相同 # setenv  ipaddr  192.168.1.200       // ipaddr也可以是192.168.1.x其他值 # setenv  netmask  255.255.255.0       保存环境变量    # saveenv       拷贝image/u-boot.bin到虚拟机/tftpboot目录下     测试网络是否连通  //  只能通过u-boot去ping虚拟机    #ping <serverip>      之后通过网络从服务器下载u-boot.bin到内存:       #tftp  20008000  u-boot.bin     # nand  erase  0 40000 # nand  write  20008000 0  40000 关闭开发板电源,将拨码开关SW1调至0000(nand启动模式)后打开电源 b. 通过网络加载内核和文件系统  # setenv  bootcmd tftp 20008000  zImage\; go  20008000 # setenv  bootargs root=nfs nfsroot=192.168.1.33:/source/rootfs  console=ttySAC0,115200init=/linuxrc  ip=192.168.1.200 # saveenv  设置虚拟机 拷贝/image/zImage到虚拟机/tftpboot目录下 解压rootfs.tgz到虚拟机/source目录下 修改虚拟机nfs配置文件/etc/exports,添加如下内容并重启nfs服务 /source/rootfs *(rw,sync,no_subtree_check,no_root_squash) $sudo /etc/init.d/nfs-kernel-server restart (注意 # setenv  bootcmd tftp 20008000  zImage\; go  20008000  就是这句决定了内核在内存里跑的而不用写到nand里面 )  c. 重新启动开发板,u-boot自动加载、执行内核 4. 再说说 从nand flash加载内核和文件系统(也就是被我同学搞得很神秘的那部分了,呵呵)     拷贝rootfs.cramfs到虚拟机/tftpboot目录下    烧写内核镜像到nand flash    # tftp  20008000 zImage    # nand  erase  100000  300000   # nand  write  20008000  100000  300000               烧写文件系统镜像到nand  flash   # tftp  20008000  rootfs.cramfs   # nand  erase  400000  400000   # nand  write  20008000  400000  400000  设置启动参数  # setenv  bootdelay 3  #setenv  bootcmd  nand read  20008000 100000  300000\;go 20008000  #setenv  bootargs  root=/dev/mtdblock2  init=/linuxrc  console=ttySAC0,115200  # saveenv  重新启动开发板,u-boot自动加载、执行内核 (其实前面的都是先从服务器下载,再擦写nand的一段地址再写入到nand中,关键是  #setenv  bootcmd  nand read  20008000 100000  300000\;go 20008000  这句决定了启动方式是从nand开始的 )

上一篇:【0-1背包和背包问题——贪心算法应用(3)】
下一篇:网页设计与网站建设(CS3中文版)从新手到高手

相关文章

相关评论