Linux系统的开发环境搭建的具体流程笔记

流程:uboot---->Linux系统---->根文件系统

本次开发是基于在A9开发板----tiny4412

注:1)基本指令
	su : 切换用户
	格式: su 用户名
	sudo:下方管理员权限
	格式: sudo  命令
	2)磁盘管理指令
	绝对路径:从根目录开始到某一目录的完整路径
	相对路径:从当前目录开始到某一目录的路径
	1. ls : 列出某一目录下的文件
		格式: ls  目录列表
			ls -l :显示详细信息
			ls -a :显示全部文件
	2. pwd: 查看当前目录----绝对路径
	3. cd :切换目录
		格式: cd  路径
		特别的:
			. :当前目录
			..:上一级目录
			~ :家目录
			/ :根目录
			- :上一次所在的目录
	4. cp :复制
		格式: cp 带路径的文件名列表 目标路径
				cp 文件名 目标路径
			如果要复制目录加 -r 选项
	5. mv :剪切和重命名	
		格式: 
		剪切:mv 带路径的文件名列表 目标路径
		重命名:mv 
			
	6. rm :删除
		格式: rm 文件名
		
		通配符:*代表所有的
		如果要删除目录加 -r 选项
	7. touch :创建文件
		格式:touch 带路径的文件名列表
		
	8. mkdir :创建一个目录
		格式:mkdir 带路径的文件夹名列表
		注意:可以加-p 选项创建多级目录
		
	9. tar :打包和解压
		打包:tar -cvf 目标文件名 文件列表
		注:目标文件名必须以.tar 为后缀
		解包 tar -xvf 文件名

准备工作

:Ubuntu 开发环境搭建
①下载 VMware Workstation 虚拟机软件
②下载 Ubuntu 镜像(Ubuntu 中文官方网址为 http://cn.ubuntu.com)
虚拟机安装过程网上太多,不再详述。
在虚拟机 VMware 下装完操作系统后,需要安装 VMware 提供的增强工具 VMware Tools,以便能够实现主机和虚拟机之间的文件共享和直接拖拽的功能,下面是在 Ubuntu 系统中 VMware Tools 安装的具体步骤。
(1)、在 VMware Workstation 菜单栏选择虚拟机选项,选择安装 VMware tools
在这里插入图片描述
(2)、在 Ubuntu 系统中查看左侧任务栏选择“文件”,可以看到出现 VMware tools 选项,如若未出现请执
行第三步
在这里插入图片描述
(3)、如若未出现 VMware tools 选项,可通过 VMware Workstation 菜单栏选择虚拟机选项中的设置功能选
项将 CD/DVD 选项中的 ISO 映像文件选择为 VMware Workstation 安装目录下的 linux.iso,然后重启虚拟机即可
在这里插入图片描述

(4)、注意 CD/DVD 驱动器设备挂载目录“/media/cdrom0" ,它是一个虚拟的 CD/DVD 驱动器挂载目录,
这个目录的权限当然只有“只读“权限,所以可以将 VMwareTools 的 tar.gz 包拷贝到其他目录进行安装,一般选
择 /tmp,可以在空白处右键,使用“在终端打开”,使用 cp 指令进行拷贝,也可以右键拷贝粘贴
在这里插入图片描述
指令:
cp VMwareTools-10.2.0-7259539.tar.gz /tmp
cd /tmp/
sudo tar -xvf VMwareTools-10.2.0-7259539.tar.gz
cd vmware-tools-distrib/
注意:通过右键“在终端打开”的时候一定要在 VMwareTools-10.2.0-7259539.tar.gz 的同一级目录下面
的空白处点击鼠标右键。
(5)、运行可执行文件,出现第一个选项时输入“y”,然后回车,后面所有的选项均可直接回车,直至出现
终端提示符;
在这里插入图片描述
在这里插入图片描述
(6)、在命令行输入 reboot 重启系统即可使用 VMwareTools

(7)、Ubuntu 设置 t root 登录

 1)Ubuntu 管理员用户 root 默认没有密码,在使用前最好添加密码,使用指令sudo passwd root!

