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

linux-arm开发环境简单配置

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
linux-ARM开发环境简单配置
# Q; }8 R9 O. k3 i. A3 G关于linux-arm开发环境简单配置是ARM学习的第一步,很多初学者会在这问题上纠结很久都不能配置好开发环境。推荐大家看一下韦东山视频,讲得很详细,代码基本上都会给你解释(很多视频都不会给你解释),适合初学者。: v! Z) A$ l0 {7 c  h4 u
fedora8开发环境简单配置
& k2 A6 x% F; \, ]5 [& l+ h: Ilinux-arm开发环境简单配置
) g& q% {* Q8 c6 Q. T7 w" M$ P. U/ NWindow上:& f' F  s2 N0 [0 M
安装终端软件 SecureCRT,putty等
3 x$ s( N6 j( R! R. H/ A安装ftp软件 cutftp等
% j* g6 o, X% }配置串口工具 超级终端
1 o" `6 I- d; h. ~6 \3 K安装tftp服务,也可以使用linux上的tftp。8 O$ U1 A' h' D+ B" i
linux上:
$ d8 o% C/ K* l" t1 I. R. H1,ssh% Y  Y* _: C  ~
默认情况下,ssh在fedora8下应该是安装的,那么就无需安装了。
1 F% r; m7 J% [0 i8 E% ^可以如下查询:7 |. V5 Z- s5 N6 u
rpm -qa openssh
) {* p, C* q. E$ T如果显示openssh-4.7p1-4.fc8一类的信息表示安装了,如果没有显示,那就直接使用yum install openssh直接安装即可。
1 S2 |; C1 ^' Z! q然后需要在Firewall把ssh的端口开放。也可以直接修改 /etc/sysconfig/iptables, 在其中加入 7 @4 @/ a- V. g* E( D
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT 即可
3 d3 j3 X/ y  [3 {' S然后 # service sshd restart 重启即可。
; D( X1 C5 w1 W* E0 s1 x2,vnc9 g' b1 t3 k6 [
切换到root用户1 e$ T3 r; J+ d6 z( l5 |
# yum install vnc-server 安装: F9 [6 H  L7 ]. t
# vim /etc/sysconfig/vncservers ! ]. \  U8 k9 E6 `- X; x/ o  h0 T$ [
加入
! Z& ?8 w; O7 W$ jVNCSERVERS="1:misswhile"
/ I. s! z; h5 C+ `6 GVNCSERVERARGS【1】="-geometry 1024x768 -depth 16" 等
/ L2 w  r$ A) d+ n0 y) t  S/ p加入密码如下:
/ ~8 p* I/ K% @ $ vncpasswd2 r3 C' I# J5 Q
$ Password:3 E" z. P, }: S: ]
$ Verify:
/ ?9 D. ^4 z& y" [启动服务 #service vncserver start 8 G& d6 r. q, M. P) }' y
修改 ~/.vnc/xstartup,使支持窗口5 s' V' }: n2 a; E
twm & 注释掉0 x4 {. L5 w  _. f+ ~
加入2 E1 F3 i& R( N0 x
exec gnome-session &  ) v8 V" {/ o, z; P2 j2 B
开放端口:iptables 加入   -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 5901 -j ACCEPT
; S& k- z$ F' Q" V8 i重启服务即可。- V6 _* ^( i# Q) l" `% w6 v
3,samb
6 W% ~; c; o4 E: F- e. {8 h& ~# yum -y install samba
: p. d' @; r0 i; \( j# yum -y install samba-client
# a. k4 Y) m" Z/ k/ w- g& M7 }9 ?+ P4 U# yum -y install system-config-samba- Q) z. a* x1 m1 Y
# chkconfig smb on2 q. ?! u! a; c
然后 Desktop -> System Settings -> Administration-> Samba 设置共享的目录 和用户,读写属性等即可。0 R3 r) B& i: s/ Q& L
4,tftp  过程和上面都大同小异...
8 q1 D) t1 D6 D; B# O5,nfs 安装过程一样,需要注意的是需要开放好几个端口,否则无法网络挂载,如果对安全没特殊要求,那就关闭防火墙即可。
: t. c1 w! b; T0 J! b+ l, I; ~/ X完成以上这些步骤,在Windows上通过网上邻居访问linux的samba文件夹,进行文件的编辑拷贝等。
  K* b1 [: e. Q在Windows上通过putty,SecureCRT,VNC client等访问控制linux主机了。
& j( P6 H: X3 \在Windows上通过各终端在linux上交叉编译u-boot,linux kernel,制作根文件系统等
- n! ~( q. v! H% l3 ?* b" Marm开发板可以使用网络挂载linux上的根文件系统等。
+ O* b; m+ K9 q' M, C' U当然,其实只用一台linux主机即可完成,不过通过对于linux上编辑工具不太熟悉的时候,通过Windows也工具也不错。4 Q" t2 r0 d6 @6 h) L
Ubuntu开发环境简单配置/ s! Q) e0 Z" a; j
一、中文环境设置
7 C% s8 v9 l/ N! q* P0 e2 T1. 设置 ubuntu 中文现实+ X7 V6 O8 q  D( r- P
点击最上面菜单 的 系统 -> 系统管理 -> 语言支持(英文菜单则是 System -> Administration ->Language Support),在列表中选择 Chinese 条目。同时将默认语言修改为 Chinese(中国) ,按确定关闭设置程序。
" I3 d" J) {2 d: p, K8 a2. 配置字体 sudo fontconfig-voodoo -f -s zh_CN
: T9 @, V6 v+ b3. 安装 fcitx 输入法
) E! B% s+ a4 C6 h# f: L( g# j/ A    sudo apt-get install im-switch libapt-pkg-perl fcitx
, v- W: l' ]' B  y4 U    sudo im-switch -s fcitx
% t% e$ l+ e) x0 X' U5 n4. PDF 浏览器 sudo apt-get install acroread
9 T6 {) G% x( u7 g二、ubuntu 开发环境设置     ) b0 R. M5 h. i; p
1. 安裝 C/C++的 Man 手冊,。
* C) u# c% E$ {6 l2 R3 h    sudo apt-get install manpages-dev( x1 v9 \8 E4 }: m
2. 安裝 gcc,g++,make" }) }  v2 ^9 |* B/ H6 p
    sudo apt-get install build-essential
' T# [% x+ B& z" O! N( E( N3. 安裝头文件和库) J7 z) m3 r) O9 C
    sudo apt-get install libc6-dev libstdc++6-4.0-dev
! l$ u0 z4 |% d) c  ^0 G; x- I4. 安装 libncurses5-dev/ p+ O: p2 A* X" c( N' H. u4 _4 b
    sudo apt-get install libncurses5-dev
% t( D3 J$ a7 S0 P5 H( `# a  \; f5. 安装 gdb 调试器
9 @3 G8 b7 E5 U7 E. n! u7 G    sudo apt-get install gdb6 c" R! I2 L. M& S
6. 安装安装图形界面 ddd 调试器, L9 h' k+ k' O9 n3 F( a
    sudo apt-get install ddd0 p0 e* |9 ]5 T! N
7. 安装 automake 工具
' n$ Q1 W1 r2 e; T6 U: _; S; i2 C    sudo apt-get install automake- A* K3 W1 h! @. k# D( k
    sudo apt-get install autoconf
+ R( c' W9 u' a! Y% @/ E    sudo apt-get install autogen. Z4 @8 t; `$ B# s0 ]
*autoconf 是一个用于生成可以自动地配置软件源代码包以适应多种 UNIX 类系统的 shell 脚本的工具。
# R2 r( {9 f1 D) H& T5 `# @*automake 是一个从文件 Makefile.am 自动生成 Makefile.in 的工具。* X6 [2 M" y, z( {
8. 安装 indent    sudo apt-get install indent" ]1 |; o7 K9 `+ E& ]* _1 {* d% [: q
    调整 C 原始代码文件的格式。! x/ _+ u& C  u, H5 r* B
    sudo apt-get install libtool& V6 Z# I- L" }) V% a* A
    GNU libtool 是一个通用库支持脚本,将使用动态库的复杂性隐藏在统一、可移植的接口中。
% i2 M) {0 h+ a& z6 u9. 安装文档" f& u$ ?1 V- o0 K, Z7 |* a8 R( Z
    sudo apt-get install binutils-doc cpp-doc gcc-4.0-doc gcc-doc glibc-doc libstdc++6-4.0-doc stl-manual+ ~/ y3 u" n& w* M3 |
cpp-4.0-doc
- d# e# z& c( c10. 安装编辑器- R% W( ^; M; Y% D5 [0 x" ?  {. J
    sudo apt-get install emacs21
+ E$ ^/ \- y. j7 e2 [: P三、ubuntu 文件共享、传输设置   
% J5 e  I8 `0 s0 j; e  y8 O0 ]1. 配置 tftp$ K1 b: B3 ]* v, Q: Y- ]6 u* j& B7 d
(1)安装程序    sudo apt-get install tftp tftpd( h' S- ^5 c: J  A
前者是客户端,后者是服务程序。
: J. \/ l9 e' H5 [, Atftp 是要 inetd 来控制的, ubuntu 或 debian 类的系统,默认是没有安装 inetd 的,安装如下:    sudo apt-get install netkit-inetd+ o, t& A9 o) |4 c! X/ v+ G, q' I4 k5 b8 B
(2)在/目录下建一个 tftpboot, 把属性改成 777。
; i2 p$ i5 a) ?    cd /
2 G$ e! e) C$ e    sudo mkdir tftpboot+ d; M& W& `( m5 Z4 z6 v
    sudo chmod 777 tftpboot( i1 \) ]3 R: r- K# M
(3)修改/etc/inetd.conf
, L6 ]0 p& J2 f- j1 ~& v    tftp dgram udp wait nobody /usr/sbin/tcpd /usr/sbin/in.tftpd /tftpboot
$ P4 l0 Z3 B/ J9 s' ^(4)重新加载 inetd 进程: U3 ^- C* |3 |9 [" b" L  j& [3 p. h
    sudo /etc/init.d/inetd reload# h  `  v. r1 k) t7 j
(5)测试
' e5 r& P$ ]/ ~4 j+ e$ u- K7 c! }6 q2 m    在/tftpboot 文件夹下新建立一个文件
0 f( D7 ]& }* ]3 d2 {+ t" v    touch aaa' ^( e4 K5 z/ }# R: k
    进入用户文件夹
0 ^. y- x# b# K8 F    cd /home/user1/
8 a! a- f0 i- j: H; u0 Q    tftp localhost
  c" s6 M6 L$ \( L) A0 P    tftp> get aaa
5 R! z: A& b+ p7 x7 p2 i! y+ z2. 配置 Samba
$ y; I) I5 E. P4 }0 ~2 U(1)安装 samba
  p- |- o" P% P, \* J   sudo apt-get install samba+ b! b+ y) ]8 N: D  U
(2)创建和配置共享文件夹
4 a' O+ N; J* ?   mkdir /home/user1/share; x+ t3 I7 u0 D9 u/ `
   chmod 777 /home/ user1/share
; ]( P: v; G1 G8 p* W2 S(3)备份并编辑 smb.conf 允许网络用户访问
4 I: L' u3 u1 V  g3 E8 Z   sudo cp /etc/samba/smb.conf /etc/samba/smb.conf_backup4 |& J5 _3 v" C) k
   sudo gedit /etc/samba/smb.conf& R! T! |) y+ s8 x3 O
找到 security = user
/ \' U- T+ B: {" s" N2 T替换为
# M; G- }: N& H3 G   # security = user
: a6 q6 D0 |$ Q+ S# L' {/ R- [. f1 E   security = user- [/ T5 O& |' p+ w, |8 g
   username map = /etc/samba/smbusers
6 j/ \1 _6 r6 V/ |找到9 I) x( ]/ D) ~) G
   workgroup = MSHOME) r: N* a  Z* l6 L! Z
