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

TQ2440之初级制作内核

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
% |- ]2 ~" ]7 X) _
1、首先拷贝TQ提供的已经移植好的内核到/usr/src/目录下。
' t) K$ F' |$ ?3 Y4 C* C& m  e- y% i. F. f, a) K, b0 W
cp  /mnt/hgfs/share/linux-2.6.30.4_20100531.tar.bz2  /usr/src/) f' A, O4 b& ]+ K! o5 W8 Y& w

! c* |3 i7 c  L+ l 3 e) b% p3 k+ s
5 J" |, f* H7 G, S/ P
2、解压linux-2.6.30.4_20100531.tar.bz2压缩包
* c. W" B: M" C5 U$ Y6 r7 v0 X% o4 }* u5 o* Q
tar  -xvjf  linux-2.6.30.4_20100531.tar.bz2
- y2 @2 `0 l! N6 d) V: m9 y2 w8 {- \

) x* Z6 E$ D# \8 R7 }' ^8 Y, V7 ?: F8 [' ~8 n
3、进入linux-2.6.30.4这个目录 (一定要在这个目录下配置内核)
8 _' Z! N8 R3 W( Z$ H6 b4 ^* p) C! t9 m7 \8 K
cd  /opt/EmbedSky/linux-2.6.30.43 u) [  E* X  z4 }' F  R

6 I# t1 A; |; l, _' q' U( q————————————————————————————————————  h/ ]3 H. j: W
2 u# g- d6 G6 _/ {4 l' x) z1 [
下面开始再PC机的虚拟机上配置、编译内核
% g7 Q0 d, l1 |1 ^+ ]! P) j9 u, Z6 s8 m0 f' \9 _4 J
————————————————————————————————————3 t2 K* \3 w& X' {

( y$ g9 ~, X0 H. V4 、清除原有配置与中间文件
( b; F" c/ \$ k! b) S1 b3 o3 A5 F) y; Q& f3 ~* X
make distclean
: h+ ^  M# s1 e' R% x8 V: a( c+ m8 c# |- g

$ R2 x# D5 i* B2 `: E3 n
" p* f) P; B8 y+ R, ]3 e5、将config_EmbedSky_W43的内容复制到 .config这个文件里。(至关重要); _. u, M4 S8 v( t. I* V+ `
! [6 s# L# a2 r. K
如果没有做这一步,将导致,启动不了内核。
) f/ k, p/ H1 Z5 s3 V5 C0 K3 b
. H, A0 n$ F/ Jcp config_EmbedSky_W43  .config
/ Y4 }+ q# Y# c7 T
4 n& `5 z1 M" ~% u6 X4 {( s - t! ]# U) M" S* ~
$ U6 u9 U7 t7 a$ O! ]# m4 _0 h
6、配置内核
1 F$ X- f$ d. w3 @' F3 M
" d7 y; H8 O& V: T' \  Jmake menuconfig
' L; P+ h3 n! \  ]2 \2 w" ]: l. @; k8 i7 ~7 z
( T7 E! R8 N8 j
, Q' o) o, E% ?3 E% u, J. z
因为TQ公司已经将顶层的Makefile里面的
. W/ J1 J- [# V
2 B: @2 o2 \" d' o; J" @5 x+ D. tARCH  ?=  $(SUBARCH): H& X8 q. g4 S' h

/ ^6 r& o% d) ^1 k) `2 sCROSS_COMPILE   ?=5 F% {/ t8 N1 P! v

" O* p7 t) r$ R' Z, p修改成5 F! {2 K* u# I  ^0 s! t

8 e' I/ ^3 H3 I1 y: L- L. H: fARCH  ?=  ARM9 p; M" ]1 h* r) @' M

- V8 B" U8 h- y) O# d% KCROSS_COMPILE   ?=arm-linux-
2 t. w. e, ]* o, v/ B1 B2 A3 Z/ w* V/ w) }0 E) U  ?; r" O6 q5 j
0 s: P( Q2 m1 K) C+ G

