1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > Ubuntu 16.04 系统装机 编译环境配置及代码编译过程小结

Ubuntu 16.04 系统装机 编译环境配置及代码编译过程小结

时间:2022-04-01 08:10:53

相关推荐

Ubuntu 16.04 系统装机 编译环境配置及代码编译过程小结

系统装机

DELL系统主机U盘启动BIOS设置:

(1)开机按F2或F10进入BIOS模式;

(2)将“Secure Boot--> Secure Boot Enable”中的"Enable" 设置为“Disable”;

(3)将“General--> advanced boot options”设置为“Enable Legacy Option ROMs”

(4)将“General--> Boot sequences” 选项 "Legacy"中的"USB Storage Device"移动到第一顺位,点击“apply”和“ok”即可;

(5)从"Legacy"切换到"UEFI",选择"UEFI Hard Drive.Partrition" ,点击“apply”和“ok”即可;

(6)按ESC退出,在出现的弹窗内选择" install the ubuntu",回车即可

(7)进行例如“ next-->next....--Finished”的安装配置,尽量配置语言为英语,设置简单Root用户及密码即可。

华硕系统U盘启动BIOS设置:

(1)开机按F2或delete进入BIOS模式;

(2)将“Advanced”中的"USB configure" 设置为 legacy USB “Enable” 和 启动顺序“HardDisk”

(3)将“启动”中的option设置为U盘的选项,然后关闭安全启动,删除安全密钥

(4)再次启动后进入BIOS后直接按Esc退出即可,而后选择install Ubuntu选项

(5)进行例如“ next-->next....--Finished”的安装配置,尽量配置语言为英语,设置简单Root用户及密码即可。

编译环境配置:

(包括硬盘分区、测试及挂载,新建用户、路径配置及权限修改,文件拷贝、软件安包安装,环境变量配置,git账户建立及代码下载、同步,顺序编译等,按照以下顺序执行即可)

1.1查看分区情况

sudo fdisk -lu

查看分区大小以及类型

1.2若是没有合适的分区或者想重新可以格式化硬盘(不可格式化系统盘)

sudo fdisk /dev/sda(或sdb)

enter n

enter p

enter 1/2/3

enter 输入初始地址 2048/enter

enter 输入终止地址 enter/+相应的容量

enter p 查看分区情况

enter w 保存分区设置

sudo fdisk -lu 查看分区类型是否合适(ext4)

(若想删除分区,可在sudo fdisk /dev/sda(或sdb)执行后的输入提示中enter d 就可逐个删除已有分区)

sudo mkfs.ext4 /dev/sdb1(或sdb2等) 格式化各分区类型为ext4

1.3 挂载硬盘到相应的文件夹下面(我们将硬盘分成三个区,分别为备用区sdb1,下载区sdc1,用户区usr)

sudo mkdir /mnt/sdb1 创建相应的文件夹

sudo mkdir /mnt/sdc1

sudo mkdir /mnt/usr

sudo mount -t ext4 /dev/sdb1 /mnt/sdb1 实施挂载操作

sudo mount -t ext4 /dev/sdb2 /mnt/usr

sudo mount -t ext4 /dev/sdb3 /mnt/sdc1

(如果想解除某个挂载可以用umount指令,sudo umount 分区 文件夹)

df -lh 查看分区挂载到哪个文件夹

1.4 修改配置文件/etc/fstab使得分区能在电脑开机时自动挂载上

sudo apt install pluma 安装pluma指令(若pluma命令已经安装可不装)

sudo blkid 查看硬盘的类型以及UUID

sudo pluma /etc/fstab

添加 “UUID=相应硬盘分区的UUID” ext4 相应文件所挂载的文件夹 defaults 0 0 到/fstab中

“UUID=sdb1的UUID” ext4 /mnt/sdb1 defaults 0 0

添加好之后保存叉掉退出

使用reboot指令重启 重启后使用mount指令查看是否挂上去 若没有,请重复上述操作

1.5 测试硬盘读写速度

sudo apt install hdparm -y 安装hdparm

sudo hdparm -tT /dev/sdb1

sudo hdparm -tT /dev/sdb2

sudo hdparm -tT /dev/sdb2

2.1 建立普通用户

sudo adduser 用户名

enter 输入密码

enter 再次输入密码

enter 输入全名

enter 输入房间号

enter 输入工作电话

enter 输入家庭电话

