My (now second) favourite Bluetooth headset that I have ever had the pleasure of using met an untimely death after an encounter with the automatic folding electric seats of a Mercedes GL... obviously this wasn't covered by any warranty... so what does a curious mind do?? Find out what makes it tick!
First off, I want to stress that there is likely no way to get this thing apart and back together again without damaging the housing. Seems Plantonics has gone to great lengths to superglue every crack, solder wires to the board without connectors and make the unit unserviceable... I'm pretty sure they could have made the logic board removable/serviceable with a slight design change. With that said, I appreciate the build quality and robust design that should survive some extreme wear and tear.
I got this set before it was even available in Canada and before it was a common stock item in the US stores. This could quite possibly be one of the first revisions of the product.
Turns out, the flagship Plantronics headset is little more than a well executed design based around a $8 Cambridge Silicon Radio CSR8670 SOC.
From the SOC manufacturer spec sheet (here):
"Bluetooth®3.0 (Bluetooth 4.0 compatible)
16Mb embedded flash memory(64bitwide)
Support for up to 64Mb external serial flash (optional)
Dual-core architecture with Integrated applications processor and
an ultra low-power DSP coprocessor
Integrated high performance stereo codec
Support for capacitive touch sensors
Integrated Li-Ion BatteryCharger"
Interestingly the backside of the board looks like it has the pads on the board for that external flash which is not populated... perhaps that is used in the UC version (I will find out when my replacement dies)
The battery is labelled 3.7v 100mAh AHB480832PK, +2620056-1690 0.4Wh.
Two of the microphones appear to be surface mount point upwards when wearing the set on the left ear.
I think the smart sensor is on the upper half of the ear piece and appears to be nothing more than a copper conductor working on the principals of surface capacitance.
The speaker is a 16ohm unit, well sealed and insulated with the markings "Y2b4G"
Pictures of the tear-down:
So, you have an OS-X VM running on ESXi on a MAC mini and you want to boot it into single user mode?
Your PC keyboard and standard CMD+S or Option+S not working for you?
Open the EFI Shell (delete/space at boot, Boot Manager)
Select your partition and run the boot.efi with the -s, -v option or any other boot options you wanted...
Okay this rant is not directed at just my current IT department... it is directed to many many many IT departments that refuse to let their users update to the latest IE in fears of breaking legacy applications. Instead, they hold back IE updates on many less technically inclined people who will find the websites that exploit the security holes and jeopardize their companies PR. What the hell, really?! This is despite the fact that IE supports compatibility mode which can be specified on the server side! Yes, that's right, in order to ensure that your legacy apps will likely work with all future versions of IE, you can simply modify the webserver or your companies proxy to send the following header: x-ua-compatible IE=9, and IE will use the IE 9 rendering for that page. It's simple.
So you have a 2 or 4 port HBA or multiple Q-Logic HBAs in the same host and you want to make some ports targets and some ports initiators.. Fear not, it is relatively simple.
In my example, I am using Q-Logic cards which use either the qlc driver (default) for initiator ports, or the qlt driver for the target ports.
To make an FC initiator port into a target port, we simply change the driver. In order to change which driver for a specific port, instead of changing the driver for all of a specific type of hardware, we first must know where the card is on host. We will call this the identify-name...
We can use the modular debugger to list the current devices claimed by the driver and map it back to the node ID.
Okay so we see that QLC has claimed two ports. Now if these are currently FC initiator ports, you can use luxadm to quickly hint to us the identify-name / node path. (If they are not FC initiator ports, read to the bottom)
Now we can update one of those ports to use the qlt driver as follows using the update_drv command and the devices identify-name, and reboot.
So what does update_drv actually do and how does the change persist across reboots?!? It attempts to do its job to the running kernel, then it updates /etc/driver_aliases. In this case it simply appends to the bottom:
Once the host boots back up, we can check who claimed the drivers...
And there you have it!
Okay so what if you don't have luxadm or luxadm doesn't show your hardware?? Well fear not, all the info you need to compose the identify name is available in mdb... get the address of your device from loaded driver, figure out how it is connected, then walk the tree for node names that make up the entirety of identify name. Note that the root node in the identify name is assumed and does not need to be looked up. Since we want to replace qlc, the identify-name is a path of the node name from after the root to qlc separated by / .
So in this example, the identify name for update_drv is /pci@0,0/pci15ad,7a0@15/pci1077,138@0
This information can also be handy when looking to replace other drivers in Solaris derived environments.
I'm seeing so often storage performance issues where someone has configured jumbo frames somewhere because they were following some best practices guide, but it seems they only did it on the one device who's doc they were reading... or better yet they think that Jumbo frames are so awesome that they should configure them on almost everything. The operative word there is almost. Maybe I am just in the wrong line of work right now but it's depressing. Folks... please remember if you are going to tweak something, it is very important to realize the implications of your tweak. Jumbo frames are great if you have everything on the layer 2 domain configured correctly. If you are doing routing, don't forget to clamp the TCP MSS appropriately before leaving the networks that support Jumbo. In most cases you are only going to get a minimal performance increase with jumbo frames IF you have it configured correctly.
We did the RedHat RHCE RH255 rapid track course at work. It was during our holiday party week and not too many people had time to study.
The exam itself was a practical exam which had a lot of trick questions and curve balls in it. Except for me and this other guy, everyone failed both exams. I think this was because many of the people in the group were very rusty with their Linux administration experience or barely familiar with Linux. The rapid track course didn't give them the training on some of the basic stuff like LVM and some of the stuff they did teach went over their heads. The other guy who managed to pass an exam and get his RHCSA studied.
I had doubts on whether or not I had a high enough mark to pass the second exam, but it turns out I did. Everyone at the end of the week felt they learned a bunch of useful things.
I was a little disappointed that the training course seemed very RedHat focused (using keytool instead of openssl) but didn't seem to go in depth with selinux, but if they did, I bet there would be even fewer RHCEs.
I know a lot of people who forget about the built-in tip command when trying to fire up a console session:
# tip -115200 /dev/cua0
Where -115200 is the speed/character rate and /dev/cua0 is the console port character device.
In tip, to exit/break out of the session, pres <enter>~. or if you are in a nested ssh session, <enter>~~.
No need to install minicom or the like.
So I was playing around with my IA64 HP-UX servers trying to get it to connect to my Nexenta CE based fibre channel SAN and was having troubles.
# fcmsutil /dev/fcd0
Vendor ID is = 0x1077
Device ID is = 0x2312
PCI Sub-system Vendor ID is = 0x103C
PCI Sub-system ID is = 0x12BA
PCI Mode = PCI-X 133 MHz
ISP Code version = 3.3.175
ISP Chip version = 3
Topology = PRIVATE_LOOP
Link Speed = 2Gb
Local N_Port_id is = 0x000001
Previous N_Port_id is = 0x000001
Local Loop_id is = 125
N_Port Node World Wide Name = 0x50060b0000331891
N_Port Port World Wide Name = 0x50060b0000331890
Switch Port World Wide Name = N/A
Switch Node World Wide Name = N/A
N_Port Symbolic Port Name = hpux1_fcd0
N_Port Symbolic Node Name = hpux1_HP-UX_B.11.31
Driver state = ONLINE
Hardware Path is = 0/4/1/0
Maximum Frame Size = 2048
Driver-Firmware Dump Available = NO
Driver-Firmware Dump Timestamp = N/A
TYPE = PFC
NPIV Supported = NO
Driver Version = @(#) fcd B.11.31.1311 Nov 5 2013
# fcmsutil /dev/fcd0 get remote all
and on Nexenta..
root@nexenta:/volumes# fcadm remote-port -p 2103001B326E962A -l
Annnnnnd then nothing of interesting value...
So I'm considering just shelving the whole HP-UX cluster until I either find a use for it or get a proper SP. I mean I am trying real hard to find a use for them but for now, in my basement, Itanium is dead.
---EDIT--- 2013-12-23 10:54PM
I configured the iSCSI initiator and added the iqn into the initiator group in Nexenta and now it seems the LUN is showing up in ioscan... I don't understand how only adding the IQN into the initiator group on the Nexenta fixed it - the WNN was in there and it didn't work... oh well!
H/W Path Class Description
0/4/1 slot PCI Slot
0/4/1/0 fc HP A6826-60001 2Gb Dual Port PCI/PCI-X Fibre Channel Adapter (FC Port 1)
0/4/1/0.8 fcp FCP Protocol Adapter
0/4/1/0.8.0.255.0 ext_bus FCP Device Interface
0/4/1/0.8.0.255.0.0.0 disk NEXENTA COMSTAR
255/0 iscsi iSCSI Virtual Node
255/0/0.0 ext_bus iSCSI-SCSI Protocol Interface
255/0/0.0.0.0 disk NEXENTA COMSTAR
Now to play - Long live the Itanium!
After moving back from the U.A.E., we have purchased a small little bungalo in Kitchener, Ontario. In an effort to make it mine and save energy, I have decided to invest in some DIY smart home technology.
First off, I have purchased a Radiostat thermostat. This thermostat is WiFi connected and has cloud based control (boo) and a local API (yeay!). I have begun using the local API through a Soekris net-4801 running Debian. I have written some PHP scripts that control the automation.
The first is the poller. It polls the thermostat (every minute) and the local weather station data at the University of Waterloo (every fifteen minutes) and places the data in a postgresql database only if the data has changed from last poll.
The second script is the event script. It will check for certain events (calendar events/presence indicators/weather data events/etc) and take appropriate actions (adjust thermostat/email alerts/control lighting/etc.).
Finally, there is a data export script that will reformat the data into standard minute intervals (averaging values from the irregular intervals stored in the database which I will then display using HighCharts. The results (below) in MS Excel already look promising.
I have investigated some other inputs:
DSC alarm panel - I am purchaing an IT-100 for integration with my DSC-1864 and existng sensors. This will help me determine presence and also control/give status for my garage doors.
Dallas Semiconductor 1-wire bus solution from HW-Group they call Poseidon, but it came to almost $2K CAD for only a hadful of temp/humidity sensors. I want to monitor my fridge as well as automate the bathroom exhaust fans (to prevent mould/mildew)
I am going to buy some insteon ceiling fan controllers and other insteon gear. I will make my outdoor lights run off a combination of moton sensors (data from DSC alarm panel), sun-times (dim after dark) and solar radiation data from the University of Waterloo weather station.