ubuntu 选择独立显卡或则intelcpu内集成显卡

1: 第1步:检查你的电脑有哪些显卡
这很简单,打开终端,粘贴下面的命令就行了。

lspci -k | grep -A 2 -i "VGA"

这里写图片描述

2:首先查看当前电脑默认使用的Gpu(显卡)

点击右上角的开关按钮,选择“关于这台计算机”. 
或则在系统设置中,选择“详细信息”
其中会显示cpu型号和显卡型号,看看显卡型号是不是和自己电脑上的独立显卡一样

3:如果不一样,而且需要选择独立显卡的话,安装Nvidia专有显卡驱动
Ubuntu自带了为Nvidia显卡开发的开源Nouveau驱动。这个Nouveau驱动是包含在Linux内核中的。但是它不支持3D加速。为了获得最佳图形性能,我们用software-properties-gtk这个程序来安装专有的Nvidia显卡驱动。在终端里输入下面的命令打开software-properties-gtk。

software-properties-gtk

这将打开软件与更新窗口。点击额外驱动标签。你可以看见Ubuntu默认为Nvidia显卡启用了Nouveau开源驱动,并且列出了可以安装的专有显卡驱动。

这里写图片描述

一般我们可以安装最高版本的专有显卡驱动。也可以在终端里输入下面的命令来查看哪一个专有驱动是推荐安装的。

sudo ubuntu-drivers devices

这里写图片描述

可以看见,在我的电脑上,nvidia-352是推荐安装的驱动。所以我在终端里输入下面的命令安装这个驱动。

sudo apt-get install nvidia-352

专有驱动安装后,重新打开软件与更新窗口。你应该可以发现Ubuntu自动选择了新安装的专有驱动。如果没有的话,则选择刚安装好的专有驱动,再点击右下角的应用更改按钮。

这里写图片描述

第4步:切换到Nvidia显卡
为Nvidia显卡选择了专有驱动后,你可能需要重启电脑来启用Nvidia的prime支持。如果不支持prime,你会发现如下消息。

Message: PRIME: is it supported? no

重启电脑后,在Unity的Dash中打开Nvidia X Server Settings (Nvidia X服务器设置)窗口。也可以在终端里输入下面的命令打开。

nvidia-settings

这里写图片描述

在左侧栏选择PRIME Profiles标签,然后在右边的窗口中选择Nvidia显卡。再次打开系统设置 > 细节窗口,你会发现Ubuntu正在使用Nvidia显卡。

这里写图片描述

这样就可以讲显卡设置为了对应的独立显卡了,如果要切换回Intel集成显卡,在PRIME Profiles里选择Intel就行了。

抽象类Component的Java代码实现如下: ```java public abstract class Component { private String name; private double price; public Component(String name, double price) { this.name = name; this.price = price; } public String getName() { return name; } public double getPrice() { return price; } public void setName(String name) { this.name = name; } public void setPrice(double price) { this.price = price; } public abstract String getDescription(); } ``` CPU类、Disk类和Vedio类的Java代码实现如下: ```java public class CPU extends Component { private int cores; public CPU(String name, double price, int cores) { super(name, price); this.cores = cores; } public int getCores() { return cores; } public void setCores(int cores) { this.cores = cores; } @Override public String getDescription() { return "CPU: " + getName() + ", Cores: " + getCores() + ", Price: " + getPrice(); } } public class Disk extends Component { private int capacity; public Disk(String name, double price, int capacity) { super(name, price); this.capacity = capacity; } public int getCapacity() { return capacity; } public void setCapacity(int capacity) { this.capacity = capacity; } @Override public String getDescription() { return "Disk: " + getName() + ", Capacity: " + getCapacity() + "GB, Price: " + getPrice(); } } public class Vedio extends Component { private int memory; public Vedio(String name, double price, int memory) { super(name, price); this.memory = memory; } public int getMemory() { return memory; } public void setMemory(int memory) { this.memory = memory; } @Override public String getDescription() { return "Vedio: " + getName() + ", Memory: " + getMemory() + "GB, Price: " + getPrice(); } } ``` Computer类的Java代码实现如下: ```java public class Computer extends Component implements Workable { private CPU cpu; private Disk disk; private Vedio vedio; public Computer(String name, double price, CPU cpu, Disk disk, Vedio vedio) { super(name, price); this.cpu = cpu; this.disk = disk; this.vedio = vedio; } public CPU getCpu() { return cpu; } public Disk getDisk() { return disk; } public Vedio getVedio() { return vedio; } public void setCpu(CPU cpu) { this.cpu = cpu; } public void setDisk(Disk disk) { this.disk = disk; } public void setVedio(Vedio vedio) { this.vedio = vedio; } @Override public void work() { System.out.println(cpu.getName() + " CPU is working..."); System.out.println(disk.getName() + " disk is working..."); System.out.println(vedio.getName() + " vedio card is working..."); } @Override public String getDescription() { return "Computer: " + getName() + ", Price: " + getPrice() + "\n" + cpu.getDescription() + "\n" + disk.getDescription() + "\n" + vedio.getDescription(); } } ``` Workable接口的Java代码实现如下: ```java public interface Workable { void work(); } ``` 由CPU和Disk以及Vedio分别派生出具有不同品牌的子类,如IntelCPU、AMDCPU、SeagateDisk、ASUSVedio等,这些具体的类实现方式类似,这里只给出一个例子: ```java public class IntelCPU extends CPU { public IntelCPU(String name, double price, int cores) { super(name, price, cores); } } ``` 测试类的Java代码实现如下: ```java public class Test { public static void main(String[] args) { CPU intelCPU = new IntelCPU("Intel i5", 1999, 4); CPU amdcCPU = new AMDCPU("AMD Ryzen 5", 1399, 6); Disk seagateDisk = new SeagateDisk("Seagate BarraCuda", 599, 1000); Disk wdDisk = new WDDisk("WD Blue", 799, 2000); Vedio asusVedio = new ASUSVedio("ASUS GTX 1660", 2199, 6); Vedio msiVedio = new MSIVedio("MSI RTX 3070", 4999, 8); Computer computer1 = new Computer("Computer 1", 4999, intelCPU, seagateDisk, asusVedio); Computer computer2 = new Computer("Computer 2", 7999, amdcCPU, wdDisk, msiVedio); System.out.println(computer1.getDescription()); System.out.println(); computer1.work(); System.out.println(); System.out.println(computer2.getDescription()); System.out.println(); computer2.work(); } } ``` 运行结果如下: ``` Computer: Computer 1, Price: 4999.0 CPU: Intel i5, Cores: 4, Price: 1999.0 Disk: Seagate BarraCuda, Capacity: 1000GB, Price: 599.0 Vedio: ASUS GTX 1660, Memory: 6GB, Price: 2199.0 Intel i5 CPU is working... Seagate BarraCuda disk is working... ASUS GTX 1660 vedio card is working... Computer: Computer 2, Price: 7999.0 CPU: AMD Ryzen 5, Cores: 6, Price: 1399.0 Disk: WD Blue, Capacity: 2000GB, Price: 799.0 Vedio: MSI RTX 3070, Memory: 8GB, Price: 4999.0 AMD Ryzen 5 CPU is working... WD Blue disk is working... MSI RTX 3070 vedio card is working... ```
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值