Jade Dungeon

linux驱动安装

安装硬件驱动栈(HWE)

# Desktop
sudo apt-get install --install-recommends linux-generic-hwe-18.04 xserver-xorg-hwe-18.04 

# Server
sudo apt-get install --install-recommends linux-generic-hwe-18.04 

# Check your support status
#   If you want a tool to determine if your install is still supported 
#   please use hwe-support-status as documented on https://wiki.ubuntu.com/1204_HWE_EOL
hwe-support-status --verbose 

开启 TCP BBR

开机后uname -r看看是不是内核 ≥ 4.9

echo "net.core.default_qdisc=fq" >> /etc/sysctl.conf
echo "net.ipv4.tcp_congestion_control=bbr" >> /etc/sysctl.conf

# 保存生效
sysctl -p

sysctl net.ipv4.tcp_available_congestion_control
sysctl net.ipv4.tcp_congestion_control

如果结果都有bbr, 则证明你的内核已开启 TCP BBR!

lsmod | grep bbr

安装显卡驱动

  • 用鼠标点击屏幕左侧Unity程序启动栏中的「系统设置」(齿轮扳手图标),
  • 在弹出的窗口最下方的「系统」栏目中,鼠标点击(单击)「软件和更新」(纸箱地球图标),
  • 或者:鼠标右键点击桌面 --> 更改桌面背景 --> 全部设置 --> 最下方的「系统」栏目 --> 软件和更新
  • 点击「附加驱动」标签页会出现一个「正在搜索可用的驱动」的提示,稍候片刻,会显示出一个显卡驱动列表。
  • 如果是刚刚安装新系统,没有设定软件源并更新的话,点击「附加驱动」标签页也许会没反应,更新软件后即可解决。

如何判断显卡驱动是否已经安装好?

可以通过以下好几种方法综合测试,但不能仅凭其中某一项来断定驱动是否安装成功。 以Nvidia为例,

  • 方法a、可以点击左侧Unity程序启动器栏的「Dash主页」->「应用程序」->「系统」->「已安装」->「NVIDIA X Server Settings」,

    如果没有安装成功,打开「NVIDIA X Server Settings」时会有英文的提示警告」显卡驱动未安装」。     或者如果遇到提示「You do not appear to be using the NVIDIA X driver.     Please edit your X configuration file (just run nvidia-xconfig as root), and restart the X server.」。     而且在附加驱动里遇到提示「这个驱动已经激活但是没有使用」,那么解决的方法也很简单,就按提示所说的,     按下快捷键 Alt F2 打开「运行一个命令」对话框,输入以下命令配置显卡,然后就能打开N卡设置了:

万一以后升级Kernel时DKMS出错了,可能需要重新配置:

sudo dpkg-reconfigure nvidia-331
sudo dpkg-reconfigure nvidia-331-uvm

安装成功以后配打开nvidia配置管理器:

sudo nvidia-xconfig
  • 方法b、默认的Ubuntu 12.04版只有黑屏的锁定屏幕程序,如果另外安装有屏幕保护程序,

    点击左侧Unity程序启动器栏的「Dash主页」->「应用程序」->「自定义」->「已安装」->「屏幕保护程序」     屏幕保护里有很多需要显卡带3D渲染支持的3D动画,在左边的菜单逐个选择,     右边可以看到屏幕保护的预览效果,如果看不到3D屏幕保护动画,那就说明显卡驱动没有安装好。

Nvidia显卡驱动修复

需要首先到 NVIDIA 官网下载你设备对应的显卡驱动):

https://www.nvidia.com

# 先安装一些依赖库
sudo apt install build-essential libglvnd-dev pkg-config

# 停止桌面管理器,进入命令行摸索
sudo telinit 3

# 删除已安装的 nvidia 驱动
sudo apt purge "nvidia*"

# 手动安装显卡驱动
sudo bash NVIDIA-Linux-x86_64-440.82.run 

# 重启
sudo reboot

更多显卡驱动的安装方式可参考: https://linuxconfig.org/how-to-install-the-nvidia-drivers-on-ubuntu-20-04-focal-fossa-linux

内核升级导致显卡驱动出错的修复

Ubuntu内核自动升级会导致nvidia-smi失败,显卡驱动与内核版本不匹配。解决的两种思路, 一是内核版本降级,二是更换与内核版本匹配的驱动。一没有实验成功(可能是配置错误), 所以按照二执行,参照网上大神的步骤,简单做一个 记录,以备后续遇到使用。

问题:

xxx@ubuntu: ~$ nvidia-smi 
NVIDIA-SMI has failed because it couldn’t communicate with the NVIDIA driver. 
Make sure that the latest NVIDIA driver is installed and running.

解决:

进入/usr/src看到nvidia-418.xxx.xx文件夹,说明nvidia驱动版本是418.xxx.xx。 根据网上的办法,使用以下命令:

sudo apt-get install dkms 
sudo dkms install -m nvidia -v 418.xxx.xx(NVIDIA版本号)

如果报错,出现错误提示:

Bad return status for module build on kernel: 5.4.0-42-generic on Ubuntu18.04. NVIDIA-SMI failed.Linux内核版本是5.4.0-42-generic,

这个内核版本网上也说与许多版本驱动匹配,需要升级到440版本的NVIDIA驱动。 执行下面步骤安装更高版本的驱动。

sudo apt-get autoremove --purge nvidia-* 
sudo apt-get install --reinstall linux-headers-$(uname -r) 
sudo apt-add-repository ppa:graphics-drivers/ppa 
sudo apt-get update 
sudo apt-get install nvidia-driver-440 
sudo reboot

其中增加PPA源的部分可能会找不到key,需要添加。

注释:

/etc/default/grab=两边空格敏感,若需改不要随手空格。

网卡驱动

Debian netinst安装镜像中并不带笔记本的WiFi模块固件,要手动从网站 https://packages.debian.org 下载以deb包:

  • firmware-iwlwifi:WiFi 模块固件,从安装出错提示中获悉
  • wireless-tools 及其依赖:无线工具集
  • wpasupplicant 及其依赖:无线联网工具

配置/etc/network/interfaces

auto wlan0
iface wlan0 inet dhcp
    wpa-ssid <无线 ssid 名>
    wpa-psk <无线密码>

保存后,再执行:

ifup wlan0

即可正常连接无线网络了。

蓝牙

sudo apt-get install bluetooth bluez-btsco bluez-passkey-gnome  \
	bluez-pin bluez-utils gnome-bluetooth bluez bluez-hcidump

连接配对

$ lsusb
Bus 001 Device 005: ID 0a5c:2039 Broadcom Corp. BCM2045 Bluetooth

安装:

apt-get install bluetooth bluez-utils bluez-compat blueman
$ sudo service bluetooth status
[ ok ] bluetooth is running.

图形界面配对

可以在图形界面中右击蓝牙图标:「Setup New Device...」

手动配对

扫描设备:

$ sudo hcitool scan
  aa:bb:cc:dd:ee:ff Wireless Keyboard

匹配:

$ sudo bluez-simple-agent hci0 aa:bb:cc:dd:ee:ff
在这边输入一个密码(比如:0000),回车。
如果是蓝牙键盘,去蓝牙设备那边输入刚才设置的密码(0000)回车。
成功应该会说 …… Release

到这里就应该成功了。

手动连接

如果配对失败,

将这个新设备加入到信任列表:

sudo bluez-test-device trusted aa:bb:cc:dd:ee:ff yes

用这个命令手工开始连接:

sudo bluez-test-input connect aa:bb:cc:dd:ee:ff

每次自动配对所有

注意这样有风险,会自动连接所有的设备:

打开蓝牙键盘的on,启动搜索蓝牙适配器,灯一直闪着,不用管他

sudo hidd --search
  Searching ...
  Connecting to device BC:20:42:A0:00:00

搜索到就能用了。

开机自动配对:

/etc/rc.local开头添加如下一行,保证下次开机就能使用。

/usr/bin/hidd --search

确认/etc/rc.localexit 0结尾 。

每次开机前,需要打开蓝牙键盘的on,启动收索蓝牙适配器,灯一直闪着,不用管他, 系统会自动搜索键盘

bluez简介

安装bluez后,会提供两个工具hciconfig和hcitool进行蓝牙相关的配置。

查看当前蓝牙适配器参数配置(名字dbian-0,状态是Slave,MAC地址等):

$ sudo hciconfig -a
hci0:    Type: BR/EDR  Bus: USB
    BD Address: 00:1A:7D:DA:71:13  ACL MTU: 310:10  SCO MTU: 64:8
    .....
    Link mode: SLAVE ACCEPT 
    Name: ‘debian-0‘

查看蓝牙适配器提供的各种功能:

$ sdptool browse local

扫描蓝牙设备:

$ hcitool scan
Scanning ...
    C4:17:FE:F6:65:FF    PC-201209031236
    CC:52:AF:4F:52:16    HR-6F1397D64651
    18:DC:56:D2:1C:1A    Coolpad 8297

