Beaglebone A3 - New Kernel 3.2.0+ by opkg upgrade

Hi,

today I upgraded my BeagleBone to check SPI device drivers, which
didn't work in 3.1.0+.

I did the following:

# opkg --tmp-dir ~ update
# opkg --tmp-dir ~ upgrade

(I used root's homedir as tmp-dir to avoid overflow of the tmp fs)

After succesful upgrading the /boot directory looked like this:

# ls -l /boot
total 6017
-rwxr-xr-x 1 root root 33 Feb 9 10:16 uEnv.txt
lrwxrwxrwx 1 root root 13 Feb 10 09:46 uImage -> uImage-3.2.0+
-rw-r--r-- 1 root root 3042328 Jan 27 10:31 uImage-3.1.0+
-rw-r--r-- 1 root root 3116584 Feb 7 11:17 uImage-3.2.0+

After rebooting "uname -a" shows me that I am running still 3.1.0+.

So I mounted the FAT32 partition:

# mount /dev/mmcblk0p1 /mnt
# ls -l /mnt
total 3354
drwxr-xr-x 4 root root 2048 Nov 16 15:28 Docs
drwxr-xr-x 4 root root 2048 Nov 16 15:28 Drivers
drwxr-xr-x 3 root root 2048 Jan 16 18:05 FRITZ
-rwxr-xr-x 1 root root 5829 Nov 16 14:06 LICENSE.txt
-rwxr-xr-x 1 root root 37151 Nov 16 15:36 MLO
-rwxr-xr-x 1 root root 19319 Nov 16 14:06 README.htm
-rwxr-xr-x 1 root root 178 Nov 16 14:06 autorun.inf
-rwxr-xr-x 1 root root 93860 Feb 10 09:52 info.txt
-rwxr-xr-x 1 root root 230240 Nov 16 15:36 u-boot.img
-rwxr-xr-x 1 root root 33 Nov 16 15:36 uEnv.txt
-rwxr-xr-x 1 root root 3031456 Nov 16 15:36 uImage

Then I copied /boot/uImage-3.2.0+ to /mnt/uImage.

After unmounting and rebooting the 3.2.0+ kernel runs now:

# uname -a
Linux beaglebone 3.2.0+ #3 Tue Feb 7 11:52:09 CET 2012 armv7l GNU/Linux

Success!

But loading any module gives an error:

# modprobe spidev
FATAL: Could not load /lib/modules/3.2.0+/modules.dep: No such file or directory

# ls -l /lib/modules/3.2.0+
total 1
drwxr-xr-x 9 root root 1024 Feb 9 17:51 kernel

All the modules.* files are missing!

Here the old ones:

# ls -l /lib/modules/3.1.0+
total 17
drwxr-xr-x 7 root root 1024 Feb 10 09:44 kernel
-rw-r--r-- 1 root root 151 Feb 10 09:51 modules.alias
-rw-r--r-- 1 root root 154 Feb 10 09:51 modules.alias.bin
-rw-r--r-- 1 root root 69 Feb 10 09:51 modules.ccwmap
-rw-r--r-- 1 root root 186 Feb 10 09:51 modules.dep
-rw-r--r-- 1 root root 387 Feb 10 09:51 modules.dep.bin
-rw-r--r-- 1 root root 52 Feb 10 09:51 modules.devname
-rw-r--r-- 1 root root 73 Feb 10 09:51 modules.ieee1394map
-rw-r--r-- 1 root root 141 Feb 10 09:51 modules.inputmap
-rw-r--r-- 1 root root 81 Feb 10 09:51 modules.isapnpmap
-rw-r--r-- 1 root root 74 Feb 10 09:51 modules.ofmap
-rw-r--r-- 1 root root 99 Feb 10 09:51 modules.pcimap
-rw-r--r-- 1 root root 43 Feb 10 09:51 modules.seriomap
-rw-r--r-- 1 root root 131 Feb 10 09:51 modules.softdep
-rw-r--r-- 1 root root 237 Feb 10 09:51 modules.symbols
-rw-r--r-- 1 root root 282 Feb 10 09:51 modules.symbols.bin
-rw-r--r-- 1 root root 551 Feb 10 09:51 modules.usbmap

When I look to the date/timestamp I thought the modules.* files
have been installed into the wrong directory :frowning:

All other kernel files seem to be in the right directory:

# du -sh /lib/modules/*
122K /lib/modules/3.1.0+
17M /lib/modules/3.2.0+

Many files of 3.1.0+ have been removed by opkg, many files
in 3.2.0+ are new and are in the right directory:

# find /lib/modules/ -name spidev.ko
/lib/modules/3.2.0+/kernel/drivers/spi/spidev.ko

It seems that only the modules.* files are in the
wrong directory...

So I copied the files into the 3.2.0+ directory:

# cp -a /lib/modules/3.1.0+/modules.* /lib/modules/3.2.0+/

and tried:

# modprobe spidev
FATAL: Module spidev not found.

Should I use another linux distribution for the BeagleBone?
It seems that I cannot count on the Angstrom distribution,
because there is also something other going wrong now:

# opkg --tmp-dir ~ update
... [no errors]
# opkg --tmp-dir ~ upgrade
Upgrading iw on root from 0.9.20-r0 to 3.2-r1...
...
shadow-dev: unsatisfied recommendation for pam-plugin-mail-dev
shadow-dev: unsatisfied recommendation for libpam-runtime-dev
shadow-dev: unsatisfied recommendation for pam-plugin-env-dev
shadow-dev: unsatisfied recommendation for pam-plugin-shells-dev
shadow-dev: unsatisfied recommendation for pam-plugin-limits-dev
shadow-dev: unsatisfied recommendation for pam-plugin-group-dev
shadow-dev: unsatisfied recommendation for pam-plugin-securetty-dev
shadow-dev: unsatisfied recommendation for pam-plugin-lastlog-dev
shadow-dev: unsatisfied recommendation for pam-plugin-nologin-dev
shadow-dev: unsatisfied recommendation for pam-plugin-faildelay-dev
shadow-dev: unsatisfied recommendation for pam-plugin-motd-dev
shadow-dev: unsatisfied recommendation for pam-plugin-rootok-dev
Upgrading shadow on root from 4.1.4.3-r5 to 4.1.4.3-r7...
Collected errors:
* check_data_file_clashes: Package libnl-3-200 wants to install file /etc/libnl/pktloc
        But that file is already provided by package * libnl2
* check_data_file_clashes: Package libnl-3-200 wants to install file /etc/libnl/pktloc
        But that file is already provided by package * libnl2
* check_data_file_clashes: Package shadow wants to install file /etc/login.defs
        But that file is already provided by package * shadow-sysroot
* check_data_file_clashes: Package shadow wants to install file /etc/login.defs
        But that file is already provided by package * shadow-sysroot

This is no really reliable (or stable) distro for me...

Regards,

Frank

I could generate these files with

# opkg --tmp-dir ~ install update-modules
# update-modules

Now the modules.* files are present and up to date:

# ls -l /lib/modules/3.2.0+/
total 1218
drwxr-xr-x 9 root root 1024 Feb 10 09:02 kernel
-rw-r--r-- 1 root root 177480 Feb 10 13:02 modules.alias
-rw-r--r-- 1 root root 188881 Feb 10 13:02 modules.alias.bin
-rw-r--r-- 1 root root 69 Feb 10 13:02 modules.ccwmap
-rw-r--r-- 1 root root 42368 Feb 10 13:02 modules.dep
-rw-r--r-- 1 root root 73089 Feb 10 13:02 modules.dep.bin
-rw-r--r-- 1 root root 216 Feb 10 13:02 modules.devname
-rw-r--r-- 1 root root 73 Feb 10 13:02 modules.ieee1394map
-rw-r--r-- 1 root root 218 Feb 10 13:02 modules.inputmap
-rw-r--r-- 1 root root 81 Feb 10 13:02 modules.isapnpmap
-rw-r--r-- 1 root root 224 Feb 10 13:02 modules.ofmap
-rw-r--r-- 1 root root 99 Feb 10 13:02 modules.pcimap
-rw-r--r-- 1 root root 85 Feb 10 13:02 modules.seriomap
-rw-r--r-- 1 root root 131 Feb 10 13:02 modules.softdep
-rw-r--r-- 1 root root 73065 Feb 10 13:02 modules.symbols
-rw-r--r-- 1 root root 95724 Feb 10 13:02 modules.symbols.bin
-rw-r--r-- 1 root root 582466 Feb 10 13:02 modules.usbmap

Now I can load the modules, e.g.

# modprobe spidev

But the spidev doesn't work, it should create spi files
in /dev:

# ls -l /dev/spi*
ls: cannot access /dev/spi*: No such file or directory

How can I use the spidev module on BeagleBone?
Should I compile the kernel by myself and patch it with

  http://groups.google.com/group/beagleboard/browse_thread/thread/776a4ca8ca3c06e

?

Regards,

Frank

We are also having issue to make the SPI work. Any insight would be
helpful.

-SH