|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
linux-ARM开发环境简单配置
% N6 q5 X5 O4 n( P关于linux-arm开发环境简单配置是ARM学习的第一步,很多初学者会在这问题上纠结很久都不能配置好开发环境。推荐大家看一下韦东山视频,讲得很详细,代码基本上都会给你解释(很多视频都不会给你解释),适合初学者。 U1 L) @4 E1 @" s/ @
fedora8开发环境简单配置3 {0 b& c) X8 P6 P) c3 ?* [# S6 W
linux-arm开发环境简单配置 * k! B9 |6 G& p) e5 `! O
Window上:
/ A, R1 f6 T' H+ N% R, J I安装终端软件 SecureCRT,putty等
1 }2 f/ z0 D: y+ ]" a4 T1 }9 ^7 a0 `安装ftp软件 cutftp等4 m3 Q. K& X* K$ F! M1 O
配置串口工具 超级终端' ~2 Y8 w# s7 E6 o0 r; ~
安装tftp服务,也可以使用linux上的tftp。( Z' |3 M6 n. u. x1 F
linux上:" R, p1 K1 O% q9 z- R
1,ssh. ^4 \1 ~0 a3 @) B
默认情况下,ssh在fedora8下应该是安装的,那么就无需安装了。
3 U& K7 |8 f3 S- U- B5 S可以如下查询:3 a# K" k0 Q0 `! R% l
rpm -qa openssh; k% e0 x5 ]% f1 U# [; I5 ]
如果显示openssh-4.7p1-4.fc8一类的信息表示安装了,如果没有显示,那就直接使用yum install openssh直接安装即可。
4 p+ ?6 r% E1 Y6 y* f/ m7 O" _然后需要在Firewall把ssh的端口开放。也可以直接修改 /etc/sysconfig/iptables, 在其中加入 : l5 R$ Q g6 M, P U7 I4 h+ E6 e- e
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT 即可- h$ f$ v. k. o$ ]2 y# D
然后 # service sshd restart 重启即可。' e, l0 w* g9 x) e) ~" ^" [
2,vnc
9 D( u- Q1 L$ w, J: w切换到root用户2 P, a6 f( m1 W5 G- b9 X' }
# yum install vnc-server 安装
3 |+ w# J2 z7 d# vim /etc/sysconfig/vncservers
0 n' W3 |$ @# R5 i0 N' A加入
* d* E7 `+ r& S5 n* v% lVNCSERVERS="1:misswhile"3 r: x$ @/ D$ a( O1 K
VNCSERVERARGS【1】="-geometry 1024x768 -depth 16" 等
. ^; z( ~0 V7 ~8 M0 G加入密码如下:
. q1 t- y0 V" L. q! e# L $ vncpasswd
9 n3 J; J5 S/ \4 }8 P; r$ n# V $ Password:/ a" I# Y6 F5 N6 l4 N( I
$ Verify:
1 d- L0 L6 e: H, f/ t! [6 |6 v2 A启动服务 #service vncserver start
* J9 B# M; u+ p7 @修改 ~/.vnc/xstartup,使支持窗口
% |# I$ F5 P: a: X6 \6 d8 P$ Rtwm & 注释掉
+ V6 X: d+ t1 V! ]9 l加入
! D8 E" f, a1 R' dexec gnome-session &
" p6 \6 a! ~% \1 q开放端口:iptables 加入 -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 5901 -j ACCEPT
6 X) k1 Q' s' K$ _; ^" K重启服务即可。3 A' G" b) J# Y4 t) y/ Y
3,samb
' O3 T0 k+ I' q# yum -y install samba
5 f3 Y+ o1 S6 a- h" g* z% a# yum -y install samba-client
5 f4 w S) C7 Z: z1 }0 w3 a# yum -y install system-config-samba
5 j4 \* }/ I# t2 V6 J1 m$ h# l! h' ^# chkconfig smb on3 T2 J$ I3 L" a X2 g3 E3 q2 ?; i8 ~
然后 Desktop -> System Settings -> Administration-> Samba 设置共享的目录 和用户,读写属性等即可。2 a. b/ n' ~- H2 ~6 D5 Z% {
4,tftp 过程和上面都大同小异...
9 S2 z3 B0 F$ _( d" D, U5,nfs 安装过程一样,需要注意的是需要开放好几个端口,否则无法网络挂载,如果对安全没特殊要求,那就关闭防火墙即可。8 @# {4 G- g7 V. u
完成以上这些步骤,在Windows上通过网上邻居访问linux的samba文件夹,进行文件的编辑拷贝等。 k$ C2 T! B' ~& m) z
在Windows上通过putty,SecureCRT,VNC client等访问控制linux主机了。
7 V, L. N2 t; J/ `& K在Windows上通过各终端在linux上交叉编译u-boot,linux kernel,制作根文件系统等
' [: H4 E# y* ?4 v$ marm开发板可以使用网络挂载linux上的根文件系统等。% V. Q, f! B, B% Z5 }( ~" N. r2 s
当然,其实只用一台linux主机即可完成,不过通过对于linux上编辑工具不太熟悉的时候,通过Windows也工具也不错。 8 z3 p" k: r/ F$ ?
Ubuntu开发环境简单配置6 i" j! R; n7 }( p, f0 \6 H
一、中文环境设置3 c4 e; A% i8 j9 o6 s* \
1. 设置 ubuntu 中文现实& r+ V$ A1 J/ y5 R9 }/ W% f, ?
点击最上面菜单 的 系统 -> 系统管理 -> 语言支持(英文菜单则是 System -> Administration ->Language Support),在列表中选择 Chinese 条目。同时将默认语言修改为 Chinese(中国) ,按确定关闭设置程序。: U" @/ i4 v. ]8 [
2. 配置字体 sudo fontconfig-voodoo -f -s zh_CN- z+ I( \, g* L* E& W9 c2 t
3. 安装 fcitx 输入法
) I$ ?7 }3 d* R9 X K sudo apt-get install im-switch libapt-pkg-perl fcitx
8 W/ Z: j( D4 ^7 v0 a4 q; z sudo im-switch -s fcitx
" d2 x" M# e: d& d* U# h J4. PDF 浏览器 sudo apt-get install acroread
i8 X/ `: [0 z* @4 Z4 ?/ [二、ubuntu 开发环境设置 ! R2 c5 d) Y- F+ w2 D; n9 T1 Z
1. 安裝 C/C++的 Man 手冊,。
% [- z5 l% _* [$ t8 q) c sudo apt-get install manpages-dev$ l0 r- X/ g" Y0 e# V$ F% M/ `
2. 安裝 gcc,g++,make
$ j y, [1 X9 Q) w* ~6 y sudo apt-get install build-essential) B" {6 C/ \6 U4 g8 ]6 r
3. 安裝头文件和库2 `$ @" c, C7 X, q2 E5 a
sudo apt-get install libc6-dev libstdc++6-4.0-dev6 Z% C8 G' [6 v7 Q8 R4 k" k
4. 安装 libncurses5-dev/ l0 v: C7 ~" o. }
sudo apt-get install libncurses5-dev
4 w) L9 m+ V* J! ?5 o5. 安装 gdb 调试器
( Y, i [7 ~6 t" m: P1 o. ^ sudo apt-get install gdb; [1 G! R' V7 y2 m
6. 安装安装图形界面 ddd 调试器
+ Y" S3 y2 p; z2 S! g sudo apt-get install ddd
9 ^0 W, u/ P. J* V7. 安装 automake 工具0 u v, A" M! U( `6 J
sudo apt-get install automake& S/ c# Y6 Z) ^8 d# T+ P
sudo apt-get install autoconf d3 C% Q% ?! z2 w J0 w1 V
sudo apt-get install autogen
% z/ S+ X- V7 j1 k+ B# k3 ]*autoconf 是一个用于生成可以自动地配置软件源代码包以适应多种 UNIX 类系统的 shell 脚本的工具。
& Y/ M. U1 d# [+ d- v, N. ?/ \*automake 是一个从文件 Makefile.am 自动生成 Makefile.in 的工具。
. t3 K9 f, v q# ~6 ]" m/ ?8. 安装 indent sudo apt-get install indent6 J7 {$ i$ \* ?3 X0 B+ {
调整 C 原始代码文件的格式。
2 o% X& R1 X: C( c$ S3 b3 b+ B: x7 {9 A sudo apt-get install libtool
* C1 W' I8 T g* _* d GNU libtool 是一个通用库支持脚本,将使用动态库的复杂性隐藏在统一、可移植的接口中。, a$ \" c- x0 J; I5 { E% r I% \
9. 安装文档, ^# c; M- j7 z) n, f6 O& E3 J
sudo apt-get install binutils-doc cpp-doc gcc-4.0-doc gcc-doc glibc-doc libstdc++6-4.0-doc stl-manual
+ r* O! J% u1 }$ x4 [cpp-4.0-doc
+ Q: a$ a* H' i. p* l10. 安装编辑器
9 P7 J2 R1 l$ d2 p* @1 A0 N& P sudo apt-get install emacs21! G0 _4 r. X4 w* ~$ }. J" {
三、ubuntu 文件共享、传输设置 3 A# f& I, g3 \; A
1. 配置 tftp
$ {8 A8 c8 K' `0 H {& G2 i(1)安装程序 sudo apt-get install tftp tftpd
5 A4 g$ u% [8 i8 K) I5 w 前者是客户端,后者是服务程序。) J, t- p- {3 Z2 j3 k
tftp 是要 inetd 来控制的, ubuntu 或 debian 类的系统,默认是没有安装 inetd 的,安装如下: sudo apt-get install netkit-inetd
) u, Q5 C. u ?/ R0 h(2)在/目录下建一个 tftpboot, 把属性改成 777。
/ N0 N* R( t4 N% \ cd /
( l& q( V4 B% M# W' u+ f1 s6 k sudo mkdir tftpboot
% j8 a. g' G+ c( [ sudo chmod 777 tftpboot
$ M! q5 r% M W" v2 D(3)修改/etc/inetd.conf
$ [ W2 U5 W" {& T tftp dgram udp wait nobody /usr/sbin/tcpd /usr/sbin/in.tftpd /tftpboot
: A, x2 R. I, [(4)重新加载 inetd 进程
! Z: y' ]0 V$ D7 D% p8 D/ n sudo /etc/init.d/inetd reload/ ?1 B( X p1 P2 |) f6 o
(5)测试) |% s- j# {0 q# y
在/tftpboot 文件夹下新建立一个文件: s6 L! [# p# A% P& D/ w+ i
touch aaa" t3 E$ w; t Z3 a- F; g
进入用户文件夹2 G* E. X5 s F# O, }& r- E
cd /home/user1/. b5 R7 G, }+ }. ]1 o6 A
tftp localhost2 T1 c3 ~8 w7 v, e. m1 V1 _4 ^
tftp> get aaa r( i$ H2 k- n# w& H: Y# b) M
2. 配置 Samba5 F, z* t* R8 W- d$ B, `
(1)安装 samba
: R5 j0 x0 L/ L sudo apt-get install samba$ s; ?+ [* k! f+ x/ C' l
(2)创建和配置共享文件夹
: R6 x6 g- J% S+ q" Y mkdir /home/user1/share1 |$ Q3 N* M' t
chmod 777 /home/ user1/share
4 R5 n. X/ [! C; r" E! N4 o(3)备份并编辑 smb.conf 允许网络用户访问* G5 P& o, |) T
sudo cp /etc/samba/smb.conf /etc/samba/smb.conf_backup
/ t" O. |% }( o+ B" t O sudo gedit /etc/samba/smb.conf6 Q/ N: W j; i" v
找到 security = user
* o( ~: h! T" S替换为. t' c' z& X. Z1 f3 V
# security = user% n& Y/ Y# v* q3 f# ~. x3 u' O8 V
security = user
i* L4 M. D! t( W username map = /etc/samba/smbusers! Q) z' W( z6 e, i
找到
& B* L3 E1 V# q7 s* g7 A) O workgroup = MSHOME& Z, R( O5 B: y- I O1 s2 G; K
替换为6 E+ f6 v- G* V. ]0 \6 Y! h
workgroup = WORKGROUP6 t/ } M3 M1 n1 O ?
display charset = UTF-8. a: N$ b& O7 H* ]3 f; [
unix charset = UTF-8
e- G/ d* N9 Y y- B7 O' A8 ] dos charset = cp936( ?& D4 {% A ~5 H0 h: H! A- V
在最后添加:$ U6 ^3 W" R E; o
【winshare】
% o6 f9 W( N1 N' Z! e comment = Shared Folder with username and password
5 S5 b4 P; Z% } path = /home/user1/share
7 h& ], e) I* F! ]% h9 Y* V public = yes
' k+ B: `: X0 j- N2 E$ X writable = yes
- R9 L, `0 x# u. _+ ]" @ valid users = network8 H' H# Y' q4 Y4 b: W' q
create mask = 0700- D" n, D6 c$ G; G" @' ]
directory mask = 0700+ O/ H) o( M" M: A
force user = nobody
3 w5 C3 [( g. Y force group = nogroup6 L/ L) @/ e" r' Y& r8 [4 b
available = yes
+ U9 l+ c k3 d" f# ` browseable = yes& v' i& m- f/ u" ~
(4)添加 network 这个网络访问帐户
( b O+ u3 [; O& ?9 f! h; R/ {代码:' D/ e$ }* t+ D* M" J* V O
sudo useradd network
; w' r/ J+ K5 Y# C# \% B sudo smbpasswd -a network4 N! t( P9 Q @( ^( [; F
sudo gedit /etc/samba/smbusers
3 q5 V$ \& _9 e+ m7 J8 K添加:
: H# F% A% C- N6 i/ t system_username = “shijian”9 u( ^) @' [. H }6 h: E
network = "network"- ` H! u5 ^+ _8 ?! p- z
(5)重启 samba
/ S$ z1 g4 u( b- B sudo /etc/init.d/samba restart
4 H9 t8 e) S2 n c这样就可以在其他 windows PC 下访问本机 ubuntu 的共享4 w9 E1 K( l2 T& m9 v2 R
(6)ubuntu 访问其他 windows 的方法
9 Q2 P& f) ^. @使用快捷键 ALT+F2.
; c* l1 K5 R8 |& l1 s i输入"smb://IP 地址",回车
- V* |* f! n5 z4 n7 E3. 配置 NFS
# M( L% `( v. o8 ?; F(1)安装 NFS
% R" C) B: y* ~$ rDebian/Ubuntu 上默认是没有安装 NFS 服务器的,首先要安装 NFS 服务程序:- r) L' g, _& M7 S1 r
sudo apt-get install nfs-kernel-server
, f- @" z# W. I2 C. l: l( f. R8 y(安装 nfs-kernel-server 时,apt 会自动安装 nfs-common 和 portmap)
: ^5 V$ x! a6 _4 m9 n% d$ z(2)配置/etc/exports! H d3 {: p% s& O* l3 Y& `
NFS 挂载目录及权限由/etc/exports 文件定义! x# e. M V, T
将/armsys2440/root 目录让 192.168.0.*的 IP 共享, 则在该文件末尾添加下列语句:% q5 T8 Q$ |2 g8 z
/armsys2440/root 192.168.2.*(rw,sync,no_root_squash)4 X- \; o- C9 N$ m4 ~$ ]& y$ p0 L
或者: /armsys2440/root 192.168.0.0/24(rw,sync,no_root_squash)6 D# p' K" Q. V; e3 {/ q# r
运行 sudo exportfs -r& c& S+ ?' k, r( A( Q
更新运行 sudo /etc/init.d/nfs-kernel-server restart
) b h+ e6 k% D+ z3 Y. a重启 nfs 服务8 ?$ [* m$ K. [3 i5 H" T
(3)测试 NFS
- g- \! H1 t1 D8 S可以尝试一下挂载本地磁盘(假设本地主机 IP 地址为:192.168.0.1,将/home/zp/share 挂载到/mnt)+ a; r* M a; W4 M
sudo mount -t nfs 192.168.0.1: /armsys2440/root /mnt; I% v( A1 X& M G4 k* W% P
运行 $ df 看看结果 sudo umount /mnt7 H: W* p, Q7 C. \
可以使用一定的参数:1 ?9 ^1 W5 n% ?# S0 q- l* p
mount -o nolock,rsize=1024,wsize=1024,timeo=15 192.168.2.130:/tmp/ /tmp/9 S# U1 f# L8 ~
(4)客户端挂载远程共享 mount -t nfs 192.168.0.***:/home/***/share /mnt/share& |8 x6 }* t. e/ P$ S% c, W
4. 配置 minicom
( W: r/ M* i e# T$ y安装 minicom
) L- Q8 D/ ?) Z0 e* | sudo apt-get install minicom( ] o ~+ O/ H7 P& m: p. w
四、交叉编译环境设置
R+ A* J5 Y9 h; i# T' d+ Z; X安装交叉编译器% [- `0 p. o% X1 u
sudo mkdir /us r/local/arm; ~" v, L m# D; F7 g O$ ^' t
cd /user/local/arm
3 U/ V( N9 o+ z: x. M/ v" \ sudo tar zxvf /home/usr/arm-linux-toolchains.tgz: \ Z3 d$ W8 w' X' k$ l
请在执行完成后查看是否存在/usr/local/arm 文件夹。
. N4 \2 R5 h1 Q K7 k$ E9 T把交叉编译器的路径加入到 PATH,以方便使用: M$ O* h! h+ g' M
sudo vi /etc/bash_bashrc
! a D0 L* h1 t6 y# ]) f加入如下代码:
$ D) j. U" u3 {1 g6 |" Q if 【 -d /usr/local/arm 】 ; then% _0 D: I# o( S1 ?' ^
PATH=/usr/local/arm/2.95.3/bin:"${PATH}"
3 N) h6 o. ?) j5 m8 L1 q, e2 H fi
. o3 W! @) I9 J五、uboot0 t n9 @' e; e9 Z) |0 x( b8 H8 Y; I
uboot,内核,文件系统
0 {5 Q3 z; l c1 h% n: ?1 K 1. uboot 编译
0 R: `( U' ?0 z7 u& \* f; b3 k E建立 armsys2440 目录,将光盘中的 Linux / u-boot / uboot.tar.gz 拷贝到 armsys2440 下,并解压缩:0 a0 q. v9 o. N" b5 P
cd /armsys24403 q# c8 X- p: O
tar xvzf uboot.tar.gz5 @! C( K8 c& j' ^6 t- \9 H
得到 uboot 目录,如果你需要编译它,按照以下步骤:+ W! e& U& E# Y9 u1 l1 D$ u9 l
cd uboot
) r1 O- q5 n) ~+ ?: m make distclean
. L" L7 n- T( G; k, E$ f7 c make smdk2440_config
/ r; ^- Q" F: X9 J, t* E& f1 G+ X, g make
; V Q6 f0 V+ W& Q8 q/ B7 O 2. 内核编译9 C9 m; h& o! z1 H$ Z$ P# S
(1)解压
3 M- t* \% N8 m- h7 v cd armsys2440# ^' V) P1 i1 M8 i! v
tar xzvf /mnt/cdrom/linux/kernel/kernel-armsys2440-xxxxxx.tgz# j* k o, O1 Q! h) M
(2)配置命令行如下:
& r+ Y0 [/ f. b8 H8 Z- l+ ?. C cd /armsys2440/kernel2440
0 g4 U3 R: u3 [( I" u7 M* `. X make menuconfig
' G/ w/ T5 ^ V, `6 ]% N(3)编译
: \/ o, @' S2 n/ L命令行如下:
1 g) U0 G$ W A1 \1 w6 } make clean f* Q: t) C* _9 F# l& E
make dep
, A. \. B0 @. w/ w+ }" { make zImage
/ ]; z% o T/ _) n2 v& m6 X7 ?, V编译结束后将在 kernel/arch/arm/boot 和/tftpboot 目录下得到 linux 内核压缩映像文件:zImage。# \6 Q7 L# T/ r( _8 Y9 d2 c
3.文件系统
7 ~! t+ \$ o9 b' g$ W& T* W9 t新建/armsys2440/root 目录,将光盘中 Linux/rootfilesystem/ root_armsys2440_0.1_yaffs.tgz 压缩文件拷贝到这个目录下,然后再解压缩,得到根文件系统所需要目录。将 root_armsys2440_0.1.tgz 压缩文件更名为 root_armsys.tgz
& @$ y( N5 }! |# P3 Z
0 Z8 W. }# j& G W% Y( X% }6 f. m |
|