1 说明
安装Linux开发环境是学习Linux的重要一步。本文以Ubuntu1604Desktop为例,说明用虚拟机安装Linux的过程和基本开发环境搭建。
2 安装镜像获取
可以从vmWare官网下载虚拟机,从Ubuntu官网下载安装镜像,也可以从百度网盘下载。
链接:https://pan.baidu.com/s/1qAyE4NQeDeb_ELUaAR_4Xw
提取码:abcd
3 安装过程
3.1 安装虚拟机VMware
以管理员身份运行安装程序,指定安装路径,最后输入密钥即可正常使用。
3.2 安装Linux
打开VMware Workstation,选择 文件->新建虚拟机,安装Linux。一些参数根据自身需要进行修改。
4 虚拟机环境搭建
4.1 切换root账户
sudo passwd root,输入三次密码,第一次为当前账号的密码,后面两次为root的密码。
以root身份运行,su root。
通过下面方式支持在开机时支持用root登录系统,
sudo vi usr/share/lightdm/lightdm.conf.d/50-ubuntu.conf
增加如下一行内容:
greeter-show-manual-login=true
sudo vi /root/.profile
将mesg n || true替换为tty -s && mesg n
4.2 重新安装VM Tools
在虚拟机菜单栏选择 虚拟机-> 重新安装VM Tools
mkdir /mnt/cdrom
mount /dev/cdrom /mnt/cdrom/
cd /mnt/cdrom/
cp VMwareTools-10.0.6-3595377.tar.gz /mnt/
cd /mnt/
tar xzf VMwareTools-10.0.6-3595377.tar.gz
cd vmware-tools-distrib/
./vmware-install.pl
此后一直回车,直到出现
Enjoy,
--the VMware team
Found VMware Tools CDROM mounted at /mnt/cdrom. Ejecting device /dev/sr0 ...
删除中间文件
cd /mnt/
rm -rf VMwareTools-10.0.6-3595377.tar.gz vmware-tools-distrib
rm -rf /mnt/cdrom/
VM Tools已经安装成功,此时选择 菜单栏->查看->立即适应客户机 或者 菜单栏->查看->自动调整大小->自动适应客户端 即可。
4.3 解决apt-get install速度很慢的问题
默认执行apt-get install安装软件时回去域名为US(美国)的服务器下载,可能速度会较慢,解决办法是更改配置,在安装软件时从国内服务器下载。
参考网址:https://www.cnblogs.com/gentlemanwuyu/p/11621636.html
sudo mv /etc/apt/sources.list sources.list_backup
sudo vi /etc/apt/sources.list,将以下内容输入
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-updates main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-backports main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-security main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-proposed main restricted universe multiverse
deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic main restricted universe multiverse
deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-updates main restricted universe multiverse
deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-backports main restricted universe multiverse
deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-security main restricted universe multiverse
deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-proposed main restricted universe multiverse
保存文件,执行apt update,apt upgrade
4.4 安装vim
apt-get install vim
4.5 配置Samba
执行apt-get install samba,apt-get install cifs-utils。
选择要共享的目录,以/home和/usr/src为例(要保证相应目录已经开放了读,写,执行权限)。
vim /etc/samba/smb.conf,在文件最后添加如下内容:
[share]
path = /home
available = yes
browseable = yes
writable = yes
guest ok = no
[usr_src]
path = /usr/src
available = yes
browseable = yes
writable = yes
guest ok = no
可以执行testparm命令查看设置的结果。
添加系统用户到Samba组,以用户lijun(lijun已经为linux系统用户)为例,smbpasswd -a lijun,输入并设置密码。
服务器版ubuntu重启Samba,执行/etc/init.d/smbd restar。
Windows访问Ubuntu端文件(\\IP)
可以将root用户添加进samba用户组解决某些软件访问权限的问题:smbpasswd -a root,敲入密码(密码最好与linux登录不一样,经过验证密码一样也能访问),/etc/init.d/smbd restart,再用root通过samba访问共享文件夹。
4.6 删除samba凭据
访问samba共享文件夹时如果不用输入密码则说明已有凭据保存,如果想用另一用户访问则要将凭据删除,再用另一用户登录(可能在删除凭据几分钟之后才能切换用户登录)。
Windows控制面板->凭据管理器->删除指定的凭据
4.7 配置SSH
执行apt-get install openssh-server,安装SSH。
启动ssh服务,执行/etc/init.d/ssh start。
通过SecureCRT使用ssh协议登陆ubuntu,其中Hostname在ubuntu端使用hostname命令查看,或者在Hostname栏填写Ubuntu的IP。
通过以下修改允许root用户通过ssh协议远程登录,
vim /etc/ssh/sshd_config
注释掉PermitRootLogin prohibit-password,添加 PermitRootLogin yes
若服务已经启动则需要执行/etc/init.d/ssh restart重新启动服务
4.8 VMWare文件夹共享
Samba方便在Windows访问Ubuntu的文件,VMware文件夹共享功能则方便Ubuntu访问Windows的文件。共享的文件夹可以在/mnt/hgfs/下看到,最好在Windows端设置文件夹的读写权限,以免在Linux出现访问权限的问题。
4.9 nfs配置
安装nfs server,执行apt-get install nfs-kernel-server。
vim /etc/exports,比如在文件最后添加如下内容:
/home *(rw,sync,no_subtree_check,no_root_squash)
执行service nfs-kernel-server start启动nfs服务
选择可以通过nfs访问的路径,以/home为例,
在板端挂载Ubuntu端的文件夹,
mount -t nfs 192.168.40.133:/home/ /mnt -o nolock
4.10 ftp环境搭建
参考网址:
https://www.cnblogs.com/peteremperor/p/6513740.html
https://www.netsarang.com/zh/xftp/
在linux端搭建ftp服务器,然后在其他平台通过ftp协议与之传输文件。
使用apt-get install vsftpd命令安装ftp服务器
在/etc/vsftpd.conf中添加如下内容:
userlist_deny=NO
userlist_enable=YES
userlist_file=/etc/allowed_users
seccomp_sandbox=NO
同时确保字段anonymous_enable=NO、local_enable=YES
在/etc/allowed_users文件中写入开通访问ftp服务器的用户列表,比如只写入root
在/etc/ftpusers文件中删除被限制访问ftp服务器的用户列表,比如删除root
service vsftpd restart
此时可以在Windows命令行进行简单的文件传输操作,或者使用xftp软件更方便地传输文件或文件夹。
以下是使用xftp创建会话的截图:
4.11 安装tftp服务器
apt-get install tftpd tftp openbsd-inetd
vim /etc/inetd.conf,增加下列一行
mkdir -m777 /tftproot
/etc/init.d/openbsd-inetd restart
查看69端口是否有打开:netstat -an | more | grep udp
测试:
在/tftproot 下新建文件a.txt
echo “aaaabb”> /tftproot/a.txt
在其他目录下测试
lijun@:~$ tftp 127.0.0.1
tftp> get a.txt
Received 8 bytes in 0.0 seconds
tftp> q
lijun@:~$ ls -l a.txt
-rw-r--r-- 1 lijun lijun 7 Sep 8 19:26 a.txt
使用Tftpd32在Windows上测试(Local File可能要手动输入):
点击”Get”按键,获取成功,有如下显示:
在开发板使用busybox的tftp命令,
命令格式为:tftp [option] ... host [port]
如果要下载或上传文件的话是一定要用这些option的。
-g表示下载文件(get)
-p表示上传文件(put)
-l表示本地文件名(local file)
-r表示远程主机的文件名(remote file)
例如,要从远程主机192.168.1.2上下载embedexpert,则应输入以下命令
tftp -g -r embedexpert 192.168.1.2
要上传文件rtspd2到远程主机192.168.10.2,则应输入以下命令
tftp -p -r rtspd2 192.168.10.2,如果出现”tftp: server error: (2) Access violation”错误,则可以先在服务器端创建同名的rtspd2文件并赋予读写权限即可。
4.12 解决虚拟机时间不对
使用指定的时区文件替换/etc/localtime,
cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
4.13 更改PS1
环境变量PS1表现为shell命令的提示符(#)之前的那些字符,默认为当前路径名,当路径切换较深时会比较长,每个用户可以单独更改自己的PS1,vim ~/.bashrc
PS1='\u@\W\$ ',如下图
source ~/.bashrc
5 安装软件
5.1 安装gcc工具
执行apt-get install gcc
5.2 安装g++工具
执行apt-get install g++
5.3 安装subversion
apt-get install subversion
下载svn://192.168.0.254:8088/3516D/A125/bsp到当前目录下的空目录bsp下,用户名为”lijun”,密码为”lijun”:
svn checkout svn://192.168.0.254:8088/3516D/A125/bsp bsp --username=lijun --password=lijun
svn commit -m "add rjone.h" //带日志"add rjone.h"提交
svn add rjone.h //增加文件rjone.h,增加文件时执行该命令,否则提交时该文件不会加入版本库
svn delete FM5dot8G.h //删除FM5dot8G.h,删除文件时执行该命令,否则提交时该文件不会加入版本库
通过samba访问时可以在文件夹下用subversion的图形化工具
5.4 安装make工具
执行apt-get install make,apt-get install automake
5.5 安装uboot工具包
解决问题:"mkimage" command not found - U-Boot images will not be built
执行apt-get install u-boot-tools
5.6 安装zlib工具包
apt-get install zlib1g-dev
5.7 安装ncursesw工具包
apt-get install libncurses5-dev
解决scripts/kconfig/lxdialog/dialog.h:38:20: fatal error: curses.h: No such file or directory的问题。
5.8 安装squashfs-tools
apt-get install squashfs-tools
5.9 安装mtd-utils
apt-get install mtd-utils
5.10 安装flex/bison
主要解决执行make命令时出现:make: yacc: Command not found
apt-get install flex
apt-get install bison
5.11 安装lib32z1-dev
主要解决执行make时找不到海思交叉编译工具链(此时已经安装了工具链也报错说找不到)
apt install lib32z1-dev
make: arm-himix100-linux-gcc: Command not found
5.12 安装bc
主要解决编译海思发布包里面的uboot时报的问题/bin/sh: bc: command not found
apt-get install bc
5.13 安装patch
主要解决编译海思发布包时报的问题/bin/sh: patch: command not found
apt-get install patch
5.14 安装libuuid1:i386
主要解决编译海思发布包时报的问题configure: WARNING: cannot find uuid library required for mkfs.ubifs
apt-get install libuuid1:i386
5.15 安装liblzo2-dev
apt-get install liblzo2-dev
5.16 安装pkg-config
apt-get install pkg-config
5.17 安装libncursesw5-dev
apt-get install libncursesw5-dev
5.18 安装texinfo
apt-get install texinfo
5.19 安装texlive
apt-get install texlive
5.20 安装libssl-dev
apt-get install libssl-dev
5.21 安装openssl
apt-get install openssl
5.22 安装u-boot-tools:i386
apt-get install u-boot-tools:i386
5.23 安装u-boot-tools
apt-get install u-boot-tools
5.24 安装gperf
apt-get install gperf
5.25 安装glibc、posix接口man手册
apt-get install glibc-doc
apt-get install manpages-posix-dev