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

linux-arm开发环境简单配置

[复制链接]

该用户从未签到

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

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

该用户从未签到

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

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-10-13 02:17 , Processed in 0.140625 second(s), 23 queries , Gzip On.

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

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

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