移植uClinux2.4到IX425DP

移植uClinux2.4到IX425DP

 早年写的笔记,压箱底了,翻出来晒晒

目录

移植uClinux2.4到IXP425DP.1

实验环境...1

配置,编译,安装相关文件...1

1. 解压snapgear-3.5.0.tar.gz.2

2. 安装arm-linux-tools-20051123.2

3. 准备snapgear补丁文件...3

4. 安装patchsnapgear4

5. 集成IXP驱动...4

6. 配置内核...4

7. 编译内核...8

7. 启动IXP网卡...9

可能遇到的问题...9

1. Uudecode错误...9

2. 交叉编译器版本不对...9

3. Error initialising queue manager9

4. flone错误...10

 

 

实验环境

 

IXP425DP(P720板) 266Mhz 64M ram16M flash

u  Vmware6.5,  2CPU.

u  FC4: kernel 2.6.11-1.1369_FC4smp(FC6也行),安装在虚拟机上

u  arm-linux-tools-20051123.tar.gz:gcc 3.4.4编译器

u  snapgear-3.5.0.tar.gz:  snapgear发布的uClinux包

u  snapgear-modules-20071004.sh: snapgear发布的uClinux包

u  BSD_ixp400AccessLibrary-2_4.zip: IXP网卡驱动

u  IPL_ixp400NpeLibrary-2_4.zip: IXP网卡驱动补丁

u  files in /home/linuxuser/snapgear

 

配置,编译,安装相关文件

 

1. 解压snapgear-3.5.0.tar.gz

解压snapgear-3.5.0.tar.gz到/home/linuxuser/snapgear。解压完后目录应该像这样

2. 安装arm-linux-tools-20051123

       解压arm-linux-tools-20051123得到usr文件夹,在本次实验里,将其复制到/home/linuxuser, 最后文件夹应该如下:

 

 

3. 准备snapgear补丁文件

先安装sharutils-4.2.1-27.i386.rpm,安装成功后在/home/linuxuser/ixp425下执行

       #chmod+x snapgear-modules-20071004.sh

#./snapgear-modules-20071004.sh

 

会弹出画面,按空格到最后有一个选择

……

NCLUDING WITHOUT LIMITATION ANY VALID LICENSETO THE SOFTWARE FROM INTEL).

 

Accept (yes/no):

 

当然是输入yes,回车。

执行完会得到如下信息,说明得到了8个新文件:

x - extractingREADME (text)

x - extractingsnapgear-20071004.patch (binary)

x - extractingmodules-csr1.4-20071004.patch (binary)

x - extractingmodules-csr1.4-with-crypto-dsr-20071004.patch (binary)

x - extractingmodules-csr2.1-20071004.patch (binary)

x - extractingmodules-csr2.1-with-crypto-20071004.patch (binary)

x - extractingmodules-csr2.4-20071004.patch (binary)

x - extractingmodules-csr2.4-with-crypto-20071004.patch (binary)

 

4. 安装patch snapgear

复制刚刚生成的snapgear-20071004.patch文件到/home/linuxuser/snapgear执行如下操作

# cd/home/linuxuser/snapgear

# patch -p1 <snapgear-20071004.patch

会有如下信息打印

patching filelinux-2.4.x/arch/arm/mach-ixp425/ixp425-pci.c

patching filelinux-2.4.x/net/core/dev.c

patching filelinux-2.4.x/net/core/Makefile

……

 

5. 集成IXP驱动

       切换到/home/linuxuser/snapgear文件夹,执行如下命令

#mkdir -p modules/ixp425/ixp400-2.4

 

将BSD_ixp400AccessLibrary-2_4.zip,IPL_ixp400NpeLibrary-2_4.zip 和modules-csr2.4-20071004.patch复制到/home/linuxuser/snapgear/modules/ixp425/ixp400-2.4,执行如下命令:

#cd /home/linuxuser/snapgear/modules/ixp425/ixp400-2.4

#unzip BSD_ixp400AccessLibrary-2_4.zip

#unzip IPL_ixp400NpeLibrary-2_4.zip

#patch -p1 < modules-csr2.4-20071004.patch

modules-csr补丁有很多个版本,但是从BSD_ixp400AccessLibrary-2_4IPL_ixp400NpeLibrary-2_4上可以看出,驱动的版本是2.4,并且是没有with-crypto,所以决定使用modules-csr2.4-20071004.patch进行打补丁

 

 

