Thursday, February 12, 2009

Adding your own driver(s) to EON

Adding your own drivers to EON is possible in a couple of ways.
Method 1: This method uses another working opensolaris system to un-compress a copy of x86.eon image. Add the driver binary and driver.conf file to /kernel/drv/ and 64-bit binary to /kernel/drv/amd64 path where the image was unpacked. The image will then be repacked and transferred the back to the appliance.
/boot/solaris/bin/root_archive unpack x86.eon [path_to_unpacked_dir]
cp rtls [path_to_unpack_dir]/kernel/drv
cp rtls.conf [path_to_unpack_dir]/kernel/drv
For 64-bit EON you would also add
cp rtls [path_to_unpack_dir]/kernel/drv/amd64
add_drv -b [path_to_unpacked_dir] -n -v [driver_added_kernel_drv]
/boot/solaris/bin/root_archive pack x86-new.eon [path_to_unpacked_dir]
Method 2: On EON, enable virtual consoles and insert a pause in the script. Run the until the pause. Finally, switch consoles (ctrl+alt+FX, where X is the console number) and copy the driver binary and driver.conf to /mnt/upd/kernel/drv.
svccfg import /var/svc/manifest/system/vtdaemon.xml
svcadm enable vtdaemon
svcadm enable console-login:vt2
svcadm enable console-login:vt3
now you can use ctrl-alt-F1/F2/F3 to switch between terminals
edit and change:
echo -n "Press enter to continue after adding drivers " ; read x
run (if default path_to_img=/mnt/eon0)
/usr/bin/ [path_to_img]/x86.eon
When you see the mesg press ctrl-alt-F2, login and add your driver to /mnt/upd/kernel/drv. When done, ctrl-alt-F1 to switch back, login and press enter to complete You should then have a new image with your added drivers.

Method 3: Get the current EON build kit and opensolaris DVD image and build your own appliance, including the needed drivers. This will require a working opensolaris install (snv_98 or higher, others should work) to run I will ask Al at Genunix to host these plus the 64 bit versions. I will add the rtls nic to the 64 bit image.


AdrianS said...

Hello Andre,

Can you please tell me where I can get the script ? I browsed the EON iso images, the binary kit and the folder but to no avail.

Alejandro said...

Hi Andre,

Correct me if I'm wrong, but shouldn't the
echo -n "..."; read x
go before the undo_mnt_lofs so that the mount /mnt/upd is still reachable?
This post is from 2009 and maybe its from a different script...

By the way, I think Eon is a great project and I'm having a lot of fun with it.