This commit is contained in:
kyodev 2017-12-28 17:03:20 +01:00
parent 5ac9f5279f
commit 00ca89de64
11 changed files with 1 additions and 2505 deletions

View File

@ -1,279 +0,0 @@
# attention: remplacer index par les encadrés "", ex:
# DSCPL ⟷ "ds_cpl" CPL Qual. Debug Store par DS_CPL ⟷ _CPL Qual. Debug Store
# https://github.com/torvalds/linux/blob/master/arch/x86/include/asm/cpufeatures.h
# 11/2017
## Intel-defined CPU features, CPUID level 0x00000001 (edx), word 0
FPU ⟷ Onboard FPU
VME ⟷ Virtual Mode Extensions
DE ⟷ Debugging Extensions
PSE ⟷ Page Size Extensions
TSC ⟷ Time Stamp Counter
MSR ⟷ Model-Specific Registers
PAE ⟷ Physical Address Extensions
MCE ⟷ Machine Check Exception
CX8 ⟷ CMPXCHG8 instruction
APIC ⟷ Onboard APIC
SEP ⟷ SYSENTER/SYSEXIT
MTRR ⟷ Memory Type Range Registers
PGE ⟷ Page Global Enable
MCA ⟷ Machine Check Architecture
CMOV ⟷ CMOV instructions (plus FCMOVcc, FCOMI with FPU)
PAT ⟷ Page Attribute Table
PSE36 ⟷ 36-bit PSEs
PN ⟷ Processor serial number
CLFLUSH ⟷ CLFLUSH instruction
DTS ⟷ Debug Store
ACPI ⟷ ACPI via MSR
MMX ⟷ Multimedia Extensions
FXSR ⟷ FXSAVE/FXRSTOR, CR4.OSFXSR
SSE ⟷ sse
SSE2 ⟷ sse2
SS ⟷ CPU self snoop
HT ⟷ Hyper-Threading
TM ⟷ Automatic clock control
IA64 ⟷ IA-64 processor
PBE ⟷ Pending Break Enable
## AMD-defined CPU features, CPUID level 0x80000001, word 1 Don't duplicate feature flags which are redundant with Intel!
SYSCALL ⟷ SYSCALL/SYSRET
MP ⟷ MP Capable.
NX ⟷ Execute Disable
MMXEXT ⟷ AMD MMX extensions
FXSR_OPT ⟷ FXSAVE/FXRSTOR optimizations
PDPE1GB ⟷ GB pages
RDTSCP ⟷ RDTSCP
LM ⟷ Long Mode (x86-64)
3DNOWEXT ⟷ AMD 3DNow! extensions
3DNOW ⟷ 3DNow!
## Transmeta-defined CPU features, CPUID level 0x80860001, word 2
RECOVERY ⟷ CPU in recovery mode
LONGRUN ⟷ Longrun power control
LRTI ⟷ LongRun table interface
## Other features, Linux-defined mapping, word 3 This range is used for feature bits which conflict or are synthesized
CXMMX ⟷ Cyrix MMX extensions
K6_MTRR ⟷ AMD K6 nonstandard MTRRs
CYRIX_ARR ⟷ Cyrix ARRs (= MTRRs)
CENTAUR_MCR ⟷ Centaur MCRs (= MTRRs)
## cpu types for specific tunings:
K8 ⟷ Opteron, Athlon64
K7 ⟷ Athlon
P3 ⟷ P3
P4 ⟷ P4
CONSTANT_TSC ⟷ TSC ticks at a constant rate
UP ⟷ smp kernel running on up
ART ⟷ Platform has always running timer (ART)
ARCH_PERFMON ⟷ Intel Architectural PerfMon
PEBS ⟷ Precise-Event Based Sampling
BTS ⟷ Branch Trace Store
SYSCALL32 ⟷ syscall in ia32 userspace
SYSENTER32 ⟷ sysenter in ia32 userspace
REP_GOOD ⟷ rep microcode works well
MFENCE_RDTSC ⟷ Mfence synchronizes RDTSC
LFENCE_RDTSC ⟷ Lfence synchronizes RDTSC
ACC_POWERAMD ⟷ Accumulated Power Mechanism
NOPL ⟷ instructions
ALWAYS ⟷ Always-present feature
XTOPOLOGY ⟷ cpu topology enum extensions
TSC_RELIABLE ⟷ TSC is known to be reliable
NONSTOP_TSC ⟷ TSC does not stop in C states
CPUID ⟷ CPU has CPUID instruction itself
EXTD_APICID ⟷ has extended APICID (8 bits)
AMD_DCM ⟷ multi-node processor
APERFMPERF ⟷ APERFMPERF
NONSTOP_TSC_S3 ⟷ TSC doesn't stop in S3 state
TSC_KNOWN_FREQ ⟷ TSC has known frequency
## Intel-defined CPU features, CPUID level 0x00000001 (ecx), word 4
PNI ⟷ SSE-3
PCLMULQDQ ⟷ PCLMULQDQ instruction
DTES64 ⟷ 64-bit Debug Store
MONITOR ⟷ Monitor/Mwait support
DS_CPL ⟷ CPL Qual. Debug Store
VMX ⟷ Hardware virtualization
SMX ⟷ Safer mode
EST ⟷ Enhanced SpeedStep
TM2 ⟷ Thermal Monitor 2
SSSE3 ⟷ Supplemental SSE-3
CID ⟷ Context ID
SDBG ⟷ Silicon Debug
FMA ⟷ Fused multiply-add
CX16 ⟷ CMPXCHG16B
XTPR ⟷ Send Task Priority Messages
PDCM ⟷ Performance Capabilities
PCID ⟷ Process Context Identifiers
DCA ⟷ Direct Cache Access
SSE4_1 ⟷ SSE-4.1
SSE4_2 ⟷ SSE-4.2
X2APIC ⟷ x2APIC
MOVBE ⟷ MOVBE instruction
POPCNT ⟷ POPCNT instruction
TSC_DEADLINE_TIMER ⟷ Tsc deadline timer
AES ⟷ AES instructions
XSAVE ⟷ XSAVE/XRSTOR/XSETBV/XGETBV
OSXSAVE ⟷ XSAVE enabled in the OS
AVX ⟷ Advanced Vector Extensions
F16C ⟷ 16-bit fp conversions
RDRAND ⟷ The RDRAND instruction
HYPERVISOR ⟷ Running on a hypervisor
## VIA/Cyrix/Centaur-defined CPU features, CPUID level 0xC0000001, word 5
RNG ⟷ RNG present (xstore)
RNG_EN ⟷ RNG enabled
ACE ⟷ on-CPU crypto (xcrypt)
ACE_EN ⟷ on-CPU crypto enabled
ACE2 ⟷ Advanced Cryptography Engine v2
ACE2_EN ⟷ ACE v2 enabled
PHE ⟷ PadLock Hash Engine
PHE_EN ⟷ PHE enabled
PMM ⟷ PadLock Montgomery Multiplier
PMM_EN ⟷ PMM enabled
## More extended AMD flags: CPUID level 0x80000001, ecx, word 6
LAHF_LM ⟷ LAHF/SAHF in long mode
CMP_LEGACY ⟷ If yes HyperThreading not valid
SVM ⟷ Secure virtual machine
EXTAPIC ⟷ Extended APIC space
CR8_LEGACY ⟷ CR8 in 32-bit mode
ABM ⟷ Advanced bit manipulation
SSE4A ⟷ SSE-4A
MISALIGNSSE ⟷ Misaligned SSE mode
3DNOWPREFETCH ⟷ 3DNow prefetch instructions
OSVWOS ⟷ Visible Workaround
IBS ⟷ Instruction Based Sampling
XOP ⟷ extended AVX instructions
SKINIT ⟷ SKINIT/STGI instructions
WDT ⟷ Watchdog timer
LWP ⟷ Light Weight Profiling
FMA44 ⟷ operands MAC instructions
TCE ⟷ translation cache extension
NODEID_MSR ⟷ NodeId MSR
TBM ⟷ trailing bit manipulations
TOPOEXT ⟷ topology extensions CPUID leafs
PERFCTR_CORE ⟷ core performance counter extensions
PERFCTR_NB ⟷ NB performance counter extensions
BPEXT ⟷ data breakpoint extension
PTSC ⟷ performance time-stamp counter
PERFCTR_LLC ⟷ Last Level Cache performance counter extensions
MWAITX ⟷ MWAIT extension (MONITORX/MWAITX)
## Auxiliary flags: Linux defined - For features scattered in various CPUID levels like 0x6, 0xA etc, word 7.
RING3MWAIT ⟷ Ring 3 MONITOR/MWAIT
CPUID_FAULT ⟷ Intel CPUID faulting
CPB ⟷ AMD Core Performance Boost
EPB ⟷ IA32_ENERGY_PERF_BIAS support
CAT_L3 ⟷ Cache Allocation Technology L3
CAT_L2 ⟷ Cache Allocation Technology L2
CDP_L3 ⟷ Code and Data Prioritization L3
HW_PSTATE ⟷ AMD HW-PState
PROC_FEEDBACK ⟷ AMD ProcFeedbackInterface
SME ⟷ AMD Secure Memory Encryption
INTEL_PPIN ⟷ Intel Processor Inventory Number
INTEL_PT ⟷ Intel Processor Trace
AVX512_4VNNIW ⟷ AVX-512 Neural Network Instructions
AVX512_4FMAPS ⟷ AVX-512 Multiply Accumulation Single precision
MBA ⟷ Memory Bandwidth Allocation
## Virtualization flags: Linux defined, word 8
TPR_SHADOW ⟷ Intel TPR Shadow
VNMI ⟷ Intel Virtual NMI
FLEXPRIORITY ⟷ Intel FlexPriority
EPT ⟷ Intel Extended Page Table
VPID ⟷ Intel Virtual Processor ID
VMMCALL ⟷ Prefer vmmcall to vmcall
XENPV ⟷ Xen paravirtual guest
## Intel-defined CPU features, CPUID level 0x00000007:0 (ebx), word 9
FSGSBASE ⟷ {RD/WR}{FS/GS}BASE instructions
TSC_ADJUST ⟷ TSC adjustment MSR 0x3b
BMI1 ⟷ 1st group bit manipulation extensions
HLE ⟷ Hardware Lock Elision
AVX2 ⟷ AVX2 instructions
SMEP ⟷ Supervisor Mode Execution Protection
BMI2 ⟷ 2nd group bit manipulation extensions
ERMS ⟷ Enhanced REP MOVSB/STOSB
INVPCID ⟷ Invalidate Processor Context ID
RTM ⟷ Restricted Transactional Memory
CQM ⟷ Cache QoS Monitoring
MPX ⟷ Memory Protection Extension
RDT_A ⟷ Resource Director Technology Allocation
AVX512F ⟷ AVX-512 Foundation
AVX512DQ ⟷ AVX-512 DQ (Double/Quad granular) Instructions
RDSEED ⟷ The RDSEED instruction
ADX ⟷ The ADCX and ADOX instructions
SMAP ⟷ Supervisor Mode Access Prevention
AVX512IFMA ⟷ AVX-512 Integer Fused Multiply-Add instructions
CLFLUSHOPT ⟷ CLFLUSHOPT instruction
CLWB ⟷ CLWB instruction
AVX512PF ⟷ AVX-512 Prefetch
AVX512ER ⟷ AVX-512 Exponential and Reciprocal
AVX512CD ⟷ AVX-512 Conflict Detection
SHA_NI ⟷ SHA1/SHA256 Instruction Extensions
AVX512BW ⟷ AVX-512 BW (Byte/Word granular) Instructions
AVX512VL ⟷ AVX-512 VL (128/256 Vector Length) Extensions
#Extended state features, CPUID level 0x0000000d:1 (eax), word 10
XSAVEOPT ⟷ XSAVEOPT
XSAVEC ⟷ XSAVEC
XGETBV1 ⟷ XGETBV with ECX = 1
XSAVES ⟷ XSAVES/XRSTORS
## Intel-defined CPU QoS Sub-leaf, CPUID level 0x0000000F:0 (edx), word 11
CQM_LLC ⟷ LLC QoS if 1
## Intel-defined CPU QoS Sub-leaf, CPUID level 0x0000000F:1 (edx), word 12
CQM_OCCUP_LLC ⟷ LLC occupancy monitoring if 1
CQM_MBM_TOTAL ⟷ LLC Total MBM monitoring
CQM_MBM_LOCAL ⟷ LLC Local MBM monitoring
## AMD-defined CPU features, CPUID level 0x80000008 (ebx), word 13
CLZERO ⟷ CLZERO instruction
IRPERF ⟷ Instructions Retired Count
## Thermal and Power Management Leaf, CPUID level 0x00000006 (eax), word 14
DTHERM ⟷ Digital Thermal Sensor
IDA ⟷ Intel Dynamic Acceleration
ARAT ⟷ Always Running APIC Timer
PLN ⟷ Intel Power Limit Notification
PTS ⟷ Intel Package Thermal Status
HWP ⟷ Intel Hardware P-states
HWP_NOTIFY ⟷ HWP Notification
HWP_ACT_WINDOW ⟷ HWP Activity Window
HWP_EPP ⟷ HWP Energy Perf. Preference
HWP_PKG_REQ ⟷ HWP Package Level Request
## AMD SVM Feature Identification, CPUID level 0x8000000a (edx), word 15
NPT ⟷ Nested Page Table support
LBRV ⟷ LBR Virtualization support
SVM_LOCK ⟷ SVM locking MSR
NRIP_SAVE ⟷ SVM next_rip save
TSC_SCALE ⟷ TSC scaling support
VMCB_CLEAN ⟷ VMCB clean bits support
FLUSHBYASID ⟷ flush-by-ASID support
DECODEASSISTS ⟷ Decode Assists support
PAUSEFILTER ⟷ filtered pause intercept
PFTHRESHOLD ⟷ pause filter threshold
AVIC ⟷ Virtual Interrupt Controller
V_VMSAVE_VMLOAD ⟷ Virtual VMSAVE VMLOAD
VGIF ⟷ Virtual GIF
## Intel-defined CPU features, CPUID level 0x00000007:0 (ecx), word 16
AVX512VBMI ⟷ AVX512 Vector Bit Manipulation instructions
PKU ⟷ Protection Keys for Userspace
OSPKEOS ⟷ Protection Keys Enable
AVX512_VPOPCNTDQ ⟷ POPCNT for vectors of DW/QW
LA57 ⟷ 5-level page tables
RDPID ⟷ RDPIDinstruction
## AMD-defined CPU features, CPUID level 0x80000007 (ebx), word 17
OVERFLOW_RECOV ⟷ MCA overflow recovery support
SUCCOR ⟷ Uncorrectable error containment and recovery
SMCA ⟷ Scalable MCA

View File

@ -1,64 +0,0 @@
09/2016
https://www.intel.com/content/dam/www/public/us/en/documents/manuals/64-ia-32-architectures-software-developer-vol-2a-manual.pdf
table 3.10 registre ECX
table 3.10 registre ECX
ACPI Thermal Monitor and Software Controlled Clock Facilities.
AESNI support the AESNI instruction extensions.
APIC APIC On-Chip.
AVX support the AVX instruction extensions.
CLFSH CLFLUSH Instruction.
CMOV Conditional Move Instructions.
CMPXCHG16B CMPXCHG16B feature.
CNXT-ID L1 Context ID.
CX8 CMPXCHG8B Instruction.
DCA supports the ability to prefetch data from a memory mapped device.
DE Debugging Extensions.
DS-CPL CPL Debug Store.
DS Debug Store.
DTES64 64-bit DS Area. The processor supports DS area using 64-bit layout.
EIST Enhanced Intel SpeedStep® technology.
F16C support 16-bit floating-point conversion instructions.
FMA support FMA extensions using YMM state.
FPU Floating Point Unit On-Chip. The processor contains an x87 FPU.
FXSR FXSAVE and FXRSTOR Instructions.
HTT Max APIC IDs reserved field is Valid.
MCA Machine Check Architecture.
MCE Machine Check Exception.
MMX Intel MMX Technology.
MONITOR MONITOR/MWAIT.
MOVBE support MOVBE instruction.
MSR Model Specific Registers RDMSR and WRMSR Instructions.
MTRR Memory Type Range Registers.
OSXSAVE the OS has set CR4.OSXSAVE[bit 18] to enable XSETBV/XGETBV instructions to access XCR0 and to support processor extended state management using XSAVE/XRSTOR.
PAE Physical Address Extension.
PAT Page Attribute Table.
PBE Pending Break Enable.
PCID Process-context identifiers.
PCLMULQDQ PCLMULQDQ instruction.
PDCM Perfmon and Debug Capability
PGE Page Global Bit.
POPCNT support the POPCNT instruction.
PSE-36 36-Bit Page Size Extension.
PSE Page Size Extension.
PSN Processor Serial Number.
RDRAND support RDRAND instruction.
SDBG support IA32_DEBUG_INTERFACE MSR for silicon debug.
SEP SYSENTER and SYSEXIT Instructions.
SMX Safer Mode Extensions.
SSE2 SSE2.
SSE3 Streaming SIMD Extensions 3 (SSE3).
SSE4.1 support SSE4.1.
SSE4.2 support SSE4.2.
SSE SSE.
SSSE3 Supplemental Streaming SIMD Extensions 3 (SSSE3).
SS Self Snoop.
TM2 Thermal Monitor 2.
TM Thermal Monitor.
TSC-Deadline the processors local APIC timer supports one-shot operation using a TSC deadline value.
TSC Time Stamp Counter.
VME Virtual 8086 Mode Enhancements.
VMX Virtual Machine Extensions
x2APIC x2APIC feature.
XSAVE support the XSAVE/XRSTOR processor extended states feature, the XSETBV/XGETBV instructions, and XCR0.
xTPR Update Control xTPR Update Control. The processor supports changing IA32_MISC_ENABLE[bit 23].

View File

@ -1,112 +0,0 @@
librairie:
https://github.com/Maratyszcza/cpuinfo/blob/master/src/x86/uarch.c
intel
family 04) "Intel 80486, 1000 à 600nm";; # arch_x86, 1989-2007
family 05)
09) "Intel série Quark SoC X1000, 32nm";; # arch_x86, 2013 (Lakemont)
*) "Intel P5, 800 à 250nm";; # arch_x86, 1993-1999, 5V, 3.3V, pentium, pentium MMX, pentium-S
family 0F
00 | 01 | 02 NetBurst P68 (P4), 180, 130nm # arch_x86 2000, pentium4, pentium-D
03 | 04 Prescott NetBurst P68, 90nm # arch_x86?
06 Presler NetBurst P68 # arch_x86?
family 0B)
01 Knights Corner (Xeon Phi) # arch_x86?
family 06
01 "Intel P6 (i686) (Pentium Pro)";; # arch_x86, 1995
03 | 04 | 05 P6 Prescott (Pentium II) 90nm # arch_x86
06 P6 Prescott (Pentium II) 65nm # arch_x86
07 | 08 | 0A | 0B P6 (Pentium III) # arch_x86
09 | 0D | 15 P6 Dothan (Pentium M) 90nm # arch_x86 2003
0E Core, 65nm # arch_x86, 2006
0F | 16 Merom (Core2) 65nm
17 | 1D Penryn (Core2) 45nm
1A | 1E | 1F | 2E Nehalem 45nm
25 | 2C | 2F Westmere 32nm
2A | 2D Sandy Bridge 32nm
3A | 3E Ivy Bridge 22nm
3C | 3F | 45 | 46 Haswell 22nm
3D | 47 | 4F | 56 Broadwell 14nm
4E) "Intel Skylake 14nm (Y/U-Processor Lines)";; # 2015, 6th Generation intel doc 332689-011 06/2017 https://www.intel.com/content/dam/www/public/us/en/documents/specification-updates/desktop-6th-gen-core-family-spec-update.pdf xeon doc 333133-017U 09/2017 https://www.intel.com/content/dam/www/public/us/en/documents/specification-updates/xeon-e3-1200v5-spec-update.pdf
5E) "Intel Skylake 14nm (H/S-Processor Lines)";; # 2015, 6th Generation intel doc 332689-011 06/2017 https://www.intel.com/content/dam/www/public/us/en/documents/specification-updates/desktop-6th-gen-core-family-spec-update.pdf xeon doc 333133-017U 09/2017 https://www.intel.com/content/dam/www/public/us/en/documents/specification-updates/xeon-e3-1200v5-spec-update.pdf
55) "Intel Skylake 14nm";; # existe? vu sur cpuinfo
8E) "Intel Kaby Lake 14nm (Y/U/U-Quad Core-Processor Lines)";; # 2016, 7/8th Generation intel doc 334663-009 08/2017 https://www.intel.com/content/dam/www/public/us/en/documents/specification-updates/7th-gen-core-family-spec-update.pdf
9E) "Intel Kaby Lake 14nm (S/H/X-Processor Lines)";; # 2016, 7/8th Generation intel doc 334663-009 08/2017 https://www.intel.com/content/dam/www/public/us/en/documents/specification-updates/7th-gen-core-family-spec-update.pdf
xx "Intel Kaby Lake R 14nm (U-Quad Core-Processor Lines)";; # 2017,8th Generation U-Quad Core
xx "Intel Coffee Lake 14nm" # 10/2017
xx "Intel Cannonlake (skymont) 10nm" # 2018
xx icelake 10nm # 2018 ou 2019
xx tigerlake 10nm # 2019 gen12
xx sapphire rapids 7nm # 2020 gen12
# Atom
1C | 26 Bonnell 45nm
27 |35 |36 Saltwell 32nm
37 | 4A | 4D | 5A Silvermont 22nm
4C | 5D | 5F Airmont 14nm # 4th Generation Atom processor
?? 5F "Intel Atom (Goldmont), 14nm") # 2016
xx Goldmont+ 14nm
# Knights-series cores
57) "Intel knights_landing ";; # 335592-064 October 2017
85) "Intel Knights Mill (Xeon Phi), 14nm";; # 335592-064 October 2017
https://software.intel.com/sites/default/files/managed/22/0d/335592-sdm-vol-4.pdf
335592-064 October 2017 Software Developers Manual vol 4 table 2.1
https://software.intel.com/en-us/articles/intel-sdm
amd
family 05, model 0A ??? Geode # compatible x86 proc, Cyrix->NS->AMD référencé sur cpuinfo
family 04) # arch_x86
03 | 07 | 08 | 09 | 0A) "AMD Am486";; # années 90
0E | 0F) "AMD Am5x86, 350nm";; # 1995-1999
*) fg_uarch="AMD ?86 $defaut_model";;
family 05) # arch_x86
00 | 01 | 02 | 03) "AMD K5 SSA/5 ou 5k86, 350nm";; # 1996
06 | 07) "AMD K6 350, 250nm";; # 1997-1998
08) "AMD K6-2, 250nm";; # 1998-1999
09 | 0D) "AMD K6-3 Sharptooth, 250, 180nm";; # 1999-2000
*) fg_uarch="AMD K5/K6 $defaut_model";;
family 06) "AMD K7 Athlon, 250, 180, 130nm, (Classic/T-Bird/Palomino/T-Bred/Barton and Thorton";; # arch_x86 1999-2005
family 0F) # 2003-?
0? | 1?) "AMD K8 Hammer (SledgeHammer), 130-65nm";;
2?) "AMD K8 Hammer (SledgeHammer) (rev.E), 130-65nm";;
4? | 5? | 6? | 7? | C?) "AMD K8 Hammer (SledgeHammer) (rev.F+), 130-65nm";;
*) fg_uarch="AMD K8 Hammer (SledgeHammer) $defaut_model";;
family 10) "AMD Barcelona K10, 65, 45, 32nm";; # 2007-2012 Agena, Toliman, Thuban, Deneb, Heka, Callisto, Regor, Propus APU: Llano
family 11) "AMD Turion X2 Ultra/Puma mobile, dérivée K8/K10, 65, 45nm";; # mixture of K8/K10 designs with lower power consumption
family 12) "AMD Fusion, dérivée K10, 32nm";; # Llano
family 15)
00 | 01) "AMD Bulldozer 1ère génération, 32nm";; # 2011- success to K10,
02 | 1?) "AMD Piledriver (Enhanced Bulldozer) (Bulldozer 2e génération), 32nm";; # 2012- APU: Trinity, Richland
3?) "AMD Steamroller (Bulldozer 3e génération), 28nm";; # 2014- APU: Kaveri
6? | 7?) "AMD Excavator (Bulldozer 4e génération), 28nm";; # 2015- gén. finale APU: Carrizo, Bristol Ridge, Stoney Ridge
*) "AMD Bulldozer, $defaut_model";;
family 17)
*) "AMD Zen, 14nm";; # 2017- APU: Raven Ridge
xxx Zen2 successeur Zen, apu: Pinnacle Ridge
# basse consommation
family 14) "AMD Bobcat, 40nm";; # 2011- APU: Desna, Ontario, Zacate
family 16)
0?) "AMD Jaguar 28nm";; # 2013- APU: Kabini, Temash
3?) "AMD Puma ou Puma+ (family 16h 2e génération), 28nm";; # 2014- APU: Beema, Mullins, Puma+ APU: Carrizo-L
*) fg_uarch="AMD family 16h (Jaguar/Puma) $defaut_model";;
http://developer.amd.com/resources/developer-guides-manuals/

View File

@ -1,332 +0,0 @@
/* SPDX-License-Identifier: GPL-2.0 */
#ifndef _ASM_X86_CPUFEATURES_H
#define _ASM_X86_CPUFEATURES_H
#ifndef _ASM_X86_REQUIRED_FEATURES_H
#include <asm/required-features.h>
#endif
#ifndef _ASM_X86_DISABLED_FEATURES_H
#include <asm/disabled-features.h>
#endif
/*
* Defines x86 CPU feature bits
*/
#define NCAPINTS 18 /* N 32-bit words worth of info */
#define NBUGINTS 1 /* N 32-bit bug flags */
/*
* Note: If the comment begins with a quoted string, that string is used
* in /proc/cpuinfo instead of the macro name. If the string is "",
* this feature bit is not displayed in /proc/cpuinfo at all.
*/
/* Intel-defined CPU features, CPUID level 0x00000001 (edx), word 0 */
#define X86_FEATURE_FPU ( 0*32+ 0) /* Onboard FPU */
#define X86_FEATURE_VME ( 0*32+ 1) /* Virtual Mode Extensions */
#define X86_FEATURE_DE ( 0*32+ 2) /* Debugging Extensions */
#define X86_FEATURE_PSE ( 0*32+ 3) /* Page Size Extensions */
#define X86_FEATURE_TSC ( 0*32+ 4) /* Time Stamp Counter */
#define X86_FEATURE_MSR ( 0*32+ 5) /* Model-Specific Registers */
#define X86_FEATURE_PAE ( 0*32+ 6) /* Physical Address Extensions */
#define X86_FEATURE_MCE ( 0*32+ 7) /* Machine Check Exception */
#define X86_FEATURE_CX8 ( 0*32+ 8) /* CMPXCHG8 instruction */
#define X86_FEATURE_APIC ( 0*32+ 9) /* Onboard APIC */
#define X86_FEATURE_SEP ( 0*32+11) /* SYSENTER/SYSEXIT */
#define X86_FEATURE_MTRR ( 0*32+12) /* Memory Type Range Registers */
#define X86_FEATURE_PGE ( 0*32+13) /* Page Global Enable */
#define X86_FEATURE_MCA ( 0*32+14) /* Machine Check Architecture */
#define X86_FEATURE_CMOV ( 0*32+15) /* CMOV instructions */
/* (plus FCMOVcc, FCOMI with FPU) */
#define X86_FEATURE_PAT ( 0*32+16) /* Page Attribute Table */
#define X86_FEATURE_PSE36 ( 0*32+17) /* 36-bit PSEs */
#define X86_FEATURE_PN ( 0*32+18) /* Processor serial number */
#define X86_FEATURE_CLFLUSH ( 0*32+19) /* CLFLUSH instruction */
#define X86_FEATURE_DS ( 0*32+21) /* "dts" Debug Store */
#define X86_FEATURE_ACPI ( 0*32+22) /* ACPI via MSR */
#define X86_FEATURE_MMX ( 0*32+23) /* Multimedia Extensions */
#define X86_FEATURE_FXSR ( 0*32+24) /* FXSAVE/FXRSTOR, CR4.OSFXSR */
#define X86_FEATURE_XMM ( 0*32+25) /* "sse" */
#define X86_FEATURE_XMM2 ( 0*32+26) /* "sse2" */
#define X86_FEATURE_SELFSNOOP ( 0*32+27) /* "ss" CPU self snoop */
#define X86_FEATURE_HT ( 0*32+28) /* Hyper-Threading */
#define X86_FEATURE_ACC ( 0*32+29) /* "tm" Automatic clock control */
#define X86_FEATURE_IA64 ( 0*32+30) /* IA-64 processor */
#define X86_FEATURE_PBE ( 0*32+31) /* Pending Break Enable */
/* AMD-defined CPU features, CPUID level 0x80000001, word 1 */
/* Don't duplicate feature flags which are redundant with Intel! */
#define X86_FEATURE_SYSCALL ( 1*32+11) /* SYSCALL/SYSRET */
#define X86_FEATURE_MP ( 1*32+19) /* MP Capable. */
#define X86_FEATURE_NX ( 1*32+20) /* Execute Disable */
#define X86_FEATURE_MMXEXT ( 1*32+22) /* AMD MMX extensions */
#define X86_FEATURE_FXSR_OPT ( 1*32+25) /* FXSAVE/FXRSTOR optimizations */
#define X86_FEATURE_GBPAGES ( 1*32+26) /* "pdpe1gb" GB pages */
#define X86_FEATURE_RDTSCP ( 1*32+27) /* RDTSCP */
#define X86_FEATURE_LM ( 1*32+29) /* Long Mode (x86-64) */
#define X86_FEATURE_3DNOWEXT ( 1*32+30) /* AMD 3DNow! extensions */
#define X86_FEATURE_3DNOW ( 1*32+31) /* 3DNow! */
/* Transmeta-defined CPU features, CPUID level 0x80860001, word 2 */
#define X86_FEATURE_RECOVERY ( 2*32+ 0) /* CPU in recovery mode */
#define X86_FEATURE_LONGRUN ( 2*32+ 1) /* Longrun power control */
#define X86_FEATURE_LRTI ( 2*32+ 3) /* LongRun table interface */
/* Other features, Linux-defined mapping, word 3 */
/* This range is used for feature bits which conflict or are synthesized */
#define X86_FEATURE_CXMMX ( 3*32+ 0) /* Cyrix MMX extensions */
#define X86_FEATURE_K6_MTRR ( 3*32+ 1) /* AMD K6 nonstandard MTRRs */
#define X86_FEATURE_CYRIX_ARR ( 3*32+ 2) /* Cyrix ARRs (= MTRRs) */
#define X86_FEATURE_CENTAUR_MCR ( 3*32+ 3) /* Centaur MCRs (= MTRRs) */
/* cpu types for specific tunings: */
#define X86_FEATURE_K8 ( 3*32+ 4) /* "" Opteron, Athlon64 */
#define X86_FEATURE_K7 ( 3*32+ 5) /* "" Athlon */
#define X86_FEATURE_P3 ( 3*32+ 6) /* "" P3 */
#define X86_FEATURE_P4 ( 3*32+ 7) /* "" P4 */
#define X86_FEATURE_CONSTANT_TSC ( 3*32+ 8) /* TSC ticks at a constant rate */
#define X86_FEATURE_UP ( 3*32+ 9) /* smp kernel running on up */
#define X86_FEATURE_ART ( 3*32+10) /* Platform has always running timer (ART) */
#define X86_FEATURE_ARCH_PERFMON ( 3*32+11) /* Intel Architectural PerfMon */
#define X86_FEATURE_PEBS ( 3*32+12) /* Precise-Event Based Sampling */
#define X86_FEATURE_BTS ( 3*32+13) /* Branch Trace Store */
#define X86_FEATURE_SYSCALL32 ( 3*32+14) /* "" syscall in ia32 userspace */
#define X86_FEATURE_SYSENTER32 ( 3*32+15) /* "" sysenter in ia32 userspace */
#define X86_FEATURE_REP_GOOD ( 3*32+16) /* rep microcode works well */
#define X86_FEATURE_MFENCE_RDTSC ( 3*32+17) /* "" Mfence synchronizes RDTSC */
#define X86_FEATURE_LFENCE_RDTSC ( 3*32+18) /* "" Lfence synchronizes RDTSC */
#define X86_FEATURE_ACC_POWER ( 3*32+19) /* AMD Accumulated Power Mechanism */
#define X86_FEATURE_NOPL ( 3*32+20) /* The NOPL (0F 1F) instructions */
#define X86_FEATURE_ALWAYS ( 3*32+21) /* "" Always-present feature */
#define X86_FEATURE_XTOPOLOGY ( 3*32+22) /* cpu topology enum extensions */
#define X86_FEATURE_TSC_RELIABLE ( 3*32+23) /* TSC is known to be reliable */
#define X86_FEATURE_NONSTOP_TSC ( 3*32+24) /* TSC does not stop in C states */
#define X86_FEATURE_CPUID ( 3*32+25) /* CPU has CPUID instruction itself */
#define X86_FEATURE_EXTD_APICID ( 3*32+26) /* has extended APICID (8 bits) */
#define X86_FEATURE_AMD_DCM ( 3*32+27) /* multi-node processor */
#define X86_FEATURE_APERFMPERF ( 3*32+28) /* APERFMPERF */
#define X86_FEATURE_NONSTOP_TSC_S3 ( 3*32+30) /* TSC doesn't stop in S3 state */
#define X86_FEATURE_TSC_KNOWN_FREQ ( 3*32+31) /* TSC has known frequency */
/* Intel-defined CPU features, CPUID level 0x00000001 (ecx), word 4 */
#define X86_FEATURE_XMM3 ( 4*32+ 0) /* "pni" SSE-3 */
#define X86_FEATURE_PCLMULQDQ ( 4*32+ 1) /* PCLMULQDQ instruction */
#define X86_FEATURE_DTES64 ( 4*32+ 2) /* 64-bit Debug Store */
#define X86_FEATURE_MWAIT ( 4*32+ 3) /* "monitor" Monitor/Mwait support */
#define X86_FEATURE_DSCPL ( 4*32+ 4) /* "ds_cpl" CPL Qual. Debug Store */
#define X86_FEATURE_VMX ( 4*32+ 5) /* Hardware virtualization */
#define X86_FEATURE_SMX ( 4*32+ 6) /* Safer mode */
#define X86_FEATURE_EST ( 4*32+ 7) /* Enhanced SpeedStep */
#define X86_FEATURE_TM2 ( 4*32+ 8) /* Thermal Monitor 2 */
#define X86_FEATURE_SSSE3 ( 4*32+ 9) /* Supplemental SSE-3 */
#define X86_FEATURE_CID ( 4*32+10) /* Context ID */
#define X86_FEATURE_SDBG ( 4*32+11) /* Silicon Debug */
#define X86_FEATURE_FMA ( 4*32+12) /* Fused multiply-add */
#define X86_FEATURE_CX16 ( 4*32+13) /* CMPXCHG16B */
#define X86_FEATURE_XTPR ( 4*32+14) /* Send Task Priority Messages */
#define X86_FEATURE_PDCM ( 4*32+15) /* Performance Capabilities */
#define X86_FEATURE_PCID ( 4*32+17) /* Process Context Identifiers */
#define X86_FEATURE_DCA ( 4*32+18) /* Direct Cache Access */
#define X86_FEATURE_XMM4_1 ( 4*32+19) /* "sse4_1" SSE-4.1 */
#define X86_FEATURE_XMM4_2 ( 4*32+20) /* "sse4_2" SSE-4.2 */
#define X86_FEATURE_X2APIC ( 4*32+21) /* x2APIC */
#define X86_FEATURE_MOVBE ( 4*32+22) /* MOVBE instruction */
#define X86_FEATURE_POPCNT ( 4*32+23) /* POPCNT instruction */
#define X86_FEATURE_TSC_DEADLINE_TIMER ( 4*32+24) /* Tsc deadline timer */
#define X86_FEATURE_AES ( 4*32+25) /* AES instructions */
#define X86_FEATURE_XSAVE ( 4*32+26) /* XSAVE/XRSTOR/XSETBV/XGETBV */
#define X86_FEATURE_OSXSAVE ( 4*32+27) /* "" XSAVE enabled in the OS */
#define X86_FEATURE_AVX ( 4*32+28) /* Advanced Vector Extensions */
#define X86_FEATURE_F16C ( 4*32+29) /* 16-bit fp conversions */
#define X86_FEATURE_RDRAND ( 4*32+30) /* The RDRAND instruction */
#define X86_FEATURE_HYPERVISOR ( 4*32+31) /* Running on a hypervisor */
/* VIA/Cyrix/Centaur-defined CPU features, CPUID level 0xC0000001, word 5 */
#define X86_FEATURE_XSTORE ( 5*32+ 2) /* "rng" RNG present (xstore) */
#define X86_FEATURE_XSTORE_EN ( 5*32+ 3) /* "rng_en" RNG enabled */
#define X86_FEATURE_XCRYPT ( 5*32+ 6) /* "ace" on-CPU crypto (xcrypt) */
#define X86_FEATURE_XCRYPT_EN ( 5*32+ 7) /* "ace_en" on-CPU crypto enabled */
#define X86_FEATURE_ACE2 ( 5*32+ 8) /* Advanced Cryptography Engine v2 */
#define X86_FEATURE_ACE2_EN ( 5*32+ 9) /* ACE v2 enabled */
#define X86_FEATURE_PHE ( 5*32+10) /* PadLock Hash Engine */
#define X86_FEATURE_PHE_EN ( 5*32+11) /* PHE enabled */
#define X86_FEATURE_PMM ( 5*32+12) /* PadLock Montgomery Multiplier */
#define X86_FEATURE_PMM_EN ( 5*32+13) /* PMM enabled */
/* More extended AMD flags: CPUID level 0x80000001, ecx, word 6 */
#define X86_FEATURE_LAHF_LM ( 6*32+ 0) /* LAHF/SAHF in long mode */
#define X86_FEATURE_CMP_LEGACY ( 6*32+ 1) /* If yes HyperThreading not valid */
#define X86_FEATURE_SVM ( 6*32+ 2) /* Secure virtual machine */
#define X86_FEATURE_EXTAPIC ( 6*32+ 3) /* Extended APIC space */
#define X86_FEATURE_CR8_LEGACY ( 6*32+ 4) /* CR8 in 32-bit mode */
#define X86_FEATURE_ABM ( 6*32+ 5) /* Advanced bit manipulation */
#define X86_FEATURE_SSE4A ( 6*32+ 6) /* SSE-4A */
#define X86_FEATURE_MISALIGNSSE ( 6*32+ 7) /* Misaligned SSE mode */
#define X86_FEATURE_3DNOWPREFETCH ( 6*32+ 8) /* 3DNow prefetch instructions */
#define X86_FEATURE_OSVW ( 6*32+ 9) /* OS Visible Workaround */
#define X86_FEATURE_IBS ( 6*32+10) /* Instruction Based Sampling */
#define X86_FEATURE_XOP ( 6*32+11) /* extended AVX instructions */
#define X86_FEATURE_SKINIT ( 6*32+12) /* SKINIT/STGI instructions */
#define X86_FEATURE_WDT ( 6*32+13) /* Watchdog timer */
#define X86_FEATURE_LWP ( 6*32+15) /* Light Weight Profiling */
#define X86_FEATURE_FMA4 ( 6*32+16) /* 4 operands MAC instructions */
#define X86_FEATURE_TCE ( 6*32+17) /* translation cache extension */
#define X86_FEATURE_NODEID_MSR ( 6*32+19) /* NodeId MSR */
#define X86_FEATURE_TBM ( 6*32+21) /* trailing bit manipulations */
#define X86_FEATURE_TOPOEXT ( 6*32+22) /* topology extensions CPUID leafs */
#define X86_FEATURE_PERFCTR_CORE ( 6*32+23) /* core performance counter extensions */
#define X86_FEATURE_PERFCTR_NB ( 6*32+24) /* NB performance counter extensions */
#define X86_FEATURE_BPEXT (6*32+26) /* data breakpoint extension */
#define X86_FEATURE_PTSC ( 6*32+27) /* performance time-stamp counter */
#define X86_FEATURE_PERFCTR_LLC ( 6*32+28) /* Last Level Cache performance counter extensions */
#define X86_FEATURE_MWAITX ( 6*32+29) /* MWAIT extension (MONITORX/MWAITX) */
/*
* Auxiliary flags: Linux defined - For features scattered in various
* CPUID levels like 0x6, 0xA etc, word 7.
*
* Reuse free bits when adding new feature flags!
*/
#define X86_FEATURE_RING3MWAIT ( 7*32+ 0) /* Ring 3 MONITOR/MWAIT */
#define X86_FEATURE_CPUID_FAULT ( 7*32+ 1) /* Intel CPUID faulting */
#define X86_FEATURE_CPB ( 7*32+ 2) /* AMD Core Performance Boost */
#define X86_FEATURE_EPB ( 7*32+ 3) /* IA32_ENERGY_PERF_BIAS support */
#define X86_FEATURE_CAT_L3 ( 7*32+ 4) /* Cache Allocation Technology L3 */
#define X86_FEATURE_CAT_L2 ( 7*32+ 5) /* Cache Allocation Technology L2 */
#define X86_FEATURE_CDP_L3 ( 7*32+ 6) /* Code and Data Prioritization L3 */
#define X86_FEATURE_HW_PSTATE ( 7*32+ 8) /* AMD HW-PState */
#define X86_FEATURE_PROC_FEEDBACK ( 7*32+ 9) /* AMD ProcFeedbackInterface */
#define X86_FEATURE_SME ( 7*32+10) /* AMD Secure Memory Encryption */
#define X86_FEATURE_INTEL_PPIN ( 7*32+14) /* Intel Processor Inventory Number */
#define X86_FEATURE_INTEL_PT ( 7*32+15) /* Intel Processor Trace */
#define X86_FEATURE_AVX512_4VNNIW (7*32+16) /* AVX-512 Neural Network Instructions */
#define X86_FEATURE_AVX512_4FMAPS (7*32+17) /* AVX-512 Multiply Accumulation Single precision */
#define X86_FEATURE_MBA ( 7*32+18) /* Memory Bandwidth Allocation */
/* Virtualization flags: Linux defined, word 8 */
#define X86_FEATURE_TPR_SHADOW ( 8*32+ 0) /* Intel TPR Shadow */
#define X86_FEATURE_VNMI ( 8*32+ 1) /* Intel Virtual NMI */
#define X86_FEATURE_FLEXPRIORITY ( 8*32+ 2) /* Intel FlexPriority */
#define X86_FEATURE_EPT ( 8*32+ 3) /* Intel Extended Page Table */
#define X86_FEATURE_VPID ( 8*32+ 4) /* Intel Virtual Processor ID */
#define X86_FEATURE_VMMCALL ( 8*32+15) /* Prefer vmmcall to vmcall */
#define X86_FEATURE_XENPV ( 8*32+16) /* "" Xen paravirtual guest */
/* Intel-defined CPU features, CPUID level 0x00000007:0 (ebx), word 9 */
#define X86_FEATURE_FSGSBASE ( 9*32+ 0) /* {RD/WR}{FS/GS}BASE instructions*/
#define X86_FEATURE_TSC_ADJUST ( 9*32+ 1) /* TSC adjustment MSR 0x3b */
#define X86_FEATURE_BMI1 ( 9*32+ 3) /* 1st group bit manipulation extensions */
#define X86_FEATURE_HLE ( 9*32+ 4) /* Hardware Lock Elision */
#define X86_FEATURE_AVX2 ( 9*32+ 5) /* AVX2 instructions */
#define X86_FEATURE_SMEP ( 9*32+ 7) /* Supervisor Mode Execution Protection */
#define X86_FEATURE_BMI2 ( 9*32+ 8) /* 2nd group bit manipulation extensions */
#define X86_FEATURE_ERMS ( 9*32+ 9) /* Enhanced REP MOVSB/STOSB */
#define X86_FEATURE_INVPCID ( 9*32+10) /* Invalidate Processor Context ID */
#define X86_FEATURE_RTM ( 9*32+11) /* Restricted Transactional Memory */
#define X86_FEATURE_CQM ( 9*32+12) /* Cache QoS Monitoring */
#define X86_FEATURE_MPX ( 9*32+14) /* Memory Protection Extension */
#define X86_FEATURE_RDT_A ( 9*32+15) /* Resource Director Technology Allocation */
#define X86_FEATURE_AVX512F ( 9*32+16) /* AVX-512 Foundation */
#define X86_FEATURE_AVX512DQ ( 9*32+17) /* AVX-512 DQ (Double/Quad granular) Instructions */
#define X86_FEATURE_RDSEED ( 9*32+18) /* The RDSEED instruction */
#define X86_FEATURE_ADX ( 9*32+19) /* The ADCX and ADOX instructions */
#define X86_FEATURE_SMAP ( 9*32+20) /* Supervisor Mode Access Prevention */
#define X86_FEATURE_AVX512IFMA ( 9*32+21) /* AVX-512 Integer Fused Multiply-Add instructions */
#define X86_FEATURE_CLFLUSHOPT ( 9*32+23) /* CLFLUSHOPT instruction */
#define X86_FEATURE_CLWB ( 9*32+24) /* CLWB instruction */
#define X86_FEATURE_AVX512PF ( 9*32+26) /* AVX-512 Prefetch */
#define X86_FEATURE_AVX512ER ( 9*32+27) /* AVX-512 Exponential and Reciprocal */
#define X86_FEATURE_AVX512CD ( 9*32+28) /* AVX-512 Conflict Detection */
#define X86_FEATURE_SHA_NI ( 9*32+29) /* SHA1/SHA256 Instruction Extensions */
#define X86_FEATURE_AVX512BW ( 9*32+30) /* AVX-512 BW (Byte/Word granular) Instructions */
#define X86_FEATURE_AVX512VL ( 9*32+31) /* AVX-512 VL (128/256 Vector Length) Extensions */
/* Extended state features, CPUID level 0x0000000d:1 (eax), word 10 */
#define X86_FEATURE_XSAVEOPT (10*32+ 0) /* XSAVEOPT */
#define X86_FEATURE_XSAVEC (10*32+ 1) /* XSAVEC */
#define X86_FEATURE_XGETBV1 (10*32+ 2) /* XGETBV with ECX = 1 */
#define X86_FEATURE_XSAVES (10*32+ 3) /* XSAVES/XRSTORS */
/* Intel-defined CPU QoS Sub-leaf, CPUID level 0x0000000F:0 (edx), word 11 */
#define X86_FEATURE_CQM_LLC (11*32+ 1) /* LLC QoS if 1 */
/* Intel-defined CPU QoS Sub-leaf, CPUID level 0x0000000F:1 (edx), word 12 */
#define X86_FEATURE_CQM_OCCUP_LLC (12*32+ 0) /* LLC occupancy monitoring if 1 */
#define X86_FEATURE_CQM_MBM_TOTAL (12*32+ 1) /* LLC Total MBM monitoring */
#define X86_FEATURE_CQM_MBM_LOCAL (12*32+ 2) /* LLC Local MBM monitoring */
/* AMD-defined CPU features, CPUID level 0x80000008 (ebx), word 13 */
#define X86_FEATURE_CLZERO (13*32+0) /* CLZERO instruction */
#define X86_FEATURE_IRPERF (13*32+1) /* Instructions Retired Count */
/* Thermal and Power Management Leaf, CPUID level 0x00000006 (eax), word 14 */
#define X86_FEATURE_DTHERM (14*32+ 0) /* Digital Thermal Sensor */
#define X86_FEATURE_IDA (14*32+ 1) /* Intel Dynamic Acceleration */
#define X86_FEATURE_ARAT (14*32+ 2) /* Always Running APIC Timer */
#define X86_FEATURE_PLN (14*32+ 4) /* Intel Power Limit Notification */
#define X86_FEATURE_PTS (14*32+ 6) /* Intel Package Thermal Status */
#define X86_FEATURE_HWP (14*32+ 7) /* Intel Hardware P-states */
#define X86_FEATURE_HWP_NOTIFY (14*32+ 8) /* HWP Notification */
#define X86_FEATURE_HWP_ACT_WINDOW (14*32+ 9) /* HWP Activity Window */
#define X86_FEATURE_HWP_EPP (14*32+10) /* HWP Energy Perf. Preference */
#define X86_FEATURE_HWP_PKG_REQ (14*32+11) /* HWP Package Level Request */
/* AMD SVM Feature Identification, CPUID level 0x8000000a (edx), word 15 */
#define X86_FEATURE_NPT (15*32+ 0) /* Nested Page Table support */
#define X86_FEATURE_LBRV (15*32+ 1) /* LBR Virtualization support */
#define X86_FEATURE_SVML (15*32+ 2) /* "svm_lock" SVM locking MSR */
#define X86_FEATURE_NRIPS (15*32+ 3) /* "nrip_save" SVM next_rip save */
#define X86_FEATURE_TSCRATEMSR (15*32+ 4) /* "tsc_scale" TSC scaling support */
#define X86_FEATURE_VMCBCLEAN (15*32+ 5) /* "vmcb_clean" VMCB clean bits support */
#define X86_FEATURE_FLUSHBYASID (15*32+ 6) /* flush-by-ASID support */
#define X86_FEATURE_DECODEASSISTS (15*32+ 7) /* Decode Assists support */
#define X86_FEATURE_PAUSEFILTER (15*32+10) /* filtered pause intercept */
#define X86_FEATURE_PFTHRESHOLD (15*32+12) /* pause filter threshold */
#define X86_FEATURE_AVIC (15*32+13) /* Virtual Interrupt Controller */
#define X86_FEATURE_V_VMSAVE_VMLOAD (15*32+15) /* Virtual VMSAVE VMLOAD */
#define X86_FEATURE_VGIF (15*32+16) /* Virtual GIF */
/* Intel-defined CPU features, CPUID level 0x00000007:0 (ecx), word 16 */
#define X86_FEATURE_AVX512VBMI (16*32+ 1) /* AVX512 Vector Bit Manipulation instructions*/
#define X86_FEATURE_PKU (16*32+ 3) /* Protection Keys for Userspace */
#define X86_FEATURE_OSPKE (16*32+ 4) /* OS Protection Keys Enable */
#define X86_FEATURE_AVX512_VPOPCNTDQ (16*32+14) /* POPCNT for vectors of DW/QW */
#define X86_FEATURE_LA57 (16*32+16) /* 5-level page tables */
#define X86_FEATURE_RDPID (16*32+22) /* RDPID instruction */
/* AMD-defined CPU features, CPUID level 0x80000007 (ebx), word 17 */
#define X86_FEATURE_OVERFLOW_RECOV (17*32+0) /* MCA overflow recovery support */
#define X86_FEATURE_SUCCOR (17*32+1) /* Uncorrectable error containment and recovery */
#define X86_FEATURE_SMCA (17*32+3) /* Scalable MCA */
/*
* BUG word(s)
*/
#define X86_BUG(x) (NCAPINTS*32 + (x))
#define X86_BUG_F00F X86_BUG(0) /* Intel F00F */
#define X86_BUG_FDIV X86_BUG(1) /* FPU FDIV */
#define X86_BUG_COMA X86_BUG(2) /* Cyrix 6x86 coma */
#define X86_BUG_AMD_TLB_MMATCH X86_BUG(3) /* "tlb_mmatch" AMD Erratum 383 */
#define X86_BUG_AMD_APIC_C1E X86_BUG(4) /* "apic_c1e" AMD Erratum 400 */
#define X86_BUG_11AP X86_BUG(5) /* Bad local APIC aka 11AP */
#define X86_BUG_FXSAVE_LEAK X86_BUG(6) /* FXSAVE leaks FOP/FIP/FOP */
#define X86_BUG_CLFLUSH_MONITOR X86_BUG(7) /* AAI65, CLFLUSH required before MONITOR */
#define X86_BUG_SYSRET_SS_ATTRS X86_BUG(8) /* SYSRET doesn't fix up SS attrs */
#ifdef CONFIG_X86_32
/*
* 64-bit kernels don't use X86_BUG_ESPFIX. Make the define conditional
* to avoid confusion.
*/
#define X86_BUG_ESPFIX X86_BUG(9) /* "" IRET to 16-bit SS corrupts ESP/RSP high bits */
#endif
#define X86_BUG_NULL_SEG X86_BUG(10) /* Nulling a selector preserves the base */
#define X86_BUG_SWAPGS_FENCE X86_BUG(11) /* SWAPGS without input dep on GS */
#define X86_BUG_MONITOR X86_BUG(12) /* IPI required to wake up remote CPU */
#define X86_BUG_AMD_E400 X86_BUG(13) /* CPU is among the affected by Erratum 400 */
#endif /* _ASM_X86_CPUFEATURES_H */

View File

@ -1,968 +0,0 @@
#!/bin/bash
SCRIPT_VERSION=0.4.64
CHANGELOG="http://www.alsa-project.org/alsa-info.sh.changelog"
#################################################################################
#Copyright (C) 2007 Free Software Foundation.
#This program is free software; you can redistribute it and/or modify
#it under the terms of the GNU General Public License as published by
#the Free Software Foundation; either version 2 of the License, or
#(at your option) any later version.
#This program is distributed in the hope that it will be useful,
#but WITHOUT ANY WARRANTY; without even the implied warranty of
#MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
#GNU General Public License for more details.
#You should have received a copy of the GNU General Public License
#along with this program; if not, write to the Free Software
#Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
##################################################################################
#The script was written for 2 main reasons:
# 1. Remove the need for the devs/helpers to ask several questions before we can easily help the user.
# 2. Allow newer/inexperienced ALSA users to give us all the info we need to help them.
#Set the locale (this may or may not be a good idea.. let me know)
export LC_ALL=C
#Change the PATH variable, so we can run lspci (needed for some distros)
PATH=$PATH:/bin:/sbin:/usr/bin:/usr/sbin
BGTITLE="ALSA-Info v $SCRIPT_VERSION"
PASTEBINKEY="C9cRIO8m/9y8Cs0nVs0FraRx7U0pHsuc"
#Define some simple functions
WGET=$(which wget 2>/dev/null| sed 's|^[^/]*||' 2>/dev/null)
pbcheck(){
[[ $UPLOAD = "no" ]] && return
if [[ -z $PASTEBIN ]]; then
[[ $(ping -c1 www.alsa-project.org) ]] || KEEP_FILES="yes" UPLOAD="no" PBERROR="yes"
else
[[ $(ping -c1 www.pastebin.ca) ]] || KEEP_FILES="yes" UPLOAD="no" PBERROR="yes"
fi
}
update() {
test -z "$WGET" -o ! -x "$WGET" && return
SHFILE=`mktemp -t alsa-info.XXXXXXXXXX` || exit 1
wget -O $SHFILE "http://www.alsa-project.org/alsa-info.sh" >/dev/null 2>&1
REMOTE_VERSION=`grep SCRIPT_VERSION $SHFILE |head -n1 |sed 's/.*=//'`
if [ -s "$SHFILE" -a "$REMOTE_VERSION" != "$SCRIPT_VERSION" ]; then
if [[ -n $DIALOG ]]
then
OVERWRITE=
if [ -w $0 ]; then
dialog --yesno "Newer version of ALSA-Info has been found\n\nDo you wish to install it?\nNOTICE: The original file $0 will be overwritten!" 0 0
DIALOG_EXIT_CODE=$?
if [[ $DIALOG_EXIT_CODE = 0 ]]; then
OVERWRITE=yes
fi
fi
if [ -z "$OVERWRITE" ]; then
dialog --yesno "Newer version of ALSA-Info has been found\n\nDo you wish to download it?" 0 0
DIALOG_EXIT_CODE=$?
fi
if [[ $DIALOG_EXIT_CODE = 0 ]]
then
echo "Newer version detected: $REMOTE_VERSION"
echo "To view the ChangeLog, please visit $CHANGELOG"
if [ "$OVERWRITE" = "yes" ]; then
cp $SHFILE $0
echo "ALSA-Info script has been updated to v $REMOTE_VERSION"
echo "Please re-run the script"
rm $SHFILE 2>/dev/null
else
echo "ALSA-Info script has been downloaded as $SHFILE."
echo "Please re-run the script from new location."
fi
exit
else
rm $SHFILE 2>/dev/null
fi
else
echo "Newer version detected: $REMOTE_VERSION"
echo "To view the ChangeLog, please visit $CHANGELOG"
if [ -w $0 ]; then
echo "The original file $0 will be overwritten!"
echo -n "If you do not like to proceed, press Ctrl-C now.." ; read inp
cp $SHFILE $0
echo "ALSA-Info script has been updated. Please re-run it."
rm $SHFILE 2>/dev/null
else
echo "ALSA-Info script has been downloaded $SHFILE."
echo "Please, re-run it from new location."
fi
exit
fi
else
rm $SHFILE 2>/dev/null
fi
}
cleanup() {
if [ -n "$TEMPDIR" -a "$KEEP_FILES" != "yes" ]; then
rm -rf "$TEMPDIR" 2>/dev/null
fi
test -n "$KEEP_OUTPUT" || rm -f "$NFILE"
}
withaplay() {
echo "!!Aplay/Arecord output" >> $FILE
echo "!!--------------------" >> $FILE
echo "" >> $FILE
echo "APLAY" >> $FILE
echo "" >> $FILE
aplay -l >> $FILE 2>&1
echo "" >> $FILE
echo "ARECORD" >> $FILE
echo "" >> $FILE
arecord -l >> $FILE 2>&1
echo "" >> $FILE
}
withlsmod() {
echo "!!All Loaded Modules" >> $FILE
echo "!!------------------" >> $FILE
echo "" >> $FILE
lsmod |awk {'print $1'} >> $FILE
echo "" >> $FILE
echo "" >> $FILE
}
withamixer() {
echo "!!Amixer output" >> $FILE
echo "!!-------------" >> $FILE
echo "" >> $FILE
for i in `grep "]: " /proc/asound/cards | awk -F ' ' '{ print $1} '` ; do
CARD_NAME=`grep "^ *$i " $TEMPDIR/alsacards.tmp|awk {'print $2'}`
echo "!!-------Mixer controls for card $i $CARD_NAME]" >> $FILE
echo "" >>$FILE
amixer -c$i info>> $FILE 2>&1
amixer -c$i>> $FILE 2>&1
echo "" >> $FILE
done
echo "" >> $FILE
}
withalsactl() {
echo "!!Alsactl output" >> $FILE
echo "!!--------------" >> $FILE
echo "" >> $FILE
exe=""
if [ -x /usr/sbin/alsactl ]; then
exe="/usr/sbin/alsactl"
fi
if [ -x /usr/local/sbin/alsactl ]; then
exe="/usr/local/sbin/alsactl"
fi
if [ -z "$exe" ]; then
exe=`whereis alsactl | cut -d ' ' -f 2`
fi
$exe -f $TEMPDIR/alsactl.tmp store
echo "--startcollapse--" >> $FILE
cat $TEMPDIR/alsactl.tmp >> $FILE
echo "--endcollapse--" >> $FILE
echo "" >> $FILE
echo "" >> $FILE
}
withdevices() {
echo "!!ALSA Device nodes" >> $FILE
echo "!!-----------------" >> $FILE
echo "" >> $FILE
ls -la /dev/snd/* >> $FILE
echo "" >> $FILE
echo "" >> $FILE
}
withconfigs() {
if [[ -e $HOME/.asoundrc ]] || [[ -e /etc/asound.conf ]] || [[ -e $HOME/.asoundrc.asoundconf ]]
then
echo "!!ALSA configuration files" >> $FILE
echo "!!------------------------" >> $FILE
echo "" >> $FILE
#Check for ~/.asoundrc
if [[ -e $HOME/.asoundrc ]]
then
echo "!!User specific config file (~/.asoundrc)" >> $FILE
echo "" >> $FILE
cat $HOME/.asoundrc >> $FILE
echo "" >> $FILE
echo "" >> $FILE
fi
#Check for .asoundrc.asoundconf (seems to be Ubuntu specific)
if [[ -e $HOME/.asoundrc.asoundconf ]]
then
echo "!!asoundconf-generated config file" >> $FILE
echo "" >> $FILE
cat $HOME/.asoundrc.asoundconf >> $FILE
echo "" >> $FILE
echo "" >> $FILE
fi
#Check for /etc/asound.conf
if [[ -e /etc/asound.conf ]]
then
echo "!!System wide config file (/etc/asound.conf)" >> $FILE
echo "" >> $FILE
cat /etc/asound.conf >> $FILE
echo "" >> $FILE
echo "" >> $FILE
fi
fi
}
withsysfs() {
local i f
local printed=""
for i in /sys/class/sound/*; do
case "$i" in
*/hwC?D?)
if [ -f $i/init_pin_configs ]; then
if [ -z "$printed" ]; then
echo "!!Sysfs Files" >> $FILE
echo "!!-----------" >> $FILE
echo "" >> $FILE
fi
for f in init_pin_configs driver_pin_configs user_pin_configs init_verbs hints; do
echo "$i/$f:" >> $FILE
cat $i/$f >> $FILE
echo >> $FILE
done
printed=yes
fi
;;
esac
done
if [ -n "$printed" ]; then
echo "" >> $FILE
fi
}
withdmesg() {
echo "!!ALSA/HDA dmesg" >> $FILE
echo "!!--------------" >> $FILE
echo "" >> $FILE
dmesg | grep -C1 -E 'ALSA|HDA|HDMI|snd[_-]|sound|hda.codec|hda.intel' >> $FILE
echo "" >> $FILE
echo "" >> $FILE
}
withall() {
withdevices
withconfigs
withaplay
withamixer
withalsactl
withlsmod
withsysfs
withdmesg
WITHALL="no"
}
get_alsa_library_version() {
ALSA_LIB_VERSION=`grep VERSION_STR /usr/include/alsa/version.h 2>/dev/null|awk {'print $3'}|sed 's/"//g'`
if [ -z "$ALSA_LIB_VERSION" ]; then
if [ -f /etc/lsb-release ]; then
. /etc/lsb-release
case "$DISTRIB_ID" in
Ubuntu)
if which dpkg > /dev/null ; then
ALSA_LIB_VERSION=`dpkg -l libasound2 | tail -1 | awk '{print $3}' | cut -f 1 -d -`
fi
if [ "$ALSA_LIB_VERSION" = "<none>" ]; then
ALSA_LIB_VERSION=""
fi
return
;;
*)
return
;;
esac
elif [ -f /etc/debian_version ]; then
if which dpkg > /dev/null ; then
ALSA_LIB_VERSION=`dpkg -l libasound2 | tail -1 | awk '{print $3}' | cut -f 1 -d -`
fi
if [ "$ALSA_LIB_VERSION" = "<none>" ]; then
ALSA_LIB_VERSION=""
fi
return
fi
fi
}
#Run checks to make sure the programs we need are installed.
LSPCI=$(which lspci 2>/dev/null| sed 's|^[^/]*||' 2>/dev/null);
TPUT=$(which tput 2>/dev/null| sed 's|^[^/]*||' 2>/dev/null);
DIALOG=$(which dialog 2>/dev/null | sed 's|^[^/]*||' 2>/dev/null);
#Check to see if sysfs is enabled in the kernel. We'll need this later on
SYSFS=$(mount |grep sysfs|awk {'print $3'});
#Check modprobe config files for sound related options
SNDOPTIONS=$(modprobe -c|sed -n 's/^options \(snd[-_][^ ]*\)/\1:/p')
KEEP_OUTPUT=
NFILE=""
PASTEBIN=""
WWWSERVICE="www.alsa-project.org"
WELCOME="yes"
PROCEED="yes"
UPLOAD="ask"
REPEAT=""
while [ -z "$REPEAT" ]; do
REPEAT="no"
case "$1" in
--update|--help|--about)
WELCOME="no"
PROCEED="no"
;;
--upload)
UPLOAD="yes"
WELCOME="no"
;;
--no-upload)
UPLOAD="no"
WELCOME="no"
;;
--pastebin)
PASTEBIN="yes"
WWWSERVICE="pastebin"
;;
--no-dialog)
DIALOG=""
REPEAT=""
shift
;;
--stdout)
DIALOG=""
UPLOAD="no"
WELCOME="no"
TOSTDOUT="yes"
;;
esac
done
#Script header output.
if [ "$WELCOME" = "yes" ]; then
greeting_message="\
This script visits the following commands/files to collect diagnostic
information about your ALSA installation and sound related hardware.
dmesg
lspci
lsmod
aplay
amixer
alsactl
/proc/asound/
/sys/class/sound/
~/.asoundrc (etc.)
See '$0 --help' for command line options.
"
if [ -n "$DIALOG" ]; then
dialog --backtitle "$BGTITLE" \
--title "ALSA-Info script v $SCRIPT_VERSION" \
--msgbox "$greeting_message" 20 80
else
echo "ALSA Information Script v $SCRIPT_VERSION"
echo "--------------------------------"
echo "$greeting_message"
fi # dialog
fi # WELCOME
#Set the output file
TEMPDIR=`mktemp -t -d alsa-info.XXXXXXXXXX` || exit 1
FILE="$TEMPDIR/alsa-info.txt"
if [ -z "$NFILE" ]; then
NFILE=`mktemp -t alsa-info.txt.XXXXXXXXXX` || exit 1
fi
trap cleanup 0
if [ "$PROCEED" = "yes" ]; then
if [ -z "$LSPCI" ]; then
if [ -d /sys/bus/pci ]; then
echo "This script requires lspci. Please install it, and re-run this script."
exit 0
fi
fi
#Fetch the info and store in temp files/variables
DISTRO=`grep -ihs "buntu\|SUSE\|Fedora\|PCLinuxOS\|MEPIS\|Mandriva\|Debian\|Damn\|Sabayon\|Slackware\|KNOPPIX\|Gentoo\|Zenwalk\|Mint\|Kubuntu\|FreeBSD\|Puppy\|Freespire\|Vector\|Dreamlinux\|CentOS\|Arch\|Xandros\|Elive\|SLAX\|Red\|BSD\|KANOTIX\|Nexenta\|Foresight\|GeeXboX\|Frugalware\|64\|SystemRescue\|Novell\|Solaris\|BackTrack\|KateOS\|Pardus" /etc/{issue,*release,*version}`
KERNEL_VERSION=`uname -r`
KERNEL_PROCESSOR=`uname -p`
KERNEL_MACHINE=`uname -m`
KERNEL_OS=`uname -o`
[[ `uname -v | grep SMP` ]] && KERNEL_SMP="Yes" || KERNEL_SMP="No"
ALSA_DRIVER_VERSION=`cat /proc/asound/version |head -n1|awk {'print $7'} |sed 's/\.$//'`
get_alsa_library_version
ALSA_UTILS_VERSION=`amixer -v |awk {'print $3'}`
LAST_CARD=$((`grep "]: " /proc/asound/cards | wc -l` - 1 ))
ESDINST=$(which esd 2>/dev/null| sed 's|^[^/]*||' 2>/dev/null)
PAINST=$(which pulseaudio 2>/dev/null| sed 's|^[^/]*||' 2>/dev/null)
ARTSINST=$(which artsd 2>/dev/null| sed 's|^[^/]*||' 2>/dev/null)
JACKINST=$(which jackd 2>/dev/null| sed 's|^[^/]*||' 2>/dev/null)
ROARINST=$(which roard 2>/dev/null| sed 's|^[^/]*||' 2>/dev/null)
DMIDECODE=$(which dmidecode 2>/dev/null| sed 's|^[^/]*||' 2>/dev/null)
#Check for DMI data
if [ -d /sys/class/dmi/id ]; then
# No root privileges are required when using sysfs method
DMI_SYSTEM_MANUFACTURER=$(cat /sys/class/dmi/id/sys_vendor 2>/dev/null)
DMI_SYSTEM_PRODUCT_NAME=$(cat /sys/class/dmi/id/product_name 2>/dev/null)
DMI_SYSTEM_PRODUCT_VERSION=$(cat /sys/class/dmi/id/product_version 2>/dev/null)
DMI_SYSTEM_FIRMWARE_VERSION=$(cat /sys/class/dmi/id/bios_version 2>/dev/null)
DMI_BOARD_VENDOR=$(cat /sys/class/dmi/id/board_vendor 2>/dev/null)
DMI_BOARD_NAME=$(cat /sys/class/dmi/id/board_name 2>/dev/null)
elif [ -x $DMIDECODE ]; then
DMI_SYSTEM_MANUFACTURER=$($DMIDECODE -s system-manufacturer 2>/dev/null)
DMI_SYSTEM_PRODUCT_NAME=$($DMIDECODE -s system-product-name 2>/dev/null)
DMI_SYSTEM_PRODUCT_VERSION=$($DMIDECODE -s system-version 2>/dev/null)
DMI_SYSTEM_FIRMWARE_VERSION=$($DMIDECODE -s bios-version 2>/dev/null)
DMI_BOARD_VENDOR=$($DMIDECODE -s baseboard-manufacturer 2>/dev/null)
DMI_BOARD_NAME=$($DMIDECODE -s baseboard-product-name 2>/dev/null)
fi
# Check for ACPI device status
if [ -d /sys/bus/acpi/devices ]; then
for f in /sys/bus/acpi/devices/*/status; do
ACPI_STATUS=$(cat $f 2>/dev/null);
if [[ "$ACPI_STATUS" -ne 0 ]]; then
echo $f $'\t' $ACPI_STATUS >>$TEMPDIR/acpidevicestatus.tmp;
fi
done
fi
cat /proc/asound/modules 2>/dev/null|awk {'print $2'}>$TEMPDIR/alsamodules.tmp
cat /proc/asound/cards >$TEMPDIR/alsacards.tmp
if [[ ! -z "$LSPCI" ]]; then
lspci |grep -i "multi\|audio">$TEMPDIR/lspci.tmp
fi
#Check for HDA-Intel cards codec#*
cat /proc/asound/card*/codec\#* > $TEMPDIR/alsa-hda-intel.tmp 2> /dev/null
#Check for AC97 cards codec
cat /proc/asound/card*/codec97\#0/ac97\#0-0 > $TEMPDIR/alsa-ac97.tmp 2> /dev/null
cat /proc/asound/card*/codec97\#0/ac97\#0-0+regs > $TEMPDIR/alsa-ac97-regs.tmp 2> /dev/null
#Check for USB mixer setup
cat /proc/asound/card*/usbmixer > $TEMPDIR/alsa-usbmixer.tmp 2> /dev/null
#Fetch the info, and put it in $FILE in a nice readable format.
if [[ -z $PASTEBIN ]]; then
echo "upload=true&script=true&cardinfo=" > $FILE
else
echo "name=$USER&type=33&description=/tmp/alsa-info.txt&expiry=&s=Submit+Post&content=" > $FILE
fi
echo "!!################################" >> $FILE
echo "!!ALSA Information Script v $SCRIPT_VERSION" >> $FILE
echo "!!################################" >> $FILE
echo "" >> $FILE
echo "!!Script ran on: `LANG=C TZ=UTC date`" >> $FILE
echo "" >> $FILE
echo "" >> $FILE
echo "!!Linux Distribution" >> $FILE
echo "!!------------------" >> $FILE
echo "" >> $FILE
echo $DISTRO >> $FILE
echo "" >> $FILE
echo "" >> $FILE
echo "!!DMI Information" >> $FILE
echo "!!---------------" >> $FILE
echo "" >> $FILE
echo "Manufacturer: $DMI_SYSTEM_MANUFACTURER" >> $FILE
echo "Product Name: $DMI_SYSTEM_PRODUCT_NAME" >> $FILE
echo "Product Version: $DMI_SYSTEM_PRODUCT_VERSION" >> $FILE
echo "Firmware Version: $DMI_SYSTEM_FIRMWARE_VERSION" >> $FILE
echo "Board Vendor: $DMI_BOARD_VENDOR" >> $FILE
echo "Board Name: $DMI_BOARD_NAME" >> $FILE
echo "" >> $FILE
echo "" >> $FILE
echo "!!ACPI Device Status Information" >> $FILE
echo "!!---------------" >> $FILE
echo "" >> $FILE
cat $TEMPDIR/acpidevicestatus.tmp >> $FILE
echo "" >> $FILE
echo "" >> $FILE
echo "!!Kernel Information" >> $FILE
echo "!!------------------" >> $FILE
echo "" >> $FILE
echo "Kernel release: $KERNEL_VERSION" >> $FILE
echo "Operating System: $KERNEL_OS" >> $FILE
echo "Architecture: $KERNEL_MACHINE" >> $FILE
echo "Processor: $KERNEL_PROCESSOR" >> $FILE
echo "SMP Enabled: $KERNEL_SMP" >> $FILE
echo "" >> $FILE
echo "" >> $FILE
echo "!!ALSA Version" >> $FILE
echo "!!------------" >> $FILE
echo "" >> $FILE
echo "Driver version: $ALSA_DRIVER_VERSION" >> $FILE
echo "Library version: $ALSA_LIB_VERSION" >> $FILE
echo "Utilities version: $ALSA_UTILS_VERSION" >> $FILE
echo "" >> $FILE
echo "" >> $FILE
echo "!!Loaded ALSA modules" >> $FILE
echo "!!-------------------" >> $FILE
echo "" >> $FILE
cat $TEMPDIR/alsamodules.tmp >> $FILE
echo "" >> $FILE
echo "" >> $FILE
echo "!!Sound Servers on this system" >> $FILE
echo "!!----------------------------" >> $FILE
echo "" >> $FILE
if [[ -n $PAINST ]];then
[[ `pgrep '^(.*/)?pulseaudio$'` ]] && PARUNNING="Yes" || PARUNNING="No"
echo "Pulseaudio:" >> $FILE
echo " Installed - Yes ($PAINST)" >> $FILE
echo " Running - $PARUNNING" >> $FILE
echo "" >> $FILE
fi
if [[ -n $ESDINST ]];then
[[ `pgrep '^(.*/)?esd$'` ]] && ESDRUNNING="Yes" || ESDRUNNING="No"
echo "ESound Daemon:" >> $FILE
echo " Installed - Yes ($ESDINST)" >> $FILE
echo " Running - $ESDRUNNING" >> $FILE
echo "" >> $FILE
fi
if [[ -n $ARTSINST ]];then
[[ `pgrep '^(.*/)?artsd$'` ]] && ARTSRUNNING="Yes" || ARTSRUNNING="No"
echo "aRts:" >> $FILE
echo " Installed - Yes ($ARTSINST)" >> $FILE
echo " Running - $ARTSRUNNING" >> $FILE
echo "" >> $FILE
fi
if [[ -n $JACKINST ]];then
[[ `pgrep '^(.*/)?jackd$'` ]] && JACKRUNNING="Yes" || JACKRUNNING="No"
echo "Jack:" >> $FILE
echo " Installed - Yes ($JACKINST)" >> $FILE
echo " Running - $JACKRUNNING" >> $FILE
echo "" >> $FILE
fi
if [[ -n $ROARINST ]];then
[[ `pgrep '^(.*/)?roard$'` ]] && ROARRUNNING="Yes" || ROARRUNNING="No"
echo "RoarAudio:" >> $FILE
echo " Installed - Yes ($ROARINST)" >> $FILE
echo " Running - $ROARRUNNING" >> $FILE
echo "" >> $FILE
fi
if [[ -z "$PAINST" && -z "$ESDINST" && -z "$ARTSINST" && -z "$JACKINST" && -z "$ROARINST" ]];then
echo "No sound servers found." >> $FILE
echo "" >> $FILE
fi
echo "" >> $FILE
echo "!!Soundcards recognised by ALSA" >> $FILE
echo "!!-----------------------------" >> $FILE
echo "" >> $FILE
cat $TEMPDIR/alsacards.tmp >> $FILE
echo "" >> $FILE
echo "" >> $FILE
if [[ ! -z "$LSPCI" ]]; then
echo "!!PCI Soundcards installed in the system" >> $FILE
echo "!!--------------------------------------" >> $FILE
echo "" >> $FILE
cat $TEMPDIR/lspci.tmp >> $FILE
echo "" >> $FILE
echo "" >> $FILE
echo "!!Advanced information - PCI Vendor/Device/Subsystem ID's" >> $FILE
echo "!!-------------------------------------------------------" >> $FILE
echo "" >> $FILE
lspci -vvn |grep -A1 040[1-3] >> $FILE
echo "" >> $FILE
echo "" >> $FILE
fi
if [ "$SNDOPTIONS" ]
then
echo "!!Modprobe options (Sound related)" >> $FILE
echo "!!--------------------------------" >> $FILE
echo "" >> $FILE
modprobe -c|sed -n 's/^options \(snd[-_][^ ]*\)/\1:/p' >> $FILE
echo "" >> $FILE
echo "" >> $FILE
fi
if [ -d "$SYSFS" ]
then
echo "!!Loaded sound module options" >> $FILE
echo "!!---------------------------" >> $FILE
echo "" >> $FILE
for mod in `cat /proc/asound/modules|awk {'print $2'}`;do
echo "!!Module: $mod" >> $FILE
for params in `echo $SYSFS/module/$mod/parameters/*`; do
echo -ne "\t";
echo "$params : `cat $params`" | sed 's:.*/::';
done >> $FILE
echo "" >> $FILE
done
echo "" >> $FILE
fi
if [ -s "$TEMPDIR/alsa-hda-intel.tmp" ]; then
echo "!!HDA-Intel Codec information" >> $FILE
echo "!!---------------------------" >> $FILE
echo "--startcollapse--" >> $FILE
echo "" >> $FILE
cat $TEMPDIR/alsa-hda-intel.tmp >> $FILE
echo "--endcollapse--" >> $FILE
echo "" >> $FILE
echo "" >> $FILE
fi
if [ -s "$TEMPDIR/alsa-ac97.tmp" ]; then
echo "!!AC97 Codec information" >> $FILE
echo "!!----------------------" >> $FILE
echo "--startcollapse--" >> $FILE
echo "" >> $FILE
cat $TEMPDIR/alsa-ac97.tmp >> $FILE
echo "" >> $FILE
cat $TEMPDIR/alsa-ac97-regs.tmp >> $FILE
echo "--endcollapse--" >> $FILE
echo "" >> $FILE
echo "" >> $FILE
fi
if [ -s "$TEMPDIR/alsa-usbmixer.tmp" ]; then
echo "!!USB Mixer information" >> $FILE
echo "!!---------------------" >> $FILE
echo "--startcollapse--" >> $FILE
echo "" >> $FILE
cat $TEMPDIR/alsa-usbmixer.tmp >> $FILE
echo "--endcollapse--" >> $FILE
echo "" >> $FILE
echo "" >> $FILE
fi
#If no command line options are specified, then run as though --with-all was specified
if [ -z "$1" ]; then
update
pbcheck
fi
fi # proceed
#loop through command line arguments, until none are left.
if [ -n "$1" ]; then
until [ -z "$1" ]
do
case "$1" in
--pastebin)
update
pbcheck
;;
--update)
update
exit
;;
--upload)
UPLOAD="yes"
;;
--no-upload)
UPLOAD="no"
;;
--output)
shift
NFILE="$1"
KEEP_OUTPUT="yes"
;;
--debug)
echo "Debugging enabled. $FILE and $TEMPDIR will not be deleted"
KEEP_FILES="yes"
echo ""
;;
--with-all)
withall
;;
--with-aplay)
withaplay
WITHALL="no"
;;
--with-amixer)
withamixer
WITHALL="no"
;;
--with-alsactl)
withalsactl
WITHALL="no"
;;
--with-devices)
withdevices
WITHALL="no"
;;
--with-dmesg)
withdmesg
WITHALL="no"
;;
--with-configs)
WITHALL="no"
if [[ -e $HOME/.asoundrc ]] || [[ -e /etc/asound.conf ]]
then
echo "!!ALSA configuration files" >> $FILE
echo "!!------------------------" >> $FILE
echo "" >> $FILE
#Check for ~/.asoundrc
if [[ -e $HOME/.asoundrc ]]
then
echo "!!User specific config file ($HOME/.asoundrc)" >> $FILE
echo "" >> $FILE
cat $HOME/.asoundrc >> $FILE
echo "" >> $FILE
echo "" >> $FILE
fi
#Check for /etc/asound.conf
if [[ -e /etc/asound.conf ]]
then
echo "!!System wide config file (/etc/asound.conf)" >> $FILE
echo "" >> $FILE
cat /etc/asound.conf >> $FILE
echo "" >> $FILE
echo "" >> $FILE
fi
fi
;;
--stdout)
UPLOAD="no"
if [ -z "$WITHALL" ]; then
withall
fi
cat $FILE
rm $FILE
;;
--about)
echo "Written/Tested by the following users of #alsa on irc.freenode.net:"
echo ""
echo " wishie - Script author and developer / Testing"
echo " crimsun - Various script ideas / Testing"
echo " gnubien - Various script ideas / Testing"
echo " GrueMaster - HDA Intel specific items / Testing"
echo " olegfink - Script update function"
echo " TheMuso - display to stdout functionality"
exit 0
;;
*)
echo "alsa-info.sh version $SCRIPT_VERSION"
echo ""
echo "Available options:"
echo " --with-aplay (includes the output of aplay -l)"
echo " --with-amixer (includes the output of amixer)"
echo " --with-alsactl (includes the output of alsactl)"
echo " --with-configs (includes the output of ~/.asoundrc and"
echo " /etc/asound.conf if they exist)"
echo " --with-devices (shows the device nodes in /dev/snd/)"
echo " --with-dmesg (shows the ALSA/HDA kernel messages)"
echo ""
echo " --output FILE (specify the file to output for no-upload mode)"
echo " --update (check server for script updates)"
echo " --upload (upload contents to remote server)"
echo " --no-upload (do not upload contents to remote server)"
echo " --pastebin (use http://pastebin.ca) as remote server"
echo " instead www.alsa-project.org"
echo " --stdout (print alsa information to standard output"
echo " instead of a file)"
echo " --about (show some information about the script)"
echo " --debug (will run the script as normal, but will not"
echo " delete $FILE)"
exit 0
;;
esac
shift 1
done
fi
if [ "$PROCEED" = "no" ]; then
exit 1
fi
if [ -z "$WITHALL" ]; then
withall
fi
if [ "$UPLOAD" = "ask" ]; then
if [ -n "$DIALOG" ]; then
dialog --backtitle "$BGTITLE" --title "Information collected" --yes-label " UPLOAD / SHARE " --no-label " SAVE LOCALLY " --defaultno --yesno "\n\nAutomatically upload ALSA information to $WWWSERVICE?" 10 80
DIALOG_EXIT_CODE=$?
if [ $DIALOG_EXIT_CODE != 0 ]; then
UPLOAD="no"
else
UPLOAD="yes"
fi
else
echo -n "Automatically upload ALSA information to $WWWSERVICE? [y/N] : "
read -e CONFIRM
if [ "$CONFIRM" != "y" ]; then
UPLOAD="no"
else
UPLOAD="yes"
fi
fi
fi
if [ "$UPLOAD" = "no" ]; then
if [ -z "$TOSTDOUT" ]; then
mv -f $FILE $NFILE || exit 1
KEEP_OUTPUT="yes"
fi
if [[ -n $DIALOG ]]
then
if [[ -n $PBERROR ]]; then
dialog --backtitle "$BGTITLE" --title "Information collected" --msgbox "An error occurred while contacting the $WWWSERVICE.\n Your information was NOT automatically uploaded.\n\nYour ALSA information is in $NFILE" 10 100
else
dialog --backtitle "$BGTITLE" --title "Information collected" --msgbox "\n\nYour ALSA information is in $NFILE" 10 60
fi
else
echo
if [[ -n $PBERROR ]]; then
echo "An error occurred while contacting the $WWWSERVICE."
echo "Your information was NOT automatically uploaded."
echo ""
echo "Your ALSA information is in $NFILE"
echo ""
else
if [ -z "$TOSTDOUT" ]; then
echo ""
echo "Your ALSA information is in $NFILE"
echo ""
fi
fi
fi
exit
fi # UPLOAD
#Test that wget is installed, and supports --post-file. Upload $FILE if it does, and prompt user to upload file if it doesnt.
if [[ -n "${WGET}" ]] && [[ -x "${WGET}" ]] && [[ `wget --help |grep post-file` ]]
then
if [[ -n $DIALOG ]]
then
if [[ -z $PASTEBIN ]]; then
wget -O - --tries=5 --timeout=60 --post-file=$FILE "http://www.alsa-project.org/cardinfo-db/" &>$TEMPDIR/wget.tmp || echo "Upload failed; exit"
{ for i in 10 20 30 40 50 60 70 80 90; do
echo $i
sleep 0.2
done
echo; } |dialog --backtitle "$BGTITLE" --guage "Uploading information to www.alsa-project.org ..." 6 70 0
else
wget -O - --tries=5 --timeout=60 --post-file=$FILE "http://pastebin.ca/quiet-paste.php?api=$PASTEBINKEY&encrypt=t&encryptpw=blahblah" &>$TEMPDIR/wget.tmp || echo "Upload failed; exit"
{ for i in 10 20 30 40 50 60 70 80 90; do
echo $i
sleep 0.2
done
echo; } |dialog --backtitle "$BGTITLE" --guage "Uploading information to www.pastebin.ca ..." 6 70 0
fi
dialog --backtitle "$BGTITLE" --title "Information uploaded" --yesno "Would you like to see the uploaded information?" 5 100
DIALOG_EXIT_CODE=$?
if [ $DIALOG_EXIT_CODE = 0 ]; then
grep -v "alsa-info.txt" $FILE >$TEMPDIR/uploaded.txt
dialog --backtitle "$BGTITLE" --textbox $TEMPDIR/uploaded.txt 0 0
fi
clear
# no dialog
else
if [[ -z $PASTEBIN ]]; then
echo -n "Uploading information to www.alsa-project.org ... "
wget -O - --tries=5 --timeout=60 --post-file=$FILE http://www.alsa-project.org/cardinfo-db/ &>$TEMPDIR/wget.tmp &
else
echo -n "Uploading information to www.pastebin.ca ... "
wget -O - --tries=5 --timeout=60 --post-file=$FILE http://pastebin.ca/quiet-paste.php?api=$PASTEBINKEY &>$TEMPDIR/wget.tmp &
fi
#Progess spinner for wget transfer.
i=1
sp="/-\|"
echo -n ' '
while pgrep wget &>/dev/null
do
echo -en "\b${sp:i++%${#sp}:1}"
done
echo -e "\b Done!"
echo ""
fi #dialog
#See if tput is available, and use it if it is.
if [ -n "$TPUT" ]; then
if [[ -z $PASTEBIN ]]; then
FINAL_URL=`tput setaf 1; grep "SUCCESS:" $TEMPDIR/wget.tmp | cut -d ' ' -f 2 ; tput sgr0`
else
FINAL_URL=`tput setaf 1; grep "SUCCESS:" $TEMPDIR/wget.tmp | sed -n 's/.*\:\([0-9]\+\).*/http:\/\/pastebin.ca\/\1/p';tput sgr0`
fi
else
if [[ -z $PASTEBIN ]]; then
FINAL_URL=`grep "SUCCESS:" $TEMPDIR/wget.tmp | cut -d ' ' -f 2`
else
FINAL_URL=`grep "SUCCESS:" $TEMPDIR/wget.tmp | sed -n 's/.*\:\([0-9]\+\).*/http:\/\/pastebin.ca\/\1/p'`
fi
fi
# Output the URL of the uploaded file.
echo "Your ALSA information is located at $FINAL_URL"
echo "Please inform the person helping you."
echo ""
# We couldnt find a suitable wget, so tell the user to upload manually.
else
mv -f $FILE $NFILE || exit 1
KEEP_OUTPUT="yes"
if [[ -z $DIALOG ]]
then
if [[ -z $PASTEBIN ]]; then
echo ""
echo "Could not automatically upload output to http://www.alsa-project.org"
echo "Possible reasons are:"
echo " 1. Couldnt find 'wget' in your PATH"
echo " 2. Your version of wget is less than 1.8.2"
echo ""
echo "Please manually upload $NFILE to http://www.alsa-project.org/cardinfo-db/ and submit your post."
echo ""
else
echo ""
echo "Could not automatically upload output to http://www.pastebin.ca"
echo "Possible reasons are:"
echo " 1. Couldnt find 'wget' in your PATH"
echo " 2. Your version of wget is less than 1.8.2"
echo ""
echo "Please manually upload $NFILE to http://www.pastebin.ca/upload.php and submit your post."
echo ""
fi
else
if [[ -z $PASTEBIN ]]; then
dialog --backtitle "$BGTITLE" --msgbox "Could not automatically upload output to http://www.alsa-project.org.\nPossible reasons are:\n\n 1. Couldn't find 'wget' in your PATH\n 2. Your version of wget is less than 1.8.2\n\nPlease manually upload $NFILE to http://www.alsa-project,org/cardinfo-db/ and submit your post." 25 100
else
dialog --backtitle "$BGTITLE" --msgbox "Could not automatically upload output to http://www.pastebin.ca.\nPossible reasons are:\n\n 1. Couldn't find 'wget' in your PATH\n 2. Your version of wget is less than 1.8.2\n\nPlease manually upload $NFILE to http://www.pastebin.ca/upload.php and submit your post." 25 100
fi
fi
fi

View File

@ -1,4 +1,4 @@
> getInfo sur *1101HA*
> getInfo sur *HOSTNAME*
# titre 1

View File

@ -1,154 +0,0 @@
#!/bin/bash
## variables scripts
version=1.4.0
date="28.11.2017"
prefix_url="http://zone.spip.org/trac/spip-zone/changeset/latest/_plugins_/"
sufix_url="?old_path=/&amp;format=zip"
repToSave="/home/lf2hyggr/public_html/plugins"
repTemporaire="/tmp"
public_html/plugins/_plugins_/rainette
# la liste des 66 plugins à charger, juste le nom
toLoad=(
palette
rainette
)
# http://zone.spip.org/trac/spip-zone/changeset/latest/_plugins_/palette?old_path=/&amp;format=zip
## début du script, plus rien à configurer à partir d'ici
PATH='/usr/sbin:/usr/bin:/sbin:/bin'
TERM=xterm
IFS_INI="$IFS"
IFS=$' \t\n'
export PATH TERM IFS
### fonctions utiles
# test wget, $1 url à tester, sortie du script si $1 seul (même si url testée ok)
# si $2=print affiche url testée & entêtes http & location (si présente) et sortie normale fonction
# si $2=loc affiche seulement location et sortie normale fonction
# si $2=test return 0 si ok, return 1 si ko
f__wget_test(){ # 28/11/2017
local file_test_wget retourWget retourHttp location
file_test_wget="/tmp/testWget-$$-$RANDOM"
wget -Sq --timeout=10 --user-agent="$user_agent" --spider --save-headers "$1" &>"$file_test_wget"
retourWget="$?"
[ "$retourWget" == 1 ] && retourWget="code erreur générique"
[ "$retourWget" == 2 ] && retourWget="parse erreur (ligne de commande?)"
[ "$retourWget" == 3 ] && retourWget="erreur Entrée/sortie fichier"
[ "$retourWget" == 4 ] && retourWget="défaut réseau"
[ "$retourWget" == 5 ] && retourWget="défaut vérification SSL"
[ "$retourWget" == 6 ] && retourWget="défaut authentification"
[ "$retourWget" == 7 ] && retourWget="erreur de protocole"
[ "$retourWget" == 8 ] && retourWget="réponse serveur en erreur"
retourHttp="$(grep -i 'HTTP/' "$file_test_wget" | tr -d '\n' | xargs)"
if [ "$2" == "test" ]; then
rm "$file_test_wget" 2>/dev/null
# spécial maintenance frama.link
[ "$(grep -c '303' <<< $retourHttp)" -ne 0 ] && return 1 # 303 See Other
[ "$retourWget" == "0" ] && return 0 || return 1
fi
location="$(grep -i 'location' $file_test_wget | xargs)"
if [ "$2" == "print" ]; then
if [ "$retourWget" ]; then
echo "erreur wget: $RED$retourWget"
echo -e "$BLUE $1$STD\t$RED $retourHttp"
else
echo -e "$BLUE $1$STD\t$GREEN $retourHttp"
fi
fi
if [ "$2" == "print" ] || [ "$2" == "loc" ]; then
[ "$location" ] && echo "$YELLOW $location" || echo "$YELLOW no location"
echo "$STD"
return 0
fi
if [ "$retourWget" ]; then
rm "$file_test_wget"
# f__error "wget, $retourWget" "$1" "$YELLOW$retourHttp" "$location"
echo -e "$RED errur wget, $retourWget \n $1 \n $YELLOW$retourHttp \n $location"
fi
if [ "$(grep -c '200' <<< $retourHttp)" -ne 0 ]; then
echo -e "$GREEN\ntout est ok, réessayer\n$STD"
fi
rm "$file_test_wget" 2>/dev/null
exit 0
}
f__start(){ # 08/10/2017
YELLOW=$(tput setaf 3) # question
GREEN=$(tput setaf 2) # ok
BLUE=$(tput setaf 4) # info
RED=$(tput setaf 1) # alerte
STD=$(tput sgr0) # retour normal
BOLD=$(tput bold)
[ "$( type -p figlet 2>/dev/null )" ] && figlet $( basename $0 | tr '`' "'")
echo "$GREEN$( basename $0 )$BLUE $version$STD du $BLUEE$date$STD"
echo
}
f_test_auDemarrage(){
# on vérifie certains paramètres/variables
[ "${prefix_url -1}" == "/" ] && prefix_url=${prefix_url%/} # si présent, on enlève slash final
[ "${repToSave -1}" == "/" ] && repToSave=${repToSave%/}
[ "${repTemporaire -1}" == "/" ] && repTemporaire=${repTemporaire%/}
if [ ! -d "$repToSave" ]; then
echo -e "$REDCritique:$STD erreur, répertoire cible inexistant: $repToSave"
exit 1
elif [ ! -d "$repTemporaire" ]; then
echo -e "$REDCritique:$STD erreur, répertoire temporaire inexistant: $repTemporaire"
exit 1
elif [ "$EUID" == "0" ]; then
echo "attention aux droit si root.. ;)"
elif [ -z $( which wget ) ]; then
echo "$REDCritique:$STD wget requis: apt install wget"
fi
}
### coeur du script
f__start
f_test_auDemarrage
# coeur du chargement, plugins chargés à partir du tableau complété en tête du script (toLoad)
for plugin in "${toLoad[@]}"; do
echo "Chargement$BOLD $plugin $STD..." # affichage plugin en cours
urlPlugin="$prefix_url/$plugin/$sufix_url" # formation url complète
# pour débugguer, décommenter
# echo "$urlPlugin"
# echo "\$repTemporaire/\$plugin "$repTemporaire/$plugin""
# echo "\$repToSave/\$plugin $repToSave/$plugin"
# on télécharge
wget -q --tries=2 --timeout=15 -O "$repTemporaire/$plugin" "$urlPlugin"
if [ "$?" != "0" ]; then # ERREUR wget
f__wget_test "$urlPlugin"
else # OK, on traitements finaux
mkdir -p "$repToSave/$plugin" # création répertoire du plugin, sans erreur si existant
cp "$repTemporaire/$plugin" "$repToSave/$plugin/$plugin" # copie à l'emplacement final
# -o overwrite sans prompt
unzip -o "$repToSave/$plugin/$plugin" #-d "$repToSave/$plugin/"
fi
# ménage
rm "$repTemporaire/$plugin" 2>/dev/null # si encore présent, on efface le fichier temporaire
rm "$repToSave/$plugin/$plugin" 2>/dev/null # suppression zip après décompression (si vraiment besoin)
done
exit 0
script:
wget -nv -O pluginsToLoad.sh https://framagit.org/kyodev/kyopages/raw/master/scripts/tests/pluginsToLoad.sh
chmod +x pluginsToLoad.sh && ./pluginsToLoad.sh

View File

@ -1,139 +0,0 @@
#!/bin/bash
# version=1.0
# 28.11.2017
exec 6>&1 # Lie le descripteur de fichier #6 avec stdout, sauvegarde stdout
exec > tempo # stdout dans tempo
echo " ### Advanced Linux Sound Architecture ( ALSA )"
echo
## CPU
echo "CPU ( le premier ) ------------------------------------------------------"
gawk -F': ' '
/model name/ {
gsub(/ /," ")
print " "$2
exit
}
' /proc/cpuinfo
echo
## Mémoire
echo "Mémoire -----------------------------------------------------------------"
gawk '
/MemTotal|SwapTotal/ {
gsub(/kB/,"ko")
gsub(/:/,"")
printf " %-9s %\047d %s\n",$1,$2,$3
}
' /proc/meminfo
echo
## Matériel
echo "Matériel ( vidéo, réseau, son ) -----------------------------------------"
gawk '
BEGIN { IGNORECASE=1 }
/VGA .* controller|Display controller|3D controller|Graphic|multimedia/ {
print " "$0
}
/Ethernet controller|Network controller/ {
print " "$0
}
/Audio device|Audio controller|Multimedia audio controller/ &&
$0 !~ /modem|usb|webcam/ {
print " "$0
}
' <<< $( lspci )
echo
## version ALSA
echo "Version kernel et driver ALSA -------------------------------------------"
gawk '
NR == 1 { print " kernel: " $0}
NR != 1 {
sub(/Advanced Linux Sound Architecture Driver /,"Driver ALSA : ")
sub(/Version /,"")
sub(/.$/,"")
print " "$0
}
' <<< "$( uname -r )"$'\n'"$( cat /proc/asound/version )"
echo
## ALSA devices
echo "ALSA devices ------------------------------------------------------------"
if [ ! -d /dev/snd ] ; then
echo "/dev/snd/ : erreur, répertoire inexistant"
critic="snd"
else
gawk '
!/^d|total/ { print " /dev/snd/"$NF}
' <<< $( ls -l /dev/snd )
fi
echo
## asound
echo "/proc/asound ------------------------------------------------------------"
if [ ! -d /proc/asound ] ; then
echo "/proc/asound : erreur, répertoire inexistant"
echo "ALSA n'est pas installé correctement"
critic="asound"
else
gawk ' BEGIN { print " > /proc/asound/cards" }
{ print " "$0 }' /proc/asound/cards
gawk ' BEGIN { print "\n > /proc/asound/devices" }
{ print " "$0 }' /proc/asound/devices
gawk ' BEGIN { print "\n > /proc/asound/hwdep" }
{ print " "$0 }' /proc/asound/hwdep
gawk ' BEGIN { print "\n > /proc/asound/pcm" }
{ print " "$0 }' /proc/asound/pcm
gawk ' BEGIN { print "\n > /proc/asound/seq/clients" }
{ print " "$0 }' /proc/asound/seq/clients
fi
echo
## modules
echo "Modules --------------------------------------------"
if [ "$critic" ]; then
echo "erreur critique"
exit 1
fi
lsmod | grep -Eq '(^usb-midi|^audio)'
if [ $? -eq 0 ]; then
echo "Warning: OSS modules 'audio' et/ou 'usb-midi' sont chargés"
echo "cela peut interférer avec le modules ALSA snd-usb-audio."
echo "créer un fichier .conf dans /etc/modprobe.d/ pour blacklister ces DEUX modules"
if [ ! -f /etc/hotplug/blacklist ]; then
echo "You should create a file '/etc/hotplug/blacklist' with"
echo "both names on it to avoid hotplug loading them."
else
grep -Eq '(^usb-midi|^audio)' /etc/hotplug/blacklist
if [ $? -eq 1 ]; then
echo "You should add both modules to '/etc/hotplug/blacklist'"
echo "to avoid hotplug loading them."
fi
fi
fi
gawk ' BEGIN { print "\n > /proc/asound/modules" }
{ print " "$2"\n" }' /proc/asound/modules
modules=$( gawk ' { print " "$2 }' /proc/asound/modules )
modules=${modules// /}
echo -"$modules"-
# /^snd/
gawk '
#-v modules="$modules"
# /modules/ { printf " %-25s %s %2s %s\n",$1, $2, $3, $4 }
/'$( echo $modules )'/ { printf " %-25s %s %2s %s\n",$1, $2, $3, $4 }
' <<<$( lsmod )
echo
exec 1>&6 6>&- # Restaure stdout et ferme le descripteur de fichier #6
pager tempo
rm tempo
exit 0

View File

@ -1,309 +0,0 @@
#!/bin/bash
version=1.0.0
date=18/09/2017
script="$(basename $0)"
urlNotice="https://kyodev.frama.io/kyopages/scripts/getInfo/"
# assigne $affichage_text
f_g_affichage(){ # 19/09/2017
f_g_color
affichage_text=" _ ___ __
__ _ ___| |_|_ _|_ __ / _| ___
/ _' |/ _ \ __|| || '_ \| |_ / _ \
| (_| | __/ |_ | || | | | _| (_) |
\__, |\___|\__|___|_| |_|_| \___/
|___/
"
case $context_appli in
terminal)
echo -e "$affichage_text\n$YELLOW version $version - $date$COLOR\n"
;;
zenity)
affichage_text="$(sed 's/\\/\\\\/g' <<< $affichage_text)"
affichage_text+="\n$YELLOW version $version - $date</span>"
# zenity --info --icon-name preferences-system --no-wrap --timeout 3 --title "$script $version" \
# --text="<span font-family=\"monospace\">$(f_g_lint zen "$affichage_text")</span>\n$g_espaces$g_espaces"
;;
esac
}
#system-help applications-internet go-up go-top
#https://developer.gnome.org/icon-naming-spec/#names
f_g_color(){ # 18/09/2017
case $context_appli in
terminal)
RED="$(printf "\033[0;31m")" # alerte
GREEN="$(printf "\033[0;32m")" # ok
YELLOW="$(printf "\033[0;33m")" # question
BLUE="$(printf "\033[0;34m")" # info
# COLOR="$(printf "\033[0m")" # standard par défaut, black
COLOR="$(tput sgr0)" # standard par défaut, black
MAGENTA="$(printf "\033[0;35m")"
CYAN="$(printf "\033[0;36m")"
WHITE="$(printf "\033[0;37m")"
comment(){
tput setab 7 # background white ??!! gris clair! tput setb 7 (HP)
tput setaf 0 # foreground black
clear
tput setab 7 # background white ??!! gris clair! tput setb 7 (HP)
tput setaf 0 # foreground black
clear
tput sgr0 & clear # effacement attribut -> réglages par défaut
\033[code_police;couleur_texte;couleur_fondm
COULEUR....TEXTE....ARRIÈRE-PLAN
Noir 30 40
Rouge 31 41
Vert 32 42
Jaune 33 43
Bleu 34 44
Magenta 35 45
Cyan 36 46
Blanc 37 47
Tektronix-type terminal voir tput setaf ou setab
BLACK 0 0, 0, 0
RED 1 max,0,0
GREEN 2 0,max,0
YELLOW 3 max,max,0
BLUE 4 0,0,max
MAGENTA 5 max,0,max
CYAN 6 0,max,max
WHITE 7 max,max,max
}
;;
zenity)
# red green blue yellow magenta white black gray lightblue lightgray violet purple teal navy MediumBlue Brown Chocolate
# http://htmlcolorcodes.com/fr/noms-de-couleur/
YELLOW="<span color=\"Chocolate\">" #D2691E
GREEN="<span color=\"green\">" #008000
BLUE="<span color=\"MediumBlue\">" # blue: 0000FF
RED="<span color=\"red\">" #FF0000
COLOR="<span color=\"black\">" #000000
;;
esac
}
# assigne $context_appli, context_break
f_g_context(){ # 15/09/2017
g_espaces="$(printf " %.s" $(seq 40))" # nb d'espaces pour élargir la fenêtre
if [ -t 0 ]; then context_appli="terminal";
elif [ -x /usr/bin/zenity ]; then context_appli="zenity";
elif [ -x /usr/bin/kdialog ]; then context_appli="kdialog";
else exit 1; fi
}
# $1=oui|non réponse par défaut, $2=message de la question, return 0 pour oui, 1 pour non
f_g_dialog_oui_non () { # 18/09/2017
local reply
[[ "$1" =~ ^oui$|^non$ ]] || f_g_error "dialog_oui_non, erreur \$1 fonction"
case $context_appli in
terminal )
printf "$BLUE $2"
[ "$1" == "oui" ] && printf " [O/n] " || printf " [o/N] "
printf "$COLOR"
read -r reply
if [ -z "$reply" ]; then
[ "$1" == "oui" ] && reply="oui" || reply="non"
fi
if [[ ${reply,,} =~ ^ou?i?$ ]]; then return 0; else return 1; fi #${,,} lowercase
;;
zenity )
local yes no default_cancel
[ "$1" != "oui" ] && default_cancel="--default-cancel" # non par défaut
zenity --question "$default_cancel" --ok-label "Oui" --cancel-label "Non" --no-wrap \
--title "$script $version" --text="<span color=\"$YELLOW\"> $(f_g_lint zen "$2") </span>\n$g_espaces"
[ "$?" -eq 0 ] && return 0 || return 1
# if [ "$?" -eq 0 ]; then return 0
# elif [ "$?" -eq 1 ]; then return 1
# elif [ "$?" -eq -1 ]; then f_g_error "erreur inattendue"
# elif [ "$?" -eq 5 ]; then f_g_info "timeout"
# else return 1
# fi
;;
esac
}
# affichage $1 en rouge, $1++ optionnels en bleu, sortie script sur erreur, log $1 si $opType=upgrade
# pas de balisage dans $1 pour éviter pollution logs
# pour inclure un balisage couleur à lintérieur d'un paramètre: $COULEUR texte</span>
f_g_error() { # 23/09/2017
local text depart=2
text="$RED $script $version, erreur critique: $1"
case $context_appli in
terminal)
text+="$COLOR\n"
for (( i="$depart" ; i<="$#" ; i++ )); do text+="$BLUE ${!i}$COLOR\n"; done
unset i
echo -e "$(f_g_lint trm "$text")"
if [ "$opType" == "upgrade" ]; then f__log "$script $version: $1"; fi
exit 1
;;
zenity)
text+="</span>\n"
for (( i="$depart" ; i<="$#" ; i++ )); do text+="$BLUE ${!i}</span>\n"; done
unset i
zenity --error --no-wrap --title "$script $version, erreur critique" \
--text="$(f_g_lint zen "$text")\n$g_espaces"
;;
esac
}
# affichage des paramètres en bleu, si $1=raw pas de ligne vide à la fin, si $1=log $2 uniquement logué
# pour inclure un balisage couleur à lintérieur d'un paramètre: $COULEUR texte</span>
f_g_info() { # 23/09/2017
local text depart=1
if [ "$1" == "raw" ] || [ "$1" == "log" ]; then depart=2; fi
[ "$1" == "log" ] && f__log "$(sed -E 's/\\t//;s/\\n// ' <<< $2 | xargs )"
case $context_appli in
terminal)
for (( i="$depart" ; i<="$#" ; i++ )); do text+="$BLUE $(sed "s/<\/span>/$COLOR/" <<< ${!i})$COLOR\n"; done
[ "$1" == raw ] && printf "$(f_g_lint trm "$text")" || echo -e "$(f_g_lint trm "$text")"
unset i
;;
zenity)
for (( i="$depart" ; i<="$#" ; i++ )); do text+="$BLUE ${!i}</span>\n"; done
zenity --info --no-wrap --title "$script $version" --text="$(f_g_lint zen "$text")\n$g_espaces"
unset i
;;
esac
}
# $1=trm|zen|kdi $2=texte à nettoyer
f_g_lint(){ # 20/09/2017
case "$1" in
trm)
sed "s/<\/span>/$COLOR/g" <<< "$2"
;;
zen)
sed 's/&/&amp;/g' <<< "$2"
;;
esac
}
fg_help(){ # 19/09/2017
local text
text+=" ./getInfo : exécution normale, rapport markdown configuration & diagnostic
getInfo : exécution normale si script installé dans le système
options:
-d, --dmesg : dmesg erreur, warning, critique.$RED root requis</span>$BLUE, rapport markdown seul de dmesg
-h, --help : affichage aide
-l, --list : afficher le rapport markdown existant
-p, --paste : exporte le rapport markdown existant, durée du paste standard 7 jours
--ip : affiche ip(s) publique(s) (ipv4 / ipv6), infos confidentielles, sans rapport markdown
-m, --mac : affiche les adresses Mac, infos confidentielles, sans rapport markdown
-s, --ssid : affiche configurations ssid, infos confidentielles
pas de rapport markdown, root et NetworkManager requis
debug : le résultat json du paste sera affiché après export
-tn : durée du paste de n jour(s)
-i, --install : installation du script dans le système, droits root requis
-r, --remove : suppression du script dans le système, droits root requis
-u, --upgrade : upgrade script si maj possible
-v, --version : version du script, en ligne et en cours d'exécution</span>
"
text+="\n plus d'infos: $GREEN$urlNotice</span>"
case $context_appli in
terminal)
echo -e "$BLUE$(f_g_lint trm "$text")$COLOR\n"
;;
zenity)
local text2="$(f_g_lint zen "$affichage_text")\n"
text2+="$GREEN<b> ------------------------------------ OPTIONS EN CONSOLE TERMINAL -----</b></span>\n"
text2+="$(f_g_lint zen "$text")\n"
zenity --info --icon-name=preferences-system --no-wrap --title "$script $version" \
--text="<span font-family=\"monospace\">$BLUE$text2</span></span>\n$g_espaces$g_espaces"
;;
esac
}
##################################""
f_g_context
f_g_affichage
# création lanceur.desktop
scrpt_lanceur_desktop(){ # 21/09/2017
# local fileDesktop="/usr/share/applications/$script.desktop"
local fileDesktop="$HOME/.local/share/applications/"$script".desktop"
rm "$fileDesktop"
# echo "#!/usr/bin/env xdg-open" > "$fileDesktop"
echo "[Desktop Entry]" >> "$fileDesktop"
echo "Name=$script" >> "$fileDesktop"
echo "Name[fr]=$script" >> "$fileDesktop"
echo "X-GNOME-FullName=$script" >> "$fileDesktop"
echo "X-GNOME-FullName[fr]=$script" >> "$fileDesktop"
echo "StartupWMClass=$script" >> "$fileDesktop"
# echo "Exec=/usr/bin/$script" >> "$fileDesktop"
# echo Exec=$HOME/kyopages/scripts/"$script" >> "$fileDesktop"
echo "Exec=$HOME/.local/bin/$script" >> "$fileDesktop"
echo "Icon=preferences-system" >> "$fileDesktop"
echo "Comment=System infos and pastebin with markdown format" >> "$fileDesktop"
echo "Comment[fr]=Infos système et pastebin au format markdown" >> "$fileDesktop"
echo "GenericName=System infos" >> "$fileDesktop"
echo "GenericName[fr]=Système infos" >> "$fileDesktop"
echo "Terminal=false" >> "$fileDesktop"
echo "X-MultipleArgs=false" >> "$fileDesktop"
echo "Type=Application" >> "$fileDesktop"
echo "Categories=System;" >> "$fileDesktop"
echo "StartupNotify=true" >> "$fileDesktop"
}
#fileDesktop=$HOME/.local/share/applications/"$script".desktop # +x pas obligatoire pour DE
#chmod -x $fileDesktop
#cp ~/kyopages/scripts/"$script" $HOME/.local/bin/"$script"
#chmod +x $HOME/.local/bin/"$script"
scrpt_lanceur_desktop
#fg_help
exit
f_g_info raw "Certaines$GREEN boîtes de dialogue</span> Zenity permettent l'utilisation de touches d'accès." \
"Pour indiquer la lettre à utiliser comme$RED touche d'accès</span>, placez un souligné _" \
"avant cette lettre dans le texte de la boîte de dialogue."
f_g_info "FIN"
f_g_error "Certaines$RED boîtes de dialogue</span> de Zenity permettent l'utilisation de touches d'accès." \
"Pour indiquer la lettre à utiliser comme$GREEN touche d'accès</span>, placez un souligné _" \
"avant cette lettre dans le texte de la boîte de dialogue."
if f_g_dialog_oui_non "non" "continuer?"; then
f_g_info "raw" "réponse oui,$GREEN script</span>"
else
f_g_info "raw" "réponse non,$GREEN sortie</span>"
exit
fi;
echo "Script:$script"
systemd-path | less
ps -p1 | grep systemd && userBinaires=$(systemd-path user-binaries) || userBinaires=$($HOME/.local/bin)
cat /etc/profile.d/debian-mate-default-settings_gtk-accessibility.sh
echo "# Set path to MYSTUFF folder if it exists." >> /etc/profile.d/mystuff.sh
echo "# Added /usr/local/mystuff folder for myprogram." >> /etc/profile.d/mystuff.sh
echo "[ -d /usr/local/mystuff ] && PATH=$PATH:/usr/local/mystuff" >> /etc/profile.d/mystuff.sh
man file-hierarchy
~/.local/bin
Executables that shall appear in the user s $PATH search path. It is recommended not to place executables in this directory that are not useful
for invocation from a shell; these should be placed in a subdirectory of ~/.local/lib instead. Care should be taken when placing
architecture-dependent binaries in this place, which might be problematic if the home directory is shared between multiple hosts with different
architectures.
initial(){
if [ "$1" == "oui" ]; then
if [[ ! ${reply,,} =~ ^no?n?$ ]]; then return 0; else return 1; fi #*{,,} lowercase
elif [ "$1" == "non" ]; then
if [[ ! ${reply,,} =~ ^ou?i?$ ]]; then return 0; else return 1; fi
fi
}

View File

@ -1,46 +0,0 @@
#!/bin/bash
# $1=cmd si $2: nb de tentatives pour s'identifier, sinon 1 tentative par défaut
f__sudo(){ # 11/10/2017
local nb=1 sudo isudo
# sudo --shell bash équivalent su ?
if sudo -v &>/dev/null && [ $EUID -ne 0 ] ; then
sudo="sudo su --shell $(which bash) --preserve-environment -c "
else
sudo="su --shell $(which bash) --preserve-environment -c "
fi
[ "$2" ] && nb="$2"
for (( isudo=1 ; isudo<="$nb" ; isudo++ )); do
$sudo " $1"
[ "$?" == 0 ] && break
[ "$isudo" == "$nb" ] && return 1
done
}
file="/tmp/$$/random/dmesgx"
f__sudo "dmesg -l err; \
dmesg -l crit; \
echo $file"
echo $?
echo $$
exit 0
tester:
sudo -i eq su -
-> /root
et sudo -sudo -s eq su
-> ./ pas de changement de répertoire courant
#f__sudo "echo je suis $(whoami)"3
if ! dmesg --nopager &> /dev/null; then
echo "la commande \`dmesg\` n'est pas disponible (droits root requis?)"
else
echo "all is ok"
fi

View File

@ -1,101 +0,0 @@
#!/bin/bash
version=24/09/2017
# user ayant initié la session graphique, assigne $user_
# return 1 sur échec identification user, return 2 sur absence home/
# gestion variable environnement user avec: USER_INSTALL=user script
f__user(){ # 24/09/2017
if [ "$USER_INSTALL" ]; then # user_ via variable environnement, moyen d'injecter root
user_="$USER_INSTALL";
sortie="variable environnement USER_INSTALL"
return 0
fi
local user_id test root_login
root_login="$(grep ':0:' /etc/passwd | cut -d':' -f1)" || root_login="root"
if [ "$SUDO_UID" ]; then
user_id="$SUDO_UID";
elif grep -qEo '[0-9]+' <<< "$XDG_RUNTIME_DIR" ; then
user_id="$(grep -Eo '[0-9]+' <<< $XDG_RUNTIME_DIR | cut -d'/' -f4)"
elif grep -qEo '[0-9]+' <<< "$XAUTHORITY" ; then
user_id="$(grep -Eo '[0-9]+' <<< $XAUTHORITY | cut -d'/' -f4)"
fi
[ "$user_id" ] && user_="$(grep $user_id /etc/passwd | cut -d ":" -f 1 )"
if [ "$user_" ] && [ "$user_" != "$root_login" ]; then
sortie="sortie user_id"
return 0
else
if [ "$SUDO_USER" ] && [ "$SUDO_USER" != "$root_login" ]; then
user_="$SUDO_USER";
elif grep -qv 'root' <<< "$(who)"; then
user_="$(grep -v 'root' <<< $(who) | head -n1 | cut -d ' ' -f1)";
elif grep -q 'hourly.*get[A-Z].*\.anacrontab.*\.config/anacron/spool' /etc/crontab; then
user_="$(grep 'hourly.*get[A-Z].*\.anacrontab.*\.config/anacron/spool' /etc/crontab | head -n1 | cut -d' ' -f2)";
fi
fi
sortie="sortie user final"
if [ -z "$user_" ]; then return 1; fi
if [ ! -d "/home/$user_" ]; then return 2; fi
return 0
}
f__type(){
if [ "$SSH_TTY" ]; then
type="ssh"
elif [ "$SUDO_UID" ]; then
type="sudo"
elif [ "$XDG_CURRENT_DESKTOP" ]; then
type="${XDG_CURRENT_DESKTOP,,}"
fi
# type+="$(tty -s && echo 'terminal' || echo $(LC_ALL=C tty))"
if [[ "$TERM" =~ linux ]]; then #debian 9 recovery ou nomodeset TERM=linux
echo "$TERM"
fi
}
echo -e "\ndétection user ayant acquit les droits root\n"
[ $EUID -eq 0 ] || echo -e "merci tester aussi le script en ROOT\n"
f__user && retourFUser=0 || retourFUser="$?"
[ "$retourFUser" -gt 0 ] && echo "houla :("
[ "$retourFUser" -eq 1 ] && echo -e "user indéterminé, pour contourner, lancer le script avec:\n USER_INSTALL=user $0 \n"
[ "$retourFUser" -eq 2 ] && echo -e "user détecté, mais pas de home: /home/$user_"
echo -e "\tuser détecté: $user_"
echo -e "\tsortie: $sortie"
echo -e "\tEUID: $EUID"
f__type
echo -e "\ttype: $type\n"
f__user_debug(){ # v20/08/2017-4
local user_id
debug+="user_id01:$SUDO_UID (SUDO_UID) \n";
debug+="user_id02:$(grep -Eo '[0-9]+' <<< $XDG_RUNTIME_DIR | cut -d'/' -f4) (XDG_RUNTIME_DIR) \n"
debug+="user_id03:$(grep -Eo '[0-9]+' <<< $XAUTHORITY | cut -d'/' -f4) (XAUTHORITY) \n\n"
if [ "$SUDO_UID" ]; then
user_id="$SUDO_UID"
elif [ "$(grep -Eo '[0-9]+' <<< $XDG_RUNTIME_DIR | cut -d'/' -f4)" ];then
user_id="$(grep -Eo '[0-9]+' <<< $XDG_RUNTIME_DIR | cut -d'/' -f4)"
elif [ "$(grep -Eo '[0-9]+' <<< $XAUTHORITY | cut -d'/' -f4)" ];then
user_id="$(grep -Eo '[0-9]+' <<< $XAUTHORITY | cut -d'/' -f4) (XAUTHORITY)"
fi
debug+="user00:$USER_INSTALL (USER_INSTALL) \n";
debug+="user01:$(grep $user_id /etc/passwd | cut -d ":" -f 1 ) (user_id) \n"
debug+="user02:$SUDO_USER (SUDO_USER) \n"
debug+="user03:$(grep -v 'root' <<< $(who) | head -n1 | cut -d ' ' -f1) (who) \n"
debug+="user04:$(grep 'hourly.*get[A-Z].*\.anacrontab.*\.config/anacron/spool' /etc/crontab | head -n1 | cut -d' ' -f2) (anacrontab) \n"
}
f__user_debug
echo -e "\tdebug:"
echo -e "$debug"
exit 0
# test crontab
#*/5 * * * * kyodev /home/<user>/test_user > /home/<user>/cronTestuserUser
#*/5 * * * * root /home/<user>/test_user > /home/<user>/cronTestuserUser