尚观6410开发板移植linux 3.6.6问题记录及经验小结

尚观6410开发板移植linux 3.6.6问题记录及经验小结

把开发板右上角的红色启动选项开关,两个都拨到下面(NAND),连接串口,已经内置了uboot 1.16。
根文件系统使用ext2的ramdisk,由于网卡无法驱动故无法使用nfs的根文件系统,网卡驱动问题待解决。

先安装ubuntu基本开发包:
    sudo apt-get install build-essential bison flex automake autoconf libncurses5-dev

配置arm-linux-gcc交叉编译环境

编译最新的linux 3.6.6内核,直接使用s3c6400_defconfig编译通过,且基本能用(dm9000网卡无法驱动)

安装uboot 的mkimage用于生成uImage及处理ramdisk:
    sudo apt-get install u-boot-tools

安装ramdisk生成工具:
    sudo apt-get install genext2fs

创建rootfs文件夹,创建最基本的根文件系统结构:
    mkdir bin sbin dev etc lib proc sys usr mnt tmp var root

编译busybox并安装到刚才创建的roofs目录下去

创建rootfs/etc/init.d/rcS文件:
    #!/bin/sh
    mdev -s
    /bin/sh
    #ifconfig eth0 192.168.1.150
    #mount -a    

rootfs生成最基本的设备文件:
    mknod -m 666 console c 5 1
    mknod -m 666 null c 1 3

加载ramdisk出现can't open /dev/tty2: No such file or directory,解决方法:
     ln -sf /dev/null /dev/tty2
     ln -sf /dev/null /dev/tty3
     ln -sf /dev/null /dev/tty4   

genext2fs用法:
    genext2fs -b [目标ramdisk文件大小,1024的整数倍] -d [rootfs所在文件夹名] [ramdisk文件名]
    -b后接的值就是生成的ramdisk的文件大小,不要设定太大,只要比rootfs所在文件夹稍大即可

用mkimage处理ramdisk示例(若不处理,则会提示bad magic number):
    mkimage -n "RAMFS" -A arm -O linux -T ramdisk -C none -a 51800000 -e 51800040 -d ramdisk ramdisk.img
    5180000是ramdisk在内存中的地址,51800040是偏移量,"ramdisk"是原ramdisk文件名,"ramdisk.img"是处理后的ramdisk文件名

加入busybox之后,制作的ramdisk无法启动,提示/linuxrc无法执行,可能的解决方法之一:
    需要把交叉编译工具链里面的库(至少要把/usr/local/arm/4.3.2/arm-none-linux-gnueabi/libc/lib下面的所有文件)
        放到rootfs/lib下面,再重新打包ramdisk
    再确保有执行权限,chmod -R a+x rootfs

ramdisk不要使用gzip压缩,无论是mkimage处理后再压缩还是压缩后再处理,都无法启动.

加载根文件系统时提示:RAMDISK: image too big!解决方法:
    不需要重新编译内核,修改uboot的bootargs,在后面加上ramdisk_size=20480,这个值不能比ramdisk的文件小
    因为3.6.6内核默认的启动选项是优先加载bootloader传入的启动参数

一个使用ramdisk的根文件系统的bootargs示例如下:
    setenv bootargs root=/dev/ram rootfstype=ext2 init=/linuxrc console=ttySAC0,115200 ramdisk_size=20480 mem=128M



下一步目标,解决dm9000网卡驱动问题,并使用NFS挂载根文件系统。









U-Boot 1.1.6 (Sep 16 2011 - 14:10:18) for SMDK6410

****************************************
**    UP-S3C6410 Nand boot v0.18      **
**    ShenZhen Uplooking Technology   **
**    Http://www.uplooking.com        **
****************************************

CPU:     S3C6410@532MHz
         Fclk = 532MHz, Hclk = 133MHz, Pclk = 66MHz, Serial = CLKUART (SYNC Mode)
Board:   SMDK6410
DRAM:    128 MB
Flash:   0 kB
NAND:    256 MB
In:      serial
Out:     serial
Err:     serial
dm9000 i/o: 0x18000300, id: 0x90000a46
MAC: 00:40:5c:26:0a:5b
operating at unknown: 15 mode
Hit any key to stop autoboot:  0
uplooking # tftp 0x50800000 zImage
dm9000 i/o: 0x18000300, id: 0x90000a46
MAC: 00:40:5c:26:0a:5b
operating at 100M full duplex mode
TFTP from server 192.168.1.103; our IP address is 192.168.1.150
Filename 'zImage'.
Load address: 0x50800000
Loading: #################################################################
         #################################################################
         #################################################################
         #################################################################
         ###############################
done
Bytes transferred = 1488096 (16b4e0 hex)
uplooking # tftp 0x51800000 ramdisk.img
dm9000 i/o: 0x18000300, id: 0x90000a46
MAC: 00:40:5c:26:0a:5b
operating at 100M full duplex mode
TFTP from server 192.168.1.103; our IP address is 192.168.1.150
Filename 'ramdisk.img'.
Load address: 0x51800000
Loading: #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
   

转载于:https://www.cnblogs.com/iwantcomputer/archive/2012/11/13/8489831.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值