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

linux-arm开发环境简单配置

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
linux-ARM开发环境简单配置8 ?9 p' ~% C( I+ n- w
关于linux-arm开发环境简单配置是ARM学习的第一步,很多初学者会在这问题上纠结很久都不能配置好开发环境。推荐大家看一下韦东山视频,讲得很详细,代码基本上都会给你解释(很多视频都不会给你解释),适合初学者。" r$ W( h; b4 w6 U' i( k
fedora8开发环境简单配置
+ g+ Z' G% {9 ~& a5 d3 s' u/ ^- Slinux-arm开发环境简单配置 % m6 D* h; R3 H3 l+ O
Window上:$ K) @% ^( @( h$ P/ b$ I
安装终端软件 SecureCRT,putty等( \; ~6 {, P: a! z2 l
安装ftp软件 cutftp等
, P1 v2 b1 ]9 ~配置串口工具 超级终端2 Q& A! u- j7 B+ z. m4 P5 Z
安装tftp服务,也可以使用linux上的tftp。
/ ]. x0 {) T0 N& p: v( C" j+ ylinux上:, }' `' t. t& R. B( F: u
1,ssh
+ |* W; H  p( o3 J4 K默认情况下,ssh在fedora8下应该是安装的,那么就无需安装了。8 x$ y+ y  P& ~! d, z
可以如下查询:
+ q( l, S! V5 X; M8 j# L+ n  jrpm -qa openssh. j' k) Q" ~  V6 ?
如果显示openssh-4.7p1-4.fc8一类的信息表示安装了,如果没有显示,那就直接使用yum install openssh直接安装即可。
; ~. \; V) ]% o) n5 x7 E2 H然后需要在Firewall把ssh的端口开放。也可以直接修改 /etc/sysconfig/iptables, 在其中加入
/ w- g7 n, s. y* r-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT 即可
# V+ `7 b/ b- M/ `* p' Y  q然后 # service sshd restart 重启即可。
$ m5 @* P" q& [: |# [- k7 F2,vnc
" x7 q$ s. a: z切换到root用户* v7 U: e1 y$ w% \4 g/ ?
# yum install vnc-server 安装
' u8 g! a+ h/ O; T* r8 t/ B3 Z8 i# vim /etc/sysconfig/vncservers
7 Q1 d( ~- M6 y) Q, G* n" e5 P加入+ c' R# q5 Q) a& D9 V
VNCSERVERS="1:misswhile") W/ P5 a6 f  c3 ^. x$ J8 A
VNCSERVERARGS【1】="-geometry 1024x768 -depth 16" 等. ^7 m9 d5 O) D3 p3 e
加入密码如下:
; P" r9 H$ `+ C4 `6 K' D $ vncpasswd9 q/ a! u2 n( ]
$ Password:. h% @8 |1 h4 z! r
$ Verify:- t, `' B) R+ G! ?
启动服务 #service vncserver start ( Z6 F1 T; M; ~2 f1 h
修改 ~/.vnc/xstartup,使支持窗口8 }+ h; F+ k6 G" Z
twm & 注释掉
! G1 d& M: p$ n6 z0 G$ o加入. `/ a6 h; s3 S: A% h2 u, R2 e: l
exec gnome-session &  
% R! b4 B8 A5 C: u开放端口:iptables 加入   -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 5901 -j ACCEPT
+ u; _8 \4 y( V  ]* q. E6 Z重启服务即可。( W( `: i5 o- F
3,samb8 t5 {6 E) S. O' `0 f
# yum -y install samba+ U# y: o2 e! R. Y( {
# yum -y install samba-client) u: u7 m4 b2 V$ f& _4 I& }2 d
# yum -y install system-config-samba: A* b1 L3 P) S
# chkconfig smb on
$ M' ?9 U" W! J1 D, @然后 Desktop -> System Settings -> Administration-> Samba 设置共享的目录 和用户,读写属性等即可。" E* @7 i0 Z; J6 T
4,tftp  过程和上面都大同小异...* m4 I- j! e% m( K/ V+ C! f
5,nfs 安装过程一样,需要注意的是需要开放好几个端口,否则无法网络挂载,如果对安全没特殊要求,那就关闭防火墙即可。
! `! w$ e! \% A) i3 p完成以上这些步骤,在Windows上通过网上邻居访问linux的samba文件夹,进行文件的编辑拷贝等。3 q9 a; e# V' ^% w5 O! j7 f! ]
在Windows上通过putty,SecureCRT,VNC client等访问控制linux主机了。: G9 n' o6 G8 a9 s0 G, G: I2 H
在Windows上通过各终端在linux上交叉编译u-boot,linux kernel,制作根文件系统等
  v3 i4 Y2 O- f( O* rarm开发板可以使用网络挂载linux上的根文件系统等。1 l( g: `% [# t( G4 E4 G8 X
当然,其实只用一台linux主机即可完成,不过通过对于linux上编辑工具不太熟悉的时候,通过Windows也工具也不错。
7 C8 J& G" B2 w) c- F, d# n1 aUbuntu开发环境简单配置
0 l* p8 S6 u" c. f% H一、中文环境设置* [/ ~! C4 Y4 r! k8 t! [: a" j
1. 设置 ubuntu 中文现实% p7 l# ~9 z+ l% m% j5 K
点击最上面菜单 的 系统 -> 系统管理 -> 语言支持(英文菜单则是 System -> Administration ->Language Support),在列表中选择 Chinese 条目。同时将默认语言修改为 Chinese(中国) ,按确定关闭设置程序。
8 U  r1 G- ]6 M0 W* X  P2. 配置字体 sudo fontconfig-voodoo -f -s zh_CN: T+ B' i6 Q2 N6 W5 ]1 ]6 v, u0 |
3. 安装 fcitx 输入法% }# l2 l. ?9 D6 s2 x- T1 p0 q& h
    sudo apt-get install im-switch libapt-pkg-perl fcitx
! M; N3 O( O/ g$ P  c. Q: L0 B    sudo im-switch -s fcitx
/ k. X0 U. v  N! h9 i8 R4. PDF 浏览器 sudo apt-get install acroread2 O$ d9 `) C/ P% Z+ R, e
二、ubuntu 开发环境设置     3 G" \; c) Z: E  W$ H
1. 安裝 C/C++的 Man 手冊,。
1 c# S7 q: X' _3 }    sudo apt-get install manpages-dev
4 S6 C9 o. N. Z( d$ V5 P" f- ]* j2. 安裝 gcc,g++,make$ I& P" p" P, r4 k9 x+ b0 z
    sudo apt-get install build-essential; i9 C9 p/ [; B) X
3. 安裝头文件和库" ?( j7 m! D5 Q; \& A( K$ Q
    sudo apt-get install libc6-dev libstdc++6-4.0-dev! o$ o8 V* o* J, O9 H. e$ D5 d/ F
4. 安装 libncurses5-dev* H4 \1 |2 y$ V( \
    sudo apt-get install libncurses5-dev4 p/ W. u, o4 e6 f$ t! Z+ `
5. 安装 gdb 调试器. \: _$ K7 V) }. v  U" R7 Z' v
    sudo apt-get install gdb' c6 d: V. y6 Z. E! E0 u& I# p
6. 安装安装图形界面 ddd 调试器* a) @& h9 i/ n- E# F
    sudo apt-get install ddd: `$ [2 x3 N* P3 L
7. 安装 automake 工具
& |8 y. `  |" i0 a+ n) v    sudo apt-get install automake
: ]( t3 q: f- H* X) \/ f6 U/ m    sudo apt-get install autoconf6 |4 T; B7 `: w% V' a. U' L, n
    sudo apt-get install autogen
- H  }- w) L+ t*autoconf 是一个用于生成可以自动地配置软件源代码包以适应多种 UNIX 类系统的 shell 脚本的工具。0 w2 i- \" m! R' J
*automake 是一个从文件 Makefile.am 自动生成 Makefile.in 的工具。3 R& [, g; E4 D5 `4 x3 ~) k$ n+ e" T
8. 安装 indent    sudo apt-get install indent
% j' C+ }3 @8 r: m    调整 C 原始代码文件的格式。: S2 k6 H; [$ Z' x) Q4 K& m
    sudo apt-get install libtool( _! B$ u4 s9 S) Z
    GNU libtool 是一个通用库支持脚本,将使用动态库的复杂性隐藏在统一、可移植的接口中。
