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

TQ2440之初级制作内核

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
* x# P" u% F7 G+ |! H- ]9 P. L4 p
1、首先拷贝TQ提供的已经移植好的内核到/usr/src/目录下。6 N; m0 U9 l5 v; v

* a+ @# _8 u. h. T9 rcp  /mnt/hgfs/share/linux-2.6.30.4_20100531.tar.bz2  /usr/src/
, B* H" T  @  H. S& @
1 n  w4 [7 G' i' @+ a1 T$ S6 e) w
/ s/ k3 h2 l8 `7 V! n  K, w- L1 F' ]4 X
2、解压linux-2.6.30.4_20100531.tar.bz2压缩包
+ {6 A7 u7 O6 |! Z
9 q, ]+ a- A' y# o) J# ^% k( d- Ktar  -xvjf  linux-2.6.30.4_20100531.tar.bz20 \3 ]: a" @3 @' e" u& T/ y
% |2 r* {( ]1 B& m

: Q5 S6 C) T0 d# l1 b9 @2 s
/ |. |8 `2 o8 G+ U3 o5 j+ v3、进入linux-2.6.30.4这个目录 (一定要在这个目录下配置内核)# G6 G- `3 v) V: U
% Y  G  Q6 z; X+ }6 ]8 f
cd  /opt/EmbedSky/linux-2.6.30.4% q& }1 R2 \' d  n2 q! Q& k" `

, Y7 n9 `+ r7 P, ^( x0 Q5 g7 o————————————————————————————————————8 h' R+ [* g" x" j1 }" T
0 x2 t- I4 @7 A" h1 |+ I6 R6 }
下面开始再PC机的虚拟机上配置、编译内核
9 W/ B' G" `2 K3 n$ w% N: ]  {( q: t  G7 G# Q( z% e
————————————————————————————————————
' W$ Q9 i( A3 d9 j
$ |5 x5 h. K# l& C: L4 、清除原有配置与中间文件- q. F) _& s( P/ p9 ]% N; d

  E) R! L( |% h1 T; O3 Vmake distclean+ C/ t* \7 }" W( o7 f
# M; R# E; [, e2 R3 x% T
" e8 z* P  i  [/ i, @
4 z) A* K+ r# A, n, l" Y
5、将config_EmbedSky_W43的内容复制到 .config这个文件里。(至关重要)! L& f* z; e/ `. R+ d* j5 t( E
1 p, I$ Y  c. T( j% f7 E! u
如果没有做这一步,将导致,启动不了内核。
# g$ K  [9 v) c$ Y7 h" D! ^
# }4 X6 V' q# jcp config_EmbedSky_W43  .config: U; k/ c4 Y2 @, I8 t4 m

' q3 C" S$ r( C( a9 ^
4 Z; O( [+ L8 W$ B+ B" K* U  y9 f$ A; }  Z
6、配置内核
+ R9 Y5 t# U0 r* X. r2 L3 ?3 A
3 Y, i6 R) [1 L# ]; ~! dmake menuconfig
% p4 Q8 Y- D/ }7 Z  x8 r+ ]3 w& W7 N7 s0 p: N. K

; z6 b* T/ V3 {: D% _( o
6 W! M! y0 x* T% S( J7 v因为TQ公司已经将顶层的Makefile里面的7 E1 {. d! x) ~: q: W' `

* F: Z# [! P: g0 GARCH  ?=  $(SUBARCH)
) F& G+ Z; Y+ n- H8 l& Q
: p0 ~; t; J8 G# b# ^CROSS_COMPILE   ?=
& g* z, ~$ T+ y/ N' b7 w9 K' }0 ^# x/ V
修改成6 s2 \9 [. W1 Y- I. N

; p5 P6 b' [+ U2 t- y! A0 N1 qARCH  ?=  ARM4 ]- Z& W6 a7 A$ t, r( W5 E1 P

; b0 y! d; x2 E0 H8 J2 P1 G) T" WCROSS_COMPILE   ?=arm-linux-3 L; O. y% p2 J* |

- d) g$ U+ J% n. F8 n ; D) k5 f! O. ?4 X

