• «
  • 1
  • 2
  • »
  • Pages: 1/2     Go
主题 : Barebox for tiny 210 - step 6 启动内核 复制链接 | 浏览器收藏 | 打印
级别: 侠客
UID: 54261
精华: 9
发帖: 43
金钱: 665 两
威望: 133 点
贡献值: 9 点
综合积分: 266 分
注册时间: 2011-08-27
最后登录: 2014-08-08
楼主  发表于: 2013-04-11 01:03

 Barebox for tiny 210 - step 6 启动内核

管理提醒: 本帖被 xoom 执行加亮操作(2013-04-11)
返回学习汇总贴
规避内核BUG,从tftp或nand加载内核,挂载nfsroot

0.开始之前:
    (1) 了解uImage格式及引导过程
    (2) 分析bootm相关代码(image.h boot.h image.c uimage.c commands/bootm.c arch/arm/lib/bootm.c )
    (3) 分析env相关代码,了解环境变量传递过程(env.c parameter.c globalvar.c bootargs.c armlinux.c env/bin/init env/bin/boot env/init/net )

    (4)掌握 Barebox for tiny 210 - step 5
1.编译Barebox
    (1) 更新源码到对应版本
        cd ~/s5pv210/github/loader/barebox && git checkout 812926e11b37deba3b1ee2a4f246b393df741901
    (2) 配置编译
        cp arch/arm/configs/friendlyarm_tiny210_defconfig .config
        make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi- menuconfig
                禁用General Settings -> [ ]run machine low-level init
        make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi- && sudo cp barebox.bin /srv/tftp/
        编译生成的barebox.bin放到tftp根目录下
2.编译内核
    (1) 解压友善内核
    (2) 修改内核,解决UART FIFO状态查询代码存在的BUG
        --- arch/arm/mach-s5pv210/include/mach/uncompress.h.old  2013-04-10 21:59:24.065238578 +0800
        +++ arch/arm/mach-s5pv210/include/mach/uncompress.h  2013-04-10 18:07:08.395060709 +0800
        @@ -18,7 +18,12 @@
         static void arch_detect_cpu(void)
         {
        -  /* we do not need to do any cpu detection here at the moment. */
        +  /*
        +   * For preventing FIFO overrun or infinite loop of UART console,
        +   * fifo_max should be the minimum fifo size of all of the UART channels
        +   */
        +  fifo_mask = S5PV210_UFSTAT_TXMASK;
        +  fifo_max = 15 << S5PV210_UFSTAT_TXSHIFT;
         }
    (3) 配置编译
        cp mini210_linux_defconfig .config
        make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi- menuconfig
                禁用System Type ---> [ ]Force UART FIFO on during boot process  暂时规避开启UART FIFO时程序挂死的问题
        make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi- uImage && cp arch/arm/boot/uImage /srv/tftp/
        编译生成的uImage放到tftp根目录下
3.安装配置NFS服务
    (1) 解压友善根文件系统到NFS目录(/home/doudou/nfsroot/tiny210)
    (2) 安装
        sudo apt-get install nfs-kernel-server
    (3) 配置
        sudo vi /etc/exports (添加一行)
                /home/doudou/nfsroot/tiny210 192.168.0.*(rw,sync,no_root_squash)
        sudo /etc/init.d/portmap restart && sudo /etc/init.d/nfs-kernel-server restart
    (4) 测试
        sudo mount -t nfs 192.168.0.10:/home/doudou/nfsroot/tiny210 /mnt/nfs/ && sudo umount /mnt/nfs
4.网络启动    
        通过串口终端执行update命令,单板从TFTP下载barebox.bin到RAM并运行,倒数三秒后自动从服务器加载内核和根文件系统 ,成功进入图形界面            
