系统装机
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 " 即可, 一般都能通过,否则,多换几次版本试试。