尚观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