找回密码
 注册
关于网站域名变更的通知
查看: 414|回复: 1
打印 上一主题 下一主题

linux驱动环境搭建

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2020-4-22 09:40 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
编写驱动前,理所当然的,我们应事先将环境搭建好,废话不多说,直奔主题。2 g7 [; J3 _7 o6 N

, |5 n. ~8 A) A) k5 ^* D环境的搭建:
# T2 M& t( @4 `- P
# N1 u# [$ x: V一、开发板使用TQ2440
* O; g. ^0 E9 p7 L8 D+ B! q5 i2 E, y
这个没什么好说,去购买一块开发板即可。
. g0 j" [, S  b5 h" q. a* o; [6 R/ Z$ ^( t: Z/ {( Q
二、linux的版本为linux2.6.30.4(以后再使用linux.3.4或更高)( T( X% ~* t! |. d3 }/ y0 y* R
2 [2 W* i# O" q% M, y3 Z
linux直接使用天嵌公司提供的zImage_Q43_2.6.30.4_20100531.bin
+ f7 j" V' s# K- b5 L. ~" k
2 S( R" Y: P% q2 A" {* ^- l三、搭建uboot环境参数% h7 J# ?8 \* C# c0 s3 Z9 t
  b4 o" E$ q( g; q4 q" f8 C3 b4 k
烧写uboot、linux镜像就不多说了,参考天嵌使用手册即可。这里要说一下uboot的环境参数,因为我们在开发驱动肯定要使用NFS文件系统。要想使用NFS文件系统,需要设置以下几个东西:
: l# ]% R9 t# M0 n5 `* N' I$ _; u: g
" [: Q/ Z' r8 s9 n# f6 A% o+ P8 u1.前提已经将uboot、zImage烧写到NAND FLASH7 T' i1 X4 G- X: c7 m) d
  o  k' E: P1 w
2.在NOR FLASH启动方式下(当然NOR FLASH要烧写有uboot),在uboot的菜单栏下,选择0设置uboot环境参数,具体如何设置,请看图解:0 v* x" k5 r* a; ?) Z) p

7 u- p% h& E' Z8 a9 R  h: A8 ]a.  在NOR FLASH启动方式下,在uboot的菜单栏中选择0设置uboot环境参数9 n; s  E5 X- F0 u  I) |' ~
3 z: j+ W! _0 w9 x  R0 d* N! I
- M4 y- ~1 A+ d6 J

2 [; Q  H# @6 f4 Z) c
4 X- }; ]) N4 k; N, }& l1 I: h7 V- ab.选择1,设置为NFS启动方式,具体参考如下图所示5 l4 `" T/ L8 t! z2 z! H
6 N5 l  @/ ]. ?5 b1 a  t9 V

' P$ u% l" a, F- V4 ]! ~9 D6 c1 x7 t/ i( N: L

/ ~$ G2 L  n/ v  E* s% ^- Zc.设置完成后,切忌要输入 s ,将环境参数保存到NAND FLASH中,否则功亏一篑。( d$ T) V: r# Z: z/ A

% o1 z5 p; ]* K. X
3 d) X5 O  }3 d3 v1 }4 {. ?" X9 i7 ]
- a: @5 p' L& T8 [) p1 p  G  b
d.设置完成后,回到uboot的菜单栏后,两次输入q后进入uboot命令行,查看一下uboot的启动参数6 Z& H- o3 I0 H* k! G

) c1 O* a  E/ ~, Z8 p8 }# ?( s: r 9 U0 I9 n& Q# n) [, \3 ?: I. W

4 [1 t6 b( E& d* _1 F, l. [
" g; ^* s& [- C4 s& N$ y$ `发现启动参数为:# Q& U" {* Q+ |! R& Y1 u9 o8 _
, w' U1 Z/ L+ o0 Q. g1 W7 C
bootargs: console=ttySAC0 root=/dev/nfs nfsroot=192.168.1.123:/usr/src/root_2.6.30.4 ip=192.168.1.110:192.168.1.123:192.168.1.110:255.255.255.0:SKY2440.embedsky.net:eth0ff
- t+ A6 k( z4 S7 J$ H, u2 T# \' l" ]0 ], Q/ D. R1 w
并测试开发板能够与linux服务器进行网络通信。
" A' b, `$ z3 x) v
: f, M* ]! l( O6 Q- R! c0 R0 y  k0 _+ K3 u
ping测试注意事项:! H, l' c" u" z5 u/ d( s

: T( }* H; z" i8 u  [! [, t5 t1.确保linux服务器能与windows之间互ping通
" R* N3 W/ R5 d# c) q% Q
2 K8 J$ l' \% ]( ^6 q5 z% _7 Z2.windows使用wifi无线网络时,开发板不能只用交叉网线与电脑相连接,这样开发板最终不能与linux服务器之间互ping通,必须将网线一端连至开发板,另一端连至路由器或者交换机。6 s) r7 J# l: V3 Q* j
5 U; h" s) N; U' \& n! ~

- y5 J4 |, F7 @7 _$ o' I; ]6 n: ?& UIP地址设置的注意事项:  W* ~5 h7 c2 D4 M; ]
& {: P. m1 g2 U3 U0 t" y
如发现在uboot菜单栏中设置ip地址无效,即在uboot的命令行下发现ip并没有真正得到设置,那么需要手工进行设置,如何手工进行设置?
2 m+ z3 N* x  W6 w6 O$ }( p- n
- V( F/ t2 \$ ~9 a  qEmbedSky> set ipaddr 192.168.1.110
3 W0 a8 B) |8 Y7 zEmbedSky> set serverip 192.168.1.123
0 z" F! b( b! d8 iEmbedSky> save9 Q5 h$ o1 z2 u) O5 T, @
8 L) j. L3 j" z

" l! o5 u) J- u; U四、linux服务器的环境搭建5 D! ]" H# a9 S
: R- l7 g; S- s" H& d( l
1.设置NFS文件系统共享目录
% M; E9 `  H3 Q7 Q1 u! C2 {+ B5 T4 z" ?1 d
在/etc/exports文件里添加如下内如:
* l- `3 l" W3 A$ x$ u$ o, Z; t; C3 ~3 \/ U: Q8 z; G, P$ `0 U
/usr/src/root_2.6.30.4  *(rw,sync,no_root_squash)
1 R$ R# r( |( q8 M/ Q
9 c. i  v; f, o8 w7 S8 Z$ ]2.开启NFS服务器( T1 {# w! M, z; k+ A. _; b; e
& D9 K* Q  L4 i8 t( ^: m% M5 J
/etc/init.d/nfs restart
5 }' L' ], v: V  Z9 J1 a/ y, z7 G- \" q& N" O" _/ O/ r: Z
正常的启动界面如下:
* K3 T2 ~, R9 U% c9 {" V; L) P; W( \4 D! }  B4 [

: n  B2 _. C3 c* I+ Q  M) l) `( I/ F. d2 _' v/ f0 c+ L

- a; i4 H$ G% `' Q7 n: X6 M  {五、解决error
, O  k& l3 s2 w3 i6 l6 o0 ?4 ?5 ^- c  S
6 A% a# l+ {6 e- c
BUG1:
6 d: y( L7 W" x9 j! x7 C3 j4 h. |/ S5 m/ _: v

+ z* T, g8 ]: C: Z6 @# N% i
+ r0 R: Y( }5 m0 j4 K  X$ I$ s# u) m% ~8 G. f- h7 ?
IP-Config: Complete:. H2 H3 |8 s3 _  }6 J. k! H0 y
     device=eth0, addr=192.168.1.110, mask=255.255.255.0, gw=192.168.1.110,
, z# Q7 Q* C, z" V     host=SKY2440, domain=, nis-domain=embedsky.net,* O4 Z2 }( H2 Z' `9 P; K
     bootserver=192.168.1.123, rootserver=192.168.1.123, rootpath=
/ x4 O) K% A) y! A% lLooking up port of RPC 100003/2 on 192.168.1.123; k' N  H4 A9 k2 q
4 x% k. n7 j  W# Q: m
3 m; @" y! r& Q0 Q- d
如果开发板启动卡在了如上界面所示,那么表示无法挂接NFS文件系统,可能的原因:1 Z. k. n" |  R2 i, \9 w" C" z$ @; ^
7 q7 S( E7 F5 u/ m
1.开发板的网络有问题,开发板不能与linux服务器互ping通  z. b' x1 N2 p- o6 U2 D) C

# V8 F( ^0 p" D+ G# O7 J2.linux服务器没有开启NFS服务器
5 j: Z* b+ T1 `3 H/ i8 x/ l/ m4 Y. N3 o& ]
3.NFS文件系统的共享路径有误: _0 X- ]7 C0 r: M

; \4 ~- n0 r: g/ [5 r4.防火墙没有关闭
) S$ Z- l# w# r$ _
0 g: r1 ]- }: ]2 A! w1 T! g$ Q  A
6 c" [6 \+ }3 {) C  G/ S6 rBUG2:
: l3 f& o! m: D# ?/ P! ~) r1 _0 V! F" Q3 j
能够启动文件系统,但是30s后,linux又自动重启?  c! T% `" n" f
* W, }1 T7 _& z9 h+ d* I$ P
原因(很明显是看门狗的原因):
( T) N& J1 t4 }2 |% `' K+ J2 f; Z+ Y: @' P# n
因为天嵌制作的zImage内核里, 没有进行喂狗,而使用的文件系统大部分是我自己制作的,里面并没有喂狗程序,所以我们要拷贝天嵌的EmbedSky_wdg到自制文件系统的sbin目录,并修改etc/init.d s/rcS                                    
( ~' f9 w& R" H& @
: c1 e6 d. U) u- d( g在etc/init.d s/rcS中添加一句:1 \" r* l! V1 H! F: v3 P" c2 V
' I# u: f4 o7 R$ Y8 o
EmbedSky_wdg &) o9 p! V) H" X

# v% ^2 G7 J2 T5 b% C5 O5 K3 \表示启动看门狗,自动喂狗,这样linux就不会自动重启了。1 s# `7 o$ M; u. W
4 l0 m% A" g- Q/ D; ^6 b3 j# h

  H! p$ j2 w% _. C. Q4 ]. K

该用户从未签到

2#
发表于 2020-4-22 13:27 | 只看该作者
linux驱动环境搭建
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-11-26 03:24 , Processed in 0.156250 second(s), 26 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

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