oh, we don't have these nice birds at home
A bit of music:
even Diane's mom can still play plano
We then went to see poor Tata who fell in the street and got bleeding in her brain as a result. Sadly it did affect her mental capacities significantly. We're hoping that she may improve, but it may not happen:
A few pictures I found:
For New Years Eve, we went to a nice restaurant:
On New Year, we had Martine and François Franc:
Patrick build an arduino based matrix, lower res than mine, but nicer build
And that was it, thank you so much for my dad for all the nice lunches and dinners and it was a pleasure to see the rest of the family again
We then walked around the neighborhood:
and made it to les Halles and Mairie de Paris for their little Xmas houses:
After seeing my mom another day, we walked around concorde and Madeleine:
We then headed to "grands magasins" (printemps/haussmann):
Another morning, we went to Musée de l'homme (museum of man) that had been recently rebuilt. It's right by the Eiffel tower:
From there, a few nice views:
We then headed towards la déefence where we hadn't been for 10 years. They had a big collection of Xmas houses, which sadly closed earlier than I planned, but we got to see quickly:
Then, we saw the houses:
The stores nearby were also nice, as well as the surroundings with lighting:
Our last Paris views were a few views from the new Google Paris building:
and after some food shopping, time to go home:
Before I go there, yes, giving --privileged will "fix" all your problems but it will also give full access to everything in your container, where the container can wipe the host device, steal password from memory outside the container and so forth. Maybe that's ok for you anyway, but if not, read on:
This does 2 things: 1) create the device in the container, and 2) give the container write access to the block device (more or that later)
docker run --device=/dev/ttyUSB0 -i -t --entrypoint /bin/bash --cap-add SYS_PTRACE debian:amd64
I added SYS_PTRACE so that you can use strace -e trace=file command
to debug access problems
docker run -v /dev/bus:/dev/bus:ro -v /dev/serial:/dev/serial:ro -i -t --entrypoint /bin/bash --cap-add SYS_PTRACE debian:amd64
This will make /dev/bus and /dev/serial show up as bind mounts in your container. Yet you will find that _fastboot devices or adb_ will not work. Strace will show you permission denied. What you want instead is this:
docker run --device=/dev/bus -v /dev/serial:/dev/serial:ro -i -t --entrypoint /bin/bash --cap-add SYS_PTRACE debian:amd64
See https://docs.docker.com/engine/reference/run/#runtime-privilege-and-linux-capabilities
This mounts /dev/bus in your container and gives you access to all the block/character devices in there. Now, fastboot will work. Well, it will work until...
Yeah, this is where things get more hairy. what the --device command above did was give access to all the block/character devices that existed when your container was created. If new ones appear (unplugging and replugging a device or rebooting it), those don't work.
I have not found a way to get docker to make them work after the container has started.
Thankfully there is a clue here: https://www.kernel.org/doc/Documentation/cgroup-v1/devices.txt
You want to go back to running
docker run -v /dev/bus:/dev/bus:ro -v /dev/serial:/dev/serial:ro -i -t --entrypoint /bin/bash --cap-add SYS_PTRACE debian:amd64
Then, grab the container ID in $A:
A=$( docker ps |awk '/bin.bash/ { print $1 }' )
Note the major number of your device:
root@fuchsia-tests-x64-lab01-0002:/sys/fs/cgroup# l /dev/bus/usb/004/* | head -1 crw-rw-r-- 1 root root 189, 384 Dec 18 17:51 /dev/bus/usb/004/001Here it's 189. What changes it the minor number (384) when you plug/unplug devices.
Finally, tell the linux container via an opaque cgroup interface, that all character devices of major number 189, are allowed:
root@fuchsia-tests-x64-lab01-0002:~# echo 'c 189:* rwm' > /sys/fs/cgroup/devices/docker/$A*/devices.allow
After that, things should work.
root@fuchsia-tests-x64-lab01-0002:~# echo 'c 188:* rwm' > /sys/fs/cgroup/devices/docker/$A*/devices.allow
Then inside the container, create them all:
root@f47dbbab392b:/dev# for i in $(seq 1 255); do mknod ttyUSB$i c 188 $i; done
Hope this helps!
xhci_hcd 0000:00:14.0: Max number of devices this xHCI host supports is 32
?
Wait, you're saying, but USB should support 127 devices (which include hub ports), why only 32?
Well, xhci/USB3 actually has an extra limit of 96 endpoints and each device uses 3 endpoints, which leaves you with only 32 devices. Yes, this is terrible, I agree. It's also not well documented and few people know how to get around it.
https://forums.intel.com/s/question/0D50P00004905stSAA/hardware-limitations-on-usb-endpoints-xhci?language=en_US contains more details, although apparently some further details are only available under NDA, but it looks like a mess.
Originally I found this page which explains how to connect USB3 hubs with USB2 cables to save a few USB IDs, but ultimately it does not contain the real solution which is:
If you need more than 32 devices, do not use (and disable) USB3/xhci
Yes, it is that sad, intel has actually designed a newer USB that is much much worse than the previous version as far as number of devices is concerned.
What wasn't clear to me is that xhci supports USB2 and USB1 devices, but no matter what devices you use (USB2 or USB1), you're still limited by that artificial 32 device limit that is due to the broken design of xhci as long as the xhci controller is handling those USB2/USB1 devices for you.
I've been told that some motherboards auto assign their USB ports to an ehci controller or xhci controller depending on what you plug into them. If so, this is the time to plug your USB3 hub with a USB2 cable to force the port to be routed to EHCI. This didn't work on the motherboard I tried on, however.
Now, the good news is that because motherboards try to work with older operating systems that may not support xhci, they usually provide an ehci controller too, the only issue is to get those USB ports assigned to the ehci controller(s).
How do you do this?
06:04.0 USB controller: VIA Technologies, Inc. VT82xx/62xx UHCI USB 1.1 Controller (rev 62) 06:04.1 USB controller: VIA Technologies, Inc. VT82xx/62xx UHCI USB 1.1 Controller (rev 62) 06:04.2 USB controller: VIA Technologies, Inc. USB 2.0 (rev 65)
Now, I found another interesting way to do this, on some motherboards you can reroute the USB ports to the USB2 chipset without changing the bios. See https://www.systutorials.com/241533/how-to-force-a-usb-3-0-port-to-work-in-usb-2-0-mode-in-linux
In the case of my supermicro board, I didn't look at how the two EHCI (USB2) controllers were routed, but it had extra USB cables on the motherboard, so I bought USB headers installed them on the front, and moved some USB devices to them: https://www.amazon.com/gp/product/B00NMBXUXI .
Note that you likely don't want to buy a USB-3 PCI(-e) card like https://www.amazon.com/gp/product/B00FPIMICA because it creates a new root hub but only allows a measly extra 30-ish devices to be added (vs 120+ with the USB2 card mentioned above).
Big thanks to
The Asian Art Museum was a nice venue:
Seafood was actually good:
As usual for those parties, people were dressed up nicely:
And of course, we were in a museum, so some of the rooms were open for us too:
We were there from open to close, and it was well worth it.
The history of the battle that happened in Truk Lagoon is fascinating, but in a nutshell, the Japanese forces were on the retreat and they knew they would be attacked, so they moved out all their big ships, but were not able to move out their smaller ships in time. They were all sunk in shallow waters, creating lots of artificial reefs that can now be dived. It is sobering to see the loss of Japanese life that happened there in all those boats that got sunk. At the same time, it is quite interesting to see this slice of history with bullets, bombs, tanks, parts of airplanes and trucks loaded on those boats, and sunk.
Per recommendation, I booked with the Truk Odyssey, captained by Mike, an American who has dived all those wrecks probably more than anyone else, and did a really good video documentary on them, which we used for our dive briefings.
The Truk Odyssey was a spacious boat with a great crew. The food was adequate but not beyond that, and the service was good but didn't match the Waow or Philippines Siren. That being said, it was more that good enough. A big plus was the knowledge of all the staff on the boat and their catering to people with rebreathers, double tanks, or fancy deco mixes. Their biggest downside IMO is that they only offer 5.5 days of diving while Trukmaster had the option of a 10 day trip instead of 7 days. Getting to Truk and back is a major pain, so doing a longer diving trip can make sense, and 8.5/9 days of diving may be a sweet spot.Back to Odyssey, we had a great dive guide, Bobo, who knew all the boats like the back of his hand and took us in dark corners we'd never have found or dared going on our own. His knowledge of all those wrecks sure came in handy and he was also quite funny:
trying to fin the boat around to our buoy :)
our dive guides spent deco time doing bubble ring wars, this one could make them with his fin, awesome!
Some divers had a lot of heavy gear, so our boat had a nice lift to get you back out of the water:
Truk had ok reefs that went on top of the sunk boats, but the sea life was still on the limited side compared to most places we've been to. Nonetheless, we saw a few nice things anyway:
friendly looking leopard/zebra shark
I was able to spot a humphead parrotfish, rare in that area
During the trip, Jennifer and I did the PADI wreck diving certification. It had some useful concepts, but its limitations made it not useful at all for the kinds of diving we did where we were deep in enclosed spaces (engine rooms) for up to 15mn or more at times. It would have been helpful if Jennifer and I did wreck diving on our own without guides, but it was so much more efficient to go with experienced guides, which we did have on the boat. At least we learned a few concepts like frog kicks to avoid silting out a wreck and making it hard to see. I also got to try a pony bottle, although I couldn't get certified for tech diving and doing deco on 50% or 100% O2.
We did 4 dives per day on most day, with the option of a night dive, of which I did a few, but they were not earth shattering. We found lots of things on those boats, despite their age now, and many things having been eaten away by the seat.
Random eating-ware, bottles, medicine vials, and also gas masks:
lots of beer and sake bottles (sadly the corks failed and they were empty)
Toilets and Japanese baths:
Favourite parts of the ships were telegraphs (to send orders from one part of the boat to the other):
Engine Rooms, lights:
many doors taking us into the insides of the boats
lots of light bulbs somehow survived the water pressure
many light switches and plugs, it was tempting to try to turn them on :)
Gas cartridges, gas tanks, ammunition, bombs:
Then, engines, plane parts, tanks, trucks, and more:
plane parts, including wings, and fuel barrels
The outside of the boats was interesting too. Several had huge canons, and others were laying on their side and you could see their prop
Rio de Janeiro, formerly a cruise ship, was laying on its side
We also went to dive one the Betty Bomber, a plane that had crashed and was at the bottom:
Then, there was the San Francisco Maru, the deepest wreck you could dive. Deck is at 50m deep and it goes down to about 65m. We only went down to 55m, which allowed us to see the first level of the cargo hold (the lower ones were not safe for us to reach on our 24% nitrox mix). We prepared for that dive given how deep it was, and on 24% nitrox, we budgeted for only 12 minutes at the bottom. While it might seem like a long time, it sure wasn't, and even less so when I was fairly narc'ed (nitrogen narcosis), which for me caused me to struggle more at simple tasks:
We had a fair amount of technical divers with proper dive gear, including rebreathers
I was deep enough (55m) that my computer gave me a PPO2 warning (oxygen toxicity) instead of my depth
ladder down to even deeper where I couldn't go without trimix
tank #2 and tank #3 on top of it
During the longish way up to deep deco stops on the way, Bobo, our guide, brought back the extra emergency air tanks none of us ended up needing:
And that was it for the Odyssey: 24 dives (out of 27 possible) in 5.5 days of diving. While I wish we could have dived a bit longer and didn't have to wait 36H between our last dive and our flight, we sure got to see a lot during those dives, thanks again to our expert guide, Bobo, who made sure that each and every one of those dives counted.
You can get a bit of a feel of what things looked like inside the boats with those videos:
The last day, due to unfortunate timing of the rare United flight to Truk, we spent the entire day and a few hours of the night at Truk Blue Lagoon Resort for our flight nicely timed at 02:50 (ugh!)
The founder of blue lagoon resort, a micronesian who documented what the Japanese did and started the first diving on those Japanese ships
A nice map of all the dive sites in our area
I got to see mud skippers for real, the coolest fish that can leave the water and hop on land
Lots of ruins left from the Japanese occupation
and after a mere 3H of sleep we had to wake up and go to the airport for TRK -> Guam -> HNL -> SFO. Sucky times.