GK7205V200学习记录(一)

注:本人对于linux相关的知识属于小白,之前学习过Linux应用层的简单知识并做过一个简易的聊天室,其实就是相当于一个简易demo,然后买了一个韦东山的imx6ull_pro开发板只学习到了第四篇的一半,基本就是只点亮了板子,准备好了各种学习需要的工具,进行了一些简单的编译,所以在下面的操作过程中可能会写出一些自己的想法和疑问,对于一些大佬来说,有些可能会比较愚蠢,尽情见谅,对于一些小白来说,可能也会带来一些思考的方向。

1.安装vmware并安装ubuntu 18.04(这里随便一搜基本都能找到一堆详细的基本教程)

2.安装vmware tools 安装完vmware时,可能会遇到vmware tools不好用的情况

        解决方法:

1. sudo apt-get autoremove open-vm-tools
2. sudo apt-get install open-vm-tools-desktop
3. reboot    (重启下虚拟机)

 (这里可以安装samba 在实际工作中samba要更符合工作需求,设想一下,你不可能在工作上需要远程共享文件,然后用鼠标拖来拖去吧,那样很不切合实际又会显得很不“专业”,还有不管是在学习和工作中,操作虚拟机要尽量少使用图形化工具,少使用鼠标。
    安装Samba:

1.apt-get install samba
2.cd /etc/samba
3.cp smb.conf smb.conf.bk
4.gedit smb.conf
    在smb.conf最后添加如下
    [linux_share](在 windos系统中显示的文件夹名字)
    path = /home/alex/lgh(需要共享的文件夹)
    public = yes
    writable = yes
    create mask = 0777
    force create mode = 0777
    directory mask = 0777
    force directory mode = 0777
    available = yes
5.mkdir /home/alex/lgh( 普通用户)
6.chmod 777 /home/alex/lgh
7./etc/init.d/samba restart
8.在windos的地址栏直接输入\\LINUX IP

   )        

3.设置root密码

Sudo passwd
验证用户密码
输入root密码
再次输入root密码

4.按照sdk开发环境配置指南进行一些必要的开源组件安装:

sudo apt-get install make gcc bison flex fakeroot gettext

 同时可以选择更新一下c库

sudo apt upgrade glibc-source

5.解压sdk并编译

         按照步骤一步一步走,但是到最后一步make时,会出现一些错误,仔细查看,会发现缺少一些依赖,逐个install就好,因为一开始接触看相关的报错信息,可能对于有些依赖的名字不是很认识,可以进行百度搜索,看缺少什么安装什么就行
    (这一步其实很简单,只需要的耐心的分析一下,查看报错信息分析缺少的依赖就好)
     关于为何编译sdk,因为第一次接触linux相关的,存在了一些疑问,为什么需要进行sdk编译?因为在自己的印象里sdk就是一个包而已,只是拿来用就好了,后来仔细看了一下文档发现,编译以后会输出一个out文件用来存放编译出来的镜像、ko、library以及中间obj文件,我们需要对板子进行一个相对应的烧写,烧写相关的uboot,kernel,rootfs。但是其实我本人有一些莫名的想法,为何厂家提供的sdk不是编译好的,也就是out中存在了编译好所产生的所有文件,(个人感觉和学习一门语言的过程有点像,是因为先搞好相关环境,避免后续问题)

6.烧写镜像

6.1 burning tool 工具烧写(pc端)

        这个烧写感觉没啥大的意义,个人觉得基本用不到,因为都用了linux虚拟机,就没必要用pc端了,但是后续会过来看,发现其实这个工具更简单,对于初学者友好

 6.2 boot命令行烧写

        按照开发环境配置指南一步步进行就行,
        1.配置tftp服务器
            这个很简单,百度一搜就有,唯一需要注意的就是,如果你没有按照安装默认的路径作为服务器目录,而是创建了自己的的服务器目录,就需要进行一些路径的配置,还有就是要进行权限授权
        2.单板参数配置
            单板上电后,按任意键进入 u-boot,设置 serverip(tftp 服务器的 ip)、ipaddr(单板 ip)、
            ethaddr(单板 MAC 地址),根据需要配置 netmask(子网掩码)、gatewayip(路由 IP)。
            setenv serverip xx.xx.xx.xx
            setenv ipaddr xx.xx.xx.xx
            setenv ethaddr xx:xx:xx:xx:xx:xx    (关于mac地址,问了同事说是不用配置,通过串口工具来看,他也是自分配了,但是老板说是要分配的,最后也是分配了才搞好的,但是其中又做了一些其他的事情,不确定是否需要分配)
            setenv netmask xx.xx.xx.xx
            setenv gatewayip xx.xx.xx.xx
        3.烧写镜像文件
        4.配置bootcmd和bootargs
                所有烧写和配置完成后,可以保存 boot 环境变量并重启:
                saveenv
                reset
        5.到这里板子就相当于一个linux系统了,可以reboot重启等测试一下

