一、系统安装
常规步骤
kernel编译环境(待补充)
sudo apt-get install -y libssl-dev libelf-dev openssl flex bison libncurses-dev
个人常用环境:
软件:
sudo apt-get install -y libssl-dev openssl flex bison libncurses-dev net-tools samba samba-common ssh make vim bear build-essential gdb gcc g++ libreadline-dev pciutils net-tools
源修改:
/etc/apt/sources.list
更新源:
sudo apt-get update
x86_64源(中科大源):
deb https://mirrors.ustc.edu.cn/ubuntu/ focal main restricted universe multiverse deb-src https://mirrors.ustc.edu.cn/ubuntu/ focal main restricted universe multiverse deb https://mirrors.ustc.edu.cn/ubuntu/ focal-updates main restricted universe multiverse deb-src https://mirrors.ustc.edu.cn/ubuntu/ focal-updates main restricted universe multiverse deb https://mirrors.ustc.edu.cn/ubuntu/ focal-backports main restricted universe multiverse deb-src https://mirrors.ustc.edu.cn/ubuntu/ focal-backports main restricted universe multiverse deb https://mirrors.ustc.edu.cn/ubuntu/ focal-security main restricted universe multiverse deb-src https://mirrors.ustc.edu.cn/ubuntu/ focal-security main restricted universe multiverse deb https://mirrors.ustc.edu.cn/ubuntu/ focal-proposed main restricted universe multiverse deb-src https://mirrors.ustc.edu.cn/ubuntu/ focal-proposed main restricted universe multiverse
aarch64源( 阿里源):
deb http://mirrors.aliyun.com/ubuntu-ports/ xenial main deb-src http://mirrors.aliyun.com/ubuntu-ports/ xenial main deb http://mirrors.aliyun.com/ubuntu-ports/ xenial-updates main deb-src http://mirrors.aliyun.com/ubuntu-ports/ xenial-updates main deb http://mirrors.aliyun.com/ubuntu-ports/ xenial universe deb-src http://mirrors.aliyun.com/ubuntu-ports/ xenial universe deb http://mirrors.aliyun.com/ubuntu-ports/ xenial-updates universe deb-src http://mirrors.aliyun.com/ubuntu-ports/ xenial-updates universe deb http://mirrors.aliyun.com/ubuntu-ports/ xenial-security main deb-src http://mirrors.aliyun.com/ubuntu-ports/ xenial-security main deb http://mirrors.aliyun.com/ubuntu-ports/ xenial-security universe deb-src http://mirrors.aliyun.com/ubuntu-ports/ xenial-security universe
aarch64源(从coolpi cm5中拷贝出):
# See http://help.ubuntu.com/community/UpgradeNotes for how to upgrade to # newer versions of the distribution. deb http://ports.ubuntu.com/ubuntu-ports/ jammy main restricted # deb-src http://ports.ubuntu.com/ubuntu-ports/ jammy main restricted ## Major bug fix updates produced after the final release of the ## distribution. deb http://ports.ubuntu.com/ubuntu-ports/ jammy-updates main restricted # deb-src http://ports.ubuntu.com/ubuntu-ports/ jammy-updates main restricted ## N.B. software from this repository is ENTIRELY UNSUPPORTED by the Ubuntu ## team. Also, please note that software in universe WILL NOT receive any ## review or updates from the Ubuntu security team. deb http://ports.ubuntu.com/ubuntu-ports/ jammy universe # deb-src http://ports.ubuntu.com/ubuntu-ports/ jammy universe deb http://ports.ubuntu.com/ubuntu-ports/ jammy-updates universe # deb-src http://ports.ubuntu.com/ubuntu-ports/ jammy-updates universe ## N.B. software from this repository is ENTIRELY UNSUPPORTED by the Ubuntu ## team, and may not be under a free licence. Please satisfy yourself as to ## your rights to use the software. Also, please note that software in ## multiverse WILL NOT receive any review or updates from the Ubuntu ## security team. deb http://ports.ubuntu.com/ubuntu-ports/ jammy multiverse # deb-src http://ports.ubuntu.com/ubuntu-ports/ jammy multiverse deb http://ports.ubuntu.com/ubuntu-ports/ jammy-updates multiverse # deb-src http://ports.ubuntu.com/ubuntu-ports/ jammy-updates multiverse ## N.B. software from this repository may not have been tested as ## extensively as that contained in the main release, although it includes ## newer versions of some applications which may provide useful features. ## Also, please note that software in backports WILL NOT receive any review ## or updates from the Ubuntu security team. deb http://ports.ubuntu.com/ubuntu-ports/ jammy-backports main restricted universe multiverse # deb-src http://ports.ubuntu.com/ubuntu-ports/ jammy-backports main restricted universe multiverse deb http://ports.ubuntu.com/ubuntu-ports/ jammy-security main restricted # deb-src http://ports.ubuntu.com/ubuntu-ports/ jammy-security main restricted deb http://ports.ubuntu.com/ubuntu-ports/ jammy-security universe # deb-src http://ports.ubuntu.com/ubuntu-ports/ jammy-security universe deb http://ports.ubuntu.com/ubuntu-ports/ jammy-security multiverse # deb-src http://ports.ubuntu.com/ubuntu-ports/ jammy-security multiverse
其他源
清华源
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-updates main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-updates main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-backports main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-backports main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-security main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-security main restricted universe multiverse
阿里源
deb http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse
二、samba安装
sudo apt-get install samba samba-common
嵌入式板子用如下配置/etc/samba/smb.conf
[cxh]
comment = Shared Folder with username and password
path = /home/cxh/
public = yes
writable = yes
valid users = cxh #配置的Samba访问账号
create mask = 777
directory mask = 777
# force user = nobody
# force group = nogroup
available = yes
browseable = yes
[root]
comment = Shared Folder with username and password
path = /
public = yes
writable = yes
valid users = root #配置的Samba访问账号
create mask = 777
directory mask = 777
# force user = nobody
# force group = nogroup
available = yes
browseable = yes
ubuntu 22.04 server可用如下配置/etc/samba/smb.conf
[global]
workgroup = SAMBA
security = user
passdb backend = tdbsam
printing = cups
printcap name = cups
load printers = yes
cups options = raw
[homes]
comment = Home Directories
valid users = %S, %D%w%S
browseable = No
read only = No
inherit acls = Yes
[printers]
comment = All Printers
path = /var/tmp
printable = Yes
create mask = 0600
browseable = No
[print$]
comment = Printer Drivers
path = /var/lib/samba/drivers
write list = @printadmin root
force group = @printadmin
create mask = 0664
directory mask = 0775
[home]
comment = User Directory
path = /home/%U
read only = No
重启samba
service smbd restart
添加用户,cxh为用户名,然后输入密码
cxh@cxhserver:~$ sudo smbpasswd -a cxh
New SMB password:
Retype new SMB password:
Added user cxh.
三、mirror
https://mirrors.ustc.edu.cn/ubuntu
四、以太网
Ubuntu
不同版本的Ubuntu网络配置位置不同。
Ubuntu22.04 Server版修改的方法为修改/etc/netplan/00-installer-config.yaml文件
修改配置文件
/etc/netplan/00-installer-config.yaml文件内容修改如下:
# This is the network config written by 'subiquity'
network:
ethernets:
enp0s3:
dhcp4: true
enp0s8:
dhcp4: no
addresses:
- 192.168.56.103/24
routes:
- to: default
via: 192.168.56.1
version: 2
应用配置文件
sudo netplan apply
重启网络服务
服务器版:sudo systemctl restart system-networkd
桌面版:sudo systemctl restart network-manager
验证IP地址
ip a
cxh@cxhserver:~$ ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: enp0s3: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc fq_codel state DOWN group default qlen 1000
link/ether 08:00:27:48:96:d4 brd ff:ff:ff:ff:ff:ff
inet6 fe80::a00:27ff:fe48:96d4/64 scope link
valid_lft forever preferred_lft forever
3: enp0s8: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether 08:00:27:c4:8f:d7 brd ff:ff:ff:ff:ff:ff
inet 192.168.56.103/24 brd 192.168.56.255 scope global enp0s8
valid_lft forever preferred_lft forever
inet6 fe80::a00:27ff:fec4:8fd7/64 scope link
valid_lft forever preferred_lft forever
VirtualBox
各种网络特点:
1.桥接,虚拟机和物理机一样暴露到网络,但在公司内网络需要验证才能上网,且WIFI网卡经常DHCP获取不了ip;
2.NAT,虚拟机可以访问主机,可以上外网,但主机无法访问虚拟机。可通过配置端口转发实现主机访问虚拟机,具体方法放在后面。
3. Host-Only,虚拟机只能和主机通信,无法上外网。
虚拟机与主机相互访问方法一(双网卡)
双个网卡,一个用来上外网,一个用来与主机内部互联,但同时打开时无法上外网,所以上外网时需要关闭内部互联的网口,关闭方法如图。
Host-Only是只能与宿主机互联的网口,如果不希望ip变化,可以关闭DHCP后,配置Ubuntu为静态IP
虚拟机与主机相互访问方法二(NAT+端口转发)
步骤
以上步骤只是配置的主机2222端口转发虚拟机22端口,即ssh使用的端口,配置后ssh访问127.0.0.1端口用2222便能访问到虚拟机的ssh了,还可以直接使用sftp访问虚拟机文件。
如果要转发其他端口用于其他程序,如samba端口等,需要转发更多的其他端口。
当然主机端口和转发的虚拟机端口可以相同,如127.0.0.1:22转 虚拟机ip:22。
VirtualBox共享方法
挂载命令:
sudo mount -t vboxsf share /mnt
将被挂载到/mnt目录
VMware
主机通过hostname来连接Ubuntu
使用DHCP方式时,主机可ping通VMware中的Ubuntu,但未能ping通VirtualBox中的Ubuntu。个人对以太网理解不深,未找到原因。
五、Ubuntu Server22.4网络配置
修改配置文件:vi /etc/netplan/00-installer-config.yaml
应用配置文件:sudo netplan apply
重启网络服务:sudo systemctl restart system-networkd 或
sudo systemctl restart network-manager(桌面版)
# This is the network config written by 'subiquity'
network:
ethernets:
enp0s3:
dhcp4: true
enp0s8:
dhcp4: no
addresses:
- 192.168.56.103/24
routes:
- to: default
via: 192.168.56.1
version: 2
CentOS 网络
修改/etc/sysconfig/network-scripts/vi ifcfg-xxx的ONBOOT为yes,然后重启网络 service network restart
六、make gcc
sudo apt install make gcc flex bison libncurses5-dev libssl-dev
安装其他版本的gcc
sudo apt install -y gcc-11 g++-11
切换默认gcc版本
如将gcc11添加软链。如果–install指令里的数越大,则优先级越高。
# sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-11 20 --slave /usr/bin/g++ g++ /usr/bin/g++-11
update-alternatives: using /usr/bin/gcc-11 to provide /usr/bin/gcc (gcc) in auto mode
# sudo update-alternatives --config gcc
There is 1 choice for the alternative gcc (providing /usr/bin/gcc).
Selection Path Priority Status
------------------------------------------------------------
* 0 /usr/bin/gcc-11 20 auto mode
1 /usr/bin/gcc-11 20 manual mode
删除软链接:
sudo update-alternatives --remove gcc /usr/bin/gcc-11
七、vscode
1、远程代码跳转
Linux安装如下
ubuntu安装bear
sudo apt-get install bear
centos安装bear,参考文章: Centos7 打造 C/C++ 开发环境_centos7 c语言开发环境_thewangcj的博客-CSDN博客
最新版本的 Bear 要求 C++17,而且还有类似 gRPC 的依赖,装起来太麻烦了,所以这里选择了老一点的 2.4.4 编译安装
pip install lit # Bear 依赖 git clone https://github.com/rizsotto/Bear.git cd Bear git checkout 2.4.4 cd .. mkdir build cd build cmake ../Bear make all make check sudo make install
下载文件百度网盘 请输入提取码,提取码 dq2m。解压 unzip clangd-linux-13.0.0.zip,将bin和lib下的文件拷贝到默认环境路径/bin /lib。
如果为交叉编译,需在要查看的代码的根目录创建.clangd文件,并加入如下内容:
CompileFlags:
Add: --target=aarch64-none-linux-gnu
Remove: -mabi=lp64
其中aarch64-none-linux-gnu为交叉编译工具链命令前缀,不同编译工具链不同。
在vscode上配置远端配置如下,根据交叉编译工具链路径而定。但不做如下配置也可跳转
vscode安装clangd
Linux下编译源码
命令为bear make或者bear -- make,根据所用系统而定
2、SSH
vscode安装ssh组件
配置免密登录
vscode比较傻逼,不像xshell、moba那样可记住密码,需单独处理免密过程。
在wondows中用ssh-keygen命令生成id_rsa.pub(全程回车),再将id_rsa.pub文件拷贝到待登录的Linux对应用户目录的.ssh目录下,并更名为authorized_keys。正常清空下一次登录需要输入密码,但第二次就不需要输入了。
ssh-keygen命令一路按回车,生成的文件路径日志里有显示,如
ssh root 无法登录问题
编辑远程登录root用户的配置文件
vim /etc/ssh/sshd_config
将PermitRootLogin改为:yes
Include /etc/ssh/sshd_config.d/*.conf
#Port 22
#AddressFamily any
#ListenAddress 0.0.0.0
#ListenAddress ::
#HostKey /etc/ssh/ssh_host_rsa_key
#HostKey /etc/ssh/ssh_host_ecdsa_key
#HostKey /etc/ssh/ssh_host_ed25519_key
# Ciphers and keying
#RekeyLimit default none
# Logging
#SyslogFacility AUTH
#LogLevel INFO
# Authentication:
#LoginGraceTime 2m
PermitRootLogin yes
#StrictModes yes
#MaxAuthTries 6
#MaxSessions 10
修改root密码,开启root用户
sudo passwd root
重起ssh服务
service ssh restart
开机自动启动ssh
sudo systemctl enable ssh
时区
东8区
timedatectl set-timezone Asia/Shanghai
date -R