2 L- C) l) q/ R9 z4 @% L5 z( _9. 安装文档5 P4 W2 [# s- p3 P8 w' w; p
    sudo apt-get install binutils-doc cpp-doc gcc-4.0-doc gcc-doc glibc-doc libstdc++6-4.0-doc stl-manual
) S: u7 q/ u' Zcpp-4.0-doc4 w& [" Z6 ~. R) v! i- u5 m
10. 安装编辑器
/ u# m$ u. ]; S& D" y    sudo apt-get install emacs21
3 |9 F5 [+ W( j# B* |; j3 V7 o三、ubuntu 文件共享、传输设置    ' h) p, |* Q9 x- c* e
1. 配置 tftp( t- c7 `) H, l3 [+ l' {; \5 v
(1)安装程序    sudo apt-get install tftp tftpd
! |- f8 ]0 j* W7 c) ]! S 前者是客户端,后者是服务程序。
0 i0 S4 _3 A9 q9 J- ftftp 是要 inetd 来控制的, ubuntu 或 debian 类的系统,默认是没有安装 inetd 的,安装如下:    sudo apt-get install netkit-inetd2 _, m" N0 _& a
(2)在/目录下建一个 tftpboot, 把属性改成 777。
0 W! p- @! q$ T7 Z7 M3 L    cd /3 B  d; N$ U0 y: w2 ]+ b6 ]
    sudo mkdir tftpboot
0 v: U3 A, C4 F8 A1 l0 m: a    sudo chmod 777 tftpboot
" p; W( N7 r( B4 Z(3)修改/etc/inetd.conf" {; }6 M. \7 X% G4 l
    tftp dgram udp wait nobody /usr/sbin/tcpd /usr/sbin/in.tftpd /tftpboot
; ^1 E# T$ M$ i7 ]3 h- S6 ]# z(4)重新加载 inetd 进程2 m" D. B: C: h# E/ ~' p
    sudo /etc/init.d/inetd reload; g; a3 J7 _$ z2 n6 ?2 s9 D
(5)测试2 M. \7 V" D2 Y# r0 w3 x5 U( _
    在/tftpboot 文件夹下新建立一个文件
1 n3 J4 I  C" \0 w2 m# ~1 T0 W' L    touch aaa; f. g6 @2 w5 a6 N7 k
    进入用户文件夹  t6 @) z6 P+ G: a1 F5 l
    cd /home/user1/+ F1 C: m5 k7 f4 _
    tftp localhost
) p0 r" W7 G3 c2 L2 [/ m/ H  [    tftp> get aaa9 a( q' v7 h# u) ^3 m2 r
2. 配置 Samba
" \; I! s7 l1 r% e(1)安装 samba
: H3 e7 [8 F8 Q; g& w. Q/ K, ]   sudo apt-get install samba
8 K- c: j( g' C2 ^(2)创建和配置共享文件夹3 c' A. f- x4 B: F' s* a# q& `4 t
   mkdir /home/user1/share' ?- c& h3 h8 y% ~( S
   chmod 777 /home/ user1/share
* X# r5 N+ e) S8 p0 V7 R(3)备份并编辑 smb.conf 允许网络用户访问
& H5 ]4 j% R; y, g% W   sudo cp /etc/samba/smb.conf /etc/samba/smb.conf_backup
8 K: i0 t! K" @" F, F: h, ?' g   sudo gedit /etc/samba/smb.conf% o; b3 P3 X0 s( Y
找到 security = user" t$ {$ a! L# k9 F0 b' K  |
替换为
& K. K) W. H, ^   # security = user5 G1 J0 E* n8 t/ @, x& C
   security = user
8 W3 M) L9 @0 b7 P- S   username map = /etc/samba/smbusers9 A/ L6 h; I2 `8 }! i" d
找到" y: b$ Q$ X$ @& W" J
   workgroup = MSHOME. Q1 G! l5 b+ w4 G* E
替换为
/ B" ~7 C8 @" K0 \5 o2 {7 k   workgroup = WORKGROUP
2 J" w8 G# Q" {' a2 }  v$ \   display charset = UTF-8
/ q; J* {/ X. P, s1 S- w   unix charset = UTF-8# M! |" W7 h7 I- z) {, H
   dos charset = cp936
: b- ?: B" R. e3 ^! h! ^在最后添加:) I: m2 j+ T; J2 i. o
   【winshare】: M, I( c" D- h, g
   comment = Shared Folder with username and password# {6 [, Q1 x" D! m$ W7 e
   path = /home/user1/share
* F- s  L0 Q6 F. [' ?1 _   public = yes
4 c/ r0 `4 O" Y, t* U/ D3 K   writable = yes8 f' z  s) ]9 E! Z% Z9 d
   valid users = network
+ p- `! J# Z+ I2 |! Z" W   create mask = 0700
3 E- {: {" w+ o4 O# t' s; Y   directory mask = 0700
  v  e7 }1 P" o: H' ~# |3 _   force user = nobody% l2 ^$ r. v, f0 q6 E
   force group = nogroup
5 G9 g1 l0 j7 e   available = yes% A- d3 H6 \0 t) u- r/ l
   browseable = yes0 t+ ]6 e* j6 e
(4)添加 network 这个网络访问帐户
; q" p3 }9 z. s4 H代码:5 D9 N# H: V: a* R1 M
   sudo useradd network' N7 b" b8 K* L7 j; I5 B  ]' z
   sudo smbpasswd -a network0 `4 @5 D9 c: x0 I2 K; o
   sudo gedit /etc/samba/smbusers
) y0 r) U0 _6 ~/ z9 |# j) m2 |添加:
/ H4 w0 B8 h7 K/ [4 }% x) P0 i   system_username = “shijian”
1 v1 J+ x6 X  M$ B; `  G   network = "network"
2 G! ^8 d$ Y5 Y* A(5)重启 samba; ~3 B1 s( s! r# K. V
   sudo /etc/init.d/samba restart
# N0 a0 L  J0 A3 h7 M# G这样就可以在其他 windows PC 下访问本机 ubuntu 的共享
* t% G" ~, ]! l* ^7 e/ Q& c(6)ubuntu 访问其他 windows 的方法" ~; M) I4 O0 x9 j$ N; d: O
使用快捷键 ALT+F2.1 b4 u  F4 y. A2 G
输入"smb://IP 地址",回车2 E. s* }" [# |  z) G
3. 配置 NFS
3 |/ d2 B7 P; t$ R(1)安装 NFS
0 Q4 L: @. N$ q/ F$ ^0 m7 x% r  CDebian/Ubuntu 上默认是没有安装 NFS 服务器的,首先要安装 NFS 服务程序:
! t& Z0 c$ b2 d   sudo apt-get install nfs-kernel-server
& ~! ]0 A% }3 I# J$ u(安装 nfs-kernel-server 时,apt 会自动安装 nfs-common 和 portmap)
+ E# n5 Z" |0 }+ y' _(2)配置/etc/exports
) h$ D' O, z9 e8 h5 D5 z! r8 yNFS 挂载目录及权限由/etc/exports 文件定义; [; ?( E( ^" j" F4 W9 A! s1 h
将/armsys2440/root 目录让 192.168.0.*的 IP 共享, 则在该文件末尾添加下列语句:
0 @; S! @" Z% \$ `! \. N   /armsys2440/root 192.168.2.*(rw,sync,no_root_squash)
& K7 z+ {5 W7 T或者:   /armsys2440/root 192.168.0.0/24(rw,sync,no_root_squash)
( c; l- l6 N2 X' n" \运行   sudo exportfs -r6 ?7 ^, N+ V! Z4 Y7 Q9 A
更新运行   sudo /etc/init.d/nfs-kernel-server restart
: Y& i0 f0 z) C" ?重启 nfs 服务4 E5 B- ^$ f8 E. E+ W4 ^
(3)测试 NFS! k4 X- A* K5 ]7 i% m
可以尝试一下挂载本地磁盘(假设本地主机 IP 地址为:192.168.0.1,将/home/zp/share 挂载到/mnt)& Y5 W# V, r8 f, |% u- \) I
   sudo mount -t nfs 192.168.0.1: /armsys2440/root /mnt
