Suspending USB devices from userland

classic Classic list List threaded Threaded
3 messages Options
lm
Reply | Threaded
Open this post in threaded view
|

Suspending USB devices from userland

lm
Hello there,

I'm trying to reduce power consumption on my OpenBSD laptop,
and I can't find the way to suspend some USB devices I never
use (like the webcam and the DVD drive).

Does anybody know a way to do this from userland? If not,
is it possible to do it with some coding?

thanks!
luis

I attach dmesg:

OpenBSD 5.6 (GENERIC) #310: Fri Aug  8 00:14:24 MDT 2014
    [hidden email]:/usr/src/sys/arch/amd64/compile/GENERIC
RTC BIOS diagnostic error 80<clock_battery>
real mem = 8469327872 (8076MB)
avail mem = 8235134976 (7853MB)
mpath0 at root
scsibus0 at mpath0: 256 targets
mainbus0 at root
bios0 at mainbus0: SMBIOS rev. 2.7 @ 0xe6fd0 (61 entries)
bios0: vendor LENOVO version "78CN24WW(V2.02)" date 09/23/2013
bios0: LENOVO 20236
acpi0 at bios0: rev 2
acpi0: sleep states S0 S3 S4 S5
acpi0: tables DSDT FACP SLIC UEFI ASF! HPET APIC MCFG SSDT BOOT ASPT DBGP FPDT MSDM SSDT SSDT
acpi0: wakeup devices P0P1(S0) EHC1(S3) EHC2(S3) XHC_(S3) HDEF(S0) PXSX(S3) PXSX(S3) PXSX(S3) PXSX(S3) PXSX(S3) RP05(S0) PXSX(S3) RP06(S0) PXSX(S3) RP07(S0) PXSX(S3) [...]
acpitimer0 at acpi0: 3579545 Hz, 24 bits
acpihpet0 at acpi0: 14318179 Hz
acpimadt0 at acpi0 addr 0xfee00000: PC-AT compat
cpu0 at mainbus0: apid 0 (boot processor)
cpu0: Intel(R) Core(TM) i7-3612QM CPU @ 2.10GHz, 2095.53 MHz
cpu0: FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CFLUSH,DS,ACPI,MMX,FXSR,SSE,SSE2,SS,HTT,TM,PBE,SSE3,PCLMUL,DTES64,MWAIT,DS-CPL,VMX,EST,TM2,SSSE3,CX16,xTPR,PDCM,PCID,SSE4.1,SSE4.2,x2APIC,POPCNT,DEADLINE,AES,XSAVE,AVX,F16C,RDRAND,NXE,LONG,LAHF,PERF,ITSC,FSGSBASE,SMEP,ERMS
cpu0: 256KB 64b/line 8-way L2 cache
cpu0: smt 0, core 0, package 0
mtrr: Pentium Pro MTRR support, 10 var ranges, 88 fixed ranges
cpu0: apic clock running at 99MHz
cpu at mainbus0: not configured
cpu at mainbus0: not configured
cpu at mainbus0: not configured
cpu at mainbus0: not configured
cpu at mainbus0: not configured
cpu at mainbus0: not configured
cpu at mainbus0: not configured
ioapic0 at mainbus0: apid 0 pa 0xfec00000, version 20, 24 pins
acpimcfg0 at acpi0 addr 0xf0000000, bus 0-63
acpiprt0 at acpi0: bus 0 (PCI0)
acpiprt1 at acpi0: bus -1 (P0P1)
acpiprt2 at acpi0: bus 1 (RP01)
acpiprt3 at acpi0: bus 2 (RP02)
acpiprt4 at acpi0: bus -1 (RP03)
acpiprt5 at acpi0: bus -1 (RP04)
acpiprt6 at acpi0: bus -1 (RP05)
acpiprt7 at acpi0: bus -1 (RP06)
acpiprt8 at acpi0: bus -1 (RP07)
acpiprt9 at acpi0: bus -1 (RP08)
acpiprt10 at acpi0: bus -1 (PEG0)
acpiprt11 at acpi0: bus -1 (PEG1)
acpiprt12 at acpi0: bus -1 (PEG2)
acpiprt13 at acpi0: bus -1 (PEG3)
acpiec0 at acpi0
acpicpu0 at acpi0: C3, C2, C1, PSS
acpitz0 at acpi0: critical temperature is 127 degC
acpibtn0 at acpi0: PWRB
acpibat0 at acpi0: BAT1 model "PABAS0241231" serial 41167 type Li-Ion oem "LENOVO "
acpiac0 at acpi0: AC unit offline
acpibtn1 at acpi0: LID0
acpivideo0 at acpi0: VGA_
acpivideo1 at acpi0: VGA_
acpivideo2 at acpi0: GFX0
acpivout0 at acpivideo2: DD02
cpu0: Enhanced SpeedStep 2095 MHz: speeds: 2101, 2100, 2000, 1900, 1800, 1700, 1600, 1500, 1400, 1300, 1200 MHz
pci0 at mainbus0 bus 0
pchb0 at pci0 dev 0 function 0 "Intel Core 3G Host" rev 0x09
vga1 at pci0 dev 2 function 0 "Intel HD Graphics 4000" rev 0x09
intagp at vga1 not configured
inteldrm0 at vga1
drm0 at inteldrm0
drm: Memory usable by graphics device = 2048M
inteldrm0: 1366x768
wsdisplay0 at vga1 mux 1: console (std, vt100 emulation)
wsdisplay0: screen 1-5 added (std, vt100 emulation)
"Intel 7 Series xHCI" rev 0x04 at pci0 dev 20 function 0 not configured
"Intel 7 Series MEI" rev 0x04 at pci0 dev 22 function 0 not configured
ehci0 at pci0 dev 26 function 0 "Intel 7 Series USB" rev 0x04: apic 0 int 16
ehci0: timed out waiting for BIOS
usb0 at ehci0: USB revision 2.0
uhub0 at usb0 "Intel EHCI root hub" rev 2.00/1.00 addr 1
azalia0 at pci0 dev 27 function 0 "Intel 7 Series HD Audio" rev 0x04: msi
azalia0: codecs: Conexant/0x5115, Intel/0x2806, using Conexant/0x5115
audio0 at azalia0
ppb0 at pci0 dev 28 function 0 "Intel 7 Series PCIE" rev 0xc4: msi
pci1 at ppb0 bus 1
"Attansic Technology AR8172" rev 0x10 at pci1 dev 0 function 0 not configured
ppb1 at pci0 dev 28 function 1 "Intel 7 Series PCIE" rev 0xc4: msi
pci2 at ppb1 bus 2
iwn0 at pci2 dev 0 function 0 "Intel Centrino Wireless-N 135" rev 0xc4: msi, MIMO 1T1R, BGN, address 0c:d2:92:85:67:c7
ehci1 at pci0 dev 29 function 0 "Intel 7 Series USB" rev 0x04: apic 0 int 23
ehci1: timed out waiting for BIOS
usb1 at ehci1: USB revision 2.0
uhub1 at usb1 "Intel EHCI root hub" rev 2.00/1.00 addr 1
pcib0 at pci0 dev 31 function 0 "Intel HM76 LPC" rev 0x04
ahci0 at pci0 dev 31 function 2 "Intel 7 Series AHCI" rev 0x04: msi, AHCI 1.3
scsibus1 at ahci0: 32 targets
sd0 at scsibus1 targ 0 lun 0: <ATA, ST1000LM024 HN-M, 2AR2> SCSI3 0/direct fixed naa.50004cf20b4c1c01
sd0: 953869MB, 512 bytes/sector, 1953525168 sectors
cd0 at scsibus1 targ 2 lun 0: <MATSHITA, DVD-RAM UJ8E1, 8.71> ATAPI 5/cdrom removable
ichiic0 at pci0 dev 31 function 3 "Intel 7 Series SMBus" rev 0x04: apic 0 int 19
iic0 at ichiic0
spdmem0 at iic0 addr 0x50: 4GB DDR3 SDRAM PC3-12800 SO-DIMM
spdmem1 at iic0 addr 0x52: 4GB DDR3 SDRAM PC3-12800 SO-DIMM
isa0 at pcib0
isadma0 at isa0
pckbc0 at isa0 port 0x60/5
pckbd0 at pckbc0 (kbd slot)
pckbc0: using irq 1 for kbd slot
wskbd0 at pckbd0: console keyboard, using wsdisplay0
pms0 at pckbc0 (aux slot)
pckbc0: using irq 12 for aux slot
wsmouse0 at pms0 mux 0
pms0: Elantech Touchpad, version 3, firmware 0x450f03
pcppi0 at isa0 port 0x61
spkr0 at pcppi0
uhub2 at uhub0 port 1 "Intel Rate Matching Hub" rev 2.00/0.00 addr 2
ugen0 at uhub2 port 3 "Intel product 0x07da" rev 2.00/78.69 addr 3
ugen1 at uhub2 port 4 "Generic USB2.0-CRW" rev 2.00/39.60 addr 4
uhub3 at uhub1 port 1 "Intel Rate Matching Hub" rev 2.00/0.00 addr 2
umass0 at uhub3 port 2 configuration 1 interface 0 "JMicron USB to ATA/ATAPI Bridge" rev 2.00/1.00 addr 3
umass0: using SCSI over Bulk-Only
scsibus2 at umass0: 2 targets, initiator 0
sd1 at scsibus2 targ 1 lun 0: <FUJITSU, MHZ2160BH G2, > SCSI2 0/direct fixed serial.152d23296168B3EEFFFF
sd1: 152627MB, 512 bytes/sector, 312581808 sectors
uvideo0 at uhub3 port 4 configuration 1 interface 0 "CF0DA35PY Lenovo EasyCamera" rev 2.00/0.09 addr 4
video0 at uvideo0
vscsi0 at root
scsibus3 at vscsi0: 256 targets
softraid0 at root
scsibus4 at softraid0: 256 targets
root on sd1a (19e2f94029a503f8.a) swap on sd1b dump on sd1b

