本文参考:https://www.kernel.org/doc/Documentation/devicetree/bindings/sound/renesas%2Crsnd.txt

Renesas R-Car sound=============================================
* Modules
=============================================Renesas R-Car and RZ/G sound is constructed from below modules
(for Gen2 or later)SCU      : Sampling Rate Converter Unit- SRC     : Sampling Rate Converter- CMD- CTU : Channel Transfer Unit- MIX    : Mixer- DVC    : Digital Volume and Mute FunctionSSIU      : Serial Sound Interface UnitSSI        : Serial Sound InterfaceSee detail of each module's channels, connection, limitation on datasheet=============================================
* Multi channel
=============================================Multi channel is supported by Multi-SSI, or TDM-SSI.Multi-SSI : 6ch case, you can use stereo x 3 SSITDM-SSI   : 6ch case, you can use TDM=============================================
* Enable/Disable each modules
=============================================See datasheet to check SRC/CTU/MIX/DVC connect-limitation.
DT controls enabling/disabling module.
${LINUX}/arch/arm/boot/dts/r8a7790-lager.dts can be good example.
This is example ofPlayback: [MEM] -> [SRC2] -> [DVC0] -> [SSIU0/SSI0] -> [codec]
Capture:  [MEM] <- [DVC1] <- [SRC3] <- [SSIU1/SSI1] <- [codec]see "Example: simple sound card"You can use below.
${LINUX}/arch/arm/boot/dts/r8a7790.dts can be good example.&src0    &ctu00  &mix0   &dvc0   &ssi0&src1  &ctu01  &mix1   &dvc1   &ssi1&src2  &ctu02          &ssi2&src3  &ctu03          &ssi3&src4              &ssi4&src5  &ctu10          &ssi5&src6  &ctu11          &ssi6&src7  &ctu12          &ssi7&src8  &ctu13          &ssi8&src9              &ssi9=============================================
* SRC (Sampling Rate Converter)
=============================================[xx]Hz        [yy]Hz------> [SRC] ------>SRC can convert [xx]Hz to [yy]Hz. Then, it has below 2 modesAsynchronous mode: input data / output data are based on different clocks.you can use this mode on Playback / CaptureSynchronous mode: input data / output data are based on same clocks.This mode will be used if system doesn't have its input clock,for example digital TV case.you can use this mode on Playback------------------
**     Asynchronous mode
------------------You need to use "simple-scu-audio-card" or "audio-graph-scu-card" for it.
see "Example: simple sound card for Asynchronous mode"------------------
**     Synchronous mode
------------------> amixer set "SRC Out Rate" on> aplay xxxx.wav> amixer set "SRC Out Rate" 48000> amixer set "SRC Out Rate" 44100=============================================
* CTU (Channel Transfer Unit)
=============================================[xx]ch        [yy]ch------> [CTU] -------->CTU can convert [xx]ch to [yy]ch, or exchange outputed channel.
CTU conversion needs matrix settings.
For more detail information, see belowRenesas R-Car datasheet- Sampling Rate Converter Unit (SCU)- SCU Operation- CMD Block- Functional Blocks in CMDRenesas R-Car datasheet- Sampling Rate Converter Unit (SCU)- Register Description- CTUn Scale Value exx Register (CTUn_SVxxR)${LINUX}/sound/soc/sh/rcar/ctu.c- comment of headerYou need to use "simple-scu-audio-card" or "audio-graph-scu-card" for it.
see "Example: simple sound card for channel convert"Ex) Exchange output channelInput -> Output1ch  ->  0ch0ch  ->  1chexample of using matrixoutput 0ch = (input 0ch x 0) + (input 1ch x 1)output 1ch = (input 0ch x 1) + (input 1ch x 0)amixer set "CTU Reset" onamixer set "CTU Pass" 9,10amixer set "CTU SV0" 0,4194304amixer set "CTU SV1" 4194304,0example of changing connectionamixer set "CTU Reset" onamixer set "CTU Pass" 2,1=============================================
* MIX (Mixer)
=============================================MIX merges 2 sounds path. You can see 2 sound interface on system,
and these sounds will be merged by MIX.aplay -D plughw:0,0 xxxx.wav &aplay -D plughw:0,1 yyyy.wavYou need to use "simple-scu-audio-card" or "audio-graph-scu-card" for it.
Ex)[MEM] -> [SRC1] -> [CTU02] -+-> [MIX0] -> [DVC0] -> [SSI0]|[MEM] -> [SRC2] -> [CTU03] -+see "Example: simple sound card for MIXer"=============================================
* DVC (Digital Volume and Mute Function)
=============================================DVC controls Playback/Capture volume.Playback Volumeamixer set "DVC Out" 100%Capture Volumeamixer set "DVC In" 100%Playback Muteamixer set "DVC Out Mute" onCapture Muteamixer set "DVC In Mute" onVolume Rampamixer set "DVC Out Ramp Up Rate"   "0.125 dB/64 steps"amixer set "DVC Out Ramp Down Rate" "0.125 dB/512 steps"amixer set "DVC Out Ramp" onaplay xxx.wav &amixer set "DVC Out"  80%  // Volume Downamixer set "DVC Out" 100%  // Volume Up=============================================
* SSIU (Serial Sound Interface Unit)
=============================================SSIU can avoid some under/over run error, because it has some buffer.
But you can't use it if SSI was PIO mode.
In DMA mode, you can select not to use SSIU by using "no-busif" via SSI.SSIU handles BUSIF which will be used for TDM Split mode.
This driver is assuming that audio-graph card will be used.TDM Split mode merges 4 sounds. You can see 4 sound interface on system,
and these sounds will be merged SSIU/SSI.aplay -D plughw:0,0 xxxx.wav &aplay -D plughw:0,1 xxxx.wav &aplay -D plughw:0,2 xxxx.wav &aplay -D plughw:0,3 xxxx.wav2ch                     8ch[MEM] -> [SSIU 30] -+-> [SSIU 3] --> [Codec]2ch       |[MEM] -> [SSIU 31] -+2ch       |[MEM] -> [SSIU 32] -+2ch       |[MEM] -> [SSIU 33] -+see "Example: simple sound card for TDM Split"=============================================
* SSI (Serial Sound Interface)
=============================================**  PIO modeYou can use PIO mode which is for connection check by using.
Note: The system will drop non-SSI modules in PIO mode
even though if DT is selecting other modules.&ssi0 {pio-transfer};** DMA mode without SSIUYou can use DMA without SSIU.
Note: under/over run, or noise are likely to occur&ssi0 {no-busif;};** PIN sharingEach SSI can share WS pin. It is based on platform.
This is example if SSI1 want to share WS pin with SSI0&ssi1 {shared-pin;};** Multi-SSIYou can use Multi-SSI.
This is example of SSI0/SSI1/SSI2 (= for 6ch)see "Example: simple sound card for Multi channel"** TDM-SSIYou can use TDM with SSI.
This is example of TDM 6ch.
Driver can automatically switches TDM <-> stereo mode in this case.see "Example: simple sound card for TDM"=============================================
Required properties:
=============================================- compatible          : "renesas,rcar_sound-<soctype>", fallbacks"renesas,rcar_sound-gen1" if generation1, and"renesas,rcar_sound-gen2" if generation2 (or RZ/G1)"renesas,rcar_sound-gen3" if generation3 (or RZ/G2)Examples with soctypes are:- "renesas,rcar_sound-r8a7743" (RZ/G1M)- "renesas,rcar_sound-r8a7744" (RZ/G1N)- "renesas,rcar_sound-r8a7745" (RZ/G1E)- "renesas,rcar_sound-r8a774a1" (RZ/G2M)- "renesas,rcar_sound-r8a774c0" (RZ/G2E)- "renesas,rcar_sound-r8a7778" (R-Car M1A)- "renesas,rcar_sound-r8a7779" (R-Car H1)- "renesas,rcar_sound-r8a7790" (R-Car H2)- "renesas,rcar_sound-r8a7791" (R-Car M2-W)- "renesas,rcar_sound-r8a7793" (R-Car M2-N)- "renesas,rcar_sound-r8a7794" (R-Car E2)- "renesas,rcar_sound-r8a7795" (R-Car H3)- "renesas,rcar_sound-r8a7796" (R-Car M3-W)- "renesas,rcar_sound-r8a77965" (R-Car M3-N)- "renesas,rcar_sound-r8a77990" (R-Car E3)- "renesas,rcar_sound-r8a77995" (R-Car D3)
- reg               : Should contain the register physical address.required register isSRU/ADG/SSI      if generation1SRU/ADG/SSIU/SSI if generation2
- rcar_sound,ssi        : Should contain SSI feature.The number of SSI subnode should be same as HW.see below for detail.
- rcar_sound,ssiu       : Should contain SSIU feature.The number of SSIU subnode should be same as HW.see below for detail.
- rcar_sound,src        : Should contain SRC feature.The number of SRC subnode should be same as HW.see below for detail.
- rcar_sound,ctu        : Should contain CTU feature.The number of CTU subnode should be same as HW.see below for detail.
- rcar_sound,mix        : Should contain MIX feature.The number of MIX subnode should be same as HW.see below for detail.
- rcar_sound,dvc        : Should contain DVC feature.The number of DVC subnode should be same as HW.see below for detail.
- rcar_sound,dai        : DAI contents.The number of DAI subnode should be same as HW.see below for detail.
- #sound-dai-cells      : it must be 0 if your system is using single DAIit must be 1 if your system is using multi  DAI
- clocks            : References to SSI/SRC/MIX/CTU/DVC/AUDIO_CLK clocks.
- clock-names           : List of necessary clock names."ssi-all", "ssi.X", "src.X", "mix.X", "ctu.X","dvc.X", "clk_a", "clk_b", "clk_c", "clk_i"Optional properties:
- #clock-cells          : it must be 0 if your system has audio_clkoutit must be 1 if your system has audio_clkout0/1/2/3
- clock-frequency       : for all audio_clkout0/1/2/3
- clkout-lr-asynchronous    : boolean property. it indicates that audio_clkoutnis asynchronizes with lr-clock.
- resets            : References to SSI resets.
- reset-names           : List of valid reset names."ssi-all", "ssi.X"SSI subnode properties:
- interrupts            : Should contain SSI interrupt for PIO transfer
- shared-pin            : if shared clock pin
- pio-transfer          : use PIO transfer mode
- no-busif          : BUSIF is not ussed when [mem -> SSI] via DMA case
- dma               : Should contain Audio DMAC entry
- dma-names         : SSI  case "rx"  (=playback), "tx"  (=capture)Deprecated: see SSIU subnode propertiesSSIU case "rxu" (=playback), "txu" (=capture)SSIU subnode properties:
- dma               : Should contain Audio DMAC entry
- dma-names         : "rx" (=playback), "tx" (=capture)SRC subnode properties:
- dma               : Should contain Audio DMAC entry
- dma-names         : "rx" (=playback), "tx" (=capture)DVC subnode properties:
- dma               : Should contain Audio DMAC entry
- dma-names         : "tx" (=playback/capture)DAI subnode properties:
- playback          : list of playback modules
- capture           : list of capture  modules=============================================
Example:
=============================================rcar_sound: sound@ec500000 {#sound-dai-cells = <1>;compatible = "renesas,rcar_sound-r8a7791", "renesas,rcar_sound-gen2";reg =   <0 0xec500000 0 0x1000>, /* SCU */<0 0xec5a0000 0 0x100>,  /* ADG */<0 0xec540000 0 0x1000>, /* SSIU */<0 0xec541000 0 0x1280>, /* SSI */<0 0xec740000 0 0x200>;  /* Audio DMAC peri peri*/reg-names = "scu", "adg", "ssiu", "ssi", "audmapp";clocks = <&mstp10_clks R8A7790_CLK_SSI_ALL>,<&mstp10_clks R8A7790_CLK_SSI9>, <&mstp10_clks R8A7790_CLK_SSI8>,<&mstp10_clks R8A7790_CLK_SSI7>, <&mstp10_clks R8A7790_CLK_SSI6>,<&mstp10_clks R8A7790_CLK_SSI5>, <&mstp10_clks R8A7790_CLK_SSI4>,<&mstp10_clks R8A7790_CLK_SSI3>, <&mstp10_clks R8A7790_CLK_SSI2>,<&mstp10_clks R8A7790_CLK_SSI1>, <&mstp10_clks R8A7790_CLK_SSI0>,<&mstp10_clks R8A7790_CLK_SCU_SRC9>, <&mstp10_clks R8A7790_CLK_SCU_SRC8>,<&mstp10_clks R8A7790_CLK_SCU_SRC7>, <&mstp10_clks R8A7790_CLK_SCU_SRC6>,<&mstp10_clks R8A7790_CLK_SCU_SRC5>, <&mstp10_clks R8A7790_CLK_SCU_SRC4>,<&mstp10_clks R8A7790_CLK_SCU_SRC3>, <&mstp10_clks R8A7790_CLK_SCU_SRC2>,<&mstp10_clks R8A7790_CLK_SCU_SRC1>, <&mstp10_clks R8A7790_CLK_SCU_SRC0>,<&mstp10_clks R8A7790_CLK_SCU_DVC0>, <&mstp10_clks R8A7790_CLK_SCU_DVC1>,<&audio_clk_a>, <&audio_clk_b>, <&audio_clk_c>, <&m2_clk>;clock-names = "ssi-all","ssi.9", "ssi.8", "ssi.7", "ssi.6", "ssi.5","ssi.4", "ssi.3", "ssi.2", "ssi.1", "ssi.0","src.9", "src.8", "src.7", "src.6", "src.5","src.4", "src.3", "src.2", "src.1", "src.0","dvc.0", "dvc.1","clk_a", "clk_b", "clk_c", "clk_i";rcar_sound,dvc {dvc0: dvc-0 {dmas = <&audma0 0xbc>;dma-names = "tx";};dvc1: dvc-1 {dmas = <&audma0 0xbe>;dma-names = "tx";};};rcar_sound,mix {mix0: mix-0 { };mix1: mix-1 { };};rcar_sound,ctu {ctu00: ctu-0 { };ctu01: ctu-1 { };ctu02: ctu-2 { };ctu03: ctu-3 { };ctu10: ctu-4 { };ctu11: ctu-5 { };ctu12: ctu-6 { };ctu13: ctu-7 { };};rcar_sound,src {src0: src-0 {interrupts = <0 352 IRQ_TYPE_LEVEL_HIGH>;dmas = <&audma0 0x85>, <&audma1 0x9a>;dma-names = "rx", "tx";};src1: src-1 {interrupts = <0 353 IRQ_TYPE_LEVEL_HIGH>;dmas = <&audma0 0x87>, <&audma1 0x9c>;dma-names = "rx", "tx";};src2: src-2 {interrupts = <0 354 IRQ_TYPE_LEVEL_HIGH>;dmas = <&audma0 0x89>, <&audma1 0x9e>;dma-names = "rx", "tx";};src3: src-3 {interrupts = <0 355 IRQ_TYPE_LEVEL_HIGH>;dmas = <&audma0 0x8b>, <&audma1 0xa0>;dma-names = "rx", "tx";};src4: src-4 {interrupts = <0 356 IRQ_TYPE_LEVEL_HIGH>;dmas = <&audma0 0x8d>, <&audma1 0xb0>;dma-names = "rx", "tx";};src5: src-5 {interrupts = <0 357 IRQ_TYPE_LEVEL_HIGH>;dmas = <&audma0 0x8f>, <&audma1 0xb2>;dma-names = "rx", "tx";};src6: src-6 {interrupts = <0 358 IRQ_TYPE_LEVEL_HIGH>;dmas = <&audma0 0x91>, <&audma1 0xb4>;dma-names = "rx", "tx";};src7: src-7 {interrupts = <0 359 IRQ_TYPE_LEVEL_HIGH>;dmas = <&audma0 0x93>, <&audma1 0xb6>;dma-names = "rx", "tx";};src8: src-8 {interrupts = <0 360 IRQ_TYPE_LEVEL_HIGH>;dmas = <&audma0 0x95>, <&audma1 0xb8>;dma-names = "rx", "tx";};src9: src-9 {interrupts = <0 361 IRQ_TYPE_LEVEL_HIGH>;dmas = <&audma0 0x97>, <&audma1 0xba>;dma-names = "rx", "tx";};};rcar_sound,ssiu {ssiu00: ssiu-0 {dmas = <&audma0 0x15>, <&audma1 0x16>;dma-names = "rx", "tx";};ssiu01: ssiu-1 {dmas = <&audma0 0x35>, <&audma1 0x36>;dma-names = "rx", "tx";};...ssiu95: ssiu-49 {dmas = <&audma0 0xA5>, <&audma1 0xA6>;dma-names = "rx", "tx";};ssiu96: ssiu-50 {dmas = <&audma0 0xA7>, <&audma1 0xA8>;dma-names = "rx", "tx";};ssiu97: ssiu-51 {dmas = <&audma0 0xA9>, <&audma1 0xAA>;dma-names = "rx", "tx";};};rcar_sound,ssi {ssi0: ssi-0 {interrupts = <0 370 IRQ_TYPE_LEVEL_HIGH>;dmas = <&audma0 0x01>, <&audma1 0x02>;dma-names = "rx", "tx";};ssi1: ssi-1 {interrupts = <0 371 IRQ_TYPE_LEVEL_HIGH>;dmas = <&audma0 0x03>, <&audma1 0x04>;dma-names = "rx", "tx";};...ssi8: ssi-8 {interrupts = <0 378 IRQ_TYPE_LEVEL_HIGH>;dmas = <&audma0 0x11>, <&audma1 0x12>;dma-names = "rx", "tx";};ssi9: ssi-9 {interrupts = <0 379 IRQ_TYPE_LEVEL_HIGH>;dmas = <&audma0 0x13>, <&audma1 0x14>;dma-names = "rx", "tx";};};rcar_sound,dai {dai0 {playback = <&ssi5 &src5>;capture  = <&ssi6>;};dai1 {playback = <&ssi3>;};dai2 {capture  = <&ssi4>;};dai3 {playback = <&ssi7>;};dai4 {capture  = <&ssi8>;};};
};=============================================
Example: simple sound card
=============================================rsnd_ak4643: sound {compatible = "simple-audio-card";simple-audio-card,format = "left_j";simple-audio-card,bitclock-master = <&sndcodec>;simple-audio-card,frame-master = <&sndcodec>;sndcpu: simple-audio-card,cpu {sound-dai = <&rcar_sound>;};sndcodec: simple-audio-card,codec {sound-dai = <&ak4643>;clocks = <&audio_clock>;};};&rcar_sound {pinctrl-0 = <&sound_pins &sound_clk_pins>;pinctrl-names = "default";/* Single DAI */#sound-dai-cells = <0>;rcar_sound,dai {dai0 {playback = <&ssi0 &src2 &dvc0>;capture  = <&ssi1 &src3 &dvc1>;};};
};&ssi1 {shared-pin;
};=============================================
Example: simple sound card for Asynchronous mode
=============================================sound {compatible = "simple-scu-audio-card";.../** SRC Asynchronous mode setting* Playback:* All input data will be converted to 48kHz* Capture:* Inputed 48kHz data will be converted to* system specified Hz*/simple-audio-card,convert-rate = <48000>;...simple-audio-card,cpu {sound-dai = <&rcar_sound>;};simple-audio-card,codec {...};
};=============================================
Example: simple sound card for channel convert
=============================================sound {compatible = "simple-scu-audio-card";.../** CTU setting* All input data will be converted to 2ch* as output data*/simple-audio-card,convert-channels = <2>;...simple-audio-card,cpu {sound-dai = <&rcar_sound>;};simple-audio-card,codec {...};
};=============================================
Example: simple sound card for MIXer
=============================================sound {compatible = "simple-scu-audio-card";...simple-audio-card,cpu@0 {sound-dai = <&rcar_sound 0>;};simple-audio-card,cpu@1 {sound-dai = <&rcar_sound 1>;};simple-audio-card,codec {...};
};&rcar_sound {...rcar_sound,dai {dai0 {playback = <&src1 &ctu02 &mix0 &dvc0 &ssi0>;};dai1 {playback = <&src2 &ctu03 &mix0 &dvc0 &ssi0>;};};
};=============================================
Example: simple sound card for TDM
=============================================rsnd_tdm: sound {compatible = "simple-audio-card";simple-audio-card,format = "left_j";simple-audio-card,bitclock-master = <&sndcodec>;simple-audio-card,frame-master = <&sndcodec>;sndcpu: simple-audio-card,cpu {sound-dai = <&rcar_sound>;dai-tdm-slot-num = <6>;};sndcodec: simple-audio-card,codec {sound-dai = <&xxx>;};
};=============================================
Example: simple sound card for TDM Split
=============================================sound_card: sound {compatible = "audio-graph-scu-card";prefix = "xxxx";routing = "xxxx Playback", "DAI0 Playback","xxxx Playback", "DAI1 Playback","xxxx Playback", "DAI2 Playback","xxxx Playback", "DAI3 Playback";convert-channels = <8>; /* TDM Split */dais = <&rsnd_port0     /* playback ch1/ch2 */&rsnd_port1     /* playback ch3/ch4 */&rsnd_port2     /* playback ch5/ch6 */&rsnd_port3     /* playback ch7/ch8 */>;
};audio-codec {...port {codec_0: endpoint@1 {remote-endpoint = <&rsnd_ep0>;};codec_1: endpoint@2 {remote-endpoint = <&rsnd_ep1>;};codec_2: endpoint@3 {remote-endpoint = <&rsnd_ep2>;};codec_3: endpoint@4 {remote-endpoint = <&rsnd_ep3>;};};
};&rcar_sound {...ports {rsnd_port0: port@0 {rsnd_ep0: endpoint {remote-endpoint = <&codec_0>;...playback = <&ssiu30 &ssi3>;};};rsnd_port1: port@1 {rsnd_ep1: endpoint {remote-endpoint = <&codec_1>;...playback = <&ssiu31 &ssi3>;};};rsnd_port2: port@2 {rsnd_ep2: endpoint {remote-endpoint = <&codec_2>;...playback = <&ssiu32 &ssi3>;};};rsnd_port3: port@3 {rsnd_ep3: endpoint {remote-endpoint = <&codec_3>;...playback = <&ssiu33 &ssi3>;};};};
};=============================================
Example: simple sound card for Multi channel
=============================================&rcar_sound {pinctrl-0 = <&sound_pins &sound_clk_pins>;pinctrl-names = "default";/* Single DAI */#sound-dai-cells = <0>;rcar_sound,dai {dai0 {playback = <&ssi0 &ssi1 &ssi2 &src0 &dvc0>;};};
};

