扫一扫查看属于您的

黑金特权

联想账号用户注册协议

请您仔细阅读以下条款及援引的相关条款,其中包含对您使用联想账号有重要影响的条款,您同意后方可使用联想账号及相关功能。您在使用过程中可随时通过访问“用户注册协议”页面了解《联想账号用户注册协议》详情及其更新。

最新更新:2024年9月12日

欢迎注册联想账户!注册联想账户将成为联想会员,即有机会参与联想的各种用户回馈、获得共享信息及其他会员专属服务(统称为“服务”)。本协议及援引的其他条款(“本协议”)构成您与联想(北京)有限公司和/或其关联公司(“联想”)就您注册和使用联想账户达成的有法律约束力的协议。

如您希望注册联想账号成为联想会员,享有本网站有关联想会员的专属权益及相关服务,请仔细阅读并确认您完全同意本协议。

以下条款是本协议的组成部分:

(1)联想网站 使用条款

请点击以上链接或联想网站下方链接阅读完整条款,同意本协议视为您确认已经了解并同意以上条款的所有内容。
1.0接受本协议

如您不同意本协议条款或无权签署本协议,请不要注册账户或使用相关服务。您注册账户或以其他方式使用服务,即表明您完全了解并接受本协议。

联想账户只能由有能力达成具有法律约束力合同的人士注册和使用。您应确保您已年满18岁并具有达成有法律约束力协议的完全行为能力。如您未达到法定成人年龄,您应确保本协议是由您的父母或监护人代表您签署确认的。如您代表他人(例如,某个公司或机构)确认接受本协议,您声明并保证您已获得了充分的授权并有资格这样做。

如您不符合上述条件,我们有权拒绝您注册和使用联想账户。

本文件包含了适用于联想账户注册和使用的基本条款。使用某些联想服务需适用某些特别条款。这些特别条款将随同相关服务说明提供,您注册或使用这些服务,这些特别条款将成为本协议的一部分。如特别条款与基本条款不一致,则仅就这些特定服务而言,特别条款将优先适用。

2.0账号注册

您申请注册联想账号时,必须向联想提供真实且准确的个人资料或企业信息,并于个人资料或企业信息发生任何变动时及时更新。若您提供任何错误、不实、过时或不完整或具误导性的信息;或者联想有理由怀疑您提供的信息是错误、不实、过时或不完整或具有误导性的,有权暂停或终止您的账号,并拒绝您使用联想网站及相关服务的全部或任何部分。

您在注册过程中输入的姓名、企业名称和证件号码将作为识别您与联想账号的一致性的首要证明资料,您应妥善保管,不得以任何方式提供给他人使用,包括但不限于出借、转让、共享或许可使用等。您理解,联想无义务核查每一账号使用的合法性,如发现对您账号任何未经授权的使用或发生其他类似安全问题,您应立即通知联想。

对他人未经授权使用您的账户,联想不承担任何责任。您应当对通过您的账号进行的以及您账号内的所有活动负责。联想不对与账户内部活动及账户所有权相关的争议进行判定。如不能确定账户的有效所有者,联想有权暂停或取消该账户。

3.0会员权益和服务

只有正确完成联想账户注册的用户方可成为联想会员并享有会员专属服务。会员账户可用于对用户的订购及服务申请信息进行管理。会员用户也可享有某些会员专属权益和服务,例如获得积分,具体见联想发布的活动计划和方案。

联想可根据会员完成联想指定活动情况为会员提供积分。积分仅在指定期限内有效。会员应自行负责不时核对其账户所享有积分的状态。会员可用指定数量的积分兑换联想可不时向会员提供优惠或特权。这些优惠或特权的性质,以及获得该等优惠或特权所需的积分数量,由联想确定并可随时更改。除用于兑换联想通过本服务提供的优惠或特权(如有)外,积分不得用于任何其他目的或用途。积分不可折抵任何现金或费用。兑换优惠可能有时间限制或只提供有限的数量。

积分仅可在指明适用的活动中使用,不能在任何其他活动中兑换或转移至会员的其他账户。会员积分不可出售或转让给其他会员或由其他会员兑换。会员因任何原因终止账户的,会员获得的所有积分均作废。

4.0费用

联想仅提供本协议约定的网络服务,除此之外与相关网络服务有关的设备(如个人电脑、手机、及其他与接入互联网或移动网有关的装置)及所需的费用(如为接入互联网而支付的电话费及上网费、为使用移动网而支付的手机费)均应由您自行负担。

联想可能提供某些收费服务。对于收费服务,联想会在您使用前明确提示,只有您确认接受相关服务条款并支付费用后,方可使用该收费服务。

5.0第三方网站

我们可允许您从第三方网站访问账户,或在联想网站上设置指向第三方网站的链接。这些第三方网站可能非由联想运营、管理和支持,联想不对这些网站的内容或功能的准确性、合法性、适当性或任何其他方面负责。这些链接或引用仅为用户方便而设置,并不表明我们对这些网站及其内容作出了任何认可、推荐或保证,或联想与这些网站的运营商有任何关联。您访问和使用这些第三方网站时,可能会适用附加或不同的条款和条件,您应仔细阅读这些适用于第三方网站的条款。

6.0使用规则

账号仅供会员用户用于获得联想产品和服务信息及相关支持。您不得将账号用于未明确允许的任何商业目的,例如,向第三方转售任何内容或信息。您应自行对您的账户、用户名或密码下发生的行为负责,包括通过账户发布或传送的任何内容。除非严格按照联想制定的和预期的要求获得积分,否则积分是无效的,您不得试图通过任何模仿符合要求的手段(包括但不限于使用任何脚本、机器人或其他自动化手段)获得积分。

在注册和使用账户及相关服务时,您应遵守我们告知的所有可适用的使用政策,遵循所有相关法律的规定,并始终符合公序良俗及良好道德规范。您不得为任何非法、欺诈、不当或滥用的目的或以任何可能妨碍其他用户或损害联想或其他用户的任何财产,以及侵犯或妨害第三方权利的方式使用账户。

您注册账号时应遵守以下规则:

(a)不得以党和国家领导人或其他社会名人的真实姓名、字号、艺名、笔名注册;
(b)不得以国家机构或其他机构的名称或其简称或商标、商号注册;
(c)不得注册不文明、不健康名字,或包含歧视、侮辱、猥亵类词语的名字;
(d)不得注册易产生歧义、引起他人误解的名字。

您在使用联想网站及相关服务过程中,应遵循以下规则:

(a)遵守中国有关的法律、法规和规范性文件;
(b)遵守所有与网络服务有关的协议、规定和程序;
(c)不得为任何非法目的而使用网络;
(d)不得利用联想网络进行任何可能对互联网或移动网正常运转造成不利影响的任何行为,包括但不限于不得传播或张贴垃圾邮件、不合理巨大文件、传销模式、连锁邮件;
(e)不得利用联想网络服务上传、储存、展示或传播任何非法的、虚假的、辱骂性的、骚扰性的、诽谤性的或其他违反社会公德的信息资料;
(f)不得从事任何侵犯其他任何第三方的专利权、著作权、商标权、名誉权、隐私权或其他任何合法权益的行为;
(g)不得利用联想网络进行任何不利于联想或危害计算机信息网络安全的行为;并且
(h)未经联想事先许可,不得利用联想网络从事任何商业广告行为。

