TechNexion / meta-edm-bsp-release

(Archived, please change to use meta-tn-imx-bsp) Yocto BSP layer for Technexion boards
MIT License
3 stars 8 forks source link

Wandboard Dual Rev. D1 WiFi && BT not working #3

Closed eiger824 closed 5 years ago

eiger824 commented 5 years ago

Hey there! Happy new year everyone :)

This issue is very related to this one but since it's closed and I would still like to ask a question I'll open a new one.

Which combination of Linux kernel:

shall I use to build the linux-technexion kernel?

I have a Wandboard Dual Revision D1 (with the new pmic) and I'm trying to build this very kernel on the branch "_tn-imx_4.1.15_2.0.0_ga_ampak_bcmdhdtest" using the in-tree "_wandboarddefconfig" configuration file, but compilation fails.

Ḯ'm using a Yocto-generated toolchain with arm-poky-linux-gnueabi-gcc version 8.2.0, which I suspect is a bit too high for this kernel?

Since I bought my Wandboard more than one year ago I've misserably failed to make the Wifi/BT driver work, so when I found this branch ("_tn-imx_4.1.15_2.0.0_ga_ampak_bcmdhdtest") I suddenly felt the urge of trying it out to see if works.

Big thanks in advance!

Best regards, /Santiago

richard-hu commented 5 years ago

Hello, Santiago:

Thanks for your feedback.~!!! Yes. GCC 8.2 might be too new for kernel 4.1.15. We'd not suggest to use "tn-imx_4.1.15_2.0.0_ga_ampak_bcmdhd_test" branch. It's the test branch we provide customers for FCC test for specific TechNexion products. This release isn't tested on all TechNexion product.

It's convenient to test WLAN/BT in pre-built image

We'd suggest to use Yocto Krogoth to test Ampak WLAN/BT: wandboard-imx6.conf

Please follow the steps to build Yocto Krogoth for wandobard.

$: MACHINE=wandboard-imx6 source edm-setup-release.sh -b build-x11-wand-e x11
$: bitbake fsl-image-qt5

And it requires to ask for WIFI/BT firmware first from TechNexion support/sales team first. sales@technexion.com support@technexion.com

Thank you~

BR,

Richard

eiger824 commented 5 years ago

Hey @richard-hu ,

Thanks for your answer. I'll start the build and post my findings here.

BR, /Santiago

UPDATE It's going to be a bit more complicated than I thought, since the manifests branch you mention "_krogoth_4.1.yGA" is pretty old and I am using an Ubuntu 18.04 development host with many updated native tools that are incompatible with the current bitbake versions, e.g. deprecated git options, etc. If I want to consider other manifest branches, like rocko or morty, what's the difference between these two?:

eiger824 commented 5 years ago

Hi again @richard-hu ,

After "traveling back in time" and installing an old Ubuntu 12.04 distribution on a VM I was able to successfully complete a build.

I tried the fsl-image-qt5 image with the fb backend (i.e., no X nor Wayland server) and everything works fine. bcmdhd WiFi driver loads correctly, and so does bluetooth.

When I have more time I will try to replicate this scenario following Freescale's build instructions and using Technexion's 4.1.15 kernel.

Now my next step would to to add support for a custom 800x480 HDMI display (specifically this one). My question is: where should I add an entry for this specific video mode? I have done similar work in other kernels before where I added a new video entry in the video database, but some other blog posts suggest that new screen resolutions shall be added directly on the device tree. What's the recommended approach according to you guys?

Cheers, /Santiago

richard-hu commented 5 years ago

Hello, @eiger824 :

It's great to hear the good news~

As my experience, i'd suggest to follow the steps below to add new HDMI display support:

  1. Retrieve EDID information of this custom 800x480 HDMI display There is display timing settings in EDID. Conect the HDMI display to host PC under M.S windows, then execute the program below. EDIDViewer

  2. Use "fbset" or "xrandr" to set up the custom timing. If it works then keep the display timing settings.

Method 1: (set display resolution for X-window) Use "xrandr --newmode" and "xrandr --addmode" to add new profile for custom timing. Then, apply it. Please refer to: https://community.nxp.com/thread/471431 Use "fbset" to check if the timing parameters take effect.

Method 2: (set display resolution for framebuffer) Use "fbset -g" to set up custom disply timing. Please refer to: https://community.nxp.com/thread/456944

  1. Add correct display timing setttings as new vidwo mode in HDMI driver (I haven't try this before, so I can't guarantee that it works.) Please refer to: https://community.nxp.com/thread/432050

  2. Change the display setttings in boot argument You can change it in uEnv.txt (in the first FAT partition of SD card) or hard-coded the settings in u-boot source code.

    The display settings in uEnv.txt is like: displayinfo=video=mxcfb0:dev=hdmi,1280x720M@60,if=RGB24 fbmem=28M You need to set it correctly to specify the videomode for your 800x480 display.

If "step 3" doesn't take effect, you can add the "fbset" command in runlevel script to execute it when system starts up.

BR,

Richard