root 用户密码设置

 2)Ubuntu想要用root帐户登录,可在普通帐户权限下打开终端,进入lightdm.conf.d,并打开50-ubuntu.conf文件;
 指令:cd /usr/share/lightdm/lightdm.conf.d         

 sudo gedit 50-ubuntu.conf

 3)修改 50-ubuntu.conf 文件内容,在文件为添加 greeter-show-manual-login=true,保存并退出 ;

在这里插入图片描述

4)注销重启 ,启动后在登录界面点击登录 >> 输入 root >> 输入密码 >> 登录;

在这里插入图片描述

 5)登录后会有以下错误提示;

在这里插入图片描述

 6)解决方式
 gedit /root/.profile
 将文件修改为:

profile 文件

7)保存文件后对 Ubuntu 系统进行注销重启,在此使用 root 用户登录不会出现错误提示;
                                   到此准备工作完成了!!
                                   下面才是正题!!!

一、uboot引导文件编译烧写

U-boot,是常用的嵌入式操作系统启动程序。著名的开源 bootloader 程
序。可以启动 linux、android 等系统。
作为 bootloader 它的最基本的作用为:1、把操作系统镜像从介质如 flash、nand、SD 卡等加载到内存(可以用于从 u盘启动系统)2、在内存中把操作系统启动,启动时可以向操作系统传递启动配置信息。
3、当然它还有一个简单的控制台,利用串口与用户交互以提供一些额外的辅助功能,如在 OS 启动前查看内存、数据拷贝、查看 OS 镜像信息、检查坏块等。

  ① 登录 ,在空白处右键在终端打开
执行以下命令:
	cp VMwareTools-10.2.0-7259539.tar.gz /tmp
	cd /tmp
	sudo tar -xvf VMwareTools-10.2.0-7259539.tar.gz
	cd vmware-tools-distrib/
	sudo ./vmware-install.pl

uboot移植:
(1)把 uboot_tiny4412-sdk1506.tar.bz2 拷贝到虚拟机里面解压,并进入解压好的目录。
tar -xjvf uboot_tiny4412-sdk1506.tar.bz2
cd uboot_tiny4412-sdk1506
(2) 选型:make tiny4412_config
(3) 编译: make
(4)制作烧写工具:进入sd_fuse目录
cd sd_fuse
make
(5)烧写uboot到SD卡: 进入tiny4412:
cd tiny4412
cd /ARM/uboot_tiny4412-sdk1506/sd_fuse/tiny4412/
./sd_fusing.sh /dev/sdb

扫描二维码关注公众号,回复: 11983959 查看本文章

二、zImage内核的裁剪和烧写:

(1)将 linux-3.5-20140822.tgz 拷贝到虚拟机解压,并进入该目录
tar -xvf linux-3.5-20140822.tgz
cd linux-3.5
(2)修改顶层Makefile指定交叉编译工具
gedit Makefile +197
修改为:CROSS_COMPILE ?= arm-linux-
(3)复制配置文件:
cp tiny4412_linux_defconfig .config
安装图像化剪切工具:
apt install ncurses-dev
(4)使用图形化界面来裁剪内核
make menuconfig

修改如下:
	按上下方向键选择第 4 个敲击回车。选择下面图中的选项敲空格。即去除内核
	编译选项。然后退出保存。
	System Type -->
		[ ] Support TrustZone-enabled Trusted Execution Environment

(5)修改错误
修改kernel目录下的timeconst.pl的373行,修改为if ((@val))
(6)编译
make
make zImage
最后在 arch/arm/boot 里面生成我们要烧写的zImage。
(7)烧写内核到SD卡
将 fush_uimage 拷到 arch/arm/boot 目录里面,把 sd 卡挂接到虚拟机里面。
执行./fush_uimage。最后提示内核烧写成功。

dd iflag=dsync oflag=dsync if=./zImage of=/dev/sdb seek=1057
zImage内核的裁剪和烧写:

(1)将 linux-3.5-20140822.tgz 拷贝到虚拟机解压,并进入该目录
tar -xvf linux-3.5-20140822.tgz
cd linux-3.5
(2)修改顶层Makefile指定交叉编译工具
gedit Makefile +197
修改为:CROSS_COMPILE ?= arm-linux-
(3)复制配置文件:
cp tiny4412_linux_defconfig .config
安装图像化剪切工具:
apt install ncurses-dev
(4)使用图形化界面来裁剪内核
make menuconfig

