Git Product home page Git Product logo

onie's Introduction

Open Network Install Environment

ONIE is a small operating system, pre-installed on bare metal network switches, that provides an environment for automated provisioning.

Read the ONIE Documentation for more info.

Building ONIE

The recommended way to set up an ONIE build environment is to use a Docker image, as described in the ONIE Documentation under Preparing An ONIE Build Environment.

Mailing List and Collaboration

Join the conversation -- send questions, comments and ideas to [email protected].

Subscribe to the list: https://ocp-all.groups.io/g/OCP-ONIE.

Browse the archives: https://ocp-all.groups.io/g/OCP-ONIE/topics.

onie's People

Contributors

alexdoyle avatar andrewsapronov avatar audihsu-qci avatar cbrune avatar ciju-juniper avatar cobracmder avatar david56 avatar dorkmatt avatar ehdoyle avatar jay-caoj avatar johnsonyjlu avatar jonathantsai-qci avatar lakesh-sharma avatar larryming avatar mingxikao avatar mrhpearson avatar pankajbansal3073 avatar pankajbansalnxp avatar paulmenzel avatar pegaswitch avatar psarker avatar quantaswitchonie avatar sandeepmadhavan avatar seantai-alpha avatar squeakbat avatar ssilvestro avatar sustephen avatar vitalivanov avatar willkuo103 avatar zhaoqiang-b45475 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

onie's Issues

Problems building ONIE on Ubuntu 14.10

I have one report of problems building ONIE using the gcc toolchain
that comes with Ubuntu 14.10 (Utopic Unicorn):

gcc version 4.9.1 (Ubuntu 4.9.1-4ubuntu3)

[INFO ]  Installing GMP for host
[ERROR]    configure: error: C++ compiler not available, see config.log for details
[ERROR]
[ERROR]  >>
[ERROR]  >>  Build failed in step 'Installing GMP for host'
[ERROR]  >>        called in step '(top-level)'
[ERROR]  >>
[ERROR]  >>  Error happened in: CT_DoExecLog[scripts/functions@257]
[ERROR]  >>        called from: do_gmp_backend[scripts/build/companion_libs/100-gmp.sh@84]
[ERROR]  >>        called from: do_gmp_for_host[scripts/build/companion_libs/100-gmp.sh@59]
[ERROR]  >>        called from: do_companion_libs_for_host[scripts/build/companion_libs.sh@36]
[ERROR]  >>        called from: main[scripts/crosstool-NG.sh@632]
[ERROR]  >>
[ERROR]  >>  For more info on this error, look at the file: 'build.log'
[ERROR]  >>  There is a list of known issues, some with workarounds, in:
[ERROR]  >>      '/home/mwenning/src/onie/build/crosstool-ng/crosstool-ng-1.19.0/docs/B - Known issues.txt'
[ERROR]
[ERROR]  (elapsed: 1:42.65)

Static IP configuration loses default gateway information

When specifying the Ethernet management configuration via the ip=.... sequence the default gateway information is lost. See the description of this parameter here:

https://www.kernel.org/doc/Documentation/filesystems/nfs/nfsroot.txt

The problem is in /etc/init.d/networking.sh, which has an interface "down/up" sequence that loses the default gateway information. See this thread:

http://lists.opencompute.org/pipermail/opencompute-onie/2015-July/000762.html

Make syslinux default menu option configurable

Currently, the syslinux menu option defaults to the Rescue option. However, for automated (and controlled) environments, it's easier to default to Embed ONIE option.

We should have this entry configurable from a machine's machine.make file.

Eg:

SYSLINUX_DEFAULT_MODE="embed"

If not specified, this defaults to "rescue"

quanta LB9 u-boot won't boot from disk

Hey @audihsu-qci can help us debug issue regarding LB9 switches? Please check this thread for long details http://lists.opencompute.org/pipermail/opencompute-onie/2014-October/000179.html

But long story short - diskboot doesn't work on LB9, its just says there is no device available. Previously we had factory installed ONIE, which is able to boot ONL. But current ONIE with your patch won't boot any NOS since it won't read disk from u-boot.

