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

linux-arm开发环境简单配置

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
linux-ARM开发环境简单配置
8 J3 S9 _4 M' {* W9 J( ~- Y关于linux-arm开发环境简单配置是ARM学习的第一步,很多初学者会在这问题上纠结很久都不能配置好开发环境。推荐大家看一下韦东山视频,讲得很详细,代码基本上都会给你解释(很多视频都不会给你解释),适合初学者。
" E  i! B$ }4 ~- o9 _: mfedora8开发环境简单配置, j/ |; I. P2 K1 h# M& i0 ?/ q6 _# J! G
linux-arm开发环境简单配置
& V/ f4 P7 L; d7 y# EWindow上:. h- k% n" Z4 b' l2 h
安装终端软件 SecureCRT,putty等
% F9 w; A' s! j% D5 d- I安装ftp软件 cutftp等
9 f& n+ ]$ p6 m' |+ Y# \: W配置串口工具 超级终端
9 }7 G; P: ]) J7 [安装tftp服务,也可以使用linux上的tftp。
, ^9 R1 _1 v8 z$ N! n( qlinux上:
- v7 ^2 k) B7 U, z+ T, i1,ssh, j- c$ m" R! z3 R% O7 ~
默认情况下,ssh在fedora8下应该是安装的,那么就无需安装了。5 @! @9 f- }6 O; j
可以如下查询:
9 Y$ Z: J( A$ O. _5 c1 j+ lrpm -qa openssh
% G4 ^! f$ e5 Z如果显示openssh-4.7p1-4.fc8一类的信息表示安装了,如果没有显示,那就直接使用yum install openssh直接安装即可。) M: j+ ?$ g! {$ c: ^. o
然后需要在Firewall把ssh的端口开放。也可以直接修改 /etc/sysconfig/iptables, 在其中加入
/ |: z: O# z" o/ i, W+ a-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT 即可
1 g$ F5 W( ?$ B7 F( ^0 M2 x然后 # service sshd restart 重启即可。1 T  q8 E/ V4 H' N% e/ B9 g
2,vnc
: R$ s. Q( v7 W! y  R3 W- o  t切换到root用户
8 e& w8 R9 |$ Y1 x$ t4 b6 y& y3 Q# yum install vnc-server 安装0 l  P% i* O8 |9 k; `: n& h8 U% M
# vim /etc/sysconfig/vncservers 5 k( a6 q0 L+ J, G# w' R! n/ b9 L
加入
4 K. Y3 r- `3 n. e- `VNCSERVERS="1:misswhile"# n' F# c: X5 C* d
VNCSERVERARGS【1】="-geometry 1024x768 -depth 16" 等
4 Q+ O, ?. A) X2 N5 ~- r加入密码如下:; ]1 m; J! C. }( e
$ vncpasswd+ ~# n6 ?" p* H8 v
$ Password:
- c9 \/ A. o1 S9 X $ Verify:) W0 c" A5 z4 ]) g
启动服务 #service vncserver start
4 {2 [# A; _8 V' x: h% R修改 ~/.vnc/xstartup,使支持窗口) J- Z9 [. F! e4 g3 t9 D  l
twm & 注释掉! n- Q2 |* f; Q, ^
加入
, j8 o. A7 {, U' s6 T4 o) p/ J- Bexec gnome-session &  
% P* I# a# v; c3 |开放端口:iptables 加入   -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 5901 -j ACCEPT
. F% i7 a8 ^; z3 K# ~: b" O( ?重启服务即可。2 _2 o) C/ T$ ^7 u6 H
3,samb
& v) ^& c/ L$ v: M. l# yum -y install samba
- }$ \; w6 F0 N) L$ p  e) [# yum -y install samba-client6 f7 Q/ }" i% W( L  c! u, C
# yum -y install system-config-samba; M- X+ t( w# x, M9 Z* B( D" O
# chkconfig smb on  |" p  U2 D( b: w
然后 Desktop -> System Settings -> Administration-> Samba 设置共享的目录 和用户,读写属性等即可。
/ q3 h) R! r* Y4,tftp  过程和上面都大同小异...* m" D4 a, K5 Q" b' P1 o
5,nfs 安装过程一样,需要注意的是需要开放好几个端口,否则无法网络挂载,如果对安全没特殊要求,那就关闭防火墙即可。
: ?4 K9 C' z. k  B完成以上这些步骤,在Windows上通过网上邻居访问linux的samba文件夹,进行文件的编辑拷贝等。
5 A# I' l6 V2 ?1 z; ]& O+ n在Windows上通过putty,SecureCRT,VNC client等访问控制linux主机了。
7 H  D) O  s: V! a' U1 u在Windows上通过各终端在linux上交叉编译u-boot,linux kernel,制作根文件系统等9 P6 R! j' y9 P$ W
arm开发板可以使用网络挂载linux上的根文件系统等。
- G5 l2 ?7 G" T9 H, P  M当然,其实只用一台linux主机即可完成,不过通过对于linux上编辑工具不太熟悉的时候,通过Windows也工具也不错。, n0 j5 y& I& z4 N
Ubuntu开发环境简单配置
' M! e$ V: w' |, m' F$ y5 H+ B+ ]一、中文环境设置* x. j& F! y8 [) |+ J" C
1. 设置 ubuntu 中文现实) r. ]/ k, F3 T7 ^6 q
点击最上面菜单 的 系统 -> 系统管理 -> 语言支持(英文菜单则是 System -> Administration ->Language Support),在列表中选择 Chinese 条目。同时将默认语言修改为 Chinese(中国) ,按确定关闭设置程序。# Z* ^3 H" ~( j9 C: `8 a& F
2. 配置字体 sudo fontconfig-voodoo -f -s zh_CN+ M1 A" O+ G% K1 u
3. 安装 fcitx 输入法, O' ]9 M+ C& a
    sudo apt-get install im-switch libapt-pkg-perl fcitx
