linux内核移植,最小根文件系统制作

本文档详细介绍了如何在FriendlyARM Tin210开发板上移植Linux内核2.6.38.5,包括解压内核源码、配置内核选项、添加yaffs2支持、修改内核Makefile、配置NFS和DM9000网卡驱动,并解决了启动过程中可能出现的问题。同时,文章还提到了根文件系统的制作,包括Busybox的配置和移植。
摘要由CSDN通过智能技术生成

开发板为 FriendlyARM Tin210

linux 内核使用 linux-2.6.38.5
路径 ~/kernel/linux-2.6.38.5

先解压 linux-2.6.38.5.tar.bz2
cd ~/kernel
tar xvf  linux-2.6.38.5.tar.bz2

获取最新yaffs源码
mkdir ~/yaffs
cd ~/yaffs
git clone git://www.aleph1.co.uk/yaffs2

给内核打补丁
cd yaffs2
./patch-ker.sh c m ~/kernel/linux-2.6.38.5

会有提示
Updating ~/kernel/linux-2.6.38.5/fs/Kconfig
Updating ~/kernel/linux-2.6.38.5/fs/Makefile

修改 内核Makefile 为 arm 编译链
(编译时必需确定是arm交叉编译链,否则make menuconfig会是错误的配置)
cd ~/kernel/linux-2.6.38.5
vim Makefile
修改
ARCH            ?= $(SUBARCH)
CROSS_COMPILE   ?= $(CONFIG_CROSS_COMPILE:"%"=%)
为(根据个人情况而定)
ARCH            ?= arm
CROSS_COMPILE   ?= arm-none-linux-gnueabi-

配置内核选项
cp arch/arm/configs/s5pv210_defconfig .config
make menuconfig

然后到
File systems  --->
  Miscellaneous filesystems  --->
看是否有  yaffs2 file system support (NEW) 选项,如果没有,需要先配置好 MTD_BLOCK,如下:
进入menuconfig首页
Device Drivers  --->
  用空格将    Memory Technology Device (MTD) support  ---> 状态变为<*>
  进入选项    Memory Technology Device (MTD) support   --->
  将      Caching block device access to MTD devices 状态变为<*>
  如果 没有看到     Caching block device access to MTD devices ,先保存现在的配置,退出,重新make menuconfig进入

选中选项 <*> Caching block device access to MTD devices 后,
在 File systems  --->
  Miscellaneous filesystems  --->
会出现 yaffs2 file system support (NEW) 选项,将其状态变为<*>

修改debug输出串口号,和开发板不一致的话,启动内核会在打印完Starting kernel...之后就没有任何输出了

修改位置1
Boot options  --->
如果使用了启动参数,将
root=/dev/ram0 rw ramdisk=8192 initrd=0x20800000,8M console=ttySAC1,115200 init=/linuxrc
中 ttySACX 改为 自己对应的串口号 如 ttySAC0

修改位置2
System Type  --->
修改 S3C UART to use for low-level messages  的值为 (0)

修改位置3
Kernel hacking  --->
修改 S3C UART to use for low-level debug 的值为 (0)

保存配置,
make uImage

 

错误现象:
dm9000 dm9000: read wrong id 0x2b2a2928
dm9000 dm9000: wrong id: 0x2b2a2928
dm9000 dm9000: not found (-19).

TCP cubic registered
NET: Registered protocol family 17
Registering the dns_resolver key type
VFP support v0.3: implementor 41 architecture 3 part 30 variant c rev 2
VFS: Unable to mount root fs via NFS, trying floppy.
VFS: Cannot open root device "nfs" or unknown-block(2,0)
Please append a correct "root=" boot option; here are the available partitions:
Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(2,0)


配置内核支持NFS + DM9000 ,部分引用网络文章:

(1) 配置网络支持
[*] Networking support  --->
    Networking options  --->
        <*> Packet socket
        <*> Unix domain sockets
        [*] TCP/IP networking
        [*]   IP: multicasting
        [*]   IP: kernel level autoconfiguration
        [*]     IP: DHCP support
        [*]     IP: BOOTP support
        [*]     IP: RARP support
        [*]   IP: multicast routing
        
(2) 配置网卡设备支持
Device Drivers  --->
    [*] Network device support  --->
        [*]   Ethernet driver support  --->
            <*>   DM9000 support

(3) 配置网络文件系统支持
File systems  --->
    [*] Network File Systems  ---&

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值