Some notes on building the Linaro Kernel for 410c


#1

We have noticed some wifi issues due to load order. To fix this make sure you build wireless as a module. To do this follow the kernel build instructions found here

Run the following after you build dibs with the command
make O=build-${ARCH} -j8 Image dibs

Run these commands and scope them to /

make O=build-${ARCH} modules
mkdir ~/Desktop/410C/modules_out
make O=build-${ARCH} INSTALL_MOD_PATH=~/Desktop/410C/modules_out modules_install
cd ~/Desktop/410C/modules_out
tar czf modules.tgz lib/modules
# SCP these modules.tgz to the device, tar xvf in the /

Additional notes on the build process in this link. To enable fast boot we found the following.

# ON THE 410C:  FORCE IT INTO FASTBOOT MODE by writing Zeros into its boot partition.
sudo dd if=/dev/zero of=/dev/mmcblk0p8 count=1337
sudo reboot
# human: connect laptop to USB OTG

And there is a type on the website. The line
sudo fastboot flash aboot boot-db410c.img
Should read as follows with boot instead of aboot
sudo fastboot flash boot boot-db410c.img


Brain Corporation: Computer vision and machine learning for robotics.


#2
  1. thanks, i added your instructions to build kernel modules on the github page you mentioned
  2. we will try to see if we can get wlan to work when built-in. https://bugs.96boards.org/show_bug.cgi?id=30
  3. the bootloader will by default attempt to load the boot image from boot, so if you have a valid image, it won’t indeed stop in fastboot prompt. You can press Vol DOWN button (S4 on the board) during the boot, and that will force the bootloader into fastboot (e.g. you don’t need to erase the boot partition)
  4. the s/aboot/boot/ typo is fixed now

#3

After following the instructions and flashing it via the link provided, I can’t seem to access the linked initrd image. I’m currently using “initrd.img-4.1.0-linaro-lt-qcom” from http://snapshots.linaro.org/ubuntu/pre-built/snapdragon-tracking-arm64/2/initrd.img-4.1.0-linaro-lt-qcom. However, after I fastboot flash boot the resulting image boot-db410c.img nothing gets displayed on the screen (LED 1 blinks).

Is there an update or a way to obtain the correct initrd image or to rebuild a particular kernel (say the ones provided)? Currently I am using the recommended linaro-gcc compiler also.


#4

Hi jonw,

Did you have the word “text” at the end of your kernel command line when making the bootable image? E.g.,

export cmdline="root=/dev/disk/by-partlabel/rootfs rw rootwait console=tty0 console=ttyMSM0,115200n8 text"

mkbootimg --kernel build-${ARCH}/arch/arm64/boot/Image \
          --ramdisk ../initrd.img-4.0.0-linaro-lt-qcom \
          --output boot-db410c.img \
          --dt dt.img \
          --pagesize 2048 \
          --base 0x8000000 \
          --cmdline "$cmdline"

Having “text” at the end seems to be important.

Best regards,
Patryk


Brain Corporation: Computer vision and machine learning for robotics.


#5

Thanks. That worked!


#6

It seems the wireless drivers are missing, when following the directions from the wiki in lib/modules/4.1.0+/. Is there something particular that must be done to include particular modules?


#7

@bclaurent: if adding ‘text’ helped, it probably means you are on an old version of Ubuntu (14.10), not the current release which is based on 15.04. The notable difference is that Ubuntu switches from upstart to systemd between 14.10, and 15.04.

‘text’ was an upstart feature to tell the init to not start the graphical desktop.

With systemd/15.04 the equivalent feature is there, but it’s not ‘text’ that needs to be put in the bootargs but ‘systemd.unit=multi-user.target’.

The very early arm64 images for the DB410c were based on 14.10, and we switch to 15.04 around mid June. We will only support 15.04 moving forward, you might want to consider moving forward to the latest images.

@jonw: you seem to be using 4.1 kernel, so probably this branch: https://git.linaro.org/landing-teams/working/qualcomm/kernel.git/shortlog/refs/heads/integration-linux-qcomlt. This is not the release branch, and it’s the branch our team uses for ‘next’ releases. We regularly update to newer kernel version, and the WLAN has not been integrated in this branch yet. If you want to rebuild your kernel and get the ‘same’ features as the official release, please use this kernel branch:

https://git.linaro.org/landing-teams/working/qualcomm/kernel.git/shortlog/refs/heads/release/qcomlt-4.0

(as indicated in the release notes)

For an overview of the kernel branch we maintain(ed) : https://wiki.linaro.org/Source/QualcommLandingTeam/public_git_trees


#8

@ndec: Thanks for the clarification. I got it to work. Also the release notes here: http://builds.96boards.org/releases/dragonboard410c/linaro/ubuntu/latest do not seem to reference “qcomlt-4.0”. Perhaps there is a newer set of release notes?


#9

@jonw: the release notes mention the exact tag that was used for the release:

tag: ubuntu-qcom-dragonboard410c-15.06
defconfig: arch/arm64/defconfig

I gave you the branch name instead. the branch has a few more commits now compared to 15.06 release. all the 4.0 based release will be done from a commit/tag on that branch.