GitHub project upgrade

I am trying to work out how to build an install an update to the kernel for the CAN. The project I believe is here

https://gitorious.org/linux-can/

There are a few sub projects within it. I specifically want to add the ISO-TP protocol to my beaglebone project so I guess this means building it into the kernel - I don’t believe this is a released part of the SocketCAN driver as standard yet. I am using Debian as my OS.

The problem is every search I do on the subject assumes I know how to use github and how to compile the parts of the kernel I need and what I do with the output. There is no step by step guide - this does not make it easy for people that are new to Linux.

Also I guess if I add functionality to the kernel I would need to update header files etc to use these features.

If I use a cross compiler on a windows pc (or a linux pc for that matter) do I need to build drivers/libraries there as well ?

Thanks in advance to anyone that can explain

A_P

The problem is every search I do on the subject assumes I know how to use github and how to compile the parts of the kernel I need and what I do with the output. There is no step by step guide - this does not make it easy for people that are new to Linux.

Get used to it, this is the way it will always be. For some reason, Linux users seem to be incredibly lazy, or really bad at communicating instructions. Sure, not all the time, just most of the time. I suggest that you make a Debian VM, and start learning . . . Also while you’re at it, you DO need to learn git. git is far more useful than you seem to realize. Start using goolge, and go to town.

Remember, you are the one who needs to learn these things. So it is your own responsibility to learn / figure out various things. It will get easier / better with time and experience.

Yes it’s true that the modern software development is complex—you have to deal with several separate skills, but it’s worth it. The tools are quite clever and make sense once you get used to them. Starting with GIT: you probably should replicate the repository of the software you’ll be working on on your own machine. The repositories are listed on the right side of the page you mentioned—I assume you’ll be working on linux-can,
so go its page https://gitorious.org/linux-can/linux-can. In there they list the git URL which you will use to
clone the repo:

git clone git@gitorious.org:linux-can/linux-can.git

You may have to do it twice because they use SSL and you need to insert the host keys in your local key store. I’ts a big repo—1.5GB total—so it will take a while. After you have a local repository, you can make changes, ‘git commit’ them, test, etc. When you’re ready to contribute back to the CAN project, you can email them your patches, or even establish your own gitorious or github repository, and send them a pull request.

One simple advice: don’t bundle your changes in one giant changeset: try to structure them as a bunch of small (few dozen line changes) logically complete changes. Main project maintainters have a hard time accepting large, hard to digest chunks, and tend to be more comfortable with smaller, easier to understand incremental changes.

William,like I said every search I do is not helping - and I do alot of searching, and I can get the project out of git hub.

I think you misunderstand, I appreciate how important GitHub is and more importantly the effort people put in to create the code. If I didn’t I wouldn’t be referencing it. I had already managed to get the project out etc. The issue I have is the large jump from code to building a kernel with modification, ensuring it is built with the correct components etc and ensuring that every subsequent C project I write can pick up and use the new library… I think you have perhaps forgotten how long it takes to learn or you did it incrementally. There is alot of it and it is very daunting - wonder how many people have been put off by the scale or the attitude.

Thanks I will use this process in future

Only “attitude” I see in this thread is yours. You got solid advice for being a n00b to the world YOU wanted to join. No one will hold your hand through your entire process and ever single step for your specific desires. There is plenty of info out there how to any and every step. Especially at the level you’re looking for, ie beginners stuff.

A_P, So, I don’t really know what you’re asking. It almost sounds as though you’re experiencing what I refer to as “pre project anxiety” Meaning you’ve taken on a project larger than you’re normally used to, and you do not know where to begin. Normally what I do in this situation, I just start writing code. Then when I start running into potential problems. I’ll break out the “whiteboard”, and work out the program flow.

Do you know of this ? https://www.kernel.org/doc/Documentation/HOWTO. Also, git is much more than a tool to upload / download source files. You can use it to create patches, you can use it to search your entire project for various “things”, etc. Then I’m sure there is much more to it. See, I’m still learning git myself . . .

Anyways, the only way you’re going to learn is by doing. So just do, and start learning. You’re very likely to make mistakes along the way( just like any one else ). SO long as you learn by them, there really is no problem.

Thank you William that is exactly what I was looking for. I am sorry we seam to have got of to a bad start here. I guess I interpreted your initial reply differently than you intended.

You are correct I have a fair amount of experience at C and CAN/serial comms stuff however I am new to Linux - especially the build process etc. I am happy with big projects generally.There are a few areas I was struggling with to do with builds and compilers etc and I guess more than one issue at once sometimes looks like a massive issue.

Well, I could have been a smart ass and told you I found that link via google . . . “how to linux kernel development”. But I was noticing the direction of a couple posts including mine. Sadly, my original post is for the most part truthful. But perhaps Linux developers are not lazy ( some surely are ), but like to teach “tough love” xyx by example ( or something ). To be honest though, I can completely sympathize with these people. As I’ve been asked some fairly idiotic questions myself, and it really gets old . . . that and I’m not exactly a guru.

I know how you feel though. I started off last year with my own A5A knowing NOTHING about embedded Linux, or Linux development. But like you I have had many years experience with C. Also been using Debian since the mid 90’s, which has helped me a lot, once I broke the rust off.

Some helpful advice for the future. I can no speak for everyone, but personally I prefer short concise questions. You give me a wall of text, and I’m just as lilkely to delete the email, as read it. shrug