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

linux-arm开发环境简单配置

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
linux-ARM开发环境简单配置" z, N, |; M2 H6 M; [/ R
关于linux-arm开发环境简单配置是ARM学习的第一步,很多初学者会在这问题上纠结很久都不能配置好开发环境。推荐大家看一下韦东山视频,讲得很详细,代码基本上都会给你解释(很多视频都不会给你解释),适合初学者。
# ^  i, a! ~8 C1 Zfedora8开发环境简单配置
6 {2 n, O! T& C2 nlinux-arm开发环境简单配置
9 p- q. M+ C; rWindow上:- M* t; M% A; N+ |, b
安装终端软件 SecureCRT,putty等9 u" L2 V) H' i+ i0 B9 ~3 H+ {
安装ftp软件 cutftp等
# o  [' n6 u4 j5 K. b! D配置串口工具 超级终端
+ D3 k+ Y0 z1 o2 G/ E3 ]9 f6 R安装tftp服务,也可以使用linux上的tftp。8 X. y4 x; K* F, D% x
linux上:
8 P0 r3 `1 z3 O; d/ \) l0 C* [1,ssh
7 t: Y5 q' l+ v" N默认情况下,ssh在fedora8下应该是安装的,那么就无需安装了。' W1 P: B, ?7 q5 \) L! l
可以如下查询:3 U) e8 S, e& ?$ O2 N
rpm -qa openssh! i7 l- o3 |3 t+ L
如果显示openssh-4.7p1-4.fc8一类的信息表示安装了,如果没有显示,那就直接使用yum install openssh直接安装即可。# U  d( f& m2 U5 c
然后需要在Firewall把ssh的端口开放。也可以直接修改 /etc/sysconfig/iptables, 在其中加入 , t0 |/ x6 J" R) j' f
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT 即可( P: N1 q$ N9 X( i% Z" q  D' k# b- d
然后 # service sshd restart 重启即可。
+ N% U. Q7 u* y( K6 U4 ?2,vnc2 t5 B  t' ~) Q/ j! R8 `
切换到root用户
9 Y) Q3 {9 ^# d  I1 y4 D) B# yum install vnc-server 安装
! |& y7 T/ R6 |& v- h2 o4 h- M# vim /etc/sysconfig/vncservers 6 n, T% W0 i3 A  E2 G2 f: Q
加入
1 x' t) L) D! |9 h/ s! z/ `$ \  ]VNCSERVERS="1:misswhile"
: F. s; R4 L9 T0 G, U5 \2 \VNCSERVERARGS【1】="-geometry 1024x768 -depth 16" 等' J* ~9 d/ g9 [0 m3 _
加入密码如下:
9 \( e: `( n' |2 q% p" M/ U $ vncpasswd
; _/ M0 ^6 F2 r% w/ `" E $ Password:
, m) E$ a7 h: W  ? $ Verify:& ^. S6 L4 {: [6 ]) ~/ ~
启动服务 #service vncserver start
( T6 \& r0 q9 t修改 ~/.vnc/xstartup,使支持窗口3 H9 U; s. d6 b( r
twm & 注释掉
; E7 ^4 g* ?0 Y/ d加入8 |1 I: \% j7 G- ~' R, E
exec gnome-session &  
- I- z6 t0 a: ]9 b, y, v% t) j开放端口:iptables 加入   -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 5901 -j ACCEPT6 L; I0 {2 n; k8 j& F3 \* W
重启服务即可。
9 D: n' `. ~' e( w3,samb& A6 ^  \* T' |, g  n1 f
# yum -y install samba
& m2 X( L# Z' q2 s- w6 k* K) a# yum -y install samba-client  A' ?$ W' s! `6 Q( a5 M
# yum -y install system-config-samba. b9 m# P2 o6 D, W) y7 e9 c* v
# chkconfig smb on* Z: k5 h, X. d5 Q& V! J  V
然后 Desktop -> System Settings -> Administration-> Samba 设置共享的目录 和用户,读写属性等即可。7 Z  ^  O$ F8 s8 K0 `% O/ `
4,tftp  过程和上面都大同小异...
, J7 B4 g* ~1 T- K6 s5,nfs 安装过程一样,需要注意的是需要开放好几个端口,否则无法网络挂载,如果对安全没特殊要求,那就关闭防火墙即可。
6 e8 s( {) ^$ `( v5 G完成以上这些步骤,在Windows上通过网上邻居访问linux的samba文件夹,进行文件的编辑拷贝等。: y4 b; o: r5 g
在Windows上通过putty,SecureCRT,VNC client等访问控制linux主机了。$ Z3 v( K) i, c$ e! ^$ g
在Windows上通过各终端在linux上交叉编译u-boot,linux kernel,制作根文件系统等
5 T# I- m' p; K" S" ~: ?arm开发板可以使用网络挂载linux上的根文件系统等。7 ^! e3 l- y' J8 g/ h
当然,其实只用一台linux主机即可完成,不过通过对于linux上编辑工具不太熟悉的时候,通过Windows也工具也不错。8 a- u3 N8 t: G& |; m# T
Ubuntu开发环境简单配置
  T! m3 {: P# d6 E4 \+ d, G& ?  E0 j一、中文环境设置* `# _, o3 l4 E9 s+ j3 g0 F
1. 设置 ubuntu 中文现实. t+ Q! v& R3 j. \- O; W
点击最上面菜单 的 系统 -> 系统管理 -> 语言支持(英文菜单则是 System -> Administration ->Language Support),在列表中选择 Chinese 条目。同时将默认语言修改为 Chinese(中国) ,按确定关闭设置程序。# B) B) h8 n3 W3 _8 |8 _  D
2. 配置字体 sudo fontconfig-voodoo -f -s zh_CN5 l5 H) w+ m2 L9 Q" D
3. 安装 fcitx 输入法& h- `& A$ [) s
    sudo apt-get install im-switch libapt-pkg-perl fcitx# H7 T; t: H8 _# K, L, t0 O
    sudo im-switch -s fcitx
* b, x3 B- ]3 X! }  y, w: z5 o. c4. PDF 浏览器 sudo apt-get install acroread6 l8 T% S. i" E& x% d# H& {
二、ubuntu 开发环境设置     0 [5 c# g* v+ g( _  I8 L
1. 安裝 C/C++的 Man 手冊,。
" O9 M; Z* G5 u: s6 I: A    sudo apt-get install manpages-dev
( d  o; _8 O4 P6 N+ _, Z, V2. 安裝 gcc,g++,make
8 a$ ~' ~9 [. F1 n. @. C0 I    sudo apt-get install build-essential" G; w. ^% `0 c" t3 H. N1 _8 P
3. 安裝头文件和库) U  z" Q# B* ]
    sudo apt-get install libc6-dev libstdc++6-4.0-dev
6 T% v3 S; D2 x7 ^# y" R4. 安装 libncurses5-dev* V1 V) p  ?# O& e# r9 C
    sudo apt-get install libncurses5-dev
4 E* K" R8 Y. ~+ B* _; R0 p! ~1 T  E5. 安装 gdb 调试器
0 E$ s, B- z/ }  P4 l& f    sudo apt-get install gdb3 d: D( {( O1 H4 g
6. 安装安装图形界面 ddd 调试器
/ U- g+ i5 x7 C  o0 w    sudo apt-get install ddd
/ j! J/ H2 b1 M, n% @7. 安装 automake 工具
  J4 X- i  F  `5 j( e0 w    sudo apt-get install automake
( ^1 Q6 i2 ^/ B7 h2 g    sudo apt-get install autoconf( i2 o9 F& v0 @7 l' M
    sudo apt-get install autogen/ @. r) u( K' y2 c/ }/ v8 U
*autoconf 是一个用于生成可以自动地配置软件源代码包以适应多种 UNIX 类系统的 shell 脚本的工具。
) Z- }+ z; d# I# j8 t! ]# `& X*automake 是一个从文件 Makefile.am 自动生成 Makefile.in 的工具。8 Z  o: u# q& g: ?: Y1 P) S
8. 安装 indent    sudo apt-get install indent, h' s1 G1 K  j& g7 d  k# E
    调整 C 原始代码文件的格式。. {% y3 t+ g" l
    sudo apt-get install libtool5 c) b0 r; N3 g) a, q1 t9 I
    GNU libtool 是一个通用库支持脚本,将使用动态库的复杂性隐藏在统一、可移植的接口中。; N: y6 {$ [4 X. y5 Q6 U' t
9. 安装文档
1 m: N9 G/ e' D: f2 b    sudo apt-get install binutils-doc cpp-doc gcc-4.0-doc gcc-doc glibc-doc libstdc++6-4.0-doc stl-manual9 l, y) S7 U8 r! W# [
cpp-4.0-doc) o  k1 N5 Q4 `0 w* T" Z- k
10. 安装编辑器4 s5 f: d/ T2 f* n8 N, [
    sudo apt-get install emacs21) B! n6 D% p$ X/ W8 w# e& g
三、ubuntu 文件共享、传输设置    9 ]9 |$ J5 n2 g9 z# s
1. 配置 tftp
# }4 ^, Z5 F1 R  c. d4 [8 |(1)安装程序    sudo apt-get install tftp tftpd
  T& I5 \0 Q6 M" [; H7 I$ s 前者是客户端,后者是服务程序。1 y& K. d& Y8 H/ u
tftp 是要 inetd 来控制的, ubuntu 或 debian 类的系统,默认是没有安装 inetd 的,安装如下:    sudo apt-get install netkit-inetd7 D6 v* M0 |% A4 s0 g4 i& m
(2)在/目录下建一个 tftpboot, 把属性改成 777。0 q1 q. C  [& J: @+ H
    cd /
5 D* |4 h% c# V# l% D: j: o    sudo mkdir tftpboot
; w" m* a! l- v+ |# d5 e    sudo chmod 777 tftpboot3 L6 K1 a# ^- z; f8 j- z
(3)修改/etc/inetd.conf
1 Z# ?- M# Q* c" `8 Z$ t    tftp dgram udp wait nobody /usr/sbin/tcpd /usr/sbin/in.tftpd /tftpboot
& y4 S4 o& w9 W- T& k5 N) b& `# }(4)重新加载 inetd 进程
; d6 @( \" n8 r: o* T    sudo /etc/init.d/inetd reload% P' b+ r- _: A* `; m0 V! P
(5)测试
& T; j' t6 O7 p    在/tftpboot 文件夹下新建立一个文件
7 g* H2 L% Q/ C" s$ z) t    touch aaa$ \7 k. g  p6 Q* l8 l
    进入用户文件夹
; [' u. `9 Y' ^: x    cd /home/user1/
6 q" q: [' M$ B, o! S- X$ ~    tftp localhost5 G3 M  y  O! j1 ^" W9 u# ?' d
    tftp> get aaa
0 }5 `+ e6 j2 S2 q- T2. 配置 Samba: N, |5 K# b$ f/ h4 D9 d
(1)安装 samba  N2 d2 J3 `& x9 @
   sudo apt-get install samba
( r& d3 f! |7 z# l8 X(2)创建和配置共享文件夹( `) |; }4 a# a+ x& d7 ^" }9 C, h
   mkdir /home/user1/share5 ^% [+ a3 \, D9 G( g5 O
   chmod 777 /home/ user1/share
5 V3 e% U- t. T0 U) d(3)备份并编辑 smb.conf 允许网络用户访问
* l* V9 i. I7 x( u; {   sudo cp /etc/samba/smb.conf /etc/samba/smb.conf_backup
1 C4 M& {- K% G0 D4 H   sudo gedit /etc/samba/smb.conf; t. u6 i) g- [
找到 security = user' h/ P/ W% {# l( r9 B, ?
替换为
" T' }# V) h4 R. X7 q3 M$ t   # security = user
* `; L) g( g, G   security = user
- _( e  {! c8 i# V. v. `" Y   username map = /etc/samba/smbusers
1 {. z( h1 H, u! a找到9 T+ s2 L( {# I6 F
   workgroup = MSHOME
! ], }  U5 W4 N) ]) Y替换为5 t3 s# J" C/ E8 Z, \& a
   workgroup = WORKGROUP& s$ ]' F% \7 f3 e( \: S: `
   display charset = UTF-85 E" \( ?: l5 i  W6 n- m, E
   unix charset = UTF-8% e: a% N) H8 S: G9 r
   dos charset = cp9361 V: W9 O# ?9 U
在最后添加:
# ?7 w/ F9 ~- @; [8 Z' U; P3 V9 o   【winshare】$ W  f3 [6 x$ c2 m. `; U
   comment = Shared Folder with username and password
* Y; S8 o: V3 i  A/ d) P( P   path = /home/user1/share8 J, |# _# C8 j4 r9 q/ j
   public = yes
/ ?* `/ R. |' i8 }4 b   writable = yes. g! Y) J' s8 o6 J$ m4 p
   valid users = network
5 h3 A, y  I2 x) @6 {: z   create mask = 0700: p9 O6 f3 ?- c' Y
   directory mask = 0700: b6 N  k2 V' O& Z( F$ @
   force user = nobody
( P: a' ^+ X6 t6 V6 t# P$ t   force group = nogroup5 Y6 e7 n, M4 a
   available = yes
8 i! b( u9 y" e: Y   browseable = yes
* \) j! K2 G/ O( D/ y; O' r8 U(4)添加 network 这个网络访问帐户- Q' h6 n: i& {' P5 I0 W
代码:
( \7 H. h, g2 Z; L( \; X8 K   sudo useradd network6 v5 N+ l9 r. D% p! v+ Y
   sudo smbpasswd -a network
6 R- U) A  s4 ?* z   sudo gedit /etc/samba/smbusers, X8 i, P+ v4 t$ h, C  V% l
添加:# P# M$ X' P9 c0 Q! B8 A$ a
   system_username = “shijian”
. F4 @& a  a; q3 f7 g& ~0 s   network = "network"" d: y2 l  w; z' R% {" L' @$ s4 O6 y
(5)重启 samba3 m0 x+ s  t. w% U( h: B& B9 T4 ?" h- H
   sudo /etc/init.d/samba restart
2 c0 N; z3 D2 J: I8 U! x这样就可以在其他 windows PC 下访问本机 ubuntu 的共享
9 w. [6 `2 J' \; U# C(6)ubuntu 访问其他 windows 的方法0 j- B  ^+ |, P- l
使用快捷键 ALT+F2.0 e( U4 z! Q- t4 s7 f
输入"smb://IP 地址",回车" P; l" q- b2 ?" e7 }/ n: P
3. 配置 NFS8 z5 P; W$ K1 o# |- J  `- I& D, e3 i
(1)安装 NFS
# ]8 b8 M7 f; v% Y' f: VDebian/Ubuntu 上默认是没有安装 NFS 服务器的,首先要安装 NFS 服务程序:7 `1 \( G; I- p$ c) [! f
   sudo apt-get install nfs-kernel-server
3 i1 u3 g' z5 y& w- ^, r(安装 nfs-kernel-server 时,apt 会自动安装 nfs-common 和 portmap)2 V5 ~" D" z4 V: l6 Y* A
(2)配置/etc/exports! S5 ^8 o; U; b5 C2 v  X6 J
NFS 挂载目录及权限由/etc/exports 文件定义! }8 @# P+ u. W; M& p
将/armsys2440/root 目录让 192.168.0.*的 IP 共享, 则在该文件末尾添加下列语句:5 j( o# N1 ~' g" R) q7 u
   /armsys2440/root 192.168.2.*(rw,sync,no_root_squash)
' ~& W7 N9 N- i- M. O+ [或者:   /armsys2440/root 192.168.0.0/24(rw,sync,no_root_squash)8 M- Y$ x0 b# c& M8 b, v
运行   sudo exportfs -r
$ B2 u6 ]. V+ Y7 A3 A0 l( X更新运行   sudo /etc/init.d/nfs-kernel-server restart" f1 k3 j3 R: v7 W8 O4 u6 P$ D
重启 nfs 服务
' |0 z2 x! @2 `(3)测试 NFS
% Q5 M! K0 Z6 n4 q2 l. c/ i# E, E$ {可以尝试一下挂载本地磁盘(假设本地主机 IP 地址为:192.168.0.1,将/home/zp/share 挂载到/mnt)
! }, q9 G8 z  P( v* S7 a   sudo mount -t nfs 192.168.0.1: /armsys2440/root /mnt
' f2 ]: s( ?: H/ X% n- w$ j' e/ e运行 $ df 看看结果   sudo umount /mnt
% K# F. m: X, w) m% T8 t3 O6 c; U: t$ r可以使用一定的参数:
2 |3 m) p/ @, J& d   mount -o nolock,rsize=1024,wsize=1024,timeo=15 192.168.2.130:/tmp/ /tmp/
  V- s1 O5 e7 l+ Z(4)客户端挂载远程共享   mount -t nfs 192.168.0.***:/home/***/share /mnt/share
& z" k% P' r3 U7 p( \4. 配置 minicom& `( z. V/ m; g
安装 minicom
0 s3 I2 J; O8 ]( Q, F5 ?- x& [$ v0 m   sudo apt-get install minicom! i9 o$ ?# t7 t
四、交叉编译环境设置
3 B( d( A) i7 T5 f0 w+ F安装交叉编译器7 z  A2 b; X- U8 O- x
   sudo mkdir /us r/local/arm
  v! J2 ^) Z. \/ D   cd /user/local/arm
. V$ f3 c* E- q5 s   sudo tar zxvf /home/usr/arm-linux-toolchains.tgz& {' [' R2 @, o; j) A2 z% Q
请在执行完成后查看是否存在/usr/local/arm 文件夹。4 t) W8 M1 R4 P  F7 A9 u& I- [3 ~) C
把交叉编译器的路径加入到 PATH,以方便使用:
1 a9 y" y  G7 {3 v% Q( y   sudo vi /etc/bash_bashrc+ B" c. F- A3 e& ?( g/ i/ x% i/ x
加入如下代码:; k* ~. G$ [9 i5 L2 @
   if 【 -d /usr/local/arm 】 ; then# z6 ~+ }2 c9 a
   PATH=/usr/local/arm/2.95.3/bin:"${PATH}"6 m8 r( Q8 M6 o. R$ M7 Z6 V
   fi% @( U5 Y# n& c- s( M  j) S
五、uboot
5 e( ]4 _3 u5 q! Q9 u; u4 G    uboot,内核,文件系统
' F5 u. c2 E5 e6 f/ F+ d   1. uboot 编译
; Z7 s/ ]+ a- ]; Z建立 armsys2440 目录,将光盘中的 Linux / u-boot / uboot.tar.gz 拷贝到 armsys2440 下,并解压缩:/ v  H0 t6 N- c8 S
   cd /armsys2440
$ H# L( }5 Y) [, o. M4 y   tar xvzf uboot.tar.gz
; C3 t) h  \2 m* \# ~3 c3 n; B得到 uboot 目录,如果你需要编译它,按照以下步骤:
! Y% Q- T& N( r% O# W, x" {) _5 K   cd uboot2 D' L2 z; i+ J& K2 I. F% V
   make distclean# e9 E+ W$ h, G* w7 \  C
   make smdk2440_config* ]* A: X4 Y$ L: H7 J4 s7 l0 @
   make: y3 A8 u6 z( t- I% A/ C
    2. 内核编译) G- ^9 V( j6 `  V$ G( Z
(1)解压
$ L5 n2 C$ J+ D0 r: B' N" \" [   cd armsys2440" _# w' |% B% s7 a+ q
   tar xzvf /mnt/cdrom/linux/kernel/kernel-armsys2440-xxxxxx.tgz/ v9 |/ u& ]% x& \+ r
(2)配置命令行如下:# L6 T& v8 O& p* t6 P; [
   cd /armsys2440/kernel2440
5 q, n; d! R4 v7 H   make menuconfig* X* c' w+ N+ Q# s1 O" a2 U. u' p0 {) X
(3)编译
- j* J% M; t; H# X5 ?命令行如下:
( |: R: q- r' w   make clean
8 A7 b# B% c' L" {$ i) Y+ \& s9 f   make dep+ a; }+ H; F2 l
   make zImage! }6 m. W; s8 D, B$ M- G
编译结束后将在 kernel/arch/arm/boot 和/tftpboot 目录下得到 linux 内核压缩映像文件:zImage。
4 w4 p/ Q# l+ O* W) f- ` 3.文件系统
4 U4 N  O+ z6 F- a/ B+ X新建/armsys2440/root 目录,将光盘中 Linux/rootfilesystem/ root_armsys2440_0.1_yaffs.tgz 压缩文件拷贝到这个目录下,然后再解压缩,得到根文件系统所需要目录。将 root_armsys2440_0.1.tgz 压缩文件更名为 root_armsys.tgz8 i( e0 J# f6 _. N( Y

4 d" u2 {4 T/ T/ ?

该用户从未签到

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

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-11-5 09:15 , Processed in 0.156250 second(s), 23 queries , Gzip On.

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

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

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