Linux 编译服务器环境搭建
前情提要
主要用于 Linux & Android 代码编译启动盘制作(资料很多,不展开说明)ubuntu-20.04.6-live-server-amd64.iso下载
一、戴尔R740服务器
Dell PowerEdge R740 2U机架式服务器
名称规格数量CPU英特尔® 至强®银牌 4210R 2.4G, 10C/20T, 9.6GT/s 2UPI, 13.75M 缓存, Turbo, HT (85W) DDR4-2400,可扩展双路cpu,每个处理器多达 28 个核心1内存32GB RDIMM, 3200MT/s, 双列, x4 带宽2SSD硬盘1.92T SATA SSD 2.5英寸热插拔硬盘1机械硬盘8TB 7.2K RPM NLSAS 512n 3.5英寸热插拔硬盘,最大支持8块4RAID卡PERC H750 RAID 控制器, 8GB NV 线缆,PCIE1电源750W 单电源1RAIL001ReadyRails™ 静态导轨1
原厂建议安装 ubuntu20.04.2 以上版本
二、Ubuntu 20.04.6系统安装
1、安装界面语言选择
English
2、Install Ubuntu Serve
Select a language
English Select your location
Asia
China Configure locales
en_US.UTF-8 Configure the keyboard
No
English(US) Configure the network
Hostname
LinuxBuildServer Set up users and passwords
Full name for the new user
Linux Server Administrator Username for your account(默认具有sudo权限的账号)
lsa Choose a password for the new user
xxxxxxxx Encrypt your home directory?
No Configure the clock(自动探测时区)
若正确 -> Yes否则 -> 手动选择对应时区 Partition disks
/ 分区 主分区 ext4 64G 固态swap 逻辑分区 64G 固态 (内存的两倍)boot 逻辑分区 1G 固态home分区 17.830Tdocument 4T 文件存储、固件发布Hso 1.619T 固态Finish partitioning and write changes to disk Installing the systemConfigure the package manager
HTTP proxy information(blank for none)Configuring aptConfiguring tasksel
Install security updates automatically Software selection
[*] Samba file server[*] OpenSSH server Install the GRUB boot loader on a hard disk
Yes Finish the installation
Continue
3、系统配置
3.1 切换更新源
sudo vim /etc/apt/sources.list
:%s/cn.archive.ubuntu.com/mirrors.tuna.tsinghua.edu.cn/g
或:%s/cn.archive.ubuntu.com/mirrors.aliyun.com/g
sudo apt-get update
sudo apt-get upgrade
sudo reboot
3.2 安装编译 Android & Linux 所需包
sudo apt-get install vim ssh git git-core git-doc git-email \
rssh ctags vim-doc vim-scripts python python3 dos2unix ascii
sudo apt-get install gawk wget diffstat zip unzip texinfo \
tcl uuid uuid-dev texlive scrollkeeper \
gcc-multilib g++-multilib libc6-dev-i386 \
build-essential chrpath socat libsdl1.2-dev \
flex bison gperf libxml2-utils python-networkx \
zlib1g zlib1g-dev zlib1g-dev:i386 \
liblz-dev liblzo2-2 liblzo2-dev lzop \
u-boot-tools mtd-utils android-tools-fsutils \
gettext libgtk2.0-dev rpm m4 libfreetype6-dev \
libdbus-glib-1-dev liborbit2-dev intltool \
bc ccache ncurses-dev libtool \
asciidoc texlive-latex-base dblatex xutils-dev \
lib32z1 lib32ncurses5 \
openjdk-8-jdk
3.3 固定 IP 访问
sudo vim /etc/netplan/00-installer-config.yaml
network:
ethernets:
eno1:
addresses:
- 192.168.xxx.xx/24(固定静态IP)
gateway4: 192.168.xxx.xxx(默认网关)
nameservers:
addresses:
- 192.168.xxx.xxx(DNS服务器地址)
sudo systemctl restart NetworkManage
三、Ubuntu 20.04 服务器管理
3.1 账号创建
sudo useradd -m -U user-name -s /bin/bash sudo passwd user-name sudo smbpasswd -a user-name
3.2 账号删除
删除账号和其home目录所有内容: sudo userdel -rf user-name
只删除账号,不删除home目录: sudo userdel user-name
3.3 密码修改
ssh账号 sudo passwd user-name
samba账号 sudo smbpasswd user-name
3.4 添加sudo权限(慎行)
加入sudo group后此账号就会拥有服务器的全部管理权限 sudo usermod -aG sudo test
// 精准控制权限
sudo vim /etc/sudoers
// user-name可以无密码使用sudo权限来运行/usr/bin/rpm和/opt/freescale/ltib/usr/bin/rpm这两个程序
添加:user-name ALL = NOPASSWD:/usr/bin/rpm, /opt/freescale/ltib/usr/bin/rpm
3.5 其他指令
3.5.1 who
查询登录状态账号|console名tty1代表本地登录,pts通常代表远程登录
3.5.2 踢出已登录的账号
sudo pkill -kill -t pts/1
// 踢出前,先通知命令
sudo write test pts/1
write: warning: write will appear from lsa
I will kill you login, please save your work now.
最后使用Ctrl-D结束通知。
3.5.3 wall
给所有登录账号发送信息sudo wall ‘Server will be shut down after 5 minutes.’
所有登录账号都会收到这条通知,像下面的格式:
Broadcast message from lsa@LinuxBuildServer (pts/0) (Wed Aug 15 15:42:53 2018):
Server will be shut down after 5 minutes.
3.5.4 ps
查看当前的进程:ps a查看包括系统进程在内的所有进程列表:ps ax中止出问题的进程:kill problem-progress
3.5.5 top
查询运行状态当前服务器的运行状态,包括CPU占用及内存占用等信息
3.5.6 scp
服务器之间拷贝文件命令scp -r src-file/ user-name@192.168.xxx.xx:/home/user-namescp -r user-name@192.168.xxx.xx:/home/user-name/src-file /home/user-name/
3.5.7 ssh切换
ssh -l user-name 192.168.xxx.xx
3.5.8 查看文件夹大小
du -ah --max-depth=1
3.6 问题记录
3.6.1 检测到时钟偏差,文件更改时间与系统时间不同步
find ./ -type f | xargs touch
3.6.2 发起评审时出现invalid committer
原因:本次commit的提交者没有与gerrit上的账号一致
解决方法:
git config user.name XXXX
git config user.email XXXX
git commit --amend --reset-author(弹出界面,不用保存,直接退出即可)
3.6.3 jack-service端口号冲突
// 查看自己端口号是多少?
cat ~/.jack-settings
cat ~/.jack-server/config.properties
// 判断端口(如8073)是否被占用:
netstat -apn | grep 8073
// 替换两个未被占用的端口号为自己的端口号:
vim ~/.jack-settings
vim ~/.jack-server/config.properties
cd prebuilts/sdk/tools/
./jack-admin kill-server
./jack-admin start-server
3.6.4 kernel编译报错error:forbidden warning
原因:GCC高版本默认将警告当成错误处理
vim kernel/scripts/gcc-wrapper.py
屏蔽#interpret_warning(line)
3.6.5 缺少依赖包问题
问题现象:
FAILED: /bin/bash -c "mkisofs -o out/target/product/msm8953_64/system/etc/cdrom_install.iso device/qcom/msm8953_64/cdrom_res" /bin/bash: mkisofs: command not found
问题解决: sudo apt install mkisofs
3.6.6 服务器时间与实际时间相差8小时
timedatectl set-timezone Asia/Shanghai
3.6.5 不同版本gcc、python管理
sudo update-alternatives --config gcc apt-cache policy g+±5 update-alternatives --config python