, E/ U8 B$ h" v* }+ a8 H6 q故我们可以直接使用 make menuconfig 命令,而不用make menuconfig  ARCH=arm 命令- p& a5 U: I  N
: S2 Y$ A, z$ @8 X% f4 y. S
其实这里不用做什么,直接exit退出。因为配置的结果就是为了产生 .config这个配置文件。. u1 y% [+ E# u. R! b+ h; ~- @7 Z
5 T4 s' k8 Y8 ~* {2 L' ^
我们在第五步已经完成了这个配置。; i$ _6 A  {  Z9 {7 s3 U$ T' S
  U  ~: n0 r% ^, U4 x" x

* z& m3 Y1 |& m  b0 X* J) t9 l# m$ m. U
7、编译内核
3 N/ S3 T  [9 q& v& E
& w+ Q: d, a: J( A& smake zImage
; u1 r3 b; \  Z9 I6 k9 F% [9 U9 N& I$ m$ [
同样道理,我们也不用使用make  zImage  CROSS_COMPILE=arm-linux- 命令。否则,会累死。
. h5 s5 E! X) k4 a. W
( q. A8 t. W7 ~+ e/ R8 \6 j: I编译成功后,看到 Kernel: arch/arm/boot/zImage is ready; ]) X! n% r' ?! O$ u! R

& o* O* h' k; B( L/ @; i说明,已经在 arch/arm/boot/生成了 zImage 镜像。
* ]) C( b6 e7 f5 f! \: d; V/ i
2 `: M# G, m' N: N
  i( u' L% K3 M9 r/ J, v7 j  H( d' Q/ B
8、拷贝zImage到/tftpboot/目录下3 t  O) Y7 N* O! ?0 ~, B

! Z+ P) `+ l+ q- P: Tcp  ach/arm/boot/zImage  /tftp/
; v: }9 U+ X- P1 h* k) L: r/ @# v. X0 P5 H( ~, N' u0 C7 K  X8 Y
3 O" v( q- ?/ y: x1 B* R# p/ I

0 v1 U# d" D! D5 F: }! D5 y7 d————————————————————————————————————
+ Z1 f: O1 j0 G, P- g! \
9 G8 d. s1 i7 F) M) ]* H( F下面是烧写内核到开发板上。5 B: H+ J4 v2 w' h5 q" |2 w5 _
1 V% U1 p! f5 O  D& q
首先,确保开发板已经烧写好了u-boot,我们通过u-boot的命令,通过tftp网络烧写内核7 E+ I, M+ a- u
+ v  `" f; B- a' Y( R
到开发板上。6 H1 x3 f$ T) z& V- r7 x9 Q
' b$ K  X4 t8 u
其次,确保开发板能够ping通虚拟机。(因为是通过网络来烧写)。
- S' ?3 g( b& g: M  J
$ Q$ B" ^# x7 i  J8 |+ z9 k( M————————————————————————————————————, s+ V5 g% V3 s

' ^0 K1 r! }- r) K. u9、EmbedSky> tftp 31000000 zImage2 O8 z" G  {! I7 q# O( F- m; M
dm9000 i/o: 0x20000300, id: 0x90000a46
" ]$ L: R3 ~3 C: B# Y) H" jMAC: 0a:1b:2c:3d:4e:5f& n  r& d, Z) u' S; ]* j
TFTP from server 192.168.0.105; our IP address is 192.168.0.54 H6 k1 |' L/ x3 D# a6 Y$ A
Filename 'zImage'., P  o5 A- h  [* m5 `3 ^; y& E9 c* i& x
Load address: 0x31000000, |3 G+ m, r+ n- l& g
Loading: T #################################################################0 X4 C& ^. m" b6 L
         #################################################################+ O9 c5 S1 k% B' o7 f) _  U
         #############################
3 q6 a5 X* j& gdone
8 a2 G: Y7 [5 vBytes transferred = 2314748 (2351fc hex)
3 t9 b* |1 l2 n' I) _' k% F6 V8 }
6 x5 b* L6 ^0 K, B

" E% j  H6 U3 a# \/ i* q6 r& A10、擦除nand flash
4 q2 O+ W3 t; x4 b
1 Q  u! T: h6 r- qEmbedSky> nand erase 200000 300000
+ c& g( p$ k' D$ u
/ ~% s, Y2 }+ [; W$ [9 `# V1 N  O  CNAND erase: device 0 offset 0x200000, size 0x300000: @7 X8 R, Y; S/ N3 X. I' P+ {
Erasing at 0x4e0000 -- 100% complete.) s9 J$ I0 N) e, ^/ o& J1 x* r7 t
OK
( [. e, J9 A% W! {
6 {. x* y* j5 F, _! `% D: W + r" {$ z  J/ Z/ T  x# y

, F+ r% z) v' B11、烧写到nand flash里面去$ O9 A$ U8 W6 a/ C5 x( f
1 l  {4 q2 ~& b
EmbedSky> nand write 31000000 200000 300000
  A% W, E3 K1 K5 v# B* S
. `6 ?( h& @! _" L: T7 \$ V2 \' rNAND write: device 0 offset 0x200000, size 0x300000
# R" ]7 X# O' k4 _4 M* P/ }4 q 3145728 bytes written: OK
5 B4 {$ n% J8 I/ ]9 O, u  q
0 J' }/ O$ r: _4 |/ `8 `( Z2 k" P 5 q; ]1 }1 q- x% r

5 o# ]2 f) j6 }+ [12、启动内核
6 ~# k/ S  M! p3 R8 Q
/ _3 @/ C5 y& c1 YEmbedSky> boot_zImage. S1 g& f" Q8 q' h
Copy linux kernel from 0x00200000 to 0x30008000, size = 0x00300000 ... Copy Kernel to SDRAM done,NOW, Booting Linux......+ @" i. a& f  ]/ _3 U, _6 F
Uncompressing Linux......................................................................................................................................................... done, booting the kernel.. r; D1 A9 k" M& C+ x9 J. M2 o: |
Linux version 2.6.30.4-EmbedSky (root@localhost.localdomain) (gcc version 4.3.3 (Sourcery G++ Lite 2009q1-176) ) #3 Mon Nov 26 20:19:27 CST 2012
* w( e* D7 ~7 K$ Q3 L1 j5 w
9 }; R  {( M1 n# n% N& RCPU:  ........
! U) F, `. `* D! t; ?( A9 K9 o0 _3 m# L' M2 p  m* M* {1 p/ {
......
  S" j  q* c$ G) W, D/ V
3 q- X% j+ }9 D$ b......
" L9 Q8 R  Y/ G3 G7 s
+ l+ c1 O2 {6 h" T0 `, ^( BPlease press Enter to activate this console. eth0: link up, 100Mbps, full-duplex, lpa 0x45E1* \3 E! B/ t% i8 h: z
& p( F8 P" L+ B* M% @  l4 J1 ^2 j: L
$ Y6 B5 `* l) C1 k( N

5 N2 V9 i$ y3 Y  X2 Y到这里,内核就完全启动完毕了。# M5 P8 \1 B3 w/ i' \

- M2 `+ E9 y$ }% ~; Y————————————————————————————————————
5 {5 p8 ^# o9 q. G' ?$ I  Z! W0 \5 F
敲入Enter键后,出现类似于虚拟机里面的输入窗口命令行。, q: v) f  s5 ]( d: M9 E( ~
& O6 W) F. |+ Y" \: n
[root@EmbedSky /]#
0 }! s7 X& j/ O5 u5 @1 V6 {[root@EmbedSky /]#
) K7 U4 d; f1 o. P2 t3 v4 p0 L" I0 e4 k- M3 k
输入ls命令后,+ ~% C2 Z( ?1 P$ h0 w, G9 U/ Y) r1 R4 u
1 _  S: m, |5 S4 g5 F
3 U5 P- `; i2 q4 D
. N: @/ N: J7 b5 Y% s; m
这些就是一些存在于开发板上的文件系统啦。5 A3 A7 b1 @9 I0 k# Z) N+ u$ }

! z  ]0 o/ @' f3 v4 n( G; }

该用户从未签到

2#
发表于 2020-4-21 14:23 | 只看该作者
TQ2440之初级制作内核
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-11-26 00:28 , Processed in 0.171875 second(s), 26 queries , Gzip On.

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

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

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