前情提要
- 主要用于 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 带宽 | 2 |
SSD硬盘 | 1.92T SATA SSD 2.5英寸热插拔硬盘 | 1 |
机械硬盘 | 8TB 7.2K RPM NLSAS 512n 3.5英寸热插拔硬盘,最大支持8块 | 4 |
RAID卡 | PERC H750 RAID 控制器, 8GB NV 线缆,PCIE | 1 |
电源 | 750W 单电源 | 1 |
RAIL001 | ReadyRails™ 静态导轨 | 1 |
原厂建议安装 ubuntu20.04.2 以上版本
二、Ubuntu 20.04.6系统安装
1、安装界面语言选择
- English
2、Install Ubuntu Serve
- Select a language
- English
- Select your location
- Asia
- China
- Asia
- Configure locales
- en_US.UTF-8
- Configure the keyboard
- No
- English(US)
- No
- Configure the network
- Hostname
- LinuxBuildServer
- Hostname
- 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
- Full name for the new user
- Configure the clock(自动探测时区)
- 若正确 -> Yes
- 否则 -> 手动选择对应时区
- Partition disks
- / 分区 主分区 ext4 64G 固态
- swap 逻辑分区 64G 固态 (内存的两倍)
- boot 逻辑分区 1G 固态
- home分区 17.830T
- document 4T 文件存储、固件发布
- Hso 1.619T 固态
- Finish partitioning and write changes to disk
- Installing the system
- Configure the package manager
- HTTP proxy information(blank for none)
- Configuring apt
- Configuring 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-name
- scp -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