首先,配置串口,在虚拟机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烧写
jflash是Linux下通过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 /t= /d=
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 Program1:K9S1208 Pr BlkPage2: 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 Program1:K9S1208 Pr BlkPage2: 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
这中间又出了问题
1:Failure 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:hexinteger
-------------------------------------------------------------
mach_type:000000c1193
media_type:000000033
boot_mem_base:30000000805306368
baudrate:0001c200115200
xmodem_one_nak:000000000
xmodem_initial_timeout :01312d0020000000
xmodem_timeout:01c9c38030000000
ymodem_initial_timeout :0016e3601500000
boot_delay:0100000016777216
disp_device:000000000
disp_mode:000000011
Linux command line: noinitrd root=/dev/bon/2 init=/linuxrc console=ttyS0
重新来一次>load flash kernel x
..............................................................................................................................
显示:Transfer complete!
至此,内核已经下载好了