替换为/ S. {/ G& Z0 H+ m$ H* t
   workgroup = WORKGROUP6 H  U; u8 X+ z8 h) U" k9 G1 U
   display charset = UTF-8" f  S! f) ?5 d/ d
   unix charset = UTF-8' A# z! U' ^4 t5 r0 d
   dos charset = cp936- q* K: d( o: X. @5 k- f
在最后添加:
2 X- _! d* Z2 R$ S6 B* ?   【winshare】3 W) z' z5 z1 l( w6 A! M
   comment = Shared Folder with username and password
- h. P+ t, e" c   path = /home/user1/share
4 F3 @# a# @3 q, m5 _8 F   public = yes& d! I! B; e: X4 Z) }( G
   writable = yes0 s. s6 T' H8 X! q% Y. F
   valid users = network: C4 i1 C. ]) b; h8 O7 h2 A
   create mask = 0700+ j+ i! Y1 Q1 j  R* w
   directory mask = 07004 @" w! I7 X( r9 j
   force user = nobody8 N  Q* n0 x" {- ^7 Q
   force group = nogroup
6 i/ B3 Q2 z0 {1 z* H" Q! O2 K   available = yes
/ C+ A2 n: P" m% f* s   browseable = yes6 H- l9 s9 V4 Z4 v' e6 d5 P) |
(4)添加 network 这个网络访问帐户$ N( A0 ?( F2 n, @9 \
代码:6 z1 R- G3 `8 j9 y8 b5 o$ B
   sudo useradd network0 P- d5 {+ r; R
   sudo smbpasswd -a network4 N8 I) _1 j  r
   sudo gedit /etc/samba/smbusers
* K5 g& ?5 S+ j! F% S: R添加:
2 _0 r7 @" Z8 M: D7 X! `   system_username = “shijian”
# n4 v% N# F0 d& ^" a; q" [1 F   network = "network"
: L2 N1 V1 V" _! R(5)重启 samba
1 T$ C) ]: X4 I- C& m" y   sudo /etc/init.d/samba restart( ~2 D) E" j' M8 i. j- \8 Y% b; n) e
这样就可以在其他 windows PC 下访问本机 ubuntu 的共享
3 X! j8 T9 r- k0 {: m+ g& A" [(6)ubuntu 访问其他 windows 的方法. Y9 H$ x+ r. E3 F
使用快捷键 ALT+F2.. @5 |! M3 r( H0 o% ]( |
输入"smb://IP 地址",回车
' M+ ?7 i; {; K9 o+ R. f* c5 b3. 配置 NFS# j3 d# v7 r2 \  k  b5 n) c
(1)安装 NFS
! |) ^  h" N4 o: J' dDebian/Ubuntu 上默认是没有安装 NFS 服务器的,首先要安装 NFS 服务程序:( h; F: M; Y$ @( ?; A
   sudo apt-get install nfs-kernel-server4 M  X. m+ c, G' z/ D# m
(安装 nfs-kernel-server 时,apt 会自动安装 nfs-common 和 portmap)
- ?+ E$ n" Z  {, E. j( j5 z: I(2)配置/etc/exports
& @9 ~- o6 J& `NFS 挂载目录及权限由/etc/exports 文件定义
7 ?: }' w8 o. H5 d& \, y: z0 G7 s将/armsys2440/root 目录让 192.168.0.*的 IP 共享, 则在该文件末尾添加下列语句:( x0 }3 A% D$ R; ?' e4 t$ t
   /armsys2440/root 192.168.2.*(rw,sync,no_root_squash)
+ G2 y% v5 _6 ~2 z6 J或者:   /armsys2440/root 192.168.0.0/24(rw,sync,no_root_squash)
5 Z, [" V( x1 \3 o运行   sudo exportfs -r- z; i: e5 a3 |# G! E  N8 {
更新运行   sudo /etc/init.d/nfs-kernel-server restart0 W' }7 h, u' g
重启 nfs 服务8 [# ^" c0 k( i5 ?4 v% G/ w2 K
(3)测试 NFS
5 U' @! b: |" R- _0 c4 l6 v$ q可以尝试一下挂载本地磁盘(假设本地主机 IP 地址为:192.168.0.1,将/home/zp/share 挂载到/mnt), z3 I! ]. X. z6 `
   sudo mount -t nfs 192.168.0.1: /armsys2440/root /mnt3 q' [+ ]! e- P
运行 $ df 看看结果   sudo umount /mnt0 ]/ \) ?+ u2 m& J4 Q. G, l
可以使用一定的参数:
4 O, i" Q( Q+ s# f   mount -o nolock,rsize=1024,wsize=1024,timeo=15 192.168.2.130:/tmp/ /tmp/
$ _/ ]' g5 o; O% m5 m( x(4)客户端挂载远程共享   mount -t nfs 192.168.0.***:/home/***/share /mnt/share
$ m  c& d- B0 S; \, ~) b4. 配置 minicom  S; z  U' D8 u! N8 ]# I' }9 G
安装 minicom$ v; O  }& C" I
   sudo apt-get install minicom
