Fusion IODrive2 support

cdukes

Renowned Member
Sep 11, 2015
89
6
73
Raleigh, NC
www.logzilla.net
I'm trying to compile the FusionIO drivers based on these instructions:
https://www.thomas-krenn.com/en/wiki/Fusion-io_ioDrive_use_with_Debian
But when I try to run dpkg-buildpackage, I get the following error:

Code:
  CC [M]  /root/iodrive2/iomemory-vsl-3.2.11.1581/driver_source/kscatter.o
/root/iodrive2/iomemory-vsl-3.2.11.1581/driver_source/kfio.c: In function ‘kfio_bind_kthread_to_node’:
/root/iodrive2/iomemory-vsl-3.2.11.1581/driver_source/kfio.c:1074:9: error: implicit declaration of function ‘cpus_weight’ [-Werror=implicit-function-declaration]
         if (cpumask && cpus_weight(*cpumask))
         ^
  CC [M]  /root/iodrive2/iomemory-vsl-3.2.11.1581/driver_source/ktime.o
  CC [M]  /root/iodrive2/iomemory-vsl-3.2.11.1581/driver_source/sched.o
/root/iodrive2/iomemory-vsl-3.2.11.1581/driver_source/kmem.c: In function ‘kfio_vmalloc’:
/root/iodrive2/iomemory-vsl-3.2.11.1581/driver_source/kmem.c:645:5: error: implicit declaration of function ‘vmalloc’ [-Werror=implicit-function-declaration]
     return vmalloc(size);
     ^
/root/iodrive2/iomemory-vsl-3.2.11.1581/driver_source/kmem.c:645:5: warning: return makes pointer from integer without a cast
/root/iodrive2/iomemory-vsl-3.2.11.1581/driver_source/kmem.c: In function ‘kfio_vfree’:
/root/iodrive2/iomemory-vsl-3.2.11.1581/driver_source/kmem.c:661:5: error: implicit declaration of function ‘vfree’ [-Werror=implicit-function-declaration]
     vfree(ptr);
     ^
  CC [M]  /root/iodrive2/iomemory-vsl-3.2.11.1581/driver_source/cdev.o
  CC [M]  /root/iodrive2/iomemory-vsl-3.2.11.1581/driver_source/kblock.o
cc1: some warnings being treated as errors
scripts/Makefile.build:258: recipe for target '/root/iodrive2/iomemory-vsl-3.2.11.1581/driver_source/kmem.o' failed
make[3]: *** [/root/iodrive2/iomemory-vsl-3.2.11.1581/driver_source/kmem.o] Error 1
make[3]: *** Waiting for unfinished jobs....
cc1: some warnings being treated as errors
scripts/Makefile.build:258: recipe for target '/root/iodrive2/iomemory-vsl-3.2.11.1581/driver_source/kfio.o' failed
make[3]: *** [/root/iodrive2/iomemory-vsl-3.2.11.1581/driver_source/kfio.o] Error 1
In file included from /root/iodrive2/iomemory-vsl-3.2.11.1581/driver_source/kblock.c:59:0:
/root/iodrive2/iomemory-vsl-3.2.11.1581/driver_source/kblock.c: In function ‘kfio_dump_bio’:
/root/iodrive2/iomemory-vsl-3.2.11.1581/driver_source/kblock.c:937:53: error: ‘const struct bio’ has no member named ‘bi_cnt’
              msg, bio->bi_max_vecs, atomic_read(&bio->bi_cnt), bio->bi_io_vec,
                                                     ^
/root/iodrive2/iomemory-vsl-3.2.11.1581/driver_source/include/fio/port/dbgset.h:202:58: note: in definition of macro ‘infprint’
 #define infprint(...)  kfio_print(KERN_INFO "fioinf " AT __VA_ARGS__)
                                                          ^
scripts/Makefile.build:258: recipe for target '/root/iodrive2/iomemory-vsl-3.2.11.1581/driver_source/kblock.o' failed
make[3]: *** [/root/iodrive2/iomemory-vsl-3.2.11.1581/driver_source/kblock.o] Error 1
Makefile:1398: recipe for target '_module_/root/iodrive2/iomemory-vsl-3.2.11.1581/driver_source' failed
make[2]: *** [_module_/root/iodrive2/iomemory-vsl-3.2.11.1581/driver_source] Error 2
make[2]: Leaving directory '/usr/src/linux-headers-4.2.2-1-pve'
Makefile:82: recipe for target 'modules' failed
make[1]: *** [modules] Error 2
make[1]: Leaving directory '/root/iodrive2/iomemory-vsl-3.2.11.1581/driver_source'
ERROR:
debian/rules:98: recipe for target 'build-arch-stamp' failed
make: *** [build-arch-stamp] Error 1
dpkg-buildpackage: error: debian/rules build gave error exit status 2

Any idea how I can get this working?
 
