TQ2440 linux 移植


这里使用的都是天嵌公司提供的资源来移植的。

内核编译:

首先编译系统内核,这个可以按照《linux移植之step by step》的附录5来一步步操作。当然我已经将配置好的config文件保存起来了,即/opt/EmbedSky/linux-2.6.30.4/arch/arm/configs/s3c2410_defconfig。(这里一定要注意一点,配置完内核后要保存配置信息,同时还要保存为另一个配置文件名称.config,否则系统会按默认的配置进行内核编译。),执行makemake zImage来编译内核。
编译内核时,要使用root用户,否则会出现各种莫名其妙的错误。

根文件系统编译:

接着创建根文件系统,首先创建一系列目录以及目录中相关的文件,然后使用命令mkyaffs2image命令来将整个文件夹制作成根文件系统镜像
以后,每次编译完新的程序就可以放到该文件系统目录中,然后再编译整个目录,再下载到板子中

如果每次都将根文件系统下载到flash中,不但损伤flash,同时也会浪费时间(写入flash的时间要比写入SDRAM的时间要长)。所以最好可以把文件系统直接下载到SDRAM来进行程序调试。基本上有两种方法可以提供:
  • 使用u-boot中的tftp指令来将内核或者根文件系统下载到SDRAM。
  • 使用openjtag,用软件openocd来直接将内核和文件系统下载到指定位置。
用TFTP协议来下载文件(ubuntu10.10):

1, 首先下载tftp软件包 - tftp(客户端), tftpd(服务器), xinetd(网络请求的守护进程, 当xinetd接到连接时,它能够确定连接所需的程序,启动相应的进程,并把socket交给它)。
sudo apt-get install xinetd tftpd tftp

2, 创建tftp配置文件/etc/xinetd.d/tftp
sudo vi /etc/xinetd.d/tftp
配置如下:
service tftp
{
           protocol = udp
           port = 69
           socket_type = dgram
           wait = yes
           user = nobody
           server = /usr/sbin/in.tftpd
           server_args = /tftpboot
           disable = no
}

3, 产生服务器目录/tftpboot:
sudo mkdir /tftpboot
sudo chmod -R 777 /tftpboot
sudo chown -R nobody /tftpboot

4, 重新启动xinetd服务:
sudo /etc/init.d/xinetd stop
sudo /etc/init.d/xinetd start

5, 测试tftp server是否设置好:
tftp 192.168.0.123 (服务器ip地址
tftp>  get zImage
tftp>  quit

6, 更改有线网卡的ip地址。
sudo ifconfig eth0 192.168.0.123  (这里ip地址对应于板子上uboot的设置,注意eth0一定是你连接的那个网卡)

7, 你也可以查看和设置板子上uboot的参数
printenv   (查看uboot的参数,包括serverip和ipaddr等)
setenv serverip 192.168.0.123  (更改uboot的参数,同理可以更改ipaddr等)
saveenv     (更改完参数后一定要记住保存,否则重启后参数更新)

6, 完毕,现在就可以利用网络来下载内核及文件系统
uboot>  tftp 30000000 zImage  (S3C2440的SDRAM区间从30000000开始)
uboot>  tftp 30008000 root.bin

使用tftp的注意事项:

纠结了一天,始终连接不上的原因是选错网卡了,现在的笔记本一般都既有兼有有线网卡和无线网卡,由于我们要使用有线网卡,所以一定要注意选对网卡,然后再更改ip地址

下一步要研究一下如何可以在板子上的linux系统通过网络mount主机(host)的目录,这样有助于调试的方便。



引用:



Comments

Popular posts from this blog

Basic understanding of TLS-PSK protocol

Differences between ASIC, ASSP and ASIP

Orthogonal instruction set