& ~, N9 `6 B( K8 R' _1 |四、交叉编译环境设置1 f! V7 l  U! G. O" w& P
安装交叉编译器& U4 \9 B; g# V
   sudo mkdir /us r/local/arm% D) q/ z" G9 s) d8 I  R# t- u2 ]
   cd /user/local/arm0 n0 ~/ m9 ^7 F: S2 Y
   sudo tar zxvf /home/usr/arm-linux-toolchains.tgz8 H, q1 J" B3 \& }
请在执行完成后查看是否存在/usr/local/arm 文件夹。1 J) w5 z& W1 {, J6 l# T. l' u9 G
把交叉编译器的路径加入到 PATH,以方便使用:0 d6 \9 ?) d6 p$ s6 m/ X  u7 {
   sudo vi /etc/bash_bashrc" h- ]5 s9 r. n( B4 t- z
加入如下代码:4 ?3 h( V1 s. T" u
   if 【 -d /usr/local/arm 】 ; then
! a1 O3 P/ U$ S& y   PATH=/usr/local/arm/2.95.3/bin:"${PATH}"
( X  d2 f: V$ u% Y5 Q   fi( s, ]/ r2 D2 |$ p3 b, c
五、uboot
4 e# O0 O5 o% L; n( |$ E/ ~# q    uboot,内核,文件系统
5 p4 h* K1 ?/ D3 K5 d$ ]   1. uboot 编译
: ~# z7 @0 w5 ], B4 ?5 D( M( N建立 armsys2440 目录,将光盘中的 Linux / u-boot / uboot.tar.gz 拷贝到 armsys2440 下,并解压缩:
" J( z* z  J' ~$ A   cd /armsys2440
3 T" r# a0 H5 \' o: W9 X2 K6 \   tar xvzf uboot.tar.gz
# }1 Z! x. K7 j得到 uboot 目录,如果你需要编译它,按照以下步骤:
  ^$ G( P3 V, N3 A* U   cd uboot. C5 l  W$ B) g( [
   make distclean
* P5 V& K& g$ u8 K) f   make smdk2440_config0 c3 b4 O! ?: O9 J; v9 r$ w
   make
" h- i+ _  a. J# v; {, u8 Q    2. 内核编译
; p) N# ^; P9 Y3 ?7 }* _: ^) T(1)解压" R& F4 X3 N2 d! B; j7 e" N
   cd armsys2440' ?! _) @; G9 w" {0 g
   tar xzvf /mnt/cdrom/linux/kernel/kernel-armsys2440-xxxxxx.tgz1 C# `3 ]' I8 r( f/ {4 t% V# _