7 K; a. J2 u: j; X) O$ i    sudo im-switch -s fcitx; c5 {7 x( D3 M. v1 x; w2 c1 x& }
4. PDF 浏览器 sudo apt-get install acroread
2 w" V* z( v+ [0 c2 m+ N' j二、ubuntu 开发环境设置     9 E  J+ X! _' V+ a1 e9 E
1. 安裝 C/C++的 Man 手冊,。3 N8 a( C6 L( |- x5 N- s& M  n
    sudo apt-get install manpages-dev
% {1 Q% [. j# P* n5 @2. 安裝 gcc,g++,make
; T! ]$ J$ v! M% m    sudo apt-get install build-essential
  b& i8 g0 ?+ I  v) N9 o9 }3. 安裝头文件和库
3 U8 n- p* ^6 p9 K. G& m6 D, F    sudo apt-get install libc6-dev libstdc++6-4.0-dev
/ C: o4 k, x9 c4 P8 M' j4. 安装 libncurses5-dev
. Z9 e' V8 `" F2 V- \! _# d    sudo apt-get install libncurses5-dev5 X+ u( ~* K3 P* }
5. 安装 gdb 调试器4 ^( }: F: P4 A
    sudo apt-get install gdb
# O+ n0 a; l3 T! a( g$ M6. 安装安装图形界面 ddd 调试器
8 l* ^  m# i, ?4 }! y2 g" [    sudo apt-get install ddd
  E+ L; u6 R8 }! A! {- r4 J7. 安装 automake 工具" T6 c& C9 `( e( O" {
    sudo apt-get install automake
& S8 H3 I4 y# H3 J    sudo apt-get install autoconf0 @9 f4 ~. ^" A% m/ ?
    sudo apt-get install autogen3 r& f* m/ e$ T- t* v
*autoconf 是一个用于生成可以自动地配置软件源代码包以适应多种 UNIX 类系统的 shell 脚本的工具。
: }% A8 d& v" d7 V' J: R*automake 是一个从文件 Makefile.am 自动生成 Makefile.in 的工具。
2 J% r" b; y; s3 I! t8. 安装 indent    sudo apt-get install indent
: s+ t/ \1 b6 M: I    调整 C 原始代码文件的格式。
5 I- x4 O: |1 j  N6 [7 q    sudo apt-get install libtool
4 o2 ~: E; a. q' d* s    GNU libtool 是一个通用库支持脚本,将使用动态库的复杂性隐藏在统一、可移植的接口中。
& w) q- X6 Z1 ?1 {) m2 k& k( C9. 安装文档" A8 F* x! F: H; T9 S' F; G
    sudo apt-get install binutils-doc cpp-doc gcc-4.0-doc gcc-doc glibc-doc libstdc++6-4.0-doc stl-manual
% t8 R4 W9 {$ v! `+ Bcpp-4.0-doc1 p* r+ A+ e0 p  k# Z7 W) A
10. 安装编辑器
8 D/ t5 B0 s; j- f& n: O9 P5 |6 c& l! f    sudo apt-get install emacs21) r: J6 Q/ R. b7 M
三、ubuntu 文件共享、传输设置   
' a0 F6 r- x! K* H- c" f1. 配置 tftp
$ H7 A7 s) P2 \* s" D+ K/ `% |(1)安装程序    sudo apt-get install tftp tftpd
: L( `" ]* T; e" i% I 前者是客户端,后者是服务程序。) U( Z# E4 |0 d" w
tftp 是要 inetd 来控制的, ubuntu 或 debian 类的系统,默认是没有安装 inetd 的,安装如下:    sudo apt-get install netkit-inetd
! z/ f. i2 M2 H* O& {/ N(2)在/目录下建一个 tftpboot, 把属性改成 777。
% ]9 {$ I( M! I/ C& d( }$ h3 J    cd // y; C7 t% I& v( _7 }- a8 A
    sudo mkdir tftpboot* z1 B' u, y9 ~
    sudo chmod 777 tftpboot
7 G' S  t: b3 X' e(3)修改/etc/inetd.conf
' z% |5 X1 n4 b  |# L6 P  V    tftp dgram udp wait nobody /usr/sbin/tcpd /usr/sbin/in.tftpd /tftpboot. |' l: T, _% d% k+ v( g: T  T2 f
(4)重新加载 inetd 进程
% K8 R& J- T4 _7 T& @2 g# V    sudo /etc/init.d/inetd reload0 f; @* Q$ R8 S3 _/ {" }( L
(5)测试
5 Y( s9 M$ g, Y6 R1 _    在/tftpboot 文件夹下新建立一个文件# }0 Z. O* p! w8 r: |
    touch aaa
) k7 y9 d) G/ u4 h! S* k. l+ ]4 y    进入用户文件夹
7 i* v1 o7 M5 Y1 z" i    cd /home/user1/) u- O  N( E& s7 C) ~( q& U: H
    tftp localhost' l. J" ?) w/ U; o
    tftp> get aaa( w0 e' }: t# [( a  q1 i5 }
2. 配置 Samba
" u' \; V, N# _  A% i6 V(1)安装 samba
- w$ Z8 E9 _0 D3 f1 _, J   sudo apt-get install samba
$ R: C3 i, Z: S- O(2)创建和配置共享文件夹
# x+ ]1 W$ R# u$ @   mkdir /home/user1/share
9 _. ]9 J" {6 u" M2 t3 [8 m   chmod 777 /home/ user1/share) L" _  t2 F, @: C" B1 [2 j* E7 O
(3)备份并编辑 smb.conf 允许网络用户访问
3 R% O& a& f, F" R+ @   sudo cp /etc/samba/smb.conf /etc/samba/smb.conf_backup6 y) ^( c' m9 y2 ~' A: o
   sudo gedit /etc/samba/smb.conf* D$ w7 R* l+ ]+ w; x# F
找到 security = user
; d% E3 b1 C5 b  P* s* O& r" _替换为
' R6 E5 p0 h$ X: z0 `' k   # security = user
+ r  w- X* L( H   security = user
7 v' W; X1 E9 s   username map = /etc/samba/smbusers9 y1 X% W' ^, x6 M" o8 J
找到, A# e$ A3 f. O
   workgroup = MSHOME
1 O( p5 j. F7 [4 Y7 i替换为
, e& V* p' A! {& s+ @# J- ~8 `   workgroup = WORKGROUP
# r6 f6 _; K# [1 k: g% }   display charset = UTF-8
, v7 |. J1 x* |. x2 F5 a6 Y$ t- n$ D. p   unix charset = UTF-80 _# T. ^5 m+ U8 A8 {: X  P
   dos charset = cp936
0 w: d! O6 B) d, @+ N- B0 j在最后添加:" x$ M. @4 v: z$ A9 D
   【winshare】' u% x4 r% j& E+ e
   comment = Shared Folder with username and password# D) d$ m/ [# Z. S7 Q
   path = /home/user1/share4 W/ [5 [' D' M. T) M! c9 B
   public = yes
5 D9 ?& `. o$ p; s4 x   writable = yes
3 D" S7 A2 c' A) |1 b; F   valid users = network: I0 |. P4 n8 c* a- F' A& j
   create mask = 0700
7 u( o( g9 I# j6 h   directory mask = 0700
4 i" L6 o# `  S' W1 S5 o& S   force user = nobody, o1 C7 m$ j0 ?. x+ [
   force group = nogroup4 M0 [  l: J  \; f7 w& o
   available = yes- x/ S$ K/ y6 k$ n. d* w
   browseable = yes) u# _! ^+ z7 \7 U: B; ?3 K) \1 a
(4)添加 network 这个网络访问帐户2 q9 J3 m( {" Y6 l
代码:
3 i2 U% X* j/ o3 n$ `& ~   sudo useradd network7 I2 M; n2 c, k1 x$ K% {- {4 M
   sudo smbpasswd -a network9 |7 x& r' Z# M0 e& Q/ q
   sudo gedit /etc/samba/smbusers
8 c9 R% y; e$ Y& U4 c) K, M添加:
3 m, }) J7 h# ^; \, f% N   system_username = “shijian”
# L' R' [& @& G0 D1 l   network = "network"5 ]8 t, l. L1 J$ n6 [
(5)重启 samba
2 x# s' H% W, `% O# G2 ]   sudo /etc/init.d/samba restart  I$ L5 a: I/ x
这样就可以在其他 windows PC 下访问本机 ubuntu 的共享( D% p1 n5 C" k1 O4 Z# d) r
(6)ubuntu 访问其他 windows 的方法+ \! F, x; O$ S& U2 Y2 t
使用快捷键 ALT+F2.; o3 u, k, Y! e4 N- Y
输入"smb://IP 地址",回车1 s' N( c, T# S2 c, W3 I, t8 x5 Z$ m
3. 配置 NFS
7 [) y2 y; I; a8 F$ m( j(1)安装 NFS
8 q' `. i+ ~/ t) ZDebian/Ubuntu 上默认是没有安装 NFS 服务器的,首先要安装 NFS 服务程序:% ^7 y1 W9 }9 m- a; T' [1 Z
   sudo apt-get install nfs-kernel-server
0 u& O4 T" F# T5 h+ O) m( c(安装 nfs-kernel-server 时,apt 会自动安装 nfs-common 和 portmap)
1 J$ z1 |% N9 P* k6 ]% t, W" h(2)配置/etc/exports
/ \# K9 P2 I. bNFS 挂载目录及权限由/etc/exports 文件定义
9 X) B$ Y0 n$ x' e/ K* v将/armsys2440/root 目录让 192.168.0.*的 IP 共享, 则在该文件末尾添加下列语句:
5 F/ V9 w& s. u   /armsys2440/root 192.168.2.*(rw,sync,no_root_squash)
# b" M* T. a) o* ]0 A3 R6 {5 E或者:   /armsys2440/root 192.168.0.0/24(rw,sync,no_root_squash)- n! |& n- t" }$ x! v0 Q
运行   sudo exportfs -r: l- K: p$ u  x8 n* A
更新运行   sudo /etc/init.d/nfs-kernel-server restart
! L/ }$ V$ P% s/ G  n重启 nfs 服务8 T4 _3 X$ A0 d: H$ j5 y
(3)测试 NFS
2 [+ b9 k1 U: z7 W) [2 G3 ~可以尝试一下挂载本地磁盘(假设本地主机 IP 地址为:192.168.0.1,将/home/zp/share 挂载到/mnt)) S8 |1 G, B+ R, M- `
   sudo mount -t nfs 192.168.0.1: /armsys2440/root /mnt
  o8 p  S; b% q运行 $ df 看看结果   sudo umount /mnt( M0 l+ q( X, E+ P/ Z: @  m9 [
可以使用一定的参数:
' H9 {! Q& z1 E$ [8 A+ u! z8 z   mount -o nolock,rsize=1024,wsize=1024,timeo=15 192.168.2.130:/tmp/ /tmp/
# g- I6 W" d, b- Z, E7 A: t0 _(4)客户端挂载远程共享   mount -t nfs 192.168.0.***:/home/***/share /mnt/share
) _: j; ]/ x1 @# [8 l& E7 d" |4. 配置 minicom
3 e, f0 W0 q' x% S% L# E5 [0 x, T安装 minicom- b$ a" H# ^# a$ `
   sudo apt-get install minicom+ C- Q- g9 f' D1 t9 v! y7 m8 q1 {
四、交叉编译环境设置
1 o" N' V( a! Y" S. H8 T* F1 o1 v安装交叉编译器
/ C0 g8 h+ O  F. j8 E" n   sudo mkdir /us r/local/arm
" T, B7 J. L4 r# U4 e; b   cd /user/local/arm, h! g$ W! R# y1 N( h' H1 F
   sudo tar zxvf /home/usr/arm-linux-toolchains.tgz! V3 U2 Z5 F' L5 R
请在执行完成后查看是否存在/usr/local/arm 文件夹。
& O7 X' p% ]+ W把交叉编译器的路径加入到 PATH,以方便使用:
* K8 C. e* }7 y5 n; p0 j9 R( I, h; X   sudo vi /etc/bash_bashrc
" ~; Q2 {2 Y2 |+ n  `! y8 P3 C加入如下代码:1 ~1 _0 M9 D/ d) u7 e7 k" x
   if 【 -d /usr/local/arm 】 ; then; W; N& L9 }& u* }1 A/ X0 Q+ D5 ^* @, c
   PATH=/usr/local/arm/2.95.3/bin:"${PATH}"- }1 S. r% L, D# O' ~8 [+ l0 V
   fi
9 R( q$ E. t0 F1 ~  R6 l( V: W/ J五、uboot. T7 p0 g$ j! y. |% C- _6 ?) ~: q
    uboot,内核,文件系统( N* n% N( j+ _( s, R- l
   1. uboot 编译
- Q4 n  t. o" _$ m2 c- @建立 armsys2440 目录,将光盘中的 Linux / u-boot / uboot.tar.gz 拷贝到 armsys2440 下,并解压缩:
$ |5 ]+ ?, I& |4 ]2 u   cd /armsys2440
$ {; Q  \6 n" q& Q- ^1 n   tar xvzf uboot.tar.gz7 Y1 D1 p% a. T/ S1 c
得到 uboot 目录,如果你需要编译它,按照以下步骤:7 h8 C- @) Q" L' l5 F' u
   cd uboot
! w6 _$ f8 J% a! _+ q   make distclean0 ?0 L3 N, w+ u0 K0 g
   make smdk2440_config
( M. }" _# w( `) X( Q3 P   make
7 ]$ S- w! o7 N! B' Z    2. 内核编译. T' o$ A, s* l, Z1 c2 J
(1)解压
) q8 N4 ^6 P3 @9 n! j2 w" \( d   cd armsys2440
, q& {( D7 ]% n' o. c. P   tar xzvf /mnt/cdrom/linux/kernel/kernel-armsys2440-xxxxxx.tgz
7 X# I/ Y6 k; c% H7 X(2)配置命令行如下:
, p7 U3 R3 i0 o2 Z   cd /armsys2440/kernel2440
" a9 u5 m: ^, T: \8 {! w   make menuconfig
* n" h1 }8 [# `+ S# l2 }- r0 A1 d$ k(3)编译
+ r$ a1 E+ [  Y命令行如下:
4 F0 e( b" l0 K; d   make clean
% I: T  R7 X- {) C3 n   make dep/ U8 e4 a% N( X* e( Z
   make zImage
, d1 K8 E9 n. L4 I. T8 {& ~编译结束后将在 kernel/arch/arm/boot 和/tftpboot 目录下得到 linux 内核压缩映像文件:zImage。
* f% ~8 L3 w! R1 ]8 s. A$ t/ C4 E# _6 L 3.文件系统$ `5 P6 h" U; k& H, w$ B9 R
新建/armsys2440/root 目录,将光盘中 Linux/rootfilesystem/ root_armsys2440_0.1_yaffs.tgz 压缩文件拷贝到这个目录下,然后再解压缩,得到根文件系统所需要目录。将 root_armsys2440_0.1.tgz 压缩文件更名为 root_armsys.tgz
4 m2 r7 F. |9 z% w( b& l; F
" ~; |" h8 b' a! z. Z

该用户从未签到

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

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-6-13 02:30 , Processed in 0.078125 second(s), 23 queries , Gzip On.

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

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

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