My guess code in question is this -
https://github.com/opencomputeproject/onie/blob/master/machine/quanta/quanta_lb9/u-boot/platform-quanta-lb9.patch#L1435

=> ide info

IDE device 0: Model: 4GB CompactFlash Card Firm: Ver6.04J Ser#: CDE207331D0100001270
            Type: Hard Disk
            Capacity: 3811.9 MB = 3.7 GB (7806960 x 512)
=> ide part 0

IDE device 0 not available

To prevent user from accidentally typing damaging commands during ONIE updating itself

A test case of issuing 'reboot' command during ONIE updating itself was reported recently. It's obvious that u-boot firmware lost and the machine never booted up. Some enhancements will be done in the future.

The case of the user accidentally typing some damaging command, of
which several commands exist that could cause problems during upgrade,
is interesting. What would be the right thing here?

I can imagine doing something:

  • during upgrade disable stdin on all terminals.
  • during upgrade go into single user mode.

Or something like that. Of course you are also faced with undoing
these operations if the upgrade fails and the user wants to poke
around some more.

Please look up the thread for details:
http://lists.opencompute.org/pipermail/opencompute-onie/2014-December/000315.html

Proposal: Add EEPROM TLV type key-value

Add a new TLV type call "key-value". It is a string type that represents a key/value pair.
The format of the value is [key]=[value].

The first '=' character is the delimiter between the key and the value. The value can contain the '=' character.

The EEPROM could contain multiple TLV nodes of this type.

Update the EEPROM dump routine to display the key/value pairs.

Add CLI commands to set and delete key/value pairs.

This would be an alternative to the binary "vendor extension" TLV type 0xFD.

onie-support -- not capturing kernel log messages

When debugging a remote system gathering a tarball of information is very useful. The current implementation is not capturing the kernel log messages from the dmesg command.

For debugging the kernel log messages are critical.

This is a critical failing of the onie-support command.

Faster/Obvious/Easier abort of ONIE install on X86

Posting this issue on someone else's behalf.

Quoting an issue reported from the field:

While playing with GRUB on X86, I discovered a couple of unpleasant things, when combined cause a real headache/nightmare:

1) After selecting 'ONIE' in GRUB, it defaults to ONIE Install mode and before you can read all the text the first time (i.e. 4 seconds), it executes ONIE installer

2) ONIE installer loads. Then there isn't a fast easy way (at least no instructions on the screen...anxiety rising..) if any exists, to abort the autoloading/install of the default image via the waterfall (onie-installer-x86_64 found very quickly via the local webserver)

3) While unsuccessfully trying to stop the ONIE install, you watch with horror as ONIE downloads and installs a new OS, overwriting the existing setup. Again, no way I could figure out how to stop that either....

Net result, you have whatever default image is configured on your webserver, and all vestiges of the config and license on your functioning switch has now been erased and must be restored from backup.. you did create a backup.. right?

I would propose that in GRUB, when you go to the ONIE page, that GRUB not be set to autoexecute ONIE Installer in 3 seconds.

I would further propose that an abort sequence be accessible and printed to the screen when ONIE Install mode starts that would allow halting the install for at least 10 seconds after ONIE loads.

Support for embedding Linux command line during ONIE build

It'll be good if a user can specify an arbitrary string that can be embedded into the Linux kernel commandline from GRUB. This commandline is used when grub loads the ONIE kernel (during NOS installation, ONIE upgrade etc).

A use case can be embedding install_url parameter into GRUB during building ONIE recovery image. This can be helpful during testing as it doesn't require a user to stop the boot process at GRUB and manually add a parameter.

One way to implement this is to set an environment variable with the string. Eg: Set and shell env variable as USER_GRUB_CMDLINE_LINUX="install_url=http://myserver/path/to/onie-installer" and this string will get embedded in the GRUB entry for launching the Linux kernel.

Install GRUB in Embed ONIE fails

I am trying to port ONIE to a Congatec QA3 board. I've copied the files from /machine/kvm_x86_64 and replaced machine/QA3/kernel/config by our kernel configs. I can boot ONIE into rescue mode using an USB stick made with onie-recovery-x86_64-QA3-r0.iso, however when I try to run onie-self-update -e tftp://xxx.xxx.xx.xx/onie-updater I get:

ERROR: grub-install failed on: /dev/mmcblk0
Installing for i386-pc platform.
grub-install: warning: File system `ext2' doesn't support embedding.
grub-install: error: embedding is not possible, but this is required for cross-disk install.

Maybe related, somehow the install path I defined in machine/QA3/install.conf gets a 2 appended /dev/mmcblk0 --> /dev/mmcblk02.

Allow platform specific Busybox customizations

Currently we are using a default config for building busybox. However, there's a need to be able to specify platform specific options for configuring busybox like how it is currently for the ONIE kernel build system.

Image discovery process does not support https:// URLs

It would be nice if ONIE supported https:// , but it does not.

The wget provided by busybox does not support https and it probably never will.

It gets a little complicated about what to do with certificates.

In a data center environment most certs would likely be self signed anyway and would need to use the "no-cehck-certificate" option.

This could be addressed by adding the real wget and removing the busybox version. Or using curl.

No able to compile on ubuntu 12.04 :

When i try to compie for dell s6000 using below command

make -j12 MACHINEROOT=../machine/dell MACHINE=dell_s6000_s1220 demo

I get the below error:
/build/x-tools/x86_64-linux-3.2.35-uClibc-0.9.32.1/install/x86_64-onie-linux-uclibc/bin/x86_64-onie-linux-uclibc-populate: No such file or directory

Please help me solve this

Investigate building linux-libc headers with deep directory paths

Investigate whether or not this bug affects our 3.2.x or 3.14.x cross tool builds:

http://patches.openembedded.org/patch/42469

[INFO ]  Installing pass-1 core C compiler: done in 99.46s (at 09:47)
[INFO ]  =================================================================
[INFO ]  Installing kernel headers
[DEBUG]    Using kernel's headers_install
[EXTRA]    Installing kernel headers
[DEBUG]    ==> Executing: 'make' '-C' '/work/monster-07/curt/onie-contrib/onie-ocp/build/x-tools/powerpc-softfloat-linux-fsl-sdk-v1.5-uClibc-0.9.32.1/build/build/src/linux-custom' 'O=/work/monster-07/curt/onie-contrib/onie-ocp/build/x-tools/powerpc-softfloat-linux-fsl-sdk-v1.5-uClibc-0.9.32.1/build/build/powerpc-onie-linux-uclibc/build/build-kernel-headers' 'ARCH=powerpc' 'INSTALL_HDR_PATH=/work/monster-07/curt/onie-contrib/onie-ocp/build/x-tools/powerpc-softfloat-linux-fsl-sdk-v1.5-uClibc-0.9.32.1/install/powerpc-onie-linux-uclibc/powerpc-onie-linux-uclibc/sysroot/usr' 'V=0' 'headers_install'
[ALL  ]    make[2]: Entering directory `/work/monster-07/curt/onie-contrib/onie-ocp/build/x-tools/powerpc-softfloat-linux-fsl-sdk-v1.5-uClibc-0.9.32.1/build/build/src/linux-custom'
[ALL  ]      CHK     include/generated/uapi/linux/version.h
[ALL  ]      UPD     include/generated/uapi/linux/version.h
[ALL  ]      HOSTCC  scripts/basic/fixdep
[ALL  ]      WRAP    arch/powerpc/include/generated/asm/clkdev.h
[ALL  ]      WRAP    arch/powerpc/include/generated/asm/rwsem.h
[ALL  ]      WRAP    arch/powerpc/include/generated/asm/trace_clock.h
[ALL  ]      HOSTCC  scripts/unifdef
[ALL  ]      INSTALL include/asm-generic (35 files)
[ALL  ]      INSTALL include/drm (15 files)
[ALL  ]      INSTALL include/linux/byteorder (2 files)
[ALL  ]      INSTALL include/linux/caif (2 files)
[ALL  ]      INSTALL include/linux/can (5 files)
[ALL  ]      INSTALL include/linux/dvb (8 files)
[ALL  ]      INSTALL include/linux/fmd/Peripherals (4 files)
[ALL  ]      INSTALL include/linux/fmd/integrations (1 file)
[ALL  ]      INSTALL include/linux/fmd (2 files)
[ALL  ]      INSTALL include/linux/hdlc (1 file)
[ALL  ]      INSTALL include/linux/hsi (1 file)
[ALL  ]      INSTALL include/linux/isdn (1 file)
[ALL  ]      INSTALL include/linux/mmc (1 file)
[ALL  ]      INSTALL include/linux/netfilter/ipset (4 files)
[ALL  ]      INSTALL include/linux/netfilter (76 files)
[ALL  ]      INSTALL include/linux/netfilter_arp (2 files)
[ALL  ]      INSTALL include/linux/netfilter_bridge (18 files)
[ALL  ]      INSTALL include/linux/netfilter_ipv4 (10 files)
[ALL  ]      INSTALL include/linux/netfilter_ipv6 (12 files)
[ALL  ]      INSTALL include/linux/nfsd (5 files)
[ALL  ]      INSTALL include/linux/raid (2 files)
[ALL  ]      INSTALL include/linux/spi (1 file)
[ALL  ]      INSTALL include/linux/sunrpc (1 file)
[ALL  ]      INSTALL include/linux/tc_act (7 files)
[ALL  ]      INSTALL include/linux/tc_ematch (4 files)
[ALL  ]      INSTALL include/linux/usb (10 files)
[ALL  ]      INSTALL include/linux/wimax (1 file)
[ALL  ]    make[5]: execvp: /bin/sh: Argument list too long
[ERROR]    make[5]: *** [/work/monster-07/curt/onie-contrib/onie-ocp/build/x-tools/powerpc-softfloat-linux-fsl-sdk-v1.5-uClibc-0.9.32.1/install/powerpc-onie-linux-uclibc/powerpc-onie-linux-uclibc/sysroot/usr/include/linux/.install] Error 127
[ERROR]    make[4]: *** [linux] Error 2
[ERROR]    make[3]: *** [headers_install] Error 2
[ERROR]    make[2]: *** [sub-make] Error 2
[ALL  ]    make[2]: Leaving directory `/work/monster-07/curt/onie-contrib/onie-ocp/build/x-tools/powerpc-softfloat-linux-fsl-sdk-v1.5-uClibc-0.9.32.1/build/build/src/linux-custom

ISO image still has UEFI boot method when supporting UEFI firmware disabled

Yesterday, I found the ISO image always combined with BIOS and UEFI booting methods even if UEFI_ENABLE = no. If the recovery ISO which has linux-3.2.25 boots via UEFI: JetFlashTrans..., the kernel will have some errors and cause eUSB device disappeared. ONIE updater can't find the mass storage to install itself eventually.

ONIE: Rescue Mode ...
Platform  : x86_64-accton_as5712_54x-r0
Version   : 2015.5.28-dirty
Build Date: 2015-05-28T11:16+0800
ehci_hcd 0000:00:16.0: Found HC with no IRQ.  Check BIOS/PCI 0000:00:16.0 setup!
ehci_hcd 0000:00:16.0: init 0000:00:16.0 fail, -19
Info: Mounting kernel filesystems... done.
Info: Using eth0 MAC address: 00:00:e8:a0:00:00
Info: eth0:  Checking link... up.
Info: Trying DHCPv4 on interface: eth0
ONIE: Using DHCPv4 addr: eth0: 192.168.1.230 / 255.255.255.0
Starting: dropbear ssh daemon... done.
Starting: telnetd... done.
discover: Rescue mode detected.  Installer disabled.

Please press Enter to activate this console.
To check the install status inspect /var/log/onie.log.
Try this:  tail -f /var/log/onie.log

** Rescue Mode Enabled **
ONIE-RECOVERY:/ # ls /sys/firmware/
memmap
ONIE-RECOVERY:/ #

acpi device is also absent.

USB install should be slightly more verbose

It would be useful if ONIE was slightly more verbose when attempting to mount a USB stick. In the current form, only a successful mount is logged as..

ONIE: Failed to configure eth0 interface
ONIE: Starting ONIE Service Discovery
ONIE: Executing installer: file://dev/sda1/onie-installer-powerpc
Verifying image checksum ... OK.
Preparing image archive ... OK.

However, if the stick is formatted incorrectly (wrong partition type) and/or has the wrong file name, the log doesn't show this as an error. Seems if we have a USB stick present and had issues with it, we should advertise that. Just as we do with eth0 not having link, a DHCP server not being found, etc.

ONIE build broken in Ubuntu 14.10

Ubuntu 14.10 has moved to a new version of syslinux which has a more modular library layout. Previously, only a single menu.c32 or vesamenu.c32 would suffice. However, now the functionality is split into multiple modules.

Module dependency details are available on the Syslinux wiki.

Previous versions were using Syslinux version 4.x, while Ubuntu 14.10 installs version 6.x. We need to change the build system to take this into account.

Documentation: Clarify machine string naming conventions

The ONIE spec describes the machine string as:

machine โ€“ A string of the form <VENDOR>_<MODEL>

What is not explicitly stated is the string cannot contain an underscore "_". Otherwise the string is not parsable.

Update the doc to be more explicit.

onie-syseeprom: deprecate i2ctools and use busybox implementation instead

See Pull #58 for background.

It would be great to move completely to using the onie-syseeprom implementation in busybox.

The code in i2ctools should be deprecated/removed in favor of the busybox implementation.

Note: All machines would need to be visited and updated before removing the old code from i2ctools.

[Suggestion] Porting guide

Might be a nice idea to write a guide how to port ONIE to a new platform. I'm currently trying to make ONIE work on our switch controller and I'm lost what files I have to edit. The current porting guide only has hints what commands should work, and not how to actually make them work.

EDIT: moved explanation of my current problems to #142

Clean shutdown

Currently reboot invokes umount -a -r, which always fail to umount rootfs correctly, since its run from PID1.

I propose small change like most platforms do with busybox, replace that part with
sync && sleep 1 && reboot -f

This allow to get rid error umount: can't remount rootfs read-only on reboot. This is mostly visual change since no harm done to rootfs anyway currently, as it always new at boot.

If this sounds reasonable I could prepare patch

isohybrid.pl not found -- when building KVM iso

When building kvm_x86_64 in a CI tool using build-onie.py -b kvm_x86_64, the ISO creation process is aborted with the following error message:

==== Create kvm_x86_64-r0 ONIE Recovery Hybrid iso ====
I: -input-charset not specified, using utf-8 (detected in locale settings)
Size of boot image is 4 sectors -> No emulation
 58.51% done, estimate finish Mon Jan 19 23:42:26 2015
Total translation table size: 2048
Total rockridge attributes bytes: 1157
Total directory bytes: 4096
Path table size(bytes): 34
Max brk space used 23000
8561 extents written (16 MB)
bash: isohybrid.pl: command not found
make: *** [/home/ubuntu/working/onie/build/kvm_x86_64-r0/stamp/recovery-iso] Err
or 127

isohybrid.pl script is included in the syslinux package and is present in $ONIE/build/kvm_x86_64-r0/syslinux/syslinux-4.07/utils/isohybrid.pl. Will increase the verbosity of make to see if this is a path issue.

[ONIE Certification] ONIE-test-form.xlsx, DUT testing information values.

Some ONIE testing information I found in
http://www.opencompute.org/wiki/Networking/ONIE/Testing%2BCertification
The testing report link http://files.opencompute.org/oc/public.php?service=files&t=c81b4a02ad7d1b5b6de16ca2935fa3cc

There some columns should be filled but not about ONIE actions. I listed in below:

  1. Vendor
  2. Model
  3. Serial Number
  4. MAC Address
  5. Switch Label Present
  6. Certification Lab
  7. Testing Date
  8. ONIE Version on Switch
  9. ONIE Version for Certification
  10. ONIE image freely available on Web
  11. ONIE model files available ONIE GitHub
  12. USB Port on Device
  13. Test Status
    I know some column can easily fill value by use command onie-syseeprom to get informations.
    For "Vendor" column, we can use onie-syseeprom -g 0x2D to getting values in TlvInfo EEPROM.

But for make sure, I want to ask about is there someone knows exactly TlvInfo EEPROM <-->column matching?
For example, I think the first column "Vendor" is matching TlvInfo EEPROM type code "0x2D". And more:
2. Model : 0x21
3. Serial Number: 0x23
4. MAC Address: 0x24
8. ONIE Version on Switch: 0x29
9. ONIE Version for Certification: 0x29

I want to meet someone's opinion as a double check.

[OCE (ONIE Compliance Environment) question]

In
https://github.com/opencomputeproject/onie/blob/master/contrib/autobuild/README.md

On the [Testing ONIE] section, I followed the step, including

  1. sudo service apparmor teardown
  2. sudo apt-get install python-pip python-virtualenv virtualenv .venv
  3. source .venv/bin/activate
  4. pip install -r requirements.txt
    and last, I key in "./test-onie.py -c config/onie-tests.json -d config/dut-example.json -t 69 -I onie0" for a test.
    The screen message is like below:
    +++++++++++++
    2015-04-22T18:26:21 - INFO - Loaded 80 tests from config/onie-tests.json
    2015-04-22T18:26:21 - INFO - Loaded DUT config from config/dut-example.json
    2015-04-22T18:26:21 - INFO - Configuring for Test 69 - ONIE Update - TFTP Waterfall - Name 1
    2015-04-22T18:26:21 - INFO - Starting tftp
    2015-04-22T18:26:21 - INFO - Starting dhcp

Press enter to stop all services
+++++++++++++

I think maybe this test method is work.

But my question is ....Is some action should I do in KVM ONIE (ONIE DUT) so that let me pass the test 69?
And it will write some msgs in output/test-69?
If output/dhcpd.leases have wrote msgs:
+++++++++++++

The format of this file is documented in the dhcpd.leases(5) manual page.

This lease file was written by isc-dhcp-4.2.4

server-duid "\000\001\000\001\034\3128:\304TD+q\030";
+++++++++++++

It stand for this test item success?

And the config "mac_address" in dut-example.json I think it is DUT's MAC address.

Are there anyone can help me or show me some info links to understand about this?

There is no command to show onie version on x86 platforms

On powerpc platforms, I wasn't able to use the following command: fw_printenv onie_version. @cbrune provided the following workaround until the issue is fixed/enhanced.

mkdir /tmp/onie
mount LABEL=ONIE-BOOT /tmp/onie
grep version /tmp/onie/grub/grub.cfg
umount /tmp/onie
rm -rf /tmp/onie/

About NOS image size

In installer file, installer/x86_64/install-arch, it defines 128MB as default NOS partition size. It seems enough to store ONIE Demo OS. But if I use another OS(not ONIE demo OS) as a NOS, it's image size may be over 128MB, can I change the NOS partition size(maybe change to 1G, or bigger) in file install-arch?

ONIE Test 47 not working

Upon issuing the following command line I receive a fatal error message:
./test-onie.py -i 192.168.1.100/24 -I eth1 -m 7072cfaa34fa -t 47 -o onie_updater onie-updater-powerpc-accton_as4600_54t-r0.bin

2015-02-15T16:10:36 - INFO - Loaded 80 tests from config/onie-tests.json
2015-02-15T16:10:36 - INFO - Configuring for Test 47 - ONIE Update - DHCP Exact - TFTP Server name + TFTP Bootfile
Traceback (most recent call last):
File "./test-onie.py", line 685, in
main()
File "./test-onie.py", line 653, in main
test_args = configure_test(args)
File "./test-onie.py", line 472, in configure_test
prepare_test_case(test_args)
File "./test-onie.py", line 377, in prepare_test_case
hostname = test_args['local_name']
KeyError: 'local_name'

The installer image given is both present in the current directory as well as properly named.

Add well known hostname to image discovery waterfall

In the image discovery watefall add a "well known" hostname (a string) to list of servers.

Proposing here to use the hostname onie-server as the well known host name for an ONIE server.

During the image discovery waterfall if ONIE is able to resolve the host name onie-server add that server to the list of servers used for locating an image.

This gives flexibility in deployments where the users have control over the DNS server, but not over the DHCP server.

For example a user could set their laptop to the host name "onie-server" when making a DHCP request -- as is common in simple lab environments and home routers, the host name "onie-server" will be added to the local DNS domain. Then the user can start up a simple python based ONIE server on the laptop and ONIE will find the image via the host name "onie-server".

Testing: test cases that use <vendor> incorrectly use vendor_id vs vendor name

test-onie.py expects a numeric value for onie_vendor (in this case, 259), however when test-onie generates the name for the installer file, it inserts this value into the name. Therefore, we end up with a file named onie/contrib/autobuild/output/test-13/www-root/onie-installer-powerpc-259_accton_as4600_54t-r0, which is not found by ONIE in discovery mode

testing: test cases 11 & 47 (DHCP Exact - TFTP Server name + TFTP Bootfile) fail

./test-onie.py -i 192.168.1.100/24 -I eth1 -m 7072cfaa34fa -t 47 -o onie_updater onie-updater-powerpc-accton_as4600_54t-r0.bin

2015-02-15T16:10:36 - INFO - Loaded 80 tests from config/onie-tests.json
2015-02-15T16:10:36 - INFO - Configuring for Test 47 - ONIE Update - DHCP Exact - TFTP Server name + TFTP Bootfile
Traceback (most recent call last):
  File "./test-onie.py", line 685, in <module>
    main()
  File "./test-onie.py", line 653, in main
    test_args = configure_test(args)
  File "./test-onie.py", line 472, in configure_test
    prepare_test_case(test_args)
  File "./test-onie.py", line 377, in prepare_test_case
    hostname = test_args['local_name']
KeyError: 'local_name'

onie-nos-install command fails

Hi Crut,

My ONIE is up and runningon qemu . Now i am trying to install the NOS using onie-nos-install command with a web address.but ONIE does not get a dhcp IP but it defaults to some 192.168.3.10 IP. So i am not able to fetch the image from another machine.

Then i mounted the USB in qemu and tried

onie-nos-install onie-x86-demo.img

But i am getting an error /installer : line 1 :syntax error :unexpected "|"
.Is this the right way or there is some other demo NOS image?.

Please help me out in solving this error

Regards,
Zahid

[ONIE-TLV issue] About TLV, type code 0xFD, Vendor Extension.

https://github.com/opencomputeproject/onie/wiki/Design-Spec-HW-Requirements

The define says that length of type code 0xFD is Variable. And the value field is a four byte IANA enterprise number, followed by a vendor defined string of bytes.
But after test with onie-syseeprom command with "onie-syseeprom -s 0xFD=1234AAA". The error message says ""ERROR: The value specified is greater than 255". The code takes the value which I want to setting as the byte numbers?

apply-patch-series: stg: command not found

I have cloned the git to run the ONIE for quanta_ly2. After the command ($ make -j4 MACHINEROOT=../machine/quanta/ MACHINE=quanta_ly2 all ), i notice while its compiling that i get two errors.
this error happens when running the patch for u-boot and kernel-patch
error:
build-config/scripts/apply-patch-series: line 22: stg: command not found

I dont know if these errors are crucial or not but after compiling, there are no binaries in the images folders.

I also tried the alternate root and running the build.sh and i have the same errors. my version of ubuntu is 3.13.0-24-generic.

capture

capture2

Local filesystem discovery does not work for UBIFS (NAND Flash)

ONIE has a method where it mounts the local block device partitions looking for an installer.

Currently this method does not include UBI volumes. The current method looks in /proc/partitions for block devices.

The method should also consult /sys/class/ubi/ubi0

    for dev in /sys/class/ubi/ubi0/ubi0_?; do
        ubiname=`cat $dev/name`
        mount -t ubifs ubi:$ubiname /mnt
        look for image ....
    done

Demo NOS Installation fails (/bin/exec_installer: line 381: /installer: not found)

Hello,

I cloned the ONIE source this week and built the binaries according to the documentation. Next, I built the Demo OS installer (demo-installer-x86_64-kvm_x86_64-r0.bin) and placed it on my tftp server. I then booted into ONIE (after selecting Embed) and ran onie-nos-install tftp:/xxx.xxx.xxx.xxx/demo-installer-x86_64-kvm_x86_64-r0.bin. It fetches the installer and then fails with the above message. Any suggestions?

Greg

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.