I'm setting up Linux device to act as BLE host, and ESP32 to work as a BLE controller over UART.
I'm using BlueZ v5.55, with btattach and bluetoothctl utilities, and bluetoothd running in the background. However, after finishing the setup bluetoothctl still says No default controller available.
# /usr/bin/btattach -B /dev/ttymxc1 -S 921600 --protocol h4 &
# Attaching Primary controller to /dev/ttymxc1
Switched line discipline from 0 to 15
Device index 0 attached
# /usr/libexec/bluetooth/bluetoothd
# bluetoothctl
Agent registered
[bluetooth]# power on
No default controller available
Output of btmon:
# btmon
Bluetooth monitor ver 5.55
= Note: Linux version 5.4.8 (armv7l) 0.258161
= Note: Bluetooth subsystem version 2.22 0.258269
= New Index: 00:00:00:00:00:00 (Primary,UART,hci0) [hci0] 0.258314
# MGMT Open: bluetoothd (privileged) version 1.14 {0x0001} 0.258357
Output of dmesg during kernel start:
# dmesg | grep Blu
[ 0.643821] Bluetooth: Core ver 2.22
[ 0.644222] Bluetooth: HCI device and connection manager initialized
[ 0.644528] Bluetooth: HCI socket layer initialized
[ 0.644622] Bluetooth: L2CAP socket layer initialized
[ 0.645069] Bluetooth: SCO socket layer initialized
[ 4.678559] Bluetooth: HCI UART driver ver 2.3
[ 4.683346] Bluetooth: HCI UART protocol H4 registered
[ 4.688821] Bluetooth: HCI UART protocol LL registered
The ESP32 is running UART HCI controller firmware: https://github.com/espressif/esp-idf/tree/master/examples/bluetooth/hci/controller_hci_uart
The host is running a Buildroot-created Linux with BR2_PACKAGE_BLUEZ_TOOLS=y and a kernel with CONFIG_BT=y, CONFIG_BT_LE=y, CONFIG_BT_HCIUART=y, CONFIG_BT_HCIUART_H4=y.
I have 4 UART lines connected TX->RX, RX->TX, RTS->CTS and CTS->RTS.
I have checked the UART communication with the same HW setup - I can exchange data over UART with the ESP32 (in both directions).
The commands are run as root.
What am I missing here?
If you have any decent documentation on BlueZ HCI setup, I'll be happy to see it.
EDIT: I also installed hcidump and hciconfig (normally deprecated in BLueZ v5.55). Here is a log from hcidump:
# hcidump
HCI sniffer - Bluetooth packet analyzer ver 5.55
device: hci0 snap_len: 1500 filter: 0xffffffff
< HCI Command: Read Local Supported Features (0x04|0x0003) plen 0
< HCI Command: Read Local Version Information (0x04|0x0001) plen 0
< HCI Command: Read BD ADDR (0x04|0x0009) plen 0
(in 2nd terminal)
# hciconfig hci0 up
Can't init device hci0: Connection timed out (110)
After a few days, I have found a solution of this problem.
I have also used nRF52 DK as an alternative to better understand if the problem lies on the side of ESP32 controller, or on the side of Linux host. Because the nRF HCI UART worked on Ubuntu 20.04, but didn't work on my embedded Linux, I looked deeper on the Linux host side.
After starting BlueZ daemon with
bluetoothd -n
it showed more details:
bluetoothd[593]: src/adapter.c:get_static_addr() Failed to open crypto
bluetoothd[593]: No Bluetooth address for index 0
Which led me to this topic: https://github.com/raspberrypi/linux/issues/3628
It turns out, when attaching the UART HCI controller with btattach, BlueZ was not able to create a static address, because of missing Linux kernel crypto interface in user-space.
I compiled the kernel with additional configs:
CONFIG_CRYPTO_USER
CONFIG_CRYPTO_USER_API
CONFIG_CRYPTO_USER_API_AEAD
CONFIG_CRYPTO_USER_API_HASH
CONFIG_CRYPTO_AES
CONFIG_CRYPTO_CCM
CONFIG_CRYPTO_AEAD
CONFIG_CRYPTO_CMAC
After that change, I was able to attach the Bluetooth controller to my Embedded Linux host.
I am new in here and I am sorry my bad English.
I have OLinuXino A13 board. I endeavor kernel and boot events. So I try boot OLinuxino-A13 via spiflash(in FEL mode). I connected board to my PC(USB OTG). I Sending commands from my computer for writing to spiflash. And differently I build second connect with usb-ttl. So I can see opening writing of board with CuteCom program from my PC. And I use sunxi-tools for write to spiflash of my board.
And I did this:
I compiled kernel and I created u-boot-sunxi-with-spl.bin file. After I entered FEL mode and I wrote this file to on my board with ./sunxi-fel spiflash-write 0 /path/u-boot-sunxi-with-spl.bin. When I use boot my board from PC with ./sunxi-fel uboot /path/u-boot-sunxi-with-spl.bin, my board start and it work for find to sd card. Result this:
U-Boot SPL 2019.04-rc1-00141-g63f7e3fca3 (Feb 19 2019 - 17:23:48 +0300)
DRAM: 512 MiB
CPU: 1008000000Hz, AXI/AHB/APB: 3/2/2
Trying to boot from FEL
U-Boot 2019.04-rc1-00141-g63f7e3fca3 (Feb 19 2019 - 17:23:48 +0300) Allwinner Technology
CPU: Allwinner A13 (SUN5I)
Model: Olimex A13-Olinuxino
I2C: ready
DRAM: 512 MiB
MMC: mmc#1c0f000: 0
Loading Environment from FAT... MMC: no card present
Setting up a 1024x768 vga console (overscan 0x0)
In: serial
Out: vga
Err: vga
Allwinner mUSB OTG (Peripheral)
Net:
Warning: usb_ether using MAC address from ROM
eth0: usb_ether
starting USB...
USB0: USB EHCI 1.00
USB1: USB OHCI 1.0
scanning bus 0 for devices... 1 USB Device(s) found
scanning bus 1 for devices... 1 USB Device(s) found
scanning usb for storage devices... 0 Storage Device(s) found
Hit any key to stop autoboot: 2 <0x08><0x08><0x08> 1 <0x08><0x08><0x08> 0
MMC: no card present
Device 0: unknown device
But differently if I restart my board after(card is out of fel mode) ./sunxi-fel spiflash-write 0 /path/u-boot-sunxi-with-spl.bin command. Result this:
U-Boot SPL 2019.04-rc1-00141-g63f7e3fca3 (Feb 19 2019 - 17:23:48 +0300)
DRAM: 512 MiB
CPU: 1008000000Hz, AXI/AHB/APB: 3/2/2
SPL: Unsupported Boot Device!
SPL: failed to boot from all boot devices
### ERROR ### Please RESET the board ###
A13-OLinuxino_defconfig file:
CONFIG_ARM=y
CONFIG_ARCH_SUNXI=y
CONFIG_SPL=y
CONFIG_MACH_SUN5I=y
CONFIG_DRAM_CLK=408
CONFIG_DRAM_EMR1=0
CONFIG_MMC0_CD_PIN="PG0"
CONFIG_USB0_VBUS_DET="PG1"
CONFIG_USB1_VBUS_PIN="PG11"
CONFIG_AXP_GPIO=y
# CONFIG_VIDEO_HDMI is not set
CONFIG_VIDEO_VGA_VIA_LCD=y
CONFIG_VIDEO_VGA_VIA_LCD_FORCE_SYNC_ACTIVE_HIGH=y
CONFIG_VIDEO_LCD_POWER="AXP0-0"
CONFIG_VIDEO_LCD_BL_PWM="PB2"
CONFIG_NR_DRAM_BANKS=1
# CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
CONFIG_SPL_I2C_SUPPORT=y
CONFIG_CMD_DFU=y
# CONFIG_CMD_FLASH is not set
CONFIG_CMD_USB_MASS_STORAGE=y
# CONFIG_SPL_DOS_PARTITION is not set
# CONFIG_SPL_PARTITION_UUIDS is not set
CONFIG_DEFAULT_DEVICE_TREE="sun5i-a13-olinuxino"
CONFIG_DFU_RAM=y
CONFIG_FASTBOOT_CMD_OEM_FORMAT=y
CONFIG_AXP_ALDO3_VOLT=3300
CONFIG_CONS_INDEX=2
CONFIG_USB_EHCI_HCD=y
CONFIG_USB_OHCI_HCD=y
CONFIG_USB_MUSB_GADGET=y
CONFIG_SYS_USB_EVENT_POLL_VIA_INT_QUEUE=yONFIG_AXP_ALDO3_VOLT=3300
CONFIG_CONS_INDEX=2
CONFIG_USB_EHCI_HCD=y
CONFIG_USB_OHCI_HCD=y
CONFIG_USB_MUSB_GADGET=y
CONFIG_SYS_USB_EVENT_POLL_VIA_INT_QUEUE=y
I struggle for exceed this error and want to see result like on above. How can I fix this error?
I am trying to boot the beaglebone black using the uImage file that I created using the mkimage command. There is a emmc to sd image flasher package available online which has a uImage in it and also other required files (https://elinux.org/BeagleBone_Black_Extracting_eMMC_contents), I followed this website and created a flasher card of the uImage that I made using mkimage utility.
I am getting the following error during boot from SD card having that uImage:
U-Boot SPL 2016.01-00763-g3faf221 (Jan 29 2016 - 20:47:08)
Trying to boot from MMC
Card doesn't support part_switch
MMC partition switch failed
*** Warning - MMC partition switch failed, using default environment
reading u-boot.img
reading u-boot.img
U-Boot 2016.01-00763-g3faf221 (Jan 29 2016 - 20:47:08 +0000)
Watchdog enabled
I2C: ready
DRAM: 512 MiB
MMC: OMAP SD/MMC: 0, OMAP SD/MMC: 1
*** Warning - bad CRC, using default environment
Net: <ethaddr> not set. Validating first E-fuse MAC
cpsw, usb_ether
Press SPACE to abort autoboot in 2 seconds
=> set sdboot 1
=> boot
switch to partitions #0, OK
mmc0 is current device
Scanning mmc 0:1...
switch to partitions #0, OK
mmc0 is current device
SD/MMC found on device 0
reading boot.scr
** Unable to read file boot.scr **
reading uEnv.txt
235 bytes read in 5 ms (45.9 KiB/s)
Loaded environment from uEnv.txt
Importing environment from mmc ...
Running uenvcmd ...
reading uImage
5497536 bytes read in 302 ms (17.4 MiB/s)
reading /am335x-boneblack.dtb
25926 bytes read in 8 ms (3.1 MiB/s)
## Booting kernel from Legacy Image at 82000000 ...
Image Name: Linux kernel
Created: 2015-09-07 21:47:16 UTC
Image Type: ARM Linux Kernel Image (uncompressed)
Data Size: 5497472 Bytes = 5.2 MiB
Load Address: 80008000
Entry Point: 80008000
Verifying Checksum ... OK
## Flattened Device Tree blob at 81ff0000
Booting using the fdt blob at 0x81ff0000
Loading Kernel Image ... OK
Loading Device Tree to 8fff6000, end 8ffff545 ... OK
Starting kernel ...
Uncompressing Linux... done, booting the kernel.
[ 0.177572] omap2_mbox_probe: platform not supported
[ 0.333923] tps65217-bl tps65217-bl: no platform data provided
[ 0.397544] bone-capemgr bone_capemgr.9: slot #0: No cape found
[ 0.434652] bone-capemgr bone_capemgr.9: slot #1: No cape found
[ 0.471760] bone-capemgr bone_capemgr.9: slot #2: No cape found
[ 0.508869] bone-capemgr bone_capemgr.9: slot #3: No cape found
[ 0.528815] omap_hsmmc mmc.5: of_parse_phandle_with_args of 'reset' failed
[ 0.591166] pinctrl-single 44e10800.pinmux: pin 44e10854 already requested by 44e10800.pinmux; cannot claim for gpio-leds.8
[ 0.602845] pinctrl-single 44e10800.pinmux: pin-21 (gpio-leds.8) status -22
[ 0.610128] pinctrl-single 44e10800.pinmux: could not request pin 21 on device pinctrl-single
[ 0.686675] Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0)
[ 0.695344] [<c0010f5d>] (unwind_backtrace+0x1/0x98) from [<c04994c3>] (panic+0x5b/0x158)
[ 0.703882] [<c04994c3>] (panic+0x5b/0x158) from [<c07bc94b>] (mount_block_root+0xf7/0x178)
[ 0.712595] [<c07bc94b>] (mount_block_root+0xf7/0x178) from [<c07bcb09>] (mount_root+0x95/0xb0)
[ 0.721676] [<c07bcb09>] (mount_root+0x95/0xb0) from [<c07bcbef>] (prepare_namespace+0xcb/0x11c)
[ 0.730836] [<c07bcbef>] (prepare_namespace+0xcb/0x11c) from [<c0495aff>] (kernel_init+0x7/0x98)
[ 0.740007] [<c0495aff>] (kernel_init+0x7/0x98) from [<c000c7fd>] (ret_from_fork+0x11/0x34)
Any help will be useful.
The kernel cannot find the root partition. The kernel command line is set in U-Boot via the environment variable bootargs.
Goal: emulate the "sabrelite : Freescale i.MX6 Quad SABRE Lite Board (Cortex A9)" that Qemu specifically supports (doing 'qemu-system-arm -M ?' it shows up).
Qemu ver: 2.10.1 (host: fedora-27).
I have successfully cross-compiled and built a 4.1.46 Linux kernel (used the imx_v6_v7_defconfig config file) as well as a simple "skeleton" root filesystem (busybox-based). (FYI, I have a similar working setup for the ARM Cortex-A9 Versatile Express platform - I do this using my own home-spun embedded Linux system called SEALS).
Looking at the U-Boot config file used by similar boards, I figured to use 'root=/dev/mmcblk0p0' as the root= param for the kernel.
So, to try it out I then run qemu as follows (pl scroll horizontally as well to see):
qemu-system-arm -m 512 -M sabrelite -kernel zImage -drive file=rfs.img,format=raw -append "console=ttymxc0 rootfstype=ext4 root=/dev/mmcblk0p0 rw rootwait init=/sbin/init " -nographic -dtb imx6dl-sabresd.dtb
[ 0.000000] Booting Linux on physical CPU 0x0
[ 0.000000] Linux version 4.1.46 (kai#klaptop) (gcc version 4.8.3 20140320 (prerelease) (Sourcery CodeBench Lite 2014.05-29) ) #2 SMP Mon Nov 27 17:16:22 IST 2017
[ 0.000000] CPU: ARMv7 Processor [410fc090] revision 0 (ARMv7), cr=10c5387d
[ 0.000000] CPU: PIPT / VIPT nonaliasing data cache, VIPT nonaliasing instruction cache
[ 0.000000] Machine model: Freescale i.MX6 DualLite SABRE Smart Device Board
[ 0.000000] cma: Reserved 16 MiB at 0x2f000000
[...]
So it starts to boot up just fine. But then:
[...]
[ 2.210965] /soc/aips-bus#02100000/usdhc#02194000: voltage-ranges unspecified
[ 2.211796] sdhci-esdhc-imx 2194000.usdhc: Got CD GPIO
[ 2.212199] sdhci-esdhc-imx 2194000.usdhc: Got WP GPIO
[ 2.214392] sdhci-esdhc-imx 2194000.usdhc: could not get ultra high speed state, work on normal mode
[ 2.218084] sdhci-esdhc-imx 2194000.usdhc: No vmmc regulator found
[ 2.218367] sdhci-esdhc-imx 2194000.usdhc: No vqmmc regulator found
[ 2.265431] mmc0: SDHCI controller on 2194000.usdhc [2194000.usdhc] using ADMA
[ 2.267300] mmc0: mmc_rescan_try_freq: trying to init card at 400000 Hz
[ 2.281912] /soc/aips-bus#02100000/usdhc#02198000: voltage-ranges unspecified
[ 2.282956] sdhci-esdhc-imx 2198000.usdhc: Got CD GPIO
[ 2.283703] sdhci-esdhc-imx 2198000.usdhc: Got WP GPIO
[ 2.284044] sdhci-esdhc-imx 2198000.usdhc: could not get ultra high speed state, work on normal mode
[ 2.284892] sdhci-esdhc-imx 2198000.usdhc: No vmmc regulator found
[ 2.285167] sdhci-esdhc-imx 2198000.usdhc: No vqmmc regulator found
[ 2.298029] mmc0: mmc_rescan_try_freq: trying to init card at 300000 Hz
[ 2.337904] mmc1: SDHCI controller on 2198000.usdhc [2198000.usdhc] using ADMA
[ 2.357051] /soc/aips-bus#02100000/usdhc#0219c000: voltage-ranges unspecified
[ 2.358313] sdhci-esdhc-imx 219c000.usdhc: No vmmc regulator found
[ 2.358642] sdhci-esdhc-imx 219c000.usdhc: No vqmmc regulator found
[ 2.368204] mmc0: mmc_rescan_try_freq: trying to init card at 200000 Hz
[ 2.414722] mmc2: SDHCI controller on 219c000.usdhc [219c000.usdhc] using ADMA
[ 2.440456] mmc0: mmc_rescan_try_freq: trying to init card at 100000 Hz
[...]
[ 2.986441] No soundcards found.
[ 3.007698] Waiting for root device /dev/mmcblk0p0...
Keeps waiting forever here ...
I understand that, on an actual physical board, one would have to "format" or partition the MMC (or SD) card, and have u-boot load up the kernel and rootfs into RAM. But am currently interested in getting the IMX6 working on Qemu...
So, my actual question: how can I get the root filesystem mounted and operational on Qemu?
Any help appreciated! TIA,
There are two problems here. Firstly, your command line isn't actually creating an SD card: the -drive option creates a drive object but doesn't try to plug it in anywhere (because the sabrelite board doesn't define a "default kind of block drive"). To actually plug in the drive to an emulated sd card you need
-drive file=yourfile.img,format=raw,id=mycard -device sd-card,drive=mycard
Secondly, there are bugs in QEMU's current imx6 sd controller emulation, because if you do that then the guest kernel continuously prints
[ 28.971663] mmc1: Timeout waiting for hardware interrupt.
[ 28.973619] mmc1: error -110 whilst initialising SD card
...so it has found the emulated card but isn't getting an interrupt it expects.
These can be fixed by a patch currently on the qemu-devel mailing lists and going through code review: http://patchwork.ozlabs.org/patch/834805/ plus a simple change to hw/arm/fsl-imx6.c to make it create TYPE_IMX_USDHC devices rather than TYPE_SYSBUS_SDHCI. (Basically the imx6's SD controller isn't a completely standard compatible sdhci controller but what we were creating in the QEMU model was the plain variety.)
If you do all that then you can boot a kernel that can see the mmc card:
[ 8.878283] mmc1: new SD card at address 4567
[ 8.910566] mmcblk0: mmc1:4567 QEMU! 256 MiB
With a little luck we'll be able to have this fixed in the 2.12 release of QEMU, which will be out in some time in spring 2018.
Edit as of 9 Mar 2018 -- the relevant fixes are now in QEMU master (commits fd1e5c81796, df2a5cf4c8) and will be in 2.12.
I saw there are several discussions on the subject but none of them managed to help me solve mine.
I am trying to compile my Matlab proj. without much success.
I saw this video and pretty much followed it guidances: -> I used 'deploytool'.
When I tried to build the project, I got the below plot. The line has been showed a lot:
2013-03-10 14:29:21.014 mcc[39814:4303] This process is attempting to exclude an item from Time Machine by path without administrator privileges. This is not supported.
Some discussions stated I need to do write "sudu matlab" somewhere but I do not know where...
Compilation plot:
ant:
mcc -o Untitled1 -W main:Untitled1 -T link:exe -d /Users/Nimrod/Documents/MATLAB/Temp/Untitled1/src -w enable:specified_file_mismatch -w enable:repeated_file -w enable:switch_ignored -w enable:missing_lib_sentinel -w enable:demo_license -v /Users/Nimrod/Documents/MATLAB/Temp/temp.m
2013-03-10 14:29:17.073 mcc[39814:4303] This process is attempting to exclude an item from Time Machine by path without administrator privileges. This is not supported.
2013-03-10 14:29:17.075 mcc[39814:4303] This process is attempting to exclude an item from Time Machine by path without administrator privileges. This is not supported.
2013-03-10 14:29:41.167 mcc[39814:4303] This process is attempting to exclude an item from Time Machine by path without administrator privileges. This is not supported.
Compiler version: 4.18 (R2012b)
Processing /Applications/MATLAB_R2012b.app/toolbox/matlab/mcc.enc
Processing /Applications/MATLAB_R2012b.app/toolbox/shared/spcuilib/mcc.enc
Processing include files...
2 item(s) added.
Processing directories installed with MCR...
The file /Users/Nimrod/Documents/MATLAB/Temp/Untitled1/src/mccExcludedFiles.log contains a list of functions excluded from the CTF archive.
0 item(s) added.
Generating MATLAB path for the compil ed application...
Created 39 path items.
Begin validation of MEX files: Sun Mar 10 14:30:16 2013
End validation of MEX files: Sun Mar 10 14:30:16 2013
2013-03-10 14:30:16.783 mcc[39814:4303] This process is attempting to exclude an item from Time Machine by path without administrator privileges. This is not supported.
2013-03-10 14:30:39.015 mcc[39814:4303] This process is attempting to exclude an item from Time Machine by path without administrator privileges. This is not supported.
Warning: Adding path "/Users/Nimrod/Documents/MATLAB/Temp" to Compiler path
instance.
Parsing file "/Users/Nimrod/Documents/MATLAB/Temp/temp.m"
(Referenced from: "Compiler Command Line").
Parsing file "/Applications/MATLAB_R2012b.app/toolbox/compiler/deploy/deployprint.m"
(Referenced from: "Compiler Command Line").
Parsing file "/Applications/MATLAB_R2012b.app/toolbox/compiler/deploy/printdlg.m"
(Referenced from: "Compiler Command Line").
Deleting 0 temporary MEX authorization files.
Generating file "/Users/Nimrod/Documents/MATLAB/Temp/Untitled1/src/readme.txt".
Generating file "/Users/Nimrod/Documents/MATLAB/Temp/Untitled1/src/run_Untitled1.sh".
copy '/Users/Nimrod/Documents/MATLAB/Temp/Untitled1/src/Untitled1.app' '/Users/Nimrod/Documents/MATLAB/Temp/Untitled1/distrib/Untitled1.app'
copy '/Users/Nimrod/Documents/MATLAB/Temp/Untitled1/src/run_Untitled1.sh' '/Users/Nimrod/Documents/MATLAB/Temp/Untitled1/distrib/run_Untitled1.sh'
copy '/Users/Nimrod/Documents/MATLAB/Temp/Untitled1/src/readme.txt' '/Users/Nimrod/Documents/MATLAB/Temp/Untitled1/distrib/readme.txt'
When trying to run the app file I get the following crash:
Process: prelaunch [39864]
Path: /Users/USER/Documents/*/Untitled1.app/Contents/MacOS/prelaunch
Identifier: Untitled1
Version: 1
Code Type: X86-64 (Native)
Parent Process: launchd [134]
User ID: 501
Date/Time: 2013-03-10 14:37:28.848 +0200
OS Version: Mac OS X 10.8.2 (12C2034)
Report Version: 10
Interval Since Last Report: 9226 sec
Crashes Since Last Report: 5
Per-App Crashes Since Last Report: 5
Anonymous UUID: 6DB02735-2968-B918-129B-82542E2D0F24
Crashed Thread: 0
Exception Type: EXC_BREAKPOINT (SIGTRAP)
Exception Codes: 0x0000000000000002, 0x0000000000000000
Application Specific Information:
dyld: launch, loading dependent libraries
Dyld Error Message:
Library not loaded: #rpath/libmwcpp11compat.dylib
Referenced from: /Users/USER/Documents/*/Untitled1.app/Contents/MacOS/prelaunch
Reason: image not found
Binary Images:
0x100000000 - 0x100000ff7 +Untitled1 (1) /Users/USER/Documents/*/Untitled1.app/Contents/MacOS/prelaunch
0x7fff6205c000 - 0x7fff6209093f dyld (210.2.3) <36CAA36E-72BC-3E48-96D9-B96A2DF77730> /usr/lib/dyld
Model: MacBookPro9,1, BootROM MBP91.00D3.B08, 4 processors, Intel Core i7, 2.6 GHz, 8 GB, SMC 2.1f173
Graphics: Intel HD Graphics 4000, Intel HD Graphics 4000, Built-In, 384 MB
Graphics: NVIDIA GeForce GT 650M, NVIDIA GeForce GT 650M, PCIe, 1024 MB
Memory Module: BANK 0/DIMM0, 4 GB, DDR3, 1600 MHz, 0x80AD, 0x484D54333531533643465238432D50422020
Memory Module: BANK 1/DIMM0, 4 GB, DDR3, 1600 MHz, 0x80AD, 0x484D54333531533643465238432D50422020
AirPort: spairport_wireless_card_type_airport_extreme (0x14E4, 0xF5), Broadcom BCM43xx 1.0 (5.106.98.100.14)
Bluetooth: Version 4.1.2f9 11046, 2 service, 18 devices, 1 incoming serial ports
Network Service: Wi-Fi, AirPort, en1
PCI Card: pci11c1,5901, sppci_ieee1394openhci, Thunderbolt#62,0,0
PCI Card: Apple 57761-B0, sppci_ethernet, Thunderbolt#61,0,0
PCI Card: pci12d8,400e, sppci_usbopenhost, Thunderbolt#60,0,0
PCI Card: pci12d8,400e, sppci_usbopenhost, Thunderbolt#60,0,1
PCI Card: pci12d8,400f, USB Enhanced Host Controller, Thunderbolt#60,0,2
Serial ATA Device: APPLE HDD HTS547575A9E384, 750.16 GB
Serial ATA Device: HL-DT-ST DVDRW GS31N
USB Device: hub_device, 0x8087 (Intel Corporation), 0x0024, 0x1a100000 / 2
USB Device: FaceTime HD Camera (Built-in), apple_vendor_id, 0x8509, 0x1a110000 / 3
USB Device: hub_device, 0x8087 (Intel Corporation), 0x0024, 0x1d100000 / 2
USB Device: hub_device, 0x0424 (SMSC), 0x2513, 0x1d180000 / 3
USB Device: BRCM20702 Hub, 0x0a5c (Broadcom Corp.), 0x4500, 0x1d181000 / 6
USB Device: Bluetooth USB Host Controller, apple_vendor_id, 0x821d, 0x1d181300 / 7
USB Device: Apple Internal Keyboard / Trackpad, apple_vendor_id, 0x0253, 0x1d183000 / 5
USB Device: IR Receiver, apple_vendor_id, 0x8242, 0x1d182000 / 4
USB Device: hub_device, apple_vendor_id, 0x9127, 0x40100000 / 2
USB Device: Keyboard Hub, apple_vendor_id, 0x1006, 0x40130000 / 6
USB Device: Apple Keyboard, apple_vendor_id, 0x0250, 0x40132000 / 7
USB Device: Display Audio, apple_vendor_id, 0x1107, 0x40140000 / 5
USB Device: FaceTime HD Camera (Display), apple_vendor_id, 0x1112, 0x40150000 / 4
USB Device: Apple Thunderbolt Display, apple_vendor_id, 0x9227, 0x40170000 / 3