* p* T1 Y9 H/ q* @4 I0 T' N" A3 G运行 $ df 看看结果   sudo umount /mnt8 Y, h$ F0 g) U
可以使用一定的参数:
$ c5 y, l# }$ V5 h* t   mount -o nolock,rsize=1024,wsize=1024,timeo=15 192.168.2.130:/tmp/ /tmp/* L2 a! X& G# o
(4)客户端挂载远程共享   mount -t nfs 192.168.0.***:/home/***/share /mnt/share
& \+ U( J) b' U1 m4. 配置 minicom
* a' C+ \- i# s安装 minicom& \6 ^! S1 ?) g
   sudo apt-get install minicom8 z& t& {9 t: c
四、交叉编译环境设置) X) K. ^7 m" w7 Z; L3 h
安装交叉编译器
4 ~4 m1 Y. d. ^) i! S: t   sudo mkdir /us r/local/arm
) r& ]8 x, {% }4 J- Y0 I- M   cd /user/local/arm
" C0 L+ w/ ~$ e5 Q' u. B' @   sudo tar zxvf /home/usr/arm-linux-toolchains.tgz7 I; Z/ I) ]7 u+ {) v$ b) J& Y6 g
请在执行完成后查看是否存在/usr/local/arm 文件夹。
. a" G+ h$ y5 x* V( P1 ]& [, N把交叉编译器的路径加入到 PATH,以方便使用:7 q1 O7 Y' I8 o$ z6 c/ l
   sudo vi /etc/bash_bashrc6 {& t- J+ {( D' P& U
加入如下代码:
3 }4 m: b- v2 u$ {& D0 M& p   if 【 -d /usr/local/arm 】 ; then$ b- w. f/ e8 G4 t" D
   PATH=/usr/local/arm/2.95.3/bin:"${PATH}"
; l. p0 Z$ |* o4 W   fi8 ?0 Z' O, I! P/ f; J
五、uboot$ e* }9 O- N9 _' p1 Y. R
    uboot,内核,文件系统1 p6 W- T& P. {$ Y+ }
   1. uboot 编译
3 j  m1 S6 d- S; M3 O# j1 N建立 armsys2440 目录,将光盘中的 Linux / u-boot / uboot.tar.gz 拷贝到 armsys2440 下,并解压缩:8 j+ o# l( D2 W! O; n' s' @( j
   cd /armsys24405 T. ?7 I. i) f% l4 c* X
   tar xvzf uboot.tar.gz
, T/ G0 h1 H8 g0 a' ]4 ?, `( g得到 uboot 目录,如果你需要编译它,按照以下步骤:" R/ P& p5 O$ `9 O
   cd uboot- ?# ~5 o2 X, x' U4 z& T
   make distclean. U* `$ i2 [6 e0 u  k6 h
   make smdk2440_config
' x9 y( K* j4 c. N7 {5 c   make# b" K4 U  C$ m
    2. 内核编译* F' a/ ?' c: }& ]% Z
(1)解压# l5 h( g9 D0 l, ^4 b8 d
   cd armsys2440! j$ `/ E3 y1 U5 O
   tar xzvf /mnt/cdrom/linux/kernel/kernel-armsys2440-xxxxxx.tgz
  L4 r6 w& \! X6 |6 S/ C0 S(2)配置命令行如下:! H& K  B. _; h6 ^* V2 I
   cd /armsys2440/kernel2440
3 z+ }1 B& e( E0 G. S   make menuconfig
4 u2 ^" Q, Z* w( L( c! S(3)编译
7 D3 a8 C: Y+ n. C0 _1 P; P: V命令行如下:+ v. N' t: H" c
   make clean
( I' M& f# F5 u: u7 i7 ]7 s$ c   make dep
0 ]1 g  P/ t. w3 ^( E9 x9 M   make zImage
6 Z6 p$ ^  R, Z$ G1 l编译结束后将在 kernel/arch/arm/boot 和/tftpboot 目录下得到 linux 内核压缩映像文件:zImage。3 G7 Z9 k$ X+ `2 ~- m2 b5 j
3.文件系统
" Z( K% r6 {) s  |' J8 T新建/armsys2440/root 目录,将光盘中 Linux/rootfilesystem/ root_armsys2440_0.1_yaffs.tgz 压缩文件拷贝到这个目录下,然后再解压缩,得到根文件系统所需要目录。将 root_armsys2440_0.1.tgz 压缩文件更名为 root_armsys.tgz
% E% I& B( h+ R8 k6 Q/ D% d& t% E7 e# ^$ U) y) B5 i

该用户从未签到

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

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-6-13 03:51 , Processed in 0.093750 second(s), 23 queries , Gzip On.

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

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

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