多网卡设备在系统启动时,多个CPU在给网口进行初始化设置时,基于硬件在系统中的发现顺序,然后系统根据初始化顺序分配eth。
方法一、修改extlinux.conf文件(网卡设备号会变成enpxx,其中数字和字母组合标识了设备在PCI总线上的位置,例如enp2s0意味着这是一个位于第二条PCI总线上的设备,可能还包含子系统和功能信息。)
sudo vi /boot/extlinux/extlinux.conf
示例:
LABEL primary MENU LABEL primary kernel LINUX /boot/Image FDT /boot/dtb/kernel_tegra234-p3767-0000-p3768-0000-a0.dtb INITRD /boot/initrd APPEND ${cbootargs} root=PARTUUID=d86dd316-2fb6-48ba-b777-77021ceae438 rw rootwait rootfstype=ext4 mminit_loglevel=4 console=ttyTCU0,115200 console=ttyAMA0,115200 firmware_class.path=/etc/firmware fbcon=map:0 net.ifnames=0
把APPEND
行的 net.ifnames=0
中的0 改为1。
方法二、禁止开机加载驱动,改为系统启动后加载(eth0、eth1... 这种传统的命名方式基于硬件在系统中的发现顺序,其中“eth”代表以太网(Ethernet),后面的数字用于区分多个网络接口。)
1、禁用开机加载ngbe.ko
sudo vi /etc/modprobe.d/blacklist.conf
+blacklist ngbe
2、系统启动后加载ko文件
在. wsetupscripts wStartUp.sh 内加上:
insmod /lib/modules/`uname -r`/kernel/drivers/net/ngbe.ko
或者自写启动脚本。
方法三、修改定义udev.rule规则(udev是一个动态设备管理系统)
sudo vi /etc/udev/rules.d/70-persistent-net.rules
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="48:b0:2d:e9:e0:a6", ATTR{type}=="1", NAME="E0" SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:04:5f:80:80:54", ATTR{type}=="1", NAME="E1" SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:04:5f:80:80:55", ATTR{type}=="1", NAME="E2" SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:04:5f:80:80:56", ATTR{type}=="1", NAME="E3" SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:04:5f:80:80:57", ATTR{type}=="1", NAME="E4"
mac地址通过ifconfig查看获取 最后的name分别对应eth0 eth1 eth2.....
udev rule给网卡自定义重命名的时候要避开内核的命名规则,不可以使用ethX的命名方式,有可能会出现冲突而重命名失效。
保存文件并重载udev规则,使之生效:
sudo udevadm control --reload-rules sudo udevadm trigger
建议更换源列表时提前备份,以防不时之需。
sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak
sudo gedit /etc/apt/sources.list
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic main multiverse restricted universe deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic-security main multiverse restricted universe deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic-updates main multiverse restricted universe deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic-backports main multiverse restricted universe deb-src http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic main multiverse restricted universe deb-src http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic-security main multiverse restricted universe deb-src http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic-updates main multiverse restricted universe deb-src http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic-backports main multiverse restricted universe
sudo apt-get update
sudo gedit /etc/apt/sources.list
deb https://mirror.tuna.tsinghua.edu.cn/ubuntu-ports/ focal main restricted universe multiverse deb https://mirror.tuna.tsinghua.edu.cn/ubuntu-ports/ focal-updates main restricted universe multiverse deb https://mirror.tuna.tsinghua.edu.cn/ubuntu-ports/ focal-backports main restricted universe multiverse deb https://mirror.tuna.tsinghua.edu.cn/ubuntu-ports/ focal-security main restricted universe multiverse deb https://mirror.tuna.tsinghua.edu.cn/ubuntu-ports/ focal-proposed main restricted universe multiverse
sudo apt-get update
安装管理工具:
sudo apt install efibootmgr
查看当前的启动顺序:
sudo efibootmgr
设置启动优先:
sudo efibootmgr -o 0000,0001,0002 #把0000 设备设置为第一顺序,以此类推
fallocate
命令创建一个16GB的swap文件:sudo fallocate -l 16G /swapfile
sudo chmod 600 /swapfile
mkswap
命令将文件格式化为swap空间:sudo mkswap /swapfile
sudo swapon /swapfile
/etc/fstab
文件,在文件末尾添加以下行:/swapfile none swap sw 0 0
使用以下命令编辑文件:
sudo nano /etc/fstab
sudo swapon --priority 10 /swapfile #如果显示设备被占用: sudo swapoff /swapfile #先关掉,在设置
sudo swapon --show
当确认已经执行 sudo apt install nvidia-jetpack -y 安装jetpack sdk 后,无法通过nvcc -V 查看cuda版本信息:
配置环境变量:
sudo vim .bashrc
在文件末尾加入:
export PATH=/usr/local/cuda-11.4/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH
export CUDA_HOME=$CUDA_HOME:/usr/local/cuda-11.4
其中cuda11.4根据实际的版本填写些,版本可以从上面的路径/usr/local/找到。
改完之后wq保存.
更新:
source .bashrc
然后nvcc -V 查看
sudo apt install netplan.io
sudo vi /etc/netplan/99_config.yaml
添加以下内容(注意格式):
network:
version: 2
renderer: networkd
ethernets:
enp0s25:
addresses:
- 192.168.0.100/24
routes:
- to: default
via: 192.168.0.1
nameservers:
search: [example.com, sales.example.com, dev.example.com]
addresses: [1.1.1.1, 8.8.8.8, 4.4.4.4]
重启生效
sudo reboot
环境依赖安装:
sudo apt install
libssl1.1
libgstreamer1.0-0
gstreamer1.0-tools
gstreamer1.0-plugins-good
gstreamer1.0-plugins-bad
gstreamer1.0-plugins-ugly
gstreamer1.0-libav
libgstreamer-plugins-base1.0-dev
libgstrtspserver-1.0-0
libjansson4
libyaml-cpp-dev
安装deepstream
sudo apt install deepstream-6.1
(不同jetpack 版本对应不同的deepstream版本,输入到deepstream时,可按tab键 自动补全适应当前jetpack版本的deepstream版本)
测试demo(以deepstream-6.1为例)
cd /opt/nvidia/deepstream/deepstream-6.1/samples/configs/deepstream-app
deepstream-app -c source30_1080p_dec_preprocess_infer-resnet_tiled_display_int8.txt
经常遇到一些设备需要设置mtu值,以满足一些网络设备的正常运行,经过仔细验证,设置mtu的方式如下:
修改网络mtu(以设置eth0 为例)
sudo ifconfig eth0 down
sudo ifconfig eth0 mtu 9000
sudo ifconfig eth0 up
安装samba
sudo apt-get install samba -y
修改配置文件
sudo vi /etc/samba/smb.conf
[tw]
comment = share folder
browseable = yes
path = /home/tw
create mask = 0664
directory mask = 0775
valid users = tw
force user = tw
force group = tw
public = yes
available = yes
writable = yes
设置密码
sudo smbpasswd -a nvidia
应用重启
sudo service smbd restart