Renesas R-Car sound 驱动说明相关推荐

  1. STM32MP157驱动开发——Linux 音频驱动

    STM32MP157驱动开发--Linux 音频驱动 一.简介 1.CS42L51 简介 2.I2S总线 3.STM32MP1 SAI 总线接口 二.驱动开发 1.音频驱动 1)修改设备树 i2c 接 ...

  2. 最全Linux驱动开发全流程详细解析(持续更新)

    Linux驱动开发详细解析 一.驱动概念 驱动与底层硬件直接打交道,充当了硬件与应用软件中间的桥梁. 具体任务 读写设备寄存器(实现控制的方式) 完成设备的轮询.中断处理.DMA通信(CPU与外设通信 ...

  3. Windows驱动开发学习笔记(六)—— Inline HOOK

    Windows驱动开发学习笔记(六)-- Inline HOOK SSDT HOOK Inline Hook 挂钩 执行流程 脱钩 实验一:3环 Inline Hook 实验二:0环 Inline H ...

  4. HD2500显卡驱动linux,Intel发布HD Graphics 2500/4000显卡Win10驱动下载

    IT之家讯 Intel发布了用于第三代CPU核心显卡HD Graphics 2500/4000的新版Win7/Win8.1/Win10驱动程序,版本号为15.33.39.4276,本次更新最大特点就是 ...

  5. 虚拟字符设备驱动开发步骤

    目录 前言 字符设备驱动简介 内核驱动操作函数集合(file_operations结构体) 字符设备驱动开发步骤 .ko驱动模块的加载和卸载(module_init驱动入口.insmod驱动加载) 字 ...

  6. HD2500显卡驱动linux,intel hd 2500驱动下载

    Intel HD Graphics 2500显卡驱动程序是一款可以有效解决Intel HD Graphics 2500显卡出现的一些问题的驱动工具,本站提供了可以在win10系统中使用的windows ...

  7. Linux学习笔记 驱动开发篇

    ARM Linux 驱动开发篇 本篇我们将会详细讲解 Linux 中的三大类驱动:字符设备驱动.块设备驱动和网络设备驱动. 字符设备最多,从最简单的点灯到 I2C.SPI.音频等都属于字符设备驱动的类 ...

  8. 联想R720使用kali安装NVIDIA显卡驱动

    1.使用中科大的更新源 2.禁用nouveau驱动 sudo gedit /etc/modprobe.d/blacklist.conf 在文本最后添加:(禁用nouveau第三方驱动,之后也不需要改回 ...

  9. linux图形加速驱动下载,Linux 安装emby 并开启nvidia nvenc 硬件加速转码

    安装环境: Linux系统自行准备安装本文章使用的是Ubuntu16.04 nvidia显卡自行去官方查询显卡是否支持nvenc (已知GT1030是不支持的)本文章使用GTX1050Ti 小惊喜 此 ...

最新文章

  1. pip 安装指定版本
  2. 这里有一个3天的秘境邀请!
  3. java css是什么_Java 之 CSS
  4. Access Your Office on Your Phone
  5. 编写一个函数实现从 1 到 n 共 n 个数的累加_leetcode306_go_累加数
  6. 通过100个单词掌握英语语法(十六) come
  7. 西瓜书+实战+吴恩达机器学习(二十)随机算法(拉斯维加斯方法、蒙特卡罗方法)
  8. GIT入门笔记(11)- 多种撤销修改场景和对策--实战练习
  9. 眼压高学计算机行吗,为什么眼压高到降不下,医生却说没问题?
  10. modelsim安装_Modelsim10.5安装教程
  11. 数据分析的 5 种归纳方法
  12. 多元线性回归模型的各种诊断
  13. 不能将值 NULL 插入列 'ID',表 列不允许有 Null 值
  14. 跨站请求伪造(CSRF)攻击
  15. igh+preempt_rt主战搭建
  16. 开发规约:接口统一返回值格式 [resend]
  17. mac安装WireShark2.0新手教程
  18. 邮件服务器怎么设置mx记录,什么是MX记录?如何设置、检测MX记录
  19. 一个小巧的C++Log输出到文件类
  20. 自学B站小甲鱼数据结构课程-C语言实现基础数据结构-栈-的例子

热门文章

  1. MacOs 下载和安装git
  2. 小米手环解锁MacOS系统笔记本MacBookPro
  3. tcpreplay命令
  4. 计算机网络nsi,运行 NSI 服务 Svchost.exe 泄漏内存和非页面缓冲池内存泄漏标记 NSpc...
  5. ubuntu重置密码忘记_在2分钟或更短时间内重置您忘记的Ubuntu密码
  6. Python(入门案例)第二期
  7. iOS 录制视频并上传
  8. 企业架构之道(四)企业架构Zachman方法
  9. 初中计算机基础知识说课稿,初中信息技术说课稿
  10. 【Rust日报】 2019-04-14