VMware Cloud Community
IreneHuang
Contributor
Contributor

How can I access I/O on ESXi?

Hi Sir,

I am trying to access the I/O on ESXi, but seems I cannot access through inb and outb like I used to do on Linux.

On Linux, I have this driver(XXX.ko) helps access I/O, is there any way that I can port this driver to ESXi 6.7/ ESXi7?

Thanks

Reply
0 Kudos
7 Replies
scott28tt
VMware Employee
VMware Employee

What is your use case?

 


-------------------------------------------------------------------------------------------------------------------------------------------------------------

Although I am a VMware employee I contribute to VMware Communities voluntarily (ie. not in any official capacity)
VMware Training & Certification blog
Reply
0 Kudos
bluefirestorm
Champion
Champion

Keep in mind ESXi 6.7/ESXi 7.0 are NOT Linux OS. I repeat they are not Linux. They are not using a Linux kernel. Just because the shell (Busybox) look like a Linux shell and lets you execute commands that are similar to Linux does not mean ESXi is Linux.

Some applications can be recompiled/relinked with static libraries and it will work inside the ESXi shell; and some do not. If they work, that is mainly because of the shared x86/x64 instruction set. I doubt that Linux drivers can be used from with the busybox shell. Furthermore, ESXi 7.x does not support the vmklinux driver extension and that is mainly for using Linux drivers rebuilt/packaged as ESXi VIBs.

IreneHuang
Contributor
Contributor

Hi Sir,

I am trying to use the outb() function, but always get a "Segmentation fault".

I try to use ioperm() first, but the error shows that function is not implemented.

I was wondering if there is another way that can access(read/write) the I/O.

 

Thanks.

Tags (1)
Reply
0 Kudos
bluefirestorm
Champion
Champion


I think applying Linux system programming techniques may not work on ESXi. It will save you a lot of grief by stopping to treat ESXi as a Linux variant.

If your use case is such that you are writing an ESXi native device driver such as for a network card, storage controller, etc, I think you/your company (or your customer if your company has been subcontracted to write a driver) should have direct contact with VMware ESXi engineers who would be able to provide better guidance on this.

 

Reply
0 Kudos
bluefirestorm
Champion
Champion

Just to add on to my earlier reply...

You don't have to reveal the technical details of your use case nor your company or your customer as it is likely to be business confidential. But given that you are trying a low level I/O access, it might be something that require an SDK. Some of the SDKs are restricted to known VMware Partners as you can see from the hyperlink below

https://techpartnerhub.vmware.com/sdks?rel=%2Fsdks

 

Reply
0 Kudos
scott28tt
VMware Employee
VMware Employee

But why? What are you trying to achieve by doing that?

 


-------------------------------------------------------------------------------------------------------------------------------------------------------------

Although I am a VMware employee I contribute to VMware Communities voluntarily (ie. not in any official capacity)
VMware Training & Certification blog
Reply
0 Kudos
nachogonzalez
Commander
Commander

Awesome explanation, I didn't know esxi shell was called busybox

Reply
0 Kudos