海思开发记录(一):3559A开发环境搭建

说明

这次安装的是Ubuntu14.04-64位系统,没有选择装虚拟机,而是物理机单系统
因为在另一台电脑上,不方便截图,所以只记录重点

启动u盘制作

系统镜像获取:http://mirrors.aliyun.com/ubuntu-releases/
u盘烧录工具:https://rufus.akeo.ie

镜像选择为14.04 64位系统,桌面版(而不是服务器server版本,server版本试过安装不成功)

系统安装

重启后进入BIOS,修改启动优先级,选择u盘启动
安装过程可以参考:https://blog.csdn.net/whitefish520/article/details/103850361
安装过程中,选择格式化整个硬盘,并且语言最好是选择英文

安装完成后的配置

修改镜像源

进入系统后,在右上角的下拉菜单中,选择系统设置system setting,然后选择software & updates
在download form后选择other,找到china,选择阿里云mirrors.aliyun.com

界面调整为中文

选择设置中的language support
具体步骤可以参考:https://blog.csdn.net/whitefish520/article/details/103850361

更新软件

在终端terminal中执行
sudo apt-get update
sudo apt-get upgrade
前者完成检查,后者完成下载更新

设置静态IP

sudo vi /etc/network/interfaces
在末尾添加如下内容,ip、 关和掩码,要改成自己需要的
auto eth0
iface eth0 inet static
address 172.20.10.128
netmask 255.255.255.0
gateway 172.20.10.2
dns-nameservers 180.76.76.76

重启 络服务
sudo /etc/init.d/networking restart

查看IP:ifconfig -a

重启 络服务失败的解决办法:https://www.cnblogs.com/siikee/p/4193922.html
sudo ifdown -a
sudo ifup -a

配置ssh服务

安装:sudo apt-get install openssh-server
修改配置:sudo gedit /etc/ssh/sshd_config
更改为
重启服务:sudo service ssh restart
接下来,选择在Windows端,利用ssh协议远程登陆进行操作(推荐使用secureCRT),这样方便后面的配置进行复制粘贴

解决VI中方向键乱码

sudo apt-get install vim
安装vim即可解决

设置VI的风格

sudo vim /etc/vim/vimrc
打开vim配置文件,在末尾加上如下内容

设置root密码

sudo passwd
输入root用户密码即可,新安装的没有root密码,如果该某些内容出错,可能无法恢复,只能开机后进入单用户模式恢复
本次设置密码为123456

设置sudo不需要密码

查看配置文件权限:ls /etc/sudoers -l
发现为只读,给它的用户加上写权限:sudo chmod u+w /etc/sudoers
再次查看权限:-rw-r—–,发现多了写权限

打开配置文件:sudo vi /etc/sudoers
对应位置修改为如下内容
%admin ALL=(ALL) NOPASSWD:ALL
%sudo ALL=(ALL:ALL) NOPASSWD:ALL
之前改过的权限改回只读:sudo chmod u-w /etc/sudoers

配置samba服务

安装samba:sudo apt-get install samba samba-common
创建要共享的目录:sudo mkdir 你的目录
修改目录权限:sudo chmod 775 你的目录
修改samba配置文件:vi /etc/samba/smb.conf
在max log size 1000下面一行,增加security = user
在文件末尾,增加
[你的目录名]
path = /home/你的用户名/你的目录名
browseable = yes
writable = yes
valid users = glx
public = yes
available = yes

设置samba密码:sudo smbpasswd -a 你的用户名
win10访问不了samba的,可以参考:https://jingyan.baidu.com/article/7c6fb428d62a6e80642c90cc.html
重启samba服务:sudo service smbd restart

在Windows端映射驱动器:我的电脑-映射 络驱动器
输入:192.168.10.101share
这里的ip就是Ubuntu机器IP,后面跟的是你的samba目录名
使用其它凭据连接,输入账 密码,并勾选记住凭据
如果遇到权限问题,可以暴力一点修改目录权限
sudo chmod 777 你的目录 -R

配置NFS

安装nfs服务器:sudo apt-get install nfs-kernel-server
安装nfs客户端:sudo apt-get install nfs-common
创建NFS目录:sudo mkdir 你的目录
修改设置:vi /etc/exports,最后一行添加

