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

linux-arm开发环境简单配置

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2021-9-16 18:06 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

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

x
linux-ARM开发环境简单配置
8 `% I9 u  j( Z+ }# \关于linux-arm开发环境简单配置是ARM学习的第一步,很多初学者会在这问题上纠结很久都不能配置好开发环境。推荐大家看一下韦东山视频,讲得很详细,代码基本上都会给你解释(很多视频都不会给你解释),适合初学者。
" y% \* K( \( |) r6 P" |4 K5 B, e9 Qfedora8开发环境简单配置% [* g/ B9 y9 H6 a' B3 K
linux-arm开发环境简单配置 9 E$ ?, L) F. w% E. U3 O2 n. n1 i
Window上:% X7 j4 _9 F' z8 c
安装终端软件 SecureCRT,putty等% b: Q$ _6 U/ [3 N
安装ftp软件 cutftp等
* M0 m) W$ e2 k5 |$ _配置串口工具 超级终端1 c4 u5 R( V7 X' Y$ O( V
安装tftp服务,也可以使用linux上的tftp。2 C- L0 u& b5 i/ z9 [" M& [
linux上:* B+ Z8 B/ ~: q3 N% W7 J. _, t/ z; i
1,ssh
: X3 T6 V" i( w6 k9 x6 L默认情况下,ssh在fedora8下应该是安装的,那么就无需安装了。; v( R, I4 u3 g3 E! b- e
可以如下查询:
( H# S0 ^$ C2 I: r* \rpm -qa openssh
* Y+ m2 J* ~, h如果显示openssh-4.7p1-4.fc8一类的信息表示安装了,如果没有显示,那就直接使用yum install openssh直接安装即可。+ X- P) d) ~" Q( ~
然后需要在Firewall把ssh的端口开放。也可以直接修改 /etc/sysconfig/iptables, 在其中加入 0 x" N5 D! W% Z9 p" n4 `4 @& w+ }5 h  S
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT 即可" j6 M) X9 a: J) j
然后 # service sshd restart 重启即可。1 V- u4 o! P& ^' \) j6 T
2,vnc
( U: y# D  r& e% Y0 Y切换到root用户
9 X- L5 p2 r" |0 N. |. A# yum install vnc-server 安装& r0 h9 G. T& `6 }
# vim /etc/sysconfig/vncservers
3 Z/ x9 r$ Z4 L9 S: c加入' _4 |! }+ y3 P: J9 F
VNCSERVERS="1:misswhile"  g& L* N& {6 O
VNCSERVERARGS【1】="-geometry 1024x768 -depth 16" 等9 Z% k1 C4 E: x
加入密码如下:( Z$ }( Q9 U* D% ?
$ vncpasswd
( ]% n0 J4 z2 q. T, f/ i $ Password:
0 \: P$ t9 e1 b4 z2 q8 `4 {; | $ Verify:
% W8 q4 h+ s8 n  W启动服务 #service vncserver start
8 K8 Y$ t- e9 s0 D' m修改 ~/.vnc/xstartup,使支持窗口
; N/ X& ?$ E, y, Q% p: p/ utwm & 注释掉2 ]0 ]* K1 h! x1 P
加入
1 d$ @9 o# D8 X& eexec gnome-session &  , [/ W1 k1 y) W, s5 U; M
开放端口:iptables 加入   -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 5901 -j ACCEPT5 |3 j  C/ @3 t0 E5 l
重启服务即可。
; O4 C' x! v: @' K0 {# U' K3,samb
3 n* E! ~/ P4 j' L# yum -y install samba' |/ a+ A2 e8 {, j0 }, G9 H( d
# yum -y install samba-client6 a; z: L7 `! |" h# d! o
# yum -y install system-config-samba
7 F, j2 f, A# R+ M" B9 p# chkconfig smb on1 ~' ^* C9 W- B. T6 w' B1 J
然后 Desktop -> System Settings -> Administration-> Samba 设置共享的目录 和用户,读写属性等即可。& Q) Y; ^% p' B9 V
4,tftp  过程和上面都大同小异...
- G3 U6 r" x7 f2 k* m1 @5,nfs 安装过程一样,需要注意的是需要开放好几个端口,否则无法网络挂载,如果对安全没特殊要求,那就关闭防火墙即可。
  t& q+ @* y( Y9 V& a完成以上这些步骤,在Windows上通过网上邻居访问linux的samba文件夹,进行文件的编辑拷贝等。% L- S$ R) X% Z; j  a2 T
在Windows上通过putty,SecureCRT,VNC client等访问控制linux主机了。( U4 T0 m8 Y. d2 R. ~* K" H+ h
在Windows上通过各终端在linux上交叉编译u-boot,linux kernel,制作根文件系统等5 Z+ \+ U( B. Y0 ?" m; ]! y! f
arm开发板可以使用网络挂载linux上的根文件系统等。( G" {6 r# `* G6 u4 O$ l
当然,其实只用一台linux主机即可完成,不过通过对于linux上编辑工具不太熟悉的时候,通过Windows也工具也不错。% l, K# A& X9 }, e8 _
Ubuntu开发环境简单配置
$ \' C. X% v7 l2 ~5 X. r2 h一、中文环境设置
( ?  d6 S0 @4 ~9 s1 E. M1. 设置 ubuntu 中文现实
' Z$ @  |1 ?# H. p: N8 o$ T点击最上面菜单 的 系统 -> 系统管理 -> 语言支持(英文菜单则是 System -> Administration ->Language Support),在列表中选择 Chinese 条目。同时将默认语言修改为 Chinese(中国) ,按确定关闭设置程序。5 b/ Y% [# K7 l) [
2. 配置字体 sudo fontconfig-voodoo -f -s zh_CN
4 M0 l% U- b# Z; {( i( E3. 安装 fcitx 输入法# Y) O0 E( u) }! w4 Y3 x
    sudo apt-get install im-switch libapt-pkg-perl fcitx& L  V( _( V- \/ X  i: @8 e3 [
    sudo im-switch -s fcitx
2 w9 r1 i% ^5 r" i" y- I' ?3 A4. PDF 浏览器 sudo apt-get install acroread! n$ ~' @# n1 }  b
二、ubuntu 开发环境设置     
+ L: w: I4 U* L# R/ e2 U# w1. 安裝 C/C++的 Man 手冊,。6 m, ]  |$ N7 ^* [( \
    sudo apt-get install manpages-dev* M4 m1 G+ i- R( R5 z. m( N9 o: u
2. 安裝 gcc,g++,make& t: V7 k! x. \( G7 [0 }. ?
    sudo apt-get install build-essential
1 C1 @. I9 x& b* q$ M0 y% s3. 安裝头文件和库) K8 m: |8 M" ^( A* M* O9 g
    sudo apt-get install libc6-dev libstdc++6-4.0-dev) V- M1 Y8 [/ H2 f% i
4. 安装 libncurses5-dev, {$ Q! i- q/ U( i* y' Y" j; F0 `
    sudo apt-get install libncurses5-dev
  R/ d9 G+ s  K; _* ?5. 安装 gdb 调试器
3 }" S9 E( H+ |1 r* M3 F( g    sudo apt-get install gdb
: ~& ]4 K* t4 i# k+ U6. 安装安装图形界面 ddd 调试器- o! u, @. @$ o
    sudo apt-get install ddd2 M) `& C9 c% z# }  O! t
7. 安装 automake 工具
! b& |5 N, G7 X0 R& ^/ z" D/ ^0 v  [' R    sudo apt-get install automake
. ^: f  y% P+ i5 d% t    sudo apt-get install autoconf
( N; U' O$ S0 ?6 m+ `* S. X2 j    sudo apt-get install autogen
* R8 A; r/ l' R  A$ Z; T4 [*autoconf 是一个用于生成可以自动地配置软件源代码包以适应多种 UNIX 类系统的 shell 脚本的工具。# r# _  x' X3 [, l; v$ M
*automake 是一个从文件 Makefile.am 自动生成 Makefile.in 的工具。
5 E8 ~3 {& q+ Z" B: n8 \+ q8. 安装 indent    sudo apt-get install indent8 m: g* O: a) O: x% r5 r! v
    调整 C 原始代码文件的格式。3 q7 P; ]2 _0 X8 U+ G
    sudo apt-get install libtool! y. i7 c7 h' x1 K% H; Q9 w2 F
    GNU libtool 是一个通用库支持脚本,将使用动态库的复杂性隐藏在统一、可移植的接口中。
3 L6 S9 @& L1 L+ w! r9. 安装文档
) d) r) p+ ^$ X% q! o( B    sudo apt-get install binutils-doc cpp-doc gcc-4.0-doc gcc-doc glibc-doc libstdc++6-4.0-doc stl-manual
% L% T0 x* A( W/ t7 Z: c7 Zcpp-4.0-doc3 s. r# i4 X% B7 f4 B: v9 z
10. 安装编辑器
. D4 H" F' f! c- l6 G$ ]1 J1 f    sudo apt-get install emacs21
' C, X- |  P  u4 v2 ~$ W* h三、ubuntu 文件共享、传输设置    8 w& F" k  K, K* v0 L  E2 k9 E
1. 配置 tftp% |3 a: {! _& V* w0 E
(1)安装程序    sudo apt-get install tftp tftpd
, e6 f9 ~' d6 L, G& R6 P 前者是客户端,后者是服务程序。9 n5 i- v' o( f( f- t
tftp 是要 inetd 来控制的, ubuntu 或 debian 类的系统,默认是没有安装 inetd 的,安装如下:    sudo apt-get install netkit-inetd
6 j0 A. j2 w/ e4 K# i8 e(2)在/目录下建一个 tftpboot, 把属性改成 777。
+ I$ L1 V! B& f# i1 `    cd /
: _, K4 |2 N) a) w/ k! Z1 {    sudo mkdir tftpboot
7 h$ u, d# W& B    sudo chmod 777 tftpboot
4 }) E" R6 _1 L1 V, J. f5 |(3)修改/etc/inetd.conf
, z" x& H; @* C, C0 E/ l    tftp dgram udp wait nobody /usr/sbin/tcpd /usr/sbin/in.tftpd /tftpboot
) Z: }* ^& ?! o/ a' K. X" y( `(4)重新加载 inetd 进程
+ E: K9 b6 A) I& r- w$ T" ~    sudo /etc/init.d/inetd reload
6 H! F2 S5 {) b2 q(5)测试
4 K9 u3 O' |0 p; A7 W. {    在/tftpboot 文件夹下新建立一个文件
" W! B( `* c" ]7 l3 K    touch aaa, [1 e* x* v; J0 Q! g/ o
    进入用户文件夹
* K* Q* m/ h4 ^' p, t+ h' o    cd /home/user1/
( s; a4 r2 D0 d    tftp localhost
; V# q1 b* u2 s+ r& _/ ?    tftp> get aaa
% Q+ N+ x4 i( \" N2. 配置 Samba
( q' l1 R( p7 v8 Y9 G(1)安装 samba9 M# X4 A' u9 A* p$ u
   sudo apt-get install samba' ^2 }+ a& z. v# p( P
(2)创建和配置共享文件夹+ s9 A6 w2 A% V* `# E6 ^6 p
   mkdir /home/user1/share, q# P) ]8 Q& l* d7 c' P
   chmod 777 /home/ user1/share
, u  [0 n( h1 o2 s, ?/ e( Z9 _(3)备份并编辑 smb.conf 允许网络用户访问  {/ y* a! n$ A
   sudo cp /etc/samba/smb.conf /etc/samba/smb.conf_backup
% K) _$ f; U, x' u3 F7 ~7 |   sudo gedit /etc/samba/smb.conf6 f$ H7 n! K( W4 ^
找到 security = user
- y; p' `0 H3 a- w+ `9 V. q替换为
9 R; Z; k( H0 `. X7 ]" S6 H   # security = user' {- V+ C* q: f3 K
   security = user
  D9 K1 _$ O1 a% j   username map = /etc/samba/smbusers
. o3 i' v* O8 ^  L找到- }/ H, q- ~0 ~8 R
   workgroup = MSHOME% U; t7 \7 P3 ^
替换为4 a0 O5 {/ X5 c5 _
   workgroup = WORKGROUP
5 {# e  |+ z- j) x/ P6 m( k   display charset = UTF-8! a" `3 G, j' A/ n" ~* `2 @) Z
   unix charset = UTF-8* [1 z6 x  M7 e: h  \4 K
   dos charset = cp936
" c! d" E8 f/ x' `  u在最后添加:
( _, F8 f3 T  \- }; e8 u6 z   【winshare】3 Z2 S, Q7 S: T0 P( O+ n
   comment = Shared Folder with username and password% s% V/ D0 J2 h; O  _% \
   path = /home/user1/share: ~: ~! ]# {/ X" X4 g
   public = yes: F* y8 ]# I; `/ G8 n, _
   writable = yes
$ x, K- ?: s+ g" J) `1 K; T   valid users = network
  }' ]$ e. R; o3 d" ^! u  Z4 A$ h   create mask = 0700: G3 a6 j% G" U' J
   directory mask = 0700
" Z2 H0 A+ j9 Q8 M, f7 @   force user = nobody
9 M8 P6 j6 l6 N! V( c) L) D   force group = nogroup
. e: X  t' I; u, X6 L3 i# C   available = yes) X# D5 Q# [) t. b1 D
   browseable = yes
$ ^! I3 A4 U) F+ f3 K4 M! x1 I(4)添加 network 这个网络访问帐户
, |0 o( i# ]6 W1 u2 l4 \* K代码:
* g; c) p) \5 E& m   sudo useradd network, o: D  U2 |  t' [
   sudo smbpasswd -a network
: Y5 B- u" k$ J9 f+ U7 j; L$ t   sudo gedit /etc/samba/smbusers
% ?( e6 Z/ M' N添加:+ Q0 j7 k+ C' l$ F0 E. K
   system_username = “shijian”/ r% X2 g* {5 C: [. X, G
   network = "network"
/ U8 _# L8 ?$ K  c$ d7 C(5)重启 samba
( g+ s( J9 |# j5 U' b1 t; D, v' Y   sudo /etc/init.d/samba restart( p5 ^9 E5 X* W1 T
这样就可以在其他 windows PC 下访问本机 ubuntu 的共享& ^# R2 [9 ~4 c! N  j2 t9 e
(6)ubuntu 访问其他 windows 的方法
" k# H2 t- G" w$ |8 _+ S0 v' j! F1 A& C使用快捷键 ALT+F2." g$ Z3 C+ y" p: L$ Y- K" T3 \- R
输入"smb://IP 地址",回车
; [! U9 F% C0 `. n3. 配置 NFS
% ^+ j* l( w  E) Z$ y(1)安装 NFS+ u8 }7 e; u0 k0 k9 ?' ^) t/ u" I
Debian/Ubuntu 上默认是没有安装 NFS 服务器的,首先要安装 NFS 服务程序:1 O9 {& {% A' ^; d  W, n
   sudo apt-get install nfs-kernel-server9 g) P( k6 ^4 F) ?8 R) b
(安装 nfs-kernel-server 时,apt 会自动安装 nfs-common 和 portmap)) V6 d& {# N( Z5 H* }
(2)配置/etc/exports' }% Q3 g0 S; e( r" A  b6 K6 g. k, M
NFS 挂载目录及权限由/etc/exports 文件定义
# K" q0 h: g/ u3 V$ l' x将/armsys2440/root 目录让 192.168.0.*的 IP 共享, 则在该文件末尾添加下列语句:% S( y, |* S+ A; o/ F
   /armsys2440/root 192.168.2.*(rw,sync,no_root_squash)( y+ L0 P, L% e: I! F$ ^$ i
或者:   /armsys2440/root 192.168.0.0/24(rw,sync,no_root_squash)
! [3 d/ h$ R+ \$ e9 d# v运行   sudo exportfs -r) h; e9 X; ~7 U& w3 d
更新运行   sudo /etc/init.d/nfs-kernel-server restart6 h! }( N8 I& K4 Z) D% w3 z  R
重启 nfs 服务
, u8 I7 K  V% _(3)测试 NFS
8 c* w. T' T9 b( |可以尝试一下挂载本地磁盘(假设本地主机 IP 地址为:192.168.0.1,将/home/zp/share 挂载到/mnt)
, Y) c/ L: I9 k$ ?0 H$ Y   sudo mount -t nfs 192.168.0.1: /armsys2440/root /mnt4 Y# ~% j* C8 t
运行 $ df 看看结果   sudo umount /mnt2 z6 Z7 |/ X. ^" A: d$ v/ T
可以使用一定的参数:  }/ e5 y4 ~7 V# @8 P& a
   mount -o nolock,rsize=1024,wsize=1024,timeo=15 192.168.2.130:/tmp/ /tmp/
# D# i1 o7 V! o. v" m(4)客户端挂载远程共享   mount -t nfs 192.168.0.***:/home/***/share /mnt/share
/ P* j7 Q, g: w/ Q7 d4. 配置 minicom
; j# X, ?- x7 D安装 minicom
  B7 N; [& C+ {4 L* N( P  A   sudo apt-get install minicom9 b4 v/ L, d" }1 X5 z. `
四、交叉编译环境设置
) s* F( O7 c. F/ q1 t4 \' K' ]安装交叉编译器' p+ f: s" [# b6 _# }4 M" K
   sudo mkdir /us r/local/arm7 S# q) o( n1 `: c! i6 D& q4 f
   cd /user/local/arm
% b* z: V2 ~  M( x3 M* Q! Y   sudo tar zxvf /home/usr/arm-linux-toolchains.tgz/ |9 a5 U. }1 g
请在执行完成后查看是否存在/usr/local/arm 文件夹。
& ?; ^7 P/ _/ r把交叉编译器的路径加入到 PATH,以方便使用:
) x2 Q5 q" x6 g5 N   sudo vi /etc/bash_bashrc  r" x3 A0 n0 `8 A: K) J5 a$ v+ ?
加入如下代码:
$ i( e  h, t4 |( B* C% N   if 【 -d /usr/local/arm 】 ; then
; _- G2 o: y5 O7 A- }   PATH=/usr/local/arm/2.95.3/bin:"${PATH}"
: \1 v% D! F: U" w; \1 `9 S   fi8 @. \: b$ j0 y6 [4 t! @3 [* k
五、uboot
0 q8 a/ p3 u7 w' k7 V    uboot,内核,文件系统: A8 k! ~/ d% L! |% T3 O
   1. uboot 编译
" {* J6 V  G7 W建立 armsys2440 目录,将光盘中的 Linux / u-boot / uboot.tar.gz 拷贝到 armsys2440 下,并解压缩:
8 e7 m2 x  Y% N; X( A   cd /armsys2440
+ h8 ^7 f6 ~; ^, c9 g9 {   tar xvzf uboot.tar.gz/ y1 E& b! B0 w( k% E4 r) s9 `  e
得到 uboot 目录,如果你需要编译它,按照以下步骤:
6 y+ I6 N9 Z" E: \6 a+ q2 `   cd uboot, \% i3 L8 h) ]5 e$ X% y: |
   make distclean
* d9 X! B- U1 E4 v   make smdk2440_config
/ ^! {/ D0 T0 `* E* [   make
" S2 W3 ~% [  d. T# b* ~; d" P    2. 内核编译$ V! C0 ^5 ?, A' D8 j
(1)解压* A9 x) u+ [8 o$ t
   cd armsys2440
7 I  n! z3 f  i5 o6 x7 b  o   tar xzvf /mnt/cdrom/linux/kernel/kernel-armsys2440-xxxxxx.tgz+ U7 }/ P3 d7 i$ ^3 q
(2)配置命令行如下:/ H5 D$ c5 C, ]3 E, v
   cd /armsys2440/kernel2440  }! h9 X( _. ?1 k7 O5 J+ g1 p
   make menuconfig
6 n6 n" m) n' Y6 R(3)编译
: x1 m1 I+ `, {" C- w命令行如下:" c: S1 C, Y$ T1 D* M; @5 z' P
   make clean
0 x$ t! H( V" N: i2 e- |# ~6 N   make dep1 t, N5 U8 O' G- q9 A
   make zImage8 c- j3 K. ^; S: M& `  _
编译结束后将在 kernel/arch/arm/boot 和/tftpboot 目录下得到 linux 内核压缩映像文件:zImage。
+ ]1 {) x. Q, V# t6 | 3.文件系统+ q% s" P) G$ S- N( _: Y. W
新建/armsys2440/root 目录,将光盘中 Linux/rootfilesystem/ root_armsys2440_0.1_yaffs.tgz 压缩文件拷贝到这个目录下,然后再解压缩,得到根文件系统所需要目录。将 root_armsys2440_0.1.tgz 压缩文件更名为 root_armsys.tgz; G: [' ?8 T7 I8 b# u8 |* p3 I

$ u. B9 X8 o& `# y$ W

该用户从未签到

2#
发表于 2021-9-16 18:21 | 只看该作者
对初学者很有帮助   感谢分享
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-7-18 09:20 , Processed in 0.125000 second(s), 23 queries , Gzip On.

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

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

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