element14 Community
element14 Community
    Register Log In
  • Site
  • Search
  • Log In Register
  • About Us
  • Community Hub
    Community Hub
    • What's New on element14
    • Feedback and Support
    • Benefits of Membership
    • Personal Blogs
    • Members Area
    • Achievement Levels
  • Learn
    Learn
    • Ask an Expert
    • eBooks
    • element14 presents
    • Learning Center
    • Tech Spotlight
    • STEM Academy
    • Webinars, Training and Events
    • Learning Groups
  • Technologies
    Technologies
    • 3D Printing
    • FPGA
    • Industrial Automation
    • Internet of Things
    • Power & Energy
    • Sensors
    • Technology Groups
  • Challenges & Projects
    Challenges & Projects
    • Design Challenges
    • element14 presents Projects
    • Project14
    • Arduino Projects
    • Raspberry Pi Projects
    • Project Groups
  • Products
    Products
    • Arduino
    • Avnet Boards Community
    • Dev Tools
    • Manufacturers
    • Multicomp Pro
    • Product Groups
    • Raspberry Pi
    • RoadTests & Reviews
  • Store
    Store
    • Visit Your Store
    • Choose another store...
      • Europe
      •  Austria (German)
      •  Belgium (Dutch, French)
      •  Bulgaria (Bulgarian)
      •  Czech Republic (Czech)
      •  Denmark (Danish)
      •  Estonia (Estonian)
      •  Finland (Finnish)
      •  France (French)
      •  Germany (German)
      •  Hungary (Hungarian)
      •  Ireland
      •  Israel
      •  Italy (Italian)
      •  Latvia (Latvian)
      •  
      •  Lithuania (Lithuanian)
      •  Netherlands (Dutch)
      •  Norway (Norwegian)
      •  Poland (Polish)
      •  Portugal (Portuguese)
      •  Romania (Romanian)
      •  Russia (Russian)
      •  Slovakia (Slovak)
      •  Slovenia (Slovenian)
      •  Spain (Spanish)
      •  Sweden (Swedish)
      •  Switzerland(German, French)
      •  Turkey (Turkish)
      •  United Kingdom
      • Asia Pacific
      •  Australia
      •  China
      •  Hong Kong
      •  India
      •  Korea (Korean)
      •  Malaysia
      •  New Zealand
      •  Philippines
      •  Singapore
      •  Taiwan
      •  Thailand (Thai)
      • Americas
      •  Brazil (Portuguese)
      •  Canada
      •  Mexico (Spanish)
      •  United States
      Can't find the country/region you're looking for? Visit our export site or find a local distributor.
  • Translate
  • Profile
  • Settings
Single-Board Computers
  • Products
  • Dev Tools
  • Single-Board Computers
  • More
  • Cancel
Single-Board Computers
Forum [How-to] BB-View on latest Debian
  • Blog
  • Forum
  • Documents
  • Files
  • Members
  • Mentions
  • Sub-Groups
  • Tags
  • More
  • Cancel
  • New
Join Single-Board Computers to participate - click to join for free!
Actions
  • Share
  • More
  • Cancel
Forum Thread Details
  • Replies 142 replies
  • Subscribers 63 subscribers
  • Views 22169 views
  • Users 0 members are here
  • debian
  • embedded_linux
  • bb-view
  • bbb
Related

[How-to] BB-View on latest Debian

compeoree
compeoree over 11 years ago

I thought some others might like to know how to get the BB-View working under the latest Debian beta images.

 

Unfortunately, you are going to have to recompile the Kernel. The video works fine without a recompile (the red/blue swap is easy to fix), but the touchscreen control connections are not the same as the standard TI 4-wire interface. I tried to patch the ti_am335x_tsc.c file, so the changes would be limited to a dts recompile, but I haven't been able to get that working yet (I'm pretty sure it is a state machine / bit assignment issue). But anyway, here are the steps that you need to perform.....

 

Overview

1) Download the necessary files

     a) Robert Nelson's handy tools for compiling the Beaglebone kernel

     b) BB-View source for Angstrom