获取手机蓝牙信息:

$ hcitool name 18:DC:56:D2:1C:1A
Coolpad 8297

更加详细的信息:

$ sudo hcitool info 18:DC:56:D2:1C:1A
Requesting information ...
    BD Address:  18:DC:56:D2:1C:1A
    Device Name: Coolpad 8297
    LMP Version: 4.0 (0x6) LMP Subversion: 0x0
    Manufacturer: MediaTek, Inc. (70)
    Features page 0: 0xbf 0x3e 0x8d 0xfe 0xdb 0xff 0x5b 0x87

配置蓝牙适配器使得能被其他设备搜索到:

$ sudo hciconfig hci0 iscan

这时在手机中搜索蓝牙设备可以搜索到"debian-0",但是使用手机配对时提示「PIN或者配对密钥不正确,无法和debian-0进行配对"。

在执行下面几条命令:

$ sudo hciconfig hci0 pscan
$ sudo hciconfig hci0 noencrypt
$ sudo hciconfig hci0 noauth

此时可以在pc上执行l2ping命令 :

host@debian:~$ sudo l2ping  -c 3 18:DC:56:D2:1C:1A
[sudo] password for host: 
Ping: 18:DC:56:D2:1C:1A from 00:1A:7D:DA:71:13 (data size 44) ...
44 bytes from 18:DC:56:D2:1C:1A id 0 time 15.00ms
44 bytes from 18:DC:56:D2:1C:1A id 1 time 26.16ms
44 bytes from 18:DC:56:D2:1C:1A id 2 time 26.14ms
3 sent, 3 received, 0% loss

上面这两种情况下都是在手机端发起配对请求,之后也只是能通过蓝牙发文件。

将其连接模式从SLAVE修改为master:

sudo hciconfig hci0 lm master

这时查看连接模式:

$ sudo hciconfig hci0 lm
[sudo] password for host: 
hci0:    Type: BR/EDR  Bus: USB
    BD Address: 00:1A:7D:DA:71:13  ACL MTU: 310:10  SCO MTU: 64:8
    Link mode: MASTER 

使用rfcomm来连接手机蓝牙设备:

$ sudo rfcomm connect hci0 18:DC:56:D2:1C:1A
Connected /dev/rfcomm0 to 18:DC:56:D2:1C:1A on channel 1
Press CTRL-C for hangup

连接成功,查看连接信息:

$ sudo hcitool  con
Connections:
    < ACL 18:DC:56:D2:1C:1A handle 72 state 1 lm MASTER AUTH ENCRYPT 

可以执行hcitool中的cmd命令,例如下面的命令将当前设备的名称改成"ABCD":

$ sudo hcitool cmd 0x03 0x0013 0x41 0x42 0x43 0x44
< HCI Command: ogf 0x03, ocf 0x0013, plen 4
  41 42 43 44 
> HCI Event: 0x0e plen 4
  01 13 0C 00 

debian一键安装驱动安装

Debian是一个流行的Linux操作系统,它被广泛用于服务器和桌面应用程序的开发和运行。 在使用Debian时,你可能需要为你的硬件设备安装驱动程序,例如网络卡、显卡和打印机。 然而,这个过程可能会比较繁琐,因为你需要手动找到适合你的硬件的驱动程序,并安装它们。 为了简化这个过程,你可以使用一些工具来自动化这个过程。

这篇文章将介绍如何在Debian系统上使用一键安装驱动程序工具。 我们将使用一个名为「Driver Manager」的开源工具。 这个工具可以扫描你的系统并自动安装你所需要的驱动程序。

安装Driver Manager

Driver Manager是一个开源的工具,你可以通过以下命令在Debian系统上安装它:

sudo add-apt-repository ppa:graphics-drivers/ppa
sudo apt update
sudo apt install ubuntu-drivers-common
sudo apt install ubuntu-drivers

运行Driver Manager

安装完成后,你可以按以下步骤来运行Driver Manager:

  1. 打开终端。
  2. 运行以下命令:sudo ubuntu-drivers autoinstall
  3. 输入你的管理员密码。
  4. Driver Manager 将扫描你的硬件设备,并自动安装缺少的驱动程序。
  5. 手动安装驱动程序

如果Driver Manager不能安装你需要的驱动程序,你可以手动安装它们。以下是手动安装方式:

  1. 打开终端。
  2. 确定你需要安装的驱动程序的名称。
  3. 运行以下命令,用驱动程序的名称替换<driver_name>sudo apt-get install <driver_name>
  4. 输入你的管理员密码。
  5. 等待安装完成。