{"generator":"GNU social 2.0.2-dev","title":"Conversation","totalItems":16,"items":[{"actor":{"id":"https:\/\/mstdn.social\/users\/erikarn","displayName":"Adrian Chadd <verified.png>","status_net":{"avatarLinks":[{"url":"https:\/\/gnusocial.jp\/avatar\/312389-original-tmp20250104031217.webp","rel":"avatar","type":"image\/webp","width":266,"height":266},{"url":"https:\/\/gnusocial.jp\/avatar\/312389-96-20250106194351.webp","rel":"avatar","type":"image\/webp","width":96,"height":96},{"url":"https:\/\/gnusocial.jp\/avatar\/312389-48-20250119081240.webp","rel":"avatar","type":"image\/webp","width":48,"height":48},{"url":"https:\/\/gnusocial.jp\/avatar\/312389-24-20250119081240.webp","rel":"avatar","type":"image\/webp","width":24,"height":24}],"profile_info":{"local_id":"312389"}},"image":{"url":"https:\/\/gnusocial.jp\/avatar\/312389-96-20250106194351.webp","rel":"avatar","type":"image\/webp","width":96,"height":96},"objectType":"person","summary":"I have some code and radio stuff. https:\/\/erikarn.github.io.I&#39;m on twitter. https:\/\/twitter.com\/erikarn .I do FreeBSD related stuff. https:\/\/people.freebsd.org\/~adrian\/I dunno, what else? You can just find me via google. I&#39;ve been on the internet since the 90s.I&#39;m KK6VQK when I talk on the radio.","url":"https:\/\/mstdn.social\/@erikarn","portablecontacts_net":{"preferredUsername":"erikarn","displayName":"Adrian Chadd <verified.png>","note":"I have some code and radio stuff. https:\/\/erikarn.github.io.I&#39;m on twitter. https:\/\/twitter.com\/erikarn .I do FreeBSD related stuff. https:\/\/people.freebsd.org\/~adrian\/I dunno, what else? You can just find me via google. I&#39;ve been on the internet since the 90s.I&#39;m KK6VQK when I talk on the radio."}},"content":"<p><a href=\"https:\/\/mastodon.social\/@whitequark\" class=\"u-url mention\">@whitequark<\/a> <a href=\"https:\/\/hails.org\/@hailey\" class=\"u-url mention\">@hailey<\/a> oh yeah i forgot to mention how utterly bonkers the timing can be.<\/p><p>It's not always the controller either. Like, you can submit a buffer for completion to the controller and context switch \/ copy it - this is what userland libusb + ugen devices do! - if you can do it to a process then you can do it to a VM! - but the devices themselves are also very latency sensitive and in a lot of cases shit the bed if your transfers aren't setup fast enough!<\/p>","generator":{"id":"tag:gnusocial.jp,2026-06-28:notice-source:ActivityPub","objectType":"application","status_net":{"source_code":"ActivityPub"}},"id":"https:\/\/mstdn.social\/users\/erikarn\/statuses\/115799389395689586","object":{"id":"https:\/\/mstdn.social\/users\/erikarn\/statuses\/115799389395689586","objectType":"note","content":"<p><a href=\"https:\/\/mastodon.social\/@whitequark\" class=\"u-url mention\">@whitequark<\/a> <a href=\"https:\/\/hails.org\/@hailey\" class=\"u-url mention\">@hailey<\/a> oh yeah i forgot to mention how utterly bonkers the timing can be.<\/p><p>It's not always the controller either. Like, you can submit a buffer for completion to the controller and context switch \/ copy it - this is what userland libusb + ugen devices do! - if you can do it to a process then you can do it to a VM! - but the devices themselves are also very latency sensitive and in a lot of cases shit the bed if your transfers aren't setup fast enough!<\/p>","url":"https:\/\/gnusocial.jp\/notice\/11805759","status_net":{"notice_id":null},"inReplyTo":{"objectType":"note","id":"https:\/\/mastodon.social\/users\/whitequark\/statuses\/115799279760917008","url":"https:\/\/mastodon.social\/@whitequark\/115799279760917008"}},"to":[{"objectType":"http:\/\/activitystrea.ms\/schema\/1.0\/person","id":"https:\/\/hails.org\/users\/hailey"},{"objectType":"http:\/\/activitystrea.ms\/schema\/1.0\/person","id":"https:\/\/mastodon.social\/users\/whitequark"},{"objectType":"http:\/\/activitystrea.ms\/schema\/1.0\/collection","id":"http:\/\/activityschema.org\/collection\/public"}],"status_net":{"conversation":"tag:gnusocial.jp,2025-12-28:objectType=thread:nonce=0b5d1313dac80faf","notice_info":{"local_id":"11805759","source":"ActivityPub"}},"published":"2025-12-28T21:52:40+00:00","provider":{"objectType":"service","displayName":"GNU social JP","url":"https:\/\/gnusocial.jp\/"},"verb":"post","url":"https:\/\/gnusocial.jp\/notice\/11805759"},{"actor":{"id":"https:\/\/mstdn.social\/users\/erikarn","displayName":"Adrian Chadd <verified.png>","status_net":{"avatarLinks":[{"url":"https:\/\/gnusocial.jp\/avatar\/312389-original-tmp20250104031217.webp","rel":"avatar","type":"image\/webp","width":266,"height":266},{"url":"https:\/\/gnusocial.jp\/avatar\/312389-96-20250106194351.webp","rel":"avatar","type":"image\/webp","width":96,"height":96},{"url":"https:\/\/gnusocial.jp\/avatar\/312389-48-20250119081240.webp","rel":"avatar","type":"image\/webp","width":48,"height":48},{"url":"https:\/\/gnusocial.jp\/avatar\/312389-24-20250119081240.webp","rel":"avatar","type":"image\/webp","width":24,"height":24}],"profile_info":{"local_id":"312389"}},"image":{"url":"https:\/\/gnusocial.jp\/avatar\/312389-96-20250106194351.webp","rel":"avatar","type":"image\/webp","width":96,"height":96},"objectType":"person","summary":"I have some code and radio stuff. https:\/\/erikarn.github.io.I&#39;m on twitter. https:\/\/twitter.com\/erikarn .I do FreeBSD related stuff. https:\/\/people.freebsd.org\/~adrian\/I dunno, what else? You can just find me via google. I&#39;ve been on the internet since the 90s.I&#39;m KK6VQK when I talk on the radio.","url":"https:\/\/mstdn.social\/@erikarn","portablecontacts_net":{"preferredUsername":"erikarn","displayName":"Adrian Chadd <verified.png>","note":"I have some code and radio stuff. https:\/\/erikarn.github.io.I&#39;m on twitter. https:\/\/twitter.com\/erikarn .I do FreeBSD related stuff. https:\/\/people.freebsd.org\/~adrian\/I dunno, what else? You can just find me via google. I&#39;ve been on the internet since the 90s.I&#39;m KK6VQK when I talk on the radio."}},"content":"<p><a href=\"https:\/\/mastodon.social\/@whitequark\" class=\"u-url mention\">@whitequark<\/a> <a href=\"https:\/\/hails.org\/@hailey\" class=\"u-url mention\">@hailey<\/a> also holy crap usb-over-ip in linux isn't virtualising the endpoints, but is .. exposing hardware? oh holy crap<\/p>","generator":{"id":"tag:gnusocial.jp,2026-06-28:notice-source:ActivityPub","objectType":"application","status_net":{"source_code":"ActivityPub"}},"id":"https:\/\/mstdn.social\/users\/erikarn\/statuses\/115799391170119685","object":{"id":"https:\/\/mstdn.social\/users\/erikarn\/statuses\/115799391170119685","objectType":"note","content":"<p><a href=\"https:\/\/mastodon.social\/@whitequark\" class=\"u-url mention\">@whitequark<\/a> <a href=\"https:\/\/hails.org\/@hailey\" class=\"u-url mention\">@hailey<\/a> also holy crap usb-over-ip in linux isn't virtualising the endpoints, but is .. exposing hardware? oh holy crap<\/p>","url":"https:\/\/mstdn.social\/@erikarn\/115799391170119685","status_net":{"notice_id":null},"inReplyTo":{"objectType":"note","id":"https:\/\/mstdn.social\/users\/erikarn\/statuses\/115799389395689586","url":"https:\/\/gnusocial.jp\/notice\/11805759"}},"to":[{"objectType":"http:\/\/activitystrea.ms\/schema\/1.0\/person","id":"https:\/\/hails.org\/users\/hailey"},{"objectType":"http:\/\/activitystrea.ms\/schema\/1.0\/person","id":"https:\/\/mastodon.social\/users\/whitequark"},{"objectType":"http:\/\/activitystrea.ms\/schema\/1.0\/collection","id":"http:\/\/activityschema.org\/collection\/public"}],"status_net":{"conversation":"tag:gnusocial.jp,2025-12-28:objectType=thread:nonce=0b5d1313dac80faf","notice_info":{"local_id":"11805760","source":"ActivityPub"}},"published":"2025-12-28T21:52:39+00:00","provider":{"objectType":"service","displayName":"GNU social JP","url":"https:\/\/gnusocial.jp\/"},"verb":"post","url":"https:\/\/mstdn.social\/@erikarn\/115799391170119685"},{"actor":{"id":"https:\/\/mastodon.social\/users\/whitequark","displayName":"\u2727\u2726Catherine\u2726\u2727","status_net":{"avatarLinks":[{"url":"https:\/\/gnusocial.jp\/avatar\/105710-original-tmp20230309163231.webp","rel":"avatar","type":"image\/webp","width":400,"height":400},{"url":"https:\/\/gnusocial.jp\/avatar\/105710-96-20230309163231.webp","rel":"avatar","type":"image\/webp","width":96,"height":96},{"url":"https:\/\/gnusocial.jp\/avatar\/105710-48-20230309163231.webp","rel":"avatar","type":"image\/webp","width":48,"height":48},{"url":"https:\/\/gnusocial.jp\/avatar\/105710-24-20230309163231.webp","rel":"avatar","type":"image\/webp","width":24,"height":24}],"profile_info":{"local_id":"105710"}},"image":{"url":"https:\/\/gnusocial.jp\/avatar\/105710-96-20230309163231.webp","rel":"avatar","type":"image\/webp","width":96,"height":96},"objectType":"person","summary":"cat(girl) shaped object, hardware omelas kid&quot;A cat is valued for companionship and its ability to kill vermin.&quot;\u2727 i have friends, and my purpose is to support them \u2727\u2726 i have enemies, and my purpose is to eliminate them \u2726\u2736 i have a life, and my purpose is to reach heaven by violence \u2736\u2737 nothing else matters \u2737#searchable","url":"https:\/\/mastodon.social\/@whitequark","portablecontacts_net":{"preferredUsername":"whitequark","displayName":"\u2727\u2726Catherine\u2726\u2727","note":"cat(girl) shaped object, hardware omelas kid&quot;A cat is valued for companionship and its ability to kill vermin.&quot;\u2727 i have friends, and my purpose is to support them \u2727\u2726 i have enemies, and my purpose is to eliminate them \u2726\u2736 i have a life, and my purpose is to reach heaven by violence \u2736\u2737 nothing else matters \u2737#searchable"}},"content":"<p><a href=\"https:\/\/mstdn.social\/@erikarn\" class=\"u-url mention\">@erikarn<\/a> <a href=\"https:\/\/hails.org\/@hailey\" class=\"u-url mention\">@hailey<\/a> it's more complicated than that<\/p><p>for the USB host case, you have a \"VHCI\", but the rest of the USB stack is still used basically as-is. it is fully and completely unprepared for the hardware to behave in unexpected ways, e.g. for packet loss<\/p>","generator":{"id":"tag:gnusocial.jp,2026-06-28:notice-source:ActivityPub","objectType":"application","status_net":{"source_code":"ActivityPub"}},"id":"https:\/\/mastodon.social\/users\/whitequark\/statuses\/115799408974647405","object":{"id":"https:\/\/mastodon.social\/users\/whitequark\/statuses\/115799408974647405","objectType":"note","content":"<p><a href=\"https:\/\/mstdn.social\/@erikarn\" class=\"u-url mention\">@erikarn<\/a> <a href=\"https:\/\/hails.org\/@hailey\" class=\"u-url mention\">@hailey<\/a> it's more complicated than that<\/p><p>for the USB host case, you have a \"VHCI\", but the rest of the USB stack is still used basically as-is. it is fully and completely unprepared for the hardware to behave in unexpected ways, e.g. for packet loss<\/p>","url":"https:\/\/gnusocial.jp\/notice\/11805761","status_net":{"notice_id":null},"inReplyTo":{"objectType":"note","id":"https:\/\/mstdn.social\/users\/erikarn\/statuses\/115799391170119685","url":"https:\/\/mstdn.social\/@erikarn\/115799391170119685"}},"to":[{"objectType":"http:\/\/activitystrea.ms\/schema\/1.0\/person","id":"https:\/\/hails.org\/users\/hailey"},{"objectType":"http:\/\/activitystrea.ms\/schema\/1.0\/person","id":"https:\/\/mstdn.social\/users\/erikarn"},{"objectType":"http:\/\/activitystrea.ms\/schema\/1.0\/collection","id":"http:\/\/activityschema.org\/collection\/public"}],"status_net":{"conversation":"tag:gnusocial.jp,2025-12-28:objectType=thread:nonce=0b5d1313dac80faf","notice_info":{"local_id":"11805761","source":"ActivityPub"}},"published":"2025-12-28T21:52:37+00:00","provider":{"objectType":"service","displayName":"GNU social JP","url":"https:\/\/gnusocial.jp\/"},"verb":"post","url":"https:\/\/gnusocial.jp\/notice\/11805761"},{"actor":{"id":"https:\/\/mastodon.social\/users\/whitequark","displayName":"\u2727\u2726Catherine\u2726\u2727","status_net":{"avatarLinks":[{"url":"https:\/\/gnusocial.jp\/avatar\/105710-original-tmp20230309163231.webp","rel":"avatar","type":"image\/webp","width":400,"height":400},{"url":"https:\/\/gnusocial.jp\/avatar\/105710-96-20230309163231.webp","rel":"avatar","type":"image\/webp","width":96,"height":96},{"url":"https:\/\/gnusocial.jp\/avatar\/105710-48-20230309163231.webp","rel":"avatar","type":"image\/webp","width":48,"height":48},{"url":"https:\/\/gnusocial.jp\/avatar\/105710-24-20230309163231.webp","rel":"avatar","type":"image\/webp","width":24,"height":24}],"profile_info":{"local_id":"105710"}},"image":{"url":"https:\/\/gnusocial.jp\/avatar\/105710-96-20230309163231.webp","rel":"avatar","type":"image\/webp","width":96,"height":96},"objectType":"person","summary":"cat(girl) shaped object, hardware omelas kid&quot;A cat is valued for companionship and its ability to kill vermin.&quot;\u2727 i have friends, and my purpose is to support them \u2727\u2726 i have enemies, and my purpose is to eliminate them \u2726\u2736 i have a life, and my purpose is to reach heaven by violence \u2736\u2737 nothing else matters \u2737#searchable","url":"https:\/\/mastodon.social\/@whitequark","portablecontacts_net":{"preferredUsername":"whitequark","displayName":"\u2727\u2726Catherine\u2726\u2727","note":"cat(girl) shaped object, hardware omelas kid&quot;A cat is valued for companionship and its ability to kill vermin.&quot;\u2727 i have friends, and my purpose is to support them \u2727\u2726 i have enemies, and my purpose is to eliminate them \u2726\u2736 i have a life, and my purpose is to reach heaven by violence \u2736\u2737 nothing else matters \u2737#searchable"}},"content":"<p><a href=\"https:\/\/mstdn.social\/@erikarn\" class=\"u-url mention\">@erikarn<\/a> <a href=\"https:\/\/hails.org\/@hailey\" class=\"u-url mention\">@hailey<\/a> it exposes the \"hardware\" side of the *HCI drivers to \"anything that can happen to packets on the network\", which these drivers are suuuper not designed for, and they'll happily panic your kernel if something goes slightly wrong. I'm shocked that WSL's USB support is as stable as it is, must've taken a lot of work to get there<\/p>","generator":{"id":"tag:gnusocial.jp,2026-06-28:notice-source:ActivityPub","objectType":"application","status_net":{"source_code":"ActivityPub"}},"id":"https:\/\/mastodon.social\/users\/whitequark\/statuses\/115799279760917008","object":{"id":"https:\/\/mastodon.social\/users\/whitequark\/statuses\/115799279760917008","objectType":"note","content":"<p><a href=\"https:\/\/mstdn.social\/@erikarn\" class=\"u-url mention\">@erikarn<\/a> <a href=\"https:\/\/hails.org\/@hailey\" class=\"u-url mention\">@hailey<\/a> it exposes the \"hardware\" side of the *HCI drivers to \"anything that can happen to packets on the network\", which these drivers are suuuper not designed for, and they'll happily panic your kernel if something goes slightly wrong. I'm shocked that WSL's USB support is as stable as it is, must've taken a lot of work to get there<\/p>","url":"https:\/\/mastodon.social\/@whitequark\/115799279760917008","status_net":{"notice_id":null},"inReplyTo":{"objectType":"note","id":"https:\/\/mastodon.social\/users\/whitequark\/statuses\/115799275663565427","url":"https:\/\/gnusocial.jp\/notice\/11805625"}},"to":[{"objectType":"http:\/\/activitystrea.ms\/schema\/1.0\/person","id":"https:\/\/hails.org\/users\/hailey"},{"objectType":"http:\/\/activitystrea.ms\/schema\/1.0\/person","id":"https:\/\/mstdn.social\/users\/erikarn"},{"objectType":"http:\/\/activitystrea.ms\/schema\/1.0\/collection","id":"http:\/\/activityschema.org\/collection\/public"}],"status_net":{"conversation":"tag:gnusocial.jp,2025-12-28:objectType=thread:nonce=0b5d1313dac80faf","notice_info":{"local_id":"11805629","source":"ActivityPub"}},"published":"2025-12-28T21:19:47+00:00","provider":{"objectType":"service","displayName":"GNU social JP","url":"https:\/\/gnusocial.jp\/"},"verb":"post","url":"https:\/\/mastodon.social\/@whitequark\/115799279760917008"},{"actor":{"id":"https:\/\/mstdn.social\/users\/erikarn","displayName":"Adrian Chadd <verified.png>","status_net":{"avatarLinks":[{"url":"https:\/\/gnusocial.jp\/avatar\/312389-original-tmp20250104031217.webp","rel":"avatar","type":"image\/webp","width":266,"height":266},{"url":"https:\/\/gnusocial.jp\/avatar\/312389-96-20250106194351.webp","rel":"avatar","type":"image\/webp","width":96,"height":96},{"url":"https:\/\/gnusocial.jp\/avatar\/312389-48-20250119081240.webp","rel":"avatar","type":"image\/webp","width":48,"height":48},{"url":"https:\/\/gnusocial.jp\/avatar\/312389-24-20250119081240.webp","rel":"avatar","type":"image\/webp","width":24,"height":24}],"profile_info":{"local_id":"312389"}},"image":{"url":"https:\/\/gnusocial.jp\/avatar\/312389-96-20250106194351.webp","rel":"avatar","type":"image\/webp","width":96,"height":96},"objectType":"person","summary":"I have some code and radio stuff. https:\/\/erikarn.github.io.I&#39;m on twitter. https:\/\/twitter.com\/erikarn .I do FreeBSD related stuff. https:\/\/people.freebsd.org\/~adrian\/I dunno, what else? You can just find me via google. I&#39;ve been on the internet since the 90s.I&#39;m KK6VQK when I talk on the radio.","url":"https:\/\/mstdn.social\/@erikarn","portablecontacts_net":{"preferredUsername":"erikarn","displayName":"Adrian Chadd <verified.png>","note":"I have some code and radio stuff. https:\/\/erikarn.github.io.I&#39;m on twitter. https:\/\/twitter.com\/erikarn .I do FreeBSD related stuff. https:\/\/people.freebsd.org\/~adrian\/I dunno, what else? You can just find me via google. I&#39;ve been on the internet since the 90s.I&#39;m KK6VQK when I talk on the radio."}},"content":"<p><a href=\"https:\/\/mastodon.social\/@whitequark\" class=\"u-url mention\">@whitequark<\/a> <a href=\"https:\/\/hails.org\/@hailey\" class=\"u-url mention\">@hailey<\/a> oh \/lord\/ ew ;p<\/p>","generator":{"id":"tag:gnusocial.jp,2026-06-28:notice-source:ActivityPub","objectType":"application","status_net":{"source_code":"ActivityPub"}},"id":"https:\/\/mstdn.social\/users\/erikarn\/statuses\/115799267042786558","object":{"id":"https:\/\/mstdn.social\/users\/erikarn\/statuses\/115799267042786558","objectType":"note","content":"<p><a href=\"https:\/\/mastodon.social\/@whitequark\" class=\"u-url mention\">@whitequark<\/a> <a href=\"https:\/\/hails.org\/@hailey\" class=\"u-url mention\">@hailey<\/a> oh \/lord\/ ew ;p<\/p>","url":"https:\/\/mstdn.social\/@erikarn\/115799267042786558","status_net":{"notice_id":null},"inReplyTo":{"objectType":"note","id":"https:\/\/mastodon.social\/users\/whitequark\/statuses\/115799026002377484","url":"https:\/\/gnusocial.jp\/notice\/11805306"}},"to":[{"objectType":"http:\/\/activitystrea.ms\/schema\/1.0\/person","id":"https:\/\/hails.org\/users\/hailey"},{"objectType":"http:\/\/activitystrea.ms\/schema\/1.0\/person","id":"https:\/\/mastodon.social\/users\/whitequark"},{"objectType":"http:\/\/activitystrea.ms\/schema\/1.0\/collection","id":"http:\/\/activityschema.org\/collection\/public"}],"status_net":{"conversation":"tag:gnusocial.jp,2025-12-28:objectType=thread:nonce=0b5d1313dac80faf","notice_info":{"local_id":"11805624","source":"ActivityPub"}},"published":"2025-12-28T21:18:48+00:00","provider":{"objectType":"service","displayName":"GNU social JP","url":"https:\/\/gnusocial.jp\/"},"verb":"post","url":"https:\/\/mstdn.social\/@erikarn\/115799267042786558"},{"actor":{"id":"https:\/\/mastodon.social\/users\/whitequark","displayName":"\u2727\u2726Catherine\u2726\u2727","status_net":{"avatarLinks":[{"url":"https:\/\/gnusocial.jp\/avatar\/105710-original-tmp20230309163231.webp","rel":"avatar","type":"image\/webp","width":400,"height":400},{"url":"https:\/\/gnusocial.jp\/avatar\/105710-96-20230309163231.webp","rel":"avatar","type":"image\/webp","width":96,"height":96},{"url":"https:\/\/gnusocial.jp\/avatar\/105710-48-20230309163231.webp","rel":"avatar","type":"image\/webp","width":48,"height":48},{"url":"https:\/\/gnusocial.jp\/avatar\/105710-24-20230309163231.webp","rel":"avatar","type":"image\/webp","width":24,"height":24}],"profile_info":{"local_id":"105710"}},"image":{"url":"https:\/\/gnusocial.jp\/avatar\/105710-96-20230309163231.webp","rel":"avatar","type":"image\/webp","width":96,"height":96},"objectType":"person","summary":"cat(girl) shaped object, hardware omelas kid&quot;A cat is valued for companionship and its ability to kill vermin.&quot;\u2727 i have friends, and my purpose is to support them \u2727\u2726 i have enemies, and my purpose is to eliminate them \u2726\u2736 i have a life, and my purpose is to reach heaven by violence \u2736\u2737 nothing else matters \u2737#searchable","url":"https:\/\/mastodon.social\/@whitequark","portablecontacts_net":{"preferredUsername":"whitequark","displayName":"\u2727\u2726Catherine\u2726\u2727","note":"cat(girl) shaped object, hardware omelas kid&quot;A cat is valued for companionship and its ability to kill vermin.&quot;\u2727 i have friends, and my purpose is to support them \u2727\u2726 i have enemies, and my purpose is to eliminate them \u2726\u2736 i have a life, and my purpose is to reach heaven by violence \u2736\u2737 nothing else matters \u2737#searchable"}},"content":"<p><a href=\"https:\/\/mstdn.social\/@erikarn\" class=\"u-url mention\">@erikarn<\/a> anyway <a href=\"https:\/\/hails.org\/@hailey\" class=\"u-url mention\">@hailey<\/a> two things I'd like to add:<br \/>1. is that USB is designed around the hardware responding in a fixed and very small amount of time to any request (this is also why until a few years ago, there were zero galvanic isolators for USB 2 high-speed, and musicians just suffered instead). virtualizing hardware that's so tightly based on meeting fixing timings is inherently fraught<br \/>2. while there is usb-over-ip, in linux in particular the problem is that...<\/p>","generator":{"id":"tag:gnusocial.jp,2026-06-28:notice-source:ActivityPub","objectType":"application","status_net":{"source_code":"ActivityPub"}},"id":"https:\/\/mastodon.social\/users\/whitequark\/statuses\/115799275663565427","object":{"id":"https:\/\/mastodon.social\/users\/whitequark\/statuses\/115799275663565427","objectType":"note","content":"<p><a href=\"https:\/\/mstdn.social\/@erikarn\" class=\"u-url mention\">@erikarn<\/a> anyway <a href=\"https:\/\/hails.org\/@hailey\" class=\"u-url mention\">@hailey<\/a> two things I'd like to add:<br \/>1. is that USB is designed around the hardware responding in a fixed and very small amount of time to any request (this is also why until a few years ago, there were zero galvanic isolators for USB 2 high-speed, and musicians just suffered instead). virtualizing hardware that's so tightly based on meeting fixing timings is inherently fraught<br \/>2. while there is usb-over-ip, in linux in particular the problem is that...<\/p>","url":"https:\/\/gnusocial.jp\/notice\/11805625","status_net":{"notice_id":null},"inReplyTo":{"objectType":"note","id":"https:\/\/mstdn.social\/users\/erikarn\/statuses\/115799267042786558","url":"https:\/\/mstdn.social\/@erikarn\/115799267042786558"}},"to":[{"objectType":"http:\/\/activitystrea.ms\/schema\/1.0\/person","id":"https:\/\/hails.org\/users\/hailey"},{"objectType":"http:\/\/activitystrea.ms\/schema\/1.0\/person","id":"https:\/\/mstdn.social\/users\/erikarn"},{"objectType":"http:\/\/activitystrea.ms\/schema\/1.0\/collection","id":"http:\/\/activityschema.org\/collection\/public"}],"status_net":{"conversation":"tag:gnusocial.jp,2025-12-28:objectType=thread:nonce=0b5d1313dac80faf","notice_info":{"local_id":"11805625","source":"ActivityPub"}},"published":"2025-12-28T21:18:46+00:00","provider":{"objectType":"service","displayName":"GNU social JP","url":"https:\/\/gnusocial.jp\/"},"verb":"post","url":"https:\/\/gnusocial.jp\/notice\/11805625"},{"actor":{"id":"https:\/\/mstdn.social\/users\/erikarn","displayName":"Adrian Chadd <verified.png>","status_net":{"avatarLinks":[{"url":"https:\/\/gnusocial.jp\/avatar\/312389-original-tmp20250104031217.webp","rel":"avatar","type":"image\/webp","width":266,"height":266},{"url":"https:\/\/gnusocial.jp\/avatar\/312389-96-20250106194351.webp","rel":"avatar","type":"image\/webp","width":96,"height":96},{"url":"https:\/\/gnusocial.jp\/avatar\/312389-48-20250119081240.webp","rel":"avatar","type":"image\/webp","width":48,"height":48},{"url":"https:\/\/gnusocial.jp\/avatar\/312389-24-20250119081240.webp","rel":"avatar","type":"image\/webp","width":24,"height":24}],"profile_info":{"local_id":"312389"}},"image":{"url":"https:\/\/gnusocial.jp\/avatar\/312389-96-20250106194351.webp","rel":"avatar","type":"image\/webp","width":96,"height":96},"objectType":"person","summary":"I have some code and radio stuff. https:\/\/erikarn.github.io.I&#39;m on twitter. https:\/\/twitter.com\/erikarn .I do FreeBSD related stuff. https:\/\/people.freebsd.org\/~adrian\/I dunno, what else? You can just find me via google. I&#39;ve been on the internet since the 90s.I&#39;m KK6VQK when I talk on the radio.","url":"https:\/\/mstdn.social\/@erikarn","portablecontacts_net":{"preferredUsername":"erikarn","displayName":"Adrian Chadd <verified.png>","note":"I have some code and radio stuff. https:\/\/erikarn.github.io.I&#39;m on twitter. https:\/\/twitter.com\/erikarn .I do FreeBSD related stuff. https:\/\/people.freebsd.org\/~adrian\/I dunno, what else? You can just find me via google. I&#39;ve been on the internet since the 90s.I&#39;m KK6VQK when I talk on the radio."}},"content":"<p><a href=\"https:\/\/mastodon.social\/@whitequark\" class=\"u-url mention\">@whitequark<\/a> <a href=\"https:\/\/hails.org\/@hailey\" class=\"u-url mention\">@hailey<\/a> I'll have to go dig to see if I misquoted and the USB-3 things are doing to 3 to 3 only and what they do when you plug a usb-3 hub into a usb-2 port.<\/p><p>There \/are\/ weird shenanigans though!<\/p>","generator":{"id":"tag:gnusocial.jp,2026-06-28:notice-source:ActivityPub","objectType":"application","status_net":{"source_code":"ActivityPub"}},"id":"https:\/\/mstdn.social\/users\/erikarn\/statuses\/115798957326673169","object":{"id":"https:\/\/mstdn.social\/users\/erikarn\/statuses\/115798957326673169","objectType":"note","content":"<p><a href=\"https:\/\/mastodon.social\/@whitequark\" class=\"u-url mention\">@whitequark<\/a> <a href=\"https:\/\/hails.org\/@hailey\" class=\"u-url mention\">@hailey<\/a> I'll have to go dig to see if I misquoted and the USB-3 things are doing to 3 to 3 only and what they do when you plug a usb-3 hub into a usb-2 port.<\/p><p>There \/are\/ weird shenanigans though!<\/p>","url":"https:\/\/mstdn.social\/@erikarn\/115798957326673169","status_net":{"notice_id":null},"inReplyTo":{"objectType":"note","id":"https:\/\/mastodon.social\/users\/whitequark\/statuses\/115798888733652311","url":"https:\/\/gnusocial.jp\/notice\/11805209"}},"to":[{"objectType":"http:\/\/activitystrea.ms\/schema\/1.0\/person","id":"https:\/\/hails.org\/users\/hailey"},{"objectType":"http:\/\/activitystrea.ms\/schema\/1.0\/person","id":"https:\/\/mastodon.social\/users\/whitequark"},{"objectType":"http:\/\/activitystrea.ms\/schema\/1.0\/collection","id":"http:\/\/activityschema.org\/collection\/public"}],"status_net":{"conversation":"tag:gnusocial.jp,2025-12-28:objectType=thread:nonce=0b5d1313dac80faf","notice_info":{"local_id":"11805305","source":"ActivityPub"}},"published":"2025-12-28T20:15:43+00:00","provider":{"objectType":"service","displayName":"GNU social JP","url":"https:\/\/gnusocial.jp\/"},"verb":"post","url":"https:\/\/mstdn.social\/@erikarn\/115798957326673169"},{"actor":{"id":"https:\/\/mastodon.social\/users\/whitequark","displayName":"\u2727\u2726Catherine\u2726\u2727","status_net":{"avatarLinks":[{"url":"https:\/\/gnusocial.jp\/avatar\/105710-original-tmp20230309163231.webp","rel":"avatar","type":"image\/webp","width":400,"height":400},{"url":"https:\/\/gnusocial.jp\/avatar\/105710-96-20230309163231.webp","rel":"avatar","type":"image\/webp","width":96,"height":96},{"url":"https:\/\/gnusocial.jp\/avatar\/105710-48-20230309163231.webp","rel":"avatar","type":"image\/webp","width":48,"height":48},{"url":"https:\/\/gnusocial.jp\/avatar\/105710-24-20230309163231.webp","rel":"avatar","type":"image\/webp","width":24,"height":24}],"profile_info":{"local_id":"105710"}},"image":{"url":"https:\/\/gnusocial.jp\/avatar\/105710-96-20230309163231.webp","rel":"avatar","type":"image\/webp","width":96,"height":96},"objectType":"person","summary":"cat(girl) shaped object, hardware omelas kid&quot;A cat is valued for companionship and its ability to kill vermin.&quot;\u2727 i have friends, and my purpose is to support them \u2727\u2726 i have enemies, and my purpose is to eliminate them \u2726\u2736 i have a life, and my purpose is to reach heaven by violence \u2736\u2737 nothing else matters \u2737#searchable","url":"https:\/\/mastodon.social\/@whitequark","portablecontacts_net":{"preferredUsername":"whitequark","displayName":"\u2727\u2726Catherine\u2726\u2727","note":"cat(girl) shaped object, hardware omelas kid&quot;A cat is valued for companionship and its ability to kill vermin.&quot;\u2727 i have friends, and my purpose is to support them \u2727\u2726 i have enemies, and my purpose is to eliminate them \u2726\u2736 i have a life, and my purpose is to reach heaven by violence \u2736\u2737 nothing else matters \u2737#searchable"}},"content":"<p><a href=\"https:\/\/mstdn.social\/@erikarn\" class=\"u-url mention\">@erikarn<\/a> <a href=\"https:\/\/hails.org\/@hailey\" class=\"u-url mention\">@hailey<\/a> there *are* USB 3 TTs (VL670\/671), you can't get them on the open market, I have the devboards and most devices don't work thru them due to rampant protocol violations they have<\/p>","generator":{"id":"tag:gnusocial.jp,2026-06-28:notice-source:ActivityPub","objectType":"application","status_net":{"source_code":"ActivityPub"}},"id":"https:\/\/mastodon.social\/users\/whitequark\/statuses\/115799026002377484","object":{"id":"https:\/\/mastodon.social\/users\/whitequark\/statuses\/115799026002377484","objectType":"note","content":"<p><a href=\"https:\/\/mstdn.social\/@erikarn\" class=\"u-url mention\">@erikarn<\/a> <a href=\"https:\/\/hails.org\/@hailey\" class=\"u-url mention\">@hailey<\/a> there *are* USB 3 TTs (VL670\/671), you can't get them on the open market, I have the devboards and most devices don't work thru them due to rampant protocol violations they have<\/p>","url":"https:\/\/gnusocial.jp\/notice\/11805306","status_net":{"notice_id":null},"inReplyTo":{"objectType":"note","id":"https:\/\/mstdn.social\/users\/erikarn\/statuses\/115798957326673169","url":"https:\/\/mstdn.social\/@erikarn\/115798957326673169"}},"to":[{"objectType":"http:\/\/activitystrea.ms\/schema\/1.0\/person","id":"https:\/\/hails.org\/users\/hailey"},{"objectType":"http:\/\/activitystrea.ms\/schema\/1.0\/person","id":"https:\/\/mstdn.social\/users\/erikarn"},{"objectType":"http:\/\/activitystrea.ms\/schema\/1.0\/collection","id":"http:\/\/activityschema.org\/collection\/public"}],"status_net":{"conversation":"tag:gnusocial.jp,2025-12-28:objectType=thread:nonce=0b5d1313dac80faf","notice_info":{"local_id":"11805306","source":"ActivityPub"}},"published":"2025-12-28T20:15:42+00:00","provider":{"objectType":"service","displayName":"GNU social JP","url":"https:\/\/gnusocial.jp\/"},"verb":"post","url":"https:\/\/gnusocial.jp\/notice\/11805306"},{"actor":{"id":"https:\/\/mstdn.social\/users\/erikarn","displayName":"Adrian Chadd <verified.png>","status_net":{"avatarLinks":[{"url":"https:\/\/gnusocial.jp\/avatar\/312389-original-tmp20250104031217.webp","rel":"avatar","type":"image\/webp","width":266,"height":266},{"url":"https:\/\/gnusocial.jp\/avatar\/312389-96-20250106194351.webp","rel":"avatar","type":"image\/webp","width":96,"height":96},{"url":"https:\/\/gnusocial.jp\/avatar\/312389-48-20250119081240.webp","rel":"avatar","type":"image\/webp","width":48,"height":48},{"url":"https:\/\/gnusocial.jp\/avatar\/312389-24-20250119081240.webp","rel":"avatar","type":"image\/webp","width":24,"height":24}],"profile_info":{"local_id":"312389"}},"image":{"url":"https:\/\/gnusocial.jp\/avatar\/312389-96-20250106194351.webp","rel":"avatar","type":"image\/webp","width":96,"height":96},"objectType":"person","summary":"I have some code and radio stuff. https:\/\/erikarn.github.io.I&#39;m on twitter. https:\/\/twitter.com\/erikarn .I do FreeBSD related stuff. https:\/\/people.freebsd.org\/~adrian\/I dunno, what else? You can just find me via google. I&#39;ve been on the internet since the 90s.I&#39;m KK6VQK when I talk on the radio.","url":"https:\/\/mstdn.social\/@erikarn","portablecontacts_net":{"preferredUsername":"erikarn","displayName":"Adrian Chadd <verified.png>","note":"I have some code and radio stuff. https:\/\/erikarn.github.io.I&#39;m on twitter. https:\/\/twitter.com\/erikarn .I do FreeBSD related stuff. https:\/\/people.freebsd.org\/~adrian\/I dunno, what else? You can just find me via google. I&#39;ve been on the internet since the 90s.I&#39;m KK6VQK when I talk on the radio."}},"content":"<p><a href=\"https:\/\/hails.org\/@hailey\" class=\"u-url mention\">@hailey<\/a> i kinda know? do you REALLY want to know? like really really REALLY really? :P<\/p>","generator":{"id":"tag:gnusocial.jp,2026-06-28:notice-source:ActivityPub","objectType":"application","status_net":{"source_code":"ActivityPub"}},"id":"https:\/\/mstdn.social\/users\/erikarn\/statuses\/115795733912864302","object":{"id":"https:\/\/mstdn.social\/users\/erikarn\/statuses\/115795733912864302","objectType":"note","content":"<p><a href=\"https:\/\/hails.org\/@hailey\" class=\"u-url mention\">@hailey<\/a> i kinda know? do you REALLY want to know? like really really REALLY really? :P<\/p>","url":"https:\/\/mstdn.social\/@erikarn\/115795733912864302","status_net":{"notice_id":null},"inReplyTo":{"objectType":"note","id":"https:\/\/hails.org\/users\/hailey\/statuses\/115795372493541571","url":"https:\/\/hails.org\/@hailey\/115795372493541571"}},"to":[{"objectType":"http:\/\/activitystrea.ms\/schema\/1.0\/person","id":"https:\/\/hails.org\/users\/hailey"},{"objectType":"http:\/\/activitystrea.ms\/schema\/1.0\/collection","id":"http:\/\/activityschema.org\/collection\/public"}],"status_net":{"conversation":"tag:gnusocial.jp,2025-12-28:objectType=thread:nonce=0b5d1313dac80faf","notice_info":{"local_id":"11805203","source":"ActivityPub"}},"published":"2025-12-28T19:40:26+00:00","provider":{"objectType":"service","displayName":"GNU social JP","url":"https:\/\/gnusocial.jp\/"},"verb":"post","url":"https:\/\/mstdn.social\/@erikarn\/115795733912864302"},{"actor":{"id":"https:\/\/hails.org\/users\/hailey","displayName":"Hailey","status_net":{"avatarLinks":[{"url":"https:\/\/gnusocial.jp\/avatar\/103362-original-tmp20260507231917.webp","rel":"avatar","type":"image\/webp","width":400,"height":400},{"url":"https:\/\/gnusocial.jp\/avatar\/103362-96-20260508000639.webp","rel":"avatar","type":"image\/webp","width":96,"height":96},{"url":"https:\/\/gnusocial.jp\/avatar\/103362-48-20260508000639.webp","rel":"avatar","type":"image\/webp","width":48,"height":48},{"url":"https:\/\/gnusocial.jp\/avatar\/103362-24-20260508000639.webp","rel":"avatar","type":"image\/webp","width":24,"height":24}],"profile_info":{"local_id":"103362"}},"image":{"url":"https:\/\/gnusocial.jp\/avatar\/103362-96-20260508000639.webp","rel":"avatar","type":"image\/webp","width":96,"height":96},"objectType":"person","summary":"woof! I am a computer tinkerer, polyglot hacker, music enjoyer, and bike rider. Also a huge nerd. Trans and queer \ud83c\udff3\ufe0f\u200d\u26a7\ufe0f \ud83c\udff3\ufe0f\u200d\ud83c\udf08 \u0398\u0394 pfp by https:\/\/bsky.app\/profile\/jankapnoc.bsky.social","url":"https:\/\/hails.org\/@hailey","portablecontacts_net":{"preferredUsername":"hailey","displayName":"Hailey","note":"woof! I am a computer tinkerer, polyglot hacker, music enjoyer, and bike rider. Also a huge nerd. Trans and queer \ud83c\udff3\ufe0f\u200d\u26a7\ufe0f \ud83c\udff3\ufe0f\u200d\ud83c\udf08 \u0398\u0394 pfp by https:\/\/bsky.app\/profile\/jankapnoc.bsky.social"}},"content":"<p>Why is USB pass-through to a VM often unreliable? Like specifically what is it about the protocol or implementations or whatever that makes it difficult to do?<\/p>","generator":{"id":"tag:gnusocial.jp,2026-06-28:notice-source:ActivityPub","objectType":"application","status_net":{"source_code":"ActivityPub"}},"id":"https:\/\/hails.org\/users\/hailey\/statuses\/115795372493541571","object":{"id":"https:\/\/hails.org\/users\/hailey\/statuses\/115795372493541571","objectType":"note","content":"<p>Why is USB pass-through to a VM often unreliable? Like specifically what is it about the protocol or implementations or whatever that makes it difficult to do?<\/p>","url":"https:\/\/hails.org\/@hailey\/115795372493541571","status_net":{"notice_id":null}},"to":[{"objectType":"http:\/\/activitystrea.ms\/schema\/1.0\/collection","id":"http:\/\/activityschema.org\/collection\/public"}],"status_net":{"conversation":"tag:gnusocial.jp,2025-12-28:objectType=thread:nonce=0b5d1313dac80faf","notice_info":{"local_id":"11805202","source":"ActivityPub"}},"published":"2025-12-28T19:40:26+00:00","provider":{"objectType":"service","displayName":"GNU social JP","url":"https:\/\/gnusocial.jp\/"},"verb":"post","url":"https:\/\/hails.org\/@hailey\/115795372493541571"},{"actor":{"id":"https:\/\/hails.org\/users\/hailey","displayName":"Hailey","status_net":{"avatarLinks":[{"url":"https:\/\/gnusocial.jp\/avatar\/103362-original-tmp20260507231917.webp","rel":"avatar","type":"image\/webp","width":400,"height":400},{"url":"https:\/\/gnusocial.jp\/avatar\/103362-96-20260508000639.webp","rel":"avatar","type":"image\/webp","width":96,"height":96},{"url":"https:\/\/gnusocial.jp\/avatar\/103362-48-20260508000639.webp","rel":"avatar","type":"image\/webp","width":48,"height":48},{"url":"https:\/\/gnusocial.jp\/avatar\/103362-24-20260508000639.webp","rel":"avatar","type":"image\/webp","width":24,"height":24}],"profile_info":{"local_id":"103362"}},"image":{"url":"https:\/\/gnusocial.jp\/avatar\/103362-96-20260508000639.webp","rel":"avatar","type":"image\/webp","width":96,"height":96},"objectType":"person","summary":"woof! I am a computer tinkerer, polyglot hacker, music enjoyer, and bike rider. Also a huge nerd. Trans and queer \ud83c\udff3\ufe0f\u200d\u26a7\ufe0f \ud83c\udff3\ufe0f\u200d\ud83c\udf08 \u0398\u0394 pfp by https:\/\/bsky.app\/profile\/jankapnoc.bsky.social","url":"https:\/\/hails.org\/@hailey","portablecontacts_net":{"preferredUsername":"hailey","displayName":"Hailey","note":"woof! I am a computer tinkerer, polyglot hacker, music enjoyer, and bike rider. Also a huge nerd. Trans and queer \ud83c\udff3\ufe0f\u200d\u26a7\ufe0f \ud83c\udff3\ufe0f\u200d\ud83c\udf08 \u0398\u0394 pfp by https:\/\/bsky.app\/profile\/jankapnoc.bsky.social"}},"content":"<p><a href=\"https:\/\/mstdn.social\/@erikarn\" class=\"u-url mention\">@erikarn<\/a> yes please!<\/p>","generator":{"id":"tag:gnusocial.jp,2026-06-28:notice-source:ActivityPub","objectType":"application","status_net":{"source_code":"ActivityPub"}},"id":"https:\/\/hails.org\/users\/hailey\/statuses\/115795966274753293","object":{"id":"https:\/\/hails.org\/users\/hailey\/statuses\/115795966274753293","objectType":"note","content":"<p><a href=\"https:\/\/mstdn.social\/@erikarn\" class=\"u-url mention\">@erikarn<\/a> yes please!<\/p>","url":"https:\/\/hails.org\/@hailey\/115795966274753293","status_net":{"notice_id":null},"inReplyTo":{"objectType":"note","id":"https:\/\/mstdn.social\/users\/erikarn\/statuses\/115795733912864302","url":"https:\/\/mstdn.social\/@erikarn\/115795733912864302"}},"to":[{"objectType":"http:\/\/activitystrea.ms\/schema\/1.0\/person","id":"https:\/\/mstdn.social\/users\/erikarn"},{"objectType":"http:\/\/activitystrea.ms\/schema\/1.0\/collection","id":"http:\/\/activityschema.org\/collection\/public"}],"status_net":{"conversation":"tag:gnusocial.jp,2025-12-28:objectType=thread:nonce=0b5d1313dac80faf","notice_info":{"local_id":"11805204","source":"ActivityPub"}},"published":"2025-12-28T19:40:25+00:00","provider":{"objectType":"service","displayName":"GNU social JP","url":"https:\/\/gnusocial.jp\/"},"verb":"post","url":"https:\/\/hails.org\/@hailey\/115795966274753293"},{"actor":{"id":"https:\/\/mstdn.social\/users\/erikarn","displayName":"Adrian Chadd <verified.png>","status_net":{"avatarLinks":[{"url":"https:\/\/gnusocial.jp\/avatar\/312389-original-tmp20250104031217.webp","rel":"avatar","type":"image\/webp","width":266,"height":266},{"url":"https:\/\/gnusocial.jp\/avatar\/312389-96-20250106194351.webp","rel":"avatar","type":"image\/webp","width":96,"height":96},{"url":"https:\/\/gnusocial.jp\/avatar\/312389-48-20250119081240.webp","rel":"avatar","type":"image\/webp","width":48,"height":48},{"url":"https:\/\/gnusocial.jp\/avatar\/312389-24-20250119081240.webp","rel":"avatar","type":"image\/webp","width":24,"height":24}],"profile_info":{"local_id":"312389"}},"image":{"url":"https:\/\/gnusocial.jp\/avatar\/312389-96-20250106194351.webp","rel":"avatar","type":"image\/webp","width":96,"height":96},"objectType":"person","summary":"I have some code and radio stuff. https:\/\/erikarn.github.io.I&#39;m on twitter. https:\/\/twitter.com\/erikarn .I do FreeBSD related stuff. https:\/\/people.freebsd.org\/~adrian\/I dunno, what else? You can just find me via google. I&#39;ve been on the internet since the 90s.I&#39;m KK6VQK when I talk on the radio.","url":"https:\/\/mstdn.social\/@erikarn","portablecontacts_net":{"preferredUsername":"erikarn","displayName":"Adrian Chadd <verified.png>","note":"I have some code and radio stuff. https:\/\/erikarn.github.io.I&#39;m on twitter. https:\/\/twitter.com\/erikarn .I do FreeBSD related stuff. https:\/\/people.freebsd.org\/~adrian\/I dunno, what else? You can just find me via google. I&#39;ve been on the internet since the 90s.I&#39;m KK6VQK when I talk on the radio."}},"content":"<p><a href=\"https:\/\/hails.org\/@hailey\" class=\"u-url mention\">@hailey<\/a> ok so<\/p><p>at the top level, before usb-c, it's mostly easy to move the whole controller into the VM. That's a mostly self contained thing. It's doubly easy if it's behind an IO-MMU which virtualises all the DMA addressing.<\/p><p>however, moving a USB device is problematic. All the hub and port control would be done by your host OS. You'd have to tell the host OS to pass something in by rule, eg \"hey any mass storage device on this physical controller? please map to the VM.\"<\/p>","generator":{"id":"tag:gnusocial.jp,2026-06-28:notice-source:ActivityPub","objectType":"application","status_net":{"source_code":"ActivityPub"}},"id":"https:\/\/mstdn.social\/users\/erikarn\/statuses\/115796019964408633","object":{"id":"https:\/\/mstdn.social\/users\/erikarn\/statuses\/115796019964408633","objectType":"note","content":"<p><a href=\"https:\/\/hails.org\/@hailey\" class=\"u-url mention\">@hailey<\/a> ok so<\/p><p>at the top level, before usb-c, it's mostly easy to move the whole controller into the VM. That's a mostly self contained thing. It's doubly easy if it's behind an IO-MMU which virtualises all the DMA addressing.<\/p><p>however, moving a USB device is problematic. All the hub and port control would be done by your host OS. You'd have to tell the host OS to pass something in by rule, eg \"hey any mass storage device on this physical controller? please map to the VM.\"<\/p>","url":"https:\/\/gnusocial.jp\/notice\/11805205","status_net":{"notice_id":null},"inReplyTo":{"objectType":"note","id":"https:\/\/hails.org\/users\/hailey\/statuses\/115795966274753293","url":"https:\/\/hails.org\/@hailey\/115795966274753293"}},"to":[{"objectType":"http:\/\/activitystrea.ms\/schema\/1.0\/person","id":"https:\/\/hails.org\/users\/hailey"},{"objectType":"http:\/\/activitystrea.ms\/schema\/1.0\/collection","id":"http:\/\/activityschema.org\/collection\/public"}],"status_net":{"conversation":"tag:gnusocial.jp,2025-12-28:objectType=thread:nonce=0b5d1313dac80faf","notice_info":{"local_id":"11805205","source":"ActivityPub"}},"published":"2025-12-28T19:40:24+00:00","provider":{"objectType":"service","displayName":"GNU social JP","url":"https:\/\/gnusocial.jp\/"},"verb":"post","url":"https:\/\/gnusocial.jp\/notice\/11805205"},{"actor":{"id":"https:\/\/mstdn.social\/users\/erikarn","displayName":"Adrian Chadd <verified.png>","status_net":{"avatarLinks":[{"url":"https:\/\/gnusocial.jp\/avatar\/312389-original-tmp20250104031217.webp","rel":"avatar","type":"image\/webp","width":266,"height":266},{"url":"https:\/\/gnusocial.jp\/avatar\/312389-96-20250106194351.webp","rel":"avatar","type":"image\/webp","width":96,"height":96},{"url":"https:\/\/gnusocial.jp\/avatar\/312389-48-20250119081240.webp","rel":"avatar","type":"image\/webp","width":48,"height":48},{"url":"https:\/\/gnusocial.jp\/avatar\/312389-24-20250119081240.webp","rel":"avatar","type":"image\/webp","width":24,"height":24}],"profile_info":{"local_id":"312389"}},"image":{"url":"https:\/\/gnusocial.jp\/avatar\/312389-96-20250106194351.webp","rel":"avatar","type":"image\/webp","width":96,"height":96},"objectType":"person","summary":"I have some code and radio stuff. https:\/\/erikarn.github.io.I&#39;m on twitter. https:\/\/twitter.com\/erikarn .I do FreeBSD related stuff. https:\/\/people.freebsd.org\/~adrian\/I dunno, what else? You can just find me via google. I&#39;ve been on the internet since the 90s.I&#39;m KK6VQK when I talk on the radio.","url":"https:\/\/mstdn.social\/@erikarn","portablecontacts_net":{"preferredUsername":"erikarn","displayName":"Adrian Chadd <verified.png>","note":"I have some code and radio stuff. https:\/\/erikarn.github.io.I&#39;m on twitter. https:\/\/twitter.com\/erikarn .I do FreeBSD related stuff. https:\/\/people.freebsd.org\/~adrian\/I dunno, what else? You can just find me via google. I&#39;ve been on the internet since the 90s.I&#39;m KK6VQK when I talk on the radio."}},"content":"<p><a href=\"https:\/\/hails.org\/@hailey\" class=\"u-url mention\">@hailey<\/a> Now, that means all the hub\/port control between that controller and your device needs to be done by the host, then you need to basically proxy all of the USB transfers from the host to the guest.<\/p><p>But there's no standardised \"paravirtualised USB\" stuff. So the VM has to basically take your device, \"fake\" a USB controller and port, and then have those USB transfers to\/from that particular device into the VM via this fake USB controller.<\/p>","generator":{"id":"tag:gnusocial.jp,2026-06-28:notice-source:ActivityPub","objectType":"application","status_net":{"source_code":"ActivityPub"}},"id":"https:\/\/mstdn.social\/users\/erikarn\/statuses\/115796026363903576","object":{"id":"https:\/\/mstdn.social\/users\/erikarn\/statuses\/115796026363903576","objectType":"note","content":"<p><a href=\"https:\/\/hails.org\/@hailey\" class=\"u-url mention\">@hailey<\/a> Now, that means all the hub\/port control between that controller and your device needs to be done by the host, then you need to basically proxy all of the USB transfers from the host to the guest.<\/p><p>But there's no standardised \"paravirtualised USB\" stuff. So the VM has to basically take your device, \"fake\" a USB controller and port, and then have those USB transfers to\/from that particular device into the VM via this fake USB controller.<\/p>","url":"https:\/\/mstdn.social\/@erikarn\/115796026363903576","status_net":{"notice_id":null},"inReplyTo":{"objectType":"note","id":"https:\/\/mstdn.social\/users\/erikarn\/statuses\/115796019964408633","url":"https:\/\/gnusocial.jp\/notice\/11805205"}},"to":[{"objectType":"http:\/\/activitystrea.ms\/schema\/1.0\/person","id":"https:\/\/hails.org\/users\/hailey"},{"objectType":"http:\/\/activitystrea.ms\/schema\/1.0\/collection","id":"http:\/\/activityschema.org\/collection\/public"}],"status_net":{"conversation":"tag:gnusocial.jp,2025-12-28:objectType=thread:nonce=0b5d1313dac80faf","notice_info":{"local_id":"11805206","source":"ActivityPub"}},"published":"2025-12-28T19:40:22+00:00","provider":{"objectType":"service","displayName":"GNU social JP","url":"https:\/\/gnusocial.jp\/"},"verb":"post","url":"https:\/\/mstdn.social\/@erikarn\/115796026363903576"},{"actor":{"id":"https:\/\/mstdn.social\/users\/erikarn","displayName":"Adrian Chadd <verified.png>","status_net":{"avatarLinks":[{"url":"https:\/\/gnusocial.jp\/avatar\/312389-original-tmp20250104031217.webp","rel":"avatar","type":"image\/webp","width":266,"height":266},{"url":"https:\/\/gnusocial.jp\/avatar\/312389-96-20250106194351.webp","rel":"avatar","type":"image\/webp","width":96,"height":96},{"url":"https:\/\/gnusocial.jp\/avatar\/312389-48-20250119081240.webp","rel":"avatar","type":"image\/webp","width":48,"height":48},{"url":"https:\/\/gnusocial.jp\/avatar\/312389-24-20250119081240.webp","rel":"avatar","type":"image\/webp","width":24,"height":24}],"profile_info":{"local_id":"312389"}},"image":{"url":"https:\/\/gnusocial.jp\/avatar\/312389-96-20250106194351.webp","rel":"avatar","type":"image\/webp","width":96,"height":96},"objectType":"person","summary":"I have some code and radio stuff. https:\/\/erikarn.github.io.I&#39;m on twitter. https:\/\/twitter.com\/erikarn .I do FreeBSD related stuff. https:\/\/people.freebsd.org\/~adrian\/I dunno, what else? You can just find me via google. I&#39;ve been on the internet since the 90s.I&#39;m KK6VQK when I talk on the radio.","url":"https:\/\/mstdn.social\/@erikarn","portablecontacts_net":{"preferredUsername":"erikarn","displayName":"Adrian Chadd <verified.png>","note":"I have some code and radio stuff. https:\/\/erikarn.github.io.I&#39;m on twitter. https:\/\/twitter.com\/erikarn .I do FreeBSD related stuff. https:\/\/people.freebsd.org\/~adrian\/I dunno, what else? You can just find me via google. I&#39;ve been on the internet since the 90s.I&#39;m KK6VQK when I talk on the radio."}},"content":"<p><a href=\"https:\/\/hails.org\/@hailey\" class=\"u-url mention\">@hailey<\/a> Now all the devices on a given controller kind of look like a LAN with automatically enumerated endpoint and device IDs. The USB controller doesn't REALLY care about all the devices its speaking to, it's just given a set of transfers to do to endpoints and when it issues the transfers it hopes to heck they're there.<\/p><p>But like, when you plug in hubs, those are store and forward things. And these days doing USB2 or USB1 on a USB-3 port can actually end up with a \"hub\" doing translation!<\/p>","generator":{"id":"tag:gnusocial.jp,2026-06-28:notice-source:ActivityPub","objectType":"application","status_net":{"source_code":"ActivityPub"}},"id":"https:\/\/mstdn.social\/users\/erikarn\/statuses\/115796035069916495","object":{"id":"https:\/\/mstdn.social\/users\/erikarn\/statuses\/115796035069916495","objectType":"note","content":"<p><a href=\"https:\/\/hails.org\/@hailey\" class=\"u-url mention\">@hailey<\/a> Now all the devices on a given controller kind of look like a LAN with automatically enumerated endpoint and device IDs. The USB controller doesn't REALLY care about all the devices its speaking to, it's just given a set of transfers to do to endpoints and when it issues the transfers it hopes to heck they're there.<\/p><p>But like, when you plug in hubs, those are store and forward things. And these days doing USB2 or USB1 on a USB-3 port can actually end up with a \"hub\" doing translation!<\/p>","url":"https:\/\/gnusocial.jp\/notice\/11805207","status_net":{"notice_id":null},"inReplyTo":{"objectType":"note","id":"https:\/\/mstdn.social\/users\/erikarn\/statuses\/115796026363903576","url":"https:\/\/mstdn.social\/@erikarn\/115796026363903576"}},"to":[{"objectType":"http:\/\/activitystrea.ms\/schema\/1.0\/person","id":"https:\/\/hails.org\/users\/hailey"},{"objectType":"http:\/\/activitystrea.ms\/schema\/1.0\/collection","id":"http:\/\/activityschema.org\/collection\/public"}],"status_net":{"conversation":"tag:gnusocial.jp,2025-12-28:objectType=thread:nonce=0b5d1313dac80faf","notice_info":{"local_id":"11805207","source":"ActivityPub"}},"published":"2025-12-28T19:40:21+00:00","provider":{"objectType":"service","displayName":"GNU social JP","url":"https:\/\/gnusocial.jp\/"},"verb":"post","url":"https:\/\/gnusocial.jp\/notice\/11805207"},{"actor":{"id":"https:\/\/mstdn.social\/users\/erikarn","displayName":"Adrian Chadd <verified.png>","status_net":{"avatarLinks":[{"url":"https:\/\/gnusocial.jp\/avatar\/312389-original-tmp20250104031217.webp","rel":"avatar","type":"image\/webp","width":266,"height":266},{"url":"https:\/\/gnusocial.jp\/avatar\/312389-96-20250106194351.webp","rel":"avatar","type":"image\/webp","width":96,"height":96},{"url":"https:\/\/gnusocial.jp\/avatar\/312389-48-20250119081240.webp","rel":"avatar","type":"image\/webp","width":48,"height":48},{"url":"https:\/\/gnusocial.jp\/avatar\/312389-24-20250119081240.webp","rel":"avatar","type":"image\/webp","width":24,"height":24}],"profile_info":{"local_id":"312389"}},"image":{"url":"https:\/\/gnusocial.jp\/avatar\/312389-96-20250106194351.webp","rel":"avatar","type":"image\/webp","width":96,"height":96},"objectType":"person","summary":"I have some code and radio stuff. https:\/\/erikarn.github.io.I&#39;m on twitter. https:\/\/twitter.com\/erikarn .I do FreeBSD related stuff. https:\/\/people.freebsd.org\/~adrian\/I dunno, what else? You can just find me via google. I&#39;ve been on the internet since the 90s.I&#39;m KK6VQK when I talk on the radio.","url":"https:\/\/mstdn.social\/@erikarn","portablecontacts_net":{"preferredUsername":"erikarn","displayName":"Adrian Chadd <verified.png>","note":"I have some code and radio stuff. https:\/\/erikarn.github.io.I&#39;m on twitter. https:\/\/twitter.com\/erikarn .I do FreeBSD related stuff. https:\/\/people.freebsd.org\/~adrian\/I dunno, what else? You can just find me via google. I&#39;ve been on the internet since the 90s.I&#39;m KK6VQK when I talk on the radio."}},"content":"<p><a href=\"https:\/\/hails.org\/@hailey\" class=\"u-url mention\">@hailey<\/a> ie, depending upon if you plug in a USB-3, USB-2, or USB-1 device, your XHCI USB-3 controller may actually be speaking that itself, or it may be speaking USB-3 only and USB-2 \/ USB-1 via a translation hub that will handle translating USB-2\/USB-1 to USB-3. (or USB-1 to USB-2 for EHCI.)<\/p><p>So suddenly your device ID and topology can change based on the \/type of device you plugged in\/!<\/p>","generator":{"id":"tag:gnusocial.jp,2026-06-28:notice-source:ActivityPub","objectType":"application","status_net":{"source_code":"ActivityPub"}},"id":"https:\/\/mstdn.social\/users\/erikarn\/statuses\/115796038770401052","object":{"id":"https:\/\/mstdn.social\/users\/erikarn\/statuses\/115796038770401052","objectType":"note","content":"<p><a href=\"https:\/\/hails.org\/@hailey\" class=\"u-url mention\">@hailey<\/a> ie, depending upon if you plug in a USB-3, USB-2, or USB-1 device, your XHCI USB-3 controller may actually be speaking that itself, or it may be speaking USB-3 only and USB-2 \/ USB-1 via a translation hub that will handle translating USB-2\/USB-1 to USB-3. (or USB-1 to USB-2 for EHCI.)<\/p><p>So suddenly your device ID and topology can change based on the \/type of device you plugged in\/!<\/p>","url":"https:\/\/mstdn.social\/@erikarn\/115796038770401052","status_net":{"notice_id":null},"inReplyTo":{"objectType":"note","id":"https:\/\/mstdn.social\/users\/erikarn\/statuses\/115796035069916495","url":"https:\/\/gnusocial.jp\/notice\/11805207"}},"to":[{"objectType":"http:\/\/activitystrea.ms\/schema\/1.0\/person","id":"https:\/\/hails.org\/users\/hailey"},{"objectType":"http:\/\/activitystrea.ms\/schema\/1.0\/collection","id":"http:\/\/activityschema.org\/collection\/public"}],"status_net":{"conversation":"tag:gnusocial.jp,2025-12-28:objectType=thread:nonce=0b5d1313dac80faf","notice_info":{"local_id":"11805208","source":"ActivityPub"}},"published":"2025-12-28T19:40:20+00:00","provider":{"objectType":"service","displayName":"GNU social JP","url":"https:\/\/gnusocial.jp\/"},"verb":"post","url":"https:\/\/mstdn.social\/@erikarn\/115796038770401052"},{"actor":{"id":"https:\/\/mastodon.social\/users\/whitequark","displayName":"\u2727\u2726Catherine\u2726\u2727","status_net":{"avatarLinks":[{"url":"https:\/\/gnusocial.jp\/avatar\/105710-original-tmp20230309163231.webp","rel":"avatar","type":"image\/webp","width":400,"height":400},{"url":"https:\/\/gnusocial.jp\/avatar\/105710-96-20230309163231.webp","rel":"avatar","type":"image\/webp","width":96,"height":96},{"url":"https:\/\/gnusocial.jp\/avatar\/105710-48-20230309163231.webp","rel":"avatar","type":"image\/webp","width":48,"height":48},{"url":"https:\/\/gnusocial.jp\/avatar\/105710-24-20230309163231.webp","rel":"avatar","type":"image\/webp","width":24,"height":24}],"profile_info":{"local_id":"105710"}},"image":{"url":"https:\/\/gnusocial.jp\/avatar\/105710-96-20230309163231.webp","rel":"avatar","type":"image\/webp","width":96,"height":96},"objectType":"person","summary":"cat(girl) shaped object, hardware omelas kid&quot;A cat is valued for companionship and its ability to kill vermin.&quot;\u2727 i have friends, and my purpose is to support them \u2727\u2726 i have enemies, and my purpose is to eliminate them \u2726\u2736 i have a life, and my purpose is to reach heaven by violence \u2736\u2737 nothing else matters \u2737#searchable","url":"https:\/\/mastodon.social\/@whitequark","portablecontacts_net":{"preferredUsername":"whitequark","displayName":"\u2727\u2726Catherine\u2726\u2727","note":"cat(girl) shaped object, hardware omelas kid&quot;A cat is valued for companionship and its ability to kill vermin.&quot;\u2727 i have friends, and my purpose is to support them \u2727\u2726 i have enemies, and my purpose is to eliminate them \u2726\u2736 i have a life, and my purpose is to reach heaven by violence \u2736\u2737 nothing else matters \u2737#searchable"}},"content":"<p><a href=\"https:\/\/mstdn.social\/@erikarn\" class=\"u-url mention\">@erikarn<\/a> <a href=\"https:\/\/hails.org\/@hailey\" class=\"u-url mention\">@hailey<\/a> I don't believe there are any hubs with 3-to-2 TTs, do you have an example?<\/p>","generator":{"id":"tag:gnusocial.jp,2026-06-28:notice-source:ActivityPub","objectType":"application","status_net":{"source_code":"ActivityPub"}},"id":"https:\/\/mastodon.social\/users\/whitequark\/statuses\/115798888733652311","object":{"id":"https:\/\/mastodon.social\/users\/whitequark\/statuses\/115798888733652311","objectType":"note","content":"<p><a href=\"https:\/\/mstdn.social\/@erikarn\" class=\"u-url mention\">@erikarn<\/a> <a href=\"https:\/\/hails.org\/@hailey\" class=\"u-url mention\">@hailey<\/a> I don't believe there are any hubs with 3-to-2 TTs, do you have an example?<\/p>","url":"https:\/\/gnusocial.jp\/notice\/11805209","status_net":{"notice_id":null},"inReplyTo":{"objectType":"note","id":"https:\/\/mstdn.social\/users\/erikarn\/statuses\/115796038770401052","url":"https:\/\/mstdn.social\/@erikarn\/115796038770401052"}},"to":[{"objectType":"http:\/\/activitystrea.ms\/schema\/1.0\/person","id":"https:\/\/hails.org\/users\/hailey"},{"objectType":"http:\/\/activitystrea.ms\/schema\/1.0\/person","id":"https:\/\/mstdn.social\/users\/erikarn"},{"objectType":"http:\/\/activitystrea.ms\/schema\/1.0\/collection","id":"http:\/\/activityschema.org\/collection\/public"}],"status_net":{"conversation":"tag:gnusocial.jp,2025-12-28:objectType=thread:nonce=0b5d1313dac80faf","notice_info":{"local_id":"11805209","source":"ActivityPub"}},"published":"2025-12-28T19:40:19+00:00","provider":{"objectType":"service","displayName":"GNU social JP","url":"https:\/\/gnusocial.jp\/"},"verb":"post","url":"https:\/\/gnusocial.jp\/notice\/11805209"}],"links":[{"url":"https:\/\/gnusocial.jp\/conversation\/5999524","rel":"alternate","type":"text\/html"}]}