• 0
Sign in to follow this  
dakefeng

Ask a hint for direction

Question

I want to use zybo to make a simple linux box, which can take usb keyboard as stdin and vga/hdmi as text console stdout, and later on I want to make it support usb mouse/keyboard and vga/hdmi as Xwindows console.

The first thing would be to design the vivado project, what IP core I will be needing? best to be open source/ free/ with linux driver and so on.

Anyone please give me some hints or direction I will try my best to do it.

Thank you.

Share this post


Link to post
Share on other sites

4 answers to this question

Recommended Posts

  • 0

Well .. I've never done this before, so take my two cents for what it's worth ...

It sounds like you have a couple of steps ahead of you:
1. Getting Linux running using the on-board USB-UART as the console, and either the microSD or a network something or other for a filesystem.

2. Be comfortable reconfiguring the Linux kernel you've chosen, to include recompiling it and installing more (or less) features on your Zybo board.

3. You can then use something to create a video buffer in memory (somewhere), and drive the HDMI from the video buffer.  Perhaps your first attempts will just set aside a specific section of RAM to be "video memory", and then to write into /dev/kmem into that memory to know that your controller works.  When you are ready to actually run an X-Server from that memory, I know in the past I've seen the code to do this buried in the VNC server code, so you can cut/copy/paste from there to get X-Windows running into a memory buffer.  (You might still manage to keep the VNC portion alive too, so you can see your screen across the network ...)  You can then build an HDMI driver that does nothing more than read from that "display" memory and send it out the HDMI port to the screen.  Of course, your first driver will probably be quite specific to the display you have ... if you want a touch of flair, later drivers can add the display query code back in.  You should be able to find it in the Linux code base ...

4. Supporting keyboard and mouse, though, might be a bit more interesting.  I have no experience with USB OTG and how to set that up.

Perhaps I'm just rambling, but do you think that gets you any closer?

Dan

Share this post


Link to post
Share on other sites
  • 0

For 1  I have done a lot already. I use the simplest board design, only two gpio connect to switches, buttons and leds. then use petalinux made a projection with this hard ware to start. I set up busybox httpd service, linux app to work show the switch button status and light the leds. I even made a BSP release for the design.

The interesting thing is I noticed zybot project, I just do not understand how the linario make the x working from the zybot perpherials. I hope I can just rip some simplest framebuffer or something to support a very simple xwindows and manager

 

Share this post


Link to post
Share on other sites
  • 0

"I hope I can just rip some simplest framebuffer or something to support a very simple xwindows and manager"

That's why I was suggested the VNC server code.  At least, when I last looked into it, it was exactly that: a very simple xwindows and manager based upon an internal frame buffer in memory.  Just pick memory that you can also use from your video display, i.e. a one pointer change (ignore the VNC stuff) and you should be there.  Okay, so you'd still need something programming logic wise that would read from this memory and dump it to the HDMI port, but this is where I would start.  Perhaps a two line change to the VNC XServer, a change to the kernel to reserve the memory, and a piece of programming logic and you are there.

Of course, there remains my caveat: I've never done this before either.  :D  YMMV,

Dan

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this