如联想基于合理判断认为您违反了本协议的任何规定,可拒绝您的注册或删除您已注册的账号,立即暂停或终止您对账户的访问。

7.0变更和终止

联想可随时修改本协议的任何条款。您应经常访问本页面以了解最新的条款。如您不同意联想对本协议的任何修改,可立即停止使用您的账号。如您在联想对本协议做出任何修改后继续使用您的账号,则视为您接受联想对本协议的修改。

联想可随时通过包括但不限于网页公告、电子邮件、短信提醒等方式做出任何声明、通知、警示。该等声明或通知视为本协议的一部分,如您在联想发出该等声明或通知后使用本网站及相关服务,视为您完全同意该等声明或通知。

联想可能因系统更新维护、业务调整变化等原因随时变更、暂停或终止部分或全部网络服务(包括收费网络服务),联想将在条件允许的情况下,尽可能事先以适当的方式通知您,但不作为联想的义务。如您的账户或行为有任何违反本协议及相关使用规则的情形,联想可随时经通知或不经通知终止用户对账户及服务全部或任何部分的访问,无需说明理由,账户终止将立即生效。

您可随时注销账户。如您的账户连续180个自然日停止活动,我们将视为您已终止账户,联想有权在经通知您后注销您的账号。账户无论因任何原因注销后,您将不再享有联想会员的相关权益。未使用的积分或其他会员权益在账户终止后失效。联想将不就账户注销或禁止访问对会员或任何第三方承担任何责任。

8.0用户数据

您在注册及使用账户及相关服务时上传、存储、传输或接受的数据,其中可能包含您的个人数据(“用户数据”)。这些用户数据所有权利均由您保留,除为向您提供本协议项下相关服务的目的而使用外,未经您的事先同意和允许,联想不会自己或允许他人使用您的用户数据。

您通过账户及服务上传、存储、传送或接收的用户数据,视为您授予联想及其服务提供商一个全球范围的许可,使联想可以作为服务的组成部分并仅为提供和改进服务的目的,复制并以加密方式存储您的数据。您应确保您拥有所有必要的权利和权力授予上述许可。

为您的用户数据提供存储不是联想的义务,我们仅为用户方便的目的提供此项服务,为此,您知道并同意,联想将不对数据无论因任何原因被删除或存储失败承担责任。本协议终止后,您的用户数据将被删除且无法恢复。您应自行负责及时和妥善地对您的用户数据进行备份。您知道并同意,我们可能会对您上传或存储的用户数据的数量和期限设置限制。

您在此陈述和保证您的用户数据:(a)均为非保密信息;(b)是合法和安全的,对您的用户数据的浏览、下载或其他使用不会导致任何损失和损害,包括但不限于侵权异议、感染病毒、遭到黑客攻击、系统瘫痪等;并且(c)已经获得相关权利人的所有必要许可。

9.0知识产权

联想通过账户及相关服务提供的所有内容和材料,包括但可能不限于文本、图片、图形、图表、软件、设计元素、音视频资料等,均受相关著作权、商标和其他知识产权法律的保护,这些内容和材料由联想和/或其许可方拥有并保留所有权利和权益。

您不得为任何未明确允许的目的获取或使用相关内容和材料。除非联想事先明确书面许可,否则您不得出售、许可、出租、修改、分发、复制、模仿、传输、展示、实施、发布、改编、编辑或以任何其他未经许可方式使用联想网站的内容和材料,或制作这些内容和材料的派生作品。

10.0无保证声明

除非联想另有明确,否则账户及服务均以“按现状”且“可用”为基础提供,无任何保证。在法律允许的最大限度内,我们明确否认任何包括但不限于有关适销性、适用于某个特定目的、权属以及不侵权在内的明示、默示及法定的保证以及任何有关安全、不中断、准确性、可靠性、及时性及服务性能的保证。如相关法律不允许排除或限制某些默示保证,则相关排除和限制将不适用于您。

11.0责任限制

在任何情况下,无论您以何种依据(包括根本违约、过失、虚假陈述或其他合约或侵权方面的索赔)而有权要求联想赔偿损失,联想的责任仅限于实际直接损害或损失,且赔偿额最高为联想基于服务向您实际收取的费用总额。在任何情况下,联想均不对下列任何一项负责:(a)第三方就其损失或损害赔偿向您提起的索赔要求;(b)您的记录或数据的丢失或损毁;和(c)任何间接性的,偶然性的或附带性的损害或利润损失。即使联想已经事先获知有发生下列事项的可能性。此限制也适用于任何联想分包商和供应商。这是联想及其服务商和供应商共同承担的最高赔偿限额。如可适用法律不允许以合同方式对某些责任进行排除或限制,则在法律禁止的最大范围内,相关责任限制或排除不适用于您。

12.0抗辩和补偿

如用户对账户及服务的使用导致了针对联想、联想关联公司及业务合作方及其各自人员的索赔、要求、调查或处罚,您同意为联想、联想关联机构及业务合作方及其各自人员提供补偿和抗辩并承担由此导致的所有损害赔偿、成本和费用(包括合理的律师费),使联想、联想关联机构及业务合作方及其各自人员不因此受到任何损失和损害。本条款在本协议终止后仍然有效。

13.0一般条款

联想延误或未能行使或强制执行本协议的任何权利或条款,不构成对该权利或条款的放弃。如本协议的任何规定被判定为无效或不可强制执行,不影响本协议其他部分的效力,本协议其他部分仍继续有效。
本协议的签署及联想根据本协议向您提供的通知、披露等均可以电子方式进行。本协议项下联想通过网页公告、电子邮件、手机短信或常规的信件传送等方式向您发出的通知自联想发送之日视为已送达。您对于联想的通知应当通过联想对外正式公布的通信地址、传真号码、电子邮件地址等联系信息向联想进行书面送达。
本协议按照中华人民共和国大陆地区(不包括香港、澳门和台湾地区)法律订立和解释。因本协议执行、解释及与此有关的一切争议均应提交北京仲裁委员会按其当时有效的仲裁规则裁决。此约定并不禁止联想为阻止或防止对本协议项下义务的违反向任何有管辖权的法院申请禁制令或其他强制措施,联想申请禁止令或其他强制措施不需要提供担保。
关联公司是指被一方控制、或控制该方、或与该方受共同控制的机构。这里“机构”指任何公司、企业或其他法律实体。在本协议中,“控制”是指直接或间接地拥有影响所提及机构管理的能力,无论是通过所有权、有投票权的股份、合同或其他方式。

联想企业智能体使用附加条款

初始发布:2024-09-12
最新更新:2024-09-12

本联想企业智能体使用附加条款(“本条款”)发布后将成为本网站《联想账号用户注册协议》(统称为“网站协议”)的组成部分,并与网站协议的条款和条件结合,适用于您对我们网站人工智能功能的使用。本条款未定义的术语与网站协议使用的术语含义相同。

1.0目的和用途。联想可能基于人工智能功能为您提供反馈,此功能仅限用于为您提供联想产品和服务信息及其技术支持信息。联想无意通过本网站为公众提供任何一般性互联网内容服务,您应仅限于为了解联想、联想产品和服务信息,寻求联想产品和服务支持的目的使用本网站的人工智能功能,我们可能会拒绝、忽略或屏蔽任何非为此目的的使用。

2.0您的内容。当您使用本网站人工智能功能时,可能会要求您输入您的内容,例如,文档、文本、图像或音视频文件等(包括任何输出参数,例如纵横比、样式等)(统称为“输入”)。本网站将使用您的输入来生成输出,例如,图像、文本、图形、音视频文件等(统称为“输出”)。除本条款另有规定者外,这些输入和输出均是您的内容,除本条款外,协议有关内容的规定均适用于这些输入和输出。

3.0输入。您应对您的输入负责。您声明和保证在使用本网站人工智能功能时应按照相关法律法规和本协议中的要求承担信息安全和其他义务。您承诺不采取任何以下行为:

(1) 通过输入或其他方式,诱导生成违反相关法律法规、公共秩序、社会公德或侵犯他人合法权益的输出,包括但不限于:(a)反对宪法所确定的基本原则;(b)危害国家安全,泄露国家秘密,颠覆国家政权,推翻社会主义制度,破坏国家统一;(c)损害国家荣誉和利益;(d)歪曲、丑化、亵渎、否定英雄烈士事迹和精神,以侮辱、诽谤或者其他方式侵害英雄烈士的姓名、肖像、名誉、荣誉,否定英烈事迹,美化粉饰侵略战争行为;(e)宣扬恐怖主义、极端主义或者煽动实施恐怖活动、极端主义活动的;(f)煽动民族仇恨、民族歧视,破坏民族团结;(g)破坏国家宗教政策,宣扬邪教和封建迷信;(h)散布谣言、虚假有害信息,扰乱经济秩序和社会秩序,破坏社会稳定;(i)宣扬淫秽、色情、赌博、暴力、凶杀、恐怖主义、极端主义或者教唆犯罪;(j)煽动非法集会、结社、游行、示威、聚众扰乱社会秩序;(k)侮辱或者诽谤他人,泄露他人隐私,侵害他人名誉权、肖像权、隐私权、知识产权和其他合法权益;(l)破坏国际关系以及国际和平稳定;(m) 含有法律、行政法规禁止的其他内容的信息。

(2) 通过输入或其他方式,诱导生成不友善对话的输出,包括但不限于:(a)人身攻击及辱骂他人;(b)针对以下群体发表诅咒、歧视、漠视生命尊严等性质的言论,群体包括:不同特定国籍、地域、性别、性别认同、性倾向、种族、民族、健康状况、职业、年龄、信仰、残障群体等;(c)对他人进行诅咒、恐吓或威胁;(d)对他人创作的内容直接进行贬低性的评论;(e)对他人使用粗俗用语,并产生了冒犯;(f)针对以下群体发表偏见性质的言论,群体包括:特定国籍、地域、性别、性别认同、性倾向、种族、民族、健康状况、职业、年龄、信仰、残障群体等。

(3) 干扰联想服务的正常运行、损害联想合法权益。

(4) 其他违法或侵权行为,例如实施垄断或不正当竞争行为等。

4.0输出。您自行对输出的创建和使用负责,并确保输出符合我们的条款。您使用人工智能功能获得有关联想及联想产品和服务及支持信息,均基于您的输入创建和反馈。您自行对输出的创建和使用负责,并确保输出符合我们的条款。您使用人工智能功能获得有关联想及联想产品和服务及支持信息,均基于您的输入创建和反馈。

5.0使用规范。您不得删除或更改可能与输出内容一起提供的任何水印或标识(如有),或以其他方式试图在输出的来源方面误导他人,如您对外发布或传播输出的内容,您应当:(1)自行核查输出内容的真实性、准确性和完整性,避免传播虚假或误导性信息;(2)以显著方式标明该内容系由人工智能生成,以向公众提示内容来源;(3)避免发布和传播任何违反法律或本条款规定的内容。

6.0审核。联想可能会使用可用技术、供应商或流程来筛选和阻止任何不符合本条款规定的内容,包括但不限于,对输入和输出内容进行审核、建立风险过滤机制、建立违法内容特征库等,以及对违法和不当内容采取记录、屏蔽或删除等措施。我们可根据自己的判断随时不经另行通知限制、禁用、暂停或终止您对生成式人工智能功能的使用,但并不因此表明我们对您的内容承担任何义务和责任。请勿输入您无意让联想审核的内容。您不得采用任何方式对抗或试图绕过联想的过滤或其他审核机制,此类规避审核的行为包括但不限于:

(1) 输入难以辨识含义影响阅读体验的字符、数字及无意义乱码;

(2) 使用变体、谐音等方式输入违规信息;以及

(3) 使用复杂语义、长文本等方式以输入违规信息。

7.0知识产权及其他权利归属。我们基于您的输入反馈的有关联想、联想产品和服务及相关支持的信息(包括文字、图片及音视频等),其知识产权及其他权利和相关权益均归联想或联想的许可方拥有,除按本网站允许的目的使用外,我们并未授予您任何其他明示或默示的许可和权利。除此之外,您的内容中包含的任何已有知识产权及其他权利和相关权益(包括知识产权、肖像权等)始终归您或您的许可方所有,您对您的内容是否拥有相关权利和权益,由您自行判断及处理,我们对此不承担任何责任。

8.0内容使用的同意和许可。您同意,为改进本网站及相关技术,我们可以将您的输入、输出及其他生成信息做去标识化处理后再用于模型及算法训练,公开给其他用户并允许这些用户使用输入或输出来创建自己的内容。我们尊重并保护您的个人隐私。如我们为本条款的目的使用您的输入和输出,我们会对输入和输出中可能含有的个人信息进行脱敏处理,以保护您的个人信息。就您提交的输入以及相应的输出,您同意授予我们本条款规定的同意和许可,本同意和许可在本协议终止或到期后仍然有效。您应谨慎选择输入信息,特别是如果您的输入可能包含他人的个人信息,请务必取得相关方的授权或同意。更多关于用户个人信息保护的内容,请阅读联想隐私权政策声明,详细了解我们如何收集、使用、保护您的个人信息。

9.0不得进行Al或机器学习训练。您不得自行或允许第三方使用从本网站人工智能功能(包括任何输出)接收或派生的任何内容、数据、输出或其他信息,直接或间接创建、训练、测试或以其他方式改进任何机器学习算法或人工智能系统,包括任何架构、模型或权重。

联想网站使用条款和隐私政策声明

联想网站“使用条款”及“联想网站隐私声明”是本协议的组成部分,该两条款见联想网站下方链接。您也可点击这里的链接“使用条款”及“联想网站隐私政策”阅读完整条款,并确认您了解并同意其所有内容。

同意并继续

[求助] ThinkBook 16p Gen5 安装 debian 12 后声音效果问题

发表于 2024-5-2 20:37   |   来自Microsoft Edge浏览器
1077 3  

本帖最后由 lenovo109169076 于 2024-5-3 03:33 编辑

我是今年第一批入手 ThinkBook 16p 2024 款的,到手后重新分区做一个双系统。除原装 Windows 11,又安了一个 Linux 系统(Debian 12 )。Linux 系统有声音,但电脑内置音响的音效明显失真(耳机效果正常)。这几天一直在边学边调,虽然不期望有 windows 里杜比音效的水平,但也不想一直听现在那种刺耳的感觉。

尝试调 ALSA、pulseaudio、HDAJackRetask …… 没什么用,感觉问题不是自己想的那么简单——配置下就能解决(也可能就是配置问题,我就是瞎鼓捣)。看电脑的硬件说明,ThinkBook 16p Gen5 有四个扬声器(Speakers),两个高音,两个低音。目前 Linux 的声音比较刺耳,效果有点像把收音机放铁皮罐子里的感觉,可能是两个低音speaker没有正常工作。

有没有大神有解决的经验 …… 不想浪费 harman kardon 的音响 ……  



/etc/pulse/daemon.conf 如下:


  1. # This file is part of PulseAudio.
  2. #
  3. # PulseAudio is free software; you can redistribute it and/or modify
  4. # it under the terms of the GNU Lesser General Public License as published by
  5. # the Free Software Foundation; either version 2 of the License, or
  6. # (at your option) any later version.
  7. #
  8. # PulseAudio is distributed in the hope that it will be useful, but
  9. # WITHOUT ANY WARRANTY; without even the implied warranty of
  10. # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  11. # General Public License for more details.
  12. #       
  13. # You should have received a copy of the GNU Lesser General Public License
  14. # along with PulseAudio; if not, see <http://www.gnu.org/licenses/>.

  15. ## Configuration file for the PulseAudio daemon. See pulse-daemon.conf(5) for
  16. ## more information. Default values are commented out.  Use either ; or # for
  17. ## commenting.

  18. ; daemonize = no
  19. ; fail = yes
  20. ; allow-module-loading = yes
  21. ; allow-exit = yes
  22. ; use-pid-file = yes
  23. ; system-instance = no
  24. ; local-server-type = user
  25. ; enable-shm = yes
  26. ; enable-memfd = yes
  27. ; shm-size-bytes = 0 # setting this 0 will use the system-default, usually 64 MiB
  28. ; lock-memory = no
  29. ; cpu-limit = no

  30. ; high-priority = yes
  31. ; nice-level = -11

  32. ; realtime-scheduling = yes
  33. ; realtime-priority = 5

  34. ; exit-idle-time = 20
  35. ; scache-idle-time = 20

  36. ; dl-search-path = (depends on architecture)

  37. ; load-default-script-file = yes
  38. ; default-script-file = /etc/pulse/default.pa

  39. ; log-target = auto
  40. ; log-level = notice
  41. ; log-meta = no
  42. ; log-time = no
  43. ; log-backtrace = 0

  44. ; resample-method = speex-float-1
  45. avoid-resampling = yes
  46. enable-remixing = yes
  47. remixing-use-all-sink-channels = yes
  48. remixing-produce-lfe = yes
  49. remixing-consume-lfe = yes
  50. lfe-crossover-freq = 160

  51. ; flat-volumes = no

  52. ; rescue-streams = yes

  53. ; rlimit-fsize = -1
  54. ; rlimit-data = -1
  55. ; rlimit-stack = -1
  56. ; rlimit-core = -1
  57. ; rlimit-as = -1
  58. ; rlimit-rss = -1
  59. ; rlimit-nproc = -1
  60. ; rlimit-nofile = 256
  61. ; rlimit-memlock = -1
  62. ; rlimit-locks = -1
  63. ; rlimit-sigpending = -1
  64. ; rlimit-msgqueue = -1
  65. ; rlimit-nice = 31
  66. ; rlimit-rtprio = 9
  67. ; rlimit-rttime = 200000

  68. ; default-sample-format = s16le
  69. default-sample-rate = 48000
  70. ; alternate-sample-rate = 48000
  71. default-sample-channels = 2
  72. ; default-channel-map = front-left,front-right

  73. default-fragments = 5
  74. default-fragment-size-msec = 2

  75. ; enable-deferred-volume = yes
  76. ; deferred-volume-safety-margin-usec = 8000
  77. ; deferred-volume-extra-delay-usec = 0
复制代码



/usr/share/alsa/alsa.conf 如下:


  1. #
  2. #  ALSA library configuration file
  3. #

  4. # pre-load the configuration files

  5. @hooks [
  6.         {
  7.                 func load
  8.                 files [
  9.                         "/var/lib/alsa/conf.d"
  10.                         "/usr/etc/alsa/conf.d"
  11.                         "/etc/alsa/conf.d"
  12.                         "/etc/asound.conf|||/usr/etc/asound.conf"
  13.                         "~/.asoundrc"
  14.                         {
  15.                                 @func concat
  16.                                 strings [
  17.                                         {
  18.                                                 @func getenv
  19.                                                 vars [
  20.                                                         XDG_CONFIG_HOME
  21.                                                 ]
  22.                                                 default "~/.config"
  23.                                         }
  24.                                         "/alsa/asoundrc"
  25.                                 ]
  26.                         }
  27.                 ]
  28.                 errors false
  29.         }
  30. ]

  31. # load card-specific configuration files (on request)

  32. cards.@hooks [
  33.         {
  34.                 func load
  35.                 files [
  36.                         {
  37.                                 @func concat
  38.                                 strings [
  39.                                         { @func datadir }
  40.                                         "/cards/aliases.conf"
  41.                                 ]
  42.                         }
  43.                 ]
  44.         }
  45.         {
  46.                 func load_for_all_cards
  47.                 files [
  48.                         {
  49.                                 @func concat
  50.                                 strings [
  51.                                         { @func datadir }
  52.                                         "/cards/"
  53.                                         { @func private_string }
  54.                                         ".conf"
  55.                                 ]
  56.                         }
  57.                         {
  58.                                 root {
  59.                                         @func private_integer
  60.                                 }
  61.                                 file {
  62.                                         @func concat
  63.                                         strings [
  64.                                                 "/var/lib/alsa/card"
  65.                                                 { @func private_integer }
  66.                                                 ".conf.d"
  67.                                         ]
  68.                                 }
  69.                         }
  70.                 ]
  71.                 table {
  72.                         id {
  73.                                 @func concat
  74.                                 strings [
  75.                                         { @func private_integer }
  76.                                 ]
  77.                         }
  78.                         value {
  79.                                 @func concat
  80.                                 strings [
  81.                                         "cards."
  82.                                         { @func private_string }
  83.                                 ]
  84.                         }
  85.                 }
  86.                 errors false
  87.         }
  88. ]

  89. #
  90. # defaults
  91. #

  92. # show all name hints also for definitions without hint {} section
  93. defaults.namehint.showall on
  94. # show just basic name hints
  95. defaults.namehint.basic on
  96. # show extended name hints
  97. defaults.namehint.extended on
  98. #
  99. defaults.ctl.card 0
  100. defaults.pcm.card 0
  101. defaults.pcm.device 0
  102. defaults.pcm.subdevice -1
  103. defaults.pcm.nonblock 1
  104. defaults.pcm.compat 0
  105. defaults.pcm.minperiodtime 5000                # in us
  106. defaults.pcm.ipc_key 5678293
  107. defaults.pcm.ipc_gid audio
  108. defaults.pcm.ipc_perm 0660
  109. defaults.pcm.tstamp_type default
  110. defaults.pcm.dmix.max_periods 0
  111. defaults.pcm.dmix.channels 2
  112. defaults.pcm.dmix.rate 48000
  113. defaults.pcm.dmix.format unchanged
  114. defaults.pcm.dmix.card defaults.pcm.card
  115. defaults.pcm.dmix.device defaults.pcm.device
  116. defaults.pcm.dsnoop.card defaults.pcm.card
  117. defaults.pcm.dsnoop.device defaults.pcm.device
  118. defaults.pcm.front.card defaults.pcm.card
  119. defaults.pcm.front.device defaults.pcm.device
  120. defaults.pcm.rear.card defaults.pcm.card
  121. defaults.pcm.rear.device defaults.pcm.device
  122. defaults.pcm.center_lfe.card defaults.pcm.card
  123. defaults.pcm.center_lfe.device defaults.pcm.device
  124. defaults.pcm.side.card defaults.pcm.card
  125. defaults.pcm.side.device defaults.pcm.device
  126. defaults.pcm.surround21.card defaults.pcm.card
  127. defaults.pcm.surround21.device defaults.pcm.device
  128. defaults.pcm.surround40.card defaults.pcm.card
  129. defaults.pcm.surround40.device defaults.pcm.device
  130. defaults.pcm.surround41.card defaults.pcm.card
  131. defaults.pcm.surround41.device defaults.pcm.device
  132. defaults.pcm.surround50.card defaults.pcm.card
  133. defaults.pcm.surround50.device defaults.pcm.device
  134. defaults.pcm.surround51.card defaults.pcm.card
  135. defaults.pcm.surround51.device defaults.pcm.device
  136. defaults.pcm.surround71.card defaults.pcm.card
  137. defaults.pcm.surround71.device defaults.pcm.device
  138. defaults.pcm.iec958.card defaults.pcm.card
  139. defaults.pcm.iec958.device defaults.pcm.device
  140. defaults.pcm.modem.card defaults.pcm.card
  141. defaults.pcm.modem.device defaults.pcm.device
  142. defaults.pcm.file_format raw
  143. defaults.pcm.file_truncate true                # truncate files via file or tee PCM
  144. defaults.rawmidi.card 0
  145. defaults.rawmidi.device 0
  146. defaults.rawmidi.subdevice -1
  147. defaults.hwdep.card 0
  148. defaults.hwdep.device 0
  149. defaults.timer.class 2
  150. defaults.timer.sclass 0
  151. defaults.timer.card 0
  152. defaults.timer.device 0
  153. defaults.timer.subdevice 0

  154. #
  155. #  PCM interface
  156. #

  157. pcm.hw {
  158.         @args [ CARD DEV SUBDEV ]
  159.         @args.CARD {
  160.                 type string
  161.                 default {
  162.                         @func getenv
  163.                         vars [
  164.                                 ALSA_PCM_CARD
  165.                                 ALSA_CARD
  166.                         ]
  167.                         default {
  168.                                 @func refer
  169.                                 name defaults.pcm.card
  170.                         }
  171.                 }
  172.         }
  173.         @args.DEV {
  174.                 type integer
  175.                 default {
  176.                         @func igetenv
  177.                         vars [
  178.                                 ALSA_PCM_DEVICE
  179.                         ]
  180.                         default {
  181.                                 @func refer
  182.                                 name defaults.pcm.device
  183.                         }
  184.                 }
  185.         }
  186.         @args.SUBDEV {
  187.                 type integer
  188.                 default {
  189.                         @func refer
  190.                         name defaults.pcm.subdevice
  191.                 }
  192.         }               
  193.         type hw
  194.         card $CARD
  195.         device $DEV
  196.         subdevice $SUBDEV
  197.         hint {
  198.                 show {
  199.                         @func refer
  200.                         name defaults.namehint.extended
  201.                 }
  202.                 description "Direct hardware device without any conversions"
  203.         }
  204. }

  205. pcm.plughw {
  206.         @args [ CARD DEV SUBDEV ]
  207.         @args.CARD {
  208.                 type string
  209.                 default {
  210.                         @func getenv
  211.                         vars [
  212.                                 ALSA_PCM_CARD
  213.                                 ALSA_CARD
  214.                         ]
  215.                         default {
  216.                                 @func refer
  217.                                 name defaults.pcm.card
  218.                         }
  219.                 }
  220.         }
  221.         @args.DEV {
  222.                 type integer
  223.                 default {
  224.                         @func igetenv
  225.                         vars [
  226.                                 ALSA_PCM_DEVICE
  227.                         ]
  228.                         default {
  229.                                 @func refer
  230.                                 name defaults.pcm.device
  231.                         }
  232.                 }
  233.         }
  234.         @args.SUBDEV {
  235.                 type integer
  236.                 default {
  237.                         @func refer
  238.                         name defaults.pcm.subdevice
  239.                 }
  240.         }               
  241.         type plug
  242.         slave.pcm {
  243.                 type hw
  244.                 card $CARD
  245.                 device $DEV
  246.                 subdevice $SUBDEV
  247.         }
  248.         hint {
  249.                 show {
  250.                         @func refer
  251.                         name defaults.namehint.extended
  252.                 }
  253.                 description "Hardware device with all software conversions"
  254.         }
  255. }

  256. pcm.plug {
  257.         @args [ SLAVE ]
  258.         @args.SLAVE {
  259.                 type string
  260.         }
  261.         type plug
  262.         slave.pcm $SLAVE
  263. }

  264. pcm.shm {
  265.         @args [ SOCKET PCM ]
  266.         @args.SOCKET {
  267.                 type string
  268.         }
  269.         @args.PCM {
  270.                 type string
  271.         }
  272.         type shm
  273.         server $SOCKET
  274.         pcm $PCM
  275. }

  276. pcm.tee {
  277.         @args [ SLAVE FILE FORMAT ]
  278.         @args.SLAVE {
  279.                 type string
  280.         }
  281.         @args.FILE {
  282.                 type string
  283.         }
  284.         @args.FORMAT {
  285.                 type string
  286.                 default {
  287.                         @func refer
  288.                         name defaults.pcm.file_format
  289.                 }
  290.         }
  291.         type file
  292.         slave.pcm $SLAVE
  293.         file $FILE
  294.         format $FORMAT
  295.         truncate {
  296.                 @func refer
  297.                 name defaults.pcm.file_truncate
  298.         }
  299. }

  300. pcm.file {
  301.         @args [ FILE FORMAT ]
  302.         @args.FILE {
  303.                 type string
  304.         }
  305.         @args.FORMAT {
  306.                 type string
  307.                 default {
  308.                         @func refer
  309.                         name defaults.pcm.file_format
  310.                 }
  311.         }
  312.         type file
  313.         slave.pcm null
  314.         file $FILE
  315.         format $FORMAT
  316.         truncate {
  317.                 @func refer
  318.                 name defaults.pcm.file_truncate
  319.         }
  320. }

  321. pcm.null {
  322.         type null
  323.         hint {
  324.                 show {
  325.                         @func refer
  326.                         name defaults.namehint.basic
  327.                 }
  328.                 description "Discard all samples (playback) or generate zero samples (capture)"
  329.         }
  330. }

  331. # redirect to load-on-demand extended pcm definitions
  332. pcm.cards cards.pcm

  333. pcm.default cards.pcm.default
  334. pcm.sysdefault cards.pcm.default
  335. pcm.front cards.pcm.front
  336. pcm.rear cards.pcm.rear
  337. pcm.center_lfe cards.pcm.center_lfe
  338. pcm.side cards.pcm.side
  339. pcm.surround21 cards.pcm.surround21
  340. pcm.surround40 cards.pcm.surround40
  341. pcm.surround41 cards.pcm.surround41
  342. pcm.surround50 cards.pcm.surround50
  343. pcm.surround51 cards.pcm.surround51
  344. pcm.surround71 cards.pcm.surround71
  345. pcm.iec958 cards.pcm.iec958
  346. pcm.spdif iec958
  347. pcm.hdmi cards.pcm.hdmi
  348. pcm.dmix cards.pcm.dmix
  349. pcm.dsnoop cards.pcm.dsnoop
  350. pcm.modem cards.pcm.modem
  351. pcm.phoneline cards.pcm.phoneline

  352. #
  353. #  Control interface
  354. #
  355.        
  356. ctl.default cards.ctl.default
  357. ctl.sysdefault cards.ctl.default

  358. ctl.hw {
  359.         @args [ CARD ]
  360.         @args.CARD {
  361.                 type string
  362.                 default {
  363.                         @func getenv
  364.                         vars [
  365.                                 ALSA_CTL_CARD
  366.                                 ALSA_CARD
  367.                         ]
  368.                         default {
  369.                                 @func refer
  370.                                 name defaults.ctl.card
  371.                         }
  372.                 }
  373.         }
  374.         type hw
  375.         card $CARD
  376.         hint.description "Direct control device"
  377. }

  378. ctl.shm {
  379.         @args [ SOCKET CTL ]
  380.         @args.SOCKET {
  381.                 type string
  382.         }
  383.         @args.CTL {
  384.                 type string
  385.         }
  386.         type shm
  387.         server $SOCKET
  388.         ctl $CTL
  389. }

  390. #
  391. #  RawMidi interface
  392. #

  393. rawmidi.default {
  394.         type hw
  395.         card {
  396.                 @func getenv
  397.                 vars [
  398.                         ALSA_RAWMIDI_CARD
  399.                         ALSA_CARD
  400.                 ]
  401.                 default {
  402.                         @func refer
  403.                         name defaults.rawmidi.card
  404.                 }
  405.         }
  406.         device {
  407.                 @func igetenv
  408.                 vars [
  409.                         ALSA_RAWMIDI_DEVICE
  410.                 ]
  411.                 default {
  412.                         @func refer
  413.                         name defaults.rawmidi.device
  414.                 }
  415.         }
  416.         hint.description "Default raw MIDI device"
  417. }

  418. rawmidi.hw {
  419.         @args [ CARD DEV SUBDEV ]
  420.         @args.CARD {
  421.                 type string
  422.                 default {
  423.                         @func getenv
  424.                         vars [
  425.                                 ALSA_RAWMIDI_CARD
  426.                                 ALSA_CARD
  427.                         ]
  428.                         default {
  429.                                 @func refer
  430.                                 name defaults.rawmidi.card
  431.                         }
  432.                 }
  433.         }
  434.         @args.DEV {
  435.                 type integer
  436.                 default {
  437.                         @func igetenv
  438.                         vars [
  439.                                 ALSA_RAWMIDI_DEVICE
  440.                         ]
  441.                         default {
  442.                                 @func refer
  443.                                 name defaults.rawmidi.device
  444.                         }
  445.                 }
  446.         }
  447.         @args.SUBDEV {
  448.                 type integer
  449.                 default -1
  450.         }
  451.         type hw
  452.         card $CARD
  453.         device $DEV
  454.         subdevice $SUBDEV
  455.         hint {
  456.                 description "Direct rawmidi driver device"
  457.                 device $DEV
  458.         }
  459. }

  460. rawmidi.virtual {
  461.         @args [ MERGE ]
  462.         @args.MERGE {
  463.                 type string
  464.                 default 1
  465.         }
  466.         type virtual
  467.         merge $MERGE
  468. }

  469. #
  470. #  Sequencer interface
  471. #

  472. seq.default {
  473.         type hw
  474.         hint.description "Default sequencer device"
  475. }

  476. seq.hw {
  477.         type hw
  478. }

  479. #
  480. #  HwDep interface
  481. #

  482. hwdep.default {
  483.         type hw
  484.         card {
  485.                 @func getenv
  486.                 vars [
  487.                         ALSA_HWDEP_CARD
  488.                         ALSA_CARD
  489.                 ]
  490.                 default {
  491.                         @func refer
  492.                         name defaults.hwdep.card
  493.                 }
  494.         }
  495.         device {
  496.                 @func igetenv
  497.                 vars [
  498.                         ALSA_HWDEP_DEVICE
  499.                 ]
  500.                 default {
  501.                         @func refer
  502.                         name defaults.hwdep.device
  503.                 }
  504.         }
  505.         hint.description "Default hardware dependent device"
  506. }

  507. hwdep.hw {
  508.         @args [ CARD DEV ]
  509.         @args.CARD {
  510.                 type string
  511.                 default {
  512.                         @func getenv
  513.                         vars [
  514.                                 ALSA_HWDEP_CARD
  515.                                 ALSA_CARD
  516.                         ]
  517.                         default {
  518.                                 @func refer
  519.                                 name defaults.hwdep.card
  520.                         }
  521.                 }
  522.         }
  523.         @args.DEV {
  524.                 type integer
  525.                 default {
  526.                         @func igetenv
  527.                         vars [
  528.                                 ALSA_HWDEP_DEVICE
  529.                         ]
  530.                         default {
  531.                                 @func refer
  532.                                 name defaults.hwdep.device
  533.                         }
  534.                 }
  535.         }
  536.         type hw
  537.         card $CARD
  538.         device $DEV
  539.         hint {
  540.                 description "Direct hardware dependent device"
  541.                 device $DEV
  542.         }
  543. }

  544. #
  545. #  Timer interface
  546. #

  547. timer_query.default {
  548.         type hw
  549. }

  550. timer_query.hw {
  551.         type hw
  552. }

  553. timer.default {
  554.         type hw
  555.         class {
  556.                 @func refer
  557.                 name defaults.timer.class
  558.         }
  559.         sclass {
  560.                 @func refer
  561.                 name defaults.timer.sclass
  562.         }
  563.         card {
  564.                 @func refer
  565.                 name defaults.timer.card
  566.         }
  567.         device {
  568.                 @func refer
  569.                 name defaults.timer.device
  570.         }
  571.         subdevice {
  572.                 @func refer
  573.                 name defaults.timer.subdevice
  574.         }
  575.         hint.description "Default timer device"
  576. }

  577. timer.hw {
  578.         @args [ CLASS SCLASS CARD DEV SUBDEV ]
  579.         @args.CLASS {
  580.                 type integer
  581.                 default {
  582.                         @func refer
  583.                         name defaults.timer.class
  584.                 }
  585.         }
  586.         @args.SCLASS {
  587.                 type integer
  588.                 default {
  589.                         @func refer
  590.                         name defaults.timer.sclass
  591.                 }
  592.         }
  593.         @args.CARD {
  594.                 type string
  595.                 default {
  596.                         @func refer
  597.                         name defaults.timer.card
  598.                 }
  599.         }
  600.         @args.DEV {
  601.                 type integer
  602.                 default {
  603.                         @func refer
  604.                         name defaults.timer.device
  605.                 }
  606.         }
  607.         @args.SUBDEV {
  608.                 type integer
  609.                 default {
  610.                         @func refer
  611.                         name defaults.timer.subdevice
  612.                 }
  613.         }
  614.         type hw
  615.         class $CLASS
  616.         sclass $SCLASS
  617.         card $CARD
  618.         device $DEV
  619.         subdevice $SUBDEV
  620.         hint {
  621.                 description "Direct timer device"
  622.                 device $DEV
  623.         }
  624. }
复制代码


/usr/share/alsa-card-profile/mixer/paths/analog-output.conf.common 如下:


  1. # This file is part of PulseAudio.
  2. #
  3. # PulseAudio is free software; you can redistribute it and/or modify
  4. # it under the terms of the GNU Lesser General Public License as
  5. # published by the Free Software Foundation; either version 2.1 of the
  6. # License, or (at your option) any later version.
  7. #
  8. # PulseAudio is distributed in the hope that it will be useful, but
  9. # WITHOUT ANY WARRANTY; without even the implied warranty of
  10. # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  11. # General Public License for more details.
  12. #
  13. # You should have received a copy of the GNU Lesser General Public License
  14. # along with PulseAudio; if not, see <http://www.gnu.org/licenses/>.

  15. ; Common part of all paths

  16. ; So here's generally how mixer paths are used by PA: PA goes through
  17. ; a mixer path file from top to bottom and checks if a mixer element
  18. ; described therein exists. If so it is added to the list of mixer
  19. ; elements PA will control, keeping the order it read them in. If a
  20. ; mixer element described here has set the required= or
  21. ; required-absent= directives a path might not be accepted as valid
  22. ; and is ignored in its entirety (see below). However usually if a
  23. ; element listed here is missing this one element is ignored but not
  24. ; the entire path.
  25. ;
  26. ; When a device shall be muted/unmuted *all* elements listed in a path
  27. ; file with "switch = mute" will be toggled.
  28. ;
  29. ; When a device shall change its volume, PA will got through the list
  30. ; of all elements with "volume = merge" and set the volume on the
  31. ; first element. If that element does not support dB volumes, this is
  32. ; where the story ends. If it does support dB volumes, PA divides the
  33. ; requested volume by the volume that was set on this element, and
  34. ; then go on to the next element with "volume = merge" and then set
  35. ; that there, and so on.  That way the first volume element in the
  36. ; path will be the one that does the 'biggest' part of the overall
  37. ; volume adjustment, with the remaining elements usually being set to
  38. ; some value next to 0dB. This logic makes sure we get the full range
  39. ; over all volume sliders and a very high granularity of volumes
  40. ; already in hardware.
  41. ;
  42. ; All switches and enumerations set to "select" are exposed via the
  43. ; "port" functionality of sinks/sources. Basically every possible
  44. ; switch setting and every possible enumeration setting will be
  45. ; combined and made into a "port". So make sure you don't list too
  46. ; many switches/enums for exposing, because the number of ports might
  47. ; rise exponentially.
  48. ;
  49. ; Only one path can be selected at a time. All paths that are valid
  50. ; for an audio device will be exposed as "port" for the sink/source.


  51. ; [General]
  52. ; type = ...                             # The device type. It's highly recommended to set a type for every path.
  53. ;                                        # See parse_type() in alsa-mixer.c for supported values.
  54. ; priority = ...                         # Priority for this path
  55. ; description-key = ...                  # The path description is looked up from a table in path_verify() in
  56. ;                                        # src/modules/alsa/alsa-mixer.c. By default the path name (i.e. the file name
  57. ;                                        # minus the ".conf" suffix) is used as the lookup key, but if this option is
  58. ;                                        # set, then the given string is used as the key instead. In any case the
  59. ;                                        # "description" option can be used to override the path description.
  60. ; description = ...                      # Description for this path. Overrides the normal description lookup logic, as
  61. ;                                        # described in the "description-key" documentation above.
  62. ; mute-during-activation = yes | no      # If this path supports hardware mute, should the hw mute be used while activating this
  63. ;                                        # path? In some cases this can reduce extra noises during port switching, while in other
  64. ;                                        # cases this can increase such noises. Default: no.
  65. ; eld-device = ...                       # If this is an HDMI port, set to "auto" so that PulseAudio will try to read
  66. ;                                        # the monitor ELD information from the ALSA mixer. By default the ELD information
  67. ;                                        # is not read, because it's only applicable with HDMI. Earlier the "auto" option
  68. ;                                        # didn't exist, and the hw device index had to be manually configured. For
  69. ;                                        # backwards compatibility, it's still possible to manually configure the device
  70. ;                                        # index using this option.
  71. ;
  72. ; [Properties]                           # Property list for this path. The list is merged into the port property list.
  73. ; <key> = <value>                        # Each property is defined on its own line.
  74. ; ...
  75. ;
  76. ; [Option ...:...]                       # For each option of an enumeration or switch element
  77. ;                                        # that shall be exposed as a sink/source port. Needs to
  78. ;                                        # be named after the Element, followed by a colon, followed
  79. ;                                        # by the option name, resp. on/off if the element is a switch.
  80. ; name = ...                             # Logical name to use in the path identifier
  81. ; priority = ...                         # Priority if this is made into a device port
  82. ; required = ignore | enumeration | any            # In this element, this option must exist or the path will be invalid. ("any" is an alias for "enumeration".)
  83. ; required-any = ignore | enumeration | any        # In this element, either this or another option must exist (or an element)
  84. ; required-absent = ignore | enumeration | any     # In this element, this option must not exist or the path will be invalid
  85. ;
  86. ; [Element ...]                          # For each element that we shall control. The "..." here is the element name,
  87. ;                                        # or name and index separated by a comma.
  88. ; required = ignore | switch | volume | enumeration | any     # If set, require this element to be of this kind and available,
  89. ;                                                             # otherwise don't consider this path valid for the card
  90. ; required-any = ignore | switch | volume | enumeration | any # If set, at least one of the elements or jacks with required-any in this
  91. ;                                                             # path must be present, otherwise this path is invalid for the card
  92. ; required-absent = ignore | switch | volume                  # If set, require this element to not be of this kind and not
  93. ;                                                             # available, otherwise don't consider this path valid for the card
  94. ;
  95. ; switch = ignore | mute | off | on | select # What to do with this switch: ignore it, make it follow mute status,
  96. ;                                            # always set it to off, always to on, or make it selectable as port.
  97. ;                                            # If set to 'select' you need to define an Option section for on
  98. ;                                            # and off
  99. ; volume = ignore | merge | off | zero | <volume step> # What to do with this volume: ignore it, merge it into the device
  100. ;                                                      # volume slider, always set it to the lowest value possible, or always
  101. ;                                                      # set it to 0 dB (for whatever that means), or always set it to
  102. ;                                                      # <volume step> (this only makes sense in path configurations where
  103. ;                                                      # the exact hardware and driver are known beforehand).
  104. ; volume-limit = <volume step>           # Limit the maximum volume by disabling the volume steps above <volume step>.
  105. ; enumeration = ignore | select          # What to do with this enumeration, ignore it or make it selectable
  106. ;                                        # via device ports. If set to 'select' you need to define an Option section
  107. ;                                        # for each of the items you want to expose
  108. ; direction = playback | capture         # Is this relevant only for playback or capture? If not set this will implicitly be
  109. ;                                        # set the direction of the PCM device is opened as. Generally this doesn't need to be set
  110. ;                                        # unless you have a broken driver that has playback controls marked for capture or vice
  111. ;                                        # versa
  112. ; direction-try-other = no | yes         # If the element does not supported what is requested, try the other direction, too?
  113. ;
  114. ; override-map.1 = ...                   # Override the channel mask of the mixer control if the control only exposes a single channel
  115. ; override-map.2 = ...                   # Override the channel masks of the mixer control if the control only exposes two channels
  116. ;                                        # Override maps should list for each element channel which high-level channels it controls via a
  117. ;                                        # channel mask. A channel mask may either be the name of a single channel, or the words "all-left",
  118. ;                                        # "all-right", "all-center", "all-front", "all-rear", and "all" to encode a specific subset of
  119. ;                                        # channels in a mask
  120. ; [Jack ...]                           # For each jack that we will use for jack detection
  121. ;                                      # The name 'Jack Foo' must match ALSA's 'Foo Jack' control.
  122. ; required = ignore | any              # If not set to ignore, make the path invalid if this jack control is not present.
  123. ; required-absent = ignore | any       # If not set to ignore, make the path invalid if this jack control is present.
  124. ; required-any = ignore | any          # If not set to ignore, make the path invalid if no jack controls and no elements with
  125. ;                                      # the required-any are present.
  126. ; state.plugged = yes | no | unknown   # Normally a plugged jack would mean the port becomes available, and an unplugged means it's
  127. ; state.unplugged = yes | no | unknown # unavailable, but the port status can be overridden by specifying state.plugged and/or state.unplugged.
  128. ; append-pcm-to-name = no | yes        # Add ",pcm=N" to the jack name? N is the hw PCM device index. HDMI jacks have
  129. ;                                      # the PCM device index in their name, but different drivers use different
  130. ;                                      # numbering schemes, so we can't hardcode the full jack name in our configuration
  131. ;                                      # files.

  132. [Element PCM]
  133. switch = mute
  134. volume = merge
  135. override-map.1 = all
  136. override-map.2 = all-left,all-right

  137. [Element External Amplifier]
  138. switch = select

  139. [Option External Amplifier:on]
  140. name = output-amplifier-on
  141. priority = 10

  142. [Option External Amplifier:off]
  143. name = output-amplifier-off
  144. priority = 0

  145. [Element Bass Boost]
  146. switch = select

  147. [Option Bass Boost:on]
  148. name = output-bass-boost-on
  149. priority = 0

  150. [Option Bass Boost:off]
  151. name = output-bass-boost-off
  152. priority = 10

  153. [Element IEC958]
  154. switch = off

  155. [Element IEC958 Optical Raw]
  156. switch = off

  157. ;;; 'Analog Output'

  158. [Element Analog Output]
  159. enumeration = select

  160. [Option Analog Output:Speakers]
  161. name = output-speaker
  162. priority = 10

  163. [Option Analog Output:Headphones]
  164. name = output-headphones
  165. priority = 9

  166. [Option Analog Output:FP Headphones]
  167. name = output-headphones
  168. priority = 8

  169. ;;; 'Output Select'

  170. [Element Output Select]
  171. enumeration = select

  172. [Option Output Select:Speakers]
  173. name = output-speaker
  174. priority = 10

  175. [Option Output Select:Headphone]
  176. name = output-headphones
  177. priority = 9
