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

编程知识 更新时间:2023-04-17 00:23:07

系统装机


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/python2.7

             重新执行 “./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 " 即可, 一般都能通过,否则,多换几次版本试试。

更多推荐

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

本文发布于:2023-04-13 15:08:00,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/f8e292b9f3673103cdf94bb1a9ae77ea.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:装机   小结   过程   代码   环境

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!

  • 72909文章数
  • 14阅读数
  • 0评论数