9 D7 s  J( G' f6 t故我们可以直接使用 make menuconfig 命令,而不用make menuconfig  ARCH=arm 命令7 b1 E6 V6 U4 K  c( E! ~

2 Q" P: v1 ^5 X3 q其实这里不用做什么,直接exit退出。因为配置的结果就是为了产生 .config这个配置文件。9 s* x0 C( r! X3 K+ [2 }5 q' t% Q

# B5 j* s; M% i9 K' C* f( L% l我们在第五步已经完成了这个配置。
) X7 @. D- P1 ~# X- g0 K/ v2 r; y) y4 n$ ?4 v8 i& C/ L
# E$ X/ `% V$ W/ A- }/ L; U- B; b& I
7 h; d5 P4 R# D$ [% _" x1 h
7、编译内核
( h4 v0 ^4 z$ \" f0 X
  N: ^# }  y( T& T6 K+ gmake zImage
; s2 E, E7 ~0 r  f# J" g. X5 I. I8 o$ r! z
同样道理,我们也不用使用make  zImage  CROSS_COMPILE=arm-linux- 命令。否则,会累死。5 U! M1 Y+ a% Z$ I

& v4 e5 E0 U7 ?: ^" ]) c编译成功后,看到 Kernel: arch/arm/boot/zImage is ready
# R0 y5 R) P0 {' E+ v6 \6 v
; n% ~% i) g" W- \: z说明,已经在 arch/arm/boot/生成了 zImage 镜像。
! R  C; A* w% r5 v. R5 _* f9 p' {% F6 f

! i4 n* Q% M  S9 n2 L1 ]; j7 \: |" L  @- j) n7 Q, y  H' G1 q0 g
8、拷贝zImage到/tftpboot/目录下
; c8 J- I$ s  W( L: z( U3 P* j! k8 Z* ?1 F
cp  ach/arm/boot/zImage  /tftp/1 B) }+ G' S) E9 w' ~/ x5 {

% O$ a) K9 K" e$ G- n 1 R+ Y' v, c! F5 ^

% [+ X- X; F; M0 y2 k————————————————————————————————————
% `; _# ^) n& J& _: j
) r; U0 K  W/ \$ G9 E& J0 q# c" h0 ~下面是烧写内核到开发板上。$ I, U8 C. e8 ~$ {  o1 b$ e
6 f  m1 e! H6 G
首先,确保开发板已经烧写好了u-boot,我们通过u-boot的命令,通过tftp网络烧写内核- F6 b. P% J+ y* K

" H/ [, p/ p5 v( j- D! `到开发板上。
7 y1 o3 s8 v- R! h+ ~1 A2 T# f, h
- S6 ?- [. l. [+ v& e其次,确保开发板能够ping通虚拟机。(因为是通过网络来烧写)。
8 I3 s7 Q8 x' v8 |! X) F
. i# V" J: P. v, ~7 c* T————————————————————————————————————
* F7 g4 b& O0 c& O
7 X; r$ t  b/ v' V, s! u9、EmbedSky> tftp 31000000 zImage
6 e4 K6 ?( \. b" \) r$ Ydm9000 i/o: 0x20000300, id: 0x90000a46 - B$ ~- V  ~% b+ f; I) v9 Q
MAC: 0a:1b:2c:3d:4e:5f
; t1 l% \6 Y) v. `8 M3 q6 k  y" mTFTP from server 192.168.0.105; our IP address is 192.168.0.5
% ~& M$ i; C% ^$ ?. PFilename 'zImage'.
; h8 C7 [* i" z! r% [; `- X! F' HLoad address: 0x310000005 n% i' @& N7 ~3 ?& i
Loading: T #################################################################
2 M6 v: }- g: d  z  Q' C( @         #################################################################
6 Y6 C' K6 B; H+ o2 s, B1 T         #############################
# C( L, m5 B- W4 U3 Gdone* O4 y5 l* z$ }* n+ M
Bytes transferred = 2314748 (2351fc hex)- T+ M# ?$ A! a) W2 p  T, I& v% \
5 E* B5 C& A% u! A3 |. v

- \4 F/ q, U! H# u3 b6 K) e' ~( N( v0 y5 ?- S
10、擦除nand flash) q  c9 D! d. }1 o& E

