ãã®ãããªãããïŒã€ãŸããPCI7411ïŒã¯ãç§ã®NEC Versa S950ã«ããããŸãã ãã®ããŸãç¥ãããŠããªãã©ãããããã¯ãFreeBSDïŒäžè¬ã«æ©åšãšç¹ã«ã¹ãªãŒãã¢ãŒãïŒã®ãµããŒããåªããŠãããããThinkPadã·ãªãŒãºãã»ãŒç¬å çã«äœ¿çšããŸãããè³Œå ¥ããåã«Novosibirsk Technosityã§ç¹å¥ã«ãã¹ãããŸããã é·ãéãUSBã®ãã€ãã¹ã«ã䜿çšããç¿æ £ãããçµã¿èŸŒã¿ã®ã«ãŒããªãŒããŒã¯äœ¿çšããŸããã§ããã ãããæè¿ãFreeBSDããŸã ãµããŒãããŠããªãããšãçºèŠããŸããã 5ã6幎åã«ãããã®ã³ã³ãããŒã©ãŒçšã®éåžžã®ãã©ã€ããŒããªãããšã§èª¬æã§ããå ŽåïŒèªåã§äœããããŠã³ããŒãããŠçµã¿ç«ãŠãå¿ èŠããããŸããïŒãFreeBSDã®
sdhci(4)
ãã©ã€ããŒã§ãµããŒããããŠããã
sdhci(4)
ãããšã確信ããŸãã
sdhci(4)
ãããã¯ããã¥ã¢ã«ããŒãžã«æèšãããŠããŸãïŒåŸã§ãœãŒã¹ãèªãããšã§ç¢ºèªãããŸãïŒã
ç§ã¯ãã®ãããã¯ã«ã€ããŠãã£ãããšã°ãŒã°ã«ãå§ããåçã¯äžå¹žã«ãªãå§ããŸããã ç§ã®ãããªã幞éãªäººããããããããããšãããããŸããã å€ãã®äººã
dmesg
ãš
pciconf -lv
ã¡ãŒãªã³ã°ãšãã©ãŒã©ã ã«æçš¿ãããã©ãã«ãŒã®ãã°ïŒããšãã°ãOpenBSD PR i386 / 5843ïŒãéå§ããŸãããã誰ã解決çãæäŸããŸããã§ããã ããã«ã
sdhci(4)
ãã©ã€ããŒã®äœè ã§ããAlexander Motin
sdhci(4)
ãå®éã«è³ªåã«çµæ¢ç¬Šã
sdhci(4)
ã2010幎ã®ãã©ãŒã©ã ã§ããããã®TIããã¥ã¡ã³ããæäŸããªãã£ããšæžããŠããŸããã€ãŸããã¡ãŒã«ãŒããããã誀ã£ãŠæ§æãã BIOSã¯æäŸãããŠããŸãããäœãããããšã¯å°é£ã§ãã 次ã«ãTheo de Raadtã¯i386 / 5843ã次ã®èšèã§éããŸããã ãã®ãã³ããŒã¯ããšããããsdhcã³ã³ãããŒã©ãŒãããã¯ã¢ãŠãããææžåãããŠããªãå°ããªãããã®åŸãã«é ããŠããŸãã ãã®æ å ±ãèŠã€ããã®ã«èŠåŽããŸãããã倱æããŸããã ãã®æ å ±ãä»ã®ãªãã¬ãŒãã£ã³ã°ã·ã¹ãã ããã³ããŒã®ããã¥ã¡ã³ãã§èŠã€ããããšãã§ããã°ãããããããŸããã
å¿ æ»ã«ãªã£ãŠãUbuntu LiveCDããèµ·åããŸããã ãããŠãLinuxã«ãŒããªãŒããŒãæ©èœããããšã«éåžžã«é©ããŸããã ã ãã...
ã²ã©ãã°ãŒã°ã«
2006幎ã«Alex DubovãTI FlashMediaãªãŒããŒçšã®Linuxãã©ã€ããŒãäœæããããšãå€æããŸããã ç§ã¯ãœãŒã¹ãããŠã³ããŒãããããããç 究ãå§ããŸããããã®åŸã
sdhci(4)
å®æã
sdhci(4)
ãããã©ã€ããŒå šäœãã¹ããŒãããããšããæã¿ãŸããã ãŸãããµããŒããããŠããPCIãã³ããŒ/ããã€ã¹IDã®ãªã¹ããèŠãŠããåœç€Ÿã®ããã©ã€ããŒãšæ¯èŒããŸããã ããã¯å°ããããšãå€æããŸããïŒ
$ cat linux/pci_ids.h #define PCI_VENDOR_ID_TI 0x104c #define PCI_DEVICE_ID_TI_XX21_XX11_FM 0x8033 #define PCI_DEVICE_ID_TI_XX12_FM 0x803b #define PCI_DEVICE_ID_TI_XX20_FM 0xac8f
çªå·0x8033ã¯ãã©ãããããã®
pciconf -lv
ã®åºåããæ¢ã«ããç¥ãããŠããŸãïŒããã= 0x8033 104cïŒïŒ
none3@pci0:6:7:3: class=0x018000 card=0x83191033 chip=0x8033104c rev=0x00 hdr=0x00 vendor = 'Texas Instruments (TI)' device = 'PCIxx11/21 Integrated FlashMedia Controller' class = mass storage
ããã¯ãFreeBSDã§ã¯åäœããŸããããLinuxã§ã¯åäœããã«ãŒããªãŒããŒã§ãã ãããŠãããã¯
sdhci.c
ïŒFreeBSDïŒã®ã³ãŒãã§ãïŒ
static const struct sdhci_device { uint32_t model; uint16_t subvendor; char *desc; u_int quirks; } sdhci_devices[] = { { 0x08221180, 0xffff, "RICOH R5C822 SD", SDHCI_QUIRK_FORCE_DMA }, { 0xe8221180, 0xffff, "RICOH SD", SDHCI_QUIRK_FORCE_DMA }, { 0xe8231180, 0xffff, "RICOH R5CE823 SD", SDHCI_QUIRK_LOWER_FREQUENCY }, { 0x8034104c, 0xffff, "TI XX21/XX11 SD", SDHCI_QUIRK_FORCE_DMA },
ããã€ã¹èå¥åTI XX21 / XX11 SDïŒ0x803 4 104cïŒã¯1æ¡ã®ç²ŸåºŠã§ç§ã®ãã®ïŒ0x803 3 104cïŒã«äŒŒãŠããããšã«æ°ä»ããããããŸããã ããã«ãCardBusïŒ0x8031104cïŒãšFireWireïŒ0x8032104cïŒã³ã³ãããŒã©ãŒã®IDã¯äŒŒãŠããã ãã§ãªãããã¹ãŠã®ããã€ã¹ã®PCIã»ã¬ã¯ã¿ãŒã¯æ©èœçªå·ã®ã¿ãç°ãªãããã¹ãŠåãããã€ã¹ãæã£ãŠããããšã«æ°ä»ããŸããã
none1@pci0:6:7:0: class=0x060700 card=0x83191033 chip=0x8031104c rev=0x00 hdr=0x02 vendor = 'Texas Instruments (TI)' device = 'PCIxx21/x515 Cardbus Controller' class = bridge subclass = PCI-CardBus none2@pci0:6:7:2: class=0x0c0010 card=0x83191033 chip=0x8032104c rev=0x00 hdr=0x00 vendor = 'Texas Instruments (TI)' device = 'OHCI Compliant IEEE-1394 FireWire Controller' class = serial bus subclass = FireWire
ãããã«ã¯å®éã«äž¡æ¹ã®ã³ã³ãããŒã©ãŒïŒSDHCIãšFlashMediaïŒãå®è£ ãããŠãããšããSasha Motinã®èšèãæãåºããŠãç§ã¯ããæå³çã«æ€çŽ¢ãéå§ããããã«å¥ã®æçš¿ã«åºãããããã®åŸãfreebsd-mobile @ newsletterã«åæ§ã®ã¡ãã»ãŒãž ïŒå°ãã ãå¥ã®ïŒHP NC6220ã®åé¡ã å®çšçãªãœãªã¥ãŒã·ã§ã³ã¯ã©ãã«ãæäŸãããŠããŸããã§ããããããã©ã€ããŒã®ææ°ããŒãžã§ã³ãè©ŠããŠã¿ããããç³ãèš³ãããŸããããé£è¡äžã®ããã§ãããšãã£ãæããªãã³ãã«èŠçŽãããã»ãšãã©ã®è°è«ãšã¯ç°ãªããå°ãªããšãããããæ§æã¯äœããã®åœ¢ã§PCIæ©èœãã³ãã«è¡šç€ºããïŒå€æŽå¯èœïŒãæãéèŠãªããšã¯ã PCIXXX21 / PCIXXX11 Implementation Guideã®ããã¥ã¡ã³ãããŸã å©çšå¯èœã§ããããšã§ãã ãããŠãããã¯ç§ã«ãšã£ãŠæ¬åœã«èå³æ·±ããã®ã«ãªããŸããã
ããããå ãæãé©ãã¹ãããšã¯ããã ãŒãã£ãŒããããäžã§å®è³ªçã«ããŒã¿ã·ãŒããæãäžãã人ã ããåé¡ã®è§£æ±ºããäžæ©é¢ããããšãæ¢ãããšããããšã§ãã ããã¥ã¡ã³ããé©åã«äœ¿çšããæ¹æ³ã«é¢ããã¬ã·ãã誰ãèŠã€ããŸããã§ããïŒãã®æçš¿ãæžãããã«ä¿ãããŸããïŒã ãããããŸãæåã«ã
PCIXXX21 / PCIXXX11å®è£ ã¬ã€ã-ãããã®ã³ã³ãããŒã©ãŒã«åºã¥ãããŒããŠã§ã¢èšèšè åãã®117ããŒãžã®ããã¥ã¡ã³ãã 詳现ã«åæããããšã¯æå³ããããŸããã ç§ãããããåŠãã æãéèŠãªããšïŒã³ã³ãããŒã©ãŒã¯å®éã«5ã€ã®æ©èœãå®è£ ããŠããŸãïŒCardBusã1394ãFlashMediaãSD HostãSmartCardã éåžžãåæèšå®ã¯EEPROMããååŸãããŸãã ã¡ã€ã³ã³ã³ãã£ã®ã¥ã¬ãŒã·ã§ã³ã¬ãžã¹ã¿-General Control RegisterïŒã»ã¯ã·ã§ã³12.4.28ãpã65ïŒ-ROMã®1Eh-1Fhã¢ãã¬ã¹ã«ããïŒããããã¡ã³ã¯ã·ã§ã³ããã¹ã¯ãããŠããã®ã§ããã€ããŒãã«ã®ã¿é¢å¿ããããŸãïŒããŒããã¡ã³ã¯ã·ã§ã³ã®PCIãªãã»ãã86hã«å¯Ÿå¿ããŸãããã€ã¹ã ä»-
ããžãã¹åã
æåã«ã
pciconf(8)
ãŠãŒãã£ãªãã£ããããã®ãããããïŒãŒãïŒæ©èœã®PCIæ§æã¹ããŒã¹ãã€ãŸãFreeBSDã®çšèªã§
pci0:6:7:0
ã»ã¬ã¯ã¿ãŒã«ã€ããŠæããŠãããŸãã ç°¡æœã«ããããã«ã256ãã€ããã¹ãŠããã³ãããããã§ã¯ãããŸãããããªãã»ãã86hã§ãé¢å¿ã®ãããã®ã ãã«å¶éããŸãã
# pciconf -rb pci0:6:7:0 0x86 d3
é¢çœãã pdfã®65ããŒãžã®ãã¬ãŒããèŠããšãäžäœããã«ïŒããã«ïŒã®ããªãã«ã¯ããããã¬ãã«ã®èª¿åãã¹ããŒãã«ãŒããœã±ããã®é»åå¶åŸ¡ãããã³OHCI 1394ãæ åœãããããã®å žåçãªå€ã«çããããšãããããŸãã ããããæäžäœã®ããã«ã¯ãæ®ãã®ã³ã³ãããŒã©ãŒã®ããžãã¯ããã¹ã¯ïŒãªã³/ãªãïŒããã ãã§ãïŒã¹ããŒã¹ãç¯çŽããããã«ãããŒãã«å šäœãå床衚瀺ããããšã¯ãããŸããïŒã
0xDã¯1101ãã€ãŸã DISABLE_SCã DISABLE_SD ãããã³DISABLE_SKTBããããèšå®ãããDISABLE_FMããããã¯ãªã¢ãããŸãã ãããã£ãŠãSDãã¹ãã³ã³ãããŒã©ãŒãã埩掻ããããã«ã¯ãè«ççã«ãDISABLE_SDïŒæå¹ïŒããªã»ããããå察ã«DISABLE_FMãèšå®ïŒç¡å¹ïŒããå¿ èŠããããŸãã ãã¹ã¯1011ã¯å€0xBã«å¯Ÿå¿ããŸãã å®éããã€ã0xD3ã0xB3ã«å€æŽããå¿ èŠããããŸãã ãã ããåé¡ã¯ãããããåæåããåããŸãã¯çµã¿èŸŒãã³ã³ãããŒã©ãŒã決å®ããåã«ãäºåã«ãããååã«è¡ãå¿ èŠãããããšã§ãã ã·ã¹ãã ã®èµ·ååŸãæ§æãå€æŽããŠãæå³ããããŸããããã¹ãŠã®ããã€ã¹ã¯ãã§ã«ãåäœäžãã§ãã ãããŠãç§ãã¡ã®å©ãã«ãªããŸã
ACPI
ACPIãšã¯äœãããªãå¿ èŠãªã®ãã«ã€ããŠã¯èª¬æããŸãããããã¯ãããã¯ã®ç¯å²å€ã§ãããããã«ãã®ãããã¯ã«é¢ããHabréã®è¯ãæçš¿ããããŸããã ãã®å Žåãç§ãã¡ã«ãšã£ãŠéèŠãªè³ªåã¯ãããããåæåãããåã«DSDTã«ããããé©çšããŠãç®çã®ã³ã³ãããŒã©ãŒïŒSDãã¹ãïŒããªã³ã«ãããã©ã€ããŒïŒFlashMediaïŒãæããªãäžèŠãªã³ã³ãããŒã©ãŒããªãã«ããããšã§ãã
ACPIã®ã€ã³ã¿ãŒããªã¿ãŒïŒãä»®æ³ãã·ã³ãïŒã®ãã¬ãŒã ã¯ãŒã¯å ã§æ å ±ããããã°ããã³åºåããããã®æ段ãèŠãŠã¿ãŸãããã ACPIä»æ§ ïŒ19.5.25é ãpã733ïŒã§ã¯ããªãã¬ãŒãã£ã³ã°ã·ã¹ãã ããŠãŒã¶ãŒã«ãäŒãããå¿ èŠãããç¹å¥ãª
Debug
ãªããžã§ã¯ãã«ã€ããŠèšåããŠããŸãã FreeBSDã§ã¯ã1ã«èšå®ããå¿ èŠããã
debug.acpi.enable_debug_objects
ã·ã¹ãã å€æ°ããããæ åœããŸãã
# sysctl debug.acpi.enable_debug_objects=1 debug.acpi.enable_debug_objects: 0 -> 1
ããã§
Debug
ã«ä»»æã®è¡ãæžã蟌ãããšãã§ããFreeBSDã«ãŒãã«ã¯ããããã³ã³ãœãŒã«ã«åºåããŸãã ãªã³ããã³ãã§é¢å¿ã®ããæ å ±ãACPIã«çºè¡ãããæ¹æ³ãç解ããããšã¯äŸç¶ãšããŠæ®ã£ãŠããŸãã ãŸããã©ãããããã®DSDTããã³ãããã³å解ãã調æ»ããŸãã
# acpidump -dt > s950.asl
ç§ã¯ããéãã®åäœã«å®è³ªçã«åœ±é¿ãäžããã«ãäœããã®å€éšå¹æïŒãŸãã¯ããããªãŒã®ããŒãªã³ã°ãªã©ã®å éšçãªããããå®æçãªïŒã«ãã£ãŠåŒã³åºãããã¡ãœãããèŠã€ããããšã«ããŸããã DSDTã³ãŒãã調ã¹ããšãå¥åŠãªäœåã«åºäŒããŸããã
Method (_Q0C, 0, NotSerialized) { If (\_SB.PCI0.PEGA) { \_SB.PCI0.PEGP.VGA.SWIH () } Else { Store (0x01, TLST) HKDS (0x0A) } }
ã¡ãœãã
\_SB.PCI0.PEGP.VGA.SWIH
åŒã³åºãããå Žæã¯ä»ã«ãããŸããããã®ååã¯ããããäœããã®ãã£ã¹ãã¬ã€ã¹ã€ããã§ããããšã瀺åããŠããŸãã å€ãã®ã©ãããããã®ããŒããŒãã§ã¯ããã¡ã³ã¯ã·ã§ã³ããŒã®1ã€ãFn-modifierãšçµã¿åããããŠããããªåºåãå éšãã£ã¹ãã¬ã€ããå€éšãã£ã¹ãã¬ã€ã«åãæ¿ããŸãã ç§ã®ãããŒãžã§ã³ãã§ã¯F3ã§ãã ã¡ãœããã³ãŒãã次ã®ããã«å€æŽããŠã¿ãŸãããã
Method (_Q0C, 0, NotSerialized) { + Store ("Fn-F3 pressed", Debug) If (\_SB.PCI0.PEGA) {
ASLãåæ§ç¯ããŸãã
# iasl s950-patched.asl Intel ACPI Component Architecture ASL Optimizing Compiler version 20101013-32 Copyright (c) 2000 - 2010 Intel Corporation ASL Input: s950-patched.asl - 7749 lines, 280987 bytes, 2840 keywords AML Output: /tmp/acpidump.aml - 24863 bytes, 640 named objects, 2200 executable opcodes Compilation complete. 0 Errors, 0 Warnings, 0 Remarks, 958 Optimizations # cp /tmp/acpidump.aml /root/s950-patched.aml
FreeBSDãããŒãæã«ããŒãã«ã䜿çšããããã«ã/boot
/boot/loader.conf
次ã®è¡ãè¿œå
/boot/loader.conf
ãŸãïŒ
acpi_dsdt_load="YES" acpi_dsdt_name="/root/s950-patched.aml"
ãã¹ãŠãæ£ããè¡ãããèšç®ãæ£åœåããããšãFn-F3ãã¯ãªãã¯ãããšãã³ã³ãœãŒã«ã«Fn-F3ããŒãæŒããããšããã«ãŒãã«ã¡ãã»ãŒãžïŒé«èŒåºŠïŒã衚瀺ãããŸãã ACPIãæäœã§ããããã«ãªã£ãã®ã§ãè©ŠããŠã¿ãŸããã
ã¬ãžã¹ã¿86hãããã¯ãã
ããŸããŸãªããã€ã¹ïŒRAMãå ¥å/åºåããŒããæ¡åŒµã«ãŒããCMOSãIPMIãªã©ïŒã®ç©çã¢ãã¬ã¹ç©ºéã¯ããããã圢åŒã§ACPIåå空éã«ãããã³ã°ãããŸãã éåžžã1ã€ä»¥äžã®ååä»ããä»®æ³ã¬ãžã¹ã¿ããŸãã¯ãã£ãŒã«ãåäœïŒä»æ§ã®ãã©ã°ã©ã19.5.96ãpã782ïŒã§æ§æãããããããã£ãŒã«ãïŒFieldïŒãå éšã«å²ãåœãŠãããæäœé åïŒOperationRegionïŒã ã³ã³ãããŒã©ãŒã®OperationRegionã¯ãããšãã°æ¬¡ã®ããã«ãªããŸãã
OperationRegion (PCIC, PCI_Config, 0x00, 256) Field (PCIC, AnyAcc, NoLock, Preserve) { Offset (0x86), // General Control Register 86h TLA, 2, // Top level arbitration SCSP, 1, // SmartCard socket power OHCI, 1, // Disable OHCI 1394 controller function SKTB, 1, // Disable CardBus socket B FM, 1, // Disable FlashMedia function SD, 1, // Disable SD host controller function SC, 1, // Disable SmartCard function }
ãããã¯ã256ãã€ããã¹ãŠã
OperationRegion
ã§å®£èšãããŠããããã§ã¯ãªãå Žåã§ããããã«ç°¡åã§ãããé¢å¿ãããã ãã§ãã³ã³ãã£ã®ã¥ã¬ãŒã·ã§ã³ã¬ãžã¹ã¿ã®åã ã®ããããéžæããŸããã
OperationRegion (PCIC, PCI_Config, 0x86, 0x01) Field (PCIC, AnyAcc, NoLock, Preserve) { GCR0, 8, // General Control Register (Byte 0) }
ãã®ãããªå®çŸ©èªäœã¯åœ¹ã«ç«ããªãããšã«æ°ä»ãã®ã¯ç°¡åã§ããããã¯ã©ã®ããã€ã¹ã«ãçµã³ä»ããããŠããããæ¬è³ªçã«æ¢ç¥ã®ãªãã»ããã§ã®1ãã€ãã®æ§é ã«ãããŸããã DSDTã®ããã€ã¹ã¯ãããŒã¯ãŒã
Device
ïŒãã©ã°ã©ã19.5.30ãpã735ïŒã§æå®ãããŸãã ãã¹ãŠã®ããã€ã¹ã®å šäœã¯äžçš®ã®ããªãŒã§ãã ãã®ããããã¹ãŠã®PCIããã€ã¹ã¯ã»ãšãã©ã®å Žåãã«ãŒãPCIãã¹ã«å¯Ÿå¿ããããã€ã¹ç©ºé
\_SB.PCI0
å ã«é 眮ãããŸãïŒéåžžããã¹ã¯1ã€ã ãã§ãããçè«çã«ã¯1ã€ã®PCIãã¡ã€ã³ã«æ倧256ãŸã§ãããŸãïŒã
ãã¹äžã®ããã€ã¹ãèå¥ããã«ã¯ãïŒdevice << 16ïŒ|ãšãã圢åŒã§ã¢ãã¬ã¹ãèšå®ããå¿ èŠããããŸãã æ©èœã ãã®å ŽåïŒ
pciconf -lv
ã®åºåãèŠããŠããŸããïŒïŒFunction = 0ãdevice = 7ãbus =6ãã€ãŸããããã€ã¹ã¯æããã«æ¬¡ã®ããã«ãªããŸãã
Device (XX11) { Name (_ADR, 0x00070000) // pci0:6:7:0 }
ããããŸãããã6çªç®ã®ã¿ã€ã€ã¯ã©ãããæ¥ãã®ã§ããïŒ ãããŠã圌女ã¯DSDTã®ã©ãã«ããŸããïŒ ã«ãŒãã«
dmesg
ïŒ
dmesg
ïŒãèŠãŠã¿ãŸãããã
$ dmesg | grep pci6 pci6: <ACPI PCI bus> on pcib4 pci6: <bridge, PCI-CardBus> at device 7.0 (no driver attached) pci6: <serial bus, FireWire> at device 7.2 (no driver attached) pci6: <mass storage> at device 7.3 (no driver attached) pci6: <network> at device 8.0 (no driver attached) $ dmesg | grep pcib4 pcib4: <ACPI PCI-PCI bridge> at device 30.0 on pci0 pci6: <ACPI PCI bus> on pcib4
pci6
ã¯ãPCI-PCIããªããžäžã®è¿œå ã®ãä»®æ³ããã¹ã§ããããšã
pci6
ãŸããã FreeBSDãããã€ã¹ãé åžããããã6çªïŒããªããžã®4çªïŒãåŸãŸããã ãã¡ãããDSDTå ã«ã¯6ã€ã®ãã¹ãš4ã€ã®ããªããžã¯ãããŸããã ããªããž-
Device (PCIB)
-äºæ³ã©ããããŸãã«1ã€ã§ãã å®å šãªèª¬æã¯æ¬¡ã®ããã«ãªããŸãïŒã¬ãžã¹ã¿ãåå¥ã®ãããã«å解ããããšãªããç°¡åãªããŒãžã§ã³ã瀺ããŸãïŒã
Scope (\_SB.PCI0.PCIB) { Device (XX11) { Name (_ADR, 0x00070000) // pci0:6:7:0 OperationRegion (PCIC, PCI_Config, 0x86, 0x01) Field (PCIC, AnyAcc, NoLock, Preserve) { GCR0, 8, } } }
ããã§ã
_Q0C
ã¡ãœããã®ãããã°ã³ãŒããããæå³ã®ãããã®ã«çœ®ãæããããšãã§ããŸãã
Method (_Q0C, 0, NotSerialized) { + Store (Concatenate("GCR0 = 0x", \_SB.PCI0.PCIB.XX11.GCR0), Debug) If (\_SB.PCI0.PEGA) {
ASLãåæ§ç¯ããåèµ·åããŠãFn-F3ãæŒããŸãã ãã¹ãŠãæ£ãããã°ã以å
pciconf(8)
èªãã ã®ãšåãå€ã衚瀺ãããã¯ãã§ãã
ïŒã¬ãžã¹ã¿å€ãçŽæ¥ãããªã¡ã¢ãªã«æžã蟌ãããã®é¢æ°ã®å®è£ ã¯ãç°¡åãªæŒç¿ãšããŠèªè ã«ä»»ãããŠããŸããïŒ
æãéèŠãªè³ªåã«çããå¿ èŠããããŸããã¬ãžã¹ã¿ã®å€ãå€æŽããå¿ èŠã«å¿ããŠãããã匷å¶çã«èšå®ããããšã¯å¯èœã§ããããïŒ
ACPIæšæºã¯ãããã€ã¹ãåæåããããã®ç¹å¥ãªæ¹æ³ã
_INI
ãå®çŸ©ããŠããŸãïŒ6.5.1é ã349ããŒãžïŒã ããã€ã¹ã«æ¬¡ã®ã³ãŒããè¿œå ããŸãã
Method (_INI) { Store (0xB3, GCR0) /* : Store (0x01, FM) Store (0x00, SD) */ }
ASLãã³ã³ãã€ã«ããçµæã®AMLãã¡ã€ã«ã
/root/s950-patched.aml
ã«ã³ããŒããŠãåèµ·åããŸãã èŠãŠ
çµæ
ãŸãã0x803 3 104cïŒFlashMediaïŒã³ã³ãããŒã©ãŒã
pciconf -lv
ããæ¶ãããã0x803 4 104cïŒSDãã¹ãïŒã衚瀺ãããããšã«æ³šæããŠãã ããã å¿ èŠãªã«ãŒãã«ã¢ãžã¥ãŒã«ãããŒãããã«ãŒããæ¿å ¥ããŠããŠã³ããè©Šã¿ãŸãã
# kldload sdhci mmc mmcsd # ls /dev/mmcsd0* /dev/mmcsd0 /dev/mmcsd0s1 # mount -t msdosfs /dev/mmcsd0s1 /mnt/tmp # ls /mnt/tmp/DCIM/100CANON IMG_0403.JPG IMG_0424.JPG IMG_0450.JPG IMG_0494.JPG IMG_0515.JPG IMG_0406.JPG IMG_0425.JPG IMG_0451.JPG IMG_0498.JPG IMG_0517.JPG IMG_0407.JPG IMG_0427.JPG IMG_0452.JPG IMG_0499.JPG IMG_0518.JPG IMG_0409.JPG IMG_0429.JPG IMG_0453.JPG IMG_0500.JPG IMG_0520.JPG IMG_0410.JPG IMG_0430.JPG IMG_0467.JPG IMG_0501.JPG IMG_0522.JPG IMG_0412.JPG IMG_0439.JPG IMG_0473.JPG IMG_0506.JPG IMG_0525.JPG IMG_0413.JPG IMG_0440.JPG IMG_0474.JPG IMG_0507.JPG IMG_0526.JPG IMG_0414.JPG IMG_0445.JPG IMG_0475.JPG IMG_0508.JPG IMG_0534.JPG IMG_0415.JPG IMG_0447.JPG IMG_0478.JPG IMG_0510.JPG IMG_0535.JPG IMG_0421.JPG IMG_0448.JPG IMG_0492.JPG IMG_0512.JPG IMG_0537.JPG IMG_0423.JPG IMG_0449.JPG IMG_0493.JPG IMG_0514.JPG IMG_0538.JPG # tar cf /dev/null /mnt/tmp/DCIM/100CANON ; echo $? tar: Removing leading '/' from member names 0
ãã¹ãŠãããŸãæ©èœããŠããããã§ãã DSDTãããããã°ã³ãŒããåé€ããã«ãŒããªãŒããŒã䜿çšããŠ