5.NAND启动
        通过串口终端执行update命令,单板从TFTP下载barebox.bin到RAM并运行,三秒内按任意键中断autoboot,然后执行下述命令拷贝内核到NAND中
                erase /dev/nand0.kernel && cp /mnt/tftp/uImage /dev/nand0.kernel
         执行下述命令设置命令行参数
                global linux.bootargs.dyn.root="root=/dev/nfs nfsroot=192.168.0.10:/home/doudou/nfsroot/tiny210 ip=192.168.0.100:192.168.0.10:192.168.1.1:255.255.255.0::eth0"
         执行bootm /dev/nand0.kernel 命令从NAND启动内核,内核从服务器加载根文件系统,成功进入图形界面
6.继续之前
         分析/dev/nand0.kernel 分区的地址和大小
         将rootfs烧写到NAND FLASH中
         分析BOOTZ、BOOTU机制
         分析修改的内核代码
                
[ 此帖被mei5150在2013-04-13 20:45重新编辑 ]
级别: 侠客
UID: 54261
精华: 9
发帖: 43
金钱: 665 两
威望: 133 点
贡献值: 9 点
综合积分: 266 分
注册时间: 2011-08-27
最后登录: 2014-08-08
1楼  发表于: 2013-04-11 01:29
写到大半夜,自己先顶了...
级别: 风云使者
UID: 36096
精华: 3
发帖: 2536
金钱: 14075 两
威望: 2815 点
贡献值: 3 点
综合积分: 5132 分
注册时间: 2011-01-11
最后登录: 2015-11-15
2楼  发表于: 2013-04-25 21:11
路过看看了
极度缺钱,求捐赠……支付宝兼邮箱:huming2207@qq.com
级别: 风云使者
UID: 43453
精华: 0
发帖: 2712
金钱: 84640 两
威望: 16928 点
贡献值: 0 点
综合积分: 5424 分
注册时间: 2011-04-17
最后登录: 2017-09-24
3楼  发表于: 2017-07-06 22:33
任何业绩的质变都来自于量变的积累。躁大
还是市郊好
级别: 风云使者
UID: 9845
精华: 0
发帖: 2737
金钱: 85200 两
威望: 17040 点
贡献值: 0 点
综合积分: 5474 分
注册时间: 2009-10-15
最后登录: 2018-07-15
4楼  发表于: 2017-07-07 03:08
让我们将事前的忧虑,换为事前的思考和计划吧!肯源
级别: 禁止发言
UID: 133549
精华: 0
发帖: 2701
金钱: 13505 两
威望: 2701 点
贡献值: 0 点
综合积分: 5402 分
注册时间: 2017-07-06
最后登录: 2017-07-08
5楼  发表于: 2017-07-07 05:54
用户被禁言,该主题自动屏蔽!
级别: 风云使者
UID: 133552
精华: 0
发帖: 2682
金钱: 13410 两
威望: 2682 点
贡献值: 0 点
综合积分: 5364 分
注册时间: 2017-07-06
最后登录: 2017-07-11
6楼  发表于: 2017-07-07 12:47
每一发奋努力的背后,必有加倍的赏赐。汪室
级别: 禁止发言
UID: 133549
精华: 0
发帖: 2701
金钱: 13505 两
威望: 2701 点
贡献值: 0 点
综合积分: 5402 分
注册时间: 2017-07-06
最后登录: 2017-07-08
7楼  发表于: 2017-07-07 15:59
用户被禁言,该主题自动屏蔽!
级别: 风云使者
UID: 39598
精华: 0
发帖: 2713
金钱: 84685 两
威望: 16937 点
贡献值: 0 点
综合积分: 5426 分
注册时间: 2011-03-10
最后登录: 2017-07-08
8楼  发表于: 2017-07-07 20:40
越办越好~~~~~~~~~`
级别: 风云使者
UID: 43453
精华: 0
发帖: 2712
金钱: 84640 两
威望: 16928 点
贡献值: 0 点
综合积分: 5424 分
注册时间: 2011-04-17
最后登录: 2017-09-24
9楼  发表于: 2017-07-07 21:32
真可爱
  • «
  • 1
  • 2
  • »
  • Pages: 1/2     Go