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

TQ2440之初级制作内核

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
# }7 I- W* z/ z, B9 T, i
1、首先拷贝TQ提供的已经移植好的内核到/usr/src/目录下。$ e' Y6 `( g% V1 _0 T0 [
/ z3 J' Z3 ]: _( c; {3 i
cp  /mnt/hgfs/share/linux-2.6.30.4_20100531.tar.bz2  /usr/src/5 n& c& ~$ j2 w9 y2 o; g
6 n+ d0 v9 R9 }  _6 P
: ]- M1 k$ z' F: I3 J5 L  S- b( S
) G/ O+ f' ^1 V- U
2、解压linux-2.6.30.4_20100531.tar.bz2压缩包& d$ H+ W6 u7 ?2 U$ ?+ j! K! U

5 F3 H6 C$ f! Mtar  -xvjf  linux-2.6.30.4_20100531.tar.bz2: p$ Y# A. y( {# o

) F% ^+ Y' B2 ~! P  Z1 J6 a
) c; {1 k4 A& {# i4 Q9 {! o
8 _( P2 e. K6 w( [% P3、进入linux-2.6.30.4这个目录 (一定要在这个目录下配置内核)# e  P9 I* J6 K
. e" A' u, o: _$ U5 n+ W) g/ K
cd  /opt/EmbedSky/linux-2.6.30.4
" a0 Y0 F+ F7 O, g, h. K; Q8 n* S" o: f
————————————————————————————————————
) B, B7 g3 P9 m$ b# a
/ z: R: s  v4 I下面开始再PC机的虚拟机上配置、编译内核
* c; m' R( H. C0 L7 `% B$ e' e: \) ~. v' d) A1 \
————————————————————————————————————4 t3 K0 Z- R. G, p1 R( K# _2 |
7 m' M% B/ M" Y" f; X+ M& S9 n
4 、清除原有配置与中间文件
1 o9 E; [3 a# I- Q( U
, E7 {+ x  ]; s( z! pmake distclean
( R- H% O9 ?+ n8 N" f
  P( V+ V7 E) H! \. M( W6 P$ w
" C' s) [+ Z3 l! |3 |- n  |$ }5 P2 U3 d# B
5、将config_EmbedSky_W43的内容复制到 .config这个文件里。(至关重要)& w# u2 r' p# {5 s& M# O

9 n2 n5 T) m! Z0 S0 {如果没有做这一步,将导致,启动不了内核。
: e8 |- h2 S( K# n! w& ^" G
7 C; v. `; a& b2 A) Y; b+ w% n9 Jcp config_EmbedSky_W43  .config
+ j! t! P2 I4 n- e& x  {2 U) M* Y+ n1 y; j: U6 u8 G

8 S( r% B. P# I5 S; o1 x4 m7 M2 l( c/ w
6、配置内核! |$ d+ K0 y. T" X- G( g

& [' K1 |! L" L9 g& E$ Vmake menuconfig; J& t$ P& G& _$ [$ `

! ]1 v8 x; L6 X1 b, {
, f" T: K9 t1 N* e
7 }; U* S7 ^6 {8 \7 z因为TQ公司已经将顶层的Makefile里面的
: L. [9 k6 ?) s0 M1 d6 n
+ X. X0 B# B0 T& Q$ uARCH  ?=  $(SUBARCH)) U# U7 Q3 \- d! _) ^

9 B" \! {# G4 SCROSS_COMPILE   ?=
5 m8 t' X+ B7 \  [) b9 P$ s" ]
' B/ m( L; w) q, Y5 z1 _修改成4 Y4 I8 |1 ]$ x$ h) v' i# t2 S* a' S
! e/ y9 `' D9 Y9 T: |. R7 Z
ARCH  ?=  ARM
$ {* `2 c* B) M4 [/ e
1 T2 @# r) R' F2 p; r8 @CROSS_COMPILE   ?=arm-linux-2 Q) ?" i8 L7 ~7 Y" O
# C& J+ \7 |3 \0 i4 F4 c
9 u& S, ?. ^5 Y# p, m' e( d

* |3 U( [! ]- T  _" d3 [  b: m! N故我们可以直接使用 make menuconfig 命令,而不用make menuconfig  ARCH=arm 命令( J, ~( s2 _& P/ }2 y1 c, Z5 p

1 f8 J1 ?. Q7 n) {5 \! R: P其实这里不用做什么,直接exit退出。因为配置的结果就是为了产生 .config这个配置文件。/ O* \- n. o. K
4 k* G( d* y, {3 f3 ~
我们在第五步已经完成了这个配置。
& d- X7 m1 ?3 l: @  r
" i5 M2 h3 o9 {3 X 7 p& O! N* h! h

3 q* N! c. `8 {- g- H; T6 q7、编译内核! Y9 F9 j' K5 [
8 }/ D- K) ?' {( h) I- P
make zImage : m' J% u1 A5 p) O3 R: g

8 m' g5 S: p8 f% b同样道理,我们也不用使用make  zImage  CROSS_COMPILE=arm-linux- 命令。否则,会累死。
: u9 c; v( D7 j
4 O* b. P$ a; Z  ]8 e编译成功后,看到 Kernel: arch/arm/boot/zImage is ready
/ h2 v2 d2 j) D$ c: y" _* I- Q2 K. H/ s2 U
说明,已经在 arch/arm/boot/生成了 zImage 镜像。, F3 N- d5 D0 ]+ _9 R: p

% N4 k, T  v+ \ ( w. ~1 q$ _; u
6 l: X: a$ @. ^7 \
8、拷贝zImage到/tftpboot/目录下0 n2 p5 Y" i, a" l: w! r

* U, M0 C2 ?, v3 _+ R; G+ Ncp  ach/arm/boot/zImage  /tftp/4 [: U) t- W+ Y2 |- k' n( d

1 o/ \6 f0 F+ H7 [+ g 7 p2 ~( g9 v9 t  k  L, c& p8 p' a

; x- O4 ?, h+ F- ]7 x( @, _9 R————————————————————————————————————2 X* e2 ^$ Q# k% a& b; r
- F$ H/ [$ j7 t, e% g! o- t2 ^$ W
下面是烧写内核到开发板上。2 Q( ~9 R1 r* s6 ?' u

4 j4 X9 ^; X: F/ `- p/ D) A首先,确保开发板已经烧写好了u-boot,我们通过u-boot的命令,通过tftp网络烧写内核! B/ I9 q, A  l. @& ]  l( Z! d" o

) Q, D/ w. k/ l8 {( g4 \" \到开发板上。3 o) m: n# |7 I* I# c& l
4 V+ _! h% k+ \! T3 k; C3 b
其次,确保开发板能够ping通虚拟机。(因为是通过网络来烧写)。
' B" f* X3 O: M0 h( G, u9 H% k
. {/ [: B+ o0 H6 O————————————————————————————————————/ [0 C* {3 e! h6 c' g

& t, ]9 C) ?+ o; [9、EmbedSky> tftp 31000000 zImage
+ s: r' {( F) d$ Bdm9000 i/o: 0x20000300, id: 0x90000a46 3 E+ a# q3 `" Z6 v" [
MAC: 0a:1b:2c:3d:4e:5f4 x3 d- Q0 L" a4 [7 u+ @; |
TFTP from server 192.168.0.105; our IP address is 192.168.0.5
" \7 ~+ A! R& J$ ^; PFilename 'zImage'.5 }: c0 e8 ]  |  b& ^% c6 g, x
Load address: 0x31000000% Y* l$ G- y; I( u1 ?0 x- c
Loading: T #################################################################
/ C& \* c. x& X8 E3 X* J' s         #################################################################
: f0 p" q- }6 P5 d; c% l* U# D8 c/ R         #############################5 _* S, H8 Z8 p" K* b2 Q1 T
done
1 d; p- P) I" O7 DBytes transferred = 2314748 (2351fc hex)
4 X4 r! b8 s; a) T& J
' l) q2 e- u5 a# p5 Q, T
( C. G! [2 }) |
3 N# p0 }$ s' {10、擦除nand flash
6 U* e8 D+ |3 O+ C" Z  a9 M* n0 j
EmbedSky> nand erase 200000 300000
+ \2 `$ k# r+ m
0 C, I4 ^8 l4 }; c0 @/ kNAND erase: device 0 offset 0x200000, size 0x300000* R) t/ a3 w/ h( e- _9 y- ?, r$ b
Erasing at 0x4e0000 -- 100% complete.: c4 L3 m( ^3 Z  r2 K
OK6 m1 P  i8 Q$ _" f( [* j. h

" ~2 n. m+ {; u$ |' [ , o/ H% s- M$ y8 E; u0 G
! j7 L# ~  X- S, E
11、烧写到nand flash里面去
* W& r& X) U1 d/ ?) [2 s  ^- x' l& c! I
EmbedSky> nand write 31000000 200000 3000007 ^" K9 L) G$ }+ Q% {

9 k& @1 j3 n. J- ]* jNAND write: device 0 offset 0x200000, size 0x300000: e# L' ?: {- [( d4 Q! X
3145728 bytes written: OK. s0 Q& P% `4 B1 P* x8 b
3 ]& r! `9 p+ E( R
- L7 C2 Q' g% k' ]# _

5 @; ?* O+ `8 @' U* G! X12、启动内核* Y/ d5 o& l9 w' ]% w3 V0 ^
) x9 N: H8 m; {' E: B1 D, o( [
EmbedSky> boot_zImage
9 k# F. F) ~8 R+ [( KCopy linux kernel from 0x00200000 to 0x30008000, size = 0x00300000 ... Copy Kernel to SDRAM done,NOW, Booting Linux......: \1 Y4 ~1 S# \' U: w  q5 \
Uncompressing Linux......................................................................................................................................................... done, booting the kernel.
$ t$ p( g( r1 D# ?, B4 MLinux 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
* }. x  Y0 f5 u! T0 _2 m) L% ~/ ]8 F0 S
CPU:  ........# t8 F7 i" g- w

% ^- x( j: U4 X" |: b. D1 D......- r$ K  i5 Q5 E
- F, o+ B1 e" H4 i+ K5 b9 ?
......
5 s# `' O( V9 Z* q! O2 P
, J' b/ b0 u/ h/ t2 l$ `7 W/ pPlease press Enter to activate this console. eth0: link up, 100Mbps, full-duplex, lpa 0x45E1" [. g+ {$ v1 C9 x

# s9 D& \3 q' a
* s2 R. t2 W/ L' h4 B) h; D( r2 K9 O+ R% y
到这里,内核就完全启动完毕了。! L4 n% M8 h  @- T0 L5 K
, J5 k! R& G( C  A4 r6 j' ~) V
————————————————————————————————————; V! X& b2 w; s- l; r
9 x  g' D2 }) N
敲入Enter键后,出现类似于虚拟机里面的输入窗口命令行。
/ c2 {2 V5 c4 _7 p/ Q* `1 y5 A6 W" f9 ^4 Q9 [
[root@EmbedSky /]#
/ t+ x' u: B; s0 @1 d[root@EmbedSky /]#
4 v$ H# Q& u/ i4 X$ N5 m
/ n4 b$ h5 K* \输入ls命令后,
; }3 \8 q4 y3 @$ q2 k0 }" B- p8 P% g, D6 ~- S3 y) U7 C" N

8 m3 v4 _0 x8 F: _
3 p. L- d. z) @! F2 L这些就是一些存在于开发板上的文件系统啦。
% d, K/ s4 R4 J' a% J7 M8 d- K, N

该用户从未签到

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

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-7-1 12:06 , Processed in 0.093750 second(s), 26 queries , Gzip On.

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

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

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