arter97 / exfat-linux

EOL exFAT filesystem module for Linux kernel. Everyone should be using https://github.com/namjaejeon/linux-exfat-oot instead.
Other
262 stars 59 forks source link

Installation/build failed on Ubuntu 20.10 on RaspberryPi 3 #34

Closed gerrydoro closed 3 years ago

gerrydoro commented 3 years ago

I used the PPA for 20.04 (deb http://ppa.launchpad.net/arter97/exfat-linux/ubuntu focal main) then i launched sudo apt install exfat-dkms and this happened

[...]
Loading new exfat-2.2.0-3arter97-0~201910290835~ubuntu20.04.1 DKMS files...
Building for 5.8.0-1006-raspi 5.8.0-1011-raspi
Building initial module for 5.8.0-1006-raspi
Error! Bad return status for module build on kernel: 5.8.0-1006-raspi (aarch64)
Consult /var/lib/dkms/exfat/2.2.0-3arter97-0~201910290835~ubuntu20.04.1/build/make.log for more information.
dpkg: error processing package exfat-dkms (--configure):
 installed exfat-dkms package post-installation script subprocess returned error exit status 10
Processing triggers for man-db (2.9.3-2) ...
Processing triggers for libc-bin (2.32-0ubuntu3) ...
Errors were encountered while processing:
 exfat-dkms
E: Sub-process /usr/bin/dpkg returned an error code (1)
ubuntu@ubuntu:~$ 

This is the make.log file content

ubuntu@ubuntu:~$ cat /var/lib/dkms/exfat/2.2.0-3arter97-0~201910290835~ubuntu20.04.1/build/make.log
DKMS make.log for exfat-2.2.0-3arter97-0~201910290835~ubuntu20.04.1 for kernel 5.8.0-1006-raspi (aarch64)
Sat Jan  9 00:33:09 UTC 2021
make: Entering directory '/usr/src/linux-headers-5.8.0-1006-raspi'
  AR      /var/lib/dkms/exfat/2.2.0-3arter97-0~201910290835~ubuntu20.04.1/build/built-in.a
  CC [M]  /var/lib/dkms/exfat/2.2.0-3arter97-0~201910290835~ubuntu20.04.1/build/super.o
  CC [M]  /var/lib/dkms/exfat/2.2.0-3arter97-0~201910290835~ubuntu20.04.1/build/core.o
  CC [M]  /var/lib/dkms/exfat/2.2.0-3arter97-0~201910290835~ubuntu20.04.1/build/core_exfat.o
  CC [M]  /var/lib/dkms/exfat/2.2.0-3arter97-0~201910290835~ubuntu20.04.1/build/blkdev.o
/var/lib/dkms/exfat/2.2.0-3arter97-0~201910290835~ubuntu20.04.1/build/super.c: In function ‘exfat_readpages’:
/var/lib/dkms/exfat/2.2.0-3arter97-0~201910290835~ubuntu20.04.1/build/super.c:2495:9: error: implicit declaration of function ‘mpage_readpages’; did you mean ‘mpage_readpage’? [-Werror=implicit-function-declaration]
 2495 |  ret =  mpage_readpages(mapping, pages, nr_pages, exfat_get_block);
      |         ^~~~~~~~~~~~~~~
      |         mpage_readpage
  CC [M]  /var/lib/dkms/exfat/2.2.0-3arter97-0~201910290835~ubuntu20.04.1/build/fatent.o
  CC [M]  /var/lib/dkms/exfat/2.2.0-3arter97-0~201910290835~ubuntu20.04.1/build/cache.o
  CC [M]  /var/lib/dkms/exfat/2.2.0-3arter97-0~201910290835~ubuntu20.04.1/build/nls.o
  CC [M]  /var/lib/dkms/exfat/2.2.0-3arter97-0~201910290835~ubuntu20.04.1/build/misc.o
cc1: some warnings being treated as errors
make[1]: *** [scripts/Makefile.build:290: /var/lib/dkms/exfat/2.2.0-3arter97-0~201910290835~ubuntu20.04.1/build/super.o] Error 1
make[1]: *** Waiting for unfinished jobs....
/var/lib/dkms/exfat/2.2.0-3arter97-0~201910290835~ubuntu20.04.1/build/misc.c:157:8: error: unknown type name ‘time_t’
  157 | static time_t accum_days_in_year[] = {
      |        ^~~~~~
/var/lib/dkms/exfat/2.2.0-3arter97-0~201910290835~ubuntu20.04.1/build/misc.c: In function ‘exfat_time_fat2unix’:
/var/lib/dkms/exfat/2.2.0-3arter97-0~201910290835~ubuntu20.04.1/build/misc.c:166:2: error: unknown type name ‘time_t’; did you mean ‘ktime_t’?
  166 |  time_t year = tp->Year;
      |  ^~~~~~
      |  ktime_t
/var/lib/dkms/exfat/2.2.0-3arter97-0~201910290835~ubuntu20.04.1/build/misc.c:167:2: error: unknown type name ‘time_t’; did you mean ‘ktime_t’?
  167 |  time_t ld; /* leap day */
      |  ^~~~~~
      |  ktime_t
/var/lib/dkms/exfat/2.2.0-3arter97-0~201910290835~ubuntu20.04.1/build/misc.c: In function ‘exfat_time_unix2fat’:
/var/lib/dkms/exfat/2.2.0-3arter97-0~201910290835~ubuntu20.04.1/build/misc.c:189:2: error: unknown type name ‘time_t’; did you mean ‘ktime_t’?
  189 |  time_t second = ts->tv_sec;
      |  ^~~~~~
      |  ktime_t
/var/lib/dkms/exfat/2.2.0-3arter97-0~201910290835~ubuntu20.04.1/build/misc.c:190:2: error: unknown type name ‘time_t’; did you mean ‘ktime_t’?
  190 |  time_t day, month, year;
      |  ^~~~~~
      |  ktime_t
/var/lib/dkms/exfat/2.2.0-3arter97-0~201910290835~ubuntu20.04.1/build/misc.c:191:2: error: unknown type name ‘time_t’; did you mean ‘ktime_t’?
  191 |  time_t ld; /* leap day */
      |  ^~~~~~
      |  ktime_t
make[1]: *** [scripts/Makefile.build:288: /var/lib/dkms/exfat/2.2.0-3arter97-0~201910290835~ubuntu20.04.1/build/misc.o] Error 1
make: *** [Makefile:1783: /var/lib/dkms/exfat/2.2.0-3arter97-0~201910290835~ubuntu20.04.1/build] Error 2
make: Leaving directory '/usr/src/linux-headers-5.8.0-1006-raspi'
ubuntu@ubuntu:~$ 

Thank you for your support!

arter97 commented 3 years ago

Hi, this is written in the README.

People on v5.7 kernel or higher can just use the bundled exFAT drivers.
People on v5.4+ are highly recommended to use this drivers.

You can just use the included driver from the kernel. If the kernel doesn't have an exfat driver(which I highly doubt), ask the raspi developers to just enable it.

It should be quite trivial.

gerrydoro commented 3 years ago

Hi @arter97 and thanks for the reply. Unfortunately, the RaspberryPi kernel mainline is compiled without the exFAT driver. I learned that I can build by myself the rPi kernel adding the driver, but I will lose the ability to "automatically be up-to-date" via apt upgrade (it would replace my kernel, or not upgrade it at all I guess)

I'm gonna try to make some modification to your project and maybe if I manage to find a solution, I will send you a pull request.

Wish me the best 🤞

P.S.: The RaspberryPi foundation will add the exFAT support to the next major release of their OS. If I will fail, I just have to wait for a new RaspberryPi OS 😅

gerrydoro commented 3 years ago

Hi @arter97 I just created the pull request! #35 I didn't imagine it was so easy to do 😂 Thank you very much for your support! Now you can support Linux ≥5.8.0!