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
RIoTboard
  • Products
  • Dev Tools
  • Single-Board Computers
  • RIoTboard
  • More
  • Cancel
RIoTboard
Forum Linux on RIoT
  • Blog
  • Forum
  • Documents
  • Files
  • Members
  • Mentions
  • Sub-Groups
  • Tags
  • More
  • Cancel
  • New
Join RIoTboard to participate - click to join for free!
Actions
  • Share
  • More
  • Cancel
Forum Thread Details
  • Replies 31 replies
  • Subscribers 25 subscribers
  • Views 3832 views
  • Users 0 members are here
  • riot_board
  • riotboard
  • riot
  • linux
Related

Linux on RIoT

Former Member
Former Member over 11 years ago

Yep folks, it's possible to have a current linux kernel on the RIoTboard

 

Fullscreen contentimage_38322.html Download
<html><head><title>Jive SBS</title></head>
<body><font face="arial,helvetica,sans-serif">
<b>Error</b><br><font size="-1">
An general error occurred while processing your request.
</font></font></body></html>

image

image

 

Oh, and I really, really hate shiny screens image

  • Sign in to reply
  • Cancel
Parents
  • dxtn
    dxtn over 11 years ago

    How did you get it?

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
Reply
  • dxtn
    dxtn over 11 years ago

    How did you get it?

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
Children
  • radiatortwo
    radiatortwo over 11 years ago in reply to dxtn

    Selsinork did some great work on implementing the board in the Kernel sources.

     

    You can browse through his git repository and get the sources to compile them yourself.

    https://github.com/selsinork

     

    Also in this thread theres some info what has been done by him in the sources.

    Board device tree.

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

    Most of the stuff is already there as there are many other boards based on the i.MX6 series.. I've just added the final layer of glue to bring together a lot of other peoples excellent work.

    Sadly, not all of the pieces are in released versions of the kernel or u-boot just yet, so you do have to be prepared for a bit of work compiling stuff yourself.

     

    I hope to have enough bits available on github later this week and when that's done I'll write some blog posts covering building and installing u-boot, the kernel, and hopefully one of Robert Nelsons minimal Debian filesystems. If we can get to that point it should be possible to install the rest.

     

    Unfortunately there doesn't seem to be a way to upload a large image file here, so it's unlikely I'll be able to provide something that can simply be written to an SD card for people who're not comfortable building everything themselves.

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

    Oh, and if there's anyone able to build the pieces themselves, testing is always appreciated.  I'm sure there'll be something I'll miss...

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

    If you want I could provide some space for the image on my server.

    No website just direct linking to files.

     

    I am also trying to compile the stuff myself. Maybe create an image later if it works.
    But I think I´ll wait till you describe it later. Don´t have that much time recently.

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

    I was surprised that I could manage to use selsinork processes to get Debian running.  All is well except that I do get the demx image of u-boot on the LCD8000-97C screen but not the Debian console. I could however access the RIot via the TTL console and SSH.

    U-boot detects the display..

    => printenv

       baudrate=115200

       bootargs=console=ttymxc1,115200 init=/init nosmp video=mxcfb0:dev=ldb,bpp=32 video=mxcfb1:off fbmem=10M vmalloc=400M

       bootcmd=for dtype in ${dtypes} ; do for disk in ${bootord} ; do if test ${fail} -eq 0; then ${dtype} dev ${disk} ;if run lbs; then if run evi; 

       bootdelay=2

       bootord=0 1 2

       bootpart=1

       console=ttymxc1

       dtypes=mmc

       ethact=FEC

       ethprime=FEC

       evi=env import -t ${scriptaddr} ${filesize} ;

       fail=0

       fdt_addr_r=0x11000000 

       fdt_file=imx6dl-riotboard.dtb

       kernel_addr_r=0x12000000

       lbs=load ${dtype} ${disk}:${bootpart} ${scriptaddr} /bootscript ;

       loadaddr=0x12000000

       scriptaddr=0x10008000

    I also save the following in U-boot

    U-Boot >>

       setenv bootargs console=ttymxc1,115200 init=/init nosmp video=mxcfb0:dev=ldb,bpp=32 video=mxcfb1:off vmalloc=400M androidboot.console=ttymxc1    androidboot.hardware=freescale

    U-Boot >> saveenv

     

    What else need to done ? (I used selsinork step 6 to get the image, and create the uSD card on Linux)

    Thanks

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

    If you're using a 3.15+ kernel with my devicetree then you can't (easily) use any LVDS connected display. There are a couple of reasons for this.

     

    1. there's an issue with the imx-drm display driver (or more correctly with the selection of which clock to use for the IPU) that prevents the ability to have both HDMI & LVDS enabled at the same time. You have to chose either HDMI or LVDS and build a separate, different, devicetree for each configuration.

    2. There's a problem related to ethernet interrupts in low power modes that's best resolved by using GPIO6 to to mirror interrupts in that mode. However GPIO6 is used by the touchscreen I2C interface connected to the LVDS interface.

     

    As there's no driver for the particular touchscreen controller used on LCD8000-97C in the upstream kernels, and due to the relative cost of the display, I deemed it to be an acceptable compromise to use GPIO6 in order to provide reliable ethernet.

     

    On the side of not being able to have both LVDS & HDMI in the devicetree at the same time, it's mostly a case of waiting until the driver issue is resolved before we can enable it.

     

    Also, somewhat unfortunately, saving the environment is probably not the best of ideas. There's arguably a flaw in the way u-boot handles the environment - it saves it to eMMC. This means that even if you use a different SD card with a different OS you'll get the bootargs that were previously saved to eMMC. This can be problematic for many reasons, but take the example where you want one SD card that uses HDMI and a different one that uses LVDS it becomes difficult to do without manually changing the environment saved into eMMC every time you switch.

     

    Let me know if you do want a LVDS only setup and I'll build a devicetree for you with that functionality as well as some instruction on how to clear the saved environment and the changes you'll need for /bootscript to accomplish it.

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

    Many thanks for the quick and prompt reply.. I am only interested in a LVDS only setup, and appreciate your willingness to help.

     

    Thanks you

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

    Go here https://drive.google.com/folderview?id=0B-WIc2IIJv2FQURpR2V0MkhhUjg#list and download the lvds version of the kernel.

    Copy it onto the RIoTboard and then extract it with

     

    tar xf linux-kernel-imx-lvds-3.15.0-armv7l-101.txz -C /

    then reboot.

    When u-boot prompts, press a key to break into the u-boot shell and type the following.

     

    mmc dev 2

    mmc erase 300 1

    now type 'reset' or push the reset button.

     

    You should see something like the following

     

    U-Boot 2014.07-rc3-00065-ge606136-dirty (Jun 14 2014 - 13:33:50)

     

    CPU:   Freescale i.MX6SOLO rev1.1 at 792 MHz

    Reset cause: WDOG

    Board: RIoTboard

    I2C:   ready

    DRAM:  1 GiB

    MMC:   FSL_SDHC: 0, FSL_SDHC: 1, FSL_SDHC: 2

    *** Warning - bad CRC, using default environment

     

    auto-detected panel LCD8000-97C

    Display: LCD8000-97C (1024x768)

    In:    serial

    Out:   serial

    Err:   serial

    Net:   FEC [PRIME]

     

    what we're looking for is the highlighted line that tells us that we're using the compiled in environment rather than one saved to eMMC.

     

    When the board has booted, edit /bootscript and find this line

    bargs=setenv bootargs console=${console},115200n8 rootwait root=PARTUUID=${btpart}

    change it to look like this

    bargs=setenv bootargs console=${console},115200n8 rootwait root=PARTUUID=${btpart} enable_wait_mode=off

    disabling wait mode solves the ethernel interrupt problem at the expense of some extra power consumption.

     

    The general idea here is not to edit any environment settings within u-boot, and never to use saveenv. Instead change the settings in /bootscript which means they only affect the device you're currently booted from, instead of every possible place you could boot from.

     

    For anyone who may be interested, the change to the devicetree that allows the LCD8000-97C to work is here https://github.com/selsinork/linux/commit/e9bce885d404ce86525dbab36faf84015bc53aac

     

    The change also re-enables the I2C controller connected to the LVDS connector. However this won't get the touch-screen working as there's no driver for tha chip in the upstream kernel at this point in time. The intent is only to give the option of a userspace driver or to allow for someone to forward port the 3.0.35 driver as I don't have time to even attempt it right now.

     

    Good luck, and do let us know how you get on with it!

    • 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 are a star!!, cant wait to try it.

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

    Yip, it works.. I now try to port the touch screen driver.image

    Zillions of thanks

    • 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