OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 4760|回复: 2

嵌入式Linux学习笔记(1)    TQ2440开发环境搭建

[复制链接]

26

主题

261

帖子

1

精华

高级会员

Rank: 4

积分
734
金钱
734
注册时间
2013-11-1
在线时间
28 小时
发表于 2014-10-31 22:56:11 | 显示全部楼层 |阅读模式
本帖最后由 zhao305149619 于 2016-5-5 18:56 编辑

说明一下:我最近一直想学ARM,但是看网上都好贵的说,最近实验室师兄去找工作所以我就用他的TQ2440板子学习了,开始用TQ2440的视频资料搭载环境,吐槽一下,TQ的板子不错,但是资料实在是太多了,根本无从下手,视频还不能快进赞评,本人开始的第一个星期实在是太痛苦了,这是我正式学习Linux的第10天,我觉的我还是学习学习驱动开发,那么我就开始了
本人使用的VM虚拟机,系统  Fedora9,参照韦东山的视频搭载的环境(视频很赞)。
硬件:TQ2440
系统:fedora9
交叉编译器:arm-linux-gcc-3.4.5-glibc-2.3.6.tar.bz2
linux内核:linux-2.6.22.6.tar.bz2
说一下本人经过将近一个星期的迷茫期现在还没有过去,别人的教程或者学习步骤是开始U-boot的编写移植,内核的定制,这些对于我这个智商来说太困难了开始,所以我给自己的安排就是开始这些全部不管只要自己的板子可以用就行了,显示学习设备号的概念和一些基本外设的驱动开发,入门之后再尝试看内核之类的东西
1,2两步安装VM和系统就省略了,说明一下,安装Fedora最好里面的软件不要遗漏的安装,因为对于新手来说接下来的学习如果由于一些组件没有安装引起的错误你会很痛苦,开始就要排除一切可能出现的错误我觉得
3.如果前期你没有使用shh或者samba,最开始就使用VM的共享最容易实现
4.安装gcc编译器
 a.从共享文件中复制到你linux系统的opt文件下(在安装系统的时候硬盘挂载的)
 b.解压 tar xjf arm-linux-gcc-3.4.5-glibc-2.3.6.tar.bz2
 c.讲编译路径加入系统的环境变量中 vi /etc/profile  中加入
if [ "$EUID" = "0" ]; then
        pathmunge /sbin
        pathmunge /usr/sbin
        pathmunge /usr/local/sbin
        pathmunge /opt/work/gcc-3.4.5-glibc-2.3.6/bin
在这个地方加入这句话  /opt/xxx/gcc-3.4.5-glibc-2.3.6/bin
d.是环境变量立即生效  service  /etc/profile  start

5.编辑U-boot,我使用的是韦东山的u-boot,你也可以直接使用TQ的u-boot
a. 解压  tar xjf u-boot-1.1.6.tar.bz2 
b. 打开  cd u-boot-1.1.6 
c. 给u-boot 打补丁 patch -p1 < ../u-boot-1.1.6_jz2440.patch

d.make 100ask24x0_config
e.编译  make  就会生成U-boot.bin文件,如果你的板子本省有u-boot就可以使用你本身的u-boot烧写,如果没有就只能通过j-link或者其他方式烧写

6. 修改编译你的内核
a. 解压   tar xjf linux-2.6.22.6.tar.bz2
b. 打开内核文件夹并打补丁(两步)  cd linux-2.6.22.6
                                                         patch -p1 < ../linux-2.6.22.6_jz2440.patch
c. 把 TQ2440源码\drivers_and_test\10th_lcd\4th\lcd.c复制到内核driver/video,并修改driver/video/Makefile
obj-$(CONFIG_FB_S3C2410) += lcd.o # s3c2410fb.o
d. 把 TQ2440源码\drivers_and_test\DM900 网卡驱动复制到内核 对应net目录,由于对应Makefile已经修改,所以不需要重新修改
e. 内核根目录的配置  cp  config_ok  .config     (记住有个点啊)

f.  make uImage  

7.烧录uboot
我使用的是TQ的DNW的USB的下载烧录

8.烧录内核
我使用的是TQ的DNW的USB的下载烧录


9.
烧录文件系统
在uboot下烧录编译得到的uImage文件
烧录根文件系统,主光盘 bin目录下的fs_qtopia.yaffs2 文件

10.接下来是调试和编写驱动需要比较方便的网络文件共享,注意是共享不是网络文件启动

   a.  首先要在PC的linux上新建一个共享文件夹 root_nfs,然后设置这个共享文件的属性
         vi /etc/exports   如果第一次打开应该是空文件夹  填写内容:/opt/work/root_nfs    *(rw,sync,no_root_nfs) 
         /opt/work/root_nfs
表示 nfs 共享目录,它可以作为开发板的根文件系统通过 nfs挂载,也可以挂载一个共享文件夹;所以路             径要修改成是你要挂载的文件夹
        解释:
/opt/work/root_nfs    *(rw,sync,no_root_nfs) 的意思

                    1.   *  表示所有的客户机都可以挂载此目录
                    2.   rw  顾名思义就是  表示挂接此目录的客户机对该目录有读写的权力
                    3.   
root_nfs  
表示允许挂接此目录的客户机享有该主机的 root 身份 
                          通过命令启动和停止 nfs 服务 
   b.  在PC上的linux输入  /etc/init.d/nfs  start  是打开linux的nfs系统服务

    c.在开发板的  CRT界面挂载你的共享目录  mount -t nfs -o nolock,vers=2  192.168.0.188(这是PC上linux的IP地址):/opt/work/root_nfs   /mnt  
    d.   cd /mnt 看看能不能打开,你可以测试在PC的共享目录下新建一个vi  a.txt  就会在板子上的/mnt中出现  ,好了你现在就可以实现linux和开发板互相传递文件了

说明:

1.在nfs挂载的过程中如果失败了,首先可能出现的问题是你的PC上的LINUx的防火墙没有关闭   在命令行  输出  /etc/init.d/iptable   stop  就可以暂时关闭防火墙了,如果想永久关闭百度命令吧,或者  输出  :setup  里面设置,我在这里就不详细说了

2.还有个比较重要的东西就是在这些成功的前提就是你的板子的IP地址必须和PC的linux的IP地址在一个网段且可以在开发板上成功ping通电脑  









正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165309
金钱
165309
注册时间
2010-12-1
在线时间
2108 小时
发表于 2014-10-31 23:46:34 | 显示全部楼层
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

26

主题

261

帖子

1

精华

高级会员

Rank: 4

积分
734
金钱
734
注册时间
2013-11-1
在线时间
28 小时
 楼主| 发表于 2014-11-1 21:55:24 | 显示全部楼层
哈哈…………
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-11-22 22:57

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表