6. 配置内核

#cd /home/linuxuser/snapgear/

#export PATH=$PATH:/home/linuxuser/usr/local/bin

#make menuconfig

 

1.选中intel/ix425DP

2. 选中linux-2.4.x / uClibc /Customize Kernel Settings (NEW) /  Customize Module Settings (NEW)

 

选中之后exit,会出现一个命令行选择

Intel IXP400Access Library (CONFIG_IXP400_LIB) [M/n/y/?]

  Intel Access Library version (1.4, 2.1, 2.4)[2.4] (NEW)

Names networkinterfaces as eth, not ixp (CONFIG_IXP425_IXP_AS_ETH) [Y/n/?]

    Use NAPI (CONFIG_IXP400_NAPI) [N/y/?] (NEW)

都直接回车就行了,然后会弹出另外一个窗口,选择general setup

出现generalsetup窗口如下:

选中Forcedefault kernel command string,并且选中并修改Default kernel command string。

将原来的

console=ttyS0,115200root=/dev/ram0 initrd=0x00800000,8Mmem=64M@0x00000000

改为

console=ttyS1,115200root=/dev/ram0 initrd=0x00800000,8Mmem=64M@0x00000000

需要注意的一点是,系统会自动加上console,所以要避免出现consoleconsole的字样。

 

选好以后,进入Main Menu->Networking options选中QoS and/or fairqueueing

QoS and/or fair queueing菜单中, 选择[ ] QoS and/or fair queueing后,会出现很多选项,选择其中的一种queue,比如RED queue。

 

所有的选好之后保存退出。之后会出现一个新的菜单

选择XSCALE/IXP400 Modules --->取消[ ]    Names network interfaces as eth, not ixp

选完以后,保存退出。

7. 编译内核

执行如下命令

#make dep

#make

 

编译完成之后会在/home/linuxuser/snapgear/images下形成ramdisk和zImage,使用tftp将这个文件load到IX425DP上,

load -r -v -b0x00800000 ramdisk.gz

load -r -v -b0x01600000 zImage

exec

成功运行就可以运行看到如下画面

 

RAMDISK:Compressed image found at block 0

Freeing initrdmemory: 8192K

VFS: Mountedroot (ext2 filesystem).

Freeing initmemory: 228K

Welcome to

 

    S N A P G E A R  L I N U X

 

For furtherinformation check:

http://www.snapgear.org/

 

8. 启动IXP网卡

在IX425DP的串口终端上执行以下命令

#insmod ixp400

#modprobe ixp400

#cat/etc/IxNpeMicrocode.dat > /dev/ixNpe

#modprobeixp400_eth

#ifconfig ixp0up

#ifconfig ixp0 10.0.0.203

#ping 10.0.0.101

 

 

其中10.0.0.203是设定的IXP的IP地址,10.0.0.101是局域网内另外一台机器,可以从此判断网卡的连通情况

 

可能遇到的问题

1. Uudecode错误

如果host没有安装sharutils-4.2.1-27.i386.rpm,在执行snapgear-modules-20071004.sh时候就会提示如下错误

x - created lock directory `_sh20011'.

x - extracting README (text)

x - extracting snapgear-20071004.patch(binary)

./snapgear-modules-20071004.sh: line 318:uudecode: command not found

 

2. 交叉编译器版本不对

编译2.4 kernel uClinux需要使用arm-linux-tools-20051123.tar.gz。

如果使用arm-linux-tools-20070808.tar.gz,会出现“mapcs-32”  “–malignment-traps”错误,这在第一章里面提到过。

 

3. Error initialising queue manager

如果在makemenuconfig->network options 没有选中一种queue,会出现如下错误

 

# insmod ixp400_eth.o

Using ixp400_eth.o

ixp400_eth: Initializing IXP400 NPEEthernet driver software v. 1.7SG

ixp400_eth: CPU clock speed (approx) = 262MHz

ixQMgrInit: IxQMgr already initialised

ixp400_eth: Error initialising queuemanager!

insmod: init_module: ixp400_eth: Operationnot permitted

 

4. fclone错误

       如果在XSCALE/IXP400Modules  ---> 选中了Intel IXP400 Ethernetdevice Driver Fast skb recycling support编译的时候就会出现和fclone相关的错误

你可能感兴趣的:(移植uClinux2.4到IX425DP)