64位 Fedora 22环境下搭载 mini2440 开发环境

近来对嵌入式Linux开发很感兴趣,于是淘了块“友善之臂”的mini2440开发板玩儿。首先搭载开发环境,由于光盘中视频用的Fedora14太老,很多yum源都以失效,难以获取和更新软件,索性下了个最新的Fedora22,自己配置开发环境。废话不多说,言归正文。


本文目标:
1.在vmware虚拟机上安装Fedora22;
2.配置Samba服务,以便Windows访问虚拟机资源;
3.安装arm-linux-gcc交叉编译环境;
4.使用secureCRT将交叉编译好的程序发送到mini2440上运行测试。


相关软件、资源下载:
1. vmware10虚拟机(序列号自己百度吧:) ):
http://pan.baidu.com/s/1jG4dKkm
Fedora22安装镜像 (亦可前往fedora官网下载 https://getfedora.org/zh_CN/workstation/download/):
http://pan.baidu.com/s/1jGB5tUe
2.交叉编译工具 arm-linux-gcc-4.3.2:
http://pan.baidu.com/s/1eQ79KWU
64位系统安装32位库的脚本文件:
http://pan.baidu.com/s/1bn5DYEz
4.通过串口控制mini2440的secureCRT5.1:
http://pan.baidu.com/s/1o6GMSUe


1.vmware10上安装fedora22虚拟机

打开vmware,点击“文件”菜单下的 “新建虚拟机” 
-> 选择“典型” ,下一步
-> 选择“安装光盘镜像文件(iso)”,点击“浏览”,选择我们的Fedora22安装光盘镜像,下一步
-> 选择"Linux", 选择"Fedora 64位",下一步 
-> 随意设置虚拟机名称及存放位置,下一步 
->  自己设置磁盘大小,选择“将虚拟磁盘拆分成多个文件”,下一步
-> 点击“自定义硬件”,将“网络适配器”设置为桥接模式(这样之后才能和mini2440同在一个网段下,使用nfs服务共享资源)
-> 点击“完成”
-> 点击“开启此虚拟机”,开始安装Fedora22
-> 选择“Install to hard drive”
-> 选择安装语言,下一步
-> 点击“安装目标位置”,点击“完成”,点击“开始安装”,安装期间可以设置root密码和添加用户
等待安装完成即可。(随vmware版本和Fedora版本的不同,安装步骤可能会有所差异。)

2.配置samba服务

(此部分参考博文:
http://blog.csdn.net/joeblackzqq/article/details/39087455)

(1)首先关闭防火墙及selinux:

首先root, 输入 su 命令后会提示输入密码

关闭防火墙      //不关的后果是windows看不到本机
systemctl stop firewalld        //暂时关闭防火墙
systemctl disable firewalld     //开机禁止启动

关闭selinux    //不关的后果是windows没有权限访问本机
编辑 /etc/selinux/config,永久禁用selinux:
vi /etc/selinux/config
将其修改如下:
# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
#     enforcing - SELinux security policy is enforced.
#     permissive - SELinux prints warnings instead of enforcing.
#     disabled - No SELinux policy is loaded.
#SELINUX=enforcing
SELINUX=disabled
# SELINUXTYPE= can take one of these two values:
#     targeted - Targeted processes are protected,
#     minimum - Modification of targeted policy. Only selected processes are protected. 
#     mls - Multi Level Security protection.
SELINUXTYPE=targeted 
保存退出后重启fedora

(2)安装samba

fedora22已经弃用yum而改用dnf来在线获取安装、升级程序了。
基本上好像用起来没什么区别,只是把yum替换成dnf即可。

dnf install samba
(低版本fedora可以用 yum install samba)

(3)配置samba
 vi /etc/samba/smb.conf
 在文件最后添加以下内容,其中[hg]是windows上看到的名称,path是需要共享的目录
[hg]
    comment = directory of user "hg"
    path = /home/hg
    public = yes
    writable = yes
    valid users = hg
    create mask = 0700
    directory mask = 0700
    browseable = yes
(4)增加用户
# smbpasswd -a USER
USER为linux上的用户名

(5)启动samba服务
    service smb start    //重启后samba服务失效
    systemctl enable smb //重启后会自动启动samba服务

(6)在windows上访问hg文件夹
    首先在fedora下用ifconfig命令查询ip地址,如192.168.2.102
    接着在windows资源管理器地址栏输入: \\192.168.2.102
    接着会提示输入用户名和密码,按照之前smbpasswd -a添加的用户输入登录即可看到hg文件夹。
    这样便可以在windows下用notepad++编辑完代码后,再到linux下去编译,也可以很方便的将一些资源直接复制到linux文件夹中。

    需要注意的是,若是在fedora下创建的文件或文件夹,windows下是没有权限修改的,表现为无法在文件夹里新建文件,或者修改linux下创建的文件后无法保存。
    需要将相应的文件加上“其他用户(o)”的“写权限(w)” chmod o+w /home/hg/test 后,便可正常新建、修改文件了。

3.安装交叉编译工具

安装arm-linux-gcc前,还是先安装个gcc,编译个hello.c吧,总感觉不打印个hello world出来,缺了些什么一样。

fedora22没有预装gcc,安装也非常简单:

dnf install gcc

用vi新建个c文件:vi hello.c
#include <stdio.h>

int main()
{
    printf("Hello world!\n");
}
编译:gcc hello.c -o hello
运行:./hello
输出结果:Hello world!

Hello world!

看到了Hello world,志得意满,我们继续来安装arm-linux-gcc

1.将 arm-linux-gcc-4.3.2.tgz 和 install_32lib.sh 拷贝到之前samba共享的目录中
2.解压arm-linux-gcc-4.3.2.tgz
tar xzvf arm-linux-gcc-4.3.2.tgz -C /
3.添加环境变量
修改/etc/profile: vi /etc/profile
增加:pathmunge /usr/local/arm/4.3.2/bin

/etc/profile

执行: source /etc/profile
键入 “arm-linux-” 之后按两下 Tab 键,若出现以下很多指令,说明环境变量配置正确。

环境变量配置正确

但由于我安装的是64位系统,还需要安装32位的库,否则会报错:
输入 arm-linux-gcc -v 提示有些库找不到

arm-linux-gcc 报错

有很多库需要安装,方便起见,可以直接运行install_32lib.sh:
chmod u+x install_32lib.sh
./install_32lib.sh

安装完之后再输入 arm-linux-gcc -v,成功

arm-linux-gcc安装成功
此时再用arm-linux-gcc编译一下之前的hello.c:
arm-linux-gcc hello.c -o hello_mini2440

这里写图片描述
4.使用secureCRT将交叉编译好的程序发送到mini2440上运行测试

1)安装secureCRT,安装完后,将mini2440通过串口链接至电脑,打开secureCRT,设置并连接:

secureCRT连接串口

2)mini2440上开关选择nand flash启动,开启mini2440电源,便可以通过secureCRT连接到mini2440的shell了:

mini2440 shell

3)将之前在fedora上编译的hello_mini2440拷贝到windows中,在mini2440的shell上执行 rz 指令,将hello_mini2440下载到目标板中并运行:

下载运行hello_mini2440

欢迎转载:http://blog.csdn.net/geyue12345/article/details/49207981

猜你喜欢

转载自blog.csdn.net/geyue12345/article/details/49207981