修改如下:
	按上下方向键选择第 4 个敲击回车。选择下面图中的选项敲空格。即去除内核
	编译选项。然后退出保存。
	System Type -->
		[ ] Support TrustZone-enabled Trusted Execution Environment

(5)修改错误
修改kernel目录下的timeconst.pl的373行,修改为if ((@val))
(6)编译
make
make zImage
最后在 arch/arm/boot 里面生成我们要烧写的zImage。
(7)烧写内核到SD卡
将 fush_uimage 拷到 arch/arm/boot 目录里面,把 sd 卡挂接到虚拟机里面。
执行./fush_uimage。最后提示内核烧写成功。

dd iflag=dsync oflag=dsync if=./zImage of=/dev/sdb seek=1057
zImage内核的裁剪和烧写:

(1)将 linux-3.5-20140822.tgz 拷贝到虚拟机解压,并进入该目录
tar -xvf linux-3.5-20140822.tgz
cd linux-3.5
(2)修改顶层Makefile指定交叉编译工具
gedit Makefile +197
修改为:CROSS_COMPILE ?= arm-linux-
(3)复制配置文件:
cp tiny4412_linux_defconfig .config
安装图像化剪切工具:
apt install ncurses-dev
(4)使用图形化界面来裁剪内核
make menuconfig

修改如下:
	按上下方向键选择第 4 个敲击回车。选择下面图中的选项敲空格。即去除内核
	编译选项。然后退出保存。
	System Type -->
		[ ] Support TrustZone-enabled Trusted Execution Environment

(5)修改错误
修改kernel目录下的timeconst.pl的373行,修改为if ((@val))
(6)编译
make
make zImage
最后在 arch/arm/boot 里面生成我们要烧写的zImage。
(7)烧写内核到SD卡
将 fush_uimage 拷到 arch/arm/boot 目录里面,把 sd 卡挂接到虚拟机里面。
执行./fush_uimage。最后提示内核烧写成功。

dd iflag=dsync oflag=dsync if=./zImage of=/dev/sdb seek=1057

三、根文件系统的搭建

1、如何搭建交叉编译器
(1)获得源码:开发板光盘A/linux/ arm-linux-gcc-4.5.1-v6-vfp-20120301.tgz
(2)拷贝源码到Ubuntu系统中/driver(创建的一个目录)的文件夹下
(3)进入存放目录,解压缩到根目录
tar -xzvf arm-linux-gcc-4.5.1-v6-vfp-20120301.tgz -C /
注:-C选项制定了解压路径,指定在 / ,解压出来后的目录名为opt,所以会存放在/opt下。
(4)修改环境变量,把交叉编译器的路径加入到PATH
方法:修改/etc/profile文件(为系统的每个用户设置环境信息,当用户第一次登录时,该文件被执行.并从/etc/profile.d目录的配置文件中搜集shell的设置):
# vim /etc/profile
增加路径设置,在末尾添加如下,保存/etc/profile文件:
export PATH=$PATH: /opt/FriendlyARM/toolschain/4.5.1/bin
(5)立即使新的环境变量生效,不用重启电脑:
 方法:# source /etc/profile
(6)检查是否将路径加入到PATH:
   # echo $PATH
显示的内容中有/opt/FriendlyARM/toolschain/4.5.1/bin,说明已经将交叉编译器的路径加入PATH,交叉编译环境变量添加成功。
(7)安装32位库兼容包
sudo apt-get install lib32ncurses5 lib32z1
(8)测试是否安装成功
此时你可以在控制台输入:arm-linux-gcc -v ,如果安装成功将会输出 arm-linux-gcc的版本号。
2、可使用BusyBox,好处(1)减小文件尺寸(2)减轻编译工作量。它的配置就不写了。
3、最后构建根文件系统
(1)配置inittab文件
(2)配置fstab文件
(3)配置rcS文件
(4)配置profile文件
(5)创建控制台设备文件和万能垃圾桶
(6)修改配置文件权限
(7)NFS文件系统挂接(实现Linux和Linux之间的文件共享)
(8)关 linux 防火墙
设置虚拟机网络 IP可以实现虚拟机与开发板(linux)的通信。

猜你喜欢

转载自blog.csdn.net/weixin_43175701/article/details/103878082