重启服务:
sudo service rpcbind restart
sudo /etc/init.d/nfs-kernel-server restart
检查是否配置成功:showmount -e

配置TFTP

创建工作目录,在根目录创建tftp文件夹:sudo mkdir /tftpboot
给这个目录权限777:sudo chmod 777 -R /tftpboot
安装tftp:sudo apt-get install tftpd tftp xinetd
修改配置文件:sudo vim /etc/xinetd.d/tftp

修改配置文件:sudo vim /etc/inetd.conf
找到字样的内容,用 # 屏蔽掉,复制一行到下面,末尾的目录改成自己的

查看/var/log/syslog,发现如下语句,我推测是因为修改了vim的vimrc文件,导致空格和tab对tftp程序读取配置文件造成影响

重启服务:sudo /etc/init.d/xinetd restart
测试:在不同于tftpboot的目录下执行:
tftp 127.0.0.1
tftp> get test.c
tftp>q

桌面UI开机时打开num_lock

桌面ui开机时无法输入数字,得打开num_lock

sudo apt-get install numlockx
sudo vim /etc/rc.local

在最后一行exit 0前增加一下内容

配置默认使用 bash

执行 sudo dpkg-reconfigure dash 选择 no

安装软件包

执行:sudo apt-get install make libc6:i386 lib32z1 lib32stdc++6 zlib1g-dev libncurses5-dev ncurses-term libncursesw5-dev g++ u-boot-tools:i386 texinfo texlive gawk libssl-dev openssl bc

其它配置

创建/etc/ld.so.preload 文件,并修改权限为777
并执行 echo “” > /etc/ld.so.preload,以解决 64bit linux server 上某些第三方库编译失败的问题。

修改sudo执行时的环境变量

首先给/etc/sudoers增加写权限:sudo chmod u+w /etc/sudoers
然后修改:
Defaults secure_path=”/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin:/opt/hisi-linux/x86-arm/gcc-arm-none-eabi-4_9-2015q3/bin:/opt/hisi-linux/x86-arm/aarch64-himix100-linux/bin”

这个是在末尾加上arm编译器的目录
注意以冒 分隔,这是一行,不能换行写,保存之前多检查一下,这个文件改错了很麻烦

安装工具链

参考文档2.4节,在 linux 服务器上安装交叉编译器
注意之前已经将工具链安装后的路径放到sudo的环境变量中,所以make的时候,可以加sudo执行(如果不加sudo,可能会由于权限的不足而编译失败)

展开SDK

参考文档2.1~2.3节

osdrv的编译

这一步有以下几个文件需要阅读:

  1. Hi3559AV100R001C02SPC030/01.software/board/Hi3559AV100_SDK_V2.0.3.0/osdrv/Makefile
  2. Hi3559AV100R001C02SPC030/01.software/board/Hi3559AV100_SDK_V2.0.3.0/osdrv/readme_cn.txt
  3. Hi3559AV100R001C02SPC030/01.software/board/Hi3559AV100_SDK_V2.0.3.0/osdrv/opensource/kernel/readme_cn.txt

在kernel目录下,告诉我们要提前准备好内核源码,海思是不提供这个的
按照它的要求,将内核源码文件放到kernel目录下面,打补丁的操作不需要手动进行,退回osdrv目录编译all目标即可

根据osdrv目录下的readme文件,执行sudo make BOOT_MEDIA=spi AMP_TYPE=linux all

有可能会导致如下的错误

海思开发记录(一):3559A开发环境搭建

原因是系统目录下/usr/local/bin/mkimage这个程序的问题
之前编译all目标时,uboot的编译应该是通过的,到以下目录去找mkimage,然后复制到/usr/local/bin/目录下
cd opensource/uboot/u-boot-2016.11/tools/
sudo cp mkimage /usr/local/bin/

如果uboot编译失败,按照readme上的要求,单独编译uboot
sudo make BOOT_MEDIA=spi AMP_TYPE=linux hiboot

mkimage程序就位后,重新编译all目标
make BOOT_MEDIA=spi AMP_TYPE=linux all

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2020年5月7日
下一篇 2020年5月7日

相关推荐