首先,配置 串口,在虚拟机ubuntu下做的,结果配置完了不能用,看了看原来当初虚拟机中没有添加串口硬件,只好关了虚拟机,重新添加。

 

minicom –s

 

按下”A”键设置”Serial Device”,然后在PC 上输入串行端口号(若使

COM1,刚写入 /dev/ttyS0,如果使用COM2,刚写入 /dev/ttyS1)

   按下E 键,设置波特率/奇偶位/位数,设置结构为115200

   按下F 键,将”HardWare Flow Control 设置为NO

   ENTER 退出设置

   选择Save setup as df1,并回车保存设置

   验证串口

   ok,通过

 

然后是交叉环境,在/usr/local/ 下建一个arm 目录,并把文件放入这个目录底下,然后

 

   cd /usr/local/arm

   tar xjvf corss-2.95.3.tar.bz2

 

然后修改路径,一般是修改profile

 

ubuntu中我是调用/etc/bash.bashrc来修改当前用户shell 启动参数的

 

   /etc/bash.bashrc后加上

 

   if [ -d /usr/local/arm ] ; then

 

   PATH=/usr/local/arm/2.95.3/bin:"${PATH}"

 

     fi

 

     完了之后,却不能用 arm-linux-gcc ,我su 用户名 了一下,可能要重新载入用户,使设置的环境变量生效, 这下可以了。

 

    编译vivi

 

   tar xvzf vivi.tar.gz

 

   cd vivi

 

   make menuconfig

 

选中Load an Alternate Configurateion File,载入默认配置文件,最后退出。

 

make 编译。

 

在这中间,运行make menuconfig会提示ncurses找不到,menuconfig 中的界面需要用到ncurses库。

 

   sudo apt-get install ncurses-dev

 

make 编译时,我还碰到了一个小问题,我在当前用户下直接make ,提示我某几项操作没有权限,我加了sudo 后,arm-linux-gcc 找不到了,解决办法是 sudo su 后直接make 就可以了。

 

编译成功后,将会在vivi 下产生一个名为vivi 的二进制文件

 

vivi 烧写

 

jflashLinux 下通过JTAG 接口烧写BIOS Nand Flash 的工具。

#cd /usr/local/ARM/Jflash

我的这个目录下包含了Jflash 的源代码,你可以运行“make clean”删除已经编译好的的程

序,运行“make”重新编译。

执行以下命令可以查看Jflash 的使用方法:

#./Jflash --help

       得到以下信息:

liliming@Liliming:/usr/local/arm/JFlash$ ./Jflash --help

 

+------------------------------------+

|     SEC JTAG FLASH(SJF) v 0.11     +

|     modified by MIZI 2002.7.13     +

+------------------------------------+

Usage: SJF <filename> /t=<flash_type> /d=<delay>

Flash Type List

1:SMDK2410:K9S3208 4MB

2:SMDK2410:K9S6408 8MB

3:SMDK2410:K9S2808 16MB

4:SMDK2410:K9S5608 32MB

5:SMDK2410:K9S1208 64MB

6:SMDK2410:AM29LV800BB

liliming@Liliming:/usr/local/arm/JFlash$

 

可见,对应不同类型的Flash Jflash 程序使用不同的选项参数,我使用的是64M

Nand Flash,因此使用“/t=5

 

cd /usr/local/arm/real2410/

./Jflash vivi /t=5

 

在界面中依次执行,最后按2退出。

如下所示:

liliming@Liliming:/usr/local/arm/JFlash$ sudo ./Jflash vivi /t=5

 

+------------------------------------+

|     SEC JTAG FLASH(SJF) v 0.11     +

|     modified by MIZI 2002.7.13     +

+------------------------------------+

> flashType=5

> S3C2410X(ID=0x0032409d) is detected.

> K9S1208 is detected. ID=0xec76

 

K9S1208 NAND Flash JTAG Programmer Ver 0.0

0:K9S1208 Program      1:K9S1208 Pr BlkPage   2: Exit

 

Select the function to test :0

 

[SMC(K9S1208) NAND Flash Writing Program]

 

Source size: 0x10fa3

 

Available target block number: 0~4095

Input target block number:0

target start block number     =0

target size        (0x4000*n) =0x14000

STATUS:Epppppppppppppppppppppppppppppppp

Epppppppppppppppppppppppppppppppp

Epppppppppppppppppppppppppppppppp

Epppppppppppppppppppppppppppppppp