(注:这里对于一个初学者,个人觉得应该先进行单板参数设置,可以先不用设置serverip,然后设置完单板参数以后ping一下虚拟机,看看网络是否是通的,因为pc,虚拟机,单板都在同一网段下,所以肯定是通的,如果不通就是存在一些设置问题,我自己就犯了一个很蠢的问题,虚拟机的相关配置搞错了)

7.板子进行ipconfig设置

1.配置ip
ifconfig eth0 192.168.1.150
2.配置网关
route add default gw 192.168.137.1
3.配置开发板自启连接
sudo vim /etc/profile
source /etc/profile

8.安装NFS
    

1.apt-get install nfs-kernel-server
2.apt-get install nfs-common​
3.mkdir /home/linqi/nfs(普通用户)
4.chmod 777 /home/linqi/nfs
5.gedit /etc/exports
在最后一行添加:/home/linqi/nfs *(rw,sync,no_root_squash,no_subtree_check) 
    其中:/nfs 是要共享的目录,*代表允许所有的网络段访问,rw是可读写权限,sync是资料同步写入内存和硬盘,no_root_squash是Ubuntu nfs客户端分享目录使用者的权限,如果客户端使用的是root用户,那么对于该共享目录而言,该客户端就具有root权限。​
6.ervice rpcbind restart
7.service rpcbind restart restart
8.service nfs-kernel-server restart
9.运行以下命令来显示一下共享出来的目录:showmount -e​

    (注意添加输入的一定要注意英文输入)


9.板子进行nfs挂载

mount -t nfs -o nolock 192.168.1.48:/opt/nfs /mnt

10.配置交叉编译链
  

        交叉编译链的工具位于/home/linqi/Documents/GKIPCLinuxV100R001C00SPC020/tools/toolchains
        交叉编译工具链用来在Ubuntu主机上编译应用程序,而这些应用程序是在ARM等其他平台上运行,设置交叉编译工具主要是设置PATH,ARCH和CROSS_COMPILE三个环境变量。

 1.vim ~/.bashrc
    在行尾添加
    export ARCH=arm
    export CROSS_COMPILE=arm-gcc6.3-linux-uclibceabi-
    export PATH=$PATH:/home/linqi/Documents/GKIPCLinuxV100R001C00SPC020/tools/toolchains/arm-gcc6.3-linux-uclibceabi/bin
2.source ~/.bashrc
3.arm-gcc6.3-linux-uclibceabi-gcc -v(验证交叉编译链工具是否可用)

   11.编写helloworld

在ubuntu上编写helloworld

    1.创建一个文件来存放相关的学习
    mkdir study
    2.进入文件中 
    cd study/
    3.vi hello.c
    编写代码如下
    #include<stdio.h>

    int main(int argc,char **argv)
    {
        if(argc >= 2)
                printf("hello,%s!\n",argv[1]);
        else
                printf("hello world!\n");
        return 0;
    }
    

在ubuntu中编译并执行程序

1.  gcc -o helloworld heollo.c
2.  ./helloworld
 

在ubuntu中编译在板子上可执行的文件,并在板子上执行

1. arm-gcc6.3-linux-uclibceabi-gcc -o hello hello.c
2. cp hello /opt/nfs
3. 然后在板子下输入
4. cd /mnt
5. ls可以看到hello文件
6. ./hello

(注:每次重启板子时都需要重新挂载nfs

mount -t nfs -o nolock 192.168.1.48:/opt/nfs /mnt

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值