ubuntu18.04发布了也有一段时间,作为嵌入式小白的我跃跃欲试,于是就下载安装并进行简单的配置。将过程记录下来,以供参考。
首先在官网下载镜像,之后在虚拟机中进行系统的安装。我用的虚拟机是VMware Workstation Pro,版本号是14.1.2。
安装完成之后进入系统,提示系统升级,好吧,升级吧,越新越好。
等待升级完成,接下来进行配置。
1. 将系统语言设置为简体中文。
点击左下方九点菜单,弹出菜单窗口,单击"Language Support",弹出提示框,点击“install”,应该是在下载一些语言包吧。完成后,点击“Install/Remove Language...”,在“Chinese(Simplified)”后面的复选框打勾,点击“Apply”,这时胡让你输入密码,还能怎样,输吧。之后又会自动下载安装一些文件,等待其完成。到这你以为设置完了吗?不!还有最后一步,在语言选择框中将“汉语(中国)”拖拽到第一项,如图中所示。点击“close”,并重启ubuntu系统,你会发现wow!
2. 设置共享文件夹。
2.1 在之前的版本中要安装VMware Tools才能设置,但是好消息是这个版本似乎不用VMware Tools就可以设置,应该是默认安装了。在虚拟机菜单中:“虚拟机---设置---选项---共享文件夹---总是启用---添加(路径)---确定”即可。然后在终端中输入命令行:“ls /mnt/hgfs/”,如果显示出共享文件夹的名字,算设置成功。
2.2 为了方便访问共享文件夹,我在根目录下创建了链接,执行命令行:“ln -s /mnt/hgfs/winshare/ ./winshare”,(winshare)是我的共享文件夹名。“ls”可以看见建立的链接。
3. 搭建tftp服务
3.1 执行“sudo apt-get install tftp tftpd xinetd”进行所需的软件安装。
3.2 建立配置文件。执行命令“vi /etc/xinetd.d/tftp”,在文件中输入
service tftp
{
socket_type = dgram
protocol = udp
wait = yes
user = root
server = /usr/sbin/in.tftpd
server_args = -s /tftpboot
disable = no
per_source = 11
cps = 100 2
flags = IPv4
}
保存退出。
3.3 建立tftp服务文件目录。
执行命令"sudo mkdir /tftpboot" ,将其权限设置为777,即可读可写可执行:“sudo chmod 777 /tftpboot -R”。
3.4 重启tftp:“sudo /etc/init.d/xinetd restart”。
4. 安装交叉编译工具链。
4.1 安装过程。我选择的是arm-2009q3。这里就需要用到共享文件夹。在windows下将工具包放到共享文件夹,进入超级用户(sudo su)。理论上将其安装到任何位置都可以的,但是为了规范,选择将其安装在/usr/local目录下。执行命令“mkdir /usr/local/arm”新建arm文件夹。进入到/arm目录下,将编译工具包复制到该目录下“cp /mnt/hgfs/winshare/arm-2009q3.tar.bz2 ./”。进行安装,其实就是解压文件“tar -jxvf arm-2009q3.tar.bz2”。进入arm-2009q3/bin/目录,可看到安装好的工具。
4.2 测试与问题解决。执行“./arm-none-linux-gnueabi-gcc -v”,发现提示“bash: ./arm-none-linux-gnueabi-gcc: 没有那个文件或目录”,经过分析和网络提问(感谢大佬),结果是缺少一些32库,那就安装吧,分别执行“sudo apt-get install lsb-core”和“sudo apt-get install lib32z1 lib32ncurses5”,安装完成后执行“./arm-none-linux-gnueabi-gcc -v”后,显示一大堆数据,结尾是“gcc version 4.4.1 (Sourcery G++ Lite 2009q3-67)”,表示安装成功。
4.3 但是这个只能在安装目录下使用,为了能在任何地方(目录)都可以使用,我设置了环境变量,过程如下。
执行“export PATH=/usr/local/arm/arm-2009q3/bin:$PATH”,目的是将安装目录加到环境变量中。完成后到其他目录执行“arm-none-linux-gnueabi-gcc -v”进行测试,显示可行。但是(又是一个但是),另外开启一个终端,发现会出现上面的问题,解决方法如下:在.bashrc中添加“export PATH=/usr/local/arm/arm-2009q3/bin:$PATH”即可,因为我们在每次开启终端时,都会执行.bashrc文件。
4.4 优化。安装完成后发现命令行似乎有些长,便将其们链接为较短的命令。将代码复制到文本,扩展名改为.sh,然后在安装目录下执行即可。“source 文件名,sh”。
ln arm-none-linux-gnueabi-addr2line -s arm-addr2line
ln arm-none-linux-gnueabi-ar -s arm-ar
ln arm-none-linux-gnueabi-as -s arm-as
ln arm-none-linux-gnueabi-c++ -s arm-c++
ln arm-none-linux-gnueabi-c++filt -s arm-c++filt
ln arm-none-linux-gnueabi-cpp -s arm-cpp
ln arm-none-linux-gnueabi-g++ -s arm-g++
ln arm-none-linux-gnueabi-gcc -s arm-gcc
ln arm-none-linux-gnueabi-gcc-4.4.1 -s arm-gcc-4.4.1
ln arm-none-linux-gnueabi-gcov -s arm-gcov
ln arm-none-linux-gnueabi-gdb -s arm-gdb
ln arm-none-linux-gnueabi-gdbtui -s arm-gdbtui
ln arm-none-linux-gnueabi-gprof -s arm-gprof
ln arm-none-linux-gnueabi-ld -s arm-ld
ln arm-none-linux-gnueabi-nm -s arm-nm
ln arm-none-linux-gnueabi-objcopy -s arm-objcopy
ln arm-none-linux-gnueabi-objdump -s arm-objdump
ln arm-none-linux-gnueabi-ranlib -s arm-ranlib
ln arm-none-linux-gnueabi-readelf -s arm-readelf
ln arm-none-linux-gnueabi-size -s arm-size
ln arm-none-linux-gnueabi-sprite -s arm-sprite
ln arm-none-linux-gnueabi-strings -s arm-strings
ln arm-none-linux-gnueabi-strip -s arm-strip