enter 输入other备注

以上的后五个enter可不输入(直接回车即可)

enter Y 确认信息

2.2 改变用户路径

sudo apt install vim 下载vim以便修改文档 (若已存在可不下载)

sudo vim /etc/passwd 进入passwd配置文件

按i进入insert模式(终端左下角出现insert说明进入insert模式)

移动到刚设置的用户那一行(一般在最下面)

改变原来的用户路径,例如新建的用户名为jacob1,则初始配置为

jacob1:x;1001:1001:,,,:/home/jacob1;/bin/bash

修改为

jacob1:x;1001:1001:,,,:/mnt/usr/jacob1;/bin/bash(记得预先在/mnt/usr文件夹中创建jacob1文件夹)

按esc退出insert模式 再同时按shift和: 当终端左下角出现冒号时输入wq退出并保存 输入q!则是强制退出不保存

2.3 改变用户文件夹拥有者(若不改可能会导致该用户登录不进去)

cd /mnt/usr 进入文件夹/mnt/usr

ll 查看文件夹权限

sudo chown jacob1:jacob1 jacob1 修改文件拥有者以及拥有者群组

ll 确认是否修改完成

reboot 重启

登录到用户名为 jacob1的用户

2.4 由于需要安装某些程序,先使用有root权限的账户

su root权限用户名

输入密码

3.1 利用ssh从别的主机拷贝文件

先建立相应文件夹

cd进入文件夹

使用scp指令拷贝文件夹

一般指令如下:

sudo mkdir -p /mnt/sdc1/backup

cd /mnt/sdc1/backup

sudo scp -r vliu@10.22.67.10:/mnt/sdc1/backup/backup.sh ./

sudo scp -r vliu@10.22.67.10:/mnt/sdc1/backup/res.sh ./

sudo scp -r vliu@10.22.67.10:/mnt/sdc1/backup/Python-2.7.6.tgz ./

sudo scp -r vliu@10.22.67.10:/mnt/sdc1/backup/60f6d4690dfe.zip ./

后执行 backup.sh文件: sudo ./backup.sh

若出现Syntax error ,一般使用 sudo dpkg-reconfigure dash指令 选择No 然后回车即可。

3.2 安装各种程序

一般指令如下:

sudo apt-get install -y ssh samba vim

sudo apt-get install -y build-essential chrpath coreutils cvs desktop-file-utils diffstat docbook-utils fakeroot g++ gawk gcc git git-core help2man libgmp3-dev libmpfr-dev libreadline6-dev libtool libxml2-dev make python-pip python-pysqlite2 quilt sed subversion texi2html texinfo unzip wget scons repo libc6:i386 libx32z1 lib32z1 lib32stdc++6 python-jinja2 scons zlib1g-dev libbz2-dev libssl-dev autoconf automake libsqlite3-dev

sudo apt-get install -y openjdk-9-jre-headless

sudo apt-get install -y build-essential python python-jinja2 python-pkg-resources cmake git subversion libsdl1.2-dev diffstat texinfo gawk chrpath wget cpio vim zsh bash ninja-build screen bc python-git unzip libxml2-utils gcovr libcurl4-gnutls-dev zlib1g-dev libbz2-dev bsdiff libssl-dev autoconf automake

sudo apt-get install -y git

sudo apt-get install -y repo

sudo apt-get install -y scons

sudo apt-get install -y lib32z1 lib32stdc++6

sudo apt-get install -y openjdk-9-jre-headless

sudo apt-get install -y build-essential python python-jinja2 python-pkg-resources cmake git subversion libsdl1.2-dev diffstat texinfo gawk chrpath wget cpio vim zsh bash ninja-build screen bc python-git unzip libxml2-utils gcovr libcurl4-gnutls-dev zlib1g-dev libbz2-dev bsdiff libssl-dev autoconf automake libcap-dev

sudo apt-get install build-essential chrpath coreutils cvs desktop-file-utils diffstat docbook-utils fakeroot g++ gawk gcc git git-core help2man libgmp3-dev libmpfr-dev libreadline6-dev libtool libxml2-dev make python-pip python-pysqlite2 quilt sed subversion texi2html texinfo unzip wget scons

sudo apt-get install libc6:i386 libx32z1 lib32z1 realpath openjdk-7-jre

sudo apt install libsqlite3-dev

sudo rm /bin/sh

