Page MenuHomeVyOS Platform

Other arhitecture support (MIPS, ARM)
Open, LowPublicFEATURE REQUEST

Description

Hi,

I would like to request here if VyOS could be ported to MIPS, aka EdgeRouter-X for example?
The ubnt one lacks a lot of functionality and does not really take feature request into consideration.

There's 4 CPU cores and 247 MB of RAM.

Filesystem                Size      Used Available Use% Mounted on
ubi0_0                  214.9M    152.4M     57.8M  73% /root.dev
overlay                 214.9M    152.4M     57.8M  73% /
devtmpfs                123.0M         0    123.0M   0% /dev
tmpfs                   123.6M         0    123.6M   0% /dev/shm
tmpfs                   123.6M      2.9M    120.7M   2% /run
tmpfs                     5.0M         0      5.0M   0% /run/lock
tmpfs                   123.6M         0    123.6M   0% /sys/fs/cgroup
tmpfs                   123.6M         0    123.6M   0% /run/shm
tmpfs                   123.6M     32.0K    123.6M   0% /tmp
tmpfs                   123.6M         0    123.6M   0% /lib/init/rw
tmpfs                   123.6M     12.9M    110.8M  10% /var/log
none                    123.6M      2.1M    121.5M   2% /opt/vyatta/config
overlay                 123.6M     32.0K    123.6M   0% /opt/vyatta/config/tmp/n
tmpfs                    24.7M         0     24.7M   0% /run/user/1000
overlay                 123.6M     32.0K    123.6M   0% /opt/vyatta/config/tmp/n
overlay                 123.6M     32.0K    123.6M   0% /opt/vyatta/config/tmp/n
overlay                 123.6M     32.0K    123.6M   0% /opt/vyatta/config/tmp/n

sm@ER-X:~$ cat /proc/cpuinfo
system type             : MediaTek MT7621 ver:1 eco:3
machine                 : Ubiquiti EdgeRouter
processor               : 0
cpu model               : MIPS 1004Kc V2.15
BogoMIPS                : 581.63
wait instruction        : yes
microsecond timers      : yes
tlb_entries             : 32
extra interrupt vector  : yes
hardware watchpoint     : yes, count: 4, address/irw mask: [0x0ffc, 0x0ffc, 0x0ffb, 0x0ffb]
isa                     : mips1 mips2 mips32r1 mips32r2
ASEs implemented        : mips16 dsp mt
shadow register sets    : 1
kscratch registers      : 0
package                 : 0
core                    : 0
VPE                     : 0
VCED exceptions         : not available
VCEI exceptions         : not available

Details

Difficulty level
Unknown (require assessment)
Version
-
Why the issue appeared?
Will be filled on close
Is it a breaking change?
Unspecified (possibly destroys the router)
Issue type
Unspecified (please specify)

Event Timeline

Unknown Object (User) created this task.Jul 3 2020, 2:11 AM

Hi @samip537

porting half of an operating system to a different architecture is far from easy. Right now VyOS still has a lot of the old Vyatta codebase in it. As we are more and more in the process of migrating this to a Python based codebase it will still take some time. To be fair I stater a project some time back to port VyOS on an EdgeROuterPro (https://github.com/c-po/vy-project) and at least "it booted" but I then switched my focus to VyOS first - so by migrating th ecodebase to our own vyos-1x based Python implementation it will become easier in the future to port it to other operating systems as there is less code, less packages to port.

Maybe this helps or you even want to help us?

Unknown Object (User) added a comment.Jul 3 2020, 7:49 AM

Yes, I'm interested in actually helping on porting it as it would make my ER-X for one, a lot more fun and useful.

I wish you success in advance. Porting and compiling has always been a large-scale application project, which may take a lot of time. However, in addition to rewriting and porting related code to a more portable language, we can also try to transplant and cross build the existing old code first. Of course, this is only the first step. If possible, porting the code base has made it easier for the code base to be transplanted Meaningful.

There are allready someone trying to make a guide for building vyos on arm and the pi3/4, i myself have made it work on the pi4 some time ago but did not save my work so i dont have all the steps to reproduce..

I wish you success in advance. Porting and compiling has always been a large-scale application project, which may take a lot of time. However, in addition to rewriting and porting related code to a more portable language, we can also try to transplant and cross build the existing old code first. Of course, this is only the first step. If possible, porting the code base has made it easier for the code base to be transplanted Meaningful.

This is exactly what wsa done by me in https://github.com/c-po/vy-project

dmbaturin edited projects, added VyOS 1.5 Circinus; removed VyOS 1.4 Sagitta.
dmbaturin set Issue type to Unspecified (please specify).