2) Build the default kernel

3) Patch the Kernel and perform a fast recompile

4) Copy the new kernel to the Beaglebone

5) Edit the xorg.conf file to correct the Red/Blue color swap

6) Revel in the 4 days you just saved image

 

Let's Get Started

I am using Ubuntu 12.04 LTS 64 bit running in a VirtualBox VM to compile the kernel:

Make a new folder called bb-view, this is where our build will happen.

> mkdir bb-view

> cd bb-view

 

Install git, if you haven't already:

> apt-get install git

 

Clone Robert Nelson's linux-dev project locally. Be prepared for a large download (~100 Mb for the cross-compiler and ~700 Mb for the kernel source).

> git clone https://github.com/RobertCNelson/linux-dev.git

 

Change into the new linux-dev folder and select branch/tag that matches the Debian version.

> cd linux-dev

> git checkout 3.8.13-bone37 -b tmp

 

Now we need to build the base image, so our cape drivers folder gets populated. The script will tell you if you need to do or install anything else.

> ./build_kernel.sh

 

Come back in an hour or so.....(You might want to download the Angstrom source from element14 now)

 

Patching the Kernel

Extract two files from the Angstrom source:

> unzip angstrom-source.zip

> tar -zxf bb-black-kernel-3.8.13-bb-view.tar.bz2

> cp ./kernel/kernel/drivers/input/touchscreen/ti_am335x_tsc.c  ~/bb-view/linux-dev/KERNEL/drivers/input/touchscreen/

> cp ./kernel/kernel/firmware/capes/BB-VIEW-LCD7-01-00A0.dts  ~/bb-view/linux-dev/KERNEL/firmware/capes/

 

Now we need to let the compiler know that we want to add the firmware to the build:

> nano   ~/bb-view/linux-dev/KERNEL/firmware/Makefile

 

Add the following line somewhere near line 192 (CTRL-C will display current cursor position):

BB-VIEW-LCD7-01-00A0.dtbo \

 

Don't forget the trailing backslash....it is important. Now save and exit by doing CTRL-O, Enter, CTRL-X.

Change back to the linux-dev root folder:

> cd   ~/bb-view/linux-dev

 

Now issue the kernel rebuild command, this won't take very long at all:

> ./tools/rebuild.sh

 

 

Copy Kernel to BBB

The following instructions assume that you already have the Debian beta installed and booted up on the BBB.

The easiest way is to copy the files over the network, via the 'scp' command:

> scp   ~/bb-view/linux-dev/deploy/3.8.13-bone37.zImage   debian@192.168.7.2:/home/debian

Replace debian (both instances) with the username you are running on the BBB and 192.168.7.2 with the IP address of the BBB.

 

Now log into the BBB and copy the kernel image to the boot partition:

> ssh debian@192.168.7.2

bbb>  sudo cp 3.8.13-bone37.zImage   /boot/uboot/zImage

 

We need to do one more thing before the LCD will work. Since the cape doesn't have an EEPROM, we need to black-list the HDMI drivers and force-load the BB-VIEW drivers in the boot command file:

bbb>  sudo  nano  /boot/uboot/uEnv.txt

 

Find the "optargs" line and edit it to be:

optargs=capemgr.disable_partno=BB-BONELT-HDMI,BB-BONELT-HDMIN  capemgr.enable_partno=BB-VIEW-LCD7-01

Notice that the preceding "#" has been removed. You don't want to disable BB-BONE-EMMC-2G, or you won't be able to boot from eMMC.

Now save and exit by doing CTRL-O, Enter, CTRL-X.

 

Reboot the BBB and the LCD should now work....except the blue and red are reversed.

 

Fixing Red/Blue Color Swap

This is due to errata in the TI AM335x processor when switching between 16 and 24 bit video modes. To fix this, we must first find the name of our screen:

> ssh debian@192.168.7.2

bbb> cat  /var/log/Xorg.0.log  |  grep  screen

Mine was "Builtin Default fbdev Screen 0"

 

Now we edit our X configuration file:

bbb> sudo nano  /usr/share/X11/xorg.conf.d/10-evdev.conf

 

and add a "Screen" section at the end of the file:

Section "Screen"

        Identifier "Builtin Default fbdev Screen 0"

        Monitor "Configured Monitor"

        Device "Configured Video Device"

        DefaultDepth 24

EndSection

Save and exit by doing CTRL-O, Enter, CTRL-X.

Reboot and enjoy!

  • Sign in to reply
  • Cancel

Top Replies

  • Former Member
    Former Member over 11 years ago in reply to Former Member +1
    Hello selsinork, "Which kernel version are you using ?" I use the 3.8. "Did you apply the patch Louis posted ?" I rebuild the kernel with Louis' edits in the "4. Re:[How-to] BB-View on latest Debian" message…
  • Former Member
    Former Member over 11 years ago in reply to Former Member +1
    Ok, so with the overlay loaded then the touch screen driver should be able to work. You can check the proper device using 'evtest' like this: root@lcd:~/evtest# ./evtest No device specified, trying to…
  • Former Member
    Former Member over 11 years ago in reply to Former Member +1
    Interesting. I seem to remember that one of the LEDs on the cape was configured as heartbeat. Perhaps that was the TI-SDK image then as looking at the overlay files I see: gpio-leds-cape-lcd { compatible…
Parents
  • Former Member
    Former Member over 11 years ago

    Hello everybody,

    and thank you Louis for this good tutorial.

     

    I have two problems with my BB-view:

    1) When I try to fix the color swap, I don't find the name of the screen in /var/log/Xorg.0.log

    Did you know an other way to find this name?

     

    2)When I try to calibrate the touchscreen, the TSLIB calibration utility (ts_calibrate) freezes. The screen displays "touch crosshair to calibrate", but I cant interact with (and no Ctrl-C  available)

    There is someone here who solved this problem?

     

    To build my OS I use this tutorial:

    http://eewiki.net/display/linuxonarm/BeagleBone+Black

    with the debian FS.

     

    Regards,

    arthur

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
  • Former Member
    Former Member over 11 years ago in reply to Former Member

    Arthur,

    Which kernel version are you using ?

    Did you apply the patch Louis posted ?

    Is the touch-screen driver loaded and did you set TSLIB_TSDEVICE to the appropriate device ?

     

    If kernel 3.8.x check that the BB-VIEW-LCD7-01 overlay has been loaded.

     

    If kernel 3.13 then you'll need to patch the touch screen into the main devicetree file as 3.13 doesn't have the capemanager and so can't load overlays.

     

    You can ssh into the BBB and kill the ts_calibrate task to get local control back.

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
  • Former Member
    Former Member over 11 years ago in reply to Former Member

    Hello selsinork,

     

    "Which kernel version are you using ?"

    I use the 3.8.

     

    "Did you apply the patch Louis posted ?"

    I rebuild the kernel with Louis' edits in the "4. Re:[How-to] BB-View on latest Debian" message, but it only inverts the axes, not the colors.

     

    "Is the touch-screen driver loaded and did you set TSLIB_TSDEVICE to the appropriate device ?"

    Yes

    I used "cat /dev/input/eventX | hexdump" to find the good one.

     

    "If kernel 3.8.x check that the BB-VIEW-LCD7-01 overlay has been loaded."

    I'm new in the embedded world, and I'm not used to overlays.

    What do you mean by "load" it?

     

    "You can ssh into the BBB and kill the ts_calibrate task to get local control back."

    Thanks for the tips.

     

    Regards,

    • Cancel
    • Vote Up +1 Vote Down
    • Sign in to reply
    • Cancel
  • Former Member
    Former Member over 11 years ago in reply to Former Member

    arthur calimet wrote:

    "If kernel 3.8.x check that the BB-VIEW-LCD7-01 overlay has been loaded."

    I'm new in the embedded world, and I'm not used to overlays.

    What do you mean by "load" it?

    Louis covered it back in his first post here:

    We need to do one more thing before the LCD will work. Since the cape doesn't have an EEPROM, we need to black-list the HDMI drivers and force-load the BB-VIEW drivers in the boot command file:

        bbb>  sudo  nano  /boot/uboot/uEnv.txt

    Find the "optargs" line and edit it to be:

        optargs=capemgr.disable_partno=BB-BONELT-HDMI,BB-BONELT-HDMIN  capemgr.enable_partno=BB-VIEW-LCD7-01

    Notice that the preceding "#" has been removed. You don't want to disable BB-BONE-EMMC-2G, or you won't be able to boot from eMMC.

    Now save and exit by doing CTRL-O, Enter, CTRL-X.

    Alternatively you can look at which overlays are loaded and add/remove your own like this

     

    cat /sys/devices/bone_capemgr.8/slots

    (the 8 may be a 9 or some other number depending on kernel version and driver load order)

     

    0: 54:PF---

    1: 55:PF---

    2: 56:PF---

    3: 57:PF---

    4: ff:P-O-L Bone-LT-eMMC-2G,00A0,Texas Instrument,BB-BONE-EMMC-2G

    5: ff:P-O-L Bone-Black-HDMI,00A0,Texas Instrument,BB-BONELT-HDMI

     

    0 to 3 are reserved for capes that capemgr can detect on it's own - it can't detect the BB-View as it doesn't have the required EEPROM

    4 is a virtual cape for the on-board eMMC

    5 is another virtual cape for the on-board HDMI

     

    So you do something like this:

    echo BB-VIEW-LCD7-01 > /sys/devices/bone_capemgr.8/slots

    cat  /sys/devices/bone_capemgr.8/slots

    0: 54:PF---

    1: 55:PF---

    2: 56:PF---

    3: 57:PF---

    4: ff:P-O-L Bone-LT-eMMC-2G,00A0,Texas Instrument,BB-BONE-EMMC-2G

    5: ff:P-O-L Override Board Name,00A0,Override Manuf,BB-VIEW

     


    the BB-VIEW-LCD7-01 in the echo line needs to be the filename of the overlay that you see in /lib/firmware after you strip off the version and extension from the end of the filename. So if you look in /lib/firmware and see BB-VIEW-LCD7-01-00A0.dtbo then you'd use the echo line above.

     

    Note that the HDMI and LCD will conflict as they use the same set of pins, so you need the capemgr.disable_partno=BB-BONELT-HDMI,BB-BONELT-HDMIN piece in the optargs line of uEnv.txt (and a reboot to activate it) as Louis described before the BB-View overlay will load.

     

    Sorry I can't help much with the colour swap problem as I'm not using Xorg and as you probably saw earlier in the discussion the plain framebuffer doesn't appear to have the problem.

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
  • Former Member
    Former Member over 11 years ago in reply to Former Member

    Hello selsinork,

     

    and thank you for the explanations.

     

    The "optargs" line in the uEnv.txt file is the good one:

    optargs=capemgr.disable_partno=BB-BONELT-HDMI,BB-BONELT-HDMIN  capemgr.enable_partno=BB-VIEW-LCD7-01

     

     

    And the overlay seems to be loaded:

    cat /sys/devices/bone_capemgr.9/slots

    0: 54:PF---

    1: 55:PF---

    2: 56:PF---

    3: 57:PF---

    4: ff:P-O-L Bone-LT-eMMC-2G,00A0,Texas Instrument,BB-BONE-EMMC-2G

    5: ff:P-O-- Bone-Black-HDMI,00A0,Texas Instrument,BB-BONELT-HDMI

    6: ff:P-O-- Bone-Black-HDMIN,00A0,Texas Instrument,BB-BONELT-HDMIN

    7: ff:P-O-L Override Board Name,00A0,Override Manuf,BB-VIEW-LCD7-01

     

     

    (the BB-VIEW-LCD7-01-00a0.dtb file is in /lib/firmware)

     

    I probably have another problem.

     

    Regards,

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
  • Former Member
    Former Member over 11 years ago in reply to Former Member

    Ok, so with the overlay loaded then the touch screen driver should be able to work.

     

    You can check the proper device using 'evtest' like this:

     

    root@lcd:~/evtest# ./evtest
    No device specified, trying to scan all of /dev/input/event*
    Available devices:
    /dev/input/event0:      ti-tsc
    /dev/input/event1:      bb_view_gpio_keys.8
    /dev/input/event2:      HID 04d9:1400
    /dev/input/event3:      HID 04d9:1400
    Select the device event number [0-3]: ^C
    root@lcd:~/evtest#

     

    The one you're looking for is the ti-tsc one.  You can get evtest from here http://cgit.freedesktop.org/evtest/

     

    Or, alternatively if you do

     

    root@lcd:~/evtest# cat /proc/bus/input/devices
    I: Bus=0000 Vendor=0000 Product=0000 Version=0000
    N: Name="ti-tsc"
    P: Phys=
    S: Sysfs=/devices/ocp.3/44e0d000.tscadc/TI-am335x-tsc/input/input0
    U: Uniq=
    H: Handlers=event0 
    B: PROP=0
    B: EV=b
    B: KEY=400 0 0 0 0 0 0 0 0 0 0
    B: ABS=1000003
    
    I: Bus=0019 Vendor=0001 Product=0001 Version=0100
    N: Name="bb_view_gpio_keys.8"
    P: Phys=gpio-keys/input0
    S: Sysfs=/devices/bb_view_gpio_keys.8/input/input1
    U: Uniq=
    H: Handlers=event1 
    B: PROP=0
    B: EV=3
    B: KEY=f 0 0 0 0 0 0 0 0

     

    you can get similar information..

     

    Finally, if you've built the touchscreen driver as a loadable module make sure it's installed in the correct place under /lib/modules, that you've run depmod -a or equivalent and have actually loaded the one with Louis changes and not a stale version.

    • Cancel
    • Vote Up +1 Vote Down
    • Sign in to reply
    • Cancel