This is old but it's the kernel you are using that is incompatible with the fusionio drivers. I don't see any that support 4.2.2.1 (you can see that in the second make[2] line. You'll notice that the vsl driver is for 3.2.11 kernel. I hit the same error on a custom Centos7 with 4.3.3.1

That being said, and I want to WARN that this in NOT SAFE and can easily blow things up so you should not do this on production (try this on a system that can afford to be hosed!). You could try sjuxax hack here - https://github.com/sjuxax/iomemory-vsl but it is NOT SAFE (hopefully I made that super clear). Also the guy who didn't just shared for knowledge, he isn't a Proxmox guy.

Shorter: FusionIO doesn't support the 4.2.2-1-pve kernel you are on, it's too new
 
i have same problem
root@server1:/var/lib/vz/dump/iomemory-vsl-3.2.14.1675# dpkg-buildpackage -rfakeroot -D -B -us -uc
scripts/Makefile.build:258: recipe for target '/var/lib/vz/dump/iomemory-vsl-3.2.14.1675/driver_source/kblock.o' failed
make[3]: *** [/var/lib/vz/dump/iomemory-vsl-3.2.14.1675/driver_source/kblock.o] Error 1
make[3]: *** Waiting for unfinished jobs....
Makefile:1420: recipe for target '_module_/var/lib/vz/dump/iomemory-vsl-3.2.14.1675/driver_source' failed
make[2]: *** [_module_/var/lib/vz/dump/iomemory-vsl-3.2.14.1675/driver_source] Error 2
make[2]: Leaving directory '/usr/src/linux-headers-4.4.35-1-pve'
Makefile:82: recipe for target 'modules' failed
make[1]: *** [modules] Error 2
make[1]: Leaving directory '/var/lib/vz/dump/iomemory-vsl-3.2.14.1675/driver_source'
ERROR:
debian/rules:98: recipe for target 'build-arch-stamp' failed
make: *** [build-arch-stamp] Error 1
dpkg-buildpackage: error: debian/rules build-arch gave error exit status 2
root@server1:/var/lib/vz/dump/iomemory-vsl-3.2.14.1675# debuild -us -uc
-bash: debuild: command not found

Please Any idea how I can get this working?
 
i have same problem
root@server1:/var/lib/vz/dump/iomemory-vsl-3.2.14.1675# dpkg-buildpackage -rfakeroot -D -B -us -uc
scripts/Makefile.build:258: recipe for target '/var/lib/vz/dump/iomemory-vsl-3.2.14.1675/driver_source/kblock.o' failed
make[3]: *** [/var/lib/vz/dump/iomemory-vsl-3.2.14.1675/driver_source/kblock.o] Error 1
make[3]: *** Waiting for unfinished jobs....
Makefile:1420: recipe for target '_module_/var/lib/vz/dump/iomemory-vsl-3.2.14.1675/driver_source' failed
make[2]: *** [_module_/var/lib/vz/dump/iomemory-vsl-3.2.14.1675/driver_source] Error 2
make[2]: Leaving directory '/usr/src/linux-headers-4.4.35-1-pve'
Makefile:82: recipe for target 'modules' failed
make[1]: *** [modules] Error 2
make[1]: Leaving directory '/var/lib/vz/dump/iomemory-vsl-3.2.14.1675/driver_source'
ERROR:
debian/rules:98: recipe for target 'build-arch-stamp' failed
make: *** [build-arch-stamp] Error 1
dpkg-buildpackage: error: debian/rules build-arch gave error exit status 2
root@server1:/var/lib/vz/dump/iomemory-vsl-3.2.14.1675# debuild -us -uc
-bash: debuild: command not found

Please Any idea how I can get this working?

if it has not been updated for modern kernels, it simply won't work. 3.2.14 is "ancient" compared to our current 4.4.x based kernels.
 
  • Like
Reactions: ariunawan2105
on fusion io driver, update version this is. what solution for my problem ?
 

Attachments

  • driver fusion io.png
    driver fusion io.png
    88.5 KB · Views: 18
you have to find a version compatible with PVE's 4.4.x based kernel - please contact the vendor to find out whether this exists and how to get and install it.
 
I´ve talked to the tech support of SanDisk and asked for a driver. They told me, that they will not support Promox and do not know when/if they will support 4.4 Kernels. So I spent some time and used a mix of Ubuntu and Debian sources to compile the driver for the current Proxmox kernel (4.4.49-1-pve) of Proxmox 4.4. The driver works with my ioDrive2 1,2T and shows a block device after installation as supposed.

Due to the upload limit of the forum I uploaded the files to an external server: HERE
Just download, unzip and run:

Code:
dpkg -i iomemory-vsl-4.4.49-1-pve_3.2.14.1677-1.0_amd64.deb
modprobe iomemory-vsl

and install the software utilities:

Code:
cd /tools
dpkg -i fio-preinstall_3.2.14.1675-1.0_amd64.deb
dpkg -i fio-common_3.2.14.1675-1.0_amd64.deb
dpkg -i fio-sysvinit_3.2.14.1675-1.0_all.deb
dpkg -i fio-util_3.2.14.1675-1.0_amd64.deb

Test with:
Code:
fio-status -a
lsblk

The utility should give you detailed information about the drive writes and lsblk should show a new block device.

Cheers :)
 

About

The Proxmox community has been around for many years and offers help and support for Proxmox VE, Proxmox Backup Server, and Proxmox Mail Gateway.
We think our community is one of the best thanks to people like you!

Get your subscription!

The Proxmox team works very hard to make sure you are running the best software and getting stable updates and security enhancements, as well as quick enterprise support. Tens of thousands of happy customers have a Proxmox subscription. Get yours easily in our online shop.

Buy now!