Reply | Threaded
Open this post in threaded view
|

Re: Suspending USB devices from userland

David Coppa
On Thu, Nov 6, 2014 at 2:38 PM, lm <[hidden email]> wrote:
> Hello there,
>
> I'm trying to reduce power consumption on my OpenBSD laptop,
> and I can't find the way to suspend some USB devices I never
> use (like the webcam and the DVD drive).
>
> Does anybody know a way to do this from userland? If not,
> is it possible to do it with some coding?

I don't know.

But I go into the bios:

Security -> I/O Port Access

And disable the unwanted stuff there.

Ciao,
David

Reply | Threaded
Open this post in threaded view
|

Re: Suspending USB devices from userland

Martin Pieuchot-2
In reply to this post by lm
On 06/11/14(Thu) 14:38, lm wrote:
> Hello there,
>
> I'm trying to reduce power consumption on my OpenBSD laptop,
> and I can't find the way to suspend some USB devices I never
> use (like the webcam and the DVD drive).
>
> Does anybody know a way to do this from userland? If not,
> is it possible to do it with some coding?

There's currently no support for reducing power consumption of USB
devices on OpenBSD.  But if you want to do some coding, I'll suggest
you to start looking at a way to suspend USB ports when there is no
device attached, then you'll to find a way to check if a device is
idle in order to adapt this mechanism to unused devices.

This will require some change to uhub(4) and the various *hci(4).  You
can read chapter 4.3.1 of EHCI specification as a starting point :)