Epppppppppppppppppppppppppppppppp

 

K9S1208 NAND Flash JTAG Programmer Ver 0.0

0:K9S1208 Program      1:K9S1208 Pr BlkPage   2: Exit

 

Select the function to test :2

liliming@Liliming:/usr/local/arm/JFlash$

 

现在到编译内核了,

 

tar xvzf kernel_wx.tar.gz

这样,在real2410 上产生一个kernel 目录,这就是linux 源码包了~

进入kernel目录下,

make menuconfig

这时如果在普通用户下,又出现前面的问题,需要 sudo su

 

选中Load an Alernate Configuration File 点击空格键进入

输入Real2410_cfg,点击OK

然后esc

再配置 Console drivers->

选择显示屏类型

然后esc 再配置 Character devices-> 选择触摸屏

都完了esc后保存推出,成功信息如下:

root@Liliming:/usr/local/arm/kernel# make menuconfig

rm -f include/asm-arm/arch include/asm-arm/proc

(cd include/asm-arm; ln -sf arch-s3c2410 arch; ln -sf proc-armv proc)

rm -f include/asm

( cd include ; ln -sf asm-arm asm)

make -C scripts/lxdialog all

make[1]: Entering directory `/usr/local/arm/kernel/scripts/lxdialog'

make[1]: Leaving directory `/usr/local/arm/kernel/scripts/lxdialog'

/bin/sh scripts/Menuconfig arch/arm/config.in

Using defaults found in .config

Preparing scripts: functions, parsing.........................................................................done.

 

Saving your kernel configuration...

 

*** End of Linux kernel configuration.

*** Check the top-level Makefile for additional configuration.

*** Next, you may run 'make bzImage', 'make bzdisk', or 'make install'.

 

root@Liliming:/usr/local/arm/kernel#

这时配置工作完成,接下来需要对内核进行

 

make clean (确保所有有关文件都处于最新版本状态)

make dep (确保关键文件在正确的位置) 这步仅在第一次编译时需要,以后就不需要了,为的是在编译时知道文件之间的依赖关系。在进行了多次编译后,make会根据这个依赖关系确定哪些 文件需要重新编译,哪些可以跳过。

make zImage(编译压缩形式的内核)

 

这时,又不行了,上网查了一下~

 

在需要内核支持较多的外设和功能时,内核可能变得很大,此时可以编译大内核:

 

make bzImage(现在的内核一般都超过1MB,所以应该使用该命令)

   minicom

复位开发板,按 Space 键进入 vivi 界面

vivi 命令行中输入

   load flash kernel

然后按下 Ctrl A 键(同时按住一会儿),松开按S 键,这时

弹出对话框,选择 xmodem

选择 zImag 件,我的路径为

/usr/local/arm/real2410/kernel/arm/arch/boot/zImage

这中间 又出了 问题

 

1Failure executing protocol, press any key to continue

造成问题原因:烧写是采用xmodem协议,因为默认的ubuntu 是没有装多少软件的,一般情况下都要自己装,所以即使我们装了minicom但是可能没有装相应的协议,所以我们还要安装 lrzsz这个软件包

解决办法:sudo apt-get install lrzsz

2:Transfer incomplete

造成原因:xmodem 参数设置不合理。

            vivi的命令模式下面更改参数设置:

            vivi>param set xmodem_initial_timeout 20000000

            vivi>param set xmodem_timeout 30000000

            vivi>param save

如果该了这个设置还不行可以相应把上面两个值改大点

下面是我的vivi 参数设置

vivi> param show                                                                      

Number of parameters: 11                                                               

name                    :          hex             integer                            

-------------------------------------------------------------                         

mach_type               :       000000c1                  193                         

media_type              :       00000003                    3                         

boot_mem_base           :       30000000            805306368                         

baudrate                :       0001c200               115200                         

xmodem_one_nak          :       00000000                    0                         

xmodem_initial_timeout :       01312d00             20000000                         

xmodem_timeout          :       01c9c380             30000000                         

ymodem_initial_timeout :       0016e360              1500000                         

boot_delay              :       01000000             16777216                         

disp_device             :       00000000                    0                         

disp_mode               :       00000001                    1                         

Linux command line: noinitrd root=/dev/bon/2 init=/linuxrc console=ttyS0

            

重新来一次>load flash kernel x

..............................................................................................................................

显示:                            Transfer complete!

至此 ,内核已经下载好了

 

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