sudo ln -s /bin/bash /bin/sh

sudo apt-get install llvm clang

//安装java

//Install JAVA machine (maybe not need for some package install)

sudo add-apt-repository ppa:webupd8team/java

sudo apt-get update

sudo apt-get install oracle-java8-installer

其中安装repo从已有的主机拷贝或自行下载安装

方法(1): 直接拷贝法:

su Root用户 //切换为超级用户

cd usr/bin //进入本机usr/bin目录

sudo rm -r repo //删除默认的repo文件

sudo scp -r vliu@10.22.67.10:/usr/bin/repo ./ //从其他服务器拷贝repo文件到当前目录下

方法(2)下载安装法:

git clone -b sierra git://10.22.1.102/external/repo git repo

cp git-repo/repo /usr/bin/repo

rm -rf git-repo

//sudo chown -R root:root /pkg/qct/software/llvm/release/arm

//sudo chmod -R 755 /pkg/qct/software/llvm/release/arm

//sudo chown -R root:root /prj/llvm-arm/home/common/build_tools

//sudo chmod -R 755 /prj/llvm-arm/home/common/build_tools

3.3 安装scons

cd /mnt/sdc1/backup 进入从主机下载目录

sudo unzip 60f6d4690dfe.zip 解压60f6d4690dfe.zip

cd dirkbaechle-scons_fastcpp-60f6d4680dfe 进入文件夹

sudo scons install 安装scons

3.4 由于许多必要的文件在别的主机上已经安装好了,拷贝过来直接用可以节约安装的时间

思路:

从别的主机抓取/pkg和/prj

ssh vliu@10.22.67.10

cd /mnt/sdc1/backup

cd 再连按两次Tab 查看/mnt/sdc1/backup目录下有/pkg和/prj

回到本机超级用户的终端

cd / 进入根目录

sudo scp -r vliu@10.22.67.10:/mnt/sdc1/backup/pkg / (该指令从主机10.22.67.10上将根目录下/mnt/sdc1/backup的/pkg拷贝到本机根目录下)

sudo scp -r vliu@10.22.67.10:/mnt/sdc1/backup/prj /

具体执行指令:

su root用户

cd /

sudo scp -r vliu@10.22.67.10:/mnt/sdc1/backup/pkg /

sudo scp -r vliu@10.22.67.10:/mnt/sdc1/backup/prj /

环境变量配置:

思路:

从别的主机复制环境变量的配置

ssh vliu@10.22.67.10

cat /etc/profile

回到本机超级用户的终端

sudo vim /etc/profile 进入本机profile配置文件并进入Insert模式

自行对比两个文档的不同,并将本机缺少的补全(复制粘贴即可)

修改完成后,按ESC退出Insert模式, 按“shift加冒号‘:’,在其后输入wq,回车即可”

最后执行reboot进行重启配置

//包括拷贝 /etc/network/interfaces /etc/samba/smbconf /etc/hosts 都是类似的操作

3.5 python安装与配置

由于主机默认自带python-2.7.12,能够满足使用要求,所以仅需要进行简单配置即可

将路径/pkg/qct/software下得python文件夹删除并新建一个空的文件夹

cd /pkg/qct/software

sudo rm -r python

sudo mkdir python

sudo ln -s /usr /pkg/qct/software/python/2.7//建立链接

python -V//查看Python版本为2.7.12即为ok

3.6 在普通的账户终端中添加git账户(用于下载code使用)

git config --global user.name "用户名”

git config --global user.email "本人的公司邮箱”

git config --global core.editor "vim"

git config --global core.filemode false

4.1 从git中下载文件并进行同步

cd 普通用户的路径

mkdir code

cd code

repo init -u git://10.22.1.102/manifest -m sa515m/branches/sa515mr21_3.0_afp_rn91xx.r0.xml

repo sync

4.2 编译

make image_src 在所下载的文件的上层文件夹(若上一步创建的文件夹为code则是code下)执行

./mktarg.sh boot

./mktarg.sh uefi

./mktarg.sh aop

./mktarg.sh tz

./mktarg.sh mpss

./mktarg.sh common

//以上指令要按顺序依次执行

注:

//若出现某个.c文件编译出现问题,可能是文件被改动后出现的bug,可以尝试以下指令,将文件退回之前的版本:

cd 文件夹路径

git log 查看版本的日志信息

选择先前版本的版本号

