This shows you the differences between two versions of the page.
Previous revisionLast revision | |||
— | resources:tools-software:linux-software:embedded_arm_images [15 Jul 2022 14:41] – [Preparing the image: FPGA Carrier] Stefan-Robert Raus | ||
---|---|---|---|
Line 1: | Line 1: | ||
+ | ====== Analog Devices Kuiper Linux ====== | ||
+ | Analog Devices Kuiper Linux is a distribution based on Raspbian for the Raspberry Pi. It incorporates Linux device drivers for ADI products, and is created with ease of use in mind. | ||
+ | The reasoning behind creating this distribution is to minimize the barriers to integrating ADI hardware devices into a Linux-based system. When starting with a generic Linux distribution, | ||
+ | ADI Kuiper Linux solves this problem, and includes a host of additional applications, | ||
+ | * IIO Oscilloscope (basic GUI for debugging IIO devices) | ||
+ | * IIOD (exposes IIO devices over a network connection to a remote host) | ||
+ | * libiio (library for applications running locally) | ||
+ | * pyadi-iio (Python abstraction layer for iio devices) | ||
+ | * libm2k (software API for the ADALM2000 multifunction USB instrument) | ||
+ | * GNURadio (including GR-IIO blocks, ADALM2000, ADALM-Pluto blocks) | ||
+ | |||
+ | While Rasbpian targets Raspberry Pi platform boards, ADI Kuiper Linux supports several other platforms including the Xilinx and Intel FPGAs. | ||
+ | |||
+ | The [[mouser> | ||
+ | |||
+ | <WRAP tip>If you have a preformatted SD Card (one that normally comes with one of the ADI FMC Cards), you can skip down to the [[# | ||
+ | |||
+ | You will also need to [[# | ||
+ | </ | ||
+ | |||
+ | ===== Requirements ===== | ||
+ | |||
+ | * You need a Host PC (Windows or Linux). | ||
+ | * You need a SD card writer connected to above PC (Supported USB SD readers/ | ||
+ | * USB keyboard/ | ||
+ | * HDMI Display (monitor or TV) | ||
+ | |||
+ | ===== Download Linux Image ===== | ||
+ | |||
+ | The **BOLD** is what you should type. It's not too much more than [[wp> | ||
+ | |||
+ | For different platforms you'll need different images. Currently we provide a single pre-build images, that can work on all the platforms we support. | ||
+ | |||
+ | <note important> | ||
+ | |||
+ | <note important> | ||
+ | |||
+ | <note warning> | ||
+ | |||
+ | <WRAP hi round download 80%> | ||
+ | * [[: | ||
+ | </ | ||
+ | |||
+ | Now, depending if you are using Linux or Windows, follow these instructions to write the file to your SD card. | ||
+ | * [[./ | ||
+ | * [[./ | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | ===== Preparing the image: FPGA Carrier ===== | ||
+ | |||
+ | <note warning> | ||
+ | |||
+ | The SD card includes a few images on it's '' | ||
+ | * An uImage file or Image file for ZynqMP | ||
+ | * A BOOT.BIN specific to your board+FPGA | ||
+ | * A devicetree.dtb or system.dtb for ZynqMP specific to your board+FPGA | ||
+ | |||
+ | If you notice that the file/board you want isn't in your actual SD-Card, that's because you need to upgrade it first. Just pick something with the same base board, boot it, and then run the [[# | ||
+ | |||
+ | Supported images include: | ||
+ | |||
+ | ^ Directory on the SD image ^ Carrier ^ On Carrier Devices ^ Add on card ^ doc ^ | ||
+ | | socfpga_arria10_socdk_ad9081 | [[https:// | ||
+ | | socfpga_arria10_socdk_adrv9002 | [[https:// | ||
+ | | socfpga_arria10_socdk_adrv9009 | [[https:// | ||
+ | | socfpga_arria10_socdk_adrv9371 | [[https:// | ||
+ | | socfpga_arria10_socdk_cn0506_mii| [[https:// | ||
+ | | socfpga_arria10_socdk_daq2 | [[https:// | ||
+ | | socfpga_arria10_socdk_fmclidar1 | [[https:// | ||
+ | | socfpga_arria10_socdk_fmcomms8| [[https:// | ||
+ | | socfpga_cyclone5_de10_nano_cn0540 | Intel Cyclone 5 De10 Nano Kit | |[[adi> | ||
+ | | socfpga_cyclone5_sockit_arradio | Intel Cyclone 5 SoC Kit | | [[https:// | ||
+ | | zynq-adrv9361-z7035-bob | [[adi> | ||
+ | | zynq-adrv9361-z7035-bob-cmos | [[adi> | ||
+ | | zynq-adrv9361-z7035-fmc | [[adi> | ||
+ | | zynq-adrv9361-z7035-packrf | [[adi> | ||
+ | | zynq-adrv9364-z7020-bob | [[adi> | ||
+ | | zynq-adrv9364-z7020-bob-cmos | [[adi> | ||
+ | | zynq-adrv9364-z7020-packrf | [[adi> | ||
+ | | zynqmp-adrv9009-zu11eg-revb-adrv2crr-fmc-revb | [[adi> | ||
+ | | zynqmp-adrv9009-zu11eg-revb-adrv2crr-fmc-fmcomms8 | [[adi> | ||
+ | | zynqmp-zcu102-rev10-ad9172-fmc-ebz-mode4 | [[xilinx> | ||
+ | | zynqmp-zcu102-rev10-ad9361-fmcomms2-3 | [[xilinx> | ||
+ | | zynqmp-zcu102-rev10-ad9361-fmcomms5 | [[xilinx> | ||
+ | | zynqmp-zcu102-rev10-ad9364-fmcomms4 | [[xilinx> | ||
+ | | zynqmp-zcu102-rev10-adrv9002 | [[xilinx> | ||
+ | | zynqmp-zcu102-rev10-adrv9008-1 | [[xilinx> | ||
+ | | zynqmp-zcu102-rev10-adrv9008-2 | [[xilinx> | ||
+ | | zynqmp-zcu102-rev10-adrv9009 | [[xilinx> | ||
+ | | zynqmp-zcu102-rev10-adrv9371 | [[xilinx> | ||
+ | | zynqmp-zcu102-rev10-adrv9375 | [[xilinx> | ||
+ | | zynqmp-zcu102-rev10-fmcdaq2 | [[xilinx> | ||
+ | | zynqmp-zcu102-rev10-fmcdaq3 | [[xilinx> | ||
+ | | zynqmp-zcu102-rev10-fmclidar1 | [[xilinx> | ||
+ | | zynq-zc702-adv7511 | [[xilinx> | ||
+ | | zynq-zc702-adv7511-ad9361-fmcomms2-3 | [[xilinx> | ||
+ | | zynq-zc702-adv7511-ad9361-fmcomms5 | [[xilinx> | ||
+ | | zynq-zc702-adv7511-ad9364-fmcomms4 | [[xilinx> | ||
+ | | zynq-zc706-adv7511 | [[xilinx> | ||
+ | | zynq-zc706-adv7511-ad6676-fmc | [[xilinx> | ||
+ | | zynq-zc706-adv7511-ad9172-fmc-ebz | [[xilinx> | ||
+ | | zynq-zc706-adv7511-ad9265-fmc-125ebz | [[xilinx> | ||
+ | | zynq-zc706-adv7511-ad9361-fmcomms2-3 | [[xilinx> | ||
+ | | zynq-zc706-adv7511-ad9361-fmcomms5 | [[xilinx> | ||
+ | | zynq-zc706-adv7511-ad9361-fmcomms5-ext-lo-adf5355 | [[xilinx> | ||
+ | | zynq-zc706-adv7511-ad9364-fmcomms4 | [[xilinx> | ||
+ | | zynq-zc706-adv7511-ad9434-fmc-500ebz | [[xilinx> | ||
+ | | zynq-zc706-adv7511-ad9625-fmcadc2 | [[xilinx> | ||
+ | | zynq-zc706-adv7511-ad9625-fmcadc3 | [[xilinx> | ||
+ | | zynq-zc706-adv7511-ad9739a-fmc | [[xilinx> | ||
+ | | zynq-zc706-adv7511-adrv9008-1 | [[xilinx> | ||
+ | | zynq-zc706-adv7511-adrv9008-2 | [[xilinx> | ||
+ | | zynq-zc706-adv7511-adrv9009 | [[xilinx> | ||
+ | | zynq-zc706-adv7511-adrv9371 | [[xilinx> | ||
+ | | zynq-zc706-adv7511-adrv9375 | [[xilinx> | ||
+ | | zynq-zc706-adv7511-fmcdaq2 | [[xilinx> | ||
+ | | zynq-zc706-adv7511-fmcdaq3-revC | [[xilinx> | ||
+ | | zynq-zc706-adv7511-fmcjesdadc1 | [[xilinx> | ||
+ | | zynq-zc706-adv7511-fmclidar1 | [[xilinx> | ||
+ | | zynq-zc706-adv7511-fmcomms11 | [[xilinx> | ||
+ | | zynq-zed-adv7511 | [[http:// | ||
+ | | zynq-zed-adv7511-ad9361-fmcomms2-3 | [[http:// | ||
+ | | zynq-zed-adv7511-ad9364-fmcomms4 | [[http:// | ||
+ | | zynq-zed-adv7511-ad9467-fmc-250ebz | [[http:// | ||
+ | | zynq-zed-adv7511-cn0363 | [[http:// | ||
+ | | zynq-zed-ad40xx_fmc | [[http:// | ||
+ | | zynq-zed-ad4630 | [[http:// | ||
+ | | zynq-zed-ad5758_sdz | [[http:// | ||
+ | | zynq-zed-ad5766_sdz | [[http:// | ||
+ | | zynq-zed-ad7134_fmc | [[http:// | ||
+ | | zynq-zed-ad738x_fmc | [[http:// | ||
+ | | zynq-zed-ad7405_fmc | [[http:// | ||
+ | | zynq-zed-ad7616_sdz | [[http:// | ||
+ | | zynq-zed-ad77681evb | [[http:// | ||
+ | | zynq-zed-ad7768evb | [[http:// | ||
+ | | zynq-zed-ad9467_fmc | [[http:// | ||
+ | | zynq-zed-adaq7980_sdz | [[http:// | ||
+ | | zynq-zed-adrv9002 | [[http:// | ||
+ | | zynq-zed-adrv9002_rx2tx2 | [[http:// | ||
+ | | zynq-zed-cn0363 | [[http:// | ||
+ | | zynq-zed-cn0506_mii | [[http:// | ||
+ | | zynq-zed-cn0506_rgmii | [[http:// | ||
+ | | zynq-zed-cn0506_rmii| [[http:// | ||
+ | | zynq-zed-imageon | [[http:// | ||
+ | | zynq-coraz7s-cn0540 | [[https:// | ||
+ | | zynq-coraz7s-cn0501 | [[https:// | ||
+ | | versal-vck190-ad9081_fmca_ebz | [[xilinx> | ||
+ | |||
+ | <WRAP tip>We have heard of some versions of Windows, and some specific SD readers/ | ||
+ | |||
+ | ===== Boot ===== | ||
+ | |||
+ | - plug the HDMI monitor in, the USB keyboard/ | ||
+ | - make sure all the jumpers are set properly (depends on the board, need to set up to boot from SD card). | ||
+ | - plug in the FMC board to the FMC connector (or Pmod into the Pmod connector) | ||
+ | - connect to the console UART | ||
+ | - turn on the board | ||
+ | |||
+ | <note important> | ||
+ | |||
+ | <WRAP tip>the U-Boot terminals below are for, well - U-Boot. If you see a kernel booting, you aren't running in U-Boot. This means reset the board, and when the system says "Hit any key to stop autoboot" | ||
+ | |||
+ | First you have to use the default environment from the SD card (otherwise the system may not boot): | ||
+ | * [[https:// | ||
+ | **saveenv**</ | ||
+ | |||
+ | Then you need to update the MAC address of the board. For some reason, Xilinx doesn' | ||
+ | * [[https:// | ||
+ | **saveenv** | ||
+ | **reset**</ | ||
+ | * [[http:// | ||
+ | **ifconfig eth2 hw ether XX: | ||
+ | **ifconfig eth2 up** </ | ||
+ | |||
+ | <WRAP info> | ||
+ | \\ | ||
+ | These boot messages may change based on your specific platform. | ||
+ | \\ | ||
+ | </ | ||
+ | <hidden **Complete Boot Log** (Click to expand)> | ||
+ | < | ||
+ | rgetz@brain: | ||
+ | Connecting to / | ||
+ | | ||
+ | Type the escape character followed by C to get back, | ||
+ | or followed by ? to see other options. | ||
+ | ---------------------------------------------------- | ||
+ | |||
+ | U-Boot SPL 2021.07-16360-gee63370553-dirty (Jun 09 2022 - 23:13:35 +0300) | ||
+ | FPGA: Checking FPGA configuration setting ... | ||
+ | FPGA: Start to program peripheral/ | ||
+ | FPGA: Early Release Succeeded. | ||
+ | FPGA: Checking FPGA configuration setting ... | ||
+ | FPGA: Start to program peripheral/ | ||
+ | FPGA: Early Release Succeeded. | ||
+ | |||
+ | U-Boot SPL 2021.07-16360-gee63370553-dirty (Jun 09 2022 - 23:13:35 +0300) | ||
+ | DDRCAL: Success | ||
+ | FPGA: Checking FPGA configuration setting ... | ||
+ | FPGA: Start to program core bitstream ... | ||
+ | Full Configuration Succeeded. | ||
+ | FPGA: Enter user mode. | ||
+ | WDT: | ||
+ | Trying to boot from MMC1 | ||
+ | |||
+ | U-Boot 2021.07-16360-gee63370553-dirty (Jun 09 2022 - 23:13:35 +0300)socfpga_arria10, | ||
+ | |||
+ | CPU: | ||
+ | BOOT: SD/MMC External Transceiver (1.8V) | ||
+ | Model: Altera SOCFPGA Arria 10 | ||
+ | DRAM: 1 GiB | ||
+ | WDT: | ||
+ | MMC: | ||
+ | Loading Environment from MMC... OK | ||
+ | In: serial | ||
+ | Out: | ||
+ | Err: | ||
+ | Model: Altera SOCFPGA Arria 10 | ||
+ | Net: eth0: ethernet@ff800000 | ||
+ | Hit any key to stop autoboot: | ||
+ | 150 bytes read in 4 ms (36.1 KiB/s) | ||
+ | ## Executing script at 02100000 | ||
+ | Failed to load ' | ||
+ | Full Configuration Succeeded. | ||
+ | FPGA: Enter user mode. | ||
+ | 15038392 bytes read in 730 ms (19.6 MiB/s) | ||
+ | fpga - loadable FPGA image support | ||
+ | |||
+ | Usage: | ||
+ | fpga [operation type] [device number] [image address] [image size] | ||
+ | fpga operations: | ||
+ | dump [dev] [address] [size] | ||
+ | info [dev] list known device information | ||
+ | load [dev] [address] [size] | ||
+ | loadb [dev] [address] [size] | ||
+ | loadmk [dev] [address] | ||
+ | For loadmk operating on FIT format uImage address must include | ||
+ | subimage unit name in the form of addr:< | ||
+ | switch to partitions #0, OK | ||
+ | mmc0 is current device | ||
+ | Scanning mmc 0:1... | ||
+ | Found / | ||
+ | Retrieving file: / | ||
+ | 162 bytes read in 5 ms (31.3 KiB/s) | ||
+ | 1: Linux Default | ||
+ | Retrieving file: / | ||
+ | 8289256 bytes read in 408 ms (19.4 MiB/s) | ||
+ | append: root=/ | ||
+ | Retrieving file: / | ||
+ | 30586 bytes read in 9 ms (3.2 MiB/s) | ||
+ | Kernel image @ 0x1000000 [ 0x000000 - 0x7e7be8 ] | ||
+ | ## Flattened Device Tree blob at 02000000 | ||
+ | | ||
+ | | ||
+ | Starting kernel ... | ||
+ | |||
+ | Deasserting all peripheral resets | ||
+ | [ 0.000000] Booting Linux on physical CPU 0x0 | ||
+ | [ 0.000000] Linux version 5.10.0-98183-gf814ae972859-dirty (liviu@LADACE-Debian) (arm-none-linux-gnueabihf-gcc (GNU Toolchain for the A-profile Architecture 10.2-2020.11 (arm-10.16)) 10.2.1 20201103, GNU ld (GNU Toolchain for the A-profile Architecture 10.2-2020.11 (arm-10.16)) 2.35.1.20201028) #27 SMP Wed May 25 16:01:50 EEST 2022 | ||
+ | [ 0.000000] CPU: ARMv7 Processor [414fc091] revision 1 (ARMv7), cr=10c5387d | ||
+ | [ 0.000000] CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instruction cache | ||
+ | [ 0.000000] OF: fdt: Machine model: Altera SOCFPGA Arria 10 | ||
+ | [ 0.000000] printk: bootconsole [earlycon0] enabled | ||
+ | [ 0.000000] Memory policy: Data cache writealloc | ||
+ | [ 0.000000] cma: Reserved 128 MiB at 0x38000000 | ||
+ | [ 0.000000] Zone ranges: | ||
+ | [ 0.000000] | ||
+ | [ 0.000000] | ||
+ | [ 0.000000] Movable zone start for each node | ||
+ | [ 0.000000] Early memory node ranges | ||
+ | [ 0.000000] | ||
+ | [ 0.000000] Initmem setup node 0 [mem 0x0000000000000000-0x000000003fffffff] | ||
+ | [ 0.000000] percpu: Embedded 19 pages/cpu s45324 r8192 d24308 u77824 | ||
+ | [ 0.000000] Built 1 zonelists, mobility grouping on. Total pages: 260608 | ||
+ | [ 0.000000] Kernel command line: root=/ | ||
+ | [ 0.000000] Dentry cache hash table entries: 131072 (order: 7, 524288 bytes, linear) | ||
+ | [ 0.000000] Inode-cache hash table entries: 65536 (order: 6, 262144 bytes, linear) | ||
+ | [ 0.000000] mem auto-init: stack:off, heap alloc:off, heap free:off | ||
+ | [ 0.000000] Memory: 884076K/ | ||
+ | [ 0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, | ||
+ | [ 0.000000] ftrace: allocating 42085 entries in 83 pages | ||
+ | [ 0.000000] ftrace: allocated 83 pages with 4 groups | ||
+ | [ 0.000000] rcu: Hierarchical RCU implementation. | ||
+ | [ 0.000000] rcu: RCU event tracing is enabled. | ||
+ | [ 0.000000] | ||
+ | [ 0.000000] rcu: RCU calculated value of scheduler-enlistment delay is 10 jiffies. | ||
+ | [ 0.000000] NR_IRQS: 16, nr_irqs: 16, preallocated irqs: 16 | ||
+ | [ 0.000000] L2C-310 erratum 769419 enabled | ||
+ | [ 0.000000] L2C-310 enabling early BRESP for Cortex-A9 | ||
+ | [ 0.000000] L2C-310: enabling full line of zeros but not enabled in Cortex-A9 | ||
+ | [ 0.000000] L2C-310 ID prefetch enabled, offset 1 lines | ||
+ | [ 0.000000] L2C-310 dynamic clock gating enabled, standby mode enabled | ||
+ | [ 0.000000] L2C-310 cache controller enabled, 8 ways, 512 kB | ||
+ | [ 0.000000] L2C-310: CACHE_ID 0x410030c9, AUX_CTRL 0x76560001 | ||
+ | [ 0.000000] random: get_random_bytes called from start_kernel+0x39c/ | ||
+ | [ 0.000000] clocksource: | ||
+ | [ 0.000005] sched_clock: | ||
+ | [ 0.007886] Switching to timer-based delay loop, resolution 10ns | ||
+ | [ 0.014168] Console: colour dummy device 80x30 | ||
+ | [ 0.018614] Calibrating delay loop (skipped), value calculated using timer frequency.. 200.00 BogoMIPS (lpj=1000000) | ||
+ | [ 0.029098] pid_max: default: 32768 minimum: 301 | ||
+ | [ 0.033798] Mount-cache hash table entries: 2048 (order: 1, 8192 bytes, linear) | ||
+ | [ 0.041076] Mountpoint-cache hash table entries: 2048 (order: 1, 8192 bytes, linear) | ||
+ | [ 0.049358] CPU: Testing write buffer coherency: ok | ||
+ | [ 0.054259] CPU0: Spectre v2: using BPIALL workaround | ||
+ | [ 0.059451] CPU0: thread -1, cpu 0, socket 0, mpidr 80000000 | ||
+ | [ 0.065541] Setting up static identity map for 0x100000 - 0x100060 | ||
+ | [ 0.071799] rcu: Hierarchical SRCU implementation. | ||
+ | [ 0.076836] smp: Bringing up secondary CPUs ... | ||
+ | [ 0.081933] CPU1: thread -1, cpu 1, socket 0, mpidr 80000001 | ||
+ | [ 0.081940] CPU1: Spectre v2: using BPIALL workaround | ||
+ | [ 0.092713] smp: Brought up 1 node, 2 CPUs | ||
+ | [ 0.096792] SMP: Total of 2 processors activated (400.00 BogoMIPS). | ||
+ | [ 0.103043] CPU: All CPU(s) started in SVC mode. | ||
+ | [ 0.108126] devtmpfs: initialized | ||
+ | [ 0.115824] VFP support v0.3: implementor 41 architecture 3 part 30 variant 9 rev 4 | ||
+ | [ 0.123762] clocksource: | ||
+ | [ 0.133573] futex hash table entries: 512 (order: 3, 32768 bytes, linear) | ||
+ | [ 0.144486] NET: Registered protocol family 16 | ||
+ | [ 0.150612] DMA: preallocated 256 KiB pool for atomic coherent allocations | ||
+ | [ 0.158377] hw-breakpoint: | ||
+ | [ 0.166360] hw-breakpoint: | ||
+ | [ 0.178562] OF: / | ||
+ | [ 0.191504] OF: / | ||
+ | [ 0.212418] vgaarb: loaded | ||
+ | [ 0.215392] SCSI subsystem initialized | ||
+ | [ 0.219290] usbcore: registered new interface driver usbfs | ||
+ | [ 0.224797] usbcore: registered new interface driver hub | ||
+ | [ 0.230122] usbcore: registered new device driver usb | ||
+ | [ 0.235284] usb_phy_generic soc:usbphy: supply vcc not found, using dummy regulator | ||
+ | [ 0.245476] mc: Linux media interface: v0.10 | ||
+ | [ 0.249753] videodev: Linux video capture interface: v2.00 | ||
+ | [ 0.255312] pps_core: LinuxPPS API ver. 1 registered | ||
+ | [ 0.260254] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti < | ||
+ | [ 0.269376] PTP clock support registered | ||
+ | [ 0.273547] jesd204: found 0 devices and 0 topologies | ||
+ | [ 0.278599] FPGA manager framework | ||
+ | [ 0.282059] Advanced Linux Sound Architecture Driver Initialized. | ||
+ | [ 0.289059] clocksource: | ||
+ | [ 0.814051] NET: Registered protocol family 2 | ||
+ | [ 0.818906] tcp_listen_portaddr_hash hash table entries: 512 (order: 0, 6144 bytes, linear) | ||
+ | [ 0.827312] TCP established hash table entries: 8192 (order: 3, 32768 bytes, linear) | ||
+ | [ 0.835085] TCP bind hash table entries: 8192 (order: 4, 65536 bytes, linear) | ||
+ | [ 0.842298] TCP: Hash tables configured (established 8192 bind 8192) | ||
+ | [ 0.848723] UDP hash table entries: 512 (order: 2, 16384 bytes, linear) | ||
+ | [ 0.855377] UDP-Lite hash table entries: 512 (order: 2, 16384 bytes, linear) | ||
+ | [ 0.862577] NET: Registered protocol family 1 | ||
+ | [ 0.867321] RPC: Registered named UNIX socket transport module. | ||
+ | [ 0.873246] RPC: Registered udp transport module. | ||
+ | [ 0.877928] RPC: Registered tcp transport module. | ||
+ | [ 0.882620] RPC: Registered tcp NFSv4.1 backchannel transport module. | ||
+ | [ 0.889045] PCI: CLS 0 bytes, default 64 | ||
+ | [ 0.894135] workingset: timestamp_bits=30 max_order=18 bucket_order=0 | ||
+ | [ 0.905441] NFS: Registering the id_resolver key type | ||
+ | [ 0.910533] Key type id_resolver registered | ||
+ | [ 0.914697] Key type id_legacy registered | ||
+ | [ 0.918694] Installing knfsd (copyright (C) 1996 okir@monad.swb.de). | ||
+ | [ 0.925534] ntfs: driver 2.1.32 [Flags: R/W]. | ||
+ | [ 0.930026] jffs2: version 2.2. (NAND) © 2001-2006 Red Hat, Inc. | ||
+ | [ 0.936524] fuse: init (API version 7.32) | ||
+ | [ 0.940868] bounce: pool size: 64 pages | ||
+ | [ 0.944693] io scheduler mq-deadline registered | ||
+ | [ 0.949230] io scheduler kyber registered | ||
+ | [ 0.957511] dma-pl330 ffda1000.pdma: | ||
+ | [ 0.964223] dma-pl330 ffda1000.pdma: | ||
+ | [ 0.974943] Serial: 8250/16550 driver, 2 ports, IRQ sharing disabled | ||
+ | [ 0.982120] printk: console [ttyS0] disabled | ||
+ | [ 0.986427] ffc02100.serial1: | ||
+ | [ 0.995416] printk: console [ttyS0] enabled | ||
+ | [ 0.995416] printk: console [ttyS0] enabled | ||
+ | [ 1.003753] printk: bootconsole [earlycon0] disabled | ||
+ | [ 1.003753] printk: bootconsole [earlycon0] disabled | ||
+ | [ 1.015314] brd: module loaded | ||
+ | [ 1.018644] at24 0-0051: supply vcc not found, using dummy regulator | ||
+ | [ 1.026304] at24 0-0051: 4096 byte 24c32 EEPROM, writable, 32 bytes/write | ||
+ | [ 1.034084] spi_altera ff200040.spi: | ||
+ | [ 1.040511] altr_a10sr_gpio altr_a10sr_gpio.0.auto: | ||
+ | [ 1.047986] libphy: Fixed MDIO Bus: probed | ||
+ | [ 1.052567] CAN device driver interface | ||
+ | [ 1.056629] socfpga-dwmac ff800000.ethernet: | ||
+ | [ 1.063246] socfpga-dwmac ff800000.ethernet: | ||
+ | [ 1.069526] socfpga-dwmac ff800000.ethernet: | ||
+ | [ 1.076198] socfpga-dwmac ff800000.ethernet: | ||
+ | [ 1.082581] socfpga-dwmac: | ||
+ | [ 1.089769] stmmaceth ff800000.ethernet: | ||
+ | [ 1.096011] stmmaceth ff800000.ethernet: | ||
+ | [ 1.102086] stmmaceth ff800000.ethernet: | ||
+ | [ 1.108850] stmmaceth ff800000.ethernet: | ||
+ | [ 1.113722] stmmaceth ff800000.ethernet: | ||
+ | [ 1.120841] stmmaceth ff800000.ethernet: | ||
+ | [ 1.127943] stmmaceth ff800000.ethernet: | ||
+ | [ 1.132807] stmmaceth ff800000.ethernet: | ||
+ | [ 1.139484] stmmaceth ff800000.ethernet: | ||
+ | [ 1.146068] stmmaceth ff800000.ethernet: | ||
+ | [ 1.152490] stmmaceth ff800000.ethernet: | ||
+ | [ 1.157950] stmmaceth ff800000.ethernet: | ||
+ | [ 1.173670] libphy: stmmac: probed | ||
+ | [ 1.177073] Micrel KSZ9031 Gigabit PHY stmmac-0: | ||
+ | [ 1.190760] usbcore: registered new interface driver asix | ||
+ | [ 1.196178] usbcore: registered new interface driver ax88179_178a | ||
+ | [ 1.202304] usbcore: registered new interface driver cdc_ether | ||
+ | [ 1.208130] usbcore: registered new interface driver net1080 | ||
+ | [ 1.213804] usbcore: registered new interface driver cdc_subset | ||
+ | [ 1.219725] usbcore: registered new interface driver zaurus | ||
+ | [ 1.225310] usbcore: registered new interface driver cdc_ncm | ||
+ | [ 1.231429] dwc2 ffb00000.usb: | ||
+ | [ 1.238653] dwc2 ffb00000.usb: | ||
+ | [ 1.246013] dwc2 ffb00000.usb: | ||
+ | [ 1.253648] dwc2 ffb00000.usb: | ||
+ | [ 1.258354] dwc2 ffb00000.usb: | ||
+ | [ 1.265430] dwc2 ffb00000.usb: | ||
+ | [ 1.270874] usb usb1: New USB device found, idVendor=1d6b, | ||
+ | [ 1.279113] usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1 | ||
+ | [ 1.286304] usb usb1: Product: DWC OTG Controller | ||
+ | [ 1.290994] usb usb1: Manufacturer: | ||
+ | [ 1.298787] usb usb1: SerialNumber: | ||
+ | [ 1.303852] hub 1-0:1.0: USB hub found | ||
+ | [ 1.307616] hub 1-0:1.0: 1 port detected | ||
+ | [ 1.312338] ehci_hcd: USB 2.0 ' | ||
+ | [ 1.318839] ehci-pci: EHCI PCI platform driver | ||
+ | [ 1.323776] usbcore: registered new interface driver uas | ||
+ | [ 1.329160] usbcore: registered new interface driver usb-storage | ||
+ | [ 1.335214] usbcore: registered new interface driver usbserial_generic | ||
+ | [ 1.341746] usbserial: USB Serial support registered for generic | ||
+ | [ 1.347745] usbcore: registered new interface driver ftdi_sio | ||
+ | [ 1.353494] usbserial: USB Serial support registered for FTDI USB Serial Device | ||
+ | [ 1.360844] usbcore: registered new interface driver upd78f0730 | ||
+ | [ 1.366749] usbserial: USB Serial support registered for upd78f0730 | ||
+ | [ 1.376546] rtc-ds1307 0-0068: SET TIME! | ||
+ | [ 1.384754] rtc-ds1307 0-0068: registered as rtc0 | ||
+ | [ 1.389543] i2c /dev entries driver | ||
+ | [ 1.393645] usbcore: registered new interface driver uvcvideo | ||
+ | [ 1.399381] USB Video Class driver (1.1.1) | ||
+ | [ 1.407645] ltc2978: probe of 0-005c failed with error -121 | ||
+ | [ 1.413942] Synopsys Designware Multimedia Card Interface Driver | ||
+ | [ 1.420180] dw_mmc ff808000.dwmmc0: | ||
+ | [ 1.426844] dw_mmc ff808000.dwmmc0: | ||
+ | [ 1.433036] dw_mmc ff808000.dwmmc0: | ||
+ | [ 1.438197] dw_mmc ff808000.dwmmc0: | ||
+ | [ 1.447540] mmc_host mmc0: card is polling. | ||
+ | [ 1.453462] ledtrig-cpu: | ||
+ | [ 1.459576] usbcore: registered new interface driver usbhid | ||
+ | [ 1.464345] mmc_host mmc0: Bus speed (slot 0) = 50000000Hz (slot req 400000Hz, actual 396825HZ div = 63) | ||
+ | [ 1.465125] usbhid: USB HID core driver | ||
+ | [ 1.490963] fpga_manager fpga0: SoCFPGA Arria10 FPGA Manager registered | ||
+ | [ 1.498177] usbcore: registered new interface driver snd-usb-audio | ||
+ | [ 1.506251] NET: Registered protocol family 10 | ||
+ | [ 1.511420] Segment Routing with IPv6 | ||
+ | [ 1.515131] sit: IPv6, IPv4 and MPLS over IPv4 tunneling driver | ||
+ | [ 1.521517] NET: Registered protocol family 17 | ||
+ | [ 1.525961] NET: Registered protocol family 15 | ||
+ | [ 1.530557] can: controller area network core | ||
+ | [ 1.534941] NET: Registered protocol family 29 | ||
+ | [ 1.539395] can: raw protocol | ||
+ | [ 1.542352] can: broadcast manager protocol | ||
+ | [ 1.546521] can: netlink gateway - max_hops=1 | ||
+ | [ 1.551013] 8021q: 802.1Q VLAN Support v1.8 | ||
+ | [ 1.552310] mmc_host mmc0: Bus speed (slot 0) = 50000000Hz (slot req 50000000Hz, actual 50000000HZ div = 0) | ||
+ | [ 1.555215] NET: Registered protocol family 36 | ||
+ | [ 1.564943] mmc0: new high speed SDHC card at address aaaa | ||
+ | [ 1.569338] Key type dns_resolver registered | ||
+ | [ 1.575303] mmcblk0: mmc0:aaaa SC32G 29.7 GiB | ||
+ | [ 1.579361] oprofile: no performance counters | ||
+ | [ 1.587935] oprofile: using timer interrupt. | ||
+ | [ 1.592299] ThumbEE CPU extension supported. | ||
+ | [ 1.592852] | ||
+ | [ 1.596566] Registering SWP/SWPB emulation handler | ||
+ | [ 1.628855] adrv9002 spi0.0: adrv9002_setup, | ||
+ | [ 1.639954] adrv9002 spi0.0: adrv9002_setup, | ||
+ | [ 1.651046] adrv9002 spi0.0: adrv9002_init, | ||
+ | [ 1.660988] cf_axi_adc: probe of ff220000.axi-adrv9002-rx1-lpc failed with error -14 | ||
+ | [ 1.671202] of_cfs_init | ||
+ | [ 1.673672] of_cfs_init: | ||
+ | [ 1.676654] ALSA device list: | ||
+ | [ 1.679631] | ||
+ | [ 1.683233] dw-apb-uart ffc02100.serial1: | ||
+ | [ 1.707544] random: fast init done | ||
+ | [ 1.942481] EXT4-fs (mmcblk0p2): | ||
+ | [ 1.948189] EXT4-fs (mmcblk0p2): | ||
+ | [ 1.956309] VFS: Mounted root (ext4 filesystem) on device 179:2. | ||
+ | [ 1.965770] devtmpfs: mounted | ||
+ | [ 1.971587] Freeing unused kernel memory: 1024K | ||
+ | [ 1.976516] Run /sbin/init as init process | ||
+ | [ 2.495793] systemd[1]: System time before build time, advancing clock. | ||
+ | [ 2.546077] systemd[1]: systemd 247.3-7+rpi1 running in system mode. (+PAM +AUDIT +SELINUX +IMA +APPARMOR +SMACK +SYSVINIT +UTMP +LIBCRYPTSETUP +GCRYPT +GNUTLS +ACL +XZ +LZ4 +ZSTD +SECCOMP +BLKID +ELFUTILS +KMOD +IDN2 -IDN +PCRE2 default-hierarchy=unified) | ||
+ | [ 2.569272] systemd[1]: Detected architecture arm. | ||
+ | |||
+ | Welcome to Kuiper GNU/Linux 11.2 (bullseye)! | ||
+ | |||
+ | [ 2.622132] systemd[1]: Set hostname to < | ||
+ | [ 4.137436] systemd[1]: / | ||
+ | [ 4.378487] systemd[1]: Queued start job for default target Graphical Interface. | ||
+ | [ 4.387531] random: systemd: uninitialized urandom read (16 bytes read) | ||
+ | [ 4.394498] systemd[1]: system-getty.slice: | ||
+ | [ 4.406868] systemd[1]: (This warning is only shown for the first unit using IP firewalling.) | ||
+ | [ 4.416537] systemd[1]: Created slice system-getty.slice. | ||
+ | [ OK ] Created slice system-getty.slice. | ||
+ | [ 4.449268] random: systemd: uninitialized urandom read (16 bytes read) | ||
+ | [ 4.456609] systemd[1]: Created slice system-modprobe.slice. | ||
+ | [ OK ] Created slice system-modprobe.slice. | ||
+ | [ 4.489256] random: systemd: uninitialized urandom read (16 bytes read) | ||
+ | [ 4.496572] systemd[1]: Created slice system-serial\x2dgetty.slice. | ||
+ | [ OK ] Created slice system-serial\x2dgetty.slice. | ||
+ | [ 4.529917] systemd[1]: Created slice system-systemd\x2dfsck.slice. | ||
+ | [ OK ] Created slice system-systemd\x2dfsck.slice. | ||
+ | [ 4.559661] systemd[1]: Created slice User and Session Slice. | ||
+ | [ OK ] Created slice User and Session Slice. | ||
+ | [ 4.589562] systemd[1]: Started Forward Password Requests to Wall Directory Watch. | ||
+ | [ OK ] Started Forward Password R…uests to Wall Directory Watch. | ||
+ | [ 4.619502] systemd[1]: Condition check resulted in Arbitrary Executable File Formats File System Automount Point being skipped. | ||
+ | [ 4.631946] systemd[1]: Reached target Slices. | ||
+ | [ OK ] Reached target Slices. | ||
+ | [ 4.659334] systemd[1]: Reached target Swap. | ||
+ | [ OK ] Reached target Swap. | ||
+ | [ 4.690278] systemd[1]: Listening on Syslog Socket. | ||
+ | [ OK ] Listening on Syslog Socket. | ||
+ | [ 4.719816] systemd[1]: Listening on fsck to fsckd communication Socket. | ||
+ | [ OK ] Listening on fsck to fsckd communication Socket. | ||
+ | [ 4.749507] systemd[1]: Listening on initctl Compatibility Named Pipe. | ||
+ | [ OK ] Listening on initctl Compatibility Named Pipe. | ||
+ | [ 4.802106] systemd[1]: Condition check resulted in Journal Audit Socket being skipped. | ||
+ | [ 4.810944] systemd[1]: Listening on Journal Socket (/dev/log). | ||
+ | [ OK ] Listening on Journal Socket (/dev/log). | ||
+ | [ 4.839975] systemd[1]: Listening on Journal Socket. | ||
+ | [ OK ] Listening on Journal Socket. | ||
+ | [ 4.879147] systemd[1]: Listening on udev Control Socket. | ||
+ | [ OK ] Listening on udev Control Socket. | ||
+ | [ 4.909763] systemd[1]: Listening on udev Kernel Socket. | ||
+ | [ OK ] Listening on udev Kernel Socket. | ||
+ | [ 4.939873] systemd[1]: Condition check resulted in Huge Pages File System being skipped. | ||
+ | [ 4.948438] systemd[1]: Condition check resulted in POSIX Message Queue File System being skipped. | ||
+ | [ 4.960413] systemd[1]: Mounting RPC Pipe File System... | ||
+ | | ||
+ | [ 4.992209] systemd[1]: Mounting Kernel Debug File System... | ||
+ | | ||
+ | [ 5.022090] systemd[1]: Mounting Kernel Trace File System... | ||
+ | | ||
+ | [ 5.049485] systemd[1]: Condition check resulted in Kernel Module supporting RPCSEC_GSS being skipped. | ||
+ | [ 5.065551] systemd[1]: Starting Restore / save the current clock... | ||
+ | | ||
+ | [ 5.102840] systemd[1]: Starting Set the console keyboard layout... | ||
+ | | ||
+ | [ 5.140096] systemd[1]: Condition check resulted in Create list of static device nodes for the current kernel being skipped. | ||
+ | [ 5.155786] systemd[1]: Starting Load Kernel Module configfs... | ||
+ | | ||
+ | [ 5.192594] systemd[1]: Starting Load Kernel Module drm... | ||
+ | | ||
+ | [ 5.212630] systemd[1]: Starting Load Kernel Module fuse... | ||
+ | | ||
+ | [ 5.254201] systemd[1]: Condition check resulted in Set Up Additional Binary Formats being skipped. | ||
+ | [ 5.263665] systemd[1]: Condition check resulted in File System Check on Root Device being skipped. | ||
+ | [ 5.276012] systemd[1]: Starting Journal Service... | ||
+ | | ||
+ | [ 5.296804] systemd[1]: Starting Load Kernel Modules... | ||
+ | | ||
+ | [ 5.342287] systemd[1]: Starting Remount Root and Kernel File Systems... | ||
+ | | ||
+ | [ 5.382711] systemd[1]: Starting Coldplug All udev Devices... | ||
+ | | ||
+ | [ 5.426047] systemd[1]: Mounted RPC Pipe File System. | ||
+ | [ OK ] Mounted RPC Pipe File System. | ||
+ | [ 5.472608] systemd[1]: Mounted Kernel Debug File System. | ||
+ | [ OK ] Mounted Kernel Debug File System. | ||
+ | [ 5.488602] systemd[1]: Mounted Kernel Trace File System. | ||
+ | [ OK ] Mounted Kernel Trace File System. | ||
+ | [ 5.520488] systemd[1]: Finished Restore / save the current clock. | ||
+ | [ OK ] Finished Restore / save the current clock. | ||
+ | [ 5.596975] systemd[1]: modprobe@configfs.service: | ||
+ | [ 5.611072] systemd[1]: Finished Load Kernel Module configfs. | ||
+ | [ OK ] Finished Load Kernel Module configfs. | ||
+ | [ 5.629523] systemd[1]: Started Journal Service. | ||
+ | [ 5.645346] EXT4-fs (mmcblk0p2): | ||
+ | [ OK ] Started Journal Service. | ||
+ | [ OK ] Finished Set the console keyboard layout. | ||
+ | [ OK ] Finished Load Kernel Module drm. | ||
+ | [ OK ] Finished Load Kernel Module fuse. | ||
+ | [FAILED] Failed to start Load Kernel Modules. | ||
+ | See ' | ||
+ | [ OK ] Finished Remount Root and Kernel File Systems. | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | [ 6.015539] systemd-journald[98]: | ||
+ | | ||
+ | [ 6.056206] systemd-journald[98]: | ||
+ | [ OK ] Mounted FUSE Control File System. | ||
+ | [ OK ] Finished Coldplug All udev Devices. | ||
+ | [ OK ] Mounted Kernel Configuration File System. | ||
+ | [ OK ] Finished Apply Kernel Variables. | ||
+ | [ OK ] Finished Create System Users. | ||
+ | | ||
+ | | ||
+ | | ||
+ | [ OK ] Finished Helper to synchronize boot up for ifupdown. | ||
+ | [ OK ] Finished Create Static Device Nodes in /dev. | ||
+ | [ OK ] Reached target Local File Systems (Pre). | ||
+ | | ||
+ | [ OK ] Finished Flush Journal to Persistent Storage. | ||
+ | [ OK ] Started Rule-based Manager for Device Events and Files. | ||
+ | | ||
+ | [ OK ] Started Show Plymouth Boot Screen. | ||
+ | [ OK ] Started Forward Password R…s to Plymouth Directory Watch. | ||
+ | [ OK ] Reached target Local Encrypted Volumes. | ||
+ | [ OK ] Finished Load/Save Random Seed. | ||
+ | [ OK ] Reached target Hardware activated USB gadget. | ||
+ | | ||
+ | [ OK ] Found device /dev/ttyS0. | ||
+ | [FAILED] Failed to start Load Kernel Modules. | ||
+ | See ' | ||
+ | [ OK ] Found device / | ||
+ | | ||
+ | [ OK ] Started File System Check Daemon to report status. | ||
+ | [ OK ] Finished Wait for udev To Complete Device Initialization. | ||
+ | [ OK ] Finished File System Check…/ | ||
+ | | ||
+ | [ OK ] Mounted /boot. | ||
+ | [ OK ] Reached target Local File Systems. | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | [ OK ] Finished Set console font and keymap. | ||
+ | [ OK ] Finished Tell Plymouth To Write Out Runtime Data. | ||
+ | [ OK ] Finished Preprocess NFS configuration. | ||
+ | [ OK ] Reached target NFS client services. | ||
+ | [ OK ] Reached target Remote File Systems (Pre). | ||
+ | [ OK ] Reached target Remote File Systems. | ||
+ | [ OK ] Finished Create Volatile Files and Directories. | ||
+ | | ||
+ | [ OK ] Finished Update UTMP about System Boot/ | ||
+ | [ OK ] Reached target System Initialization. | ||
+ | [ OK ] Started CUPS Scheduler. | ||
+ | [ OK ] Started Daily apt download activities. | ||
+ | [ OK ] Started Daily apt upgrade and clean activities. | ||
+ | [ OK ] Started Periodic ext4 Onli…ata Check for All Filesystems. | ||
+ | [ OK ] Started Discard unused blocks once a week. | ||
+ | [ OK ] Started Daily rotation of log files. | ||
+ | [ OK ] Started Daily man-db regeneration. | ||
+ | [ OK ] Started Daily Cleanup of Temporary Directories. | ||
+ | [ OK ] Reached target Paths. | ||
+ | [ OK ] Reached target Timers. | ||
+ | [ OK ] Listening on Avahi mDNS/DNS-SD Stack Activation Socket. | ||
+ | [ OK ] Listening on CUPS Scheduler. | ||
+ | [ OK ] Listening on D-Bus System Message Bus Socket. | ||
+ | [ OK ] Listening on Erlang Port Mapper Daemon Activation Socket. | ||
+ | [ OK ] Listening on GPS (Global P…ioning System) Daemon Sockets. | ||
+ | [ OK ] Listening on triggerhappy.socket. | ||
+ | [ OK ] Reached target Sockets. | ||
+ | [ OK ] Reached target Basic System. | ||
+ | | ||
+ | [ OK ] Started Regular background program processing daemon. | ||
+ | [ OK ] Started D-Bus System Message Bus. | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | [ OK ] Started Avahi mDNS/DNS-SD Stack. | ||
+ | [ OK ] Finished Check for Raspberry Pi EEPROM updates. | ||
+ | [ OK ] Started triggerhappy global hotkey daemon. | ||
+ | [ OK ] Started System Logging Service. | ||
+ | [ OK ] Started Authorization Manager. | ||
+ | [ OK ] Started DHCP Client Daemon. | ||
+ | | ||
+ | [ OK ] Started WPA supplicant. | ||
+ | [FAILED] Failed to start dphys-swap…mount, | ||
+ | See ' | ||
+ | [ OK ] Finished Raise network interfaces. | ||
+ | [ OK ] Reached target Network. | ||
+ | [ OK ] Reached target Network is Online. | ||
+ | | ||
+ | [ OK ] Started Erlang Port Mapper Daemon. | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | [ OK ] Started LSB: Switch to ond…(unless shift key is pressed). | ||
+ | [ OK ] Started LSB: rng-tools (Debian variant). | ||
+ | [ OK ] Found device / | ||
+ | [ OK ] Finished Load USB gadget scheme. | ||
+ | [ OK ] Started / | ||
+ | | ||
+ | [ OK ] Started Internet superserver. | ||
+ | [ OK ] Mounted Mount FunctionFS instance. | ||
+ | [ OK ] Finished Permit User Sessions. | ||
+ | | ||
+ | | ||
+ | [ OK ] Started HTTP based time synchronization tool. | ||
+ | [ OK ] Started User Login Management. | ||
+ | [ OK ] Started Unattended Upgrades Shutdown. | ||
+ | [ OK ] Finished Remove Stale Onli…ext4 Metadata Check Snapshots. | ||
+ | [FAILED] Failed to start VNC Server for X11. | ||
+ | |||
+ | Raspbian GNU/Linux 11 analog ttyS0 | ||
+ | |||
+ | analog login: root (automatic login) | ||
+ | |||
+ | Password: | ||
+ | Linux analog 5.10.0-98183-gf814ae972859-dirty #27 SMP Wed May 25 16:01:50 EEST 2022 armv7l | ||
+ | |||
+ | The programs included with the Debian GNU/Linux system are free software; | ||
+ | the exact distribution terms for each program are described in the | ||
+ | individual files in / | ||
+ | |||
+ | Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent | ||
+ | permitted by applicable law. | ||
+ | Last login: Fri Jun 17 14:45:22 BST 2022 on ttyS0 | ||
+ | root@analog: | ||
+ | </ | ||
+ | </ | ||
+ | |||
+ | <WRAP important round> | ||
+ | \\ | ||
+ | </ | ||
+ | |||
+ | ==== Users and Passwords ===== | ||
+ | |||
+ | The default user is the " | ||
+ | |||
+ | ^ User ^ Password ^ | ||
+ | | root | analog | | ||
+ | | analog | analog | | ||
+ | ==== Staying up to date ==== | ||
+ | |||
+ | <WRAP WARN> | ||
+ | - Userspace Tools (GUI/tools, in the Linux rootfs). | ||
+ | - ZYNQ Processing System / FPGA Boot Files & Linux kernel (the FAT32 BOOT partition). | ||
+ | Upgrading one side, without upgrading the other might cause more problems than it solves. If you are upgrading, please upgrade both. | ||
+ | </ | ||
+ | |||
+ | Staying up to date is a combination of: | ||
+ | * Package management via apt-get | ||
+ | * checking out source code with git tools | ||
+ | * downloading files via wget | ||
+ | |||
+ | If you need to use a proxy for any of these: | ||
+ | * [[https:// | ||
+ | * [[http:// | ||
+ | |||
+ | |||
+ | === User Space Tools === | ||
+ | |||
+ | There are a number of ADI provided tools in the file system. | ||
+ | There is an easy way to rebuild these projects from source. | ||
+ | The only requirement is an healthy image and active Internet connection. | ||
+ | |||
+ | In order to update all ADI tools - simply call the update script as shown below: | ||
+ | In case you only want to update a certain project, the script accepts a single parameter, the ADI github project name. (https:// | ||
+ | |||
+ | <WRAP tip>If you are using an old image & old update tools script - you may need to run the update tools script twice (the first time it updates the update script, and the second time it updates everything else). This has been resolved in the most recent update script (the script updates itself, and switches over to the new one), so you only need to do this if you are using an older version.</ | ||
+ | |||
+ | <WRAP box bggreen>< | ||
+ | < | ||
+ | root@analog: | ||
+ | </ | ||
+ | |||
+ | <hidden **Complete Update Tools Log** (Click to expand)> | ||
+ | < | ||
+ | |||
+ | 2022-05-06 14:35:15 URL: http:// | ||
+ | *** Updating linux_image_ADI-scripts BRANCH origin/ | ||
+ | HEAD is now at 47416bc update_tools: | ||
+ | remote: Enumerating objects: 32, done. | ||
+ | remote: Counting objects: 100% (32/32), done. | ||
+ | remote: Compressing objects: 100% (16/16), done. | ||
+ | remote: Total 32 (delta 16), reused 30 (delta 16), pack-reused 0 | ||
+ | Unpacking objects: 100% (32/32), 7.80 KiB | 133.00 KiB/s, done. | ||
+ | From https:// | ||
+ | * [new branch] | ||
+ | | ||
+ | + c989e52...4bf27ce rpi_boot_files | ||
+ | *** Building linux_image_ADI-scripts *** | ||
+ | ./ | ||
+ | 2022-05-06 14:35:18 URL: http:// | ||
+ | *** Updating linux_image_ADI-scripts BRANCH origin/ | ||
+ | HEAD is now at 425510e adi_update_boot.sh: | ||
+ | *** Building linux_image_ADI-scripts *** | ||
+ | ./ | ||
+ | Reading package lists... Done | ||
+ | Building dependency tree... Done | ||
+ | Reading state information... Done | ||
+ | Note, selecting ' | ||
+ | bison is already the newest version (2: | ||
+ | flex is already the newest version (2.6.4-8). | ||
+ | libaio-dev is already the newest version (0.3.112-9+rpi1). | ||
+ | libavahi-client-dev is already the newest version (0.8-5). | ||
+ | libavahi-common-dev is already the newest version (0.8-5). | ||
+ | libcdk5-dev is already the newest version (5.0.20180306-3). | ||
+ | libcurl4-openssl-dev is already the newest version (7.74.0-1.3+deb11u1). | ||
+ | libfftw3-dev is already the newest version (3.3.8-2). | ||
+ | libgtkdatabox-dev is already the newest version (1: | ||
+ | libjansson-dev is already the newest version (2.13.1-1.1). | ||
+ | libmatio-dev is already the newest version (1.5.19-2). | ||
+ | libncurses-dev is already the newest version (6.2+20201114-2). | ||
+ | libserialport-dev is already the newest version (0.1.1-4). | ||
+ | libxml2 is already the newest version (2.9.10+dfsg-6.7+deb11u1). | ||
+ | libxml2-dev is already the newest version (2.9.10+dfsg-6.7+deb11u1). | ||
+ | cmake is already the newest version (3.18.4-2+rpt1+rpi1). | ||
+ | libgtk2.0-dev is already the newest version (2.24.33-2+rpt1). | ||
+ | 0 upgraded, 0 newly installed, 0 to remove and 49 not upgraded. | ||
+ | Reading package lists... Done | ||
+ | Building dependency tree... Done | ||
+ | Reading state information... Done | ||
+ | evtest is already the newest version (1:1.34-1). | ||
+ | gpsd is already the newest version (3.22-4). | ||
+ | gpsd-clients is already the newest version (3.22-4). | ||
+ | u-boot-tools is already the newest version (2021.01+dfsg-5+rpi1). | ||
+ | 0 upgraded, 0 newly installed, 0 to remove and 49 not upgraded. | ||
+ | Cannot read environment, | ||
+ | Cannot read default environment from file | ||
+ | sed: can't read / | ||
+ | make: *** No rule to make target ' | ||
+ | install -d / | ||
+ | install ./*.sh / | ||
+ | /bin/sh usb-gadget-service/ | ||
+ | Reading package lists... Done | ||
+ | Building dependency tree... Done | ||
+ | Reading state information... Done | ||
+ | libconfig-dev is already the newest version (1.5-0.4). | ||
+ | Already up to date. | ||
+ | checking for a BSD-compatible install... / | ||
+ | checking whether build environment is sane... yes | ||
+ | checking for a thread-safe mkdir -p... / | ||
+ | checking for gawk... no | ||
+ | checking for mawk... mawk | ||
+ | checking whether make sets $(MAKE)... yes | ||
+ | checking whether make supports nested variables... yes | ||
+ | checking for gcc... gcc | ||
+ | checking whether the C compiler works... yes | ||
+ | checking for C compiler default output file name... a.out | ||
+ | checking for suffix of executables... | ||
+ | checking whether we are cross compiling... no | ||
+ | checking for suffix of object files... o | ||
+ | checking whether we are using the GNU C compiler... yes | ||
+ | checking whether gcc accepts -g... yes | ||
+ | checking for gcc option to accept ISO C89... none needed | ||
+ | checking whether gcc understands -c and -o together... yes | ||
+ | checking whether make supports the include directive... yes (GNU style) | ||
+ | checking dependency style of gcc... gcc3 | ||
+ | checking for g++... g++ | ||
+ | checking whether we are using the GNU C++ compiler... yes | ||
+ | checking whether g++ accepts -g... yes | ||
+ | checking dependency style of g++... gcc3 | ||
+ | checking for ar... ar | ||
+ | checking the archiver (ar) interface... ar | ||
+ | checking for pkg-config... / | ||
+ | checking pkg-config is at least version 0.9.0... yes | ||
+ | checking for libconfig >= 1.4... yes | ||
+ | checking for libconfig >= 1.5... yes | ||
+ | checking build system type... armv7l-unknown-linux-gnueabihf | ||
+ | checking host system type... armv7l-unknown-linux-gnueabihf | ||
+ | checking how to print strings... printf | ||
+ | checking for a sed that does not truncate output... / | ||
+ | checking for grep that handles long lines and -e... / | ||
+ | checking for egrep... / | ||
+ | checking for fgrep... / | ||
+ | checking for ld used by gcc... /usr/bin/ld | ||
+ | checking if the linker (/ | ||
+ | checking for BSD- or MS-compatible name lister (nm)... /usr/bin/nm -B | ||
+ | checking the name lister (/ | ||
+ | checking whether ln -s works... yes | ||
+ | checking the maximum length of command line arguments... 1572864 | ||
+ | checking how to convert armv7l-unknown-linux-gnueabihf file names to armv7l-unknown-linux-gnueabihf format... func_convert_file_noop | ||
+ | checking how to convert armv7l-unknown-linux-gnueabihf file names to toolchain format... func_convert_file_noop | ||
+ | checking for /usr/bin/ld option to reload object files... -r | ||
+ | checking for objdump... objdump | ||
+ | checking how to recognize dependent libraries... pass_all | ||
+ | checking for dlltool... no | ||
+ | checking how to associate runtime and link libraries... printf %s\n | ||
+ | checking for archiver @FILE support... @ | ||
+ | checking for strip... strip | ||
+ | checking for ranlib... ranlib | ||
+ | checking command to parse /usr/bin/nm -B output from gcc object... ok | ||
+ | checking for sysroot... no | ||
+ | checking for a working dd... /usr/bin/dd | ||
+ | checking how to truncate binary pipes... /usr/bin/dd bs=4096 count=1 | ||
+ | checking for mt... mt | ||
+ | checking if mt is a manifest tool... no | ||
+ | checking how to run the C preprocessor... gcc -E | ||
+ | checking for ANSI C header files... yes | ||
+ | checking for sys/ | ||
+ | checking for sys/ | ||
+ | checking for stdlib.h... yes | ||
+ | checking for string.h... yes | ||
+ | checking for memory.h... yes | ||
+ | checking for strings.h... yes | ||
+ | checking for inttypes.h... yes | ||
+ | checking for stdint.h... yes | ||
+ | checking for unistd.h... yes | ||
+ | checking for dlfcn.h... yes | ||
+ | checking for objdir... .libs | ||
+ | checking if gcc supports -fno-rtti -fno-exceptions... no | ||
+ | checking for gcc option to produce PIC... -fPIC -DPIC | ||
+ | checking if gcc PIC flag -fPIC -DPIC works... yes | ||
+ | checking if gcc static flag -static works... yes | ||
+ | checking if gcc supports -c -o file.o... yes | ||
+ | checking if gcc supports -c -o file.o... (cached) yes | ||
+ | checking whether the gcc linker (/ | ||
+ | checking whether -lc should be explicitly linked in... no | ||
+ | checking dynamic linker characteristics... GNU/Linux ld.so | ||
+ | checking how to hardcode library paths into programs... immediate | ||
+ | checking whether stripping libraries is possible... yes | ||
+ | checking if libtool supports shared libraries... yes | ||
+ | checking whether to build shared libraries... yes | ||
+ | checking whether to build static libraries... yes | ||
+ | checking how to run the C++ preprocessor... g++ -E | ||
+ | checking for ld used by g++... /usr/bin/ld | ||
+ | checking if the linker (/ | ||
+ | checking whether the g++ linker (/ | ||
+ | checking for g++ option to produce PIC... -fPIC -DPIC | ||
+ | checking if g++ PIC flag -fPIC -DPIC works... yes | ||
+ | checking if g++ static flag -static works... yes | ||
+ | checking if g++ supports -c -o file.o... yes | ||
+ | checking if g++ supports -c -o file.o... (cached) yes | ||
+ | checking whether the g++ linker (/ | ||
+ | checking dynamic linker characteristics... (cached) GNU/Linux ld.so | ||
+ | checking how to hardcode library paths into programs... immediate | ||
+ | checking for doxygen... / | ||
+ | checking for perl... / | ||
+ | checking for dot... / | ||
+ | checking for latex... no | ||
+ | configure: WARNING: latex not found - will not generate doxygen PostScript documentation | ||
+ | checking for makeindex... no | ||
+ | checking for dvips... no | ||
+ | checking for egrep... / | ||
+ | checking for pdflatex... no | ||
+ | configure: WARNING: pdflatex not found - will not generate doxygen PDF documentation | ||
+ | checking for makeindex... no | ||
+ | checking for egrep... (cached) / | ||
+ | DX_FLAG_doc=1 | ||
+ | DX_FLAG_dot=1 | ||
+ | DX_FLAG_man=0 | ||
+ | DX_FLAG_html=1 | ||
+ | DX_FLAG_chm=0 | ||
+ | DX_FLAG_chi=0 | ||
+ | DX_FLAG_rtf=0 | ||
+ | DX_FLAG_xml=0 | ||
+ | DX_FLAG_pdf=0 | ||
+ | DX_FLAG_ps=0 | ||
+ | DX_ENV= SRCDIR=' | ||
+ | checking that generated files are newer than configure... done | ||
+ | configure: creating ./ | ||
+ | config.status: | ||
+ | config.status: | ||
+ | config.status: | ||
+ | config.status: | ||
+ | config.status: | ||
+ | config.status: | ||
+ | config.status: | ||
+ | config.status: | ||
+ | config.status: | ||
+ | make[1]: warning: jobserver unavailable: | ||
+ | make[1]: Entering directory '/ | ||
+ | Making all in src | ||
+ | .... | ||
+ | *** Building libiio *** | ||
+ | -- cmake version: 3.18.4 | ||
+ | -- The C compiler identification is GNU 10.2.1 | ||
+ | -- Detecting C compiler ABI info | ||
+ | -- Detecting C compiler ABI info - done | ||
+ | -- Check for working C compiler: /usr/bin/cc - skipped | ||
+ | -- Detecting C compile features | ||
+ | -- Detecting C compile features - done | ||
+ | -- Performing Test HAS_WPEDANTIC | ||
+ | -- Performing Test HAS_WPEDANTIC - Success | ||
+ | -- Performing Test HAS_WSHADOW | ||
+ | -- Performing Test HAS_WSHADOW - Success | ||
+ | -- Looking for strdup | ||
+ | -- Looking for strdup - found | ||
+ | -- Looking for strndup | ||
+ | -- Looking for strndup - found | ||
+ | -- Looking for strerror_r | ||
+ | -- Looking for strerror_r - found | ||
+ | -- Looking for newlocale | ||
+ | -- Looking for newlocale - found | ||
+ | -- Looking for pthread_setname_np | ||
+ | -- Looking for pthread_setname_np - found | ||
+ | -- Looking for in6addr_any | ||
+ | -- Looking for in6addr_any - found | ||
+ | -- Looking for libusb-1.0 : Found | ||
+ | -- Looking for libusb_get_version | ||
+ | -- Looking for libusb_get_version - found | ||
+ | -- Found Git: / | ||
+ | -- Looking for libserialport : Found | ||
+ | -- Building with Network back end support | ||
+ | -- Performing Test HAS_O_TMPFILE | ||
+ | -- Performing Test HAS_O_TMPFILE - Success | ||
+ | -- Performing Test WITH_NETWORK_EVENTFD | ||
+ | -- Performing Test WITH_NETWORK_EVENTFD - Success | ||
+ | -- Performing Test HAS_PIPE2 | ||
+ | -- Performing Test HAS_PIPE2 - Success | ||
+ | -- Building with Avahi, a DNS SD implementation | ||
+ | -- Found LibXml2: / | ||
+ | -- Looking for CDK_CSTRING2 | ||
+ | -- Looking for CDK_CSTRING2 - found | ||
+ | -- bin= lib= inc= | ||
+ | -- Found Python: / | ||
+ | -- new | ||
+ | -- Python_EXECUTABLE / | ||
+ | -- Found Python: Building bindings | ||
+ | -- Found BISON: / | ||
+ | -- Found FLEX: / | ||
+ | -- Looking for sys/types.h | ||
+ | -- Looking for sys/types.h - found | ||
+ | -- Looking for stdint.h | ||
+ | -- Looking for stdint.h - found | ||
+ | -- Looking for stddef.h | ||
+ | -- Looking for stddef.h - found | ||
+ | -- Check size of struct usb_functionfs_descs_head_v2 | ||
+ | -- Check size of struct usb_functionfs_descs_head_v2 - done | ||
+ | -- Configuring done | ||
+ | -- Generating done | ||
+ | -- Build files have been written to: / | ||
+ | .... | ||
+ | Building libiio target | ||
+ | *** Updating libad9361-iio BRANCH origin/ | ||
+ | Previous HEAD position was fd44358 Fix flags for FMComms5 python tests | ||
+ | HEAD is now at be7eb02 Update HW test to use environmental variables | ||
+ | remote: Enumerating objects: 3, done. | ||
+ | remote: Counting objects: 100% (3/3), done. | ||
+ | remote: Total 3 (delta 2), reused 3 (delta 2), pack-reused 0 | ||
+ | Unpacking objects: 100% (3/3), 601 bytes | 120.00 KiB/s, done. | ||
+ | From https:// | ||
+ | * [new branch] | ||
+ | * [new branch] | ||
+ | *** Building libad9361-iio *** | ||
+ | -- The C compiler identification is GNU 10.2.1 | ||
+ | -- Detecting C compiler ABI info | ||
+ | -- Detecting C compiler ABI info - done | ||
+ | -- Check for working C compiler: /usr/bin/cc - skipped | ||
+ | -- Detecting C compile features | ||
+ | -- Detecting C compile features - done | ||
+ | -- Found Git: / | ||
+ | -- Found Doxygen: / | ||
+ | -- Using default dependencies for packaging | ||
+ | -- Package dependencies: | ||
+ | -- Configuring done | ||
+ | -- Generating done | ||
+ | -- Build files have been written to: / | ||
+ | .... | ||
+ | Building libad9361-iio target | ||
+ | *** Updating iio-oscilloscope BRANCH origin/ | ||
+ | Previous HEAD position was fb9ec84 plugins: adrv9002: improve temperature reporting | ||
+ | HEAD is now at 177dd7d filters: add adrv9002 new API profiles | ||
+ | rm -rf / | ||
+ | xdg-icon-resource uninstall --noupdate --size 16 adi-osc | ||
+ | xdg-icon-resource uninstall --noupdate --size 32 adi-osc | ||
+ | xdg-icon-resource uninstall --noupdate --size 64 adi-osc | ||
+ | xdg-icon-resource uninstall --noupdate --size 128 adi-osc | ||
+ | .... | ||
+ | |||
+ | </ | ||
+ | </ | ||
+ | |||
+ | === ZYNQ Processing System / FPGA Boot Files === | ||
+ | |||
+ | The default ADI ZYNQ image supports a variety of ZYNQ boards and reference designs. | ||
+ | In order to keep those boot files up to date. There is a another script that downloads the latest builds from the ADI Wiki page and installs them onto the FAT32 partition on the SD Card. The only requirement is a healthy image and active Internet connection. | ||
+ | |||
+ | In order to update all ADI tools, simply call the **adi_update_boot.sh** script as shown below: | ||
+ | |||
+ | <WRAP box bggreen>< | ||
+ | < | ||
+ | root@analog: | ||
+ | </ | ||
+ | |||
+ | <hidden **Complete Update Boot Log** (Click to expand)> | ||
+ | < | ||
+ | |||
+ | Verifying if ./ | ||
+ | HEAD is now at 425510e adi_update_boot.sh: | ||
+ | ./ | ||
+ | Check latest available version... | ||
+ | --2022-05-06 14: | ||
+ | Resolving swdownloads.analog.com (swdownloads.analog.com)... 104.103.158.171 | ||
+ | Connecting to swdownloads.analog.com (swdownloads.analog.com)|104.103.158.171|: | ||
+ | HTTP request sent, awaiting response... 301 Moved Permanently | ||
+ | Location: https:// | ||
+ | --2022-05-06 14: | ||
+ | Connecting to swdownloads.analog.com (swdownloads.analog.com)|104.103.158.171|: | ||
+ | HTTP request sent, awaiting response... 200 OK | ||
+ | Length: 160 [text/ | ||
+ | Saving to: ‘latest_boot.txt’ | ||
+ | latest_boot.txt | ||
+ | 2022-05-06 14:53:35 (26.0 MB/s) - ‘latest_boot.txt’ saved [160/160] | ||
+ | Latest version available: 2021_07_27 | ||
+ | Release: 2019_r2 | ||
+ | Current version detected: 2022_04_14 | ||
+ | Release: master | ||
+ | Warning! You want to update boot files from a different release: 2019_r2 (current release: master) | ||
+ | In this case there may appear compatibility issues with root file system. | ||
+ | Are you sure you want to continue? | ||
+ | Start downloading latest_boot_partition.tar.gz ... | ||
+ | --2022-05-06 14: | ||
+ | Resolving swdownloads.analog.com (swdownloads.analog.com)... 104.103.158.171 | ||
+ | Connecting to swdownloads.analog.com (swdownloads.analog.com)|104.103.158.171|: | ||
+ | HTTP request sent, awaiting response... 200 OK | ||
+ | Length: 515989728 (492M) [application/ | ||
+ | Saving to: ‘latest_boot_partition.tar.gz’ | ||
+ | ... | ||
+ | |||
+ | </ | ||
+ | </ | ||
+ | |||
+ | <WRAP info round> | ||
+ | It may happen that you have to copy manually the boot files to complete the update. | ||
+ | \\ To do so, plug the SD card into your computer, and: | ||
+ | * Copy ${CONFIG}/ | ||
+ | * Copy ${CONFIG}/ | ||
+ | * Copy common/ | ||
+ | (Replace ${CONFIG} with the config name that applies in your case, e.g. " | ||
+ | </ | ||
+ | |||
+ | {{page> | ||
+ | |||
+ | ==== Accessing Files ==== | ||
+ | |||
+ | On the embedded Linux target there is [[wp> | ||
+ | Allowing you to access (Add/map Network Location/ | ||
+ | |||
+ | === From Windows host === | ||
+ | |||
+ | The only thing you need to do is: | ||
+ | - Plug in a network cable (network with DHCP) | ||
+ | - Open a serial remote console or on the target itself type '' | ||
+ | - Now you know your IP address (inet addr: | ||
+ | - On Windows Internet Explorer type following URL \\XXX.XXX.XXX.XXX or use the Map Network Drive functionality the path is: \\XXX.XXX.XXX.XXX\ADI Linux Image | ||
+ | |||
+ | By default, only read access is possible. If you want to be able to copy files onto the image over the network share, the permissions need to be changed first. This can be done by running the following command on the board: | ||
+ | <WRAP box bggreen>< | ||
+ | < | ||
+ | sudo chmod 777 /media/* | ||
+ | </ | ||
+ | </ | ||
+ | |||
+ | |||
+ | Be aware that with this change anybody on your network will now be able to write to the image. | ||
+ | |||
+ | === From Linux host === | ||
+ | |||
+ | Use rsync, or ssh, or scp, or just plug in the SD card to your Linux machine, and mount the ext4 file system. If you really need help - ask. | ||
+ | |||
+ | ===== Preparing the Image: Raspberry Pi ====== | ||
+ | |||
+ | |||
+ | |||
+ | ==== Hardware Configuration ==== | ||
+ | |||
+ | The system will likely need to be configured according to what devices are connected to the platform board (for example, an AD7124-8 ADC connected to a Raspberry Pi) The most straightforward way to do this for Raspberry Pi is to edit the config.txt file, which is located in the boot partition. This is a FAT partition that is accessible in Linux, Windows, or MacOS. Any text editor can be used, including the Mousepad editor that is included with Kuiper Linux. Using the Raspberry Pi itself also avoids problems with USB encryption, often present on company computers. Connect a keyboard, mouse, and monitor to the Raspberry Pi and connect power. The ADI Kuiper Linux desktop should appear.\\ | ||
+ | Before editing, it is a good idea to make a backup of the original file, just in case something goes wrong (which it won't, but still...) Open a terminal and enter the following command (noting that " | ||
+ | |||
+ | < | ||
+ | analog@analog: | ||
+ | analog@analog: | ||
+ | </ | ||
+ | |||
+ | This will bring up the text editor. At this point, the appropriate device tree overlays can be included, for example, add the following line to enable the ADXL345 3-axis SPI accelerometer, | ||
+ | |||
+ | < | ||
+ | # Uncomment this to enable the lirc-rpi module | ||
+ | # | ||
+ | dtoverlay=rpi-adxl345 | ||
+ | </ | ||
+ | |||
+ | This usually represents a default overlay, with SPI port and interrupt mapping defined in the kernel source. A number of other overlays are included with Kuiper Linux, for individual devices and various reference designs. Alternative configurations can be created by cloning and editing the appropriate dts file. | ||
+ | |||
+ | After editing config.txt, reboot for changes to take effect. | ||
+ | |||
+ | If any IIO devices are attached and were enabled in config.txt, run iio_info to verify that the drivers loaded properly. Example: | ||
+ | |||
+ | < | ||
+ | analog@analog: | ||
+ | Library version: 0.21 (git tag: 1c0781b) | ||
+ | Compiled with backends: local xml ip | ||
+ | IIO context created with local backend. | ||
+ | Backend version: 0.21 (git tag: 1c0781b) | ||
+ | Backend description string: Linux analog 4.19.86-v7l+ #3 SMP Tue Sep 1 19:43:06 UTC 2020 armv7l | ||
+ | IIO context has 2 attributes: | ||
+ | local, | ||
+ | uri: local: | ||
+ | IIO context has 5 devices: | ||
+ | iio: | ||
+ | 8 channels found: | ||
+ | voltage0-voltage1: | ||
+ | 6 channel-specific attributes found: | ||
+ | attr | ||
+ | attr | ||
+ | ... | ||
+ | ... | ||
+ | </ | ||
+ | |||
+ | ===== License ===== | ||
+ | |||
+ | Copyright (c) 2022 Raspberry Pi (Trading) Ltd. | ||
+ | |||
+ | All rights reserved. | ||
+ | |||
+ | Redistribution and use in source and binary forms, with or without modification, | ||
+ | |||
+ | 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. | ||
+ | |||
+ | 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. | ||
+ | |||
+ | 3. Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. | ||
+ | |||
+ | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |