diff --git a/scripts/docs/cpu_flags b/scripts/docs/cpu_flags deleted file mode 100644 index 0ef391a..0000000 --- a/scripts/docs/cpu_flags +++ /dev/null @@ -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 diff --git a/scripts/docs/cpu_flags_intel b/scripts/docs/cpu_flags_intel deleted file mode 100644 index 24a8b3a..0000000 --- a/scripts/docs/cpu_flags_intel +++ /dev/null @@ -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 processor’s 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]. diff --git a/scripts/docs/cpu_uarch b/scripts/docs/cpu_uarch deleted file mode 100644 index 9179655..0000000 --- a/scripts/docs/cpu_uarch +++ /dev/null @@ -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 Developer’s 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/ diff --git a/scripts/docs/cpufeatures.h b/scripts/docs/cpufeatures.h deleted file mode 100644 index 793690f..0000000 --- a/scripts/docs/cpufeatures.h +++ /dev/null @@ -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 -#endif - -#ifndef _ASM_X86_DISABLED_FEATURES_H -#include -#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 */ diff --git a/scripts/tests/alsa-info_alsa-info.sh b/scripts/tests/alsa-info_alsa-info.sh deleted file mode 100755 index cda4125..0000000 --- a/scripts/tests/alsa-info_alsa-info.sh +++ /dev/null @@ -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" = "" ]; 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" = "" ]; 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 diff --git a/scripts/tests/getInfo_rapport.md.test b/scripts/tests/getInfo_rapport.md.test index 944be94..3caa842 100644 --- a/scripts/tests/getInfo_rapport.md.test +++ b/scripts/tests/getInfo_rapport.md.test @@ -1,4 +1,4 @@ -> getInfo sur *1101HA* +> getInfo sur *HOSTNAME* # titre 1 diff --git a/scripts/tests/pluginsToLoad.sh b/scripts/tests/pluginsToLoad.sh deleted file mode 100755 index 66ae21c..0000000 --- a/scripts/tests/pluginsToLoad.sh +++ /dev/null @@ -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=/&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=/&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 diff --git a/scripts/tests/test_alsa b/scripts/tests/test_alsa deleted file mode 100755 index eed5d25..0000000 --- a/scripts/tests/test_alsa +++ /dev/null @@ -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 diff --git a/scripts/tests/test_guiDialog b/scripts/tests/test_guiDialog deleted file mode 100755 index 8c1b93c..0000000 --- a/scripts/tests/test_guiDialog +++ /dev/null @@ -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" -# zenity --info --icon-name preferences-system --no-wrap --timeout 3 --title "$script $version" \ -# --text="$(f_g_lint zen "$affichage_text")\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="" #D2691E - GREEN="" #008000 - BLUE="" # blue: 0000FF - RED="" #FF0000 - COLOR="" #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=" $(f_g_lint zen "$2") \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 -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+="\n" - for (( i="$depart" ; i<="$#" ; i++ )); do text+="$BLUE ${!i}\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 -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}\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/&/&/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$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 -" - text+="\n plus d'infos: $GREEN$urlNotice" - 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 ------------------------------------ OPTIONS EN CONSOLE TERMINAL -----\n" - text2+="$(f_g_lint zen "$text")\n" - zenity --info --icon-name=preferences-system --no-wrap --title "$script $version" \ - --text="$BLUE$text2\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 Zenity permettent l'utilisation de touches d'accès." \ - "Pour indiquer la lettre à utiliser comme$RED touche d'accès, 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 de Zenity permettent l'utilisation de touches d'accès." \ - "Pour indiquer la lettre à utiliser comme$GREEN touche d'accès, 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" -else - f_g_info "raw" "réponse non,$GREEN sortie" - 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 -} diff --git a/scripts/tests/test_sudo b/scripts/tests/test_sudo deleted file mode 100755 index 8d14ac8..0000000 --- a/scripts/tests/test_sudo +++ /dev/null @@ -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 - diff --git a/scripts/tests/test_user b/scripts/tests/test_user deleted file mode 100755 index 52cb005..0000000 --- a/scripts/tests/test_user +++ /dev/null @@ -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//test_user > /home//cronTestuserUser -#*/5 * * * * root /home//test_user > /home//cronTestuserUser -