git checkout 版本号

重新执行./mktarg.sh

4.3 建立samba账户并激活

一般执行指令如下:

$ sudo apt-get install samba

$ sudo apt-get install smbclient

$ samba -V

$ sudo vi /etc/samba/smb.conf

然后,添加以下内容到 samba.conf文件中:

[share]

comment = share folder

browseable = yes

path = /home/jacob/share // change to your owm path

create mask = 0777

directory mask = 0777

valid users = jacob

force user = nobody

force group = nogroup

public = yes

available = yes

创建share文件夹,并赋予其权限:

$ sudo mkdir share

$ sudo chmod 777 share

然后添加Samba用户及其密码:

$ sudo smbpasswd -a jacob // jacob is actually the user, just need to set password.

然后,重启进行初始化配置:

$ sudo /etc/init.d/samba restart

最后,我们就可以在windows下通过IP进行远程访问本机服务器, 步骤如下:

按键盘上的‘云’加上‘R’,进入输入界面

输入“\\IP”,回车

输入之前设置的Samba账户记密码

例如,

\jacob.zheng

123

按回车,我们机会进入以下路径:

“internet/IP/share”

打开share文件夹,一般是空的,我们可以在远程服务器终端通过Linux指令建立文档:

执行指令一般如下:

$ cd /home/jacob/share

$ touch test.txt // 创建一个test.txt

$ sudo vim test.txt //进入文档,可进行内容添加修改,退出保存即可

完成后,在windows端刷新即可看到文件,并进行打开查阅其内容。

最后,我们还可以查看其映射是否建立成功:

步骤如下:

计算机---映射网络驱动器---输入“\\IP\share”,点击完成

---在计算机-网络位置处即可查看到“share\\IP”的映射.

4.3 将IP设置为静态IP

$ su root用户

$ ifconfig// 获取网络名称,eg, eth0或enp0s31f6

$ sudo vim /etc/network/interfaces //进入网络配置文本界面

按“i” 进入“INSERT”模式

添加以下部分设置静态IP:

auto 网络名称

iface 网络名称 inet static

address 服务器静态IP(eg,10.22.67.10)

netmask 255.255.255.0

network 10.22.67.0

broadcast 10.22.67.255

gateway 10.22.67.1

dns-nameservers 10.22.10.1

dns-search ROLLINGWIRELESS.LOCAL

按“ESC”退出编辑模式

按shift 加上冒号“:”,光标会移动到文本左下角,

输入: “wq”对文本编辑内容进行保存并退出即可。

更改服务器名称:

$:sudo vim /etc/hostname

将文件中的服务器名称改成你想要的,退出保存即可;

而后,需要更改hosts中的服务器名称,与其保持一致,否则执行sudo操作时会很慢;

$:sudo vim /etc/hosts

更改hosts中的服务器名称,与其保持一致

新建用户,并设置为管理员用户:

$:sudo adduser username

enter 输入密码

enter 再次输入密码

enter 输入全名

enter 输入房间号

enter 输入工作电话

enter 输入家庭电话

enter 输入other备注

以上的后五个enter可不输入(直接回车即可)

enter Y 确认信息

$:sudo adduser username sudo

最后,重新打开终端,登录username用户,执行:

$:sudo su

即可看到username用户的管理员权限;、

更改username用户路径:

$:sudo apt install vim 下载vim以便修改文档 (若已存在可不下载)

$:sudo vim /etc/passwd 进入passwd配置文件

按i进入insert模式(终端左下角出现insert说明进入insert模式)

移动到刚设置的用户那一行(一般在最下面)

$:cd /mnt/usr

$:sudo mkdir username

改变原来的用户路径,例如新建的用户名为username,则初始配置为

username:x;1001:1001:,,,:/home/username;/bin/bash

修改为

username:x;1001:1001:,,,:/mnt/usr/username;/bin/bash

按esc退出insert模式 再同时按shift和冒号“:”当终端左下角出现冒号时输入wq退出并保存 输入q!则是强制退出不保存。

执行过程中,遇到的错误及解决方法汇总:

(1)ERROR 1 :

Task (/mnt/usr/zheng6/code/meta-rwi/platform/qti/meta-rwisa515m/recipes-kernel/linux-msm/linux-msm_git.bb:do_deploy)failed with exit code ‘1’.