Reply
  • Former Member
    Former Member over 11 years ago in reply to Former Member

    Ok, so with the overlay loaded then the touch screen driver should be able to work.

     

    You can check the proper device using 'evtest' like this:

     

    root@lcd:~/evtest# ./evtest
    No device specified, trying to scan all of /dev/input/event*
    Available devices:
    /dev/input/event0:      ti-tsc
    /dev/input/event1:      bb_view_gpio_keys.8
    /dev/input/event2:      HID 04d9:1400
    /dev/input/event3:      HID 04d9:1400
    Select the device event number [0-3]: ^C
    root@lcd:~/evtest#

     

    The one you're looking for is the ti-tsc one.  You can get evtest from here http://cgit.freedesktop.org/evtest/

     

    Or, alternatively if you do

     

    root@lcd:~/evtest# cat /proc/bus/input/devices
    I: Bus=0000 Vendor=0000 Product=0000 Version=0000
    N: Name="ti-tsc"
    P: Phys=
    S: Sysfs=/devices/ocp.3/44e0d000.tscadc/TI-am335x-tsc/input/input0
    U: Uniq=
    H: Handlers=event0 
    B: PROP=0
    B: EV=b
    B: KEY=400 0 0 0 0 0 0 0 0 0 0
    B: ABS=1000003
    
    I: Bus=0019 Vendor=0001 Product=0001 Version=0100
    N: Name="bb_view_gpio_keys.8"
    P: Phys=gpio-keys/input0
    S: Sysfs=/devices/bb_view_gpio_keys.8/input/input1
    U: Uniq=
    H: Handlers=event1 
    B: PROP=0
    B: EV=3
    B: KEY=f 0 0 0 0 0 0 0 0

     

    you can get similar information..

     

    Finally, if you've built the touchscreen driver as a loadable module make sure it's installed in the correct place under /lib/modules, that you've run depmod -a or equivalent and have actually loaded the one with Louis changes and not a stale version.

    • Cancel
    • Vote Up +1 Vote Down
    • Sign in to reply
    • Cancel