# [; w( n9 ^0 c; C( _) g; ?) D0 I7 pEmbedSky> nand erase 200000 300000% a9 c( \7 Q  H# s
7 k/ U% O5 }: t3 r# b
NAND erase: device 0 offset 0x200000, size 0x3000006 q# c6 I( p! l( U. J; ~$ w
Erasing at 0x4e0000 -- 100% complete.5 G9 L) W' Q4 m+ X* W0 l* }- B
OK
! q) c& T  U3 u3 a; |& e; a1 e% y( c2 a+ x" v( y
3 L' e- Q+ i* u: @! Y  l
% ^+ ]% M. K7 {- M
11、烧写到nand flash里面去
( l/ r! k, p1 {8 M, E9 J+ E+ _
" a) U7 l, |8 ^EmbedSky> nand write 31000000 200000 300000
! [0 {3 M( j. e7 ~; n* G: M$ _9 d* M- k4 M
NAND write: device 0 offset 0x200000, size 0x300000
. e# G9 {( R; [4 w" o0 X# V 3145728 bytes written: OK
- s: Q% e' K! j* R2 i6 q9 p
, f4 k* g  z. \5 z( q; C' j
) W/ ~, @6 m0 f0 F: j* e1 @6 Y
- m3 f8 J8 V5 e6 e- I8 g& m12、启动内核
9 N: x" P2 a  A
! K2 x4 }8 K* A; F6 _EmbedSky> boot_zImage9 l2 y5 n. V  b# m. i# @8 k1 P9 `
Copy linux kernel from 0x00200000 to 0x30008000, size = 0x00300000 ... Copy Kernel to SDRAM done,NOW, Booting Linux......
# J7 r9 T: ~3 Z  jUncompressing Linux......................................................................................................................................................... done, booting the kernel.' y/ T4 [7 o, k1 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
3 Z7 E" A2 a" \* |. J. B
& W7 \, s5 M6 O7 o% `CPU:  ........9 w" j/ s3 N2 G

' K' [* c! O) a2 a: ^......3 _8 n) [& S0 |7 f' ?! M* C# t
* [4 P! _. D/ K, ^4 N( K
......
2 b7 G  O1 @; J0 t6 X
; i0 T8 e4 l: \8 {" QPlease press Enter to activate this console. eth0: link up, 100Mbps, full-duplex, lpa 0x45E1! b! {4 b: I+ X3 u5 g1 n" s* \

! n' C8 n6 x, F & J5 p: l  Y5 [, V% Z
6 t: V2 F( o. G$ i
到这里,内核就完全启动完毕了。
' v. r) Z# b+ f; ~! s1 Q' ^) \( o& n  D" I5 y
————————————————————————————————————8 l0 q! L. M  _1 D% W
6 D/ _( x" [% a/ }( X; _7 J* Y" R' k5 l
敲入Enter键后,出现类似于虚拟机里面的输入窗口命令行。
% X) O- S2 {$ K+ v0 I
7 S; e9 B/ x$ }& N; i: O6 U# l[root@EmbedSky /]#
1 a# S% B& o6 ^! c& r[root@EmbedSky /]#
: G2 ?+ x$ R0 P% ^8 G* [' v) |3 \- M6 m0 \. I$ {7 N, U/ a: {
输入ls命令后,' m6 d, M, U* ]; a) L- W: j
: h3 Z* }3 z) }2 k

* ^* g) |# R& G4 W, i! ^
6 C2 g' L0 h' ~) B' T这些就是一些存在于开发板上的文件系统啦。: x4 _6 z0 U- |1 w
9 |2 f6 v+ x% n$ s+ R! [

该用户从未签到

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

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-11-25 21:36 , Processed in 0.156250 second(s), 27 queries , Gzip On.

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

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

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