How can i read Arduino board's iSerial number?

I have MEGA ADKs and checked they have (unique) iSerial Number through ‘lsusb -v’ on Linux.

Bus 003 Device 018: ID 2341:0044 Arduino SA Mega ADK R3 (CDC ACM)
Device Descriptor:
bLength 18
bDescriptorType 1
bcdUSB 1.10
bDeviceClass 2 Communications
bDeviceSubClass 0
bDeviceProtocol 0
bMaxPacketSize0 8
idVendor 0x2341 Arduino SA
idProduct 0x0044 Mega ADK R3 (CDC ACM)
bcdDevice 0.01
iManufacturer 1 Arduino (
iProduct 2 (error)
** iSerial 220 95238343234351F06071**

So, i want to make a arduino program that prints the board’s S/N.
But i can’t find a way how to read the board’s S/N.
Using EEPROM is a good way but I think there’ll be a more efficient way.
Please reply with some idea about it.

Reading it from EEPROM is your only choice as far as I know. You can read it via the driver in Windows or lspci on Linux, but in sketches you can't access that.