(2)配置命令行如下:
4 x/ }4 J; N$ z1 c& a& P   cd /armsys2440/kernel2440
8 Y% s& @% B: Y0 h   make menuconfig
, u* Z4 _3 E, h! j2 e* F, i(3)编译
8 Z) D: J  l( x) i命令行如下:% t* n$ O* {4 \$ m: L" H' l" L6 F+ `
   make clean  E- x) C' `2 Q+ R! C8 X  }3 [
   make dep
3 o5 f+ ]1 e# |3 l4 b( }   make zImage
  w8 w" l4 h$ ~1 ]; }编译结束后将在 kernel/arch/arm/boot 和/tftpboot 目录下得到 linux 内核压缩映像文件:zImage。
2 ?0 `, \% q& X 3.文件系统9 e" w6 L8 K0 u( A
新建/armsys2440/root 目录,将光盘中 Linux/rootfilesystem/ root_armsys2440_0.1_yaffs.tgz 压缩文件拷贝到这个目录下,然后再解压缩,得到根文件系统所需要目录。将 root_armsys2440_0.1.tgz 压缩文件更名为 root_armsys.tgz0 d' z& v, c* T: W5 P$ n
+ s' q3 l) \% K' [  P) `

该用户从未签到

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

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-10-6 13:15 , Processed in 0.156250 second(s), 23 queries , Gzip On.

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

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

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