Tôi đang làm việc trên trình cài đặt trong OS X để cài đặt trình điều khiển IOKit cho thiết bị USB và tôi đang cố gắng để không yêu cầu khởi động lại ở cuối. Trình cài đặt cài đặt trình điều khiển chính xác và xây dựng lại bộ nhớ cache kext, và sau khi nó chạy, nếu tôi rút phích cắm và cắm lại thiết bị USB, nó tải đúng trình điều khiển mới và mọi thứ hoạt động tốt.Lập trình "rút phích cắm và cắm lại" thiết bị USB để tải trình điều khiển mới trong OS X?
Tuy nhiên, tôi không muốn yêu cầu người dùng phải rút phích cắm thiết bị về mặt vật lý để trình điều khiển mới tải. Đã có một cách để có được OS X để tải các trình điều khiển mới lập trình - trong hiệu ứng mô phỏng các thiết bị được rút phích cắm và cắm lại trong một lần nữa, hoặc một cái gì đó tương tự. Tôi sẽ đi đâu để tới đó? Cho đến nay, giờ Googling đã không có gì, vì vậy bất kỳ sự trợ giúp nào cũng sẽ được đánh giá cao!
Tôi muốn thử nhìn vào mã mà được chạy khi bạn đẩy một thiết bị lưu trữ USB - Tôi không chắc chắn nếu có tương ứng với lưu lượng USB hoặc nếu nó chỉ yêu cầu hệ thống con USB bỏ qua cổng cho đến khi ngắt kết nối vật lý. Trong trường hợp trước đây (một thông báo "USB đẩy"), có thể không có cách dễ dàng để "bỏ đẩy" ngoài việc chạy xe đạp hoặc thiết lập lại USB, cả hai có thể có vấn đề đối với các thiết bị USB khác. Nhưng hy vọng đó là một nơi nào đó để bắt đầu tìm kiếm. –
Tôi đã đọc về một thứ gọi là 'pmount' có thể ngắt kết nối nhiều thiết bị USB tùy ý hơn, nhưng tôi không biết liệu có bao gồm thiết bị của bạn hay không. Nhược điểm lớn duy nhất là nó không đi kèm với OS X theo mặc định. – rien333
Tôi khá chắc chắn bạn không thể thực hiện việc này trực tiếp từ không gian người dùng. Tuy nhiên, trong hạt nhân, bạn có thể thử gọi terminate() trên máy khách hiện tại đang hogging thiết bị. – pmdj