Children
  • Former Member
    Former Member over 11 years ago in reply to Former Member

    Hello selsinork,

    and thank you for spending time helping me.


    i export TSLIB_TSDEVICE=/dev/input/event1 (it is the ti-tsc one)


    I think the module with Louis changes is loaded, because the axes are inverted.

    But I don't understand how the axes inversion can fix the color swap, or the ts_calibrate freeze.

    Did I miss something? or we are not speaking about the same patch...

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
  • Former Member
    Former Member over 11 years ago in reply to Former Member

    Same patch.  The problem I found was that without the patch it was difficult/impossible to complete calibration. ts_calibrate seems to have no 'quit' option, so being unable to do what ts_calibrate asks looks very much like it's frozen when in reality it's just waiting for you to do something that you're not able to do.

     

    As I said, the colour swap problem seems limited to Xorg and seems fixable with the options Louis described. I'm not using Xorg, so I don't see the problem and can't really help much further with that.

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
  • Former Member
    Former Member over 11 years ago in reply to Former Member

    Hello,

     

    Ultimately, I used xinput-calibrator, with no problem.

     

    But I always have the color problem.

    I am seeking for an other way to change color depth, or an other way to find the screen name.

    Any idea?

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
  • Former Member
    Former Member over 11 years ago in reply to Former Member

    You might try looking in /var/log/Xorg.0.log you'll often see something like this (amongst lots of other info)

     

    [    37.033] (==) Using system config directory "/usr/share/X11/xorg.conf.d"
    [    37.354] (==) ServerLayout "Simple Layout"
    [    37.354] (**) |-->Screen "Screen0" (0)
    [    37.354] (**) |   |-->Monitor "Monitor0"
    [    37.354] (**) |   |-->Device "Device0"
    [    37.354] (**) |-->Input Device "touchpad"
    [    37.354] (**) |-->Input Device "Mouse1"
    [    37.354] (**) |-->Input Device "Keyboard1"
    [    37.354] (**) Option "Xinerama" "0"

     

    which may give you some clues about what names the xserver thinks it's using.

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
  • Former Member
    Former Member over 11 years ago in reply to Former Member

    arthur calimet wrote:

     

    Ultimately, I used xinput-calibrator, with no problem.

    Just a thought...

    Were you trying to use ts_calibrate while X was running ?  That's very unlikely to work, ts_calibrate should only be ran from a framebuffer console, i.e. without X running.

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
  • Former Member
    Former Member over 11 years ago in reply to Former Member

    I already look this file:

     

    [   287.457] (==) Using system config directory "/usr/share/X11/xorg.conf.d"

    [   287.458] (==) No Layout section.  Using the first Screen section.

    [   287.459] (==) No screen section available. Using defaults.

    [   287.459] (**) |-->Screen "Default Screen Section" (0)

    [   287.459] (**) |   |-->Monitor "<default monitor>"

    [   287.460] (==) No monitor specified for screen "Default Screen Section".

    Using a default monitor configuration.

    [   287.460] (==) Automatically adding devices

    [   287.460] (==) Automatically enabling devices

     

    and indeed, there is only "input class" section in /usr/share/X11/xorg.conf.d/10-evdev.conf

    I tried to create a screen section using some Identifiers like "Default Screen Section", "Screen0", etc...

     

    "Just a thought..."

    I did this mistake when i post my first message image

    but I still have the freeze after stoping X.

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
element14 Community

element14 is the first online community specifically for engineers. Connect with your peers and get expert answers to your questions.

  • Members
  • Learn
  • Technologies
  • Challenges & Projects
  • Products
  • Store
  • About Us
  • Feedback & Support
  • FAQs
  • Terms of Use
  • Privacy Policy
  • Legal and Copyright Notices
  • Sitemap
  • Cookies

An Avnet Company © 2025 Premier Farnell Limited. All Rights Reserved.

Premier Farnell Ltd, registered in England and Wales (no 00876412), registered office: Farnell House, Forge Lane, Leeds LS12 2NE.

ICP 备案号 10220084.

Follow element14

  • X
  • Facebook
  • linkedin
  • YouTube