复制代码


确认取消关注该用户?
再想想
确认
  • 0人已赞
  • 0人收藏
3条回复
您需要登录后才可以回帖 登录 | 立即注册
目前联想PC所有产品系列里,除ThinkPad、ThinkCentre外,都不具有完备的非Windows系统环境下的驱动支持,包括Linux也在其中。
  • 小新的粉丝

来自火狐浏览器 | 发表于 2024-5-4 12:07:27
回复 点评

使用道具 举报

傲雪吟霜白如冰 发表于 2024-5-4 12:07
目前联想PC所有产品系列里,除ThinkPad、ThinkCentre外,都不具有完备的非Windows系统环境下的驱动支持,包 ...

搜索的结果看,其它品牌也有类似的情况——四个内置扬声器只有两个工作。目前,Linux 对声卡芯片的识别都有问题,ThinkBook 16p 用的是 Realtek® ALC3306-CG,而 ALSA 识别的是 ALC 287 …… 应该能自己动手解决,但没有自己手措驱动的实力……
  • 小新的粉丝

来自Microsoft Edge浏览器 | 发表于 2024-5-7 09:45:22
回复 点评

使用道具 举报

我也遇到了问题,我是Archlinux,内核版本是6.9。我遇到的问题是两个低频的speaker似乎是正常的,但是声音超级小,几乎听不到。两个高频不工作。我是用的是pipewrie

// 内核有下面报错:
sudo dmesg | grep -i error      
[    0.007379] [Firmware Bug]: TSC ADJUST differs within socket(s), fixing all errors
[    1.424488] RAS: Correctable Errors collector initialized.
[    6.193088] cs35l41-hda i2c-CSC3551:00-cs35l41-hda.0: error -EINVAL: Platform not supported
[    6.193097] cs35l41-hda i2c-CSC3551:00-cs35l41-hda.0: probe with driver cs35l41-hda failed with error -22
[    6.193659] cs35l41-hda i2c-CSC3551:00-cs35l41-hda.1: error -EINVAL: Platform not supported
[    6.193667] cs35l41-hda i2c-CSC3551:00-cs35l41-hda.1: probe with driver cs35l41-hda failed with error -22

一番搜索之后,打了patch。报错消失,但是问题仍旧没有解决。问下楼主是否已经解决了该问题?

  • 小新的粉丝

来自火狐浏览器 | 发表于 2024-5-26 13:48:40
回复 点评

使用道具 举报