Okay, so welcome, this is a talk about orange pi boards, or is 5 boards, like this one,
this is orange pi RV2, this is orange pi R2s, pretty small, I will introduce them in detail
anyway.
So, I make a little bit of a self-employed consulting consultant, working for a company called
RUKAMIT, and yes, I am an engineer and trainer at the same time, doing cool things,
like working on a Yoto project, like helping customers to bring up their projects,
and also working on the Linux kernel, and also optimised your embedded Linux systems, right?
Plus, I have training courses with three materials, as well, on the handset to have a look,
especially the Yoto course is the most advanced one, this also a common course, and some
embedded Linux training materials, right?
So, in instruction here, the goals of this presentation is to contribute to making
a more popular, right?
Like, it's trying to bring my own contribution, and this targets in particular support in
me, Linux, Yoot, and Yoto, and so here the focus is on the orange pi R2s pi boards, more
specifically, knowing that Marcel gave a great presentation about the other boards, like
very wide area of boards, which it's hard to keep up collecting like he does, right?
So, let's see how the progress that's done so far, and show you that you can contribute.
There are still lots of things you can do at this stage, at the boards first, so you
have orange pi R2, which drew for the first thing you told me about, like, when I was
at embedded recipes, the recipes as he has a nice conference.
So, basically, when it's a K1 core from SpaceMids, it cores actually, and it has like
two gigabits, Ethernet ports, quite nice, also, I've been compared to Raspberry Pi, you
have like two PCIe ports as well, like you can collect, connect PCIe Express devices, or
especially SSD drives, so that's really nice.
It exists in several versions, like two gigabits, four gigabits, eight gigabits, and when
I ordered it, like in late September, October, it cost only 50 or 54 euros, and unfortunately
now it's like more than double, so really annoyed by that, it's terrible, now it's 120,
so pretty bad, but the board itself is great.
It was hard to find the two gigabyte version, like for people who want to contribute without
paying the too much rank around cost to the AI companies.
So, yeah, questions, how many do you have the R2 board, yeah, more?
Oh, nice, R4, yeah, R2, right, yeah, orange pi R2, how many would like
to buy it, given the price?
Yeah, if you can afford it, how many are waiting for K3, the one with RV32, to 23, right, that
would be nice, so hopefully there will be an orange pi R1 as well, because they're nice
design boards with like an attractive size, I mean those ones don't take that much size
on your desktop, compared to the big, like Jupiter 5, or even better than a 5, is like
rather big on my desktop, which I limited space.
Yeah, the other one from the range, this range is orange pi R2s, also same processor, very
close, and this one is interesting in the sense, it's really nice and relatively cheap,
like switch for, for any networking activity, right, like it has not only the two one
gigabits, it's a night port, but also the two to the five gigabits ones, for a price
that was like, and bitable, like 32 euros, for two gigabytes of RAM, which was more than
enough like two to run network, and that's why devices are to run open, and open the
URT. So that was nice, now it's the price has increased again, like almost 150%
unfortunately. So yeah, here here is what it looks like, unfortunately, it doesn't have any
Wi-Fi, which would have been nice for something you want to use, that maybe has an access point
in your office at home, like I was thinking about using it for filtering, for connecting on my
internet, I mean, IoT objects in my home, which I have like a proprietary firmware,
which could be exploited as chatbot, as bots maybe sometimes, if they are compromised,
so I want to give those guys very little bandwidth and run very strict filtering rules
against what they are traffic. That would be nice candidate for running my own software,
without having to do an expensive equipment. Well, if I would be nice for this, but you can
you could always attach one if you want through a small dongle on USB, that would work.
And everything I'm missing is MMCSD for easy booting. They claim they have a TF card interface,
but I got no clue of how to use it, because this very strange connector here,
and didn't manage to find any accessory to use it, so it's like a SD card, but with a really
proprietary connector, unfortunately. Another bad thing is that there are no schematics, I asked
multiple times, but you know they are Chinese, so even if you've threatened them to increase tariffs
like from the European Union, like sanctions, they don't care. The Americans, right?
And another problem with those is that PCI Express is there on the board, of course, but it's
used for powering the two gigabytes, even at the board, but it's not available any other way,
which is a bit sad. I guess it's a price, let's compromise I guess, right? So how many have this one?
Oh yeah, okay, one. Yeah, it's not as well advertised as the other one, but it's pretty nice.
How many will you like to buy it, maybe? So where to buy? That's the question. You can follow the
links on the product pages, I'm sharing. Unfortunately, there's no retailer outside of China.
Yeah, you have to buy from the AliExpress store. You, well, they have a namazon link, but like
it's either slow, expensive compared to a Xpress, and they are evil anyway. I mean, the master platform.
So yeah, you need to go through AliExpress, let the links, they share to do that, so I recommend
the store from the maker itself, which is called Shen Zhen Zhang Long, right? And it's reliable,
I've done it multiple times. Yeah, you can trust them. Though you won't get a rarely clean
invoice for your accounting goods, it's like some screenshot of the, it's not a proper invoice,
but yeah, okay. I would advise to be aware of the other sellers on AliExpress, because they
like sometimes like have suspicious low, suspiciously low prices, and sometimes I try it for a
banana pie to get one through another supplier, and ultimately the other was canceled,
because they accepted the other, but they had no stock. So I had to wait for AliExpress to
realize that the other had never be shipped to be to re-refend it. Never mind, so be careful with those.
Now let's talk about the vendor support for those boards, so both are supported through
their orange pie, GitHub repositories, that were created at a time they shipped the created boards.
So it's Linux66 and Ubweets2210, not very exciting, and especially as if you look at the latest
commits, it's exactly when they release the board, and it's like shoot and scoot, right? Yeah,
you just run away after releasing something, you lose interest, and you do go on doing something else.
So that's typically typical event, how do we have under software repository, right?
If you look at the OS images, you have opened the value RT, orange pie OS, which is open harmony,
only for the RV2, Bob, and Ubweets22404. So, well, it's still a list, as far as Ubweets2210,
you still have dates from Ubweets2, but who wants a device without a kernel of dates?
Well, and maybe even dates at all, like, I don't know about Ubweets, the WRT and things like that,
so, you know, who wants that? That's why, of course, you are here, and we are interested in
community solutions, of course. So, the hardware itself without software is worth not much,
except if you said it too, because the RAM is expensive. So, my landing efforts now,
that have been done. So, if you look only at the device three, there's been little,
like on the board themselves, right, like the DTS for the board. So, there's one for the R2,
for orange pie RV2. There was initial work from Hendrik, Hamling, to support, like UART,
and a few LEDs, and I added 188 and PDA, and PMDA support, PDA support, just imitating what was done on
banning pie. So, that was not rocket science, that was pretty easy. And similarly, for orange pie,
R2S, I just, like, guessed what the correct, correct device three would be, I tried it and it
worked and it seemed to make sense. So, yeah, I just posted it and it got accepted. So, but was
relatively easy to do. But, this being said, there's a lot of ground work being done by contributors,
especially people from SpaceMet, actually, there's a lot of ongoing work to make a better support
for the SOCs. So, yeah, I mean, we are not alone, and they are doing a great work,
that appears on other boards that are similar as well. So, yeah, we can reuse that stuff,
especially in the in the in the 620 kernel that's coming on 620 RC1 that's coming like in two weeks.
So, yeah, let's share some status. What's already available and what's remained to be built.
So, in mainline, for R2, you have the UART that's there, infinite, DPA, ULA, LEDs,
high square C works, 80, 80, 24 E-prom works. So, it's just that I package it with like,
I posted it together with the some patches that were trying to enable MMCSD, like the one,
the thing that doesn't work yet. And so, that part got didn't go anywhere and then I didn't
repost the high square C ones, but high square C works thanks to the mainline drivers.
We should also pretty close with PCI Express, that was merged. So, yeah, that's the work.
And for Wi-Fi and Bluetooth, it actually worked. It's been some guy, Alperac, actually made it work with
the developer kernel, like, I mean, that's just an external AP62, 506 chips. So, that's standard,
and we have, like, external modules for firmware to make it work. That should work.
MMC, as an optional module, right? So, Marcel said it worked and I confirm actually did it works.
The question is just how, how do you share that? Like, you have to write a device free
for the board with the MMC. Well, yeah, the MMC or not, because it's the module, Dubai and plugin.
USB2 and 3 seem to be like, like, the two work as well, because of the recent contributions.
What's going to be harder is MMCSD, because, as Marcel explained, the controller is used,
the thing controller is used, but in a different configuration. So, you have to figure out how to
really properly make it work. I did actually make it work in red only mode, but then the kernel,
like, I could detect the partitions on the MMSD card, but it didn't work in red mode. Like,
if I cats, I mean, I copied the contents of the storage that the block device that I was seeing
into slide-down slash null, it just died. So, something weird, like, with interrupts. So, yeah,
with somebody, some people need to, we need help to, for people to have a look at that
part and see how to make it work. Maybe learning from the vendor kernels, that's because it
works on that side. For orange by R2S, like the networking device, what you have you
work, one gigabyte, Ethernet, MMC, that works, MMC works. And on the way to mainland, you have
ice class C as well, and the EPROM for storing the Mac address, that's part 2. And we should be
pretty close for PCA Express, so that would be a fantastic device for testing, like, the super
high speed Ethernet, and USB 2 and 3 should be close as well. I'm already using USB 2,
actually, but like, from the bootloader side, to boot it. So, what's in line for 620?
RM does, as I also said, as well, are accepted a bunch of commits. I mean, in the, in the, is
sok tree. So, that, that's very likely to be accepted by Linux, in during the 620 much window.
So, that's a nice base, like, I mean, the list is much longer than the way I'm sharing here.
So, yeah, that's, that's a great news. We have lots of activity on the driver side.
So, to support the ball, we should have, like, most things that we need.
So, how you can help? That's the main thing. There's quite a lot of flow hanging fruit,
like, for you guys, there's an opportunity to get involved. So, that's nice.
So, I would advise you to wait for Linux 20, 620 RC1, to, like, to have some patches that are
based on some solid, solid, base code code base. Otherwise, you don't want to collect patches
here, and then just wait for RC1 to be ready, and then, you know, you have all those features
enabled, and everybody understands what your patches are based on, right?
To be fun to implement, we've lots of new features that are missing. So, just look at
the missing parts, try to implement, just play with that, it's fun, I promise.
If, just, like, adding one piece after the other and contributing, it's really fun, and we're
willing. So, yeah, it was busy in December, working on that.
Please, also help with supporting MMPCSD, right? But, yeah, it doesn't work yet at all. So, there's
a conversation that, when people studied the mathematics and the data sheets and came up with,
like, the realization that that was a different configuration, and so, people started
saying that we will have a look, but nothing has emerged yet. And once you have a patch,
it's super easy to do with, you can use the B4 tool, really nice to prepare and send your patches
to the mailing list and manage the iterations as well. Like, if you have reviews,
they will automatically be added by B4. That's really brilliant. It really helps you to comply with
the kernel way of managing your submissions. It's not only for a maintenance, but also for
contributors. And, yes, talking about, like, the went to start. So, I would say, the 15th of February,
when the 20, 620 RC1 is scheduled to be released. In case you don't know, there's a nice
calendar. You can use, you can import as a shared network calendar. Just use it, add it, and
to your calendar application, and you get the dates for the module window and the final releases
as predicted, pretty accurate for, like, probably one year. I didn't see how long it went,
but that's funny. Talking about Huboot now, there's not much done yet, and functionally,
I did boot the board with the banner Nepi and the head of config that exists.
I guess I should create one dedicated one for the two boards, but maybe it would be worth creating
a generic K1 configuration that would work for all boards in the same way. Or, if we want to support
specific boards, yes, we could do like one board per board, but when, when, definitely,
five per board, I don't know. So, there's no support for MMCSD, either in the new wood, of course.
So, but the focus should be the next, let's make it work. So, on the next, and then we,
we backport kind of, we port the driver from the next two to the boot. So, the next is not
this from RAM, by the vendor Huboot SPL so far. I will show you how we can do that. And ultimately,
what would be nice to, is to add some logic to detect the amount of RAM in each model.
This way, we don't have to create separate device trees for, like, two gigabytes, four gigabytes,
eight gigabytes. So, there should be a bit of logic to do that. For orange by R2S, I haven't tried it yet
to use my 90 boot, but I'm close, like I had a very hectic amount for January. So, in that case,
like a conference event, I mean, conference driven development didn't work much for me,
because of a lot of project work. So, yeah, so, you, my 90 boot will work, I'm fairly sure.
We should port the, the same driver to, I mean, the SDHCI driver to, to boot from,
EMMC, and then this one works in Linux, should, should work on Ubital as well. That should be doable.
And similarly, yes, I'm loading Linux from from RAM, from the vendor Huboot SPL.
The next question effectively is the Huboot SPL, the first-stage boot order. Daniel,
who was here, maybe still here? No, he left. Daniel, my first key, who didn't implement the K1 DRAM training,
as we discussed, like, in Marcel's talk. So, there should be a way to stop, depending on the vendor code,
yes, for, for that part, that they're perhaps still used the vendor code. So, according to Marcel,
it's just like something really counterintuitive for you guys. Like, it's, it's transforming
rest code and putting it to seed. But if somebody does that, like, to seek out for Uboot,
that would be great, because that, that would allow us to do without the vendor code, what would be nice.
Also, you may test, help to test the Uboot SPL patches that were published earlier this month,
as Marcel said. So, there's the series of commits that bring more support to K1, not only,
like, if SPL, I think, but also, I guess, other parts. So, that's interesting.
Yeah, so, the next thing about this work from Marcel is, like, he works on, you, he works on
Uboot, that's core boot without C, meaning in rest, of course. So, you take up the C,
so, you have rest inside. Oh, yes. So, a trick I did to, to boot the, the board, that allowed me
to boot mainline, uh, so, Bandoet from, firstly, but other, yes. But mainline, open SBI, mainline,
new boot, mainline, Linux. The trick was, I had no MNC, but I could load everything from RAM,
a two RAM, from the first stage boot of the, normally, the way the first stage boot of the works,
is load, it's loading a 50-inch containing Uboot, open SBI, and the Uboot DTB,
two RAM. The, the, the, the easy trick was to modify here the 50-inch to contain the Linux kernel,
and it's DTB, and possibly even a small in-tram FS. Well, I'm using an FS, actually. So, that's
no in-tram FS, but you load, uh, all this bunch to RAM, uh, taking advantage of the FS,
the first stage boot load that does. So, loading everything to RAM, and then, when you,
I new boot is a, to load, to load the kernel from where it was loaded in RAM.
So, that's a nice trick. And when you have a similar board, that doesn't have support for storage yet,
but there's some code that can load, you boot, uh, to, to RAM. Well, you could use it to load
the Linux kernel to RAM as well. That's the nice thing. Uh, how, unfortunately, that was limited
to 64 megabytes in my experiments. So, I, I couldn't go really beyond, including the kernel,
the DTB, and the various small in-tram FS. Otherwise, I would, I've gone bigger.
And then the last part is Yoko support. Yoko is useful, because it makes it easy to build images,
without having to, uh, relieve, uh, worry about, like, how the, uh, that's specific. So, see,
it's supposed to boot, and what the partitions, the expects on the storage. So, that's actually
nice to be, to have like a nice builder, pretty bold builder that allows you to build any image
from a given, uh, a given board, right? So, I, I believe, uh, and that's what I did, like, supporting,
uh, do those bots in Yoko should help people get, uh, contribute, because they can easily build
some images that can, they can modify, they can regenerate with a new kernel, new main
length kernel, new YouTube boot. Though, it's still possible to hack the, uh, a ready-made images
from, um, Ubuntu, for example, like, that are shipped by the vendor, just to replace the kernel
they ship by your kernel, your custom bait kernel. That's not so complicated anyway. Just to replace
the kernel in a fat partition, or even replace the kernel in a 50-mage, it's like, just, this is
assembling, replacing the components, and putting it back in, and it's just, just work, right?
So, what, what have we done, uh, in, uh, Yoko, we have, uh, Alperac was, uh, introduced, like, in October,
uh, support for orange by RV2 based on the downstream kernel, and, um, bootloader.
That was a good first stage, because it allowed me to add, like, the mainline only one.
So, mainline, you, uh, open his BI as I said, mainline, you boot mainline kernel, booting everything
from around. So, it's a bit limited, because that's the mainline kernel, but at least we,
everything working from almost everything is set to first stage bootloader, that boot from, uh,
that's booting on that board. And for orange by RVS, we have also vendor, and bootloader support,
and image with vendor, and, and bootloader's, uh, kernels, right, right, yeah, that from
flat, uh, banilla. I was supported, like, added last week. Uh, upcoming work with, uh, be, like, integrating
new kernel features as they become available. So, obviously we're waiting for, uh, Linux 2019,
or even better, 620 RC1, the meta-playing layer in Yoko is, like, pretty flexible, they will accept,
like, pretty customized, uh, recipe changes, uh, to support some hardware, the matter is support
new hardware, uh, and enable people to build images from them. It's not like meta-rock chip, for
example, which is pretty straight. They really want the board to be in mainline, uh, before integrating
it, because they don't want to depend on some external recipes, like kernel recipes, like,
meta- mainline Linux mainline from Paul Barker, it's nice, but it, like, adds some dependencies to
another recipe. We don't want, they, they don't want that. So, that's a super clean, super clean
meta-layer, but for riff-fabets, much more, uh, flexible. Though you got good review errors and
and it's, it's a nice, a nice experience to, to interact with those guys and learn from them.
Uh, one more thing is it would be to generate a fully flashable image. For the moment,
um, I still, I'm generating a new image with Yoko, but I still have to tweak the very beginning of
the partition, a daily image, to add the, um, one tiny part that's used by the first stage
boot order, and I couldn't do that with the weak tool that your top uses. Like, I, I,
probably will have to write a plugin that does like what they do for writing a noun,
MBR, uh, sector, at the beginning of an x86 image. I haven't figured out, I mean, I haven't found
the time to, to do that yet. Of course, there, there would be also some recipe cleanups,
um, that's needed. Like, uh, meta-riss-fabets work in progress. There are lots of, like,
bolts that are supported, but there's not, there's not enough co-chering between the bolts.
So, you, you, you, you guys, if you have your talk experience, you can help also,
think this, this, this up. Right? So, there's, uh, where's, there's help needed. Uh, I, I, I, I,
also would like to have a way to flash EMMC on, uh, our twist like this, this, this board,
this one, this has only EMMC, and if you break it, uh, I could, I could flash it from Linux in some ways,
but if I break it, how do I do that? Do that? So, orange pie has the Windows proprietary
flasher. Don't, I'm not really excited about it. And also proprietary tool that they call
Titan flash that could work for Linux, but it's proprietary. I don't want to run that on my laptop.
So, I guess I would run it on, uh, on the run, uh, like, uh, uh, laptop with nothing on it.
Um, no money. Yes.
In front of the two of you, and then you could use flash, I could see what's going on or you'd be.
Ah, okay.
I mean, uh, yeah, okay.
What did you say?
Okay, I guess, so the, the question, the suggestion was to use Q and U
to, um, to run the software like Titan flash, right, and see the traffic and help to understand.
What anyway, it's supposed to be supported through ADB and fast boot,
but I didn't manage to see it on my computer, and I don't remember the exact details, but
it was like, there's something specific to that CPU or something like that.
Like, I'm, I'm supposed to be in, um, ADB mode, like, when I press the button, but I couldn't see it.
Yeah, okay. And the, uh, J-tech, I don't think the, the question is, do they have J-tech?
Yeah, I don't think so.
Yeah, maybe, but is it exposed on the board?
So, okay, that's, I mean, people with ADB and fast boot experience may have a look
uh, with a pre-hate.
Uh, and one solution would be, maybe, to use, uh, bootly and stack boot on the space meet,
okay, one is also, maybe, that's a solution.
Uh, anyone tried this on this kind of CPU?
If you have, I mean, trust it too.
Other leads would be to find the orange pie out to a schematic,
using, uh, something else than, then negotiation and threats, because that doesn't work.
That's, that's, uh, I didn't do that.
And other ideas for making that board better, those board better would be nice.
So, uh, what to remember here? Uh, the top priority, of course, is to widen the kernel support.
And that's the, the low hanging fruit. There are lots of things that are ready.
You just have the drivers, you have example boards like vanilla pie, which, which is slightly ahead,
a few boards that have like some showing how to use some of the drivers.
So, yeah, it's really low hanging fruit to bring your small contribution to, to that board,
and that would be much appreciated.
And you, yes, as I said, you can also learn from the other K1 boards, right? Uh, like,
vanilla pie, a three, milk, five, two, Peter, although it's a, like, uh, mini PC, a mini IT X1,
next to it for, for my place. Uh, we, uh, we need a MMC support.
I would be great to have it like to use it properly. Uh, you could also then, when this
works, you could contribute to the mainline, but order, that would be great.
And yeah, any contribution to Dr. Two, uh, uh, welcome to make to help people that want to use this board.
So, some links, uh, the presentation earlier today from now side was great.
So, like covering many more boards, and also giving you more details about what's going on on the driver's side.
And you also have, oh, yes, uh, the, the Metaries 5 documentation.
We documented the way to flash, uh, and boots, uh, those two boards like out to us, and, uh,
RV2, right, uh, with only the mainline kernel. So that should be useful, right? Hopefully.
So, um, open two questions. Uh, we have five minutes. So please.
I saw you had a, uh, a deep problem on there. Do you actually check if they're different for different boards?
Is that, that's, uh, uh, you, uh, you could, uh, for the staff at two points.
So they, you just need one new board for all the staff, I thought, because they can see what
all of the on from reading the, uh, okay, that's good idea. So they, uh, the suggestion was to check the
e-prong for some things that you would could use for identifying the, like, two gigabyte for gigabytes,
either device. That's how stuff I've already done, so you could look at that book.
Oh, thanks. Which one? The, uh, J8, 71, 0, 0, the staff out.
Oh, yeah.
So the SPR wrong. To check the board. Thanks, good idea.
Anything else? Have you seen this product in any devices?
Yeah, but you think it's, it just makes it a hobby, so you can make it in the board.
What do you mean, uh, you, uh, you have a, uh, you haven't seen a, you've been playing to a
washing machine or a, I think, machine or something like that. You reckon you're actually
making them just for people to think where or directly.
Yeah, so the question is whether it's included in more real-life projects. I haven't seen it yet,
but I'm not like, I've just, starting using it, like, two, three months back.
So don't have enough information. That's a nice board, I would say.
But who would like to use, like, uh, Ubuntu with a custom crown on it?
Yeah, originally it was like super cheap and super powerful and with lots of connections.
Well, that was great. Yes.
Oh, okay, the question, the remark was, it's not going to be
620. It's going to be kernels. Uh, 7.0 RC1. Oh, yeah. So that note, 620.
Thanks.
Yeah, so again, let's have opportunities to, to play, like, I mean, I find it like nice to try to
hack a device tree using other examples and making things work. That's not rocket science.
That's very easy, actually. Um, all you have to do then is create a proper commit that's
accepted by the community, but the community will review your code definitely and help you
making make it better the next time. Uh, so yeah, don't hesitate to contribute, that would be great.
Any other? All right, so we're done. Thank you.
End of the problem.