|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
linux-ARM开发环境简单配置
% r( _- }; |6 p- r: L关于linux-arm开发环境简单配置是ARM学习的第一步,很多初学者会在这问题上纠结很久都不能配置好开发环境。推荐大家看一下韦东山视频,讲得很详细,代码基本上都会给你解释(很多视频都不会给你解释),适合初学者。: z: ~/ a1 O6 r. K+ X6 Y5 D# x
fedora8开发环境简单配置
. Y3 c8 i; q6 Z$ C' g. Wlinux-arm开发环境简单配置 7 @2 l* f# b& Q; ^- F. f
Window上:
3 u# N7 o |, @. P1 }- s安装终端软件 SecureCRT,putty等( Q' W& O; d2 F' K" |
安装ftp软件 cutftp等
; P6 c0 D$ b% H/ F配置串口工具 超级终端' z: a* q! y+ s/ K4 A* C/ r, \4 G
安装tftp服务,也可以使用linux上的tftp。, Q& e [9 U( i9 }
linux上:
% X1 v) n4 e3 \2 M. r f' A* J1,ssh
9 J7 @0 H3 G k) t" k( r& I( _默认情况下,ssh在fedora8下应该是安装的,那么就无需安装了。& h0 h8 D, e& c3 _ @9 b# a6 C
可以如下查询:
- w8 n: h1 K1 Irpm -qa openssh; V6 `; o; i# f
如果显示openssh-4.7p1-4.fc8一类的信息表示安装了,如果没有显示,那就直接使用yum install openssh直接安装即可。
& Z- E* A. D6 p- a% R然后需要在Firewall把ssh的端口开放。也可以直接修改 /etc/sysconfig/iptables, 在其中加入
% f2 {8 T4 | N; j8 g-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT 即可8 ^# o5 I7 X/ W- C% N1 i
然后 # service sshd restart 重启即可。
# ^7 M% o H8 x4 L2,vnc- R7 _. m! J J% j1 o3 P0 _* J
切换到root用户
/ V) v# Q) Y! N, b- D' w1 f# yum install vnc-server 安装
! c, X- q! t3 D$ n# vim /etc/sysconfig/vncservers 6 v( y |2 A* R8 ^: ^, b
加入
) A, k3 R; P" g' u* h& c, F+ }VNCSERVERS="1:misswhile"
8 C0 Y5 d4 s- D2 L# o. O2 W' CVNCSERVERARGS【1】="-geometry 1024x768 -depth 16" 等# k' e* X$ g! y; d' |
加入密码如下:" H/ l. p r9 B
$ vncpasswd7 I) t6 y8 e. R6 W! ]: ?3 F& m
$ Password:
; m( ~( f/ C& @4 ?1 T6 c6 [ $ Verify:# J- \" t/ {' |" M7 l! C: ^% H
启动服务 #service vncserver start
$ @0 \1 Q8 J }8 w5 q6 s# u6 }修改 ~/.vnc/xstartup,使支持窗口* t' z5 Y+ {. Z0 S2 F& q6 w5 l$ h
twm & 注释掉 k _% P% b. b# ~; z% O
加入5 ?6 F! X: y9 D
exec gnome-session & $ }6 P0 R2 s& ^) q/ [
开放端口:iptables 加入 -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 5901 -j ACCEPT: X& _+ J3 e3 T8 B/ m
重启服务即可。3 G' }* `3 i. j. U- C- D# f+ u
3,samb, ^; z" G3 p/ e1 i) L
# yum -y install samba- \6 k/ a5 C( ~. f
# yum -y install samba-client5 G) i6 e+ j) j
# yum -y install system-config-samba# }& p& `, }) T ~ Q
# chkconfig smb on. A, {1 ^3 B R, j# N _
然后 Desktop -> System Settings -> Administration-> Samba 设置共享的目录 和用户,读写属性等即可。
9 @' z& T I3 p$ y: P4,tftp 过程和上面都大同小异...
8 R* L, l( b- w5 l& H- N) Y9 O0 E6 V$ l5,nfs 安装过程一样,需要注意的是需要开放好几个端口,否则无法网络挂载,如果对安全没特殊要求,那就关闭防火墙即可。
- F( a' ~9 r- p& q0 T/ n' K完成以上这些步骤,在Windows上通过网上邻居访问linux的samba文件夹,进行文件的编辑拷贝等。5 d# b5 X) x/ z6 F
在Windows上通过putty,SecureCRT,VNC client等访问控制linux主机了。
5 L' L9 l: x. w2 G) F8 t在Windows上通过各终端在linux上交叉编译u-boot,linux kernel,制作根文件系统等6 r' M2 Z e, x( [' \
arm开发板可以使用网络挂载linux上的根文件系统等。% f6 K7 M% ?. R6 R
当然,其实只用一台linux主机即可完成,不过通过对于linux上编辑工具不太熟悉的时候,通过Windows也工具也不错。 5 r7 N3 A" {2 S/ k
Ubuntu开发环境简单配置. V/ z: |* C: z2 |
一、中文环境设置
, N! |9 J/ M# h1. 设置 ubuntu 中文现实
$ p1 i1 Y% M: p, T8 U点击最上面菜单 的 系统 -> 系统管理 -> 语言支持(英文菜单则是 System -> Administration ->Language Support),在列表中选择 Chinese 条目。同时将默认语言修改为 Chinese(中国) ,按确定关闭设置程序。/ r; H6 L" y8 G
2. 配置字体 sudo fontconfig-voodoo -f -s zh_CN
: R' _3 T$ L* D4 s4 i p$ n. e: r3. 安装 fcitx 输入法
6 c3 r! P2 j' t3 ?5 |3 ]& g sudo apt-get install im-switch libapt-pkg-perl fcitx
3 t( N6 [7 }0 t) @ sudo im-switch -s fcitx8 E5 d6 H4 C& P8 c9 C, h
4. PDF 浏览器 sudo apt-get install acroread
" [& w d4 ^ L6 m; S5 E二、ubuntu 开发环境设置
9 R8 y$ X6 t* d$ T3 L+ G1 S1. 安裝 C/C++的 Man 手冊,。$ y: \) |. a- y0 _. a" q5 L1 h, X
sudo apt-get install manpages-dev
3 S5 I G2 d& D, W$ N6 K0 F2. 安裝 gcc,g++,make
& W9 Q! G; s. H sudo apt-get install build-essential
/ F! z% D# I4 Y- h8 P3. 安裝头文件和库
$ \$ G9 K+ ]) _- v& Z# l8 {: o sudo apt-get install libc6-dev libstdc++6-4.0-dev* E; v" \/ }: C" J \, _% P$ z
4. 安装 libncurses5-dev- w/ M$ U$ ^# l8 b; y2 s" A4 i
sudo apt-get install libncurses5-dev
/ t0 ]3 d! V( m# v# a8 x5. 安装 gdb 调试器- @2 |4 s# u; e) e% v. ` N2 k
sudo apt-get install gdb
+ ]) P U8 N- y3 ~. t6. 安装安装图形界面 ddd 调试器( n& |* p" A4 A; P* R4 w
sudo apt-get install ddd0 J1 X* k9 ]: ]
7. 安装 automake 工具
6 {/ N5 m& P0 i9 E' g sudo apt-get install automake; I/ |1 I# j! _
sudo apt-get install autoconf
! t/ r/ e" ^- P |, `6 O sudo apt-get install autogen7 f8 ^* m( M4 Z# r9 n/ {: P! O
*autoconf 是一个用于生成可以自动地配置软件源代码包以适应多种 UNIX 类系统的 shell 脚本的工具。
! P p3 y8 c f) H' b; b$ D4 q*automake 是一个从文件 Makefile.am 自动生成 Makefile.in 的工具。; s2 g# Y5 Y$ c1 P6 T9 X6 W
8. 安装 indent sudo apt-get install indent
$ R1 B& e5 Q) P 调整 C 原始代码文件的格式。
. c! c' R& y, o" F sudo apt-get install libtool
7 D# |" n( u6 p! S9 U GNU libtool 是一个通用库支持脚本,将使用动态库的复杂性隐藏在统一、可移植的接口中。
( m1 E* y( y6 T8 `% R& f9. 安装文档
0 b) o7 f6 ]2 J6 W' ~3 O8 H sudo apt-get install binutils-doc cpp-doc gcc-4.0-doc gcc-doc glibc-doc libstdc++6-4.0-doc stl-manual
8 q% m1 n, d4 }4 {2 H4 ]3 \+ Qcpp-4.0-doc9 {2 U7 P" A1 z! A8 y, e1 P6 }
10. 安装编辑器
+ X o1 s% c. c sudo apt-get install emacs21
3 y$ K+ H. w9 T! b. W三、ubuntu 文件共享、传输设置 3 ?5 i5 l4 W$ O
1. 配置 tftp
+ ~/ r& B/ F% t2 q2 u+ B. U(1)安装程序 sudo apt-get install tftp tftpd3 I) H- ?- x! z* e: q
前者是客户端,后者是服务程序。
# k6 l1 N) t5 C+ {% Otftp 是要 inetd 来控制的, ubuntu 或 debian 类的系统,默认是没有安装 inetd 的,安装如下: sudo apt-get install netkit-inetd' F6 K5 a( ^0 T& j6 N, ?# F2 L/ I
(2)在/目录下建一个 tftpboot, 把属性改成 777。
7 A1 V7 ]. I0 \/ |: W$ z' h' Z cd /
* d$ G; |. k5 v% } sudo mkdir tftpboot
* O8 G" s D( M M) y- Y1 I+ D sudo chmod 777 tftpboot
/ J' M& x$ p6 o: ^% j(3)修改/etc/inetd.conf
6 c: b2 h4 r6 R0 {; N4 i D tftp dgram udp wait nobody /usr/sbin/tcpd /usr/sbin/in.tftpd /tftpboot
$ {, i& C3 f+ j0 ~; o( ~7 Y. ~+ P(4)重新加载 inetd 进程
) N& a$ m1 G7 M, I# S9 k) i2 U sudo /etc/init.d/inetd reload
" G' x9 ?( c$ E5 v, E(5)测试' p) N7 l7 \- n& ~9 k
在/tftpboot 文件夹下新建立一个文件" G/ T, ~& I& V. t
touch aaa$ i+ X/ `4 Z9 U& F8 b
进入用户文件夹' M" E* p: Y4 w" ?4 u" l
cd /home/user1/* E* O( y0 l3 z
tftp localhost/ @7 L3 p5 S6 \ f# e' s
tftp> get aaa+ o- p/ R1 r2 Q
2. 配置 Samba
2 ~" W( W+ y8 g# E! \(1)安装 samba
: G+ A" K* q. M sudo apt-get install samba
( N0 ]8 x6 K8 |) L' F! Q, p(2)创建和配置共享文件夹
3 ^, x! y1 L9 W8 M* ^ mkdir /home/user1/share
2 e! G' h7 M7 c: N6 Y, x0 ` chmod 777 /home/ user1/share
: k) F- h. D- w/ d/ a# d% S(3)备份并编辑 smb.conf 允许网络用户访问
; l3 d d2 g4 w1 {8 m# `+ H sudo cp /etc/samba/smb.conf /etc/samba/smb.conf_backup c9 A' o" H3 A$ ?2 ~0 }
sudo gedit /etc/samba/smb.conf
8 v- y1 W0 a' z8 F: k找到 security = user( ]% x& \- f' M1 o
替换为 {: t6 X* M! Y, g2 y
# security = user
( w! y+ m( v9 i: `) y3 m security = user% j# r& d8 _9 A e& t# L
username map = /etc/samba/smbusers5 m# D$ C- q! P) p
找到
4 M8 z; ^+ z4 W0 X3 U workgroup = MSHOME# N7 T( w3 c/ y. \3 ?0 ]
替换为
: H6 b/ O2 Q' E% t# H* R workgroup = WORKGROUP
9 s3 @8 Z8 N0 k& { display charset = UTF-8
- q0 X3 w8 S) W: l5 v4 ] unix charset = UTF-8# c0 @ b2 N/ E/ x) N3 F% j
dos charset = cp936( v, z" \! o9 K# \; o. z* H
在最后添加:' O0 a4 `1 K8 } d y' p% f/ U4 l
【winshare】
& z! s$ }# t3 X: ^5 L comment = Shared Folder with username and password% X* k! O$ X0 |5 u
path = /home/user1/share) E ~0 J& @0 l1 ?$ O9 t
public = yes
& Z& h0 P( Q+ u: P8 e# K$ K writable = yes
5 W ~3 v: ~2 l valid users = network
0 I4 K+ d# m) V5 j7 H7 R create mask = 0700
( o# Z& {3 X6 \$ c: f, ^ directory mask = 0700
; }" y3 X! Y3 v' E- f force user = nobody
# O4 ?* S1 L% v) \ force group = nogroup
; d9 M2 W# i# E available = yes5 W: r- S# |: k7 G _% H
browseable = yes2 x0 m9 q9 J: b1 V {3 o( Q
(4)添加 network 这个网络访问帐户% R& b5 Y. _ \" w1 M
代码:4 q. Z, o0 S* \. y$ S% D
sudo useradd network! \# Y2 ^" P# o+ ~; q
sudo smbpasswd -a network( f4 X8 w" d9 W$ j5 {
sudo gedit /etc/samba/smbusers
4 D% }' {" g n/ @' @- ^" Y添加:
/ u1 R7 G! Q) P z" ~ Y system_username = “shijian”. G9 X' g* A; b, j5 \/ I3 j
network = "network"
8 v) F1 F7 n# l& G8 s* H, k6 P: z(5)重启 samba; t2 B' Q6 n+ ~. R7 q& t2 _
sudo /etc/init.d/samba restart$ |; y: {' h$ Q2 O$ v% N; `
这样就可以在其他 windows PC 下访问本机 ubuntu 的共享
5 @) e, l; a: }; Z6 G& M(6)ubuntu 访问其他 windows 的方法& L7 S+ a) z( I( t9 ]
使用快捷键 ALT+F2.% Q9 A+ @ |$ f3 r3 |, t
输入"smb://IP 地址",回车
/ W9 c) A& T4 Y0 P3. 配置 NFS- U, R" ?7 K$ S1 ^) s
(1)安装 NFS
, G! _/ t" z- [8 DDebian/Ubuntu 上默认是没有安装 NFS 服务器的,首先要安装 NFS 服务程序:
1 N5 p" a' P, X+ l; D: J sudo apt-get install nfs-kernel-server5 l: M, a' A$ X0 k- S
(安装 nfs-kernel-server 时,apt 会自动安装 nfs-common 和 portmap)8 c7 `+ ?1 L' Z5 P6 I# B
(2)配置/etc/exports
* z. E* }9 O+ x' D- ?, zNFS 挂载目录及权限由/etc/exports 文件定义
# E1 a) x4 v0 f$ z7 z$ |将/armsys2440/root 目录让 192.168.0.*的 IP 共享, 则在该文件末尾添加下列语句:) J$ D5 b2 v& s# J/ f5 ]! @
/armsys2440/root 192.168.2.*(rw,sync,no_root_squash)8 g6 T; t6 Z/ v0 `* F. ?' ~! e
或者: /armsys2440/root 192.168.0.0/24(rw,sync,no_root_squash)
+ s2 K0 i3 P5 u% x P运行 sudo exportfs -r
# U( ^9 w5 K, R4 T4 A更新运行 sudo /etc/init.d/nfs-kernel-server restart
) l1 F6 c9 r1 z" G9 p9 r& n4 u1 u/ C% h% S. q重启 nfs 服务) U- m& p S( d
(3)测试 NFS
) I/ C, E& j, `6 o/ q( D* Y可以尝试一下挂载本地磁盘(假设本地主机 IP 地址为:192.168.0.1,将/home/zp/share 挂载到/mnt)
) b. o, t5 T* f+ j4 i sudo mount -t nfs 192.168.0.1: /armsys2440/root /mnt
7 z% F$ ]3 S! n/ ]/ u' w运行 $ df 看看结果 sudo umount /mnt1 Y% K- M T+ B1 y7 I% C
可以使用一定的参数:
4 m9 U% p# G# v9 h" I) |/ Q mount -o nolock,rsize=1024,wsize=1024,timeo=15 192.168.2.130:/tmp/ /tmp/
4 ], S7 y3 S- @7 j9 K) Q(4)客户端挂载远程共享 mount -t nfs 192.168.0.***:/home/***/share /mnt/share- s6 O0 m) }+ f& g+ X
4. 配置 minicom
7 [ |4 a1 y+ g T* Z安装 minicom& L. A3 v E7 C/ D2 ^4 h
sudo apt-get install minicom" a8 o" S3 u X- s2 ]
四、交叉编译环境设置4 Z' D/ @7 y/ A0 S4 _1 b ^
安装交叉编译器8 l8 g' A+ p: |$ X! |0 w
sudo mkdir /us r/local/arm
" Q R1 n3 U, f cd /user/local/arm9 _- ^/ x9 v- |2 o7 P- A
sudo tar zxvf /home/usr/arm-linux-toolchains.tgz
# \: T. `0 l/ o- Y请在执行完成后查看是否存在/usr/local/arm 文件夹。* G# v0 w7 |3 d9 x% `
把交叉编译器的路径加入到 PATH,以方便使用:4 a6 L8 P9 Y/ ^% P! i- q
sudo vi /etc/bash_bashrc/ Q- O4 J/ x" Q, T" ?6 _
加入如下代码:) p, T) Y& ^$ X x, T' R# P
if 【 -d /usr/local/arm 】 ; then, w6 i8 l& b8 K" {
PATH=/usr/local/arm/2.95.3/bin:"${PATH}"' Z" S! t+ i q8 r7 f5 q# K ? M
fi
$ Z. v9 N3 g. A) n# Q五、uboot
$ f' h& L, ?; Q) o" Y7 K# S# X3 l3 i* } uboot,内核,文件系统1 c: W' T) q. E* s
1. uboot 编译
) y2 r$ S! }9 P: g- ?! Z9 ~建立 armsys2440 目录,将光盘中的 Linux / u-boot / uboot.tar.gz 拷贝到 armsys2440 下,并解压缩:/ e( Z9 W# `# j/ x' ]. r
cd /armsys24406 M9 W) q# C a ~$ n
tar xvzf uboot.tar.gz3 M6 q6 L2 a. m t8 C
得到 uboot 目录,如果你需要编译它,按照以下步骤:
u |9 b$ p7 Z1 I( A O cd uboot
- x- {* f, S$ b& o; A7 x2 `2 s make distclean
+ q% d6 ]) E$ }" ?, U make smdk2440_config. V$ H* d. E/ Z- Z/ |3 j3 ~4 g
make
. x8 h6 X; s' D. | 2. 内核编译
2 V- o* u* ?5 G2 m# x" s(1)解压' q# Y1 i5 h% _9 Z7 f& D9 P* g
cd armsys2440/ s0 j, v, k) s& v1 \
tar xzvf /mnt/cdrom/linux/kernel/kernel-armsys2440-xxxxxx.tgz
& _! m& z. J/ n" y& l1 b# t0 M(2)配置命令行如下:- y% I. J: I* c+ \1 s# |6 Q& H
cd /armsys2440/kernel24401 v5 ?/ x. }2 P( e$ C
make menuconfig
- F$ `$ H) H' d(3)编译; m; T/ V7 B' f ~. r- k
命令行如下:. x2 R, h* @) j
make clean
/ k# |; _/ I: ^% z" ?/ y make dep$ { y5 W* [. V, d- ^
make zImage
( c( L( A9 c( O编译结束后将在 kernel/arch/arm/boot 和/tftpboot 目录下得到 linux 内核压缩映像文件:zImage。
, A7 o3 L/ I* ?3 h' s; s2 `" K 3.文件系统# l4 m' F5 c' g7 _/ g
新建/armsys2440/root 目录,将光盘中 Linux/rootfilesystem/ root_armsys2440_0.1_yaffs.tgz 压缩文件拷贝到这个目录下,然后再解压缩,得到根文件系统所需要目录。将 root_armsys2440_0.1.tgz 压缩文件更名为 root_armsys.tgz9 s+ j2 u' w6 `5 Z( ]
2 Q! Z8 Z8 Q. T& g6 o# `% C |
|