分析: 此为内核编译错误,最可能原因为内核编译过程中缺少某些文件,也有可能是使用版本的代码bug导致(可能性极低);

解决方法: (1)删除内核编译部分,重新编译;

(2)如重新编译后仍有错误,建议查看用户目录下的.profile文件等是否缺失(导致执行编译时找不到相应的文件或路径等),操作指令如下:

$: ls .profile //查看是否有.profile文件, 如无,从其他服务器上拷贝过来到当前目录下(pwd查看当前目录)

$: ls .bashrc // 查看是否有.bashr文件, 如无,从其他服务器上拷贝过来到当前目录下(pwd查看当前目录)

或者

$: cd /home/zheng6 //进入用户目录

$: ll //查看用户目录下文件及其权限,若无.profile文件和.bashr文件,从其他服务器上拷贝过来到当前目录下

(2)ERROR 2

ERROR : build_all: error 2 while building devcfg devcfg_auto devcfg_tn keystore

ERROR : build_all: Error encountered when cleaning TZ.XF.5.0 for sdx55

INFO : build_all: Build encountered errors

INFO : build_all :Total elapsed time: 0 minutes, 3 seconds

Fail to build TZ with error 2, EXiting........

当执行 ./mktarg.sh tz 时报出上述错误,可以往上翻查导致报错的一些原因(错误)

本人查到的错误为: EnvironmentError: No too named "fastcpp": not a Zip file:....

fastcpp 为Scons 安装时会连带安装的一些包,建议查看当前安装目录下是否有这个文件

查看方法

$ cd 用户目录 //本人的为/mnt/usr/zheng6 , 进入用户目录下

$ cd 空格

然后连续按两次键盘上的Tab键, 即可进入查看当前目录下的所有文件

看一下是否有 .scons/ 存在, 如无, 重装scons

若有,但不在上述目录下,一般将.scons/移动到新建的普通用户目录下:

su root用户

sudo cp -r 当前目录/.scons 目标路径(一般为/mnt/usr/普通用户名)

如有且路径对,可进一步查看是否有fastcpp存在:

$: cd .scons/ //进入该文件目录下

然后连续按两次键盘上的Tab键, 即可进入查看当前目录下的所有文件,

正常fastcpp路径为: ./scons/site_scons/site_tools/fastcpp

如无, 重装scons, 再次查看,直到出现该文件为止。

(3)ERROR 3: 执行 sh/xxx.sh 时出现“Syntax error:'('unexpected"

解决方法: $: sudo dpkg-reconfigure dash

然后在出现的弹窗界面选择“NO”,回车即可。

(4)ERROR 4: 执行 ./configure --prefix=/pkg/qct/software/python/2.7 时出现"libinstall...."错误。

解决方法: $: sudo mv /pkg/qct/software/python/2.7/lib/python2.7 /pkg/qct/software/python/2.7/lib/

重新执行 “./configure --prefix=/pkg/qct/software/python/2.7 ”即可。

(5)ERROR 5: 执行" repo init -u git://10.22.1.102/manifest -m sa515m/branches/sa515mr21_3.0_afp_rn91xx.r0.xml " 时出现".repo/repo/main.py...line79 Syntax error"错误。

原因分析: 当前安装的repo有问题,无法使用。

解决方法: (1)删除本机“/usr/bin”路径下的repo文件 (切换到root用户,e, su zheng)

(2)从其他服务器拷贝repo到当前目录下:

$: sudo scp -r vliu@10.22.67.10:/usr/bin/repo /usr/bin

完成后,重新执行" repo init -u git://10.22.1.102/manifest -m sa515m/branches/sa515mr21_3.0_afp_rn91xx.r0.xml " 即可。

(6)ERROR 6: 当执行 ./mktarg.sh boot 时报出" Scons:...MATAZN..bltest.o...error ",

原因分析: 当前使用的code版本存在bug等问题,导致编译不过。

解决方法: (1)进入相应目录下: $: cd /code/sa515m/SA515M_boot/boot_images/

(2)查看git日志信息: $ : git log

(3) 复制最新版本前一版的 commit后面的ID号: 例如, 2ff373cc69b3187f8c57597ca9ca328ec2c221

(4) 更换版本,进行检查

$: git checkout 2ff373cc69b3187f8c57597ca9ca328ec2c221(ID)

完成后,重新执行" ./mktarg.sh boot " 即可, 一般都能通过,否则,多换几次版本试试。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。