On upgrading development board kernel and patching drivers

I’m trying to install a driver for a specific piece of hardware which the Orbbec development board’s Ubuntu does not support. To do this I need to compile the driver from the backports and require the Linux kernel headers. uname -r tells me that the development board is running kernel version 3.10.0, which I assume is not some specific kernel release as such headers are not available in the Ubuntu repos. Secondly, lsmod tells me that the only loaded kernel module is mali_kbase, which is the driver for the on-chip GPU.

To test if I can even compile the driver for ARM I installed some generic Linux headers (3.13.0-79-generic) and symlinked /lib/modules/3.10.0 to /lib/modules/3.13.0-79-generic. I was able to build the driver, but installation fails due to problems accessing modules.builtin.bin for some reason.

  • Since compiling the driver for wrong kernel version is probably a recipe for kernel panic, where can I find the correct kernel headers?
  • Since the board is using Rockchip 3288 SOC, is there something specific I need to do in order to install a different Linux kernel? A flashing tool or something? Figured I’ll ask before bricking the development board :slight_smile:

This is becoming an issue for me as well. I have two different dev boards, and each has slightly different quirks, which I’m assuming is due to different setup. The ethernet adapter on one of my boards runs alright, but it will go to sleep, and I’m unable to configure the kernel modules to disable sleep with modprobe. The other board just seems to have really slow ethernet speeds despite being connected in gigabit mode (I’m observing packet loss and testing with iperf). What I really need is the ability to reflash the board so that I can ensure a uniform setup for all of the boards I’m using and fix these problems.

Flashing the Orbbec development board rockchip SOC

You will need:

  • Orbbec development board
  • arm cross compiler (arm-linux-genuabihf-gcc on Ubuntu)
  • The kernel source, bootimage and drivers from Orbbec (I don’t know if I’m allowed to share them, send them an email)

The package you got from Orbbec contains the following files:

  • OpenSrc.tar.bz2
    • linux-rootfs.img
    • Kernel source code in PerseeKernel.tar.bz2
  • initrd.img

Create work dir:

mkdir ~/kernel_work

Copy initrd.img in the work dir:

cp initrd.img ~/kernel_work

Extract OpenSrc.tar.bz2

tar -xjvf OpenSrc.tar.bz2 && cd OpenSrc

Extract the kernel source

tar -xjvf PerseeKernel.tar.bz2

Somewhere else, clone the rockchip boot image tools:

git clone https://github.com/neo-technologies/rockchip-mkbootimg.git
cd rockchip-mkbootimg
make && sudo make install

Build the persee kernel:

cd perseeDirectory/home/jackxu/work/rklinux/kernel.bk
make persee-rk3288.img

Copy the kernel.img in the work dir

cp kernel.img ~/kernel_work

Create the bootimage using the tools you compiled above:

cd ~/kernel_work
mkbootimg --kernel kernel.img --ramdisk initrd.img -o linux-boot.img

Get the flashing tool:

git clone https://github.com/neo-technologies/rkflashtool.git
cd rkflashtool
make && sudo make install

I was not able to flash my board, so this is as far as I got. Couldn’t figure out what I need to do to make the board start up in “flashing mode”. Supposedly the JTAG micro usb port should be used, but I wasn’t able to detect the board.

Thanks for this. I’ll run through those steps, but fully expect to hit the same wall you did. Hopefully we hear back from Orbbec about the issue.

Hi, I’m having the exact same issues as indianajohn with slow ethernet speeds. I’m working without a manual for development board as those links found combing other threads are expired. I’m wondering if flashing the rockchip SOC resolved the issue with the ethernet? My download speeds are so slow I can’t even install packages via apt-get.